From 160b4df770bd2c0e181b69aa68c01feba101b173 Mon Sep 17 00:00:00 2001 From: acaldas Date: Wed, 14 Aug 2024 13:43:10 +0100 Subject: [PATCH 01/90] fix: parse renown base url --- src/services/renown/index.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/services/renown/index.ts b/src/services/renown/index.ts index 8f3cc984..e9db5320 100644 --- a/src/services/renown/index.ts +++ b/src/services/renown/index.ts @@ -101,13 +101,13 @@ export class Renown { if (!this.#baseUrl) { throw new Error('RENOWN_URL is not set'); } - - const response = await fetch( - `${this.#baseUrl}/api/auth/credential?address=${encodeURIComponent(address)}&chainId=${encodeURIComponent(chainId)}&connectId=${encodeURIComponent(connectId)}`, - { - method: 'GET', - }, + const url = new URL( + `/api/auth/credential?address=${encodeURIComponent(address)}&chainId=${encodeURIComponent(chainId)}&connectId=${encodeURIComponent(connectId)}`, + this.#baseUrl, ); + const response = await fetch(url, { + method: 'GET', + }); if (response.ok) { const result = (await response.json()) as { credential: PowerhouseVerifiableCredential; From 50574d3b9d1dd892d5c60c351a9f25d9102dab6a Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 14 Aug 2024 12:52:13 +0000 Subject: [PATCH 02/90] chore(release): set `package.json` to 1.0.0-dev.71 [skip ci] # [1.0.0-dev.71](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.70...v1.0.0-dev.71) (2024-08-14) ### Bug Fixes * parse renown base url ([160b4df](https://github.com/powerhouse-inc/document-model-electron/commit/160b4df770bd2c0e181b69aa68c01feba101b173)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 29230f30..e4762478 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.0.0-dev.71](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.70...v1.0.0-dev.71) (2024-08-14) + + +### Bug Fixes + +* parse renown base url ([160b4df](https://github.com/powerhouse-inc/document-model-electron/commit/160b4df770bd2c0e181b69aa68c01feba101b173)) + # [1.0.0-dev.70](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.69...v1.0.0-dev.70) (2024-08-13) diff --git a/package.json b/package.json index 9298b867..dc7aa180 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.70", + "version": "1.0.0-dev.71", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From 47190faeda45bdad8250420bee4cbe1b546c0dd5 Mon Sep 17 00:00:00 2001 From: acaldas Date: Thu, 15 Aug 2024 14:15:33 +0100 Subject: [PATCH 03/90] feat: upload sourcemaps to sentry --- .../build-and-deploy-arbitrum-staging.yaml | 3 + .../build-and-deploy-powerhouse-develop.yaml | 5 + .gitignore | 4 +- Dockerfile | 9 + package-lock.json | 306 +++++++++++++++++- package.json | 1 + vite.renderer.config.mts | 61 ++-- 7 files changed, 359 insertions(+), 30 deletions(-) diff --git a/.github/workflows/build-and-deploy-arbitrum-staging.yaml b/.github/workflows/build-and-deploy-arbitrum-staging.yaml index fe0f12ff..219765d3 100644 --- a/.github/workflows/build-and-deploy-arbitrum-staging.yaml +++ b/.github/workflows/build-and-deploy-arbitrum-staging.yaml @@ -41,4 +41,7 @@ jobs: --build-arg VITE_SENTRY_ENV=${{ secrets.SENTRY_ENV }} --build-arg VITE_ARBITRUM_ALLOW_LIST=${{secrets.VITE_ARBITRUM_ALLOW_LIST}} --build-arg VITE_HIDE_DOCUMENT_MODEL_SELECTION_SETTINGS=true + --build-arg SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} + --build-arg SENTRY_ORG=${{ secrets.SENTRY_ORG }} + --build-arg SENTRY_PROJECT=${{ secrets.SENTRY_PROJECT }} process_type: web \ No newline at end of file diff --git a/.github/workflows/build-and-deploy-powerhouse-develop.yaml b/.github/workflows/build-and-deploy-powerhouse-develop.yaml index e45b54d1..1642a3c6 100644 --- a/.github/workflows/build-and-deploy-powerhouse-develop.yaml +++ b/.github/workflows/build-and-deploy-powerhouse-develop.yaml @@ -28,4 +28,9 @@ jobs: --build-arg VITE_ROUTER_BASENAME=/develop/powerhouse/connect --build-arg VITE_DEFAULT_DRIVES_URL=https://apps.powerhouse.io/develop/powerhouse/switchboard/d/core-dev --build-arg VITE_SEARCH_BAR_ENABLED=false + --build-arg VITE_SENTRY_DSN=${{ secrets.SENTRY_DSN }} + --build-arg VITE_SENTRY_ENV=${{ secrets.SENTRY_ENV }} + --build-arg SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} + --build-arg SENTRY_ORG=${{ secrets.SENTRY_ORG }} + --build-arg SENTRY_PROJECT=${{ secrets.SENTRY_PROJECT }} process_type: web \ No newline at end of file diff --git a/.gitignore b/.gitignore index 8c5d459c..8363a407 100644 --- a/.gitignore +++ b/.gitignore @@ -64,4 +64,6 @@ out/ # Generated assets public/icons.svg -.env.local \ No newline at end of file +.env.local +# Sentry Config File +.env.sentry-build-plugin diff --git a/Dockerfile b/Dockerfile index d79d138a..9625d67f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,6 +2,15 @@ FROM node:lts-alpine AS builder ARG BASE_PATH="" ENV BASE_PATH=${BASE_PATH} +ARG SENTRY_ORG="" +ENV SENTRY_ORG=${SENTRY_ORG} + +ARG SENTRY_PROJECT="" +ENV SENTRY_PROJECT=${SENTRY_PROJECT} + +ARG SENTRY_AUTH_TOKEN="" +ENV SENTRY_AUTH_TOKEN=${SENTRY_AUTH_TOKEN} + ARG VITE_BASE_HREF="" ENV VITE_BASE_HREF=${VITE_BASE_HREF} diff --git a/package-lock.json b/package-lock.json index daf3aadf..a1835aa3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "dependencies": { "@powerhousedao/design-system": "1.0.0-alpha.160", "@sentry/react": "^7.109.0", + "@sentry/vite-plugin": "^2.22.2", "@tanstack/react-virtual": "^3.8.1", "did-key-creator": "^1.2.0", "document-drive": "^1.0.0-alpha.88", @@ -10025,6 +10026,15 @@ "node": ">=8" } }, + "node_modules/@sentry/babel-plugin-component-annotate": { + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/@sentry/babel-plugin-component-annotate/-/babel-plugin-component-annotate-2.22.2.tgz", + "integrity": "sha512-6kFAHGcs0npIC4HTt4ULs8uOfEucvMI7VW4hoyk17jhRaW8CbxzxfWCfIeRbDkE8pYwnARaq83tu025Hrk2zgA==", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, "node_modules/@sentry/browser": { "version": "7.118.0", "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.118.0.tgz", @@ -10043,6 +10053,254 @@ "node": ">=8" } }, + "node_modules/@sentry/bundler-plugin-core": { + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/@sentry/bundler-plugin-core/-/bundler-plugin-core-2.22.2.tgz", + "integrity": "sha512-TwEEW4FeEJ5Mamp4fGnktfVjzN77KAW0xFQsEPuxZtOAPG17zX/PGvdyRX/TE1jkZWhTzqUDIdgzqlNLjyEnUw==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.18.5", + "@sentry/babel-plugin-component-annotate": "2.22.2", + "@sentry/cli": "^2.33.1", + "dotenv": "^16.3.1", + "find-up": "^5.0.0", + "glob": "^9.3.2", + "magic-string": "0.30.8", + "unplugin": "1.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@sentry/bundler-plugin-core/node_modules/glob": { + "version": "9.3.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", + "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "minimatch": "^8.0.2", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@sentry/bundler-plugin-core/node_modules/magic-string": { + "version": "0.30.8", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.8.tgz", + "integrity": "sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@sentry/bundler-plugin-core/node_modules/minimatch": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", + "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@sentry/bundler-plugin-core/node_modules/minipass": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/@sentry/cli": { + "version": "2.33.1", + "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-2.33.1.tgz", + "integrity": "sha512-dUlZ4EFh98VFRPJ+f6OW3JEYQ7VvqGNMa0AMcmvk07ePNeK/GicAWmSQE4ZfJTTl80ul6HZw1kY01fGQOQlVRA==", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.7", + "progress": "^2.0.3", + "proxy-from-env": "^1.1.0", + "which": "^2.0.2" + }, + "bin": { + "sentry-cli": "bin/sentry-cli" + }, + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@sentry/cli-darwin": "2.33.1", + "@sentry/cli-linux-arm": "2.33.1", + "@sentry/cli-linux-arm64": "2.33.1", + "@sentry/cli-linux-i686": "2.33.1", + "@sentry/cli-linux-x64": "2.33.1", + "@sentry/cli-win32-i686": "2.33.1", + "@sentry/cli-win32-x64": "2.33.1" + } + }, + "node_modules/@sentry/cli-darwin": { + "version": "2.33.1", + "resolved": "https://registry.npmjs.org/@sentry/cli-darwin/-/cli-darwin-2.33.1.tgz", + "integrity": "sha512-+4/VIx/E1L2hChj5nGf5MHyEPHUNHJ/HoG5RY+B+vyEutGily1c1+DM2bum7RbD0xs6wKLIyup5F02guzSzG8A==", + "license": "BSD-3-Clause", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@sentry/cli-linux-arm": { + "version": "2.33.1", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm/-/cli-linux-arm-2.33.1.tgz", + "integrity": "sha512-zbxEvQju+tgNvzTOt635le4kS/Fbm2XC2RtYbCTs034Vb8xjrAxLnK0z1bQnStUV8BkeBHtsNVrG+NSQDym2wg==", + "cpu": [ + "arm" + ], + "license": "BSD-3-Clause", + "optional": true, + "os": [ + "linux", + "freebsd" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@sentry/cli-linux-arm64": { + "version": "2.33.1", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.33.1.tgz", + "integrity": "sha512-DbGV56PRKOLsAZJX27Jt2uZ11QfQEMmWB4cIvxkKcFVE+LJP4MVA+MGGRUL6p+Bs1R9ZUuGbpKGtj0JiG6CoXw==", + "cpu": [ + "arm64" + ], + "license": "BSD-3-Clause", + "optional": true, + "os": [ + "linux", + "freebsd" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@sentry/cli-linux-i686": { + "version": "2.33.1", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-i686/-/cli-linux-i686-2.33.1.tgz", + "integrity": "sha512-g2LS4oPXkPWOfKWukKzYp4FnXVRRSwBxhuQ9eSw2peeb58ZIObr4YKGOA/8HJRGkooBJIKGaAR2mH2Pk1TKaiA==", + "cpu": [ + "x86", + "ia32" + ], + "license": "BSD-3-Clause", + "optional": true, + "os": [ + "linux", + "freebsd" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@sentry/cli-linux-x64": { + "version": "2.33.1", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-x64/-/cli-linux-x64-2.33.1.tgz", + "integrity": "sha512-IV3dcYV/ZcvO+VGu9U6kuxSdbsV2kzxaBwWUQxtzxJ+cOa7J8Hn1t0koKGtU53JVZNBa06qJWIcqgl4/pCuKIg==", + "cpu": [ + "x64" + ], + "license": "BSD-3-Clause", + "optional": true, + "os": [ + "linux", + "freebsd" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@sentry/cli-win32-i686": { + "version": "2.33.1", + "resolved": "https://registry.npmjs.org/@sentry/cli-win32-i686/-/cli-win32-i686-2.33.1.tgz", + "integrity": "sha512-F7cJySvkpzIu7fnLKNHYwBzZYYwlhoDbAUnaFX0UZCN+5DNp/5LwTp37a5TWOsmCaHMZT4i9IO4SIsnNw16/zQ==", + "cpu": [ + "x86", + "ia32" + ], + "license": "BSD-3-Clause", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@sentry/cli-win32-x64": { + "version": "2.33.1", + "resolved": "https://registry.npmjs.org/@sentry/cli-win32-x64/-/cli-win32-x64-2.33.1.tgz", + "integrity": "sha512-8VyRoJqtb2uQ8/bFRKNuACYZt7r+Xx0k2wXRGTyH05lCjAiVIXn7DiS2BxHFty7M1QEWUCMNsb/UC/x/Cu2wuA==", + "cpu": [ + "x64" + ], + "license": "BSD-3-Clause", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@sentry/cli/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/@sentry/cli/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@sentry/cli/node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, "node_modules/@sentry/core": { "version": "7.118.0", "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.118.0.tgz", @@ -10120,6 +10378,19 @@ "node": ">=8" } }, + "node_modules/@sentry/vite-plugin": { + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/@sentry/vite-plugin/-/vite-plugin-2.22.2.tgz", + "integrity": "sha512-LJSNTw75UJq77v2jCan8cRh0w1u6W30jxQsbqF7YyyhhfjPTyFUXYday9RDDe84qDEnspbZmgeTSWTvaTGsBRg==", + "license": "MIT", + "dependencies": { + "@sentry/bundler-plugin-core": "2.22.2", + "unplugin": "1.0.1" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/@sideway/address": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", @@ -13219,7 +13490,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, "dependencies": { "balanced-match": "^1.0.0" } @@ -15766,7 +16036,6 @@ "version": "16.4.5", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", - "dev": true, "engines": { "node": ">=12" }, @@ -26973,7 +27242,6 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -26988,14 +27256,12 @@ "node_modules/path-scurry/node_modules/lru-cache": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" }, "node_modules/path-scurry/node_modules/minipass": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, "engines": { "node": ">=16 || 14 >=14.17" } @@ -27738,7 +28004,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, "engines": { "node": ">=0.4.0" } @@ -32196,6 +32461,18 @@ "node": ">= 0.8" } }, + "node_modules/unplugin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.0.1.tgz", + "integrity": "sha512-aqrHaVBWW1JVKBHmGo33T5TxeL0qWzfvjWokObHA9bYmN7eNDkwOxmLjhioHl9878qDFMAaT51XNroRyuz7WxA==", + "license": "MIT", + "dependencies": { + "acorn": "^8.8.1", + "chokidar": "^3.5.3", + "webpack-sources": "^3.2.3", + "webpack-virtual-modules": "^0.5.0" + } + }, "node_modules/unstorage": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.10.2.tgz", @@ -32998,6 +33275,21 @@ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz", + "integrity": "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==", + "license": "MIT" + }, "node_modules/whatwg-fetch": { "version": "3.6.20", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", diff --git a/package.json b/package.json index dc7aa180..99f673cb 100644 --- a/package.json +++ b/package.json @@ -91,6 +91,7 @@ "dependencies": { "@powerhousedao/design-system": "1.0.0-alpha.160", "@sentry/react": "^7.109.0", + "@sentry/vite-plugin": "^2.22.2", "@tanstack/react-virtual": "^3.8.1", "did-key-creator": "^1.2.0", "document-drive": "^1.0.0-alpha.88", diff --git a/vite.renderer.config.mts b/vite.renderer.config.mts index e0923b67..4b061fde 100644 --- a/vite.renderer.config.mts +++ b/vite.renderer.config.mts @@ -1,9 +1,10 @@ +import { sentryVitePlugin } from '@sentry/vite-plugin'; import react from '@vitejs/plugin-react'; import fs from 'fs'; import jotaiDebugLabel from 'jotai/babel/plugin-debug-label'; import jotaiReactRefresh from 'jotai/babel/plugin-react-refresh'; import path from 'path'; -import { HtmlTagDescriptor, defineConfig, loadEnv } from 'vite'; +import { HtmlTagDescriptor, PluginOption, defineConfig, loadEnv } from 'vite'; import { createHtmlPlugin } from 'vite-plugin-html'; import svgr from 'vite-plugin-svgr'; import pkg from './package.json'; @@ -35,6 +36,42 @@ export default defineConfig(({ mode }) => { const requiresHardRefresh = env.VITE_APP_REQUIRES_HARD_REFRESH === 'true'; + const plugins: PluginOption[] = [ + react({ + include: 'src/**/*.tsx', + babel: { + plugins: isProd ? [] : [jotaiDebugLabel, jotaiReactRefresh], + }, + }), + svgr(), + createHtmlPlugin({ + minify: true, + inject: { + tags: [ + ...(clientConfig.meta.map(meta => ({ + ...meta, + injectTo: 'head', + })) as HtmlTagDescriptor[]), + ], + }, + }), + generateVersionPlugin(isProd ? requiresHardRefresh : false), + ]; + + const authToken = process.env.SENTRY_AUTH_TOKEN; + const org = process.env.SENTRY_ORG; + const project = process.env.SENTRY_PROJECT; + const uploadSentrySourcemaps = authToken && org && project; + if (uploadSentrySourcemaps) { + plugins.push( + sentryVitePlugin({ + authToken, + org, + project, + }) as PluginOption, + ); + } + return { define: { 'process.env': { @@ -42,27 +79,7 @@ export default defineConfig(({ mode }) => { REQUIRES_HARD_REFRESH: isProd ? requiresHardRefresh : false, }, }, - plugins: [ - react({ - include: 'src/**/*.tsx', - babel: { - plugins: isProd ? [] : [jotaiDebugLabel, jotaiReactRefresh], - }, - }), - svgr(), - createHtmlPlugin({ - minify: true, - inject: { - tags: [ - ...(clientConfig.meta.map(meta => ({ - ...meta, - injectTo: 'head', - })) as HtmlTagDescriptor[]), - ], - }, - }), - generateVersionPlugin(isProd ? requiresHardRefresh : false), - ], + plugins, build: { minify: isProd, sourcemap: isProd, From a28e9a806b8add77d88e97eb9a90d0a7b6c0c3e5 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Thu, 15 Aug 2024 13:19:39 +0000 Subject: [PATCH 04/90] chore(release): set `package.json` to 1.0.0-dev.72 [skip ci] # [1.0.0-dev.72](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.71...v1.0.0-dev.72) (2024-08-15) ### Features * upload sourcemaps to sentry ([47190fa](https://github.com/powerhouse-inc/document-model-electron/commit/47190faeda45bdad8250420bee4cbe1b546c0dd5)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e4762478..0c99c97f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.0.0-dev.72](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.71...v1.0.0-dev.72) (2024-08-15) + + +### Features + +* upload sourcemaps to sentry ([47190fa](https://github.com/powerhouse-inc/document-model-electron/commit/47190faeda45bdad8250420bee4cbe1b546c0dd5)) + # [1.0.0-dev.71](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.70...v1.0.0-dev.71) (2024-08-14) diff --git a/package.json b/package.json index 99f673cb..63702dd8 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.71", + "version": "1.0.0-dev.72", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From fc926ec8d0ddb27b93d139af6b68a65691f9c8c2 Mon Sep 17 00:00:00 2001 From: Guillermo Puente Date: Fri, 16 Aug 2024 15:13:21 -0400 Subject: [PATCH 05/90] fix: remove file ext when importing document --- src/hooks/useUiNodes.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/hooks/useUiNodes.ts b/src/hooks/useUiNodes.ts index 377665e7..a0863d2c 100644 --- a/src/hooks/useUiNodes.ts +++ b/src/hooks/useUiNodes.ts @@ -222,10 +222,13 @@ export function useUiNodes() { if (parentNode.kind === FILE) { throw new Error('Cannot add file to a file'); } + + const fileName = file.name.replace(/\.zip$/gim, ''); + return await addFile( file, parentNode.driveId, - file.name, + fileName, parentNode.id, ); }, From 41b4b8c70ae66de89ae98c54626f10e0775d56c5 Mon Sep 17 00:00:00 2001 From: Guillermo Puente Date: Fri, 16 Aug 2024 08:41:40 -0400 Subject: [PATCH 06/90] fix: use routerBasename to get service worker script path --- src/utils/registerServiceWorker.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/utils/registerServiceWorker.ts b/src/utils/registerServiceWorker.ts index 45dbd781..dbafb700 100644 --- a/src/utils/registerServiceWorker.ts +++ b/src/utils/registerServiceWorker.ts @@ -1,4 +1,13 @@ /* eslint-disable @typescript-eslint/no-unsafe-member-access */ +import connectConfig from 'connect-config'; + +const serviceWorkerScriptPath = [ + connectConfig.routerBasename, + 'service-worker.js', +] + .join('/') + .replace(/\/{2,}/gm, '/'); + type SET_APP_VERSION_MESSAGE = { type: 'SET_APP_VERSION'; version: string; @@ -32,7 +41,7 @@ class ServiceWorkerManager { if ('serviceWorker' in navigator) { window.addEventListener('load', () => { navigator.serviceWorker - .register('/service-worker.js') + .register(serviceWorkerScriptPath) .then(registration => { // Listen for messages from the service worker if (this.debug) { From b44917cd8b1fca713c2f48d8e91d2f8ae8952f09 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Mon, 26 Aug 2024 14:49:50 +0000 Subject: [PATCH 07/90] chore(release): set `package.json` to 1.0.0-dev.73 [skip ci] # [1.0.0-dev.73](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.72...v1.0.0-dev.73) (2024-08-26) ### Bug Fixes * remove file ext when importing document ([fc926ec](https://github.com/powerhouse-inc/document-model-electron/commit/fc926ec8d0ddb27b93d139af6b68a65691f9c8c2)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c99c97f..64597efc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.0.0-dev.73](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.72...v1.0.0-dev.73) (2024-08-26) + + +### Bug Fixes + +* remove file ext when importing document ([fc926ec](https://github.com/powerhouse-inc/document-model-electron/commit/fc926ec8d0ddb27b93d139af6b68a65691f9c8c2)) + # [1.0.0-dev.72](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.71...v1.0.0-dev.72) (2024-08-15) diff --git a/package.json b/package.json index 63702dd8..9bc24f1d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.72", + "version": "1.0.0-dev.73", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From cc9af0ad97b3bf93e488b02dd65e1e87201112a4 Mon Sep 17 00:00:00 2001 From: Guillermo Puente Date: Mon, 26 Aug 2024 14:50:20 -0400 Subject: [PATCH 08/90] fix: broken cypress tests --- cypress.config.ts | 4 ++-- cypress/e2e/navigation.cy.ts | 34 +++++++++++++++++--------------- cypress/e2e/utils/index.ts | 38 ++++++++++++++++-------------------- 3 files changed, 37 insertions(+), 39 deletions(-) diff --git a/cypress.config.ts b/cypress.config.ts index c6397b29..e3972fbe 100644 --- a/cypress.config.ts +++ b/cypress.config.ts @@ -10,7 +10,7 @@ export default defineConfig({ }, env: { TEST_PUBLIC_DRIVE: - 'https://apps.powerhouse.io/develop/powerhouse/switchboard/d/test', - TEST_PUBLIC_DRIVE_NAME: 'Test', + 'https://apps.powerhouse.io/develop/powerhouse/switchboard/d/cypress-test', + TEST_PUBLIC_DRIVE_NAME: 'CypressTest', }, }); diff --git a/cypress/e2e/navigation.cy.ts b/cypress/e2e/navigation.cy.ts index 94bd7ea1..c425a4b0 100644 --- a/cypress/e2e/navigation.cy.ts +++ b/cypress/e2e/navigation.cy.ts @@ -44,7 +44,7 @@ describe('Navigation', () => { }); it('should create a default local drive', () => { - cy.get('article').contains('My Local Drive').should('exist'); + cy.get('p').contains('My Local Drive').should('exist'); }); it('should create a folder inside the local drive', () => { @@ -60,6 +60,7 @@ describe('Navigation', () => { .clear() .type('test-document'); cy.get('button').contains('Create').click(); + selectSidebarItem('test-document'); cy.get('textarea[placeholder="Document Model Name"]').type('draft1'); cy.contains('Global State Schema').click(); @@ -71,20 +72,20 @@ describe('Navigation', () => { const publicDriveName = Cypress.env('TEST_PUBLIC_DRIVE_NAME') as string; addPublicDrive(publicDriveUrl); - cy.contains('article', publicDriveName).should('be.visible'); + cy.contains('.mr-1', publicDriveName).should('be.visible'); selectSidebarItem(publicDriveName); }); it('should create and delete a folder inside test drive', () => { const publicDriveName = Cypress.env('TEST_PUBLIC_DRIVE_NAME') as string; selectSidebarItem(publicDriveName); - newFolder(publicDriveName, 'test-folder'); - cy.contains('test-folder').should('exist'); + newFolder(publicDriveName, 'test-folder-delete'); + cy.contains('test-folder-delete').should('exist'); - clickSidebarItemOption('test-folder', 'delete'); + clickSidebarItemOption('test-folder-delete', 'delete'); cy.contains('button', 'Delete').click(); - cy.contains('test-folder').should('not.exist'); + cy.contains('test-folder-delete').should('not.exist'); }); it('should rename a folder inside test drive', () => { @@ -104,16 +105,16 @@ describe('Navigation', () => { it('should duplicate a folder inside test drive', () => { const publicDriveName = Cypress.env('TEST_PUBLIC_DRIVE_NAME') as string; selectSidebarItem(publicDriveName); - newFolder(publicDriveName, 'test-folder'); - clickSidebarItemOption('test-folder', 'duplicate'); + newFolder(publicDriveName, 'test-folder-duplicate'); + clickSidebarItemOption('test-folder-duplicate', 'duplicate'); - cy.contains('test-folder').should('exist'); - cy.contains('test-folder (copy) 1').should('exist'); + cy.contains('test-folder-duplicate').should('exist'); + cy.contains('test-folder-duplicate (copy) 1').should('exist'); - clickSidebarItemOption('test-folder', 'delete'); + clickSidebarItemOption('test-folder-duplicate', 'delete'); cy.contains('button', 'Delete').click(); - clickSidebarItemOption('test-folder (copy) 1', 'delete'); + clickSidebarItemOption('test-folder-duplicate (copy) 1', 'delete'); cy.contains('button', 'Delete').click(); }); @@ -188,9 +189,9 @@ describe('Navigation', () => { it('should open switchboard from document link', () => { const rwaDocumentCloseSelector = - '#document-editor-context > div > div.flex.items-center.justify-between > div.flex.justify-end.gap-x-2 > button.grid.size-8.place-items-center.rounded.border.border-gray-200.active\\:opacity-50'; + '.justify-between > :nth-child(2) > .grid'; const rwaSwitchboardLinkSelector = - '#document-editor-context > div > div.flex.items-center.justify-between > div.flex.justify-end.gap-x-2 > button:nth-child(1)'; + '[dir="ltr"] > .justify-between > :nth-child(2) > :nth-child(1)'; const publicDriveName = Cypress.env('TEST_PUBLIC_DRIVE_NAME') as string; selectSidebarItem(publicDriveName); @@ -218,9 +219,10 @@ describe('Navigation', () => { cy.contains('button', 'Delete').click(); }); - it('should open switchboard from file item menu', () => { + // TODO: check why switchboard link option is not available for files + it.skip('should open switchboard from file item menu', () => { const rwaDocumentCloseSelector = - '#document-editor-context > div > div.flex.items-center.justify-between > div.flex.justify-end.gap-x-2 > button.grid.size-8.place-items-center.rounded.border.border-gray-200.active\\:opacity-50'; + '.justify-between > :nth-child(2) > .grid'; const publicDriveName = Cypress.env('TEST_PUBLIC_DRIVE_NAME') as string; selectSidebarItem(publicDriveName); diff --git a/cypress/e2e/utils/index.ts b/cypress/e2e/utils/index.ts index fa7104e4..463d4691 100644 --- a/cypress/e2e/utils/index.ts +++ b/cypress/e2e/utils/index.ts @@ -67,41 +67,39 @@ export const clickSidebarItemOption = ( folderName: string, option: SidebarItemOption, ) => { - cy.get('article') + cy.get('.mr-1') .contains(folderName) - .then(el => { - hoverElement(el[0]); - }); - - cy.get('article') - .contains(folderName) - .closest('article') + .closest('div') .children('button') - .click(); + .invoke('removeClass', 'hidden') + .click() + .invoke('addClass', 'hidden'); const optionName = getOptionName(option); cy.contains(optionName).click(); }; export const newFolder = (parent: string, folderName: string) => { - cy.get('article') - .contains(parent) - .then(el => { - hoverElement(el[0]); - }); - - cy.get('article') + cy.get('.mr-1') .contains(parent) - .closest('article') + .closest('div') .children('button') - .click(); + .invoke('removeClass', 'hidden') + .click() + .invoke('addClass', 'hidden'); cy.contains('New Folder').click(); cy.get('input[value="New Folder"]').clear().type(`${folderName}{enter}`); + + cy.get('.mr-1') + .contains(parent) + .closest('div') + .children('button') + .invoke('addClass', 'hidden'); }; export const selectSidebarItem = (item: string) => { - cy.get('article').contains(item).click(); + cy.get('.mr-1').contains(item).click(); }; export const addPublicDrive = (url: string) => { @@ -143,9 +141,7 @@ export const clickContentViewItemOption = ( cy.get('#content-view') .contains(itemName) .parent() - .parent() .next() - .children('svg') .invoke('attr', 'style', 'display: inline-block; width: 24px') .click(); From c145848228034a5e19aabd13d70d40b10ab2f0b8 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Mon, 26 Aug 2024 19:58:50 +0000 Subject: [PATCH 09/90] chore(release): set `package.json` to 1.0.0-dev.74 [skip ci] # [1.0.0-dev.74](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.73...v1.0.0-dev.74) (2024-08-26) ### Bug Fixes * use routerBasename to get service worker script path ([41b4b8c](https://github.com/powerhouse-inc/document-model-electron/commit/41b4b8c70ae66de89ae98c54626f10e0775d56c5)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 64597efc..d333a9f5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.0.0-dev.74](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.73...v1.0.0-dev.74) (2024-08-26) + + +### Bug Fixes + +* use routerBasename to get service worker script path ([41b4b8c](https://github.com/powerhouse-inc/document-model-electron/commit/41b4b8c70ae66de89ae98c54626f10e0775d56c5)) + # [1.0.0-dev.73](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.72...v1.0.0-dev.73) (2024-08-26) diff --git a/package.json b/package.json index 9bc24f1d..ba7a54e1 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.73", + "version": "1.0.0-dev.74", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From a6682b6cfd9476fd49dfe1c8738985a0078b98f9 Mon Sep 17 00:00:00 2001 From: Guillermo Puente Date: Mon, 26 Aug 2024 15:54:33 -0400 Subject: [PATCH 10/90] feat: run e2e tests when a PR is open --- .github/workflows/e2e-dev.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/e2e-dev.yml b/.github/workflows/e2e-dev.yml index 1e4200c1..f33e3e61 100644 --- a/.github/workflows/e2e-dev.yml +++ b/.github/workflows/e2e-dev.yml @@ -1,8 +1,13 @@ name: End-to-end tests on: - push: - branches: [develop] + pull_request: + branches: + - main + - develop + - staging + - production + - deployments/** workflow_dispatch: jobs: cypress-run: From 900b11c3d0be4dcf88fb8a8aaff7c2234930b0ca Mon Sep 17 00:00:00 2001 From: Guillermo Puente Date: Wed, 28 Aug 2024 10:50:50 -0400 Subject: [PATCH 11/90] fix: moved service-worker script to assets folder --- package-lock.json | 244 ++++++++++++++++++++++++++++- package.json | 1 + src/utils/registerServiceWorker.ts | 2 +- vite.renderer.config.mts | 9 ++ 4 files changed, 252 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index a1835aa3..e16d8c06 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@powerhousedao/connect", - "version": "1.0.0-dev.66", + "version": "1.0.0-dev.74", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@powerhousedao/connect", - "version": "1.0.0-dev.66", + "version": "1.0.0-dev.74", "license": "AGPL-3.0-only", "dependencies": { "@powerhousedao/design-system": "1.0.0-alpha.160", @@ -85,6 +85,7 @@ "typescript": "^5.3.3", "vite": "^5.2.6", "vite-plugin-html": "^3.2.2", + "vite-plugin-static-copy": "^1.0.6", "vite-plugin-svgr": "^4.2.0", "vite-tsconfig-paths": "^4.2.0", "xvfb-maybe": "^0.2.1" @@ -24314,6 +24315,7 @@ }, "node_modules/npm/node_modules/@isaacs/cliui": { "version": "8.0.2", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24330,6 +24332,7 @@ }, "node_modules/npm/node_modules/@isaacs/cliui/node_modules/ansi-regex": { "version": "6.0.1", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -24341,11 +24344,13 @@ }, "node_modules/npm/node_modules/@isaacs/cliui/node_modules/emoji-regex": { "version": "9.2.2", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/@isaacs/cliui/node_modules/string-width": { "version": "5.1.2", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -24362,6 +24367,7 @@ }, "node_modules/npm/node_modules/@isaacs/cliui/node_modules/strip-ansi": { "version": "7.1.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -24376,11 +24382,13 @@ }, "node_modules/npm/node_modules/@isaacs/string-locale-compare": { "version": "1.1.0", + "dev": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/@npmcli/agent": { "version": "2.2.2", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24396,6 +24404,7 @@ }, "node_modules/npm/node_modules/@npmcli/arborist": { "version": "7.5.4", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24444,6 +24453,7 @@ }, "node_modules/npm/node_modules/@npmcli/config": { "version": "8.3.4", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24462,6 +24472,7 @@ }, "node_modules/npm/node_modules/@npmcli/fs": { "version": "3.1.1", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24473,6 +24484,7 @@ }, "node_modules/npm/node_modules/@npmcli/git": { "version": "5.0.8", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24492,6 +24504,7 @@ }, "node_modules/npm/node_modules/@npmcli/installed-package-contents": { "version": "2.1.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24507,6 +24520,7 @@ }, "node_modules/npm/node_modules/@npmcli/map-workspaces": { "version": "3.0.6", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24521,6 +24535,7 @@ }, "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { "version": "7.1.1", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24536,6 +24551,7 @@ }, "node_modules/npm/node_modules/@npmcli/name-from-folder": { "version": "2.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -24544,6 +24560,7 @@ }, "node_modules/npm/node_modules/@npmcli/node-gyp": { "version": "3.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -24552,6 +24569,7 @@ }, "node_modules/npm/node_modules/@npmcli/package-json": { "version": "5.2.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24569,6 +24587,7 @@ }, "node_modules/npm/node_modules/@npmcli/promise-spawn": { "version": "7.0.2", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24580,6 +24599,7 @@ }, "node_modules/npm/node_modules/@npmcli/query": { "version": "3.1.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24591,6 +24611,7 @@ }, "node_modules/npm/node_modules/@npmcli/redact": { "version": "2.0.1", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -24599,6 +24620,7 @@ }, "node_modules/npm/node_modules/@npmcli/run-script": { "version": "8.1.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24615,14 +24637,17 @@ }, "node_modules/npm/node_modules/@pkgjs/parseargs": { "version": "0.11.0", + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "engines": { "node": ">=14" } }, "node_modules/npm/node_modules/@sigstore/bundle": { "version": "2.3.2", + "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -24634,6 +24659,7 @@ }, "node_modules/npm/node_modules/@sigstore/core": { "version": "1.1.0", + "dev": true, "inBundle": true, "license": "Apache-2.0", "engines": { @@ -24642,6 +24668,7 @@ }, "node_modules/npm/node_modules/@sigstore/protobuf-specs": { "version": "0.3.2", + "dev": true, "inBundle": true, "license": "Apache-2.0", "engines": { @@ -24650,6 +24677,7 @@ }, "node_modules/npm/node_modules/@sigstore/sign": { "version": "2.3.2", + "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -24666,6 +24694,7 @@ }, "node_modules/npm/node_modules/@sigstore/tuf": { "version": "2.3.4", + "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -24678,6 +24707,7 @@ }, "node_modules/npm/node_modules/@sigstore/verify": { "version": "1.2.1", + "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -24691,6 +24721,7 @@ }, "node_modules/npm/node_modules/@tufjs/canonical-json": { "version": "2.0.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -24699,6 +24730,7 @@ }, "node_modules/npm/node_modules/@tufjs/models": { "version": "2.0.1", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -24711,6 +24743,7 @@ }, "node_modules/npm/node_modules/abbrev": { "version": "2.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -24719,6 +24752,7 @@ }, "node_modules/npm/node_modules/agent-base": { "version": "7.1.1", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -24730,6 +24764,7 @@ }, "node_modules/npm/node_modules/aggregate-error": { "version": "3.1.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -24742,6 +24777,7 @@ }, "node_modules/npm/node_modules/ansi-regex": { "version": "5.0.1", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -24750,6 +24786,7 @@ }, "node_modules/npm/node_modules/ansi-styles": { "version": "6.2.1", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -24761,21 +24798,25 @@ }, "node_modules/npm/node_modules/aproba": { "version": "2.0.0", + "dev": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/archy": { "version": "1.0.0", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/balanced-match": { "version": "1.0.2", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/bin-links": { "version": "4.0.4", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24790,6 +24831,7 @@ }, "node_modules/npm/node_modules/binary-extensions": { "version": "2.3.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -24801,6 +24843,7 @@ }, "node_modules/npm/node_modules/brace-expansion": { "version": "2.0.1", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -24809,6 +24852,7 @@ }, "node_modules/npm/node_modules/cacache": { "version": "18.0.3", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24831,6 +24875,7 @@ }, "node_modules/npm/node_modules/chalk": { "version": "5.3.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -24842,6 +24887,7 @@ }, "node_modules/npm/node_modules/chownr": { "version": "2.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -24850,6 +24896,7 @@ }, "node_modules/npm/node_modules/ci-info": { "version": "4.0.0", + "dev": true, "funding": [ { "type": "github", @@ -24864,6 +24911,7 @@ }, "node_modules/npm/node_modules/cidr-regex": { "version": "4.1.1", + "dev": true, "inBundle": true, "license": "BSD-2-Clause", "dependencies": { @@ -24875,6 +24923,7 @@ }, "node_modules/npm/node_modules/clean-stack": { "version": "2.2.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -24883,6 +24932,7 @@ }, "node_modules/npm/node_modules/cli-columns": { "version": "4.0.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -24895,6 +24945,7 @@ }, "node_modules/npm/node_modules/cmd-shim": { "version": "6.0.3", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -24903,6 +24954,7 @@ }, "node_modules/npm/node_modules/color-convert": { "version": "2.0.1", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -24914,16 +24966,19 @@ }, "node_modules/npm/node_modules/color-name": { "version": "1.1.4", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/common-ancestor-path": { "version": "1.0.1", + "dev": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/cross-spawn": { "version": "7.0.3", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -24937,6 +24992,7 @@ }, "node_modules/npm/node_modules/cross-spawn/node_modules/which": { "version": "2.0.2", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24951,6 +25007,7 @@ }, "node_modules/npm/node_modules/cssesc": { "version": "3.0.0", + "dev": true, "inBundle": true, "license": "MIT", "bin": { @@ -24962,6 +25019,7 @@ }, "node_modules/npm/node_modules/debug": { "version": "4.3.5", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -24978,11 +25036,13 @@ }, "node_modules/npm/node_modules/debug/node_modules/ms": { "version": "2.1.2", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/diff": { "version": "5.2.0", + "dev": true, "inBundle": true, "license": "BSD-3-Clause", "engines": { @@ -24991,24 +25051,29 @@ }, "node_modules/npm/node_modules/eastasianwidth": { "version": "0.2.0", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/emoji-regex": { "version": "8.0.0", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/encoding": { "version": "0.1.13", + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "iconv-lite": "^0.6.2" } }, "node_modules/npm/node_modules/env-paths": { "version": "2.2.1", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -25017,16 +25082,19 @@ }, "node_modules/npm/node_modules/err-code": { "version": "2.0.3", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/exponential-backoff": { "version": "3.1.1", + "dev": true, "inBundle": true, "license": "Apache-2.0" }, "node_modules/npm/node_modules/fastest-levenshtein": { "version": "1.0.16", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -25035,6 +25103,7 @@ }, "node_modules/npm/node_modules/foreground-child": { "version": "3.2.1", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25050,6 +25119,7 @@ }, "node_modules/npm/node_modules/fs-minipass": { "version": "3.0.3", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25061,6 +25131,7 @@ }, "node_modules/npm/node_modules/glob": { "version": "10.4.2", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25083,11 +25154,13 @@ }, "node_modules/npm/node_modules/graceful-fs": { "version": "4.2.11", + "dev": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/hosted-git-info": { "version": "7.0.2", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25099,11 +25172,13 @@ }, "node_modules/npm/node_modules/http-cache-semantics": { "version": "4.1.1", + "dev": true, "inBundle": true, "license": "BSD-2-Clause" }, "node_modules/npm/node_modules/http-proxy-agent": { "version": "7.0.2", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -25116,6 +25191,7 @@ }, "node_modules/npm/node_modules/https-proxy-agent": { "version": "7.0.5", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -25128,8 +25204,10 @@ }, "node_modules/npm/node_modules/iconv-lite": { "version": "0.6.3", + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -25139,6 +25217,7 @@ }, "node_modules/npm/node_modules/ignore-walk": { "version": "6.0.5", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25150,6 +25229,7 @@ }, "node_modules/npm/node_modules/imurmurhash": { "version": "0.1.4", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -25158,6 +25238,7 @@ }, "node_modules/npm/node_modules/indent-string": { "version": "4.0.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -25166,6 +25247,7 @@ }, "node_modules/npm/node_modules/ini": { "version": "4.1.3", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -25174,6 +25256,7 @@ }, "node_modules/npm/node_modules/init-package-json": { "version": "6.0.3", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25191,6 +25274,7 @@ }, "node_modules/npm/node_modules/ip-address": { "version": "9.0.5", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -25203,6 +25287,7 @@ }, "node_modules/npm/node_modules/ip-regex": { "version": "5.0.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -25214,6 +25299,7 @@ }, "node_modules/npm/node_modules/is-cidr": { "version": "5.1.0", + "dev": true, "inBundle": true, "license": "BSD-2-Clause", "dependencies": { @@ -25225,6 +25311,7 @@ }, "node_modules/npm/node_modules/is-fullwidth-code-point": { "version": "3.0.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -25233,16 +25320,19 @@ }, "node_modules/npm/node_modules/is-lambda": { "version": "1.0.1", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/isexe": { "version": "2.0.0", + "dev": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/jackspeak": { "version": "3.4.0", + "dev": true, "inBundle": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -25260,11 +25350,13 @@ }, "node_modules/npm/node_modules/jsbn": { "version": "1.1.0", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/json-parse-even-better-errors": { "version": "3.0.2", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -25273,6 +25365,7 @@ }, "node_modules/npm/node_modules/json-stringify-nice": { "version": "1.1.4", + "dev": true, "inBundle": true, "license": "ISC", "funding": { @@ -25281,6 +25374,7 @@ }, "node_modules/npm/node_modules/jsonparse": { "version": "1.3.1", + "dev": true, "engines": [ "node >= 0.2.0" ], @@ -25289,16 +25383,19 @@ }, "node_modules/npm/node_modules/just-diff": { "version": "6.0.2", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/just-diff-apply": { "version": "5.5.0", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/libnpmaccess": { "version": "8.0.6", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25311,6 +25408,7 @@ }, "node_modules/npm/node_modules/libnpmdiff": { "version": "6.1.4", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25329,6 +25427,7 @@ }, "node_modules/npm/node_modules/libnpmexec": { "version": "8.1.3", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25349,6 +25448,7 @@ }, "node_modules/npm/node_modules/libnpmfund": { "version": "5.0.12", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25360,6 +25460,7 @@ }, "node_modules/npm/node_modules/libnpmhook": { "version": "10.0.5", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25372,6 +25473,7 @@ }, "node_modules/npm/node_modules/libnpmorg": { "version": "6.0.6", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25384,6 +25486,7 @@ }, "node_modules/npm/node_modules/libnpmpack": { "version": "7.0.4", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25398,6 +25501,7 @@ }, "node_modules/npm/node_modules/libnpmpublish": { "version": "9.0.9", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25416,6 +25520,7 @@ }, "node_modules/npm/node_modules/libnpmsearch": { "version": "7.0.6", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25427,6 +25532,7 @@ }, "node_modules/npm/node_modules/libnpmteam": { "version": "6.0.5", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25439,6 +25545,7 @@ }, "node_modules/npm/node_modules/libnpmversion": { "version": "6.0.3", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25454,6 +25561,7 @@ }, "node_modules/npm/node_modules/lru-cache": { "version": "10.2.2", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -25462,6 +25570,7 @@ }, "node_modules/npm/node_modules/make-fetch-happen": { "version": "13.0.1", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25484,6 +25593,7 @@ }, "node_modules/npm/node_modules/minimatch": { "version": "9.0.5", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25498,6 +25608,7 @@ }, "node_modules/npm/node_modules/minipass": { "version": "7.1.2", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -25506,6 +25617,7 @@ }, "node_modules/npm/node_modules/minipass-collect": { "version": "2.0.1", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25517,6 +25629,7 @@ }, "node_modules/npm/node_modules/minipass-fetch": { "version": "3.0.5", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -25533,6 +25646,7 @@ }, "node_modules/npm/node_modules/minipass-flush": { "version": "1.0.5", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25544,6 +25658,7 @@ }, "node_modules/npm/node_modules/minipass-flush/node_modules/minipass": { "version": "3.3.6", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25555,6 +25670,7 @@ }, "node_modules/npm/node_modules/minipass-pipeline": { "version": "1.2.4", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25566,6 +25682,7 @@ }, "node_modules/npm/node_modules/minipass-pipeline/node_modules/minipass": { "version": "3.3.6", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25577,6 +25694,7 @@ }, "node_modules/npm/node_modules/minipass-sized": { "version": "1.0.3", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25588,6 +25706,7 @@ }, "node_modules/npm/node_modules/minipass-sized/node_modules/minipass": { "version": "3.3.6", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25599,6 +25718,7 @@ }, "node_modules/npm/node_modules/minizlib": { "version": "2.1.2", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -25611,6 +25731,7 @@ }, "node_modules/npm/node_modules/minizlib/node_modules/minipass": { "version": "3.3.6", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25622,6 +25743,7 @@ }, "node_modules/npm/node_modules/mkdirp": { "version": "1.0.4", + "dev": true, "inBundle": true, "license": "MIT", "bin": { @@ -25633,11 +25755,13 @@ }, "node_modules/npm/node_modules/ms": { "version": "2.1.3", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/mute-stream": { "version": "1.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -25646,6 +25770,7 @@ }, "node_modules/npm/node_modules/negotiator": { "version": "0.6.3", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -25654,6 +25779,7 @@ }, "node_modules/npm/node_modules/node-gyp": { "version": "10.1.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -25677,6 +25803,7 @@ }, "node_modules/npm/node_modules/node-gyp/node_modules/proc-log": { "version": "3.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -25685,6 +25812,7 @@ }, "node_modules/npm/node_modules/nopt": { "version": "7.2.1", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25699,6 +25827,7 @@ }, "node_modules/npm/node_modules/normalize-package-data": { "version": "6.0.2", + "dev": true, "inBundle": true, "license": "BSD-2-Clause", "dependencies": { @@ -25712,6 +25841,7 @@ }, "node_modules/npm/node_modules/npm-audit-report": { "version": "5.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -25720,6 +25850,7 @@ }, "node_modules/npm/node_modules/npm-bundled": { "version": "3.0.1", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25731,6 +25862,7 @@ }, "node_modules/npm/node_modules/npm-install-checks": { "version": "6.3.0", + "dev": true, "inBundle": true, "license": "BSD-2-Clause", "dependencies": { @@ -25742,6 +25874,7 @@ }, "node_modules/npm/node_modules/npm-normalize-package-bin": { "version": "3.0.1", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -25750,6 +25883,7 @@ }, "node_modules/npm/node_modules/npm-package-arg": { "version": "11.0.2", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25764,6 +25898,7 @@ }, "node_modules/npm/node_modules/npm-packlist": { "version": "8.0.2", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25775,6 +25910,7 @@ }, "node_modules/npm/node_modules/npm-pick-manifest": { "version": "9.1.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25789,6 +25925,7 @@ }, "node_modules/npm/node_modules/npm-profile": { "version": "10.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25801,6 +25938,7 @@ }, "node_modules/npm/node_modules/npm-registry-fetch": { "version": "17.1.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25819,6 +25957,7 @@ }, "node_modules/npm/node_modules/npm-user-validate": { "version": "2.0.1", + "dev": true, "inBundle": true, "license": "BSD-2-Clause", "engines": { @@ -25827,6 +25966,7 @@ }, "node_modules/npm/node_modules/p-map": { "version": "4.0.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -25841,11 +25981,13 @@ }, "node_modules/npm/node_modules/package-json-from-dist": { "version": "1.0.0", + "dev": true, "inBundle": true, "license": "BlueOak-1.0.0" }, "node_modules/npm/node_modules/pacote": { "version": "18.0.6", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25876,6 +26018,7 @@ }, "node_modules/npm/node_modules/parse-conflict-json": { "version": "3.0.1", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25889,6 +26032,7 @@ }, "node_modules/npm/node_modules/path-key": { "version": "3.1.1", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -25897,6 +26041,7 @@ }, "node_modules/npm/node_modules/path-scurry": { "version": "1.11.1", + "dev": true, "inBundle": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -25912,6 +26057,7 @@ }, "node_modules/npm/node_modules/postcss-selector-parser": { "version": "6.1.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -25924,6 +26070,7 @@ }, "node_modules/npm/node_modules/proc-log": { "version": "4.2.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -25932,6 +26079,7 @@ }, "node_modules/npm/node_modules/proggy": { "version": "2.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -25940,6 +26088,7 @@ }, "node_modules/npm/node_modules/promise-all-reject-late": { "version": "1.0.1", + "dev": true, "inBundle": true, "license": "ISC", "funding": { @@ -25948,6 +26097,7 @@ }, "node_modules/npm/node_modules/promise-call-limit": { "version": "3.0.1", + "dev": true, "inBundle": true, "license": "ISC", "funding": { @@ -25956,11 +26106,13 @@ }, "node_modules/npm/node_modules/promise-inflight": { "version": "1.0.1", + "dev": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/promise-retry": { "version": "2.0.1", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -25973,6 +26125,7 @@ }, "node_modules/npm/node_modules/promzard": { "version": "1.0.2", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25984,6 +26137,7 @@ }, "node_modules/npm/node_modules/qrcode-terminal": { "version": "0.12.0", + "dev": true, "inBundle": true, "bin": { "qrcode-terminal": "bin/qrcode-terminal.js" @@ -25991,6 +26145,7 @@ }, "node_modules/npm/node_modules/read": { "version": "3.0.1", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -26002,6 +26157,7 @@ }, "node_modules/npm/node_modules/read-cmd-shim": { "version": "4.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -26010,6 +26166,7 @@ }, "node_modules/npm/node_modules/read-package-json-fast": { "version": "3.0.2", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -26022,6 +26179,7 @@ }, "node_modules/npm/node_modules/retry": { "version": "0.12.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -26030,11 +26188,14 @@ }, "node_modules/npm/node_modules/safer-buffer": { "version": "2.1.2", + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/npm/node_modules/semver": { "version": "7.6.2", + "dev": true, "inBundle": true, "license": "ISC", "bin": { @@ -26046,6 +26207,7 @@ }, "node_modules/npm/node_modules/shebang-command": { "version": "2.0.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26057,6 +26219,7 @@ }, "node_modules/npm/node_modules/shebang-regex": { "version": "3.0.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -26065,6 +26228,7 @@ }, "node_modules/npm/node_modules/signal-exit": { "version": "4.1.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -26076,6 +26240,7 @@ }, "node_modules/npm/node_modules/sigstore": { "version": "2.3.1", + "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -26092,6 +26257,7 @@ }, "node_modules/npm/node_modules/smart-buffer": { "version": "4.2.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -26101,6 +26267,7 @@ }, "node_modules/npm/node_modules/socks": { "version": "2.8.3", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26114,6 +26281,7 @@ }, "node_modules/npm/node_modules/socks-proxy-agent": { "version": "8.0.4", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26127,6 +26295,7 @@ }, "node_modules/npm/node_modules/spdx-correct": { "version": "3.2.0", + "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -26136,6 +26305,7 @@ }, "node_modules/npm/node_modules/spdx-correct/node_modules/spdx-expression-parse": { "version": "3.0.1", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26145,11 +26315,13 @@ }, "node_modules/npm/node_modules/spdx-exceptions": { "version": "2.5.0", + "dev": true, "inBundle": true, "license": "CC-BY-3.0" }, "node_modules/npm/node_modules/spdx-expression-parse": { "version": "4.0.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26159,16 +26331,19 @@ }, "node_modules/npm/node_modules/spdx-license-ids": { "version": "3.0.18", + "dev": true, "inBundle": true, "license": "CC0-1.0" }, "node_modules/npm/node_modules/sprintf-js": { "version": "1.1.3", + "dev": true, "inBundle": true, "license": "BSD-3-Clause" }, "node_modules/npm/node_modules/ssri": { "version": "10.0.6", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -26180,6 +26355,7 @@ }, "node_modules/npm/node_modules/string-width": { "version": "4.2.3", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26194,6 +26370,7 @@ "node_modules/npm/node_modules/string-width-cjs": { "name": "string-width", "version": "4.2.3", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26207,6 +26384,7 @@ }, "node_modules/npm/node_modules/strip-ansi": { "version": "6.0.1", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26219,6 +26397,7 @@ "node_modules/npm/node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26230,6 +26409,7 @@ }, "node_modules/npm/node_modules/supports-color": { "version": "9.4.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -26241,6 +26421,7 @@ }, "node_modules/npm/node_modules/tar": { "version": "6.2.1", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -26257,6 +26438,7 @@ }, "node_modules/npm/node_modules/tar/node_modules/fs-minipass": { "version": "2.1.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -26268,6 +26450,7 @@ }, "node_modules/npm/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { "version": "3.3.6", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -26279,6 +26462,7 @@ }, "node_modules/npm/node_modules/tar/node_modules/minipass": { "version": "5.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -26287,16 +26471,19 @@ }, "node_modules/npm/node_modules/text-table": { "version": "0.2.0", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/tiny-relative-date": { "version": "1.3.0", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/treeverse": { "version": "3.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -26305,6 +26492,7 @@ }, "node_modules/npm/node_modules/tuf-js": { "version": "2.2.1", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26318,6 +26506,7 @@ }, "node_modules/npm/node_modules/unique-filename": { "version": "3.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -26329,6 +26518,7 @@ }, "node_modules/npm/node_modules/unique-slug": { "version": "4.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -26340,11 +26530,13 @@ }, "node_modules/npm/node_modules/util-deprecate": { "version": "1.0.2", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/validate-npm-package-license": { "version": "3.0.4", + "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -26354,6 +26546,7 @@ }, "node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { "version": "3.0.1", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26363,6 +26556,7 @@ }, "node_modules/npm/node_modules/validate-npm-package-name": { "version": "5.0.1", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -26371,11 +26565,13 @@ }, "node_modules/npm/node_modules/walk-up-path": { "version": "3.0.1", + "dev": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/which": { "version": "4.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -26390,6 +26586,7 @@ }, "node_modules/npm/node_modules/which/node_modules/isexe": { "version": "3.1.1", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -26398,6 +26595,7 @@ }, "node_modules/npm/node_modules/wrap-ansi": { "version": "8.1.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26415,6 +26613,7 @@ "node_modules/npm/node_modules/wrap-ansi-cjs": { "name": "wrap-ansi", "version": "7.0.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26431,6 +26630,7 @@ }, "node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { "version": "4.3.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26445,6 +26645,7 @@ }, "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-regex": { "version": "6.0.1", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -26456,11 +26657,13 @@ }, "node_modules/npm/node_modules/wrap-ansi/node_modules/emoji-regex": { "version": "9.2.2", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/wrap-ansi/node_modules/string-width": { "version": "5.1.2", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26477,6 +26680,7 @@ }, "node_modules/npm/node_modules/wrap-ansi/node_modules/strip-ansi": { "version": "7.1.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26491,6 +26695,7 @@ }, "node_modules/npm/node_modules/write-file-atomic": { "version": "5.0.1", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -26503,6 +26708,7 @@ }, "node_modules/npm/node_modules/yallist": { "version": "4.0.0", + "dev": true, "inBundle": true, "license": "ISC" }, @@ -33121,6 +33327,38 @@ "integrity": "sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==", "dev": true }, + "node_modules/vite-plugin-static-copy": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-1.0.6.tgz", + "integrity": "sha512-3uSvsMwDVFZRitqoWHj0t4137Kz7UynnJeq1EZlRW7e25h2068fyIZX4ORCCOAkfp1FklGxJNVJBkBOD+PZIew==", + "dev": true, + "dependencies": { + "chokidar": "^3.5.3", + "fast-glob": "^3.2.11", + "fs-extra": "^11.1.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0" + } + }, + "node_modules/vite-plugin-static-copy/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, "node_modules/vite-plugin-svgr": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/vite-plugin-svgr/-/vite-plugin-svgr-4.2.0.tgz", diff --git a/package.json b/package.json index ba7a54e1..8ac6aae9 100644 --- a/package.json +++ b/package.json @@ -84,6 +84,7 @@ "typescript": "^5.3.3", "vite": "^5.2.6", "vite-plugin-html": "^3.2.2", + "vite-plugin-static-copy": "^1.0.6", "vite-plugin-svgr": "^4.2.0", "vite-tsconfig-paths": "^4.2.0", "xvfb-maybe": "^0.2.1" diff --git a/src/utils/registerServiceWorker.ts b/src/utils/registerServiceWorker.ts index dbafb700..fc8f975c 100644 --- a/src/utils/registerServiceWorker.ts +++ b/src/utils/registerServiceWorker.ts @@ -3,7 +3,7 @@ import connectConfig from 'connect-config'; const serviceWorkerScriptPath = [ connectConfig.routerBasename, - 'service-worker.js', + 'assets/service-worker.js', ] .join('/') .replace(/\/{2,}/gm, '/'); diff --git a/vite.renderer.config.mts b/vite.renderer.config.mts index 4b061fde..cdac9c4c 100644 --- a/vite.renderer.config.mts +++ b/vite.renderer.config.mts @@ -6,6 +6,7 @@ import jotaiReactRefresh from 'jotai/babel/plugin-react-refresh'; import path from 'path'; import { HtmlTagDescriptor, PluginOption, defineConfig, loadEnv } from 'vite'; import { createHtmlPlugin } from 'vite-plugin-html'; +import { viteStaticCopy } from 'vite-plugin-static-copy'; import svgr from 'vite-plugin-svgr'; import pkg from './package.json'; @@ -56,6 +57,14 @@ export default defineConfig(({ mode }) => { }, }), generateVersionPlugin(isProd ? requiresHardRefresh : false), + viteStaticCopy({ + targets: [ + { + src: 'public/service-worker.js', + dest: 'assets', + }, + ], + }), ]; const authToken = process.env.SENTRY_AUTH_TOKEN; From fa9709256a7e89f6d090ae671138f08473994838 Mon Sep 17 00:00:00 2001 From: Guillermo Puente Date: Wed, 28 Aug 2024 17:15:24 -0400 Subject: [PATCH 12/90] feat: added service-worker.ts --- nginx.conf | 7 ++++ package-lock.json | 33 --------------- package.json | 6 +-- .../service-worker.ts | 40 ++++++++++++++----- src/utils/registerServiceWorker.ts | 2 +- tsconfig.sw.json | 15 +++++++ vite.renderer.config.mts | 9 ----- 7 files changed, 55 insertions(+), 57 deletions(-) rename public/service-worker.js => src/service-worker.ts (58%) create mode 100644 tsconfig.sw.json diff --git a/nginx.conf b/nginx.conf index 68e7f60e..dce80dfa 100644 --- a/nginx.conf +++ b/nginx.conf @@ -42,6 +42,13 @@ server { add_header Cache-Control "public"; } + location ${BASE_PATH}/service-worker.js { + alias /usr/share/nginx/html/service-worker.js; + expires -1; + access_log off; + add_header Cache-Control "no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0"; + } + location ${BASE_PATH} { root /usr/share/nginx/html; index index.html; diff --git a/package-lock.json b/package-lock.json index e16d8c06..8f9f0f57 100644 --- a/package-lock.json +++ b/package-lock.json @@ -85,7 +85,6 @@ "typescript": "^5.3.3", "vite": "^5.2.6", "vite-plugin-html": "^3.2.2", - "vite-plugin-static-copy": "^1.0.6", "vite-plugin-svgr": "^4.2.0", "vite-tsconfig-paths": "^4.2.0", "xvfb-maybe": "^0.2.1" @@ -33327,38 +33326,6 @@ "integrity": "sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==", "dev": true }, - "node_modules/vite-plugin-static-copy": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-1.0.6.tgz", - "integrity": "sha512-3uSvsMwDVFZRitqoWHj0t4137Kz7UynnJeq1EZlRW7e25h2068fyIZX4ORCCOAkfp1FklGxJNVJBkBOD+PZIew==", - "dev": true, - "dependencies": { - "chokidar": "^3.5.3", - "fast-glob": "^3.2.11", - "fs-extra": "^11.1.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "peerDependencies": { - "vite": "^5.0.0" - } - }, - "node_modules/vite-plugin-static-copy/node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, "node_modules/vite-plugin-svgr": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/vite-plugin-svgr/-/vite-plugin-svgr-4.2.0.tgz", diff --git a/package.json b/package.json index 8ac6aae9..e39cf335 100644 --- a/package.json +++ b/package.json @@ -26,11 +26,12 @@ "format": "prettier --write \"**/*.+(js|ts|jsx|tsx|json)\"", "dev:web": "vite -c vite.renderer.config.mts", "dev:nocache": "rm -rf node_modules/.vite && rm -rf node_modules/.cache && npm run dev:web", - "build:web": "NODE_OPTIONS=--max-old-space-size=6144 vite build -c vite.renderer.config.mts", + "build:web": "NODE_OPTIONS=--max-old-space-size=6144 vite build -c vite.renderer.config.mts && npm run build:service-worker", "preview:web": "vite preview -c vite.renderer.config.mts", "release": "semantic-release", "e2e": "playwright test", - "cy:open": "cypress open" + "cy:open": "cypress open", + "build:service-worker": "tsc --build ./tsconfig.sw.json" }, "devDependencies": { "@commitlint/cli": "^18.4.3", @@ -84,7 +85,6 @@ "typescript": "^5.3.3", "vite": "^5.2.6", "vite-plugin-html": "^3.2.2", - "vite-plugin-static-copy": "^1.0.6", "vite-plugin-svgr": "^4.2.0", "vite-tsconfig-paths": "^4.2.0", "xvfb-maybe": "^0.2.1" diff --git a/public/service-worker.js b/src/service-worker.ts similarity index 58% rename from public/service-worker.js rename to src/service-worker.ts index 97b1e910..4e0e2ad7 100644 --- a/public/service-worker.js +++ b/src/service-worker.ts @@ -1,26 +1,41 @@ +/// + +const _self = self as unknown as ServiceWorkerGlobalScope; + const VERSION_CACHE = 'version-cache'; const VERSION_KEY = 'app-version'; -self.addEventListener('install', event => { - self.skipWaiting(); +_self.addEventListener('install', () => { + _self.skipWaiting().catch(console.error); }); -self.addEventListener('activate', event => { - event.waitUntil(self.clients.claim()); +_self.addEventListener('activate', (event: ExtendableEvent) => { + event.waitUntil(_self.clients.claim()); }); +interface SeriveWorkerMessage extends ExtendableMessageEvent { + data: { + type: string; + version: string; + }; +} -self.addEventListener('message', async event => { +interface VersionResponse { + version: string; + requiresHardRefresh: boolean; +} + +_self.addEventListener('message', async (event: SeriveWorkerMessage) => { if (event.data && event.data.type === 'SET_APP_VERSION') { const cache = await caches.open(VERSION_CACHE); await cache.put(VERSION_KEY, new Response(event.data.version)); } - }); +}); async function checkForUpdates() { try { const response = await fetch('/version.json', { cache: 'no-store' }); - const newVersion = await response.json(); + const newVersion = (await response.json()) as VersionResponse; const cache = await caches.open(VERSION_CACHE); const cachedResponse = await cache.match(VERSION_KEY); @@ -29,7 +44,7 @@ async function checkForUpdates() { if (cachedResponse) { currentVersion = await cachedResponse.text(); } - + if (currentVersion === '') { // Initial cache await cache.put(VERSION_KEY, new Response(newVersion.version)); @@ -38,9 +53,12 @@ async function checkForUpdates() { console.log('Current version:', currentVersion); console.log('New version:', newVersion.version); - const clients = await self.clients.matchAll(); + const clients = await _self.clients.matchAll(); clients.forEach(client => { - client.postMessage({ type: 'NEW_VERSION_AVAILABLE', requiresHardRefresh: newVersion.requiresHardRefresh }); + client.postMessage({ + type: 'NEW_VERSION_AVAILABLE', + requiresHardRefresh: newVersion.requiresHardRefresh, + }); }); // Update the stored version @@ -52,4 +70,4 @@ async function checkForUpdates() { } // Check for updates every minute -setInterval(checkForUpdates, 60 * 1000); // 60 seconds +setInterval(checkForUpdates, 5 * 1000); // 60 seconds diff --git a/src/utils/registerServiceWorker.ts b/src/utils/registerServiceWorker.ts index fc8f975c..dbafb700 100644 --- a/src/utils/registerServiceWorker.ts +++ b/src/utils/registerServiceWorker.ts @@ -3,7 +3,7 @@ import connectConfig from 'connect-config'; const serviceWorkerScriptPath = [ connectConfig.routerBasename, - 'assets/service-worker.js', + 'service-worker.js', ] .join('/') .replace(/\/{2,}/gm, '/'); diff --git a/tsconfig.sw.json b/tsconfig.sw.json new file mode 100644 index 00000000..a9339f9d --- /dev/null +++ b/tsconfig.sw.json @@ -0,0 +1,15 @@ +{ + "compilerOptions": { + "allowSyntheticDefaultImports": true, + "isolatedModules": false, + "strict": true, + "module": "ESNext", + "target": "ESNext", + "lib": ["es2019", "es6", "dom", "webworker"], + "noEmit": false, + "moduleResolution": "node", + "skipLibCheck": true, + "outDir": "./dist" + }, + "files": ["./src/service-worker.ts"] +} diff --git a/vite.renderer.config.mts b/vite.renderer.config.mts index cdac9c4c..4b061fde 100644 --- a/vite.renderer.config.mts +++ b/vite.renderer.config.mts @@ -6,7 +6,6 @@ import jotaiReactRefresh from 'jotai/babel/plugin-react-refresh'; import path from 'path'; import { HtmlTagDescriptor, PluginOption, defineConfig, loadEnv } from 'vite'; import { createHtmlPlugin } from 'vite-plugin-html'; -import { viteStaticCopy } from 'vite-plugin-static-copy'; import svgr from 'vite-plugin-svgr'; import pkg from './package.json'; @@ -57,14 +56,6 @@ export default defineConfig(({ mode }) => { }, }), generateVersionPlugin(isProd ? requiresHardRefresh : false), - viteStaticCopy({ - targets: [ - { - src: 'public/service-worker.js', - dest: 'assets', - }, - ], - }), ]; const authToken = process.env.SENTRY_AUTH_TOKEN; From 4595391fc59f5c948a2156b43e080b379497455e Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Thu, 29 Aug 2024 13:37:31 +0000 Subject: [PATCH 13/90] chore(release): set `package.json` to 1.0.0-dev.75 [skip ci] # [1.0.0-dev.75](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.74...v1.0.0-dev.75) (2024-08-29) ### Bug Fixes * broken cypress tests ([cc9af0a](https://github.com/powerhouse-inc/document-model-electron/commit/cc9af0ad97b3bf93e488b02dd65e1e87201112a4)) * moved service-worker script to assets folder ([900b11c](https://github.com/powerhouse-inc/document-model-electron/commit/900b11c3d0be4dcf88fb8a8aaff7c2234930b0ca)) ### Features * added service-worker.ts ([fa97092](https://github.com/powerhouse-inc/document-model-electron/commit/fa9709256a7e89f6d090ae671138f08473994838)) * run e2e tests when a PR is open ([a6682b6](https://github.com/powerhouse-inc/document-model-electron/commit/a6682b6cfd9476fd49dfe1c8738985a0078b98f9)) --- CHANGELOG.md | 14 ++++++++++++++ package.json | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d333a9f5..112ef6db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,17 @@ +# [1.0.0-dev.75](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.74...v1.0.0-dev.75) (2024-08-29) + + +### Bug Fixes + +* broken cypress tests ([cc9af0a](https://github.com/powerhouse-inc/document-model-electron/commit/cc9af0ad97b3bf93e488b02dd65e1e87201112a4)) +* moved service-worker script to assets folder ([900b11c](https://github.com/powerhouse-inc/document-model-electron/commit/900b11c3d0be4dcf88fb8a8aaff7c2234930b0ca)) + + +### Features + +* added service-worker.ts ([fa97092](https://github.com/powerhouse-inc/document-model-electron/commit/fa9709256a7e89f6d090ae671138f08473994838)) +* run e2e tests when a PR is open ([a6682b6](https://github.com/powerhouse-inc/document-model-electron/commit/a6682b6cfd9476fd49dfe1c8738985a0078b98f9)) + # [1.0.0-dev.74](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.73...v1.0.0-dev.74) (2024-08-26) diff --git a/package.json b/package.json index e39cf335..f40865ec 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.74", + "version": "1.0.0-dev.75", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From 9b0c99a151323af4a08d0d9a901920edb134ed4f Mon Sep 17 00:00:00 2001 From: acaldas Date: Sat, 31 Aug 2024 12:53:00 +0100 Subject: [PATCH 14/90] feat: fix service worker build --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index f40865ec..b4f14723 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,8 @@ "format": "prettier --write \"**/*.+(js|ts|jsx|tsx|json)\"", "dev:web": "vite -c vite.renderer.config.mts", "dev:nocache": "rm -rf node_modules/.vite && rm -rf node_modules/.cache && npm run dev:web", - "build:web": "NODE_OPTIONS=--max-old-space-size=6144 vite build -c vite.renderer.config.mts && npm run build:service-worker", + "build:web": "NODE_OPTIONS=--max-old-space-size=6144 vite build -c vite.renderer.config.mts", + "postbuild:web": "build:service-worker", "preview:web": "vite preview -c vite.renderer.config.mts", "release": "semantic-release", "e2e": "playwright test", From 02dc6a985bad5d3ee8187fa4b6b28f1622e1f633 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sat, 31 Aug 2024 11:54:56 +0000 Subject: [PATCH 15/90] chore(release): set `package.json` to 1.0.0-dev.76 [skip ci] # [1.0.0-dev.76](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.75...v1.0.0-dev.76) (2024-08-31) ### Features * fix service worker build ([9b0c99a](https://github.com/powerhouse-inc/document-model-electron/commit/9b0c99a151323af4a08d0d9a901920edb134ed4f)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 112ef6db..64e59e5f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.0.0-dev.76](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.75...v1.0.0-dev.76) (2024-08-31) + + +### Features + +* fix service worker build ([9b0c99a](https://github.com/powerhouse-inc/document-model-electron/commit/9b0c99a151323af4a08d0d9a901920edb134ed4f)) + # [1.0.0-dev.75](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.74...v1.0.0-dev.75) (2024-08-29) diff --git a/package.json b/package.json index b4f14723..f857e364 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.75", + "version": "1.0.0-dev.76", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From 38e0e927fde54711f5c327d66a43907510b2dcc5 Mon Sep 17 00:00:00 2001 From: acaldas Date: Sat, 31 Aug 2024 12:57:50 +0100 Subject: [PATCH 16/90] fix: fix service worker build --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index f857e364..1dca85bb 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.76", + "version": "1.0.0-dev.75", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", @@ -27,7 +27,7 @@ "dev:web": "vite -c vite.renderer.config.mts", "dev:nocache": "rm -rf node_modules/.vite && rm -rf node_modules/.cache && npm run dev:web", "build:web": "NODE_OPTIONS=--max-old-space-size=6144 vite build -c vite.renderer.config.mts", - "postbuild:web": "build:service-worker", + "postbuild:web": "npm run build:service-worker", "preview:web": "vite preview -c vite.renderer.config.mts", "release": "semantic-release", "e2e": "playwright test", From b92cd031d8eb4071b0f8e04858e6abf1a7fe0f97 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sat, 31 Aug 2024 11:59:36 +0000 Subject: [PATCH 17/90] chore(release): set `package.json` to 1.0.0-dev.77 [skip ci] # [1.0.0-dev.77](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.76...v1.0.0-dev.77) (2024-08-31) ### Bug Fixes * fix service worker build ([38e0e92](https://github.com/powerhouse-inc/document-model-electron/commit/38e0e927fde54711f5c327d66a43907510b2dcc5)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 64e59e5f..ac1ad1d5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.0.0-dev.77](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.76...v1.0.0-dev.77) (2024-08-31) + + +### Bug Fixes + +* fix service worker build ([38e0e92](https://github.com/powerhouse-inc/document-model-electron/commit/38e0e927fde54711f5c327d66a43907510b2dcc5)) + # [1.0.0-dev.76](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.75...v1.0.0-dev.76) (2024-08-31) diff --git a/package.json b/package.json index 1dca85bb..c48b168c 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.75", + "version": "1.0.0-dev.77", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From d4567a4b1b4ce4d4b15dd8f12116b995c5df4dd2 Mon Sep 17 00:00:00 2001 From: Frank Date: Fri, 23 Aug 2024 14:11:11 +0200 Subject: [PATCH 18/90] feat: added env vars for connect --- .dockerignore | 1 - .env | 100 +++++++----------- .env.prod | 3 - .prettierignore | 3 +- Dockerfile | 68 +----------- connect.config.ts | 34 +++--- index.html | 2 +- package-lock.json | 16 ++- package.json | 11 +- .../modal/modals/DebugSettingsModal.tsx | 6 +- src/env.d.ts | 27 ----- src/hooks/useAllowList.ts | 4 +- src/hooks/useFeatureFlags/default-config.ts | 6 +- src/services/renown/constants.ts | 6 +- src/utils/registerServiceWorker.ts | 6 +- src/vite-env.d.ts | 63 +++++++++++ vite.renderer.config.mts | 9 +- 17 files changed, 164 insertions(+), 201 deletions(-) delete mode 100644 .env.prod delete mode 100644 src/env.d.ts create mode 100644 src/vite-env.d.ts diff --git a/.dockerignore b/.dockerignore index cfbfa63b..04c01ba7 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,3 +1,2 @@ -.env node_modules/ dist/ \ No newline at end of file diff --git a/.env b/.env index 9f63d72a..80549efd 100644 --- a/.env +++ b/.env @@ -1,63 +1,37 @@ -VITE_DISABLED_EDITORS=powerhouse/document-drive -VITE_DEFAULT_DRIVES_URL=https://apps.powerhouse.io/staging/makerdao/switchboard/d/monetalis -VITE_BASE_HREF=/ -ASSET_URL=/ - -VITE_APP_REQUIRES_HARD_REFRESH=true - -######## RENOWN CONFIG ######## -# Renown instance to use for login -# VITE_RENOWN_URL=http://localhost:3000 - -# Network Id to use for signing the Renown credential (default: 1 for Ethereum mainnet) -# VITE_RENOWN_NETWORK_ID=1 - -# Set the base URL of the app (default: /) -VITE_ROUTER_BASENAME=/ - -######## CONNECT CONTENT CONFIG ######## -# Set to false to hide searchbar in folder conent (default: true) -VITE_SEARCH_BAR_ENABLED=false - -VITE_SENTRY_DSN="" -VITE_SENTRY_ENV=dev - -######## CONNECT SETTINGS ######## -# Set to true to hide document model selection from connect settings (default: false) -# VITE_HIDE_DOCUMENT_MODEL_SELECTION_SETTINGS=true - -######## PUBLIC DRIVES CONFIG ######## -# Set to false to hide public drives section in the sidebar (default: true) -# VITE_PUBLIC_DRIVES_ENABLED=false - -# Set to true to disable adding public drives (default: false) -#VITE_DISABLE_ADD_PUBLIC_DRIVES=false - -# Set to true to disable deleting public drives (default: false) -#VITE_DISABLE_DELETE_PUBLIC_DRIVES=false - - - - -######## CLOUD DRIVES CONFIG ######## -# Set to false to hide cloud drives section in the sidebar (default: true) -# VITE_CLOUD_DRIVES_ENABLED=false - -# Set to true to disable adding cloud drives (default: false) -#VITE_DISABLE_ADD_CLOUD_DRIVES=false - -# Set to true to disable deleting cloud drives (default: false) -#VITE_DISABLE_DELETE_CLOUD_DRIVES=false - - - - -######## LOCAL DRIVES CONFIG ######## -# Set to false to hide local drives section in the sidebar (default: true) -# VITE_LOCAL_DRIVES_ENABLED=false - -# Set to true to disable adding local drives (default: false) -#VITE_DISABLE_ADD_LOCAL_DRIVES=true - -# Set to true to disable deleting local drives (default: false) -#VITE_DISABLE_DELETE_LOCAL_DRIVES=false +# build arguments +BASE_PATH="/" # vite base path +BASE_HREF="./" # electron-forge base href +PH_CONNECT_APP_REQUIRES_HARD_REFRESH="true" +SENTRY_AUTH_TOKEN= +SENTRY_ORG= +SENTRY_PROJECT= + +# environment variables + +## app configuration & feature flags +PH_CONNECT_ROUTER_BASENAME="/" +PH_CONNECT_DEFAULT_DRIVES_URL="" +PH_CONNECT_ENABLED_EDITORS="*" +PH_CONNECT_DISABLE_ADD_PUBLIC_DRIVES="false" +PH_CONNECT_SEARCH_BAR_ENABLED="false" +PH_CONNECT_DISABLE_ADD_CLOUD_DRIVES="false" +PH_CONNECT_DISABLE_ADD_LOCAL_DRIVES="false" +PH_CONNECT_DISABLE_DELETE_PUBLIC_DRIVES="false" +PH_CONNECT_DISABLE_DELETE_CLOUD_DRIVES="false" +PH_CONNECT_DISABLE_DELETE_LOCAL_DRIVES="false" +PH_CONNECT_PUBLIC_DRIVES_ENABLED="true" +PH_CONNECT_CLOUD_DRIVES_ENABLED="true" +PH_CONNECT_LOCAL_DRIVES_ENABLED="true" +PH_CONNECT_ARBITRUM_ALLOW_LIST="" +PH_CONNECT_RWA_ALLOW_LIST="" +PH_CONNECT_HIDE_DOCUMENT_MODEL_SELECTION_SETTINGS="true" + +PH_CONNECT_RENOWN_URL="https://www.renown.id" +PH_CONNECT_RENOWN_NETWORK_ID="eip155" +PH_CONNECT_RENOWN_CHAIN_ID=1 +PH_CONNECT_DISABLED_EDITORS="" + +## error tracking +PH_CONNECT_SENTRY_DSN="" +PH_CONNECT_SENTRY_PROJECT="" +PH_CONNECT_SENTRY_ENV="prod diff --git a/.env.prod b/.env.prod deleted file mode 100644 index 4f208e58..00000000 --- a/.env.prod +++ /dev/null @@ -1,3 +0,0 @@ -VITE_BASE_HREF=/staging/powerhouse/connect -ASSET_URL=/staging/powerhouse/connect -VITE_ROUTER_BASENAME=/staging/powerhouse/connect \ No newline at end of file diff --git a/.prettierignore b/.prettierignore index 03c52d09..05e4d805 100644 --- a/.prettierignore +++ b/.prettierignore @@ -19,4 +19,5 @@ vite.renderer.config.ts .commitlintrc. .github .releaserc -scripts \ No newline at end of file +scripts +src/vite-env.d.ts \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 9625d67f..4ccc1c11 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ FROM node:lts-alpine AS builder -ARG BASE_PATH="" +ARG BASE_PATH="/" ENV BASE_PATH=${BASE_PATH} ARG SENTRY_ORG="" @@ -11,70 +11,11 @@ ENV SENTRY_PROJECT=${SENTRY_PROJECT} ARG SENTRY_AUTH_TOKEN="" ENV SENTRY_AUTH_TOKEN=${SENTRY_AUTH_TOKEN} -ARG VITE_BASE_HREF="" -ENV VITE_BASE_HREF=${VITE_BASE_HREF} - -ARG VITE_ROUTER_BASENAME="" -ENV VITE_ROUTER_BASENAME=${VITE_ROUTER_BASENAME} - -ARG VITE_RENOWN_NETWORK_ID="eip155" -ENV VITE_RENOWN_NETWORK_ID=${VITE_RENOWN_NETWORK_ID} - -ARG VITE_RENOWN_CHAIN_ID=1 -ENV VITE_RENOWN_CHAIN_ID=${VITE_RENOWN_CHAIN_ID} - -ARG VITE_SENTRY_DSN="" -ENV VITE_SENTRY_DSN=${VITE_SENTRY_DSN} - -ARG VITE_SENTRY_ENV="dev" -ENV VITE_SENTRY_ENV=${VITE_SENTRY_ENV} - -ARG VITE_DEFAULT_DRIVES_URL="" -ENV VITE_DEFAULT_DRIVES_URL=${VITE_DEFAULT_DRIVES_URL} - -ARG VITE_ENABLED_EDITORS="*" -ENV VITE_ENABLED_EDITORS=${VITE_ENABLED_EDITORS} - -ARG VITE_DISABLE_ADD_PUBLIC_DRIVES=false -ENV VITE_DISABLE_ADD_PUBLIC_DRIVES=${VITE_DISABLE_ADD_PUBLIC_DRIVES} - -ARG VITE_RENOWN_URL="https://www.renown.id" -ENV VITE_RENOWN_URL=${VITE_RENOWN_URL} - -ARG VITE_SEARCH_BAR_ENABLED=false -ENV VITE_SEARCH_BAR_ENABLED=${VITE_SEARCH_BAR_ENABLED} - -ARG VITE_DISABLE_ADD_CLOUD_DRIVES=false -ENV VITE_DISABLE_ADD_CLOUD_DRIVES=${VITE_DISABLE_ADD_CLOUD_DRIVES} - -ARG VITE_DISABLE_ADD_LOCAL_DRIVES=false -ENV VITE_DISABLE_ADD_LOCAL_DRIVES=${VITE_DISABLE_ADD_LOCAL_DRIVES} - -ARG VITE_DISABLE_DELETE_PUBLIC_DRIVES=false -ENV VITE_DISABLE_DELETE_PUBLIC_DRIVES=${VITE_DISABLE_DELETE_PUBLIC_DRIVES} - -ARG VITE_DISABLE_DELETE_CLOUD_DRIVES=false -ENV VITE_DISABLE_DELETE_CLOUD_DRIVES=${VITE_DISABLE_DELETE_CLOUD_DRIVES} - -ARG VITE_DISABLE_DELETE_LOCAL_DRIVES=false -ENV VITE_DISABLE_DELETE_LOCAL_DRIVES=${VITE_DISABLE_DELETE_LOCAL_DRIVES} - -ARG VITE_LOCAL_DRIVES_ENABLED=true -ENV VITE_LOCAL_DRIVES_ENABLED=${VITE_LOCAL_DRIVES_ENABLED} - -ARG VITE_ARBITRUM_ALLOW_LIST="" -ENV VITE_ARBITRUM_ALLOW_LIST=${VITE_ARBITRUM_ALLOW_LIST} - -ARG VITE_RWA_ALLOW_LIST="" -ENV VITE_RWA_ALLOW_LIST=${VITE_RWA_ALLOW_LIST} - -ARG VITE_HIDE_DOCUMENT_MODEL_SELECTION_SETTINGS=true -ENV VITE_HIDE_DOCUMENT_MODEL_SELECTION_SETTINGS=${VITE_HIDE_DOCUMENT_MODEL_SELECTION_SETTINGS} - WORKDIR /opt/app COPY . . RUN npm install -g husky vite RUN npm install --frozen-lockfile --force + RUN npm run build:web -- --base ${BASE_PATH} # Production image, copy all the files and run next @@ -85,9 +26,8 @@ WORKDIR /opt/app ENV NODE_ENV=production ARG PORT=80 ENV PORT=${PORT} -ARG BASE_PATH="" +ARG BASE_PATH="/" ENV BASE_PATH=${BASE_PATH} COPY --from=builder /opt/app/dist /usr/share/nginx/html - COPY nginx.conf /etc/nginx/conf.d/default.conf.template -CMD /bin/sh -c "envsubst '\$PORT,\$BASE_PATH' < /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf" && nginx -g 'daemon off;' +ENTRYPOINT sh -c "/usr/share/nginx/html/vite-envs.sh && envsubst '\$PORT,\$BASE_PATH' < /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'" \ No newline at end of file diff --git a/connect.config.ts b/connect.config.ts index ab75688e..bbb01107 100644 --- a/connect.config.ts +++ b/connect.config.ts @@ -1,40 +1,40 @@ import { CLOUD, LOCAL, PUBLIC } from "@powerhousedao/design-system"; const DISABLE_ADD_PUBLIC_DRIVES = - import.meta.env.VITE_DISABLE_ADD_PUBLIC_DRIVES || undefined; + import.meta.env.PH_CONNECT_DISABLE_ADD_PUBLIC_DRIVES || undefined; const DISABLE_ADD_CLOUD_DRIVES = - import.meta.env.VITE_DISABLE_ADD_CLOUD_DRIVES || undefined; + import.meta.env.PH_CONNECT_DISABLE_ADD_CLOUD_DRIVES || undefined; const DISABLE_ADD_LOCAL_DRIVES = - import.meta.env.VITE_DISABLE_ADD_LOCAL_DRIVES || undefined; + import.meta.env.PH_CONNECT_DISABLE_ADD_LOCAL_DRIVES || undefined; const DISABLE_DELETE_PUBLIC_DRIVES = - import.meta.env.VITE_DISABLE_DELETE_PUBLIC_DRIVES || undefined; + import.meta.env.PH_CONNECT_DISABLE_DELETE_PUBLIC_DRIVES || undefined; const DISABLE_DELETE_CLOUD_DRIVES = - import.meta.env.VITE_DISABLE_DELETE_CLOUD_DRIVES || undefined; + import.meta.env.PH_CONNECT_DISABLE_DELETE_CLOUD_DRIVES || undefined; const DISABLE_DELETE_LOCAL_DRIVES = - import.meta.env.VITE_DISABLE_DELETE_LOCAL_DRIVES || undefined; + import.meta.env.PH_CONNECT_DISABLE_DELETE_LOCAL_DRIVES || undefined; const LOCAL_DRIVES_ENABLED = - import.meta.env.VITE_LOCAL_DRIVES_ENABLED || undefined; + import.meta.env.PH_CONNECT_LOCAL_DRIVES_ENABLED || undefined; const CLOUD_DRIVES_ENABLED = - import.meta.env.VITE_CLOUD_DRIVES_ENABLED || undefined; + import.meta.env.PH_CONNECT_CLOUD_DRIVES_ENABLED || undefined; const PUBLIC_DRIVES_ENABLED = - import.meta.env.VITE_PUBLIC_DRIVES_ENABLED || undefined; + import.meta.env.PH_CONNECT_PUBLIC_DRIVES_ENABLED || undefined; -const SEARCH_BAR_ENABLED = import.meta.env.VITE_SEARCH_BAR_ENABLED || undefined; +const SEARCH_BAR_ENABLED = import.meta.env.PH_CONNECT_SEARCH_BAR_ENABLED || undefined; const HIDE_DOCUMENT_MODEL_SELECTION_SETTINGS = - import.meta.env.VITE_HIDE_DOCUMENT_MODEL_SELECTION_SETTINGS || 'false'; + import.meta.env.PH_CONNECT_HIDE_DOCUMENT_MODEL_SELECTION_SETTINGS || 'false'; -const VITE_ROUTER_BASENAME = import.meta.env.VITE_ROUTER_BASENAME || '/'; +const PH_CONNECT_ROUTER_BASENAME = import.meta.env.PH_CONNECT_ROUTER_BASENAME || '/'; -const VITE_SENTRY_DSN = import.meta.env.VITE_SENTRY_DSN || ''; -const VITE_SENTRY_ENV = import.meta.env.VITE_SENTRY_ENV || 'dev'; +const PH_CONNECT_SENTRY_DSN = import.meta.env.PH_CONNECT_SENTRY_DSN || ''; +const PH_CONNECT_SENTRY_ENV = import.meta.env.PH_CONNECT_SENTRY_ENV || 'dev'; export default { - routerBasename: VITE_ROUTER_BASENAME, + routerBasename: PH_CONNECT_ROUTER_BASENAME, sentry: { - dsn: VITE_SENTRY_DSN, - env: VITE_SENTRY_ENV, + dsn: PH_CONNECT_SENTRY_DSN, + env: PH_CONNECT_SENTRY_ENV, }, content: { showSearchBar: SEARCH_BAR_ENABLED !== 'false', diff --git a/index.html b/index.html index 109d42d6..f581d991 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,7 @@ Powerhouse Connect - +
diff --git a/package-lock.json b/package-lock.json index 8f9f0f57..0d2b88e8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@powerhousedao/connect", - "version": "1.0.0-dev.74", + "version": "1.0.0-dev.77", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@powerhousedao/connect", - "version": "1.0.0-dev.74", + "version": "1.0.0-dev.77", "license": "AGPL-3.0-only", "dependencies": { "@powerhousedao/design-system": "1.0.0-alpha.160", @@ -31,7 +31,8 @@ "react-stately": "^3.31.0", "tailwind-merge": "^1.14.0", "uuid": "^9.0.1", - "viem": "^2.8.13" + "viem": "^2.8.13", + "vite-envs": "^4.4.1" }, "devDependencies": { "@commitlint/cli": "^18.4.3", @@ -33291,6 +33292,15 @@ } } }, + "node_modules/vite-envs": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/vite-envs/-/vite-envs-4.4.1.tgz", + "integrity": "sha512-VqYGfOyPkyLlA9D3QRoqmvyQjPatyV/sChTOZ7qBAC8LsL0RQ8lJ+nEz5aT0KMTSm2E2d+ZZhodAfT2hbikRSw==", + "license": "MIT", + "bin": { + "vite-envs": "bin/main.js" + } + }, "node_modules/vite-plugin-html": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/vite-plugin-html/-/vite-plugin-html-3.2.2.tgz", diff --git a/package.json b/package.json index c48b168c..9458c177 100644 --- a/package.json +++ b/package.json @@ -17,10 +17,10 @@ "scripts": { "start": "electron-forge start", "package": "electron-forge package", - "make": "VITE_BASE_HREF=./ electron-forge make", - "make:mac": "VITE_BASE_HREF=./ electron-forge make -p darwin", - "make:linux": "VITE_BASE_HREF=./ electron-forge make -p linux", - "make:windows": "VITE_BASE_HREF=./ electron-forge make -p win32", + "make": "PH_CONNECT_BASE_HREF=./ electron-forge make", + "make:mac": "PH_CONNECT_BASE_HREF=./ electron-forge make -p darwin", + "make:linux": "PH_CONNECT_BASE_HREF=./ electron-forge make -p linux", + "make:windows": "PH_CONNECT_BASE_HREF=./ electron-forge make -p win32", "publish": "electron-forge publish", "lint": "eslint --ext .js,.ts,.tsx . && tsc --noemit --project tsconfig.spec.json", "format": "prettier --write \"**/*.+(js|ts|jsx|tsx|json)\"", @@ -113,7 +113,8 @@ "react-stately": "^3.31.0", "tailwind-merge": "^1.14.0", "uuid": "^9.0.1", - "viem": "^2.8.13" + "viem": "^2.8.13", + "vite-envs": "^4.4.1" }, "optionalDependencies": { "@esbuild/linux-x64": "^0.21.4", diff --git a/src/components/modal/modals/DebugSettingsModal.tsx b/src/components/modal/modals/DebugSettingsModal.tsx index e3c2a698..7ea8e55e 100644 --- a/src/components/modal/modals/DebugSettingsModal.tsx +++ b/src/components/modal/modals/DebugSettingsModal.tsx @@ -5,11 +5,11 @@ import { Icon, Modal, } from '@powerhousedao/design-system'; +import { version } from 'package.json'; import { useEffect, useState } from 'react'; import { useDocumentDriveServer } from 'src/hooks/useDocumentDriveServer'; import serviceWorkerManager from 'src/utils/registerServiceWorker'; import { v4 as uuid } from 'uuid'; - export interface DebugSettingsModalProps { open: boolean; onClose: () => void; @@ -125,9 +125,7 @@ export const DebugSettingsModal: React.FC = props => {
- - App Version: {process.env.APP_VERSION} - + App Version: {version}
diff --git a/src/env.d.ts b/src/env.d.ts deleted file mode 100644 index cf4180a2..00000000 --- a/src/env.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -/// - -interface ImportMetaEnv { - VITE_ENABLED_EDITORS: string; - VITE_DISABLED_EDITORS: string; - VITE_DEFAULT_DRIVES_URL: string; - VITE_DISABLE_ADD_PUBLIC_DRIVES: string; - VITE_DISABLE_ADD_CLOUD_DRIVES: string; - VITE_DISABLE_ADD_LOCAL_DRIVES: string; - VITE_DISABLE_DELETE_PUBLIC_DRIVES: string; - VITE_DISABLE_DELETE_CLOUD_DRIVES: string; - VITE_DISABLE_DELETE_LOCAL_DRIVES: string; - VITE_PUBLIC_DRIVES_ENABLED: string; - VITE_CLOUD_DRIVES_ENABLED: string; - VITE_LOCAL_DRIVES_ENABLED: string; - VITE_SEARCH_BAR_ENABLED: string; - VITE_ROUTER_BASENAME: string; - VITE_SENTRY_DSN: string; - VITE_SENTRY_ENV: string; - VITE_ARBITRUM_ALLOW_LIST: string | undefined; - VITE_RWA_ALLOW_LIST: string | undefined; - VITE_HIDE_DOCUMENT_MODEL_SELECTION_SETTINGS: string; -} - -interface ImportMeta { - readonly env: ImportMetaEnv; -} diff --git a/src/hooks/useAllowList.ts b/src/hooks/useAllowList.ts index 3346e11e..634e934f 100644 --- a/src/hooks/useAllowList.ts +++ b/src/hooks/useAllowList.ts @@ -7,8 +7,8 @@ export function useAllowList(): { } { const { user, status } = useLogin(); - const arbitrumAllowListEnvString = import.meta.env.VITE_ARBITRUM_ALLOW_LIST; - const rwaAllowListEnvString = import.meta.env.VITE_RWA_ALLOW_LIST; + const arbitrumAllowListEnvString = import.meta.env.PH_CONNECT_ARBITRUM_ALLOW_LIST; + const rwaAllowListEnvString = import.meta.env.PH_CONNECT_RWA_ALLOW_LIST; const arbitrumAllowListIsDefined = !!arbitrumAllowListEnvString && arbitrumAllowListEnvString !== ''; diff --git a/src/hooks/useFeatureFlags/default-config.ts b/src/hooks/useFeatureFlags/default-config.ts index 7fc5ffab..f0e43c87 100644 --- a/src/hooks/useFeatureFlags/default-config.ts +++ b/src/hooks/useFeatureFlags/default-config.ts @@ -1,10 +1,10 @@ export const FEATURE_FLAG_KEY_STORAGE = 'feature-flags-config'; -const ENABLED_EDITORS = import.meta.env.VITE_ENABLED_EDITORS || undefined; +const ENABLED_EDITORS = import.meta.env.PH_CONNECT_ENABLED_EDITORS || undefined; const enabledEditors = ENABLED_EDITORS?.split(','); -const DISABLED_EDITORS = import.meta.env.VITE_DISABLED_EDITORS || undefined; -const DEFAULT_DRIVES_URL = import.meta.env.VITE_DEFAULT_DRIVES_URL || undefined; +const DISABLED_EDITORS = import.meta.env.PH_CONNECT_DISABLED_EDITORS || undefined; +const DEFAULT_DRIVES_URL = import.meta.env.PH_CONNECT_DEFAULT_DRIVES_URL || undefined; const disabledEditors = DISABLED_EDITORS?.split(','); export interface FeatureFlag { diff --git a/src/services/renown/constants.ts b/src/services/renown/constants.ts index 5462e1ea..762af7a9 100644 --- a/src/services/renown/constants.ts +++ b/src/services/renown/constants.ts @@ -1,9 +1,9 @@ export const RENOWN_URL = - (import.meta.env.VITE_RENOWN_URL as string) || 'https://www.renown.id'; + import.meta.env.PH_CONNECT_RENOWN_URL || 'https://www.renown.id'; export const RENOWN_NETWORK_ID = - (import.meta.env.VITE_RENOWN_NETWORK_ID as string) || 'eip155'; + import.meta.env.PH_CONNECT_RENOWN_NETWORK_ID || 'eip155'; export const RENOWN_CHAIN_ID = - (import.meta.env.VITE_RENOWN_CHAIN_ID as string) || '1'; + import.meta.env.PH_CONNECT_RENOWN_CHAIN_ID || '1'; export const DOMAIN_TYPE = [ { name: 'name', type: 'string' }, diff --git a/src/utils/registerServiceWorker.ts b/src/utils/registerServiceWorker.ts index dbafb700..8e93fbcf 100644 --- a/src/utils/registerServiceWorker.ts +++ b/src/utils/registerServiceWorker.ts @@ -1,3 +1,5 @@ +import { version } from "package.json" + /* eslint-disable @typescript-eslint/no-unsafe-member-access */ import connectConfig from 'connect-config'; @@ -64,7 +66,7 @@ class ServiceWorkerManager { if ( event.data && event.data.type === - 'NEW_VERSION_AVAILABLE' && + 'NEW_VERSION_AVAILABLE' && event.data.requiresHardRefresh === true ) { if (this.debug) { @@ -78,7 +80,7 @@ class ServiceWorkerManager { if (navigator.serviceWorker.controller) { navigator.serviceWorker.controller.postMessage({ type: 'SET_APP_VERSION', - version: process.env.APP_VERSION, + version, }); } diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts new file mode 100644 index 00000000..99d8faa5 --- /dev/null +++ b/src/vite-env.d.ts @@ -0,0 +1,63 @@ +/// + + +type ImportMetaEnv = { + // Auto-generated by `npx vite-envs update-types` and hot-reloaded by the `vite-env` plugin + // You probably want to add `/src/vite-env.d.ts` to your .prettierignore + BASE_URL: string + MODE: string + DEV: boolean + PROD: boolean + BASE_PATH: string + BASE_HREF: string + PH_CONNECT_APP_REQUIRES_HARD_REFRESH: string + SENTRY_AUTH_TOKEN: string + SENTRY_ORG: string + SENTRY_PROJECT: string + PH_CONNECT_ROUTER_BASENAME: string + PH_CONNECT_DEFAULT_DRIVES_URL: string + PH_CONNECT_ENABLED_EDITORS: string + PH_CONNECT_DISABLE_ADD_PUBLIC_DRIVES: string + PH_CONNECT_SEARCH_BAR_ENABLED: string + PH_CONNECT_DISABLE_ADD_CLOUD_DRIVES: string + PH_CONNECT_DISABLE_ADD_LOCAL_DRIVES: string + PH_CONNECT_DISABLE_DELETE_PUBLIC_DRIVES: string + PH_CONNECT_DISABLE_DELETE_CLOUD_DRIVES: string + PH_CONNECT_DISABLE_DELETE_LOCAL_DRIVES: string + PH_CONNECT_PUBLIC_DRIVES_ENABLED: string + PH_CONNECT_CLOUD_DRIVES_ENABLED: string + PH_CONNECT_LOCAL_DRIVES_ENABLED: string + PH_CONNECT_ARBITRUM_ALLOW_LIST: string + PH_CONNECT_RWA_ALLOW_LIST: string + PH_CONNECT_HIDE_DOCUMENT_MODEL_SELECTION_SETTINGS: string + PH_CONNECT_RENOWN_URL: string + PH_CONNECT_RENOWN_NETWORK_ID: string + PH_CONNECT_RENOWN_CHAIN_ID: string + PH_CONNECT_DISABLED_EDITORS: string + PH_CONNECT_SENTRY_DSN: string + PH_CONNECT_SENTRY_PROJECT: string + PH_CONNECT_SENTRY_ENV: string + // @user-defined-start + /* + * You can use this section to explicitly extend the type definition of `import.meta.env` + * This is useful if you're using Vite plugins that define specific `import.meta.env` properties. + * If you're not using such plugins, this section should remain as is. + */ + SSR: boolean; + // @user-defined-end +} + + + +interface ImportMeta { + // Auto-generated by `npx vite-envs update-types` + + url: string + + readonly hot?: import('vite-envs/types/hot').ViteHotContext + + readonly env: ImportMetaEnv + + glob: import('vite-envs/types/importGlob').ImportGlobFunction +} + diff --git a/vite.renderer.config.mts b/vite.renderer.config.mts index 4b061fde..4cb34eb4 100644 --- a/vite.renderer.config.mts +++ b/vite.renderer.config.mts @@ -8,6 +8,7 @@ import { HtmlTagDescriptor, PluginOption, defineConfig, loadEnv } from 'vite'; import { createHtmlPlugin } from 'vite-plugin-html'; import svgr from 'vite-plugin-svgr'; import pkg from './package.json'; +import { viteEnvs } from 'vite-envs' import clientConfig from './client.config'; @@ -34,8 +35,9 @@ export default defineConfig(({ mode }) => { const isProd = mode === 'production'; const env = loadEnv(mode, process.cwd()); - const requiresHardRefresh = env.VITE_APP_REQUIRES_HARD_REFRESH === 'true'; + const requiresHardRefresh = env.PH_CONNECT_APP_REQUIRES_HARD_REFRESH === 'true'; + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment const plugins: PluginOption[] = [ react({ include: 'src/**/*.tsx', @@ -56,6 +58,7 @@ export default defineConfig(({ mode }) => { }, }), generateVersionPlugin(isProd ? requiresHardRefresh : false), + viteEnvs() ]; const authToken = process.env.SENTRY_AUTH_TOKEN; @@ -75,7 +78,6 @@ export default defineConfig(({ mode }) => { return { define: { 'process.env': { - APP_VERSION: appVersion, REQUIRES_HARD_REFRESH: isProd ? requiresHardRefresh : false, }, }, @@ -83,6 +85,9 @@ export default defineConfig(({ mode }) => { build: { minify: isProd, sourcemap: isProd, + rollupOptions: { + external: ['package.json'], + } }, resolve: { alias: { From 1e63c593f39bff4e83661d461ae67c68d2e75a79 Mon Sep 17 00:00:00 2001 From: Frank Date: Fri, 23 Aug 2024 14:53:40 +0200 Subject: [PATCH 19/90] fix: service worker app version --- .../modal/modals/DebugSettingsModal.tsx | 9 +++++---- src/utils/registerServiceWorker.ts | 7 +++---- src/vite-env.d.ts | 1 + vite.renderer.config.mts | 17 ++++++++--------- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/components/modal/modals/DebugSettingsModal.tsx b/src/components/modal/modals/DebugSettingsModal.tsx index 7ea8e55e..49f75181 100644 --- a/src/components/modal/modals/DebugSettingsModal.tsx +++ b/src/components/modal/modals/DebugSettingsModal.tsx @@ -5,7 +5,6 @@ import { Icon, Modal, } from '@powerhousedao/design-system'; -import { version } from 'package.json'; import { useEffect, useState } from 'react'; import { useDocumentDriveServer } from 'src/hooks/useDocumentDriveServer'; import serviceWorkerManager from 'src/utils/registerServiceWorker'; @@ -125,10 +124,12 @@ export const DebugSettingsModal: React.FC = props => {
- App Version: {version} + + App Version: {import.meta.env.APP_VERSION} +
-
+
Drive Tools:
@@ -256,7 +257,7 @@ export const DebugSettingsModal: React.FC = props => {
-
+
Service Worker Tools:
diff --git a/src/utils/registerServiceWorker.ts b/src/utils/registerServiceWorker.ts index 8e93fbcf..85953f6e 100644 --- a/src/utils/registerServiceWorker.ts +++ b/src/utils/registerServiceWorker.ts @@ -1,5 +1,3 @@ -import { version } from "package.json" - /* eslint-disable @typescript-eslint/no-unsafe-member-access */ import connectConfig from 'connect-config'; @@ -23,6 +21,7 @@ type NEW_VERSION_AVAILABLE_MESSAGE = { }; export type ServiceWorkerMessage = NEW_VERSION_AVAILABLE_MESSAGE; +import config from "connect-config" class ServiceWorkerManager { ready = false; @@ -76,11 +75,11 @@ class ServiceWorkerManager { } }, ); - + console.log(import.meta.env.APP_VERSION); if (navigator.serviceWorker.controller) { navigator.serviceWorker.controller.postMessage({ type: 'SET_APP_VERSION', - version, + version: import.meta.env.APP_VERSION, }); } diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts index 99d8faa5..f6e0b3ea 100644 --- a/src/vite-env.d.ts +++ b/src/vite-env.d.ts @@ -8,6 +8,7 @@ type ImportMetaEnv = { MODE: string DEV: boolean PROD: boolean + APP_VERSION: string BASE_PATH: string BASE_HREF: string PH_CONNECT_APP_REQUIRES_HARD_REFRESH: string diff --git a/vite.renderer.config.mts b/vite.renderer.config.mts index 4cb34eb4..a0379b2a 100644 --- a/vite.renderer.config.mts +++ b/vite.renderer.config.mts @@ -58,7 +58,14 @@ export default defineConfig(({ mode }) => { }, }), generateVersionPlugin(isProd ? requiresHardRefresh : false), - viteEnvs() + viteEnvs({ + computedEnv() { + return { + APP_VERSION: appVersion, + REQUIRES_HARD_REFRESH: isProd ? requiresHardRefresh : false, + }; + }, + }) ]; const authToken = process.env.SENTRY_AUTH_TOKEN; @@ -76,18 +83,10 @@ export default defineConfig(({ mode }) => { } return { - define: { - 'process.env': { - REQUIRES_HARD_REFRESH: isProd ? requiresHardRefresh : false, - }, - }, plugins, build: { minify: isProd, sourcemap: isProd, - rollupOptions: { - external: ['package.json'], - } }, resolve: { alias: { From a9bd185f8d355775137a14cad9ba348113ace743 Mon Sep 17 00:00:00 2001 From: Frank Date: Fri, 23 Aug 2024 14:54:48 +0200 Subject: [PATCH 20/90] chore: generated vite envs definitions --- src/vite-env.d.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts index f6e0b3ea..77a1c945 100644 --- a/src/vite-env.d.ts +++ b/src/vite-env.d.ts @@ -9,6 +9,7 @@ type ImportMetaEnv = { DEV: boolean PROD: boolean APP_VERSION: string + REQUIRES_HARD_REFRESH: boolean BASE_PATH: string BASE_HREF: string PH_CONNECT_APP_REQUIRES_HARD_REFRESH: string From 29ba7fecadd8ad3794c2abb22dca8ae79b7a70ae Mon Sep 17 00:00:00 2001 From: acaldas Date: Tue, 3 Sep 2024 17:44:22 +0100 Subject: [PATCH 21/90] feat: set package version as sentry release --- .../build-and-deploy-arbitrum-prod.yaml | 32 ++++++++--------- .../build-and-deploy-arbitrum-staging.yaml | 34 +++++++++---------- .../build-and-deploy-makerdao-prod.yaml | 14 ++++---- .../build-and-deploy-makerdao-staging.yaml | 14 ++++---- .../build-and-deploy-powerhouse-develop.yaml | 12 +++---- .../build-and-deploy-powerhouse-prod.yaml | 12 +++---- .../build-and-deploy-powerhouse-staging.yaml | 12 +++---- src/app/sentry.ts | 3 +- vite.renderer.config.mts | 12 +++++-- 9 files changed, 76 insertions(+), 69 deletions(-) diff --git a/.github/workflows/build-and-deploy-arbitrum-prod.yaml b/.github/workflows/build-and-deploy-arbitrum-prod.yaml index 25ba2aea..77f347b6 100644 --- a/.github/workflows/build-and-deploy-arbitrum-prod.yaml +++ b/.github/workflows/build-and-deploy-arbitrum-prod.yaml @@ -24,20 +24,20 @@ jobs: heroku_app_name: ${{ secrets.HEROKU_APP_NAME }} docker_options: >- --build-arg BASE_PATH=/arbitrum/connect - --build-arg VITE_BASE_HREF=/arbitrum/connect/ - --build-arg VITE_ROUTER_BASENAME=/arbitrum/connect - --build-arg VITE_SENTRY_DSN=${{ secrets.SENTRY_DSN }} - --build-arg VITE_SENTRY_ENV=${{ secrets.SENTRY_ENV }} - --build-arg VITE_ENABLED_EDITORS=ARBLTIPGrantee - --build-arg VITE_DISABLE_ADD_PUBLIC_DRIVES=true - --build-arg VITE_DISABLE_ADD_CLOUD_DRIVES=true - --build-arg VITE_DISABLE_ADD_LOCAL_DRIVES=true - --build-arg VITE_DISABLE_DELETE_PUBLIC_DRIVES=true - --build-arg VITE_DISABLE_DELETE_CLOUD_DRIVES=true - --build-arg VITE_DISABLE_DELETE_LOCAL_DRIVES=true - --build-arg VITE_LOCAL_DRIVES_ENABLED=false - --build-arg VITE_SEARCH_BAR_ENABLED=false - --build-arg VITE_DEFAULT_DRIVES_URL=https://apps.powerhouse.io/arbitrum/switchboard/d/arbitrum - --build-arg VITE_RENOWN_CHAIN_ID=42161 - --build-arg VITE_HIDE_DOCUMENT_MODEL_SELECTION_SETTINGS=true + --build-arg PH_CONNECT_BASE_HREF=/arbitrum/connect/ + --build-arg PH_CONNECT_ROUTER_BASENAME=/arbitrum/connect + --build-arg PH_CONNECT_SENTRY_DSN=${{ secrets.SENTRY_DSN }} + --build-arg PH_CONNECT_SENTRY_ENV=${{ secrets.SENTRY_ENV }} + --build-arg PH_CONNECT_ENABLED_EDITORS=ARBLTIPGrantee + --build-arg PH_CONNECT_DISABLE_ADD_PUBLIC_DRIVES=true + --build-arg PH_CONNECT_DISABLE_ADD_CLOUD_DRIVES=true + --build-arg PH_CONNECT_DISABLE_ADD_LOCAL_DRIVES=true + --build-arg PH_CONNECT_DISABLE_DELETE_PUBLIC_DRIVES=true + --build-arg PH_CONNECT_DISABLE_DELETE_CLOUD_DRIVES=true + --build-arg PH_CONNECT_DISABLE_DELETE_LOCAL_DRIVES=true + --build-arg PH_CONNECT_LOCAL_DRIVES_ENABLED=false + --build-arg PH_CONNECT_SEARCH_BAR_ENABLED=false + --build-arg PH_CONNECT_DEFAULT_DRIVES_URL=https://apps.powerhouse.io/arbitrum/switchboard/d/arbitrum + --build-arg PH_CONNECT_RENOWN_CHAIN_ID=42161 + --build-arg PH_CONNECT_HIDE_DOCUMENT_MODEL_SELECTION_SETTINGS=true process_type: web \ No newline at end of file diff --git a/.github/workflows/build-and-deploy-arbitrum-staging.yaml b/.github/workflows/build-and-deploy-arbitrum-staging.yaml index 219765d3..6c73948d 100644 --- a/.github/workflows/build-and-deploy-arbitrum-staging.yaml +++ b/.github/workflows/build-and-deploy-arbitrum-staging.yaml @@ -24,23 +24,23 @@ jobs: heroku_app_name: ${{ secrets.HEROKU_APP_NAME }} docker_options: >- --build-arg BASE_PATH=/staging/arbitrum/connect - --build-arg VITE_BASE_HREF=/staging/arbitrum/connect/ - --build-arg VITE_ROUTER_BASENAME=/staging/arbitrum/connect - --build-arg VITE_ENABLED_EDITORS=ARBLTIPGrantee - --build-arg VITE_DISABLE_ADD_PUBLIC_DRIVES=true - --build-arg VITE_DISABLE_ADD_CLOUD_DRIVES=true - --build-arg VITE_DISABLE_ADD_LOCAL_DRIVES=true - --build-arg VITE_DISABLE_DELETE_PUBLIC_DRIVES=true - --build-arg VITE_DISABLE_DELETE_CLOUD_DRIVES=true - --build-arg VITE_DISABLE_DELETE_LOCAL_DRIVES=true - --build-arg VITE_LOCAL_DRIVES_ENABLED=false - --build-arg VITE_DEFAULT_DRIVES_URL=https://apps.powerhouse.io/staging/arbitrum/switchboard/d/arbitrum - --build-arg VITE_RENOWN_CHAIN_ID=42161 - --build-arg VITE_SEARCH_BAR_ENABLED=false - --build-arg VITE_SENTRY_DSN=${{ secrets.SENTRY_DSN }} - --build-arg VITE_SENTRY_ENV=${{ secrets.SENTRY_ENV }} - --build-arg VITE_ARBITRUM_ALLOW_LIST=${{secrets.VITE_ARBITRUM_ALLOW_LIST}} - --build-arg VITE_HIDE_DOCUMENT_MODEL_SELECTION_SETTINGS=true + --build-arg PH_CONNECT_BASE_HREF=/staging/arbitrum/connect/ + --build-arg PH_CONNECT_ROUTER_BASENAME=/staging/arbitrum/connect + --build-arg PH_CONNECT_ENABLED_EDITORS=ARBLTIPGrantee + --build-arg PH_CONNECT_DISABLE_ADD_PUBLIC_DRIVES=true + --build-arg PH_CONNECT_DISABLE_ADD_CLOUD_DRIVES=true + --build-arg PH_CONNECT_DISABLE_ADD_LOCAL_DRIVES=true + --build-arg PH_CONNECT_DISABLE_DELETE_PUBLIC_DRIVES=true + --build-arg PH_CONNECT_DISABLE_DELETE_CLOUD_DRIVES=true + --build-arg PH_CONNECT_DISABLE_DELETE_LOCAL_DRIVES=true + --build-arg PH_CONNECT_LOCAL_DRIVES_ENABLED=false + --build-arg PH_CONNECT_DEFAULT_DRIVES_URL=https://apps.powerhouse.io/staging/arbitrum/switchboard/d/arbitrum + --build-arg PH_CONNECT_RENOWN_CHAIN_ID=42161 + --build-arg PH_CONNECT_SEARCH_BAR_ENABLED=false + --build-arg PH_CONNECT_SENTRY_DSN=${{ secrets.SENTRY_DSN }} + --build-arg PH_CONNECT_SENTRY_ENV=${{ secrets.SENTRY_ENV }} + --build-arg PH_CONNECT_ARBITRUM_ALLOW_LIST=${{secrets.PH_CONNECT_ARBITRUM_ALLOW_LIST}} + --build-arg PH_CONNECT_HIDE_DOCUMENT_MODEL_SELECTION_SETTINGS=true --build-arg SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} --build-arg SENTRY_ORG=${{ secrets.SENTRY_ORG }} --build-arg SENTRY_PROJECT=${{ secrets.SENTRY_PROJECT }} diff --git a/.github/workflows/build-and-deploy-makerdao-prod.yaml b/.github/workflows/build-and-deploy-makerdao-prod.yaml index 09322a8c..40cb563e 100644 --- a/.github/workflows/build-and-deploy-makerdao-prod.yaml +++ b/.github/workflows/build-and-deploy-makerdao-prod.yaml @@ -24,11 +24,11 @@ jobs: heroku_app_name: ${{ secrets.HEROKU_APP_NAME }} docker_options: >- --build-arg BASE_PATH=/makerdao/connect - --build-arg VITE_BASE_HREF=/makerdao/connect/ - --build-arg VITE_ROUTER_BASENAME=/makerdao/connect - --build-arg VITE_SENTRY_DSN=${{ secrets.SENTRY_DSN }} - --build-arg VITE_SENTRY_ENV=${{ secrets.SENTRY_ENV }} - --build-arg VITE_SEARCH_BAR_ENABLED=false - --build-arg VITE_DEFAULT_DRIVES_URL=https://apps.powerhouse.io/makerdao/switchboard/d/b443d823-3e4d-4e60-ae44-45edafd5f632 - --build-arg VITE_RWA_ALLOW_LIST=${{secrets.VITE_RWA_ALLOW_LIST}} + --build-arg PH_CONNECT_BASE_HREF=/makerdao/connect/ + --build-arg PH_CONNECT_ROUTER_BASENAME=/makerdao/connect + --build-arg PH_CONNECT_SENTRY_DSN=${{ secrets.SENTRY_DSN }} + --build-arg PH_CONNECT_SENTRY_ENV=${{ secrets.SENTRY_ENV }} + --build-arg PH_CONNECT_SEARCH_BAR_ENABLED=false + --build-arg PH_CONNECT_DEFAULT_DRIVES_URL=https://apps.powerhouse.io/makerdao/switchboard/d/b443d823-3e4d-4e60-ae44-45edafd5f632 + --build-arg PH_CONNECT_RWA_ALLOW_LIST=${{secrets.PH_CONNECT_RWA_ALLOW_LIST}} process_type: web \ No newline at end of file diff --git a/.github/workflows/build-and-deploy-makerdao-staging.yaml b/.github/workflows/build-and-deploy-makerdao-staging.yaml index b6c5e93f..064ead94 100644 --- a/.github/workflows/build-and-deploy-makerdao-staging.yaml +++ b/.github/workflows/build-and-deploy-makerdao-staging.yaml @@ -24,11 +24,11 @@ jobs: heroku_app_name: ${{ secrets.HEROKU_APP_NAME }} docker_options: >- --build-arg BASE_PATH=/staging/makerdao/connect - --build-arg VITE_BASE_HREF=/staging/makerdao/connect/ - --build-arg VITE_ROUTER_BASENAME=/staging/makerdao/connect - --build-arg VITE_SENTRY_DSN=${{ secrets.SENTRY_DSN }} - --build-arg VITE_SENTRY_ENV=${{ secrets.SENTRY_ENV }} - --build-arg VITE_SEARCH_BAR_ENABLED=false - --build-arg VITE_DEFAULT_DRIVES_URL=https://apps.powerhouse.io/staging/makerdao/switchboard/d/280dd289-ec51-40f0-adad-c154967fc2b2 - --build-arg VITE_RWA_ALLOW_LIST=${{secrets.VITE_RWA_ALLOW_LIST}} + --build-arg PH_CONNECT_BASE_HREF=/staging/makerdao/connect/ + --build-arg PH_CONNECT_ROUTER_BASENAME=/staging/makerdao/connect + --build-arg PH_CONNECT_SENTRY_DSN=${{ secrets.SENTRY_DSN }} + --build-arg PH_CONNECT_SENTRY_ENV=${{ secrets.SENTRY_ENV }} + --build-arg PH_CONNECT_SEARCH_BAR_ENABLED=false + --build-arg PH_CONNECT_DEFAULT_DRIVES_URL=https://apps.powerhouse.io/staging/makerdao/switchboard/d/280dd289-ec51-40f0-adad-c154967fc2b2 + --build-arg PH_CONNECT_RWA_ALLOW_LIST=${{secrets.PH_CONNECT_RWA_ALLOW_LIST}} process_type: web \ No newline at end of file diff --git a/.github/workflows/build-and-deploy-powerhouse-develop.yaml b/.github/workflows/build-and-deploy-powerhouse-develop.yaml index 1642a3c6..f12985a7 100644 --- a/.github/workflows/build-and-deploy-powerhouse-develop.yaml +++ b/.github/workflows/build-and-deploy-powerhouse-develop.yaml @@ -24,12 +24,12 @@ jobs: heroku_app_name: ${{ secrets.HEROKU_APP_NAME }} docker_options: >- --build-arg BASE_PATH=/develop/powerhouse/connect - --build-arg VITE_BASE_HREF=/develop/powerhouse/connect/ - --build-arg VITE_ROUTER_BASENAME=/develop/powerhouse/connect - --build-arg VITE_DEFAULT_DRIVES_URL=https://apps.powerhouse.io/develop/powerhouse/switchboard/d/core-dev - --build-arg VITE_SEARCH_BAR_ENABLED=false - --build-arg VITE_SENTRY_DSN=${{ secrets.SENTRY_DSN }} - --build-arg VITE_SENTRY_ENV=${{ secrets.SENTRY_ENV }} + --build-arg PH_CONNECT_BASE_HREF=/develop/powerhouse/connect/ + --build-arg PH_CONNECT_ROUTER_BASENAME=/develop/powerhouse/connect + --build-arg PH_CONNECT_DEFAULT_DRIVES_URL=https://apps.powerhouse.io/develop/powerhouse/switchboard/d/core-dev + --build-arg PH_CONNECT_SEARCH_BAR_ENABLED=false + --build-arg PH_CONNECT_SENTRY_DSN=${{ secrets.SENTRY_DSN }} + --build-arg PH_CONNECT_SENTRY_ENV=${{ secrets.SENTRY_ENV }} --build-arg SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} --build-arg SENTRY_ORG=${{ secrets.SENTRY_ORG }} --build-arg SENTRY_PROJECT=${{ secrets.SENTRY_PROJECT }} diff --git a/.github/workflows/build-and-deploy-powerhouse-prod.yaml b/.github/workflows/build-and-deploy-powerhouse-prod.yaml index a11290f6..52090ba8 100644 --- a/.github/workflows/build-and-deploy-powerhouse-prod.yaml +++ b/.github/workflows/build-and-deploy-powerhouse-prod.yaml @@ -24,10 +24,10 @@ jobs: heroku_app_name: ${{ secrets.HEROKU_APP_NAME }} docker_options: >- --build-arg BASE_PATH=/powerhouse/connect - --build-arg VITE_BASE_HREF=/powerhouse/connect/ - --build-arg VITE_ROUTER_BASENAME=/powerhouse/connect - --build-arg VITE_SENTRY_DSN=${{ secrets.SENTRY_DSN }} - --build-arg VITE_SENTRY_ENV=${{ secrets.SENTRY_ENV }} - --build-arg VITE_DEFAULT_DRIVES_URL=https://apps.powerhouse.io/powerhouse/switchboard/d/powerhouse - --build-arg VITE_SEARCH_BAR_ENABLED=false + --build-arg PH_CONNECT_BASE_HREF=/powerhouse/connect/ + --build-arg PH_CONNECT_ROUTER_BASENAME=/powerhouse/connect + --build-arg PH_CONNECT_SENTRY_DSN=${{ secrets.SENTRY_DSN }} + --build-arg PH_CONNECT_SENTRY_ENV=${{ secrets.SENTRY_ENV }} + --build-arg PH_CONNECT_DEFAULT_DRIVES_URL=https://apps.powerhouse.io/powerhouse/switchboard/d/powerhouse + --build-arg PH_CONNECT_SEARCH_BAR_ENABLED=false process_type: web \ No newline at end of file diff --git a/.github/workflows/build-and-deploy-powerhouse-staging.yaml b/.github/workflows/build-and-deploy-powerhouse-staging.yaml index cffca31d..c49990ac 100644 --- a/.github/workflows/build-and-deploy-powerhouse-staging.yaml +++ b/.github/workflows/build-and-deploy-powerhouse-staging.yaml @@ -24,10 +24,10 @@ jobs: heroku_app_name: ${{ secrets.HEROKU_APP_NAME }} docker_options: >- --build-arg BASE_PATH=/staging/powerhouse/connect - --build-arg VITE_BASE_HREF=/staging/powerhouse/connect/ - --build-arg VITE_ROUTER_BASENAME=/staging/powerhouse/connect - --build-arg VITE_SENTRY_DSN=${{ secrets.SENTRY_DSN }} - --build-arg VITE_SENTRY_ENV=${{ secrets.SENTRY_ENV }} - --build-arg VITE_DEFAULT_DRIVES_URL=https://apps.powerhouse.io/staging/powerhouse/switchboard/d/powerhouse - --build-arg VITE_SEARCH_BAR_ENABLED=false + --build-arg PH_CONNECT_BASE_HREF=/staging/powerhouse/connect/ + --build-arg PH_CONNECT_ROUTER_BASENAME=/staging/powerhouse/connect + --build-arg PH_CONNECT_SENTRY_DSN=${{ secrets.SENTRY_DSN }} + --build-arg PH_CONNECT_SENTRY_ENV=${{ secrets.SENTRY_ENV }} + --build-arg PH_CONNECT_DEFAULT_DRIVES_URL=https://apps.powerhouse.io/staging/powerhouse/switchboard/d/powerhouse + --build-arg PH_CONNECT_SEARCH_BAR_ENABLED=false process_type: web \ No newline at end of file diff --git a/src/app/sentry.ts b/src/app/sentry.ts index 67417dea..24fa773e 100644 --- a/src/app/sentry.ts +++ b/src/app/sentry.ts @@ -6,8 +6,8 @@ import { useLocation, useNavigationType, } from 'react-router-dom'; - import config from '../../connect.config'; +import { version } from '../../package.json'; function initSenty() { if (!config.sentry.dsn || config.sentry.dsn === '') { @@ -17,6 +17,7 @@ function initSenty() { Sentry.init({ dsn: config.sentry.dsn, environment: config.sentry.env, + release: version, integrations: [ Sentry.extraErrorDataIntegration({ depth: 5 }), Sentry.reactRouterV6BrowserTracingIntegration({ diff --git a/vite.renderer.config.mts b/vite.renderer.config.mts index a0379b2a..6fab8a91 100644 --- a/vite.renderer.config.mts +++ b/vite.renderer.config.mts @@ -5,10 +5,10 @@ import jotaiDebugLabel from 'jotai/babel/plugin-debug-label'; import jotaiReactRefresh from 'jotai/babel/plugin-react-refresh'; import path from 'path'; import { HtmlTagDescriptor, PluginOption, defineConfig, loadEnv } from 'vite'; +import { viteEnvs } from 'vite-envs'; import { createHtmlPlugin } from 'vite-plugin-html'; import svgr from 'vite-plugin-svgr'; import pkg from './package.json'; -import { viteEnvs } from 'vite-envs' import clientConfig from './client.config'; @@ -35,7 +35,8 @@ export default defineConfig(({ mode }) => { const isProd = mode === 'production'; const env = loadEnv(mode, process.cwd()); - const requiresHardRefresh = env.PH_CONNECT_APP_REQUIRES_HARD_REFRESH === 'true'; + const requiresHardRefresh = + env.PH_CONNECT_APP_REQUIRES_HARD_REFRESH === 'true'; // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment const plugins: PluginOption[] = [ @@ -65,16 +66,21 @@ export default defineConfig(({ mode }) => { REQUIRES_HARD_REFRESH: isProd ? requiresHardRefresh : false, }; }, - }) + }), ]; const authToken = process.env.SENTRY_AUTH_TOKEN; const org = process.env.SENTRY_ORG; const project = process.env.SENTRY_PROJECT; + const release = process.env.SENTRY_RELEASE || appVersion; const uploadSentrySourcemaps = authToken && org && project; + if (uploadSentrySourcemaps) { plugins.push( sentryVitePlugin({ + release: { + name: release, + }, authToken, org, project, From e32c0775c84df73e27151f45978eddc3932368db Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 3 Sep 2024 16:57:38 +0000 Subject: [PATCH 22/90] chore(release): set `package.json` to 1.0.0-dev.78 [skip ci] # [1.0.0-dev.78](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.77...v1.0.0-dev.78) (2024-09-03) ### Bug Fixes * service worker app version ([1e63c59](https://github.com/powerhouse-inc/document-model-electron/commit/1e63c593f39bff4e83661d461ae67c68d2e75a79)) ### Features * added env vars for connect ([d4567a4](https://github.com/powerhouse-inc/document-model-electron/commit/d4567a4b1b4ce4d4b15dd8f12116b995c5df4dd2)) * set package version as sentry release ([29ba7fe](https://github.com/powerhouse-inc/document-model-electron/commit/29ba7fecadd8ad3794c2abb22dca8ae79b7a70ae)) --- CHANGELOG.md | 13 +++++++++++++ package.json | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ac1ad1d5..6261642b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,16 @@ +# [1.0.0-dev.78](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.77...v1.0.0-dev.78) (2024-09-03) + + +### Bug Fixes + +* service worker app version ([1e63c59](https://github.com/powerhouse-inc/document-model-electron/commit/1e63c593f39bff4e83661d461ae67c68d2e75a79)) + + +### Features + +* added env vars for connect ([d4567a4](https://github.com/powerhouse-inc/document-model-electron/commit/d4567a4b1b4ce4d4b15dd8f12116b995c5df4dd2)) +* set package version as sentry release ([29ba7fe](https://github.com/powerhouse-inc/document-model-electron/commit/29ba7fecadd8ad3794c2abb22dca8ae79b7a70ae)) + # [1.0.0-dev.77](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.76...v1.0.0-dev.77) (2024-08-31) diff --git a/package.json b/package.json index 9458c177..93ff5836 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.77", + "version": "1.0.0-dev.78", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From 940a0f16a6770c88095e0e151959fe3de1c5b275 Mon Sep 17 00:00:00 2001 From: acaldas Date: Tue, 3 Sep 2024 19:30:24 +0100 Subject: [PATCH 23/90] feat: pass build args as strings --- .../build-and-deploy-powerhouse-develop.yaml | 18 +++++++++--------- src/utils/registerServiceWorker.ts | 5 ++--- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build-and-deploy-powerhouse-develop.yaml b/.github/workflows/build-and-deploy-powerhouse-develop.yaml index f12985a7..f300f002 100644 --- a/.github/workflows/build-and-deploy-powerhouse-develop.yaml +++ b/.github/workflows/build-and-deploy-powerhouse-develop.yaml @@ -23,14 +23,14 @@ jobs: heroku_api_key: ${{ secrets.HEROKU_API_KEY }} heroku_app_name: ${{ secrets.HEROKU_APP_NAME }} docker_options: >- - --build-arg BASE_PATH=/develop/powerhouse/connect - --build-arg PH_CONNECT_BASE_HREF=/develop/powerhouse/connect/ - --build-arg PH_CONNECT_ROUTER_BASENAME=/develop/powerhouse/connect - --build-arg PH_CONNECT_DEFAULT_DRIVES_URL=https://apps.powerhouse.io/develop/powerhouse/switchboard/d/core-dev + --build-arg BASE_PATH="/develop/powerhouse/connect" + --build-arg PH_CONNECT_BASE_HREF="/develop/powerhouse/connect/" + --build-arg PH_CONNECT_ROUTER_BASENAME="/develop/powerhouse/connect" + --build-arg PH_CONNECT_DEFAULT_DRIVES_URL="https://apps.powerhouse.io/develop/powerhouse/switchboard/d/core-dev" --build-arg PH_CONNECT_SEARCH_BAR_ENABLED=false - --build-arg PH_CONNECT_SENTRY_DSN=${{ secrets.SENTRY_DSN }} - --build-arg PH_CONNECT_SENTRY_ENV=${{ secrets.SENTRY_ENV }} - --build-arg SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} - --build-arg SENTRY_ORG=${{ secrets.SENTRY_ORG }} - --build-arg SENTRY_PROJECT=${{ secrets.SENTRY_PROJECT }} + --build-arg PH_CONNECT_SENTRY_DSN="${{ secrets.SENTRY_DSN }}" + --build-arg PH_CONNECT_SENTRY_ENV="${{ secrets.SENTRY_ENV }}" + --build-arg SENTRY_AUTH_TOKEN="${{ secrets.SENTRY_AUTH_TOKEN }}" + --build-arg SENTRY_ORG="${{ secrets.SENTRY_ORG }}" + --build-arg SENTRY_PROJECT="${{ secrets.SENTRY_PROJECT }}" process_type: web \ No newline at end of file diff --git a/src/utils/registerServiceWorker.ts b/src/utils/registerServiceWorker.ts index 85953f6e..20e1ed62 100644 --- a/src/utils/registerServiceWorker.ts +++ b/src/utils/registerServiceWorker.ts @@ -21,7 +21,6 @@ type NEW_VERSION_AVAILABLE_MESSAGE = { }; export type ServiceWorkerMessage = NEW_VERSION_AVAILABLE_MESSAGE; -import config from "connect-config" class ServiceWorkerManager { ready = false; @@ -65,7 +64,7 @@ class ServiceWorkerManager { if ( event.data && event.data.type === - 'NEW_VERSION_AVAILABLE' && + 'NEW_VERSION_AVAILABLE' && event.data.requiresHardRefresh === true ) { if (this.debug) { @@ -75,7 +74,7 @@ class ServiceWorkerManager { } }, ); - console.log(import.meta.env.APP_VERSION); + if (navigator.serviceWorker.controller) { navigator.serviceWorker.controller.postMessage({ type: 'SET_APP_VERSION', From 96a28d84408db6771bb479831b2db50840f7394b Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 3 Sep 2024 18:32:21 +0000 Subject: [PATCH 24/90] chore(release): set `package.json` to 1.0.0-dev.79 [skip ci] # [1.0.0-dev.79](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.78...v1.0.0-dev.79) (2024-09-03) ### Features * pass build args as strings ([940a0f1](https://github.com/powerhouse-inc/document-model-electron/commit/940a0f16a6770c88095e0e151959fe3de1c5b275)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6261642b..a5605924 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.0.0-dev.79](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.78...v1.0.0-dev.79) (2024-09-03) + + +### Features + +* pass build args as strings ([940a0f1](https://github.com/powerhouse-inc/document-model-electron/commit/940a0f16a6770c88095e0e151959fe3de1c5b275)) + # [1.0.0-dev.78](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.77...v1.0.0-dev.78) (2024-09-03) diff --git a/package.json b/package.json index 93ff5836..0f5677ac 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.78", + "version": "1.0.0-dev.79", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From 58516f37c5c6c2a901d591600b04488ae17f938f Mon Sep 17 00:00:00 2001 From: acaldas Date: Tue, 3 Sep 2024 19:38:37 +0100 Subject: [PATCH 25/90] feat: remove escape chars from dockerfile entrypoint --- .../build-and-deploy-powerhouse-develop.yaml | 18 +++++++++--------- Dockerfile | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build-and-deploy-powerhouse-develop.yaml b/.github/workflows/build-and-deploy-powerhouse-develop.yaml index f300f002..f12985a7 100644 --- a/.github/workflows/build-and-deploy-powerhouse-develop.yaml +++ b/.github/workflows/build-and-deploy-powerhouse-develop.yaml @@ -23,14 +23,14 @@ jobs: heroku_api_key: ${{ secrets.HEROKU_API_KEY }} heroku_app_name: ${{ secrets.HEROKU_APP_NAME }} docker_options: >- - --build-arg BASE_PATH="/develop/powerhouse/connect" - --build-arg PH_CONNECT_BASE_HREF="/develop/powerhouse/connect/" - --build-arg PH_CONNECT_ROUTER_BASENAME="/develop/powerhouse/connect" - --build-arg PH_CONNECT_DEFAULT_DRIVES_URL="https://apps.powerhouse.io/develop/powerhouse/switchboard/d/core-dev" + --build-arg BASE_PATH=/develop/powerhouse/connect + --build-arg PH_CONNECT_BASE_HREF=/develop/powerhouse/connect/ + --build-arg PH_CONNECT_ROUTER_BASENAME=/develop/powerhouse/connect + --build-arg PH_CONNECT_DEFAULT_DRIVES_URL=https://apps.powerhouse.io/develop/powerhouse/switchboard/d/core-dev --build-arg PH_CONNECT_SEARCH_BAR_ENABLED=false - --build-arg PH_CONNECT_SENTRY_DSN="${{ secrets.SENTRY_DSN }}" - --build-arg PH_CONNECT_SENTRY_ENV="${{ secrets.SENTRY_ENV }}" - --build-arg SENTRY_AUTH_TOKEN="${{ secrets.SENTRY_AUTH_TOKEN }}" - --build-arg SENTRY_ORG="${{ secrets.SENTRY_ORG }}" - --build-arg SENTRY_PROJECT="${{ secrets.SENTRY_PROJECT }}" + --build-arg PH_CONNECT_SENTRY_DSN=${{ secrets.SENTRY_DSN }} + --build-arg PH_CONNECT_SENTRY_ENV=${{ secrets.SENTRY_ENV }} + --build-arg SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} + --build-arg SENTRY_ORG=${{ secrets.SENTRY_ORG }} + --build-arg SENTRY_PROJECT=${{ secrets.SENTRY_PROJECT }} process_type: web \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 4ccc1c11..cec79c39 100644 --- a/Dockerfile +++ b/Dockerfile @@ -30,4 +30,4 @@ ARG BASE_PATH="/" ENV BASE_PATH=${BASE_PATH} COPY --from=builder /opt/app/dist /usr/share/nginx/html COPY nginx.conf /etc/nginx/conf.d/default.conf.template -ENTRYPOINT sh -c "/usr/share/nginx/html/vite-envs.sh && envsubst '\$PORT,\$BASE_PATH' < /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'" \ No newline at end of file +ENTRYPOINT sh -c "/usr/share/nginx/html/vite-envs.sh && envsubst '$PORT,$BASE_PATH' < /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'" \ No newline at end of file From 7eb5baabdbcc3aa3085841abfc68680cc36d6518 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 3 Sep 2024 18:43:24 +0000 Subject: [PATCH 26/90] chore(release): set `package.json` to 1.0.0-dev.80 [skip ci] # [1.0.0-dev.80](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.79...v1.0.0-dev.80) (2024-09-03) ### Features * remove escape chars from dockerfile entrypoint ([58516f3](https://github.com/powerhouse-inc/document-model-electron/commit/58516f37c5c6c2a901d591600b04488ae17f938f)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a5605924..386d19d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.0.0-dev.80](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.79...v1.0.0-dev.80) (2024-09-03) + + +### Features + +* remove escape chars from dockerfile entrypoint ([58516f3](https://github.com/powerhouse-inc/document-model-electron/commit/58516f37c5c6c2a901d591600b04488ae17f938f)) + # [1.0.0-dev.79](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.78...v1.0.0-dev.79) (2024-09-03) diff --git a/package.json b/package.json index 0f5677ac..03d23c29 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.79", + "version": "1.0.0-dev.80", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From 39b00916965d8834be33b7eb9c24a4ae4162c267 Mon Sep 17 00:00:00 2001 From: acaldas Date: Tue, 3 Sep 2024 20:01:27 +0100 Subject: [PATCH 27/90] feat: use script instead of inline nginx config --- Dockerfile | 2 +- nginx.sh | 3 +++ vite.renderer.config.mts | 8 +++++--- 3 files changed, 9 insertions(+), 4 deletions(-) create mode 100644 nginx.sh diff --git a/Dockerfile b/Dockerfile index cec79c39..8ba2cfa3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -30,4 +30,4 @@ ARG BASE_PATH="/" ENV BASE_PATH=${BASE_PATH} COPY --from=builder /opt/app/dist /usr/share/nginx/html COPY nginx.conf /etc/nginx/conf.d/default.conf.template -ENTRYPOINT sh -c "/usr/share/nginx/html/vite-envs.sh && envsubst '$PORT,$BASE_PATH' < /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'" \ No newline at end of file +ENTRYPOINT sh -c "/usr/share/nginx/html/vite-envs.sh && /usr/share/nginx/html/nginx.sh && nginx -g 'daemon off;'" \ No newline at end of file diff --git a/nginx.sh b/nginx.sh new file mode 100644 index 00000000..04a76de0 --- /dev/null +++ b/nginx.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +envsubst '$PORT,$BASE_PATH' < /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf diff --git a/vite.renderer.config.mts b/vite.renderer.config.mts index 6fab8a91..c662ff9e 100644 --- a/vite.renderer.config.mts +++ b/vite.renderer.config.mts @@ -14,9 +14,9 @@ import clientConfig from './client.config'; const appVersion = pkg.version; -const generateVersionPlugin = (hardRefresh = false) => { +const addToBundlePlugin = (hardRefresh = false) => { return { - name: 'generate-version', + name: 'add-to-bundle', closeBundle() { const versionManifest = { version: appVersion, @@ -27,6 +27,8 @@ const generateVersionPlugin = (hardRefresh = false) => { path.join('dist', 'version.json'), JSON.stringify(versionManifest, null, 2), ); + + fs.copyFileSync('./nginx.sh', './dist/nginx.sh'); }, }; }; @@ -58,7 +60,7 @@ export default defineConfig(({ mode }) => { ], }, }), - generateVersionPlugin(isProd ? requiresHardRefresh : false), + addToBundlePlugin(isProd ? requiresHardRefresh : false), viteEnvs({ computedEnv() { return { From b7d8efe1aa180b00472e16a12ef898be52557054 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 3 Sep 2024 19:04:46 +0000 Subject: [PATCH 28/90] chore(release): set `package.json` to 1.0.0-dev.81 [skip ci] # [1.0.0-dev.81](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.80...v1.0.0-dev.81) (2024-09-03) ### Features * use script instead of inline nginx config ([39b0091](https://github.com/powerhouse-inc/document-model-electron/commit/39b00916965d8834be33b7eb9c24a4ae4162c267)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 386d19d0..81e7a2f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.0.0-dev.81](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.80...v1.0.0-dev.81) (2024-09-03) + + +### Features + +* use script instead of inline nginx config ([39b0091](https://github.com/powerhouse-inc/document-model-electron/commit/39b00916965d8834be33b7eb9c24a4ae4162c267)) + # [1.0.0-dev.80](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.79...v1.0.0-dev.80) (2024-09-03) diff --git a/package.json b/package.json index 03d23c29..54590e9b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.80", + "version": "1.0.0-dev.81", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From ab70580c9fc11af21e0537a821585680385767a9 Mon Sep 17 00:00:00 2001 From: acaldas Date: Tue, 3 Sep 2024 20:15:11 +0100 Subject: [PATCH 29/90] feat: check if nginx.conf is valid --- Dockerfile | 2 +- nginx.sh | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 8ba2cfa3..b98662fc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -30,4 +30,4 @@ ARG BASE_PATH="/" ENV BASE_PATH=${BASE_PATH} COPY --from=builder /opt/app/dist /usr/share/nginx/html COPY nginx.conf /etc/nginx/conf.d/default.conf.template -ENTRYPOINT sh -c "/usr/share/nginx/html/vite-envs.sh && /usr/share/nginx/html/nginx.sh && nginx -g 'daemon off;'" \ No newline at end of file +ENTRYPOINT sh -c "/usr/share/nginx/html/vite-envs.sh && /usr/share/nginx/html/nginx.sh && nginx -g 'daemon off;' && tail -f /var/log/nginx/error.log" \ No newline at end of file diff --git a/nginx.sh b/nginx.sh index 04a76de0..0e5d61ef 100644 --- a/nginx.sh +++ b/nginx.sh @@ -1,3 +1,7 @@ #!/bin/sh envsubst '$PORT,$BASE_PATH' < /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf + +cat /etc/nginx/conf.d/default.conf + +nginx -t From 1af8e10ad19d09828c31373924c079c2beff916b Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 3 Sep 2024 19:17:03 +0000 Subject: [PATCH 30/90] chore(release): set `package.json` to 1.0.0-dev.82 [skip ci] # [1.0.0-dev.82](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.81...v1.0.0-dev.82) (2024-09-03) ### Features * check if nginx.conf is valid ([ab70580](https://github.com/powerhouse-inc/document-model-electron/commit/ab70580c9fc11af21e0537a821585680385767a9)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 81e7a2f9..087f7d9f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.0.0-dev.82](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.81...v1.0.0-dev.82) (2024-09-03) + + +### Features + +* check if nginx.conf is valid ([ab70580](https://github.com/powerhouse-inc/document-model-electron/commit/ab70580c9fc11af21e0537a821585680385767a9)) + # [1.0.0-dev.81](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.80...v1.0.0-dev.81) (2024-09-03) diff --git a/package.json b/package.json index 54590e9b..69ccb3df 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.81", + "version": "1.0.0-dev.82", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From 2652d51a0a9342dc28e4f8c52ee06280d0d555da Mon Sep 17 00:00:00 2001 From: acaldas Date: Tue, 3 Sep 2024 20:22:44 +0100 Subject: [PATCH 31/90] feat: use script as entrypoint --- Dockerfile | 2 +- nginx.sh | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index b98662fc..e0748d77 100644 --- a/Dockerfile +++ b/Dockerfile @@ -30,4 +30,4 @@ ARG BASE_PATH="/" ENV BASE_PATH=${BASE_PATH} COPY --from=builder /opt/app/dist /usr/share/nginx/html COPY nginx.conf /etc/nginx/conf.d/default.conf.template -ENTRYPOINT sh -c "/usr/share/nginx/html/vite-envs.sh && /usr/share/nginx/html/nginx.sh && nginx -g 'daemon off;' && tail -f /var/log/nginx/error.log" \ No newline at end of file +ENTRYPOINT ["//usr/share/nginx/html/nginx.sh"] \ No newline at end of file diff --git a/nginx.sh b/nginx.sh index 0e5d61ef..8e9d0b09 100644 --- a/nginx.sh +++ b/nginx.sh @@ -1,7 +1,12 @@ #!/bin/sh -envsubst '$PORT,$BASE_PATH' < /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf +# Execute vite-envs.sh +/usr/share/nginx/html/vite-envs.sh +# Prepare nginx config +envsubst '$PORT,$BASE_PATH' < /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf cat /etc/nginx/conf.d/default.conf - nginx -t + +# Start Nginx +nginx -g 'daemon off;' \ No newline at end of file From 2abc1dc69cf1c29a430cd672ec51b34ec3491bdc Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 3 Sep 2024 19:24:30 +0000 Subject: [PATCH 32/90] chore(release): set `package.json` to 1.0.0-dev.83 [skip ci] # [1.0.0-dev.83](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.82...v1.0.0-dev.83) (2024-09-03) ### Features * use script as entrypoint ([2652d51](https://github.com/powerhouse-inc/document-model-electron/commit/2652d51a0a9342dc28e4f8c52ee06280d0d555da)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 087f7d9f..7da4ad31 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.0.0-dev.83](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.82...v1.0.0-dev.83) (2024-09-03) + + +### Features + +* use script as entrypoint ([2652d51](https://github.com/powerhouse-inc/document-model-electron/commit/2652d51a0a9342dc28e4f8c52ee06280d0d555da)) + # [1.0.0-dev.82](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.81...v1.0.0-dev.82) (2024-09-03) diff --git a/package.json b/package.json index 69ccb3df..5c6ce7d6 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.82", + "version": "1.0.0-dev.83", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From ffe04e761213640e2487e1da8f22639c873bcbc5 Mon Sep 17 00:00:00 2001 From: acaldas Date: Tue, 3 Sep 2024 20:26:35 +0100 Subject: [PATCH 33/90] feat: fixed entrypoint script --- Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index e0748d77..5b81a06d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -30,4 +30,5 @@ ARG BASE_PATH="/" ENV BASE_PATH=${BASE_PATH} COPY --from=builder /opt/app/dist /usr/share/nginx/html COPY nginx.conf /etc/nginx/conf.d/default.conf.template -ENTRYPOINT ["//usr/share/nginx/html/nginx.sh"] \ No newline at end of file +RUN chmod +x /usr/share/nginx/html/nginx.sh +ENTRYPOINT ["/usr/share/nginx/html/nginx.sh"] \ No newline at end of file From cbfcfc88fccf859b560379f5f4b007158bc08791 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 3 Sep 2024 19:28:22 +0000 Subject: [PATCH 34/90] chore(release): set `package.json` to 1.0.0-dev.84 [skip ci] # [1.0.0-dev.84](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.83...v1.0.0-dev.84) (2024-09-03) ### Features * fixed entrypoint script ([ffe04e7](https://github.com/powerhouse-inc/document-model-electron/commit/ffe04e761213640e2487e1da8f22639c873bcbc5)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7da4ad31..a71fe657 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.0.0-dev.84](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.83...v1.0.0-dev.84) (2024-09-03) + + +### Features + +* fixed entrypoint script ([ffe04e7](https://github.com/powerhouse-inc/document-model-electron/commit/ffe04e761213640e2487e1da8f22639c873bcbc5)) + # [1.0.0-dev.83](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.82...v1.0.0-dev.83) (2024-09-03) diff --git a/package.json b/package.json index 5c6ce7d6..cd77f6cb 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.83", + "version": "1.0.0-dev.84", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From 82c2c9526a50dd79513dc8772863bdd8aef284c3 Mon Sep 17 00:00:00 2001 From: acaldas Date: Tue, 3 Sep 2024 20:31:35 +0100 Subject: [PATCH 35/90] feat: entrypoint script cleanup --- nginx.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/nginx.sh b/nginx.sh index 8e9d0b09..aabc6efd 100644 --- a/nginx.sh +++ b/nginx.sh @@ -5,8 +5,6 @@ # Prepare nginx config envsubst '$PORT,$BASE_PATH' < /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf -cat /etc/nginx/conf.d/default.conf -nginx -t # Start Nginx nginx -g 'daemon off;' \ No newline at end of file From 17ca20568aa91ffc8ebf06070e195c2117b73223 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 3 Sep 2024 19:33:20 +0000 Subject: [PATCH 36/90] chore(release): set `package.json` to 1.0.0-dev.85 [skip ci] # [1.0.0-dev.85](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.84...v1.0.0-dev.85) (2024-09-03) ### Features * entrypoint script cleanup ([82c2c95](https://github.com/powerhouse-inc/document-model-electron/commit/82c2c9526a50dd79513dc8772863bdd8aef284c3)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a71fe657..59d92327 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.0.0-dev.85](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.84...v1.0.0-dev.85) (2024-09-03) + + +### Features + +* entrypoint script cleanup ([82c2c95](https://github.com/powerhouse-inc/document-model-electron/commit/82c2c9526a50dd79513dc8772863bdd8aef284c3)) + # [1.0.0-dev.84](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.83...v1.0.0-dev.84) (2024-09-03) diff --git a/package.json b/package.json index cd77f6cb..6d5c0c2b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.84", + "version": "1.0.0-dev.85", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From 3951036c1dcc9c8728c7c33f130f1f67d8cee504 Mon Sep 17 00:00:00 2001 From: acaldas Date: Tue, 3 Sep 2024 20:47:57 +0100 Subject: [PATCH 37/90] feat: fixed env vars --- .env | 6 +++--- .github/workflows/build-and-deploy-powerhouse-develop.yaml | 4 ---- Dockerfile | 4 ++++ 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.env b/.env index 80549efd..31d68bd7 100644 --- a/.env +++ b/.env @@ -9,8 +9,8 @@ SENTRY_PROJECT= # environment variables ## app configuration & feature flags -PH_CONNECT_ROUTER_BASENAME="/" -PH_CONNECT_DEFAULT_DRIVES_URL="" +PH_CONNECT_ROUTER_BASENAME="/develop/powerhouse/connect" +PH_CONNECT_DEFAULT_DRIVES_URL="https://apps.powerhouse.io/develop/powerhouse/switchboard/d/core-dev" PH_CONNECT_ENABLED_EDITORS="*" PH_CONNECT_DISABLE_ADD_PUBLIC_DRIVES="false" PH_CONNECT_SEARCH_BAR_ENABLED="false" @@ -34,4 +34,4 @@ PH_CONNECT_DISABLED_EDITORS="" ## error tracking PH_CONNECT_SENTRY_DSN="" PH_CONNECT_SENTRY_PROJECT="" -PH_CONNECT_SENTRY_ENV="prod +PH_CONNECT_SENTRY_ENV="prod" diff --git a/.github/workflows/build-and-deploy-powerhouse-develop.yaml b/.github/workflows/build-and-deploy-powerhouse-develop.yaml index f12985a7..35855aa2 100644 --- a/.github/workflows/build-and-deploy-powerhouse-develop.yaml +++ b/.github/workflows/build-and-deploy-powerhouse-develop.yaml @@ -24,10 +24,6 @@ jobs: heroku_app_name: ${{ secrets.HEROKU_APP_NAME }} docker_options: >- --build-arg BASE_PATH=/develop/powerhouse/connect - --build-arg PH_CONNECT_BASE_HREF=/develop/powerhouse/connect/ - --build-arg PH_CONNECT_ROUTER_BASENAME=/develop/powerhouse/connect - --build-arg PH_CONNECT_DEFAULT_DRIVES_URL=https://apps.powerhouse.io/develop/powerhouse/switchboard/d/core-dev - --build-arg PH_CONNECT_SEARCH_BAR_ENABLED=false --build-arg PH_CONNECT_SENTRY_DSN=${{ secrets.SENTRY_DSN }} --build-arg PH_CONNECT_SENTRY_ENV=${{ secrets.SENTRY_ENV }} --build-arg SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} diff --git a/Dockerfile b/Dockerfile index 5b81a06d..f0d2511b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -28,6 +28,10 @@ ARG PORT=80 ENV PORT=${PORT} ARG BASE_PATH="/" ENV BASE_PATH=${BASE_PATH} +ARG PH_CONNECT_SENTRY_DSN="" +ENV PH_CONNECT_SENTRY_DSN=${PH_CONNECT_SENTRY_DSN} +ARG PH_CONNECT_SENTRY_ENV="" +ENV PH_CONNECT_SENTRY_ENV=${PH_CONNECT_SENTRY_ENV} COPY --from=builder /opt/app/dist /usr/share/nginx/html COPY nginx.conf /etc/nginx/conf.d/default.conf.template RUN chmod +x /usr/share/nginx/html/nginx.sh From 416d2827abb9198ec0f2498e9d9d0d859a0a6d8f Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 3 Sep 2024 19:49:51 +0000 Subject: [PATCH 38/90] chore(release): set `package.json` to 1.0.0-dev.86 [skip ci] # [1.0.0-dev.86](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.85...v1.0.0-dev.86) (2024-09-03) ### Features * fixed env vars ([3951036](https://github.com/powerhouse-inc/document-model-electron/commit/3951036c1dcc9c8728c7c33f130f1f67d8cee504)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 59d92327..493e6722 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.0.0-dev.86](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.85...v1.0.0-dev.86) (2024-09-03) + + +### Features + +* fixed env vars ([3951036](https://github.com/powerhouse-inc/document-model-electron/commit/3951036c1dcc9c8728c7c33f130f1f67d8cee504)) + # [1.0.0-dev.85](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.84...v1.0.0-dev.85) (2024-09-03) diff --git a/package.json b/package.json index 6d5c0c2b..5f92c9d7 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.85", + "version": "1.0.0-dev.86", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From e9275a9b2012e8902436fc369ebf8dad468fac92 Mon Sep 17 00:00:00 2001 From: acaldas Date: Tue, 3 Sep 2024 21:04:29 +0100 Subject: [PATCH 39/90] fix: test env access in config --- connect.config.ts | 14 +++++++++----- package-lock.json | 5 +++-- src/hooks/useFeatureFlags/default-config.ts | 8 ++++++-- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/connect.config.ts b/connect.config.ts index bbb01107..f6333b28 100644 --- a/connect.config.ts +++ b/connect.config.ts @@ -1,5 +1,6 @@ -import { CLOUD, LOCAL, PUBLIC } from "@powerhousedao/design-system"; - +import { CLOUD, LOCAL, PUBLIC } from '@powerhousedao/design-system'; +console.log('Config'); +console.log(JSON.stringify(import.meta.env, null, 2)); const DISABLE_ADD_PUBLIC_DRIVES = import.meta.env.PH_CONNECT_DISABLE_ADD_PUBLIC_DRIVES || undefined; const DISABLE_ADD_CLOUD_DRIVES = @@ -20,12 +21,15 @@ const CLOUD_DRIVES_ENABLED = const PUBLIC_DRIVES_ENABLED = import.meta.env.PH_CONNECT_PUBLIC_DRIVES_ENABLED || undefined; -const SEARCH_BAR_ENABLED = import.meta.env.PH_CONNECT_SEARCH_BAR_ENABLED || undefined; +const SEARCH_BAR_ENABLED = + import.meta.env.PH_CONNECT_SEARCH_BAR_ENABLED || undefined; const HIDE_DOCUMENT_MODEL_SELECTION_SETTINGS = - import.meta.env.PH_CONNECT_HIDE_DOCUMENT_MODEL_SELECTION_SETTINGS || 'false'; + import.meta.env.PH_CONNECT_HIDE_DOCUMENT_MODEL_SELECTION_SETTINGS || + 'false'; -const PH_CONNECT_ROUTER_BASENAME = import.meta.env.PH_CONNECT_ROUTER_BASENAME || '/'; +const PH_CONNECT_ROUTER_BASENAME = + import.meta.env.PH_CONNECT_ROUTER_BASENAME || '/'; const PH_CONNECT_SENTRY_DSN = import.meta.env.PH_CONNECT_SENTRY_DSN || ''; const PH_CONNECT_SENTRY_ENV = import.meta.env.PH_CONNECT_SENTRY_ENV || 'dev'; diff --git a/package-lock.json b/package-lock.json index 0d2b88e8..6dec1fe7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,13 @@ { "name": "@powerhousedao/connect", - "version": "1.0.0-dev.77", + "version": "1.0.0-dev.85", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@powerhousedao/connect", - "version": "1.0.0-dev.77", + "version": "1.0.0-dev.85", + "hasInstallScript": true, "license": "AGPL-3.0-only", "dependencies": { "@powerhousedao/design-system": "1.0.0-alpha.160", diff --git a/src/hooks/useFeatureFlags/default-config.ts b/src/hooks/useFeatureFlags/default-config.ts index f0e43c87..db5ec658 100644 --- a/src/hooks/useFeatureFlags/default-config.ts +++ b/src/hooks/useFeatureFlags/default-config.ts @@ -3,9 +3,13 @@ export const FEATURE_FLAG_KEY_STORAGE = 'feature-flags-config'; const ENABLED_EDITORS = import.meta.env.PH_CONNECT_ENABLED_EDITORS || undefined; const enabledEditors = ENABLED_EDITORS?.split(','); -const DISABLED_EDITORS = import.meta.env.PH_CONNECT_DISABLED_EDITORS || undefined; -const DEFAULT_DRIVES_URL = import.meta.env.PH_CONNECT_DEFAULT_DRIVES_URL || undefined; +const DISABLED_EDITORS = + import.meta.env.PH_CONNECT_DISABLED_EDITORS || undefined; +const DEFAULT_DRIVES_URL = + import.meta.env.PH_CONNECT_DEFAULT_DRIVES_URL || undefined; const disabledEditors = DISABLED_EDITORS?.split(','); +console.log('Default'); +console.log(JSON.stringify(import.meta.env, null, 2)); export interface FeatureFlag { defaultDrives?: { From b938f948e9c637db1d5717fcda1bbccee0189e62 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 3 Sep 2024 20:06:19 +0000 Subject: [PATCH 40/90] chore(release): set `package.json` to 1.0.0-dev.87 [skip ci] # [1.0.0-dev.87](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.86...v1.0.0-dev.87) (2024-09-03) ### Bug Fixes * test env access in config ([e9275a9](https://github.com/powerhouse-inc/document-model-electron/commit/e9275a9b2012e8902436fc369ebf8dad468fac92)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 493e6722..3a3559e1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.0.0-dev.87](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.86...v1.0.0-dev.87) (2024-09-03) + + +### Bug Fixes + +* test env access in config ([e9275a9](https://github.com/powerhouse-inc/document-model-electron/commit/e9275a9b2012e8902436fc369ebf8dad468fac92)) + # [1.0.0-dev.86](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.85...v1.0.0-dev.86) (2024-09-03) diff --git a/package.json b/package.json index 5f92c9d7..41f4366d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.86", + "version": "1.0.0-dev.87", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From 84d4af738b462175d6f6e59a09d200046e23793d Mon Sep 17 00:00:00 2001 From: acaldas Date: Tue, 3 Sep 2024 21:17:44 +0100 Subject: [PATCH 41/90] feat: moved connect config to the src folder so it has access to the env vars --- connect.config.ts => src/connect.config.ts | 3 +-- src/hooks/useFeatureFlags/default-config.ts | 2 -- tsconfig.json | 2 +- vite.main.config.mts | 5 ++++- vite.renderer.config.mts | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) rename connect.config.ts => src/connect.config.ts (97%) diff --git a/connect.config.ts b/src/connect.config.ts similarity index 97% rename from connect.config.ts rename to src/connect.config.ts index f6333b28..2d988206 100644 --- a/connect.config.ts +++ b/src/connect.config.ts @@ -1,6 +1,5 @@ import { CLOUD, LOCAL, PUBLIC } from '@powerhousedao/design-system'; -console.log('Config'); -console.log(JSON.stringify(import.meta.env, null, 2)); + const DISABLE_ADD_PUBLIC_DRIVES = import.meta.env.PH_CONNECT_DISABLE_ADD_PUBLIC_DRIVES || undefined; const DISABLE_ADD_CLOUD_DRIVES = diff --git a/src/hooks/useFeatureFlags/default-config.ts b/src/hooks/useFeatureFlags/default-config.ts index db5ec658..0aaf847f 100644 --- a/src/hooks/useFeatureFlags/default-config.ts +++ b/src/hooks/useFeatureFlags/default-config.ts @@ -8,8 +8,6 @@ const DISABLED_EDITORS = const DEFAULT_DRIVES_URL = import.meta.env.PH_CONNECT_DEFAULT_DRIVES_URL || undefined; const disabledEditors = DISABLED_EDITORS?.split(','); -console.log('Default'); -console.log(JSON.stringify(import.meta.env, null, 2)); export interface FeatureFlag { defaultDrives?: { diff --git a/tsconfig.json b/tsconfig.json index 359c9407..7b026830 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -20,7 +20,7 @@ "baseUrl": ".", "paths": { "@/assets": ["assets"], - "connect-config": ["connect.config.ts"], + "connect-config": ["src/connect.config.ts"], }, "types": ["vite/client", "vite-plugin-svgr/client", "@types/wicg-file-system-access"] }, diff --git a/vite.main.config.mts b/vite.main.config.mts index e797c701..673ff31d 100644 --- a/vite.main.config.mts +++ b/vite.main.config.mts @@ -6,7 +6,10 @@ export default defineConfig({ resolve: { alias: { src: path.resolve(__dirname, './src'), - 'connect-config': path.resolve(__dirname, './connect.config.ts'), + 'connect-config': path.resolve( + __dirname, + './src/connect.config.ts', + ), }, }, }); diff --git a/vite.renderer.config.mts b/vite.renderer.config.mts index c662ff9e..2bd88197 100644 --- a/vite.renderer.config.mts +++ b/vite.renderer.config.mts @@ -102,7 +102,7 @@ export default defineConfig(({ mode }) => { src: path.resolve(__dirname, './src'), 'connect-config': path.resolve( __dirname, - './connect.config.ts', + './src/connect.config.ts', ), path: 'rollup-plugin-node-polyfills/polyfills/path', events: 'rollup-plugin-node-polyfills/polyfills/events', From 165005c01763ec002d0e787697ff3e3958fc8172 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 3 Sep 2024 20:19:41 +0000 Subject: [PATCH 42/90] chore(release): set `package.json` to 1.0.0-dev.88 [skip ci] # [1.0.0-dev.88](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.87...v1.0.0-dev.88) (2024-09-03) ### Features * moved connect config to the src folder so it has access to the env vars ([84d4af7](https://github.com/powerhouse-inc/document-model-electron/commit/84d4af738b462175d6f6e59a09d200046e23793d)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a3559e1..81ba692e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.0.0-dev.88](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.87...v1.0.0-dev.88) (2024-09-03) + + +### Features + +* moved connect config to the src folder so it has access to the env vars ([84d4af7](https://github.com/powerhouse-inc/document-model-electron/commit/84d4af738b462175d6f6e59a09d200046e23793d)) + # [1.0.0-dev.87](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.86...v1.0.0-dev.87) (2024-09-03) diff --git a/package.json b/package.json index 41f4366d..8eff6b7c 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.87", + "version": "1.0.0-dev.88", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From beb5d711a527090fdde84085295a6e775594c436 Mon Sep 17 00:00:00 2001 From: acaldas Date: Tue, 3 Sep 2024 21:22:55 +0100 Subject: [PATCH 43/90] fix: fixed outdated config import --- src/app/sentry.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/sentry.ts b/src/app/sentry.ts index 24fa773e..dc28d2e5 100644 --- a/src/app/sentry.ts +++ b/src/app/sentry.ts @@ -1,4 +1,5 @@ import * as Sentry from '@sentry/react'; +import config from 'connect-config'; import React from 'react'; import { createRoutesFromChildren, @@ -6,7 +7,6 @@ import { useLocation, useNavigationType, } from 'react-router-dom'; -import config from '../../connect.config'; import { version } from '../../package.json'; function initSenty() { From f76fcc1015a6e9fc5c8e4b920e9764aff522c29b Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 3 Sep 2024 20:24:47 +0000 Subject: [PATCH 44/90] chore(release): set `package.json` to 1.0.0-dev.89 [skip ci] # [1.0.0-dev.89](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.88...v1.0.0-dev.89) (2024-09-03) ### Bug Fixes * fixed outdated config import ([beb5d71](https://github.com/powerhouse-inc/document-model-electron/commit/beb5d711a527090fdde84085295a6e775594c436)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 81ba692e..ebaa144b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.0.0-dev.89](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.88...v1.0.0-dev.89) (2024-09-03) + + +### Bug Fixes + +* fixed outdated config import ([beb5d71](https://github.com/powerhouse-inc/document-model-electron/commit/beb5d711a527090fdde84085295a6e775594c436)) + # [1.0.0-dev.88](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.87...v1.0.0-dev.88) (2024-09-03) diff --git a/package.json b/package.json index 8eff6b7c..4b3a073e 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.88", + "version": "1.0.0-dev.89", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From dbca2b46a418035794cd931d3b89f229bb34a04b Mon Sep 17 00:00:00 2001 From: acaldas Date: Wed, 4 Sep 2024 09:45:59 +0100 Subject: [PATCH 45/90] feat: scope the service worker to the basepath --- nginx.conf | 7 +++++++ src/service-worker.ts | 5 ++++- src/utils/registerServiceWorker.ts | 6 +++++- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/nginx.conf b/nginx.conf index dce80dfa..324d997c 100644 --- a/nginx.conf +++ b/nginx.conf @@ -49,6 +49,13 @@ server { add_header Cache-Control "no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0"; } + location ${BASE_PATH}/version.json { + alias /usr/share/nginx/html/version.json; + expires -1; + access_log off; + add_header Cache-Control "no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0"; + } + location ${BASE_PATH} { root /usr/share/nginx/html; index index.html; diff --git a/src/service-worker.ts b/src/service-worker.ts index 4e0e2ad7..f9e6df2a 100644 --- a/src/service-worker.ts +++ b/src/service-worker.ts @@ -34,7 +34,10 @@ _self.addEventListener('message', async (event: SeriveWorkerMessage) => { async function checkForUpdates() { try { - const response = await fetch('/version.json', { cache: 'no-store' }); + const scope = _self.registration.scope; + const response = await fetch(new URL('/version.json', scope), { + cache: 'no-store', + }); const newVersion = (await response.json()) as VersionResponse; const cache = await caches.open(VERSION_CACHE); const cachedResponse = await cache.match(VERSION_KEY); diff --git a/src/utils/registerServiceWorker.ts b/src/utils/registerServiceWorker.ts index 20e1ed62..2919af6a 100644 --- a/src/utils/registerServiceWorker.ts +++ b/src/utils/registerServiceWorker.ts @@ -8,6 +8,8 @@ const serviceWorkerScriptPath = [ .join('/') .replace(/\/{2,}/gm, '/'); +const serviceWorkerScope = connectConfig.routerBasename; + type SET_APP_VERSION_MESSAGE = { type: 'SET_APP_VERSION'; version: string; @@ -41,7 +43,9 @@ class ServiceWorkerManager { if ('serviceWorker' in navigator) { window.addEventListener('load', () => { navigator.serviceWorker - .register(serviceWorkerScriptPath) + .register(serviceWorkerScriptPath, { + scope: serviceWorkerScope, + }) .then(registration => { // Listen for messages from the service worker if (this.debug) { From fd124b28f01686288a273fd559104c5841ff4192 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 4 Sep 2024 08:58:18 +0000 Subject: [PATCH 46/90] chore(release): set `package.json` to 1.0.0-dev.90 [skip ci] # [1.0.0-dev.90](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.89...v1.0.0-dev.90) (2024-09-04) ### Features * scope the service worker to the basepath ([dbca2b4](https://github.com/powerhouse-inc/document-model-electron/commit/dbca2b46a418035794cd931d3b89f229bb34a04b)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ebaa144b..448d69a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.0.0-dev.90](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.89...v1.0.0-dev.90) (2024-09-04) + + +### Features + +* scope the service worker to the basepath ([dbca2b4](https://github.com/powerhouse-inc/document-model-electron/commit/dbca2b46a418035794cd931d3b89f229bb34a04b)) + # [1.0.0-dev.89](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.88...v1.0.0-dev.89) (2024-09-03) diff --git a/package.json b/package.json index 4b3a073e..4062126e 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.89", + "version": "1.0.0-dev.90", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From 50515aec4168d90c1c1572e7bfa52dc808b1a6c9 Mon Sep 17 00:00:00 2001 From: acaldas Date: Wed, 4 Sep 2024 17:20:27 +0100 Subject: [PATCH 47/90] feat: build service worker as part of the bundle --- Dockerfile | 5 +- nginx.sh | 1 + package-lock.json | 5 +- package.json | 1 - src/app/sentry.ts | 3 +- .../modal/modals/DebugSettingsModal.tsx | 6 +- src/connect.config.ts | 4 + src/hooks/utils.ts | 3 +- src/renderer.ts | 9 +- src/service-worker.ts | 77 ++++++-- src/utils/registerServiceWorker.ts | 170 +++++++++++------- src/vite-env.d.ts | 1 + vite.renderer.config.mts | 109 ++++++++--- 13 files changed, 272 insertions(+), 122 deletions(-) diff --git a/Dockerfile b/Dockerfile index f0d2511b..849911a7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -34,5 +34,6 @@ ARG PH_CONNECT_SENTRY_ENV="" ENV PH_CONNECT_SENTRY_ENV=${PH_CONNECT_SENTRY_ENV} COPY --from=builder /opt/app/dist /usr/share/nginx/html COPY nginx.conf /etc/nginx/conf.d/default.conf.template -RUN chmod +x /usr/share/nginx/html/nginx.sh -ENTRYPOINT ["/usr/share/nginx/html/nginx.sh"] \ No newline at end of file +COPY nginx.sh /usr/share/nginx/nginx.sh +RUN chmod +x /usr/share/nginx/nginx.sh +ENTRYPOINT ["/usr/share/nginx/nginx.sh"] \ No newline at end of file diff --git a/nginx.sh b/nginx.sh index aabc6efd..5009c506 100644 --- a/nginx.sh +++ b/nginx.sh @@ -7,4 +7,5 @@ envsubst '$PORT,$BASE_PATH' < /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf # Start Nginx +cd dist/ nginx -g 'daemon off;' \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 6dec1fe7..1dd35bea 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,13 +1,12 @@ { "name": "@powerhousedao/connect", - "version": "1.0.0-dev.85", + "version": "1.0.0-dev.89", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@powerhousedao/connect", - "version": "1.0.0-dev.85", - "hasInstallScript": true, + "version": "1.0.0-dev.89", "license": "AGPL-3.0-only", "dependencies": { "@powerhousedao/design-system": "1.0.0-alpha.160", diff --git a/package.json b/package.json index 4062126e..f5d0864d 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,6 @@ "dev:web": "vite -c vite.renderer.config.mts", "dev:nocache": "rm -rf node_modules/.vite && rm -rf node_modules/.cache && npm run dev:web", "build:web": "NODE_OPTIONS=--max-old-space-size=6144 vite build -c vite.renderer.config.mts", - "postbuild:web": "npm run build:service-worker", "preview:web": "vite preview -c vite.renderer.config.mts", "release": "semantic-release", "e2e": "playwright test", diff --git a/src/app/sentry.ts b/src/app/sentry.ts index dc28d2e5..2ceeb1e2 100644 --- a/src/app/sentry.ts +++ b/src/app/sentry.ts @@ -7,7 +7,6 @@ import { useLocation, useNavigationType, } from 'react-router-dom'; -import { version } from '../../package.json'; function initSenty() { if (!config.sentry.dsn || config.sentry.dsn === '') { @@ -17,7 +16,7 @@ function initSenty() { Sentry.init({ dsn: config.sentry.dsn, environment: config.sentry.env, - release: version, + release: import.meta.env.SENTRY_RELEASE, integrations: [ Sentry.extraErrorDataIntegration({ depth: 5 }), Sentry.reactRouterV6BrowserTracingIntegration({ diff --git a/src/components/modal/modals/DebugSettingsModal.tsx b/src/components/modal/modals/DebugSettingsModal.tsx index 49f75181..b1d70417 100644 --- a/src/components/modal/modals/DebugSettingsModal.tsx +++ b/src/components/modal/modals/DebugSettingsModal.tsx @@ -6,6 +6,7 @@ import { Modal, } from '@powerhousedao/design-system'; import { useEffect, useState } from 'react'; +import { useConnectConfig } from 'src/hooks/useConnectConfig'; import { useDocumentDriveServer } from 'src/hooks/useDocumentDriveServer'; import serviceWorkerManager from 'src/utils/registerServiceWorker'; import { v4 as uuid } from 'uuid'; @@ -20,13 +21,14 @@ type ComboboxOption = { }; export const DebugSettingsModal: React.FC = props => { + const [connectConfig] = useConnectConfig(); const { open, onClose } = props; const autoRegisterPullResponder = localStorage.getItem('AUTO_REGISTER_PULL_RESPONDER') !== 'false'; console.log('autoRegisterPullResponder', autoRegisterPullResponder); - const [appVersion, setAppVersion] = useState(''); + const [appVersion, setAppVersion] = useState(connectConfig.appVersion); const [serviceWorkerDebugMode, setServiceWorkerDebugMode] = useState({ label: serviceWorkerManager.debug ? 'Enabled' : 'Disabled', value: serviceWorkerManager.debug, @@ -125,7 +127,7 @@ export const DebugSettingsModal: React.FC = props => {
- App Version: {import.meta.env.APP_VERSION} + App Version: {connectConfig.appVersion}
diff --git a/src/connect.config.ts b/src/connect.config.ts index 2d988206..cee239db 100644 --- a/src/connect.config.ts +++ b/src/connect.config.ts @@ -1,4 +1,7 @@ import { CLOUD, LOCAL, PUBLIC } from '@powerhousedao/design-system'; +import { version } from '../package.json'; + +const APP_VERSION = import.meta.env.APP_VERSION || version; const DISABLE_ADD_PUBLIC_DRIVES = import.meta.env.PH_CONNECT_DISABLE_ADD_PUBLIC_DRIVES || undefined; @@ -34,6 +37,7 @@ const PH_CONNECT_SENTRY_DSN = import.meta.env.PH_CONNECT_SENTRY_DSN || ''; const PH_CONNECT_SENTRY_ENV = import.meta.env.PH_CONNECT_SENTRY_ENV || 'dev'; export default { + appVersion: APP_VERSION, routerBasename: PH_CONNECT_ROUTER_BASENAME, sentry: { dsn: PH_CONNECT_SENTRY_DSN, diff --git a/src/hooks/utils.ts b/src/hooks/utils.ts index cd8b99f1..d3e8b9e5 100644 --- a/src/hooks/utils.ts +++ b/src/hooks/utils.ts @@ -1,4 +1,5 @@ -import { version as currentVersion } from '../../package.json'; +const currentVersion = import.meta.env.APP_VERSION; + export const isElectron = window.navigator.userAgent.includes('Electron'); export const isMac = window.navigator.appVersion.includes('Mac'); diff --git a/src/renderer.ts b/src/renderer.ts index 3aab81b3..eeade0af 100644 --- a/src/renderer.ts +++ b/src/renderer.ts @@ -33,10 +33,15 @@ import './index.css'; import { DocumentEditorDebugTools } from './utils/document-editor-debug-tools'; import serviceWorkerManager from './utils/registerServiceWorker'; -if (import.meta.env.MODE === 'development') { +const AppElement = document.getElementById('app'); +if (!AppElement) { + throw new Error('#app element not found!'); +} + +if (import.meta.env.MODE !== 'development') { window.documentEditorDebugTools = new DocumentEditorDebugTools(); } else { serviceWorkerManager.registerServiceWorker(false); } -createRoot(document.getElementById('app')!).render(App); +createRoot(AppElement).render(App); diff --git a/src/service-worker.ts b/src/service-worker.ts index f9e6df2a..bf1f221c 100644 --- a/src/service-worker.ts +++ b/src/service-worker.ts @@ -1,5 +1,10 @@ /// +import { + ServiceWorkerEvent, + ServiceWorkerManagerMessage, +} from './utils/registerServiceWorker'; + const _self = self as unknown as ServiceWorkerGlobalScope; const VERSION_CACHE = 'version-cache'; @@ -13,29 +18,49 @@ _self.addEventListener('activate', (event: ExtendableEvent) => { event.waitUntil(_self.clients.claim()); }); -interface SeriveWorkerMessage extends ExtendableMessageEvent { - data: { - type: string; - version: string; - }; -} +export type NEW_VERSION_AVAILABLE_MESSAGE = { + type: 'NEW_VERSION_AVAILABLE'; + requiresHardRefresh: boolean; +}; + +export type ServiceWorkerMessageData = NEW_VERSION_AVAILABLE_MESSAGE; + +export type ServiceWorkerMessage = ServiceWorkerEvent; interface VersionResponse { version: string; requiresHardRefresh: boolean; } -_self.addEventListener('message', async (event: SeriveWorkerMessage) => { - if (event.data && event.data.type === 'SET_APP_VERSION') { - const cache = await caches.open(VERSION_CACHE); - await cache.put(VERSION_KEY, new Response(event.data.version)); +function postMessage(client: Client, message: ServiceWorkerMessageData) { + return client.postMessage(message); +} + +_self.addEventListener('message', async event => { + const message = + 'type' in event.data ? (event as ServiceWorkerManagerMessage) : null; + switch (message?.data.type) { + case 'SET_APP_VERSION': { + const cache = await caches.open(VERSION_CACHE); + await cache.put(VERSION_KEY, new Response(message.data.version)); + break; + } + case 'NETWORK_STATUS': { + message.data.online + ? startCheckingForUpdates() + : stopCheckingForUpdates(); + break; + } + default: { + console.warn('Unhandled message:', message); + break; + } } }); -async function checkForUpdates() { +async function checkForUpdates(basePath: string) { try { - const scope = _self.registration.scope; - const response = await fetch(new URL('/version.json', scope), { + const response = await fetch(new URL('/version.json', basePath), { cache: 'no-store', }); const newVersion = (await response.json()) as VersionResponse; @@ -58,7 +83,7 @@ async function checkForUpdates() { const clients = await _self.clients.matchAll(); clients.forEach(client => { - client.postMessage({ + postMessage(client, { type: 'NEW_VERSION_AVAILABLE', requiresHardRefresh: newVersion.requiresHardRefresh, }); @@ -72,5 +97,25 @@ async function checkForUpdates() { } } -// Check for updates every minute -setInterval(checkForUpdates, 5 * 1000); // 60 seconds +let checkUpdatesInterval: number | undefined; +function startCheckingForUpdates() { + stopCheckingForUpdates(); + const basePath = _self.registration.scope; + + // does the initial check right away + setTimeout(() => checkForUpdates(basePath), 0); + + // Check for updates every 5 minutes + checkUpdatesInterval = setInterval( + () => checkForUpdates(basePath), + 5 * 1000, + ) as unknown as number; +} + +function stopCheckingForUpdates() { + if (checkUpdatesInterval) { + clearInterval(checkUpdatesInterval); + } +} + +startCheckingForUpdates(); diff --git a/src/utils/registerServiceWorker.ts b/src/utils/registerServiceWorker.ts index 2919af6a..1b7490a2 100644 --- a/src/utils/registerServiceWorker.ts +++ b/src/utils/registerServiceWorker.ts @@ -1,28 +1,36 @@ /* eslint-disable @typescript-eslint/no-unsafe-member-access */ import connectConfig from 'connect-config'; +import { ServiceWorkerMessage } from 'src/service-worker'; -const serviceWorkerScriptPath = [ - connectConfig.routerBasename, - 'service-worker.js', -] +const basePath = connectConfig.routerBasename; + +const serviceWorkerScriptPath = [basePath, 'service-worker.js'] .join('/') .replace(/\/{2,}/gm, '/'); -const serviceWorkerScope = connectConfig.routerBasename; +export interface IServiceWorkerMessageData { + type: string; +} + +export interface ServiceWorkerEvent + extends ExtendableMessageEvent { + data: T; +} -type SET_APP_VERSION_MESSAGE = { +export type SET_APP_VERSION = { type: 'SET_APP_VERSION'; version: string; }; -export type ServiceWorkerPostMessage = SET_APP_VERSION_MESSAGE; - -type NEW_VERSION_AVAILABLE_MESSAGE = { - type: 'NEW_VERSION_AVAILABLE'; - requiresHardRefresh: boolean; +export type NETWORK_STATUS = { + type: 'NETWORK_STATUS'; + online: boolean; }; -export type ServiceWorkerMessage = NEW_VERSION_AVAILABLE_MESSAGE; +export type ServiceWorkerManagerMessageData = SET_APP_VERSION | NETWORK_STATUS; + +export type ServiceWorkerManagerMessage = + ServiceWorkerEvent; class ServiceWorkerManager { ready = false; @@ -37,69 +45,93 @@ class ServiceWorkerManager { this.debug = debug; } - registerServiceWorker(debug = false) { - this.debug = debug; + #handleServiceWorkerMessage(event: MessageEvent | ServiceWorkerMessage) { + if (this.debug) { + console.log('ServiceWorker message: ', event); + } + const message = + 'type' in event.data ? (event as ServiceWorkerMessage) : null; + switch (message?.data.type) { + case 'NEW_VERSION_AVAILABLE': { + if (message.data.requiresHardRefresh) { + if (this.debug) { + console.log('New version available'); + } + window.location.reload(); // Reload the page to load the new version + } + break; + } + default: { + console.warn('Unhandled message:', message); + break; + } + } + } + + #handleServiceWorker(registration: ServiceWorkerRegistration) { + { + // Listen for messages from the service worker + if (this.debug) { + console.log('ServiceWorker registered: ', registration); + } - if ('serviceWorker' in navigator) { - window.addEventListener('load', () => { - navigator.serviceWorker - .register(serviceWorkerScriptPath, { - scope: serviceWorkerScope, - }) - .then(registration => { - // Listen for messages from the service worker - if (this.debug) { - console.log( - 'ServiceWorker registered: ', - registration, - ); - } - - navigator.serviceWorker.addEventListener( - 'message', - event => { - if (this.debug) { - console.log( - 'ServiceWorker message: ', - event, - ); - } - - if ( - event.data && - event.data.type === - 'NEW_VERSION_AVAILABLE' && - event.data.requiresHardRefresh === true - ) { - if (this.debug) { - console.log('New version available'); - } - window.location.reload(); // Reload the page to load the new version - } - }, - ); - - if (navigator.serviceWorker.controller) { - navigator.serviceWorker.controller.postMessage({ - type: 'SET_APP_VERSION', - version: import.meta.env.APP_VERSION, - }); - } - - this.ready = true; - this.registration = registration; - }) - .catch(error => { - console.error( - 'ServiceWorker registration failed: ', - error, - ); + navigator.serviceWorker.addEventListener( + 'message', + this.#handleServiceWorkerMessage.bind(this), + ); + + this.registration = registration; + this.ready = true; + + window.addEventListener('online', () => { + if (navigator.serviceWorker.controller) { + this.sendMessage({ + type: 'NETWORK_STATUS', + online: true, + }); + } + }); + + window.addEventListener('offline', () => { + if (navigator.serviceWorker.controller) { + this.sendMessage({ + type: 'NETWORK_STATUS', + online: false, }); + } }); + + if (navigator.serviceWorker.controller) { + this.sendMessage({ + type: 'SET_APP_VERSION', + version: import.meta.env.APP_VERSION, + }); + } + } + } + + registerServiceWorker(debug = false) { + this.debug = debug; + + if (!('serviceWorker' in navigator)) { + console.warn('Service Worker not available'); + return; } + window.addEventListener('load', () => { + navigator.serviceWorker + .register( + import.meta.env.MODE === 'development' + ? './src/service-worker.ts' + : serviceWorkerScriptPath, + ) + .then(this.#handleServiceWorker.bind(this)) + .catch(error => { + console.error('ServiceWorker registration failed: ', error); + }); + }); } - sendMessage(message: ServiceWorkerPostMessage) { + sendMessage(message: ServiceWorkerManagerMessageData) { if (this.ready && this.registration) { const serviceWorker = this.registration.active || diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts index 77a1c945..0de38d88 100644 --- a/src/vite-env.d.ts +++ b/src/vite-env.d.ts @@ -10,6 +10,7 @@ type ImportMetaEnv = { PROD: boolean APP_VERSION: string REQUIRES_HARD_REFRESH: boolean + SENTRY_RELEASE: string BASE_PATH: string BASE_HREF: string PH_CONNECT_APP_REQUIRES_HARD_REFRESH: string diff --git a/vite.renderer.config.mts b/vite.renderer.config.mts index 2bd88197..f51362a7 100644 --- a/vite.renderer.config.mts +++ b/vite.renderer.config.mts @@ -4,7 +4,13 @@ import fs from 'fs'; import jotaiDebugLabel from 'jotai/babel/plugin-debug-label'; import jotaiReactRefresh from 'jotai/babel/plugin-react-refresh'; import path from 'path'; -import { HtmlTagDescriptor, PluginOption, defineConfig, loadEnv } from 'vite'; +import { + HtmlTagDescriptor, + Plugin, + PluginOption, + defineConfig, + loadEnv, +} from 'vite'; import { viteEnvs } from 'vite-envs'; import { createHtmlPlugin } from 'vite-plugin-html'; import svgr from 'vite-plugin-svgr'; @@ -12,23 +18,41 @@ import pkg from './package.json'; import clientConfig from './client.config'; -const appVersion = pkg.version; - -const addToBundlePlugin = (hardRefresh = false) => { +// Plugin to generate version.json in both dev and prod +const addToBundlePlugin = ( + file: { version: string; requiresHardRefresh?: boolean }, + basePath = '/', +): Plugin => { + const versionManifest = { + version: file.version, + requiresHardRefresh: file.requiresHardRefresh || false, + }; + console.log(versionManifest); return { name: 'add-to-bundle', + + // Hook for development mode (serves the file dynamically) + configureServer(server) { + // Middleware to serve version.json in dev mode + server.middlewares.use((req, res, next) => { + if (req.url === path.join(basePath, './version.json')) { + res.setHeader('Content-Type', 'application/json'); + res.end(JSON.stringify(versionManifest, null, 2)); + } else { + next(); + } + }); + }, + + // Hook for production mode (writes the file to the dist folder) closeBundle() { - const versionManifest = { - version: appVersion, - requiresHardRefresh: hardRefresh, - }; + const outputPath = path.join('dist', 'version.json'); + // Write the JSON file to the dist folder during production builds fs.writeFileSync( - path.join('dist', 'version.json'), + outputPath, JSON.stringify(versionManifest, null, 2), ); - - fs.copyFileSync('./nginx.sh', './dist/nginx.sh'); }, }; }; @@ -37,10 +61,28 @@ export default defineConfig(({ mode }) => { const isProd = mode === 'production'; const env = loadEnv(mode, process.cwd()); - const requiresHardRefresh = - env.PH_CONNECT_APP_REQUIRES_HARD_REFRESH === 'true'; + const requiresHardRefreshEnv: unknown = + process.env.PH_CONNECT_APP_REQUIRES_HARD_REFRESH ?? + env.PH_CONNECT_APP_REQUIRES_HARD_REFRESH; + + const REQUIRES_HARD_REFRESH = + typeof requiresHardRefreshEnv === 'boolean' + ? requiresHardRefreshEnv + : requiresHardRefreshEnv !== undefined + ? requiresHardRefreshEnv === 'true' + : isProd; + + const APP_VERSION = + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + (process.env.APP_VERSION ?? env.APP_VERSION ?? pkg.version).toString(); + + const authToken = process.env.SENTRY_AUTH_TOKEN ?? env.SENTRY_AUTH_TOKEN; + const org = process.env.SENTRY_ORG ?? env.SENTRY_ORG; + const project = process.env.SENTRY_PROJECT ?? env.SENTRY_PROJECT; + const release = + (process.env.SENTRY_RELEASE ?? env.SENTRY_RELEASE) || APP_VERSION; + const uploadSentrySourcemaps = authToken && org && project; - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment const plugins: PluginOption[] = [ react({ include: 'src/**/*.tsx', @@ -60,22 +102,23 @@ export default defineConfig(({ mode }) => { ], }, }), - addToBundlePlugin(isProd ? requiresHardRefresh : false), + addToBundlePlugin( + { + version: APP_VERSION, + requiresHardRefresh: REQUIRES_HARD_REFRESH, + }, + env.PH_CONNECT_ROUTER_BASENAME, + ), viteEnvs({ computedEnv() { return { - APP_VERSION: appVersion, - REQUIRES_HARD_REFRESH: isProd ? requiresHardRefresh : false, + APP_VERSION, + REQUIRES_HARD_REFRESH, + SENTRY_RELEASE: release, }; }, }), - ]; - - const authToken = process.env.SENTRY_AUTH_TOKEN; - const org = process.env.SENTRY_ORG; - const project = process.env.SENTRY_PROJECT; - const release = process.env.SENTRY_RELEASE || appVersion; - const uploadSentrySourcemaps = authToken && org && project; + ] as const; if (uploadSentrySourcemaps) { plugins.push( @@ -95,6 +138,24 @@ export default defineConfig(({ mode }) => { build: { minify: isProd, sourcemap: isProd, + rollupOptions: { + input: { + main: path.resolve(__dirname, 'index.html'), + // Adds the service worker as a separate file + 'service-worker': path.resolve( + __dirname, + 'src/service-worker.ts', + ), + }, + output: { + // Ensure the service worker file goes to the root of the dist folder + entryFileNames: chunk => { + return chunk.name === 'service-worker' + ? 'service-worker.js' + : '[name].[hash].js'; + }, + }, + }, }, resolve: { alias: { From 194c5e86b7648ddb0b6f627ab5952baaf8e7563f Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 4 Sep 2024 16:27:39 +0000 Subject: [PATCH 48/90] chore(release): set `package.json` to 1.0.0-dev.91 [skip ci] # [1.0.0-dev.91](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.90...v1.0.0-dev.91) (2024-09-04) ### Features * build service worker as part of the bundle ([50515ae](https://github.com/powerhouse-inc/document-model-electron/commit/50515aec4168d90c1c1572e7bfa52dc808b1a6c9)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 448d69a2..92c3414b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.0.0-dev.91](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.90...v1.0.0-dev.91) (2024-09-04) + + +### Features + +* build service worker as part of the bundle ([50515ae](https://github.com/powerhouse-inc/document-model-electron/commit/50515aec4168d90c1c1572e7bfa52dc808b1a6c9)) + # [1.0.0-dev.90](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.89...v1.0.0-dev.90) (2024-09-04) diff --git a/package.json b/package.json index f5d0864d..8438fccc 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.90", + "version": "1.0.0-dev.91", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From fb12b37e76b9be827b2c45affbb6efcffc3b7f53 Mon Sep 17 00:00:00 2001 From: acaldas Date: Wed, 4 Sep 2024 17:51:20 +0100 Subject: [PATCH 49/90] fix: fixed bundle location --- nginx.sh | 1 - vite.renderer.config.mts | 4 +++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/nginx.sh b/nginx.sh index 5009c506..aabc6efd 100644 --- a/nginx.sh +++ b/nginx.sh @@ -7,5 +7,4 @@ envsubst '$PORT,$BASE_PATH' < /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf # Start Nginx -cd dist/ nginx -g 'daemon off;' \ No newline at end of file diff --git a/vite.renderer.config.mts b/vite.renderer.config.mts index f51362a7..a76204e4 100644 --- a/vite.renderer.config.mts +++ b/vite.renderer.config.mts @@ -27,7 +27,9 @@ const addToBundlePlugin = ( version: file.version, requiresHardRefresh: file.requiresHardRefresh || false, }; + console.log(versionManifest); + return { name: 'add-to-bundle', @@ -152,7 +154,7 @@ export default defineConfig(({ mode }) => { entryFileNames: chunk => { return chunk.name === 'service-worker' ? 'service-worker.js' - : '[name].[hash].js'; + : 'assets/[name].[hash].js'; }, }, }, From c926b72b1109b88463c4bcc6e1a30794cae4f67b Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 4 Sep 2024 16:53:20 +0000 Subject: [PATCH 50/90] chore(release): set `package.json` to 1.0.0-dev.92 [skip ci] # [1.0.0-dev.92](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.91...v1.0.0-dev.92) (2024-09-04) ### Bug Fixes * fixed bundle location ([fb12b37](https://github.com/powerhouse-inc/document-model-electron/commit/fb12b37e76b9be827b2c45affbb6efcffc3b7f53)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 92c3414b..970069d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.0.0-dev.92](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.91...v1.0.0-dev.92) (2024-09-04) + + +### Bug Fixes + +* fixed bundle location ([fb12b37](https://github.com/powerhouse-inc/document-model-electron/commit/fb12b37e76b9be827b2c45affbb6efcffc3b7f53)) + # [1.0.0-dev.91](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.90...v1.0.0-dev.91) (2024-09-04) diff --git a/package.json b/package.json index 8438fccc..6b38f127 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.91", + "version": "1.0.0-dev.92", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From 1483e82d71baeafb5b660595c8857a7343d87dca Mon Sep 17 00:00:00 2001 From: Guillermo Puente Date: Tue, 3 Sep 2024 18:26:58 -0400 Subject: [PATCH 51/90] feat: remove default drives info from connect + add default drives to reactor config --- package-lock.json | 67 ++++----- package.json | 2 +- src/app/document-drive.ts | 2 + src/components/modal/modals/SettingsModal.tsx | 11 -- src/hooks/useFeatureFlags/default-config.ts | 12 -- src/hooks/useLoadDefaultDrives.ts | 139 ------------------ src/hooks/useLoadInitialData.tsx | 3 - src/hooks/useUiNodes.ts | 20 ++- src/utils/browser-document-drive.ts | 2 + src/utils/reactor.ts | 48 ++++++ 10 files changed, 102 insertions(+), 204 deletions(-) delete mode 100644 src/hooks/useLoadDefaultDrives.ts create mode 100644 src/utils/reactor.ts diff --git a/package-lock.json b/package-lock.json index 1dd35bea..970ec1ba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@powerhousedao/connect", - "version": "1.0.0-dev.89", + "version": "1.0.0-dev.92", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@powerhousedao/connect", - "version": "1.0.0-dev.89", + "version": "1.0.0-dev.92", "license": "AGPL-3.0-only", "dependencies": { "@powerhousedao/design-system": "1.0.0-alpha.160", @@ -14,7 +14,7 @@ "@sentry/vite-plugin": "^2.22.2", "@tanstack/react-virtual": "^3.8.1", "did-key-creator": "^1.2.0", - "document-drive": "^1.0.0-alpha.88", + "document-drive": "1.0.0-alpha.90", "document-model": "1.7.0", "document-model-libs": "^1.83.0", "electron-is-dev": "^3.0.1", @@ -6848,9 +6848,9 @@ } }, "node_modules/@prisma/client": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@prisma/client/-/client-5.17.0.tgz", - "integrity": "sha512-N2tnyKayT0Zf7mHjwEyE8iG7FwTmXDHFZ1GnNhQp0pJUObsuel4ZZ1XwfuAYkq5mRIiC/Kot0kt0tGCfLJ70Jw==", + "version": "5.19.1", + "resolved": "https://registry.npmjs.org/@prisma/client/-/client-5.19.1.tgz", + "integrity": "sha512-x30GFguInsgt+4z5I4WbkZP2CGpotJMUXy+Gl/aaUjHn2o1DnLYNTA+q9XdYmAQZM8fIIkvUiA2NpgosM3fneg==", "hasInstallScript": true, "optional": true, "engines": { @@ -8836,9 +8836,9 @@ } }, "node_modules/@redis/client": { - "version": "1.5.17", - "resolved": "https://registry.npmjs.org/@redis/client/-/client-1.5.17.tgz", - "integrity": "sha512-IPvU9A31qRCZ7lds/x+ksuK/UMndd0EASveAvCvEtFFKIZjZ+m/a4a0L7S28KEWoR5ka8526hlSghDo4Hrc2Hg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@redis/client/-/client-1.6.0.tgz", + "integrity": "sha512-aR0uffYI700OEEH4gYnitAnv3vzVGXCFvYfdpu/CJKvk4pHfLPEy/JSZyrpQ+15WhXe1yJRXLtfQ84s4mEXnPg==", "optional": true, "dependencies": { "cluster-key-slot": "1.1.2", @@ -8865,27 +8865,27 @@ } }, "node_modules/@redis/json": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@redis/json/-/json-1.0.6.tgz", - "integrity": "sha512-rcZO3bfQbm2zPRpqo82XbW8zg4G/w4W3tI7X8Mqleq9goQjAGLL7q/1n1ZX4dXEAmORVZ4s1+uKLaUOg7LrUhw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@redis/json/-/json-1.0.7.tgz", + "integrity": "sha512-6UyXfjVaTBTJtKNG4/9Z8PSpKE6XgSyEb8iwaqDcy+uKrd/DGYHTWkUdnQDyzm727V7p21WUMhsqz5oy65kPcQ==", "optional": true, "peerDependencies": { "@redis/client": "^1.0.0" } }, "node_modules/@redis/search": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@redis/search/-/search-1.1.6.tgz", - "integrity": "sha512-mZXCxbTYKBQ3M2lZnEddwEAks0Kc7nauire8q20oA0oA/LoA+E/b5Y5KZn232ztPb1FkIGqo12vh3Lf+Vw5iTw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@redis/search/-/search-1.2.0.tgz", + "integrity": "sha512-tYoDBbtqOVigEDMAcTGsRlMycIIjwMCgD8eR2t0NANeQmgK/lvxNAvYyb6bZDD4frHRhIHkJu2TBRvB0ERkOmw==", "optional": true, "peerDependencies": { "@redis/client": "^1.0.0" } }, "node_modules/@redis/time-series": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@redis/time-series/-/time-series-1.0.5.tgz", - "integrity": "sha512-IFjIgTusQym2B5IZJG3XKr5llka7ey84fw/NOYqESP5WUfQs9zz1ww/9+qoz4ka/S6KcGBodzlCeZ5UImKbscg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@redis/time-series/-/time-series-1.1.0.tgz", + "integrity": "sha512-c1Q99M5ljsIuc4YdaCwfUEXsofakb9c8+Zse2qxTadu8TalLXuAESzLvFAvNVbkmSlvlzIQOLpBCmWI9wTOt+g==", "optional": true, "peerDependencies": { "@redis/client": "^1.0.0" @@ -11514,9 +11514,9 @@ "dev": true }, "node_modules/@types/validator": { - "version": "13.12.0", - "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.12.0.tgz", - "integrity": "sha512-nH45Lk7oPIJ1RVOF6JgFI6Dy0QpHEzq4QecZhvguxYPDwT8c93prCMqAtiIttm39voZ+DDR+qkNnMpJmMBRqag==", + "version": "13.12.1", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.12.1.tgz", + "integrity": "sha512-w0URwf7BQb0rD/EuiG12KP0bailHKHP5YVviJG9zw3ykAokL0TuxU2TUqMB7EwZ59bDHYdeTIvjI5m0S7qHfOA==", "optional": true }, "node_modules/@types/wicg-file-system-access": { @@ -15873,9 +15873,9 @@ } }, "node_modules/document-drive": { - "version": "1.0.0-alpha.88", - "resolved": "https://registry.npmjs.org/document-drive/-/document-drive-1.0.0-alpha.88.tgz", - "integrity": "sha512-HwLtyr9wo5Q4c6aMKOK8rFqXO0NZwB07gVljCeCqrromcDekHeQREvYUQaqXlo4RKhQP3dyyzcI6itzS0g5qjQ==", + "version": "1.0.0-alpha.90", + "resolved": "https://registry.npmjs.org/document-drive/-/document-drive-1.0.0-alpha.90.tgz", + "integrity": "sha512-TUqlatC/SF7rLtm6f0i9eg8P/E+wD+VeytRUsVKExB3O7dhs2XPkEU4RC7mprLu4/r7nRg0hbkqxl7Cf3kYwJg==", "dependencies": { "exponential-backoff": "^3.1.1", "graphql": "^16.9.0", @@ -15886,7 +15886,7 @@ "uuid": "^9.0.1" }, "optionalDependencies": { - "@prisma/client": "5.17.0", + "@prisma/client": "^5.18.0", "localforage": "^1.10.0", "redis": "^4.6.15", "sequelize": "^6.37.3", @@ -29140,20 +29140,17 @@ } }, "node_modules/redis": { - "version": "4.6.15", - "resolved": "https://registry.npmjs.org/redis/-/redis-4.6.15.tgz", - "integrity": "sha512-2NtuOpMW3tnYzBw6S8mbXSX7RPzvVFCA2wFJq9oErushO2UeBkxObk+uvo7gv7n0rhWeOj/IzrHO8TjcFlRSOg==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/redis/-/redis-4.7.0.tgz", + "integrity": "sha512-zvmkHEAdGMn+hMRXuMBtu4Vo5P6rHQjLoHftu+lBqq8ZTA3RCVC/WzD790bkKKiNFp7d5/9PcSD19fJyyRvOdQ==", "optional": true, - "workspaces": [ - "./packages/*" - ], "dependencies": { "@redis/bloom": "1.2.0", - "@redis/client": "1.5.17", + "@redis/client": "1.6.0", "@redis/graph": "1.1.1", - "@redis/json": "1.0.6", - "@redis/search": "1.1.6", - "@redis/time-series": "1.0.5" + "@redis/json": "1.0.7", + "@redis/search": "1.2.0", + "@redis/time-series": "1.1.0" } }, "node_modules/reflect.getprototypeof": { diff --git a/package.json b/package.json index 6b38f127..5b140d5f 100644 --- a/package.json +++ b/package.json @@ -95,7 +95,7 @@ "@sentry/vite-plugin": "^2.22.2", "@tanstack/react-virtual": "^3.8.1", "did-key-creator": "^1.2.0", - "document-drive": "^1.0.0-alpha.88", + "document-drive": "1.0.0-alpha.90", "document-model": "1.7.0", "document-model-libs": "^1.83.0", "electron-is-dev": "^3.0.1", diff --git a/src/app/document-drive.ts b/src/app/document-drive.ts index 516810aa..6f3ccfc2 100644 --- a/src/app/document-drive.ts +++ b/src/app/document-drive.ts @@ -17,6 +17,7 @@ import { import { IpcMain, webContents } from 'electron'; import { join } from 'path'; import { logger } from 'src/services/logger'; +import { getReactorDefaultDrivesConfig } from 'src/utils/reactor'; export default ( documentModels: DocumentModel[], @@ -28,6 +29,7 @@ export default ( new FilesystemStorage(join(path, 'Document Drives')), new InMemoryCache(), new BaseQueueManager(1, 10), + { ...getReactorDefaultDrivesConfig() }, ); const promise = documentDrive diff --git a/src/components/modal/modals/SettingsModal.tsx b/src/components/modal/modals/SettingsModal.tsx index 43d61492..8ba18173 100644 --- a/src/components/modal/modals/SettingsModal.tsx +++ b/src/components/modal/modals/SettingsModal.tsx @@ -71,17 +71,6 @@ export const SettingsModal: React.FC = props => { onContinue: () => { clearStorage() .then(() => { - // resets the default drive to unloaded if it is defined - setConfig(conf => ({ - ...conf, - defaultDrives: conf.defaultDrives - ? conf.defaultDrives.map(drive => ({ - ...drive, - loaded: false, - })) - : undefined, - })); - // refreshes the page to reload default drive onRefresh(); }) diff --git a/src/hooks/useFeatureFlags/default-config.ts b/src/hooks/useFeatureFlags/default-config.ts index 0aaf847f..7d75cf77 100644 --- a/src/hooks/useFeatureFlags/default-config.ts +++ b/src/hooks/useFeatureFlags/default-config.ts @@ -5,15 +5,9 @@ const enabledEditors = ENABLED_EDITORS?.split(','); const DISABLED_EDITORS = import.meta.env.PH_CONNECT_DISABLED_EDITORS || undefined; -const DEFAULT_DRIVES_URL = - import.meta.env.PH_CONNECT_DEFAULT_DRIVES_URL || undefined; const disabledEditors = DISABLED_EDITORS?.split(','); export interface FeatureFlag { - defaultDrives?: { - url: string; - loaded: boolean; - }[]; editors: { enabledEditors?: '*' | string[]; disabledEditors?: '*' | string[]; @@ -21,12 +15,6 @@ export interface FeatureFlag { } const defaultConfig: FeatureFlag = { - defaultDrives: DEFAULT_DRIVES_URL - ? DEFAULT_DRIVES_URL.split(',').map(url => ({ - url, - loaded: false, - })) - : undefined, editors: { enabledEditors: ENABLED_EDITORS === '*' ? '*' : enabledEditors, disabledEditors: DISABLED_EDITORS === '*' ? '*' : disabledEditors, diff --git a/src/hooks/useLoadDefaultDrives.ts b/src/hooks/useLoadDefaultDrives.ts deleted file mode 100644 index daed457f..00000000 --- a/src/hooks/useLoadDefaultDrives.ts +++ /dev/null @@ -1,139 +0,0 @@ -import { useEffect, useRef } from 'react'; -import { logger } from 'src/services/logger'; -import { useDocumentDriveServer } from './useDocumentDriveServer'; -import { useFeatureFlag } from './useFeatureFlags'; -import defaultConfig from './useFeatureFlags/default-config'; - -type DefaultDrive = { - url: string; - loaded: boolean; -}; - -const areLoadedDrivesUpToDate = ( - defaultDrivesConfig: DefaultDrive[], - loadedDrives: DefaultDrive[], -) => { - for (const defaultDrive of defaultDrivesConfig) { - const loadedDrive = loadedDrives.find( - loadedDrive => loadedDrive.url === defaultDrive.url, - ); - - if (!loadedDrive) { - return false; - } - } - - return true; -}; - -export const useLoadDefaultDrives = () => { - const loadingDrives = useRef([]); - const { - addRemoteDrive, - documentDrives, - documentDrivesStatus, - clearStorage, - } = useDocumentDriveServer(); - const { - setConfig, - config: { defaultDrives }, - } = useFeatureFlag(); - - async function resetDefaultDrive() { - await clearStorage(); - setConfig(defaultConfig); - location.reload(); - loadingDrives.current = []; - } - - useEffect(() => { - if (!defaultDrives) return; - - // reset default drives if config has been updated - if ( - loadingDrives.current.length <= 0 && - defaultDrives.every(drive => drive.loaded) && - defaultConfig.defaultDrives && - defaultConfig.defaultDrives.length > 0 && - !areLoadedDrivesUpToDate(defaultConfig.defaultDrives, defaultDrives) - ) { - void resetDefaultDrive(); - return; - } - - for (const defaultDrive of defaultDrives) { - if ( - documentDrivesStatus === 'LOADED' && - !defaultDrive.loaded && - !loadingDrives.current.includes(defaultDrive.url) - ) { - const isDriveAlreadyAdded = documentDrives.some(drive => { - return drive.state.local.triggers.some( - trigger => trigger.data?.url === defaultDrive.url, - ); - }); - - if (isDriveAlreadyAdded) { - setConfig(conf => ({ - ...conf, - defaultDrives: [ - ...(conf.defaultDrives || []).filter( - drive => drive.url !== defaultDrive.url, - ), - { ...defaultDrive, loaded: true }, - ], - })); - - return; - } - - loadingDrives.current.push(defaultDrive.url); - - addRemoteDrive(defaultDrive.url, { - sharingType: 'PUBLIC', - availableOffline: true, - listeners: [ - { - block: true, - callInfo: { - data: defaultDrive.url, - name: 'switchboard-push', - transmitterType: 'SwitchboardPush', - }, - filter: { - branch: ['main'], - documentId: ['*'], - documentType: ['*'], - scope: ['global'], - }, - label: 'Switchboard Sync', - listenerId: '1', - system: true, - }, - ], - triggers: [], - pullInterval: 3000, - }) - .then(() => - setConfig(conf => ({ - ...conf, - defaultDrives: [ - ...(conf.defaultDrives || []).filter( - drive => drive.url !== defaultDrive.url, - ), - { ...defaultDrive, loaded: true }, - ], - })), - ) - .catch(logger.error) - .finally(() => { - loadingDrives.current = loadingDrives.current.filter( - url => url !== defaultDrive.url, - ); - }); - } - } - }, [documentDrives, defaultDrives, documentDrivesStatus]); - - return loadingDrives.current.length > 0; -}; diff --git a/src/hooks/useLoadInitialData.tsx b/src/hooks/useLoadInitialData.tsx index 320a4754..f0849f56 100644 --- a/src/hooks/useLoadInitialData.tsx +++ b/src/hooks/useLoadInitialData.tsx @@ -15,7 +15,6 @@ import { useUiNodes } from 'src/hooks/useUiNodes'; import { DefaultDocumentDriveServer as server } from 'src/utils/document-drive-server'; import { useClientErrorHandler } from './useClientErrorHandler'; import { useDocumentDrives } from './useDocumentDrives'; -import { useLoadDefaultDrives } from './useLoadDefaultDrives'; import { isLatestVersion } from './utils'; export const useLoadInitialData = () => { @@ -32,8 +31,6 @@ export const useLoadInitialData = () => { const [, , serverSubscribeUpdates] = useDocumentDrives(server); const clientErrorHandler = useClientErrorHandler(); - useLoadDefaultDrives(); - async function checkLatestVersion() { const result = await isLatestVersion(); if (result === null) return; diff --git a/src/hooks/useUiNodes.ts b/src/hooks/useUiNodes.ts index a0863d2c..01b8a7c4 100644 --- a/src/hooks/useUiNodes.ts +++ b/src/hooks/useUiNodes.ts @@ -84,6 +84,12 @@ export function useUiNodes() { ) as SharingType; const driveSyncStatus = await getSyncStatus(id, sharingType); + // TODO: rempve this after integration in design-system + const normalizedDriveSyncStatus = + driveSyncStatus === 'INITIAL_SYNC' + ? 'SYNCING' + : driveSyncStatus; + const driveNode: UiDriveNode = { id, name, @@ -92,7 +98,7 @@ export function useUiNodes() { children: [], nodeMap: {}, sharingType, - syncStatus: driveSyncStatus, + syncStatus: normalizedDriveSyncStatus, availableOffline, icon, parentFolder: null, @@ -106,7 +112,7 @@ export function useUiNodes() { driveId: id, parentFolder: n.parentFolder || id, kind: n.kind.toUpperCase(), - syncStatus: driveSyncStatus, + syncStatus: normalizedDriveSyncStatus, sharingType, }; @@ -130,10 +136,18 @@ export function useUiNodes() { for await (const node of nodes) { if (node.kind === FILE) { - node.syncStatus = await getSyncStatus( + const fileSyncStatus = await getSyncStatus( node.synchronizationUnits[0].syncId, sharingType, ); + + // TODO: rempve this after integration in design-system + const normalizedFileSyncStatus = + fileSyncStatus === 'INITIAL_SYNC' + ? 'SYNCING' + : fileSyncStatus; + + node.syncStatus = normalizedFileSyncStatus; } if (node.parentFolder === id) { diff --git a/src/utils/browser-document-drive.ts b/src/utils/browser-document-drive.ts index b1cc1769..679c7471 100644 --- a/src/utils/browser-document-drive.ts +++ b/src/utils/browser-document-drive.ts @@ -6,12 +6,14 @@ import { BrowserStorage } from 'document-drive/storage/browser'; import { utils } from 'document-model/document'; import { logger } from 'src/services/logger'; import { documentModels } from 'src/store/document-model'; +import { getReactorDefaultDrivesConfig } from './reactor'; export const BrowserDocumentDriveServer = new DocumentDriveServer( documentModels, new BrowserStorage(connectConfig.routerBasename), new InMemoryCache(), new BaseQueueManager(1, 10), + { ...getReactorDefaultDrivesConfig() }, ); async function init() { diff --git a/src/utils/reactor.ts b/src/utils/reactor.ts new file mode 100644 index 00000000..dcccf8fc --- /dev/null +++ b/src/utils/reactor.ts @@ -0,0 +1,48 @@ +import { DocumentDriveServerOptions } from 'document-drive/server'; + +const DEFAULT_DRIVES_URL = + import.meta.env.PH_CONNECT_DEFAULT_DRIVES_URL || undefined; +const defaultDrivesUrl = DEFAULT_DRIVES_URL?.split(','); + +export const getReactorDefaultDrivesConfig = (): Pick< + DocumentDriveServerOptions, + 'defaultRemoteDrives' | 'removeOldRemoteDrives' +> => { + const defaultDrives: DocumentDriveServerOptions['defaultRemoteDrives'] = + defaultDrivesUrl?.map(driveUrl => ({ + url: driveUrl, + options: { + sharingType: 'PUBLIC', + availableOffline: true, + listeners: [ + { + block: true, + callInfo: { + data: driveUrl, + name: 'switchboard-push', + transmitterType: 'SwitchboardPush', + }, + filter: { + branch: ['main'], + documentId: ['*'], + documentType: ['*'], + scope: ['global'], + }, + label: 'Switchboard Sync', + listenerId: '1', + system: true, + }, + ], + triggers: [], + pullInterval: 3000, + }, + })); + + return { + defaultRemoteDrives: defaultDrives, + removeOldRemoteDrives: { + strategy: 'preserve-by-url', + urls: defaultDrivesUrl || [], + }, + }; +}; From 3ff4c61ee81b8f8b1faad44f65b1f38b5e545018 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 4 Sep 2024 17:15:15 +0000 Subject: [PATCH 52/90] chore(release): set `package.json` to 1.0.0-dev.93 [skip ci] # [1.0.0-dev.93](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.92...v1.0.0-dev.93) (2024-09-04) ### Features * remove default drives info from connect + add default drives to reactor config ([1483e82](https://github.com/powerhouse-inc/document-model-electron/commit/1483e82d71baeafb5b660595c8857a7343d87dca)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 970069d3..d69bcf7c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.0.0-dev.93](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.92...v1.0.0-dev.93) (2024-09-04) + + +### Features + +* remove default drives info from connect + add default drives to reactor config ([1483e82](https://github.com/powerhouse-inc/document-model-electron/commit/1483e82d71baeafb5b660595c8857a7343d87dca)) + # [1.0.0-dev.92](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.91...v1.0.0-dev.92) (2024-09-04) diff --git a/package.json b/package.json index 5b140d5f..b6af9111 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.92", + "version": "1.0.0-dev.93", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From ea5f9eb1ad7c888872c1b2552076904e33c3c3b5 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 4 Sep 2024 17:15:15 +0000 Subject: [PATCH 53/90] chore(release): set `package.json` to 1.0.0-dev.93 [skip ci] # [1.0.0-dev.93](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.92...v1.0.0-dev.93) (2024-09-04) ### Features * remove default drives info from connect + add default drives to reactor config ([1483e82](https://github.com/powerhouse-inc/document-model-electron/commit/1483e82d71baeafb5b660595c8857a7343d87dca)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 970069d3..d69bcf7c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.0.0-dev.93](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.92...v1.0.0-dev.93) (2024-09-04) + + +### Features + +* remove default drives info from connect + add default drives to reactor config ([1483e82](https://github.com/powerhouse-inc/document-model-electron/commit/1483e82d71baeafb5b660595c8857a7343d87dca)) + # [1.0.0-dev.92](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.91...v1.0.0-dev.92) (2024-09-04) diff --git a/package.json b/package.json index 5b140d5f..b6af9111 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.92", + "version": "1.0.0-dev.93", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From af4523898d70b8eb79b6c34746cf1aaa15f91ee7 Mon Sep 17 00:00:00 2001 From: Guillermo Puente Date: Wed, 4 Sep 2024 13:48:27 -0400 Subject: [PATCH 54/90] feat: preserve all remote drives if no default drives config is passed --- src/utils/reactor.ts | 17 +++++++++++------ src/vite-env.d.ts | 2 +- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/utils/reactor.ts b/src/utils/reactor.ts index dcccf8fc..5661bd89 100644 --- a/src/utils/reactor.ts +++ b/src/utils/reactor.ts @@ -2,14 +2,16 @@ import { DocumentDriveServerOptions } from 'document-drive/server'; const DEFAULT_DRIVES_URL = import.meta.env.PH_CONNECT_DEFAULT_DRIVES_URL || undefined; -const defaultDrivesUrl = DEFAULT_DRIVES_URL?.split(','); +const defaultDrivesUrl = DEFAULT_DRIVES_URL + ? DEFAULT_DRIVES_URL.split(',') + : []; export const getReactorDefaultDrivesConfig = (): Pick< DocumentDriveServerOptions, 'defaultRemoteDrives' | 'removeOldRemoteDrives' > => { const defaultDrives: DocumentDriveServerOptions['defaultRemoteDrives'] = - defaultDrivesUrl?.map(driveUrl => ({ + defaultDrivesUrl.map(driveUrl => ({ url: driveUrl, options: { sharingType: 'PUBLIC', @@ -40,9 +42,12 @@ export const getReactorDefaultDrivesConfig = (): Pick< return { defaultRemoteDrives: defaultDrives, - removeOldRemoteDrives: { - strategy: 'preserve-by-url', - urls: defaultDrivesUrl || [], - }, + removeOldRemoteDrives: + defaultDrivesUrl.length > 0 + ? { + strategy: 'preserve-by-url', + urls: defaultDrivesUrl, + } + : { strategy: 'preserve-all' }, }; }; diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts index 0de38d88..28423456 100644 --- a/src/vite-env.d.ts +++ b/src/vite-env.d.ts @@ -18,7 +18,6 @@ type ImportMetaEnv = { SENTRY_ORG: string SENTRY_PROJECT: string PH_CONNECT_ROUTER_BASENAME: string - PH_CONNECT_DEFAULT_DRIVES_URL: string PH_CONNECT_ENABLED_EDITORS: string PH_CONNECT_DISABLE_ADD_PUBLIC_DRIVES: string PH_CONNECT_SEARCH_BAR_ENABLED: string @@ -40,6 +39,7 @@ type ImportMetaEnv = { PH_CONNECT_SENTRY_DSN: string PH_CONNECT_SENTRY_PROJECT: string PH_CONNECT_SENTRY_ENV: string + PH_CONNECT_DEFAULT_DRIVES_URL?: string // @user-defined-start /* * You can use this section to explicitly extend the type definition of `import.meta.env` From a7a42c01ab74a4219bcd94b13474990eaac6e31f Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 4 Sep 2024 17:57:21 +0000 Subject: [PATCH 55/90] chore(release): set `package.json` to 1.0.0-dev.94 [skip ci] # [1.0.0-dev.94](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.93...v1.0.0-dev.94) (2024-09-04) ### Features * preserve all remote drives if no default drives config is passed ([af45238](https://github.com/powerhouse-inc/document-model-electron/commit/af4523898d70b8eb79b6c34746cf1aaa15f91ee7)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d69bcf7c..fceb2593 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.0.0-dev.94](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.93...v1.0.0-dev.94) (2024-09-04) + + +### Features + +* preserve all remote drives if no default drives config is passed ([af45238](https://github.com/powerhouse-inc/document-model-electron/commit/af4523898d70b8eb79b6c34746cf1aaa15f91ee7)) + # [1.0.0-dev.93](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.92...v1.0.0-dev.93) (2024-09-04) diff --git a/package.json b/package.json index b6af9111..4256421b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.93", + "version": "1.0.0-dev.94", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From 85e4f7fdcf42276b6a104a4774a5bf89006cba6a Mon Sep 17 00:00:00 2001 From: acaldas Date: Wed, 4 Sep 2024 19:00:41 +0100 Subject: [PATCH 56/90] fix: prevent sentry code injection --- vite.renderer.config.mts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/vite.renderer.config.mts b/vite.renderer.config.mts index a76204e4..3fbc460a 100644 --- a/vite.renderer.config.mts +++ b/vite.renderer.config.mts @@ -28,7 +28,7 @@ const addToBundlePlugin = ( requiresHardRefresh: file.requiresHardRefresh || false, }; - console.log(versionManifest); + console.info(versionManifest); return { name: 'add-to-bundle', @@ -127,6 +127,7 @@ export default defineConfig(({ mode }) => { sentryVitePlugin({ release: { name: release, + inject: false, }, authToken, org, @@ -152,8 +153,8 @@ export default defineConfig(({ mode }) => { output: { // Ensure the service worker file goes to the root of the dist folder entryFileNames: chunk => { - return chunk.name === 'service-worker' - ? 'service-worker.js' + return ['service-worker'].includes(chunk.name) + ? `${chunk.name}.js` : 'assets/[name].[hash].js'; }, }, From fbf40641260a4c5e8964a49d07b998f1135b3c88 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 4 Sep 2024 18:02:40 +0000 Subject: [PATCH 57/90] chore(release): set `package.json` to 1.0.0-dev.95 [skip ci] # [1.0.0-dev.95](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.94...v1.0.0-dev.95) (2024-09-04) ### Bug Fixes * prevent sentry code injection ([85e4f7f](https://github.com/powerhouse-inc/document-model-electron/commit/85e4f7fdcf42276b6a104a4774a5bf89006cba6a)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fceb2593..8bbb0811 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.0.0-dev.95](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.94...v1.0.0-dev.95) (2024-09-04) + + +### Bug Fixes + +* prevent sentry code injection ([85e4f7f](https://github.com/powerhouse-inc/document-model-electron/commit/85e4f7fdcf42276b6a104a4774a5bf89006cba6a)) + # [1.0.0-dev.94](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.93...v1.0.0-dev.94) (2024-09-04) diff --git a/package.json b/package.json index 4256421b..c51b8ce0 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.94", + "version": "1.0.0-dev.95", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From 1e104e7d93f64df8a001e33a02143efd81d089b4 Mon Sep 17 00:00:00 2001 From: Guillermo Puente Date: Wed, 4 Sep 2024 13:27:06 -0400 Subject: [PATCH 58/90] fix: added PH_CONNECT_ROUTER_BASENAME env variable to e2e github action --- .github/workflows/e2e-dev.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/e2e-dev.yml b/.github/workflows/e2e-dev.yml index f33e3e61..a3ca361f 100644 --- a/.github/workflows/e2e-dev.yml +++ b/.github/workflows/e2e-dev.yml @@ -29,4 +29,5 @@ jobs: wait-on: 'http://localhost:5173/' env: CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + PH_CONNECT_ROUTER_BASENAME: / \ No newline at end of file From b308b03be38067e3dfd563b02707349208224c46 Mon Sep 17 00:00:00 2001 From: Guillermo Puente Date: Wed, 4 Sep 2024 14:26:46 -0400 Subject: [PATCH 59/90] feat: added PH_CONNECT_DEFAULT_DRIVES_URL env to e2e github action --- .github/workflows/e2e-dev.yml | 3 ++- cypress/e2e/navigation.cy.ts | 4 ++-- package-lock.json | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/e2e-dev.yml b/.github/workflows/e2e-dev.yml index a3ca361f..fbb644af 100644 --- a/.github/workflows/e2e-dev.yml +++ b/.github/workflows/e2e-dev.yml @@ -30,4 +30,5 @@ jobs: env: CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - PH_CONNECT_ROUTER_BASENAME: / \ No newline at end of file + PH_CONNECT_ROUTER_BASENAME: / + PH_CONNECT_DEFAULT_DRIVES_URL: \ No newline at end of file diff --git a/cypress/e2e/navigation.cy.ts b/cypress/e2e/navigation.cy.ts index c425a4b0..aa666343 100644 --- a/cypress/e2e/navigation.cy.ts +++ b/cypress/e2e/navigation.cy.ts @@ -118,13 +118,13 @@ describe('Navigation', () => { cy.contains('button', 'Delete').click(); }); - it('should create a document model inside test drive folder', () => { + // TODO: need to rewrite this test + it.skip('should create a document model inside test drive folder', () => { const publicDriveName = Cypress.env('TEST_PUBLIC_DRIVE_NAME') as string; selectSidebarItem(publicDriveName); newFolder(publicDriveName, 'test-folder'); selectSidebarItem('test-folder'); - cy.contains('DocumentModel').click(); cy.get('input[placeholder="Document name"]') .clear() diff --git a/package-lock.json b/package-lock.json index 970ec1ba..c3797b1e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@powerhousedao/connect", - "version": "1.0.0-dev.92", + "version": "1.0.0-dev.93", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@powerhousedao/connect", - "version": "1.0.0-dev.92", + "version": "1.0.0-dev.93", "license": "AGPL-3.0-only", "dependencies": { "@powerhousedao/design-system": "1.0.0-alpha.160", From ef00ce3cc2060479fcb5f0484021a6fa7f931e65 Mon Sep 17 00:00:00 2001 From: acaldas Date: Wed, 4 Sep 2024 19:45:36 +0100 Subject: [PATCH 60/90] fix: activate service worker in prod --- src/app/sentry.ts | 9 ++++++++- src/renderer.ts | 2 +- src/vite-env.d.ts | 2 +- vite.renderer.config.mts | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/app/sentry.ts b/src/app/sentry.ts index 2ceeb1e2..aa2e8a30 100644 --- a/src/app/sentry.ts +++ b/src/app/sentry.ts @@ -13,10 +13,17 @@ function initSenty() { return; } + const release = import.meta.env.SENTRY_RELEASE; + // sets the sentry release id on the window object, this is needed as + // we prevent the sentry vite plugin from injecting it into the bundle + (window as unknown as { SENTRY_RELEASE: unknown }).SENTRY_RELEASE = { + id: release, + }; + Sentry.init({ + release, dsn: config.sentry.dsn, environment: config.sentry.env, - release: import.meta.env.SENTRY_RELEASE, integrations: [ Sentry.extraErrorDataIntegration({ depth: 5 }), Sentry.reactRouterV6BrowserTracingIntegration({ diff --git a/src/renderer.ts b/src/renderer.ts index eeade0af..b504cefa 100644 --- a/src/renderer.ts +++ b/src/renderer.ts @@ -38,7 +38,7 @@ if (!AppElement) { throw new Error('#app element not found!'); } -if (import.meta.env.MODE !== 'development') { +if (import.meta.env.MODE === 'development') { window.documentEditorDebugTools = new DocumentEditorDebugTools(); } else { serviceWorkerManager.registerServiceWorker(false); diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts index 28423456..0de38d88 100644 --- a/src/vite-env.d.ts +++ b/src/vite-env.d.ts @@ -18,6 +18,7 @@ type ImportMetaEnv = { SENTRY_ORG: string SENTRY_PROJECT: string PH_CONNECT_ROUTER_BASENAME: string + PH_CONNECT_DEFAULT_DRIVES_URL: string PH_CONNECT_ENABLED_EDITORS: string PH_CONNECT_DISABLE_ADD_PUBLIC_DRIVES: string PH_CONNECT_SEARCH_BAR_ENABLED: string @@ -39,7 +40,6 @@ type ImportMetaEnv = { PH_CONNECT_SENTRY_DSN: string PH_CONNECT_SENTRY_PROJECT: string PH_CONNECT_SENTRY_ENV: string - PH_CONNECT_DEFAULT_DRIVES_URL?: string // @user-defined-start /* * You can use this section to explicitly extend the type definition of `import.meta.env` diff --git a/vite.renderer.config.mts b/vite.renderer.config.mts index 3fbc460a..1ed5728c 100644 --- a/vite.renderer.config.mts +++ b/vite.renderer.config.mts @@ -127,7 +127,7 @@ export default defineConfig(({ mode }) => { sentryVitePlugin({ release: { name: release, - inject: false, + inject: false, // prevent it from injecting the release id in the service worker code, this is done in 'src/app/sentry.ts' instead }, authToken, org, From b3c6c9d737fc93c85d9dc0c226a4572c0d384278 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 4 Sep 2024 18:47:36 +0000 Subject: [PATCH 61/90] chore(release): set `package.json` to 1.0.0-dev.96 [skip ci] # [1.0.0-dev.96](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.95...v1.0.0-dev.96) (2024-09-04) ### Bug Fixes * activate service worker in prod ([ef00ce3](https://github.com/powerhouse-inc/document-model-electron/commit/ef00ce3cc2060479fcb5f0484021a6fa7f931e65)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8bbb0811..c7aee9ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.0.0-dev.96](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.95...v1.0.0-dev.96) (2024-09-04) + + +### Bug Fixes + +* activate service worker in prod ([ef00ce3](https://github.com/powerhouse-inc/document-model-electron/commit/ef00ce3cc2060479fcb5f0484021a6fa7f931e65)) + # [1.0.0-dev.95](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.94...v1.0.0-dev.95) (2024-09-04) diff --git a/package.json b/package.json index c51b8ce0..1cedb64d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.95", + "version": "1.0.0-dev.96", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From 415e3a424e4932c10ef7829eee0246699f48209c Mon Sep 17 00:00:00 2001 From: acaldas Date: Wed, 4 Sep 2024 20:08:57 +0100 Subject: [PATCH 62/90] feat: fixed version fetch and added env var for version check interval --- src/service-worker.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/service-worker.ts b/src/service-worker.ts index bf1f221c..e199dfd6 100644 --- a/src/service-worker.ts +++ b/src/service-worker.ts @@ -7,6 +7,9 @@ import { const _self = self as unknown as ServiceWorkerGlobalScope; +const VERSION_CHECK_INTERVAL = + parseInt(import.meta.env.PH_CONNECT_VERSION_CHECK_INTERVAL as string) || + 5 * 60 * 1000; // 5 minutes; const VERSION_CACHE = 'version-cache'; const VERSION_KEY = 'app-version'; @@ -60,7 +63,7 @@ _self.addEventListener('message', async event => { async function checkForUpdates(basePath: string) { try { - const response = await fetch(new URL('/version.json', basePath), { + const response = await fetch(new URL('./version.json', basePath), { cache: 'no-store', }); const newVersion = (await response.json()) as VersionResponse; @@ -108,7 +111,7 @@ function startCheckingForUpdates() { // Check for updates every 5 minutes checkUpdatesInterval = setInterval( () => checkForUpdates(basePath), - 5 * 1000, + VERSION_CHECK_INTERVAL, ) as unknown as number; } From 485fbea4f2136724ba03831280f1753f90ef9b82 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 4 Sep 2024 19:10:58 +0000 Subject: [PATCH 63/90] chore(release): set `package.json` to 1.0.0-dev.97 [skip ci] # [1.0.0-dev.97](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.96...v1.0.0-dev.97) (2024-09-04) ### Features * fixed version fetch and added env var for version check interval ([415e3a4](https://github.com/powerhouse-inc/document-model-electron/commit/415e3a424e4932c10ef7829eee0246699f48209c)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c7aee9ab..5286df65 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.0.0-dev.97](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.96...v1.0.0-dev.97) (2024-09-04) + + +### Features + +* fixed version fetch and added env var for version check interval ([415e3a4](https://github.com/powerhouse-inc/document-model-electron/commit/415e3a424e4932c10ef7829eee0246699f48209c)) + # [1.0.0-dev.96](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.95...v1.0.0-dev.96) (2024-09-04) diff --git a/package.json b/package.json index 1cedb64d..4072fd82 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.96", + "version": "1.0.0-dev.97", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From 9c2bf2cf24a626e19672c4795697cc079d35ee88 Mon Sep 17 00:00:00 2001 From: acaldas Date: Wed, 4 Sep 2024 20:32:04 +0100 Subject: [PATCH 64/90] feat: fixed lint warning --- src/utils/validate-document.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/utils/validate-document.ts b/src/utils/validate-document.ts index b28f9aad..b5e0bb83 100644 --- a/src/utils/validate-document.ts +++ b/src/utils/validate-document.ts @@ -1,7 +1,6 @@ import { Document, ValidationError } from 'document-model/document'; import { DocumentModel as DocumentModelClass, - Module, utils as documentModelUtils, } from 'document-model/document-model'; @@ -61,9 +60,7 @@ export const validateDocument = (document: Document) => { }, []); // modules validation - const modulesErrors = documentModelUtils.validateModules( - specs.modules as Module[], - ); + const modulesErrors = documentModelUtils.validateModules(specs.modules); return [...initialStateErrors, ...schemaStateErrors, ...modulesErrors]; }; From fe50271a801531e9f28632f9a041231d1d1ffc5c Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 4 Sep 2024 19:33:58 +0000 Subject: [PATCH 65/90] chore(release): set `package.json` to 1.0.0-dev.98 [skip ci] # [1.0.0-dev.98](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.97...v1.0.0-dev.98) (2024-09-04) ### Features * fixed lint warning ([9c2bf2c](https://github.com/powerhouse-inc/document-model-electron/commit/9c2bf2cf24a626e19672c4795697cc079d35ee88)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5286df65..f99add7c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.0.0-dev.98](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.97...v1.0.0-dev.98) (2024-09-04) + + +### Features + +* fixed lint warning ([9c2bf2c](https://github.com/powerhouse-inc/document-model-electron/commit/9c2bf2cf24a626e19672c4795697cc079d35ee88)) + # [1.0.0-dev.97](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.96...v1.0.0-dev.97) (2024-09-04) diff --git a/package.json b/package.json index 4072fd82..218330ac 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.97", + "version": "1.0.0-dev.98", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From c84db4814175aeb04afabf475be84d22cb55bf24 Mon Sep 17 00:00:00 2001 From: Guillermo Puente Date: Wed, 4 Sep 2024 15:47:47 -0400 Subject: [PATCH 66/90] feat: handle syncUnitStatus not found error --- package-lock.json | 12 ++++++------ package.json | 2 +- src/hooks/useDocumentDriveServer.ts | 6 +++++- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index c3797b1e..a2554744 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@powerhousedao/connect", - "version": "1.0.0-dev.93", + "version": "1.0.0-dev.96", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@powerhousedao/connect", - "version": "1.0.0-dev.93", + "version": "1.0.0-dev.96", "license": "AGPL-3.0-only", "dependencies": { "@powerhousedao/design-system": "1.0.0-alpha.160", @@ -14,7 +14,7 @@ "@sentry/vite-plugin": "^2.22.2", "@tanstack/react-virtual": "^3.8.1", "did-key-creator": "^1.2.0", - "document-drive": "1.0.0-alpha.90", + "document-drive": "1.0.0-alpha.91", "document-model": "1.7.0", "document-model-libs": "^1.83.0", "electron-is-dev": "^3.0.1", @@ -15873,9 +15873,9 @@ } }, "node_modules/document-drive": { - "version": "1.0.0-alpha.90", - "resolved": "https://registry.npmjs.org/document-drive/-/document-drive-1.0.0-alpha.90.tgz", - "integrity": "sha512-TUqlatC/SF7rLtm6f0i9eg8P/E+wD+VeytRUsVKExB3O7dhs2XPkEU4RC7mprLu4/r7nRg0hbkqxl7Cf3kYwJg==", + "version": "1.0.0-alpha.91", + "resolved": "https://registry.npmjs.org/document-drive/-/document-drive-1.0.0-alpha.91.tgz", + "integrity": "sha512-wcQijutOyKBEEfHH5NrgivYalgT1mAed2fheWz53HI797X+4DTG1Kag/m5ZEVdKr4e+r1XaP2xGBtqdUKwE/4A==", "dependencies": { "exponential-backoff": "^3.1.1", "graphql": "^16.9.0", diff --git a/package.json b/package.json index 218330ac..42adbcc7 100644 --- a/package.json +++ b/package.json @@ -95,7 +95,7 @@ "@sentry/vite-plugin": "^2.22.2", "@tanstack/react-virtual": "^3.8.1", "did-key-creator": "^1.2.0", - "document-drive": "1.0.0-alpha.90", + "document-drive": "1.0.0-alpha.91", "document-model": "1.7.0", "document-model-libs": "^1.83.0", "electron-is-dev": "^3.0.1", diff --git a/src/hooks/useDocumentDriveServer.ts b/src/hooks/useDocumentDriveServer.ts index 4530e49a..79fd2c3d 100644 --- a/src/hooks/useDocumentDriveServer.ts +++ b/src/hooks/useDocumentDriveServer.ts @@ -5,6 +5,7 @@ import { SharingType, UiNode, } from '@powerhousedao/design-system'; +import { SynchronizationUnitNotFoundError } from 'document-drive'; import { DriveInput, IDocumentDriveServer, @@ -579,7 +580,10 @@ export function useDocumentDriveServer( ): Promise => { if (sharingType === LOCAL) return; try { - return server.getSyncStatus(syncId); + const syncStatus = server.getSyncStatus(syncId); + if (syncStatus instanceof SynchronizationUnitNotFoundError) + return 'INITIAL_SYNC'; + return syncStatus; } catch (error) { console.error(error); return ERROR; From ed533d6f4ae9e2ba1c2dd2fc57686aa1d5495fa1 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 4 Sep 2024 20:00:19 +0000 Subject: [PATCH 67/90] chore(release): set `package.json` to 1.0.0-dev.99 [skip ci] # [1.0.0-dev.99](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.98...v1.0.0-dev.99) (2024-09-04) ### Bug Fixes * added PH_CONNECT_ROUTER_BASENAME env variable to e2e github action ([1e104e7](https://github.com/powerhouse-inc/document-model-electron/commit/1e104e7d93f64df8a001e33a02143efd81d089b4)) ### Features * added PH_CONNECT_DEFAULT_DRIVES_URL env to e2e github action ([b308b03](https://github.com/powerhouse-inc/document-model-electron/commit/b308b03be38067e3dfd563b02707349208224c46)) --- CHANGELOG.md | 12 ++++++++++++ package.json | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f99add7c..e82a0009 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +# [1.0.0-dev.99](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.98...v1.0.0-dev.99) (2024-09-04) + + +### Bug Fixes + +* added PH_CONNECT_ROUTER_BASENAME env variable to e2e github action ([1e104e7](https://github.com/powerhouse-inc/document-model-electron/commit/1e104e7d93f64df8a001e33a02143efd81d089b4)) + + +### Features + +* added PH_CONNECT_DEFAULT_DRIVES_URL env to e2e github action ([b308b03](https://github.com/powerhouse-inc/document-model-electron/commit/b308b03be38067e3dfd563b02707349208224c46)) + # [1.0.0-dev.98](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.97...v1.0.0-dev.98) (2024-09-04) diff --git a/package.json b/package.json index 218330ac..08c67372 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.98", + "version": "1.0.0-dev.99", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From 8d488e076bdc7d7c8916c31c79ef93a9819e70f3 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 4 Sep 2024 20:04:44 +0000 Subject: [PATCH 68/90] chore(release): set `package.json` to 1.0.0-dev.100 [skip ci] # [1.0.0-dev.100](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.99...v1.0.0-dev.100) (2024-09-04) ### Features * handle syncUnitStatus not found error ([c84db48](https://github.com/powerhouse-inc/document-model-electron/commit/c84db4814175aeb04afabf475be84d22cb55bf24)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e82a0009..e40b5d13 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.0.0-dev.100](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.99...v1.0.0-dev.100) (2024-09-04) + + +### Features + +* handle syncUnitStatus not found error ([c84db48](https://github.com/powerhouse-inc/document-model-electron/commit/c84db4814175aeb04afabf475be84d22cb55bf24)) + # [1.0.0-dev.99](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.98...v1.0.0-dev.99) (2024-09-04) diff --git a/package.json b/package.json index b2e025f3..dd60ff70 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.99", + "version": "1.0.0-dev.100", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From 8312f9f7ea8ecf0abe0c32af4e5500ac82c18753 Mon Sep 17 00:00:00 2001 From: acaldas Date: Thu, 5 Sep 2024 17:56:46 +0100 Subject: [PATCH 69/90] chore: remove unnecessary sentry workaround --- src/app/sentry.ts | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/app/sentry.ts b/src/app/sentry.ts index aa2e8a30..a4262fa3 100644 --- a/src/app/sentry.ts +++ b/src/app/sentry.ts @@ -14,11 +14,6 @@ function initSenty() { } const release = import.meta.env.SENTRY_RELEASE; - // sets the sentry release id on the window object, this is needed as - // we prevent the sentry vite plugin from injecting it into the bundle - (window as unknown as { SENTRY_RELEASE: unknown }).SENTRY_RELEASE = { - id: release, - }; Sentry.init({ release, From 2a04d07f926c199d0a5af57292da61d7af66c153 Mon Sep 17 00:00:00 2001 From: acaldas Date: Thu, 5 Sep 2024 18:07:10 +0100 Subject: [PATCH 70/90] feat: updated envs --- .env | 22 +++++++++---------- .../build-and-deploy-makerdao-staging.yaml | 9 ++++---- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/.env b/.env index 31d68bd7..8bfe3afa 100644 --- a/.env +++ b/.env @@ -10,18 +10,18 @@ SENTRY_PROJECT= ## app configuration & feature flags PH_CONNECT_ROUTER_BASENAME="/develop/powerhouse/connect" -PH_CONNECT_DEFAULT_DRIVES_URL="https://apps.powerhouse.io/develop/powerhouse/switchboard/d/core-dev" -PH_CONNECT_ENABLED_EDITORS="*" -PH_CONNECT_DISABLE_ADD_PUBLIC_DRIVES="false" +PH_CONNECT_DEFAULT_DRIVES_URL="https://apps.powerhouse.io/staging/makerdao/switchboard/d/280dd289-ec51-40f0-adad-c154967fc2b2" +PH_CONNECT_ENABLED_EDITORS="makerdao/rwa-portfolio" PH_CONNECT_SEARCH_BAR_ENABLED="false" -PH_CONNECT_DISABLE_ADD_CLOUD_DRIVES="false" -PH_CONNECT_DISABLE_ADD_LOCAL_DRIVES="false" -PH_CONNECT_DISABLE_DELETE_PUBLIC_DRIVES="false" -PH_CONNECT_DISABLE_DELETE_CLOUD_DRIVES="false" -PH_CONNECT_DISABLE_DELETE_LOCAL_DRIVES="false" +PH_CONNECT_DISABLE_ADD_PUBLIC_DRIVES="true" +PH_CONNECT_DISABLE_ADD_CLOUD_DRIVES="true" +PH_CONNECT_DISABLE_ADD_LOCAL_DRIVES="true" +PH_CONNECT_DISABLE_DELETE_PUBLIC_DRIVES="true" +PH_CONNECT_DISABLE_DELETE_CLOUD_DRIVES="true" +PH_CONNECT_DISABLE_DELETE_LOCAL_DRIVES="true" PH_CONNECT_PUBLIC_DRIVES_ENABLED="true" -PH_CONNECT_CLOUD_DRIVES_ENABLED="true" -PH_CONNECT_LOCAL_DRIVES_ENABLED="true" +PH_CONNECT_CLOUD_DRIVES_ENABLED="false" +PH_CONNECT_LOCAL_DRIVES_ENABLED="false" PH_CONNECT_ARBITRUM_ALLOW_LIST="" PH_CONNECT_RWA_ALLOW_LIST="" PH_CONNECT_HIDE_DOCUMENT_MODEL_SELECTION_SETTINGS="true" @@ -34,4 +34,4 @@ PH_CONNECT_DISABLED_EDITORS="" ## error tracking PH_CONNECT_SENTRY_DSN="" PH_CONNECT_SENTRY_PROJECT="" -PH_CONNECT_SENTRY_ENV="prod" +PH_CONNECT_SENTRY_ENV="" diff --git a/.github/workflows/build-and-deploy-makerdao-staging.yaml b/.github/workflows/build-and-deploy-makerdao-staging.yaml index 064ead94..e0c0d64e 100644 --- a/.github/workflows/build-and-deploy-makerdao-staging.yaml +++ b/.github/workflows/build-and-deploy-makerdao-staging.yaml @@ -24,11 +24,10 @@ jobs: heroku_app_name: ${{ secrets.HEROKU_APP_NAME }} docker_options: >- --build-arg BASE_PATH=/staging/makerdao/connect - --build-arg PH_CONNECT_BASE_HREF=/staging/makerdao/connect/ - --build-arg PH_CONNECT_ROUTER_BASENAME=/staging/makerdao/connect + --build-arg PH_CONNECT_RWA_ALLOW_LIST=${{secrets.PH_CONNECT_RWA_ALLOW_LIST}} --build-arg PH_CONNECT_SENTRY_DSN=${{ secrets.SENTRY_DSN }} --build-arg PH_CONNECT_SENTRY_ENV=${{ secrets.SENTRY_ENV }} - --build-arg PH_CONNECT_SEARCH_BAR_ENABLED=false - --build-arg PH_CONNECT_DEFAULT_DRIVES_URL=https://apps.powerhouse.io/staging/makerdao/switchboard/d/280dd289-ec51-40f0-adad-c154967fc2b2 - --build-arg PH_CONNECT_RWA_ALLOW_LIST=${{secrets.PH_CONNECT_RWA_ALLOW_LIST}} + --build-arg SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} + --build-arg SENTRY_ORG=${{ secrets.SENTRY_ORG }} + --build-arg SENTRY_PROJECT=${{ secrets.SENTRY_PROJECT }} process_type: web \ No newline at end of file From a076dad83515aa5d36b0b3e17a8da4f22a9c359f Mon Sep 17 00:00:00 2001 From: acaldas Date: Thu, 5 Sep 2024 18:15:34 +0100 Subject: [PATCH 71/90] fix: fixed router basename --- .env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env b/.env index 8bfe3afa..60f5332b 100644 --- a/.env +++ b/.env @@ -9,7 +9,7 @@ SENTRY_PROJECT= # environment variables ## app configuration & feature flags -PH_CONNECT_ROUTER_BASENAME="/develop/powerhouse/connect" +PH_CONNECT_ROUTER_BASENAME="/staging/makerdao/connect" PH_CONNECT_DEFAULT_DRIVES_URL="https://apps.powerhouse.io/staging/makerdao/switchboard/d/280dd289-ec51-40f0-adad-c154967fc2b2" PH_CONNECT_ENABLED_EDITORS="makerdao/rwa-portfolio" PH_CONNECT_SEARCH_BAR_ENABLED="false" From f87d5c8244a396a87f1361a71565679a70372363 Mon Sep 17 00:00:00 2001 From: acaldas Date: Fri, 6 Sep 2024 09:35:42 +0100 Subject: [PATCH 72/90] feat: updated nginx docker image --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 849911a7..2b475882 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,7 +19,7 @@ RUN npm install --frozen-lockfile --force RUN npm run build:web -- --base ${BASE_PATH} # Production image, copy all the files and run next -FROM macbre/nginx-brotli:latest AS runner +FROM georgjung/nginx-brotli:mainline AS runner ARG X_TAG WORKDIR /opt/app From 835cb760069d5753c46a0027397b2b2529169f9e Mon Sep 17 00:00:00 2001 From: acaldas Date: Fri, 6 Sep 2024 09:36:24 +0100 Subject: [PATCH 73/90] feat: activated brotli on nginx --- nginx.conf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nginx.conf b/nginx.conf index 324d997c..b3b916c1 100644 --- a/nginx.conf +++ b/nginx.conf @@ -1,3 +1,6 @@ +load_module modules/ngx_http_brotli_static_module.so; +load_module modules/ngx_http_brotli_filter_module.so; + server { listen ${PORT}; listen [::]:${PORT}; From 73d1ce6405b0c168c2a1aacc32988dfc47a2745c Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Fri, 6 Sep 2024 08:38:10 +0000 Subject: [PATCH 74/90] chore(release): set `package.json` to 1.0.0-dev.101 [skip ci] # [1.0.0-dev.101](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.100...v1.0.0-dev.101) (2024-09-06) ### Features * activated brotli on nginx ([835cb76](https://github.com/powerhouse-inc/document-model-electron/commit/835cb760069d5753c46a0027397b2b2529169f9e)) * updated nginx docker image ([f87d5c8](https://github.com/powerhouse-inc/document-model-electron/commit/f87d5c8244a396a87f1361a71565679a70372363)) --- CHANGELOG.md | 8 ++++++++ package.json | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e40b5d13..58bfc5c8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +# [1.0.0-dev.101](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.100...v1.0.0-dev.101) (2024-09-06) + + +### Features + +* activated brotli on nginx ([835cb76](https://github.com/powerhouse-inc/document-model-electron/commit/835cb760069d5753c46a0027397b2b2529169f9e)) +* updated nginx docker image ([f87d5c8](https://github.com/powerhouse-inc/document-model-electron/commit/f87d5c8244a396a87f1361a71565679a70372363)) + # [1.0.0-dev.100](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.99...v1.0.0-dev.100) (2024-09-04) diff --git a/package.json b/package.json index dd60ff70..3ed7a627 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.100", + "version": "1.0.0-dev.101", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From 174b57cab2a063ab97614c10ec31e98406cdae65 Mon Sep 17 00:00:00 2001 From: acaldas Date: Fri, 6 Sep 2024 09:54:25 +0100 Subject: [PATCH 75/90] fix: revert nginx docker image change --- Dockerfile | 2 +- nginx.conf | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 2b475882..849911a7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,7 +19,7 @@ RUN npm install --frozen-lockfile --force RUN npm run build:web -- --base ${BASE_PATH} # Production image, copy all the files and run next -FROM georgjung/nginx-brotli:mainline AS runner +FROM macbre/nginx-brotli:latest AS runner ARG X_TAG WORKDIR /opt/app diff --git a/nginx.conf b/nginx.conf index b3b916c1..324d997c 100644 --- a/nginx.conf +++ b/nginx.conf @@ -1,6 +1,3 @@ -load_module modules/ngx_http_brotli_static_module.so; -load_module modules/ngx_http_brotli_filter_module.so; - server { listen ${PORT}; listen [::]:${PORT}; From 541b33c3a6af789547766645640bc3981630c5c9 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Fri, 6 Sep 2024 08:57:00 +0000 Subject: [PATCH 76/90] chore(release): set `package.json` to 1.0.0-dev.102 [skip ci] # [1.0.0-dev.102](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.101...v1.0.0-dev.102) (2024-09-06) ### Bug Fixes * revert nginx docker image change ([174b57c](https://github.com/powerhouse-inc/document-model-electron/commit/174b57cab2a063ab97614c10ec31e98406cdae65)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 58bfc5c8..7019e768 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.0.0-dev.102](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.101...v1.0.0-dev.102) (2024-09-06) + + +### Bug Fixes + +* revert nginx docker image change ([174b57c](https://github.com/powerhouse-inc/document-model-electron/commit/174b57cab2a063ab97614c10ec31e98406cdae65)) + # [1.0.0-dev.101](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.100...v1.0.0-dev.101) (2024-09-06) diff --git a/package.json b/package.json index 3ed7a627..a4e3fbb6 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.101", + "version": "1.0.0-dev.102", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From 571485c0f84c7d307fd411aa24a5b3f73cfeeaf0 Mon Sep 17 00:00:00 2001 From: acaldas Date: Mon, 9 Sep 2024 09:36:49 +0100 Subject: [PATCH 77/90] chore: prevent .env.local from being ignored by the IDE --- .ignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 .ignore diff --git a/.ignore b/.ignore new file mode 100644 index 00000000..fab34f7e --- /dev/null +++ b/.ignore @@ -0,0 +1 @@ +!.env.local \ No newline at end of file From e6c88eb0b07c4fa9478987d43ae16c814b97bf7c Mon Sep 17 00:00:00 2001 From: acaldas Date: Mon, 9 Sep 2024 18:36:45 +0100 Subject: [PATCH 78/90] feat: updated dependencies --- package-lock.json | 243 +++++----------------------------------------- package.json | 6 +- 2 files changed, 25 insertions(+), 224 deletions(-) diff --git a/package-lock.json b/package-lock.json index a2554744..e4b13ecb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@powerhousedao/connect", - "version": "1.0.0-dev.96", + "version": "1.0.0-dev.102", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@powerhousedao/connect", - "version": "1.0.0-dev.96", + "version": "1.0.0-dev.102", "license": "AGPL-3.0-only", "dependencies": { "@powerhousedao/design-system": "1.0.0-alpha.160", @@ -14,9 +14,9 @@ "@sentry/vite-plugin": "^2.22.2", "@tanstack/react-virtual": "^3.8.1", "did-key-creator": "^1.2.0", - "document-drive": "1.0.0-alpha.91", - "document-model": "1.7.0", - "document-model-libs": "^1.83.0", + "document-drive": "^1.0.0-alpha.92", + "document-model": "^1.8.0", + "document-model-libs": "^1.84.0", "electron-is-dev": "^3.0.1", "electron-squirrel-startup": "^1.0.0", "electron-store": "^8.1.0", @@ -15873,9 +15873,9 @@ } }, "node_modules/document-drive": { - "version": "1.0.0-alpha.91", - "resolved": "https://registry.npmjs.org/document-drive/-/document-drive-1.0.0-alpha.91.tgz", - "integrity": "sha512-wcQijutOyKBEEfHH5NrgivYalgT1mAed2fheWz53HI797X+4DTG1Kag/m5ZEVdKr4e+r1XaP2xGBtqdUKwE/4A==", + "version": "1.0.0-alpha.92", + "resolved": "https://registry.npmjs.org/document-drive/-/document-drive-1.0.0-alpha.92.tgz", + "integrity": "sha512-fBtlSBldSvrrZFdqaPm/Ha13iHg0uwKk38CvZEhq7uDDmEV0ktfw038djwjFIDlr+uRISL43n3S7WAnzrVhCjw==", "dependencies": { "exponential-backoff": "^3.1.1", "graphql": "^16.9.0", @@ -15893,28 +15893,29 @@ "sqlite3": "^5.1.7" }, "peerDependencies": { - "document-model": "^1.7.0", + "document-model": "^1.8.0", "document-model-libs": "^1.57.0" } }, "node_modules/document-model": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/document-model/-/document-model-1.7.0.tgz", - "integrity": "sha512-g35SSY9+pqsCKz0xwZm3tWp9/bEQlvrVEp+96vyFtR/w1zyrGXwBOYslpKhpfuDmqJfN0ERq+LgB26rmf+YDyQ==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/document-model/-/document-model-1.8.0.tgz", + "integrity": "sha512-dgJHAFIsJddwhjZDspFexmJifaZv4yL3Hbak2pNim22lIEW3n+wSw8IvNV+ZAWJW7ql5lIOcFDU4mUhQO2Gi4g==", "dependencies": { "change-case": "^5.4.3", "jszip": "^3.10.1", "mime": "^4.0.1", "mutative": "^1.0.5", "safe-stable-stringify": "^2.4.3", + "sha1-uint8array": "^0.10.7", "uuid": "^9.0.1", "zod": "^3.22.4" } }, "node_modules/document-model-libs": { - "version": "1.83.0", - "resolved": "https://registry.npmjs.org/document-model-libs/-/document-model-libs-1.83.0.tgz", - "integrity": "sha512-GbgsUgW47+K051vu63bazdY05GBKTLNDNnasjoZ9lcLMbsY+FycknMGRbscuvCneNFQk131GQWPuzxD2WxobAw==", + "version": "1.84.0", + "resolved": "https://registry.npmjs.org/document-model-libs/-/document-model-libs-1.84.0.tgz", + "integrity": "sha512-v3dc9asjf+pvAPffubUb8Pr1R8ahPwKUU1/qIwLrlXbSJ4Rz3ctsvjcwW2z0uIiCZJPoLCRTE+VESIIAO5GiHQ==", "dependencies": { "@acaldas/graphql-codegen-typescript-validation-schema": "^0.12.3", "@graphql-codegen/core": "^4.0.2", @@ -24315,7 +24316,6 @@ }, "node_modules/npm/node_modules/@isaacs/cliui": { "version": "8.0.2", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24332,7 +24332,6 @@ }, "node_modules/npm/node_modules/@isaacs/cliui/node_modules/ansi-regex": { "version": "6.0.1", - "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -24344,13 +24343,11 @@ }, "node_modules/npm/node_modules/@isaacs/cliui/node_modules/emoji-regex": { "version": "9.2.2", - "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/@isaacs/cliui/node_modules/string-width": { "version": "5.1.2", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -24367,7 +24364,6 @@ }, "node_modules/npm/node_modules/@isaacs/cliui/node_modules/strip-ansi": { "version": "7.1.0", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -24382,13 +24378,11 @@ }, "node_modules/npm/node_modules/@isaacs/string-locale-compare": { "version": "1.1.0", - "dev": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/@npmcli/agent": { "version": "2.2.2", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24404,7 +24398,6 @@ }, "node_modules/npm/node_modules/@npmcli/arborist": { "version": "7.5.4", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24453,7 +24446,6 @@ }, "node_modules/npm/node_modules/@npmcli/config": { "version": "8.3.4", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24472,7 +24464,6 @@ }, "node_modules/npm/node_modules/@npmcli/fs": { "version": "3.1.1", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24484,7 +24475,6 @@ }, "node_modules/npm/node_modules/@npmcli/git": { "version": "5.0.8", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24504,7 +24494,6 @@ }, "node_modules/npm/node_modules/@npmcli/installed-package-contents": { "version": "2.1.0", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24520,7 +24509,6 @@ }, "node_modules/npm/node_modules/@npmcli/map-workspaces": { "version": "3.0.6", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24535,7 +24523,6 @@ }, "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { "version": "7.1.1", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24551,7 +24538,6 @@ }, "node_modules/npm/node_modules/@npmcli/name-from-folder": { "version": "2.0.0", - "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -24560,7 +24546,6 @@ }, "node_modules/npm/node_modules/@npmcli/node-gyp": { "version": "3.0.0", - "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -24569,7 +24554,6 @@ }, "node_modules/npm/node_modules/@npmcli/package-json": { "version": "5.2.0", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24587,7 +24571,6 @@ }, "node_modules/npm/node_modules/@npmcli/promise-spawn": { "version": "7.0.2", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24599,7 +24582,6 @@ }, "node_modules/npm/node_modules/@npmcli/query": { "version": "3.1.0", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24611,7 +24593,6 @@ }, "node_modules/npm/node_modules/@npmcli/redact": { "version": "2.0.1", - "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -24620,7 +24601,6 @@ }, "node_modules/npm/node_modules/@npmcli/run-script": { "version": "8.1.0", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24637,17 +24617,14 @@ }, "node_modules/npm/node_modules/@pkgjs/parseargs": { "version": "0.11.0", - "dev": true, "inBundle": true, "license": "MIT", - "optional": true, "engines": { "node": ">=14" } }, "node_modules/npm/node_modules/@sigstore/bundle": { "version": "2.3.2", - "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -24659,7 +24636,6 @@ }, "node_modules/npm/node_modules/@sigstore/core": { "version": "1.1.0", - "dev": true, "inBundle": true, "license": "Apache-2.0", "engines": { @@ -24668,7 +24644,6 @@ }, "node_modules/npm/node_modules/@sigstore/protobuf-specs": { "version": "0.3.2", - "dev": true, "inBundle": true, "license": "Apache-2.0", "engines": { @@ -24677,7 +24652,6 @@ }, "node_modules/npm/node_modules/@sigstore/sign": { "version": "2.3.2", - "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -24694,7 +24668,6 @@ }, "node_modules/npm/node_modules/@sigstore/tuf": { "version": "2.3.4", - "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -24707,7 +24680,6 @@ }, "node_modules/npm/node_modules/@sigstore/verify": { "version": "1.2.1", - "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -24721,7 +24693,6 @@ }, "node_modules/npm/node_modules/@tufjs/canonical-json": { "version": "2.0.0", - "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -24730,7 +24701,6 @@ }, "node_modules/npm/node_modules/@tufjs/models": { "version": "2.0.1", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -24743,7 +24713,6 @@ }, "node_modules/npm/node_modules/abbrev": { "version": "2.0.0", - "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -24752,7 +24721,6 @@ }, "node_modules/npm/node_modules/agent-base": { "version": "7.1.1", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -24764,7 +24732,6 @@ }, "node_modules/npm/node_modules/aggregate-error": { "version": "3.1.0", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -24777,7 +24744,6 @@ }, "node_modules/npm/node_modules/ansi-regex": { "version": "5.0.1", - "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -24786,7 +24752,6 @@ }, "node_modules/npm/node_modules/ansi-styles": { "version": "6.2.1", - "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -24798,25 +24763,21 @@ }, "node_modules/npm/node_modules/aproba": { "version": "2.0.0", - "dev": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/archy": { "version": "1.0.0", - "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/balanced-match": { "version": "1.0.2", - "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/bin-links": { "version": "4.0.4", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24831,7 +24792,6 @@ }, "node_modules/npm/node_modules/binary-extensions": { "version": "2.3.0", - "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -24843,7 +24803,6 @@ }, "node_modules/npm/node_modules/brace-expansion": { "version": "2.0.1", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -24852,7 +24811,6 @@ }, "node_modules/npm/node_modules/cacache": { "version": "18.0.3", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24875,7 +24833,6 @@ }, "node_modules/npm/node_modules/chalk": { "version": "5.3.0", - "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -24887,7 +24844,6 @@ }, "node_modules/npm/node_modules/chownr": { "version": "2.0.0", - "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -24896,7 +24852,6 @@ }, "node_modules/npm/node_modules/ci-info": { "version": "4.0.0", - "dev": true, "funding": [ { "type": "github", @@ -24911,7 +24866,6 @@ }, "node_modules/npm/node_modules/cidr-regex": { "version": "4.1.1", - "dev": true, "inBundle": true, "license": "BSD-2-Clause", "dependencies": { @@ -24923,7 +24877,6 @@ }, "node_modules/npm/node_modules/clean-stack": { "version": "2.2.0", - "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -24932,7 +24885,6 @@ }, "node_modules/npm/node_modules/cli-columns": { "version": "4.0.0", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -24945,7 +24897,6 @@ }, "node_modules/npm/node_modules/cmd-shim": { "version": "6.0.3", - "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -24954,7 +24905,6 @@ }, "node_modules/npm/node_modules/color-convert": { "version": "2.0.1", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -24966,19 +24916,16 @@ }, "node_modules/npm/node_modules/color-name": { "version": "1.1.4", - "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/common-ancestor-path": { "version": "1.0.1", - "dev": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/cross-spawn": { "version": "7.0.3", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -24992,7 +24939,6 @@ }, "node_modules/npm/node_modules/cross-spawn/node_modules/which": { "version": "2.0.2", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25007,7 +24953,6 @@ }, "node_modules/npm/node_modules/cssesc": { "version": "3.0.0", - "dev": true, "inBundle": true, "license": "MIT", "bin": { @@ -25019,7 +24964,6 @@ }, "node_modules/npm/node_modules/debug": { "version": "4.3.5", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -25036,13 +24980,11 @@ }, "node_modules/npm/node_modules/debug/node_modules/ms": { "version": "2.1.2", - "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/diff": { "version": "5.2.0", - "dev": true, "inBundle": true, "license": "BSD-3-Clause", "engines": { @@ -25051,29 +24993,24 @@ }, "node_modules/npm/node_modules/eastasianwidth": { "version": "0.2.0", - "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/emoji-regex": { "version": "8.0.0", - "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/encoding": { "version": "0.1.13", - "dev": true, "inBundle": true, "license": "MIT", - "optional": true, "dependencies": { "iconv-lite": "^0.6.2" } }, "node_modules/npm/node_modules/env-paths": { "version": "2.2.1", - "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -25082,19 +25019,16 @@ }, "node_modules/npm/node_modules/err-code": { "version": "2.0.3", - "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/exponential-backoff": { "version": "3.1.1", - "dev": true, "inBundle": true, "license": "Apache-2.0" }, "node_modules/npm/node_modules/fastest-levenshtein": { "version": "1.0.16", - "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -25103,7 +25037,6 @@ }, "node_modules/npm/node_modules/foreground-child": { "version": "3.2.1", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25119,7 +25052,6 @@ }, "node_modules/npm/node_modules/fs-minipass": { "version": "3.0.3", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25131,7 +25063,6 @@ }, "node_modules/npm/node_modules/glob": { "version": "10.4.2", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25154,13 +25085,11 @@ }, "node_modules/npm/node_modules/graceful-fs": { "version": "4.2.11", - "dev": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/hosted-git-info": { "version": "7.0.2", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25172,13 +25101,11 @@ }, "node_modules/npm/node_modules/http-cache-semantics": { "version": "4.1.1", - "dev": true, "inBundle": true, "license": "BSD-2-Clause" }, "node_modules/npm/node_modules/http-proxy-agent": { "version": "7.0.2", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -25191,7 +25118,6 @@ }, "node_modules/npm/node_modules/https-proxy-agent": { "version": "7.0.5", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -25204,10 +25130,8 @@ }, "node_modules/npm/node_modules/iconv-lite": { "version": "0.6.3", - "dev": true, "inBundle": true, "license": "MIT", - "optional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -25217,7 +25141,6 @@ }, "node_modules/npm/node_modules/ignore-walk": { "version": "6.0.5", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25229,7 +25152,6 @@ }, "node_modules/npm/node_modules/imurmurhash": { "version": "0.1.4", - "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -25238,7 +25160,6 @@ }, "node_modules/npm/node_modules/indent-string": { "version": "4.0.0", - "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -25247,7 +25168,6 @@ }, "node_modules/npm/node_modules/ini": { "version": "4.1.3", - "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -25256,7 +25176,6 @@ }, "node_modules/npm/node_modules/init-package-json": { "version": "6.0.3", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25274,7 +25193,6 @@ }, "node_modules/npm/node_modules/ip-address": { "version": "9.0.5", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -25287,7 +25205,6 @@ }, "node_modules/npm/node_modules/ip-regex": { "version": "5.0.0", - "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -25299,7 +25216,6 @@ }, "node_modules/npm/node_modules/is-cidr": { "version": "5.1.0", - "dev": true, "inBundle": true, "license": "BSD-2-Clause", "dependencies": { @@ -25311,7 +25227,6 @@ }, "node_modules/npm/node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -25320,19 +25235,16 @@ }, "node_modules/npm/node_modules/is-lambda": { "version": "1.0.1", - "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/isexe": { "version": "2.0.0", - "dev": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/jackspeak": { "version": "3.4.0", - "dev": true, "inBundle": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -25350,13 +25262,11 @@ }, "node_modules/npm/node_modules/jsbn": { "version": "1.1.0", - "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/json-parse-even-better-errors": { "version": "3.0.2", - "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -25365,7 +25275,6 @@ }, "node_modules/npm/node_modules/json-stringify-nice": { "version": "1.1.4", - "dev": true, "inBundle": true, "license": "ISC", "funding": { @@ -25374,7 +25283,6 @@ }, "node_modules/npm/node_modules/jsonparse": { "version": "1.3.1", - "dev": true, "engines": [ "node >= 0.2.0" ], @@ -25383,19 +25291,16 @@ }, "node_modules/npm/node_modules/just-diff": { "version": "6.0.2", - "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/just-diff-apply": { "version": "5.5.0", - "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/libnpmaccess": { "version": "8.0.6", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25408,7 +25313,6 @@ }, "node_modules/npm/node_modules/libnpmdiff": { "version": "6.1.4", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25427,7 +25331,6 @@ }, "node_modules/npm/node_modules/libnpmexec": { "version": "8.1.3", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25448,7 +25351,6 @@ }, "node_modules/npm/node_modules/libnpmfund": { "version": "5.0.12", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25460,7 +25362,6 @@ }, "node_modules/npm/node_modules/libnpmhook": { "version": "10.0.5", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25473,7 +25374,6 @@ }, "node_modules/npm/node_modules/libnpmorg": { "version": "6.0.6", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25486,7 +25386,6 @@ }, "node_modules/npm/node_modules/libnpmpack": { "version": "7.0.4", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25501,7 +25400,6 @@ }, "node_modules/npm/node_modules/libnpmpublish": { "version": "9.0.9", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25520,7 +25418,6 @@ }, "node_modules/npm/node_modules/libnpmsearch": { "version": "7.0.6", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25532,7 +25429,6 @@ }, "node_modules/npm/node_modules/libnpmteam": { "version": "6.0.5", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25545,7 +25441,6 @@ }, "node_modules/npm/node_modules/libnpmversion": { "version": "6.0.3", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25561,7 +25456,6 @@ }, "node_modules/npm/node_modules/lru-cache": { "version": "10.2.2", - "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -25570,7 +25464,6 @@ }, "node_modules/npm/node_modules/make-fetch-happen": { "version": "13.0.1", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25593,7 +25486,6 @@ }, "node_modules/npm/node_modules/minimatch": { "version": "9.0.5", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25608,7 +25500,6 @@ }, "node_modules/npm/node_modules/minipass": { "version": "7.1.2", - "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -25617,7 +25508,6 @@ }, "node_modules/npm/node_modules/minipass-collect": { "version": "2.0.1", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25629,7 +25519,6 @@ }, "node_modules/npm/node_modules/minipass-fetch": { "version": "3.0.5", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -25646,7 +25535,6 @@ }, "node_modules/npm/node_modules/minipass-flush": { "version": "1.0.5", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25658,7 +25546,6 @@ }, "node_modules/npm/node_modules/minipass-flush/node_modules/minipass": { "version": "3.3.6", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25670,7 +25557,6 @@ }, "node_modules/npm/node_modules/minipass-pipeline": { "version": "1.2.4", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25682,7 +25568,6 @@ }, "node_modules/npm/node_modules/minipass-pipeline/node_modules/minipass": { "version": "3.3.6", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25694,7 +25579,6 @@ }, "node_modules/npm/node_modules/minipass-sized": { "version": "1.0.3", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25706,7 +25590,6 @@ }, "node_modules/npm/node_modules/minipass-sized/node_modules/minipass": { "version": "3.3.6", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25718,7 +25601,6 @@ }, "node_modules/npm/node_modules/minizlib": { "version": "2.1.2", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -25731,7 +25613,6 @@ }, "node_modules/npm/node_modules/minizlib/node_modules/minipass": { "version": "3.3.6", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25743,7 +25624,6 @@ }, "node_modules/npm/node_modules/mkdirp": { "version": "1.0.4", - "dev": true, "inBundle": true, "license": "MIT", "bin": { @@ -25755,13 +25635,11 @@ }, "node_modules/npm/node_modules/ms": { "version": "2.1.3", - "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/mute-stream": { "version": "1.0.0", - "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -25770,7 +25648,6 @@ }, "node_modules/npm/node_modules/negotiator": { "version": "0.6.3", - "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -25779,7 +25656,6 @@ }, "node_modules/npm/node_modules/node-gyp": { "version": "10.1.0", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -25803,7 +25679,6 @@ }, "node_modules/npm/node_modules/node-gyp/node_modules/proc-log": { "version": "3.0.0", - "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -25812,7 +25687,6 @@ }, "node_modules/npm/node_modules/nopt": { "version": "7.2.1", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25827,7 +25701,6 @@ }, "node_modules/npm/node_modules/normalize-package-data": { "version": "6.0.2", - "dev": true, "inBundle": true, "license": "BSD-2-Clause", "dependencies": { @@ -25841,7 +25714,6 @@ }, "node_modules/npm/node_modules/npm-audit-report": { "version": "5.0.0", - "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -25850,7 +25722,6 @@ }, "node_modules/npm/node_modules/npm-bundled": { "version": "3.0.1", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25862,7 +25733,6 @@ }, "node_modules/npm/node_modules/npm-install-checks": { "version": "6.3.0", - "dev": true, "inBundle": true, "license": "BSD-2-Clause", "dependencies": { @@ -25874,7 +25744,6 @@ }, "node_modules/npm/node_modules/npm-normalize-package-bin": { "version": "3.0.1", - "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -25883,7 +25752,6 @@ }, "node_modules/npm/node_modules/npm-package-arg": { "version": "11.0.2", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25898,7 +25766,6 @@ }, "node_modules/npm/node_modules/npm-packlist": { "version": "8.0.2", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25910,7 +25777,6 @@ }, "node_modules/npm/node_modules/npm-pick-manifest": { "version": "9.1.0", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25925,7 +25791,6 @@ }, "node_modules/npm/node_modules/npm-profile": { "version": "10.0.0", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25938,7 +25803,6 @@ }, "node_modules/npm/node_modules/npm-registry-fetch": { "version": "17.1.0", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25957,7 +25821,6 @@ }, "node_modules/npm/node_modules/npm-user-validate": { "version": "2.0.1", - "dev": true, "inBundle": true, "license": "BSD-2-Clause", "engines": { @@ -25966,7 +25829,6 @@ }, "node_modules/npm/node_modules/p-map": { "version": "4.0.0", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -25981,13 +25843,11 @@ }, "node_modules/npm/node_modules/package-json-from-dist": { "version": "1.0.0", - "dev": true, "inBundle": true, "license": "BlueOak-1.0.0" }, "node_modules/npm/node_modules/pacote": { "version": "18.0.6", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -26018,7 +25878,6 @@ }, "node_modules/npm/node_modules/parse-conflict-json": { "version": "3.0.1", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -26032,7 +25891,6 @@ }, "node_modules/npm/node_modules/path-key": { "version": "3.1.1", - "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -26041,7 +25899,6 @@ }, "node_modules/npm/node_modules/path-scurry": { "version": "1.11.1", - "dev": true, "inBundle": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -26057,7 +25914,6 @@ }, "node_modules/npm/node_modules/postcss-selector-parser": { "version": "6.1.0", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26070,7 +25926,6 @@ }, "node_modules/npm/node_modules/proc-log": { "version": "4.2.0", - "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -26079,7 +25934,6 @@ }, "node_modules/npm/node_modules/proggy": { "version": "2.0.0", - "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -26088,7 +25942,6 @@ }, "node_modules/npm/node_modules/promise-all-reject-late": { "version": "1.0.1", - "dev": true, "inBundle": true, "license": "ISC", "funding": { @@ -26097,7 +25950,6 @@ }, "node_modules/npm/node_modules/promise-call-limit": { "version": "3.0.1", - "dev": true, "inBundle": true, "license": "ISC", "funding": { @@ -26106,13 +25958,11 @@ }, "node_modules/npm/node_modules/promise-inflight": { "version": "1.0.1", - "dev": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/promise-retry": { "version": "2.0.1", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26125,7 +25975,6 @@ }, "node_modules/npm/node_modules/promzard": { "version": "1.0.2", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -26137,7 +25986,6 @@ }, "node_modules/npm/node_modules/qrcode-terminal": { "version": "0.12.0", - "dev": true, "inBundle": true, "bin": { "qrcode-terminal": "bin/qrcode-terminal.js" @@ -26145,7 +25993,6 @@ }, "node_modules/npm/node_modules/read": { "version": "3.0.1", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -26157,7 +26004,6 @@ }, "node_modules/npm/node_modules/read-cmd-shim": { "version": "4.0.0", - "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -26166,7 +26012,6 @@ }, "node_modules/npm/node_modules/read-package-json-fast": { "version": "3.0.2", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -26179,7 +26024,6 @@ }, "node_modules/npm/node_modules/retry": { "version": "0.12.0", - "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -26188,14 +26032,11 @@ }, "node_modules/npm/node_modules/safer-buffer": { "version": "2.1.2", - "dev": true, "inBundle": true, - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/npm/node_modules/semver": { "version": "7.6.2", - "dev": true, "inBundle": true, "license": "ISC", "bin": { @@ -26207,7 +26048,6 @@ }, "node_modules/npm/node_modules/shebang-command": { "version": "2.0.0", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26219,7 +26059,6 @@ }, "node_modules/npm/node_modules/shebang-regex": { "version": "3.0.0", - "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -26228,7 +26067,6 @@ }, "node_modules/npm/node_modules/signal-exit": { "version": "4.1.0", - "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -26240,7 +26078,6 @@ }, "node_modules/npm/node_modules/sigstore": { "version": "2.3.1", - "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -26257,7 +26094,6 @@ }, "node_modules/npm/node_modules/smart-buffer": { "version": "4.2.0", - "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -26267,7 +26103,6 @@ }, "node_modules/npm/node_modules/socks": { "version": "2.8.3", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26281,7 +26116,6 @@ }, "node_modules/npm/node_modules/socks-proxy-agent": { "version": "8.0.4", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26295,7 +26129,6 @@ }, "node_modules/npm/node_modules/spdx-correct": { "version": "3.2.0", - "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -26305,7 +26138,6 @@ }, "node_modules/npm/node_modules/spdx-correct/node_modules/spdx-expression-parse": { "version": "3.0.1", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26315,13 +26147,11 @@ }, "node_modules/npm/node_modules/spdx-exceptions": { "version": "2.5.0", - "dev": true, "inBundle": true, "license": "CC-BY-3.0" }, "node_modules/npm/node_modules/spdx-expression-parse": { "version": "4.0.0", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26331,19 +26161,16 @@ }, "node_modules/npm/node_modules/spdx-license-ids": { "version": "3.0.18", - "dev": true, "inBundle": true, "license": "CC0-1.0" }, "node_modules/npm/node_modules/sprintf-js": { "version": "1.1.3", - "dev": true, "inBundle": true, "license": "BSD-3-Clause" }, "node_modules/npm/node_modules/ssri": { "version": "10.0.6", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -26355,7 +26182,6 @@ }, "node_modules/npm/node_modules/string-width": { "version": "4.2.3", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26370,7 +26196,6 @@ "node_modules/npm/node_modules/string-width-cjs": { "name": "string-width", "version": "4.2.3", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26384,7 +26209,6 @@ }, "node_modules/npm/node_modules/strip-ansi": { "version": "6.0.1", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26397,7 +26221,6 @@ "node_modules/npm/node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26409,7 +26232,6 @@ }, "node_modules/npm/node_modules/supports-color": { "version": "9.4.0", - "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -26421,7 +26243,6 @@ }, "node_modules/npm/node_modules/tar": { "version": "6.2.1", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -26438,7 +26259,6 @@ }, "node_modules/npm/node_modules/tar/node_modules/fs-minipass": { "version": "2.1.0", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -26450,7 +26270,6 @@ }, "node_modules/npm/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { "version": "3.3.6", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -26462,7 +26281,6 @@ }, "node_modules/npm/node_modules/tar/node_modules/minipass": { "version": "5.0.0", - "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -26471,19 +26289,16 @@ }, "node_modules/npm/node_modules/text-table": { "version": "0.2.0", - "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/tiny-relative-date": { "version": "1.3.0", - "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/treeverse": { "version": "3.0.0", - "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -26492,7 +26307,6 @@ }, "node_modules/npm/node_modules/tuf-js": { "version": "2.2.1", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26506,7 +26320,6 @@ }, "node_modules/npm/node_modules/unique-filename": { "version": "3.0.0", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -26518,7 +26331,6 @@ }, "node_modules/npm/node_modules/unique-slug": { "version": "4.0.0", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -26530,13 +26342,11 @@ }, "node_modules/npm/node_modules/util-deprecate": { "version": "1.0.2", - "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/validate-npm-package-license": { "version": "3.0.4", - "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -26546,7 +26356,6 @@ }, "node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { "version": "3.0.1", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26556,7 +26365,6 @@ }, "node_modules/npm/node_modules/validate-npm-package-name": { "version": "5.0.1", - "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -26565,13 +26373,11 @@ }, "node_modules/npm/node_modules/walk-up-path": { "version": "3.0.1", - "dev": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/which": { "version": "4.0.0", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -26586,7 +26392,6 @@ }, "node_modules/npm/node_modules/which/node_modules/isexe": { "version": "3.1.1", - "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -26595,7 +26400,6 @@ }, "node_modules/npm/node_modules/wrap-ansi": { "version": "8.1.0", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26613,7 +26417,6 @@ "node_modules/npm/node_modules/wrap-ansi-cjs": { "name": "wrap-ansi", "version": "7.0.0", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26630,7 +26433,6 @@ }, "node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { "version": "4.3.0", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26645,7 +26447,6 @@ }, "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-regex": { "version": "6.0.1", - "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -26657,13 +26458,11 @@ }, "node_modules/npm/node_modules/wrap-ansi/node_modules/emoji-regex": { "version": "9.2.2", - "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/wrap-ansi/node_modules/string-width": { "version": "5.1.2", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26680,7 +26479,6 @@ }, "node_modules/npm/node_modules/wrap-ansi/node_modules/strip-ansi": { "version": "7.1.0", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26695,7 +26493,6 @@ }, "node_modules/npm/node_modules/write-file-atomic": { "version": "5.0.1", - "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -26708,7 +26505,6 @@ }, "node_modules/npm/node_modules/yallist": { "version": "4.0.0", - "dev": true, "inBundle": true, "license": "ISC" }, @@ -30405,6 +30201,11 @@ "sha.js": "bin.js" } }, + "node_modules/sha1-uint8array": { + "version": "0.10.7", + "resolved": "https://registry.npmjs.org/sha1-uint8array/-/sha1-uint8array-0.10.7.tgz", + "integrity": "sha512-COJRCUOuTgEEPyhcRncHlf3Z2/Nik0PGZ60/tA9Ni2jlwYJ2g/WgP8TV19gbllmZDs/DGV5YklZxreyMHFX8ww==" + }, "node_modules/shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", diff --git a/package.json b/package.json index a4e3fbb6..f203b4a6 100644 --- a/package.json +++ b/package.json @@ -95,9 +95,9 @@ "@sentry/vite-plugin": "^2.22.2", "@tanstack/react-virtual": "^3.8.1", "did-key-creator": "^1.2.0", - "document-drive": "1.0.0-alpha.91", - "document-model": "1.7.0", - "document-model-libs": "^1.83.0", + "document-drive": "^1.0.0-alpha.92", + "document-model": "^1.8.0", + "document-model-libs": "^1.84.0", "electron-is-dev": "^3.0.1", "electron-squirrel-startup": "^1.0.0", "electron-store": "^8.1.0", From 3e5b7bcef0da03aa1d1fec683b6c1bae2b23cea5 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Mon, 9 Sep 2024 17:39:36 +0000 Subject: [PATCH 79/90] chore(release): set `package.json` to 1.0.0-dev.103 [skip ci] # [1.0.0-dev.103](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.102...v1.0.0-dev.103) (2024-09-09) ### Features * updated dependencies ([e6c88eb](https://github.com/powerhouse-inc/document-model-electron/commit/e6c88eb0b07c4fa9478987d43ae16c814b97bf7c)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7019e768..ee254a3c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.0.0-dev.103](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.102...v1.0.0-dev.103) (2024-09-09) + + +### Features + +* updated dependencies ([e6c88eb](https://github.com/powerhouse-inc/document-model-electron/commit/e6c88eb0b07c4fa9478987d43ae16c814b97bf7c)) + # [1.0.0-dev.102](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.101...v1.0.0-dev.102) (2024-09-06) diff --git a/package.json b/package.json index f203b4a6..092cbfd7 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.102", + "version": "1.0.0-dev.103", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From a4e971b09dba190f1cdf5fdbf9c75fc9e0400fe9 Mon Sep 17 00:00:00 2001 From: Guillermo Puente Date: Wed, 11 Sep 2024 17:01:42 -0300 Subject: [PATCH 80/90] feat: update document-model-libs and design-system --- package-lock.json | 236 +++++++++++++++++++++++++++++++++++++++++++--- package.json | 4 +- 2 files changed, 227 insertions(+), 13 deletions(-) diff --git a/package-lock.json b/package-lock.json index e4b13ecb..5efe2d91 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,22 +1,22 @@ { "name": "@powerhousedao/connect", - "version": "1.0.0-dev.102", + "version": "1.0.0-dev.103", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@powerhousedao/connect", - "version": "1.0.0-dev.102", + "version": "1.0.0-dev.103", "license": "AGPL-3.0-only", "dependencies": { - "@powerhousedao/design-system": "1.0.0-alpha.160", + "@powerhousedao/design-system": "1.0.0-alpha.166", "@sentry/react": "^7.109.0", "@sentry/vite-plugin": "^2.22.2", "@tanstack/react-virtual": "^3.8.1", "did-key-creator": "^1.2.0", "document-drive": "^1.0.0-alpha.92", "document-model": "^1.8.0", - "document-model-libs": "^1.84.0", + "document-model-libs": "^1.85.0", "electron-is-dev": "^3.0.1", "electron-squirrel-startup": "^1.0.0", "electron-store": "^8.1.0", @@ -6821,9 +6821,9 @@ } }, "node_modules/@powerhousedao/design-system": { - "version": "1.0.0-alpha.160", - "resolved": "https://registry.npmjs.org/@powerhousedao/design-system/-/design-system-1.0.0-alpha.160.tgz", - "integrity": "sha512-QL/tyyXnguac5vgVOKPC7NzQ9ot/PaMyJ9EJeYBDx8KufmuYFPUM2pRx9Df/5Q5yQ+XK46mOO2HsSVuVYWfgdw==", + "version": "1.0.0-alpha.166", + "resolved": "https://registry.npmjs.org/@powerhousedao/design-system/-/design-system-1.0.0-alpha.166.tgz", + "integrity": "sha512-YPn7zwV+VwC3jNZX+TrlAZOgS5IArWtzI4C0wmTfO80y3TX9sl5YDCx86xeTMs4XQmS5pHYimtM4rmZMXpVcyA==", "dependencies": { "@internationalized/date": "^3.5.1", "@radix-ui/react-dialog": "^1.0.5", @@ -6834,6 +6834,7 @@ "@tanstack/react-virtual": "^3.8.1", "change-case": "^5.4.3", "date-fns": "^3.3.1", + "date-fns-tz": "^3.1.3", "react-hook-form": "^7.51.2", "react-multi-select-component": "^4.3.4", "react-number-format": "^5.3.4", @@ -15464,6 +15465,14 @@ "url": "https://github.com/sponsors/kossnocorp" } }, + "node_modules/date-fns-tz": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/date-fns-tz/-/date-fns-tz-3.1.3.tgz", + "integrity": "sha512-ZfbMu+nbzW0mEzC8VZrLiSWvUIaI3aRHeq33mTe7Y38UctKukgqPR4nTDwcwS4d64Gf8GghnVsroBuMY3eiTeA==", + "peerDependencies": { + "date-fns": "^3.0.0" + } + }, "node_modules/dayjs": { "version": "1.11.11", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.11.tgz", @@ -15913,9 +15922,9 @@ } }, "node_modules/document-model-libs": { - "version": "1.84.0", - "resolved": "https://registry.npmjs.org/document-model-libs/-/document-model-libs-1.84.0.tgz", - "integrity": "sha512-v3dc9asjf+pvAPffubUb8Pr1R8ahPwKUU1/qIwLrlXbSJ4Rz3ctsvjcwW2z0uIiCZJPoLCRTE+VESIIAO5GiHQ==", + "version": "1.85.0", + "resolved": "https://registry.npmjs.org/document-model-libs/-/document-model-libs-1.85.0.tgz", + "integrity": "sha512-Km4CyqVOnhKnCpyww0afUFV4Wi/QTBI4aiVPDGEJvzN/EPX9OFVATiJzVXUNODprkLlNayDcQOjdjnDq6Ael1w==", "dependencies": { "@acaldas/graphql-codegen-typescript-validation-schema": "^0.12.3", "@graphql-codegen/core": "^4.0.2", @@ -24316,6 +24325,7 @@ }, "node_modules/npm/node_modules/@isaacs/cliui": { "version": "8.0.2", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24332,6 +24342,7 @@ }, "node_modules/npm/node_modules/@isaacs/cliui/node_modules/ansi-regex": { "version": "6.0.1", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -24343,11 +24354,13 @@ }, "node_modules/npm/node_modules/@isaacs/cliui/node_modules/emoji-regex": { "version": "9.2.2", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/@isaacs/cliui/node_modules/string-width": { "version": "5.1.2", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -24364,6 +24377,7 @@ }, "node_modules/npm/node_modules/@isaacs/cliui/node_modules/strip-ansi": { "version": "7.1.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -24378,11 +24392,13 @@ }, "node_modules/npm/node_modules/@isaacs/string-locale-compare": { "version": "1.1.0", + "dev": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/@npmcli/agent": { "version": "2.2.2", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24398,6 +24414,7 @@ }, "node_modules/npm/node_modules/@npmcli/arborist": { "version": "7.5.4", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24446,6 +24463,7 @@ }, "node_modules/npm/node_modules/@npmcli/config": { "version": "8.3.4", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24464,6 +24482,7 @@ }, "node_modules/npm/node_modules/@npmcli/fs": { "version": "3.1.1", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24475,6 +24494,7 @@ }, "node_modules/npm/node_modules/@npmcli/git": { "version": "5.0.8", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24494,6 +24514,7 @@ }, "node_modules/npm/node_modules/@npmcli/installed-package-contents": { "version": "2.1.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24509,6 +24530,7 @@ }, "node_modules/npm/node_modules/@npmcli/map-workspaces": { "version": "3.0.6", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24523,6 +24545,7 @@ }, "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { "version": "7.1.1", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24538,6 +24561,7 @@ }, "node_modules/npm/node_modules/@npmcli/name-from-folder": { "version": "2.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -24546,6 +24570,7 @@ }, "node_modules/npm/node_modules/@npmcli/node-gyp": { "version": "3.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -24554,6 +24579,7 @@ }, "node_modules/npm/node_modules/@npmcli/package-json": { "version": "5.2.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24571,6 +24597,7 @@ }, "node_modules/npm/node_modules/@npmcli/promise-spawn": { "version": "7.0.2", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24582,6 +24609,7 @@ }, "node_modules/npm/node_modules/@npmcli/query": { "version": "3.1.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24593,6 +24621,7 @@ }, "node_modules/npm/node_modules/@npmcli/redact": { "version": "2.0.1", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -24601,6 +24630,7 @@ }, "node_modules/npm/node_modules/@npmcli/run-script": { "version": "8.1.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24617,14 +24647,17 @@ }, "node_modules/npm/node_modules/@pkgjs/parseargs": { "version": "0.11.0", + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "engines": { "node": ">=14" } }, "node_modules/npm/node_modules/@sigstore/bundle": { "version": "2.3.2", + "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -24636,6 +24669,7 @@ }, "node_modules/npm/node_modules/@sigstore/core": { "version": "1.1.0", + "dev": true, "inBundle": true, "license": "Apache-2.0", "engines": { @@ -24644,6 +24678,7 @@ }, "node_modules/npm/node_modules/@sigstore/protobuf-specs": { "version": "0.3.2", + "dev": true, "inBundle": true, "license": "Apache-2.0", "engines": { @@ -24652,6 +24687,7 @@ }, "node_modules/npm/node_modules/@sigstore/sign": { "version": "2.3.2", + "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -24668,6 +24704,7 @@ }, "node_modules/npm/node_modules/@sigstore/tuf": { "version": "2.3.4", + "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -24680,6 +24717,7 @@ }, "node_modules/npm/node_modules/@sigstore/verify": { "version": "1.2.1", + "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -24693,6 +24731,7 @@ }, "node_modules/npm/node_modules/@tufjs/canonical-json": { "version": "2.0.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -24701,6 +24740,7 @@ }, "node_modules/npm/node_modules/@tufjs/models": { "version": "2.0.1", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -24713,6 +24753,7 @@ }, "node_modules/npm/node_modules/abbrev": { "version": "2.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -24721,6 +24762,7 @@ }, "node_modules/npm/node_modules/agent-base": { "version": "7.1.1", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -24732,6 +24774,7 @@ }, "node_modules/npm/node_modules/aggregate-error": { "version": "3.1.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -24744,6 +24787,7 @@ }, "node_modules/npm/node_modules/ansi-regex": { "version": "5.0.1", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -24752,6 +24796,7 @@ }, "node_modules/npm/node_modules/ansi-styles": { "version": "6.2.1", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -24763,21 +24808,25 @@ }, "node_modules/npm/node_modules/aproba": { "version": "2.0.0", + "dev": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/archy": { "version": "1.0.0", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/balanced-match": { "version": "1.0.2", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/bin-links": { "version": "4.0.4", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24792,6 +24841,7 @@ }, "node_modules/npm/node_modules/binary-extensions": { "version": "2.3.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -24803,6 +24853,7 @@ }, "node_modules/npm/node_modules/brace-expansion": { "version": "2.0.1", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -24811,6 +24862,7 @@ }, "node_modules/npm/node_modules/cacache": { "version": "18.0.3", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24833,6 +24885,7 @@ }, "node_modules/npm/node_modules/chalk": { "version": "5.3.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -24844,6 +24897,7 @@ }, "node_modules/npm/node_modules/chownr": { "version": "2.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -24852,6 +24906,7 @@ }, "node_modules/npm/node_modules/ci-info": { "version": "4.0.0", + "dev": true, "funding": [ { "type": "github", @@ -24866,6 +24921,7 @@ }, "node_modules/npm/node_modules/cidr-regex": { "version": "4.1.1", + "dev": true, "inBundle": true, "license": "BSD-2-Clause", "dependencies": { @@ -24877,6 +24933,7 @@ }, "node_modules/npm/node_modules/clean-stack": { "version": "2.2.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -24885,6 +24942,7 @@ }, "node_modules/npm/node_modules/cli-columns": { "version": "4.0.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -24897,6 +24955,7 @@ }, "node_modules/npm/node_modules/cmd-shim": { "version": "6.0.3", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -24905,6 +24964,7 @@ }, "node_modules/npm/node_modules/color-convert": { "version": "2.0.1", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -24916,16 +24976,19 @@ }, "node_modules/npm/node_modules/color-name": { "version": "1.1.4", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/common-ancestor-path": { "version": "1.0.1", + "dev": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/cross-spawn": { "version": "7.0.3", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -24939,6 +25002,7 @@ }, "node_modules/npm/node_modules/cross-spawn/node_modules/which": { "version": "2.0.2", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -24953,6 +25017,7 @@ }, "node_modules/npm/node_modules/cssesc": { "version": "3.0.0", + "dev": true, "inBundle": true, "license": "MIT", "bin": { @@ -24964,6 +25029,7 @@ }, "node_modules/npm/node_modules/debug": { "version": "4.3.5", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -24980,11 +25046,13 @@ }, "node_modules/npm/node_modules/debug/node_modules/ms": { "version": "2.1.2", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/diff": { "version": "5.2.0", + "dev": true, "inBundle": true, "license": "BSD-3-Clause", "engines": { @@ -24993,24 +25061,29 @@ }, "node_modules/npm/node_modules/eastasianwidth": { "version": "0.2.0", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/emoji-regex": { "version": "8.0.0", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/encoding": { "version": "0.1.13", + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "iconv-lite": "^0.6.2" } }, "node_modules/npm/node_modules/env-paths": { "version": "2.2.1", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -25019,16 +25092,19 @@ }, "node_modules/npm/node_modules/err-code": { "version": "2.0.3", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/exponential-backoff": { "version": "3.1.1", + "dev": true, "inBundle": true, "license": "Apache-2.0" }, "node_modules/npm/node_modules/fastest-levenshtein": { "version": "1.0.16", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -25037,6 +25113,7 @@ }, "node_modules/npm/node_modules/foreground-child": { "version": "3.2.1", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25052,6 +25129,7 @@ }, "node_modules/npm/node_modules/fs-minipass": { "version": "3.0.3", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25063,6 +25141,7 @@ }, "node_modules/npm/node_modules/glob": { "version": "10.4.2", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25085,11 +25164,13 @@ }, "node_modules/npm/node_modules/graceful-fs": { "version": "4.2.11", + "dev": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/hosted-git-info": { "version": "7.0.2", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25101,11 +25182,13 @@ }, "node_modules/npm/node_modules/http-cache-semantics": { "version": "4.1.1", + "dev": true, "inBundle": true, "license": "BSD-2-Clause" }, "node_modules/npm/node_modules/http-proxy-agent": { "version": "7.0.2", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -25118,6 +25201,7 @@ }, "node_modules/npm/node_modules/https-proxy-agent": { "version": "7.0.5", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -25130,8 +25214,10 @@ }, "node_modules/npm/node_modules/iconv-lite": { "version": "0.6.3", + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -25141,6 +25227,7 @@ }, "node_modules/npm/node_modules/ignore-walk": { "version": "6.0.5", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25152,6 +25239,7 @@ }, "node_modules/npm/node_modules/imurmurhash": { "version": "0.1.4", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -25160,6 +25248,7 @@ }, "node_modules/npm/node_modules/indent-string": { "version": "4.0.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -25168,6 +25257,7 @@ }, "node_modules/npm/node_modules/ini": { "version": "4.1.3", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -25176,6 +25266,7 @@ }, "node_modules/npm/node_modules/init-package-json": { "version": "6.0.3", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25193,6 +25284,7 @@ }, "node_modules/npm/node_modules/ip-address": { "version": "9.0.5", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -25205,6 +25297,7 @@ }, "node_modules/npm/node_modules/ip-regex": { "version": "5.0.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -25216,6 +25309,7 @@ }, "node_modules/npm/node_modules/is-cidr": { "version": "5.1.0", + "dev": true, "inBundle": true, "license": "BSD-2-Clause", "dependencies": { @@ -25227,6 +25321,7 @@ }, "node_modules/npm/node_modules/is-fullwidth-code-point": { "version": "3.0.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -25235,16 +25330,19 @@ }, "node_modules/npm/node_modules/is-lambda": { "version": "1.0.1", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/isexe": { "version": "2.0.0", + "dev": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/jackspeak": { "version": "3.4.0", + "dev": true, "inBundle": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -25262,11 +25360,13 @@ }, "node_modules/npm/node_modules/jsbn": { "version": "1.1.0", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/json-parse-even-better-errors": { "version": "3.0.2", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -25275,6 +25375,7 @@ }, "node_modules/npm/node_modules/json-stringify-nice": { "version": "1.1.4", + "dev": true, "inBundle": true, "license": "ISC", "funding": { @@ -25283,6 +25384,7 @@ }, "node_modules/npm/node_modules/jsonparse": { "version": "1.3.1", + "dev": true, "engines": [ "node >= 0.2.0" ], @@ -25291,16 +25393,19 @@ }, "node_modules/npm/node_modules/just-diff": { "version": "6.0.2", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/just-diff-apply": { "version": "5.5.0", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/libnpmaccess": { "version": "8.0.6", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25313,6 +25418,7 @@ }, "node_modules/npm/node_modules/libnpmdiff": { "version": "6.1.4", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25331,6 +25437,7 @@ }, "node_modules/npm/node_modules/libnpmexec": { "version": "8.1.3", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25351,6 +25458,7 @@ }, "node_modules/npm/node_modules/libnpmfund": { "version": "5.0.12", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25362,6 +25470,7 @@ }, "node_modules/npm/node_modules/libnpmhook": { "version": "10.0.5", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25374,6 +25483,7 @@ }, "node_modules/npm/node_modules/libnpmorg": { "version": "6.0.6", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25386,6 +25496,7 @@ }, "node_modules/npm/node_modules/libnpmpack": { "version": "7.0.4", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25400,6 +25511,7 @@ }, "node_modules/npm/node_modules/libnpmpublish": { "version": "9.0.9", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25418,6 +25530,7 @@ }, "node_modules/npm/node_modules/libnpmsearch": { "version": "7.0.6", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25429,6 +25542,7 @@ }, "node_modules/npm/node_modules/libnpmteam": { "version": "6.0.5", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25441,6 +25555,7 @@ }, "node_modules/npm/node_modules/libnpmversion": { "version": "6.0.3", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25456,6 +25571,7 @@ }, "node_modules/npm/node_modules/lru-cache": { "version": "10.2.2", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -25464,6 +25580,7 @@ }, "node_modules/npm/node_modules/make-fetch-happen": { "version": "13.0.1", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25486,6 +25603,7 @@ }, "node_modules/npm/node_modules/minimatch": { "version": "9.0.5", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25500,6 +25618,7 @@ }, "node_modules/npm/node_modules/minipass": { "version": "7.1.2", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -25508,6 +25627,7 @@ }, "node_modules/npm/node_modules/minipass-collect": { "version": "2.0.1", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25519,6 +25639,7 @@ }, "node_modules/npm/node_modules/minipass-fetch": { "version": "3.0.5", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -25535,6 +25656,7 @@ }, "node_modules/npm/node_modules/minipass-flush": { "version": "1.0.5", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25546,6 +25668,7 @@ }, "node_modules/npm/node_modules/minipass-flush/node_modules/minipass": { "version": "3.3.6", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25557,6 +25680,7 @@ }, "node_modules/npm/node_modules/minipass-pipeline": { "version": "1.2.4", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25568,6 +25692,7 @@ }, "node_modules/npm/node_modules/minipass-pipeline/node_modules/minipass": { "version": "3.3.6", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25579,6 +25704,7 @@ }, "node_modules/npm/node_modules/minipass-sized": { "version": "1.0.3", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25590,6 +25716,7 @@ }, "node_modules/npm/node_modules/minipass-sized/node_modules/minipass": { "version": "3.3.6", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25601,6 +25728,7 @@ }, "node_modules/npm/node_modules/minizlib": { "version": "2.1.2", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -25613,6 +25741,7 @@ }, "node_modules/npm/node_modules/minizlib/node_modules/minipass": { "version": "3.3.6", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25624,6 +25753,7 @@ }, "node_modules/npm/node_modules/mkdirp": { "version": "1.0.4", + "dev": true, "inBundle": true, "license": "MIT", "bin": { @@ -25635,11 +25765,13 @@ }, "node_modules/npm/node_modules/ms": { "version": "2.1.3", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/mute-stream": { "version": "1.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -25648,6 +25780,7 @@ }, "node_modules/npm/node_modules/negotiator": { "version": "0.6.3", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -25656,6 +25789,7 @@ }, "node_modules/npm/node_modules/node-gyp": { "version": "10.1.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -25679,6 +25813,7 @@ }, "node_modules/npm/node_modules/node-gyp/node_modules/proc-log": { "version": "3.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -25687,6 +25822,7 @@ }, "node_modules/npm/node_modules/nopt": { "version": "7.2.1", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25701,6 +25837,7 @@ }, "node_modules/npm/node_modules/normalize-package-data": { "version": "6.0.2", + "dev": true, "inBundle": true, "license": "BSD-2-Clause", "dependencies": { @@ -25714,6 +25851,7 @@ }, "node_modules/npm/node_modules/npm-audit-report": { "version": "5.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -25722,6 +25860,7 @@ }, "node_modules/npm/node_modules/npm-bundled": { "version": "3.0.1", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25733,6 +25872,7 @@ }, "node_modules/npm/node_modules/npm-install-checks": { "version": "6.3.0", + "dev": true, "inBundle": true, "license": "BSD-2-Clause", "dependencies": { @@ -25744,6 +25884,7 @@ }, "node_modules/npm/node_modules/npm-normalize-package-bin": { "version": "3.0.1", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -25752,6 +25893,7 @@ }, "node_modules/npm/node_modules/npm-package-arg": { "version": "11.0.2", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25766,6 +25908,7 @@ }, "node_modules/npm/node_modules/npm-packlist": { "version": "8.0.2", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25777,6 +25920,7 @@ }, "node_modules/npm/node_modules/npm-pick-manifest": { "version": "9.1.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25791,6 +25935,7 @@ }, "node_modules/npm/node_modules/npm-profile": { "version": "10.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25803,6 +25948,7 @@ }, "node_modules/npm/node_modules/npm-registry-fetch": { "version": "17.1.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25821,6 +25967,7 @@ }, "node_modules/npm/node_modules/npm-user-validate": { "version": "2.0.1", + "dev": true, "inBundle": true, "license": "BSD-2-Clause", "engines": { @@ -25829,6 +25976,7 @@ }, "node_modules/npm/node_modules/p-map": { "version": "4.0.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -25843,11 +25991,13 @@ }, "node_modules/npm/node_modules/package-json-from-dist": { "version": "1.0.0", + "dev": true, "inBundle": true, "license": "BlueOak-1.0.0" }, "node_modules/npm/node_modules/pacote": { "version": "18.0.6", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25878,6 +26028,7 @@ }, "node_modules/npm/node_modules/parse-conflict-json": { "version": "3.0.1", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25891,6 +26042,7 @@ }, "node_modules/npm/node_modules/path-key": { "version": "3.1.1", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -25899,6 +26051,7 @@ }, "node_modules/npm/node_modules/path-scurry": { "version": "1.11.1", + "dev": true, "inBundle": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -25914,6 +26067,7 @@ }, "node_modules/npm/node_modules/postcss-selector-parser": { "version": "6.1.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -25926,6 +26080,7 @@ }, "node_modules/npm/node_modules/proc-log": { "version": "4.2.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -25934,6 +26089,7 @@ }, "node_modules/npm/node_modules/proggy": { "version": "2.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -25942,6 +26098,7 @@ }, "node_modules/npm/node_modules/promise-all-reject-late": { "version": "1.0.1", + "dev": true, "inBundle": true, "license": "ISC", "funding": { @@ -25950,6 +26107,7 @@ }, "node_modules/npm/node_modules/promise-call-limit": { "version": "3.0.1", + "dev": true, "inBundle": true, "license": "ISC", "funding": { @@ -25958,11 +26116,13 @@ }, "node_modules/npm/node_modules/promise-inflight": { "version": "1.0.1", + "dev": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/promise-retry": { "version": "2.0.1", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -25975,6 +26135,7 @@ }, "node_modules/npm/node_modules/promzard": { "version": "1.0.2", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -25986,6 +26147,7 @@ }, "node_modules/npm/node_modules/qrcode-terminal": { "version": "0.12.0", + "dev": true, "inBundle": true, "bin": { "qrcode-terminal": "bin/qrcode-terminal.js" @@ -25993,6 +26155,7 @@ }, "node_modules/npm/node_modules/read": { "version": "3.0.1", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -26004,6 +26167,7 @@ }, "node_modules/npm/node_modules/read-cmd-shim": { "version": "4.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -26012,6 +26176,7 @@ }, "node_modules/npm/node_modules/read-package-json-fast": { "version": "3.0.2", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -26024,6 +26189,7 @@ }, "node_modules/npm/node_modules/retry": { "version": "0.12.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -26032,11 +26198,14 @@ }, "node_modules/npm/node_modules/safer-buffer": { "version": "2.1.2", + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/npm/node_modules/semver": { "version": "7.6.2", + "dev": true, "inBundle": true, "license": "ISC", "bin": { @@ -26048,6 +26217,7 @@ }, "node_modules/npm/node_modules/shebang-command": { "version": "2.0.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26059,6 +26229,7 @@ }, "node_modules/npm/node_modules/shebang-regex": { "version": "3.0.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -26067,6 +26238,7 @@ }, "node_modules/npm/node_modules/signal-exit": { "version": "4.1.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -26078,6 +26250,7 @@ }, "node_modules/npm/node_modules/sigstore": { "version": "2.3.1", + "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -26094,6 +26267,7 @@ }, "node_modules/npm/node_modules/smart-buffer": { "version": "4.2.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -26103,6 +26277,7 @@ }, "node_modules/npm/node_modules/socks": { "version": "2.8.3", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26116,6 +26291,7 @@ }, "node_modules/npm/node_modules/socks-proxy-agent": { "version": "8.0.4", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26129,6 +26305,7 @@ }, "node_modules/npm/node_modules/spdx-correct": { "version": "3.2.0", + "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -26138,6 +26315,7 @@ }, "node_modules/npm/node_modules/spdx-correct/node_modules/spdx-expression-parse": { "version": "3.0.1", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26147,11 +26325,13 @@ }, "node_modules/npm/node_modules/spdx-exceptions": { "version": "2.5.0", + "dev": true, "inBundle": true, "license": "CC-BY-3.0" }, "node_modules/npm/node_modules/spdx-expression-parse": { "version": "4.0.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26161,16 +26341,19 @@ }, "node_modules/npm/node_modules/spdx-license-ids": { "version": "3.0.18", + "dev": true, "inBundle": true, "license": "CC0-1.0" }, "node_modules/npm/node_modules/sprintf-js": { "version": "1.1.3", + "dev": true, "inBundle": true, "license": "BSD-3-Clause" }, "node_modules/npm/node_modules/ssri": { "version": "10.0.6", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -26182,6 +26365,7 @@ }, "node_modules/npm/node_modules/string-width": { "version": "4.2.3", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26196,6 +26380,7 @@ "node_modules/npm/node_modules/string-width-cjs": { "name": "string-width", "version": "4.2.3", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26209,6 +26394,7 @@ }, "node_modules/npm/node_modules/strip-ansi": { "version": "6.0.1", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26221,6 +26407,7 @@ "node_modules/npm/node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26232,6 +26419,7 @@ }, "node_modules/npm/node_modules/supports-color": { "version": "9.4.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -26243,6 +26431,7 @@ }, "node_modules/npm/node_modules/tar": { "version": "6.2.1", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -26259,6 +26448,7 @@ }, "node_modules/npm/node_modules/tar/node_modules/fs-minipass": { "version": "2.1.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -26270,6 +26460,7 @@ }, "node_modules/npm/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { "version": "3.3.6", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -26281,6 +26472,7 @@ }, "node_modules/npm/node_modules/tar/node_modules/minipass": { "version": "5.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -26289,16 +26481,19 @@ }, "node_modules/npm/node_modules/text-table": { "version": "0.2.0", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/tiny-relative-date": { "version": "1.3.0", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/treeverse": { "version": "3.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -26307,6 +26502,7 @@ }, "node_modules/npm/node_modules/tuf-js": { "version": "2.2.1", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26320,6 +26516,7 @@ }, "node_modules/npm/node_modules/unique-filename": { "version": "3.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -26331,6 +26528,7 @@ }, "node_modules/npm/node_modules/unique-slug": { "version": "4.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -26342,11 +26540,13 @@ }, "node_modules/npm/node_modules/util-deprecate": { "version": "1.0.2", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/validate-npm-package-license": { "version": "3.0.4", + "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -26356,6 +26556,7 @@ }, "node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { "version": "3.0.1", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26365,6 +26566,7 @@ }, "node_modules/npm/node_modules/validate-npm-package-name": { "version": "5.0.1", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -26373,11 +26575,13 @@ }, "node_modules/npm/node_modules/walk-up-path": { "version": "3.0.1", + "dev": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/which": { "version": "4.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -26392,6 +26596,7 @@ }, "node_modules/npm/node_modules/which/node_modules/isexe": { "version": "3.1.1", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -26400,6 +26605,7 @@ }, "node_modules/npm/node_modules/wrap-ansi": { "version": "8.1.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26417,6 +26623,7 @@ "node_modules/npm/node_modules/wrap-ansi-cjs": { "name": "wrap-ansi", "version": "7.0.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26433,6 +26640,7 @@ }, "node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { "version": "4.3.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26447,6 +26655,7 @@ }, "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-regex": { "version": "6.0.1", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -26458,11 +26667,13 @@ }, "node_modules/npm/node_modules/wrap-ansi/node_modules/emoji-regex": { "version": "9.2.2", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/wrap-ansi/node_modules/string-width": { "version": "5.1.2", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26479,6 +26690,7 @@ }, "node_modules/npm/node_modules/wrap-ansi/node_modules/strip-ansi": { "version": "7.1.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -26493,6 +26705,7 @@ }, "node_modules/npm/node_modules/write-file-atomic": { "version": "5.0.1", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -26505,6 +26718,7 @@ }, "node_modules/npm/node_modules/yallist": { "version": "4.0.0", + "dev": true, "inBundle": true, "license": "ISC" }, diff --git a/package.json b/package.json index 092cbfd7..bbbc7d2e 100644 --- a/package.json +++ b/package.json @@ -90,14 +90,14 @@ "xvfb-maybe": "^0.2.1" }, "dependencies": { - "@powerhousedao/design-system": "1.0.0-alpha.160", + "@powerhousedao/design-system": "1.0.0-alpha.166", "@sentry/react": "^7.109.0", "@sentry/vite-plugin": "^2.22.2", "@tanstack/react-virtual": "^3.8.1", "did-key-creator": "^1.2.0", "document-drive": "^1.0.0-alpha.92", "document-model": "^1.8.0", - "document-model-libs": "^1.84.0", + "document-model-libs": "^1.85.0", "electron-is-dev": "^3.0.1", "electron-squirrel-startup": "^1.0.0", "electron-store": "^8.1.0", From dd5995ccb5f0faaefd63970b422becab21430099 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 11 Sep 2024 20:14:31 +0000 Subject: [PATCH 81/90] chore(release): set `package.json` to 1.0.0-dev.104 [skip ci] # [1.0.0-dev.104](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.103...v1.0.0-dev.104) (2024-09-11) ### Features * update document-model-libs and design-system ([a4e971b](https://github.com/powerhouse-inc/document-model-electron/commit/a4e971b09dba190f1cdf5fdbf9c75fc9e0400fe9)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ee254a3c..eb5a0f3d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.0.0-dev.104](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.103...v1.0.0-dev.104) (2024-09-11) + + +### Features + +* update document-model-libs and design-system ([a4e971b](https://github.com/powerhouse-inc/document-model-electron/commit/a4e971b09dba190f1cdf5fdbf9c75fc9e0400fe9)) + # [1.0.0-dev.103](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.102...v1.0.0-dev.103) (2024-09-09) diff --git a/package.json b/package.json index bbbc7d2e..d3c572ae 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.103", + "version": "1.0.0-dev.104", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From 146c59eb5c56365e36cb28493a415ae531054e57 Mon Sep 17 00:00:00 2001 From: acaldas Date: Sat, 31 Aug 2024 09:37:56 +0100 Subject: [PATCH 82/90] feat: added support for read mode --- src/components/app.tsx | 17 +- src/context/read-mode.tsx | 201 +++++++++++++++++++++ src/hooks/useDocumentDriveServer.ts | 4 +- src/hooks/useDocumentDrives.ts | 10 +- src/hooks/useLoadInitialData.tsx | 8 +- src/hooks/useUiNodes.ts | 16 +- src/services/renown/index.ts | 16 +- src/store/document-drive.ts | 264 +++++++++++++++++++++++----- tsconfig.json | 3 +- vite.renderer.config.mts | 3 + 10 files changed, 467 insertions(+), 75 deletions(-) create mode 100644 src/context/read-mode.tsx diff --git a/src/components/app.tsx b/src/components/app.tsx index b80eabcc..00cc1086 100644 --- a/src/components/app.tsx +++ b/src/components/app.tsx @@ -7,6 +7,7 @@ import { useAtomValue } from 'jotai'; import React, { Suspense } from 'react'; import { ModalManager } from 'src/components/modal'; import { PHLogo } from 'src/components/ph-logo'; +import { ReadModeContextProvider } from 'src/context/read-mode'; import atoms from 'src/store'; const Router = React.lazy(async () => { @@ -28,13 +29,15 @@ export default ( {/* TODO loading */}}> - - - - - - - + + + + + + + + + diff --git a/src/context/read-mode.tsx b/src/context/read-mode.tsx new file mode 100644 index 00000000..534e3498 --- /dev/null +++ b/src/context/read-mode.tsx @@ -0,0 +1,201 @@ +import { + InferDocumentLocalState, + InferDocumentOperation, + InferDocumentState, + IReadMoveDriveServer, + ReadDocumentNotFoundError, + ReadDrive, + ReadDriveContext, + ReadDriveNotFoundError, + ReadDrivesListener, + ReadDrivesListenerUnsubscribe, + ReadDriveSlugNotFoundError, + RemoteDriveOptions, +} from 'document-drive'; +import { ListenerFilter } from 'document-model-libs/document-drive'; +import { Document, DocumentModel } from 'document-model/document'; +import { DocumentModelNotFoundError } from 'node_modules/document-drive/src/server/error'; +import { + createContext, + FC, + ReactNode, + useContext, + useEffect, + useMemo, + useState, +} from 'react'; +import { drivesToHash } from 'src/hooks/useDocumentDrives'; +import { logger } from 'src/services/logger'; +import { DefaultDocumentDriveServer } from 'src/utils/document-drive-server'; + +export interface IReadModeContext extends IReadMoveDriveServer { + readDrives: ReadDrive[]; + setDocumentDrive(documentDrive: IReadMoveDriveServer): void; +} + +// decorator method to ensure server is defined before calling it +function checkServer< + T extends IReadModeContext & { server: IReadMoveDriveServer | undefined }, + U extends any[], + R, +>( + target: any, + propertyKey: string, + descriptor: TypedPropertyDescriptor<(this: T, ...args: U) => any>, +): void { + const originalMethod = descriptor.value!; + + descriptor.value = function (this: T, ...args: U): any { + if (!this.server) { + throw new Error('Read mode document drive not initialized.'); + } + return originalMethod.apply(this, args) as T; + }; +} + +function bindClassMethods(instance: any) { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + const prototype = Object.getPrototypeOf(instance); + const propertyNames = Object.getOwnPropertyNames(prototype); + + propertyNames.forEach(name => { + const descriptor = Object.getOwnPropertyDescriptor(prototype, name); + if ( + descriptor && + typeof descriptor.value === 'function' && + name !== 'constructor' + ) { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access + instance[name] = instance[name].bind(instance); + } + }); +} + +class ReadModeContextImpl implements Omit { + private server?: IReadMoveDriveServer; + + constructor(documentDrive?: IReadMoveDriveServer) { + bindClassMethods(this); + this.server = documentDrive; + } + + setDocumentDrive(documentDrive: IReadMoveDriveServer) { + this.server = documentDrive; + } + + /* eslint-disable @typescript-eslint/no-non-null-assertion */ + @checkServer + migrateReadDrive(id: string, options: RemoteDriveOptions) { + return this.server!.migrateReadDrive(id, options); + } + + @checkServer + addReadDrive(url: string, filter?: ListenerFilter) { + return this.server!.addReadDrive(url, filter); + } + + @checkServer + getReadDrives(): Promise { + return this.server!.getReadDrives(); + } + + @checkServer + getReadDriveBySlug( + slug: string, + ): Promise { + return this.server!.getReadDriveBySlug(slug); + } + + @checkServer + getReadDrive(id: string): Promise { + return this.server!.getReadDrive(id); + } + + @checkServer + getReadDriveContext( + id: string, + ): Promise { + return this.server!.getReadDriveContext(id); + } + + @checkServer + fetchDrive(id: string): Promise { + return this.server!.fetchDrive(id); + } + + @checkServer + fetchDocument( + driveId: string, + documentId: string, + documentType: DocumentModel< + InferDocumentState, + InferDocumentOperation, + InferDocumentLocalState + >['documentModel']['id'], + ): Promise< + | Document< + InferDocumentState, + InferDocumentOperation, + InferDocumentLocalState + > + | DocumentModelNotFoundError + | ReadDriveNotFoundError + | ReadDocumentNotFoundError + > { + return this.server!.fetchDocument(driveId, documentId, documentType); + } + + @checkServer + deleteReadDrive(id: string): Promise { + return this.server!.deleteReadDrive(id); + } + + @checkServer + onReadDrivesUpdate( + listener: ReadDrivesListener, + ): Promise { + return this.server!.onReadDrivesUpdate(listener); + } + /* eslint-enable @typescript-eslint/no-non-null-assertion */ +} + +const ReadModeInstance = new ReadModeContextImpl(DefaultDocumentDriveServer); + +export const ReadModeContext = createContext({ + ...(ReadModeInstance as Omit), + readDrives: [], +}); + +export interface ReadModeContextProviderProps { + children: ReactNode; +} + +export const ReadModeContextProvider: FC< + ReadModeContextProviderProps +> = props => { + const [readDrives, setReadDrives] = useState([]); + + useEffect(() => { + const unsubscribe = ReadModeInstance.onReadDrivesUpdate(newDrives => { + setReadDrives(readDrives => + readDrives.length !== newDrives.length || + drivesToHash(readDrives) !== drivesToHash(newDrives) + ? newDrives + : readDrives, + ); + }).catch(logger.error); + return () => { + unsubscribe.then(unsub => unsub?.()).catch(logger.error); + }; + }, []); + + const context = useMemo(() => { + return { + ...(ReadModeInstance as Omit), + readDrives, + }; + }, [readDrives]); + + return ; +}; +export const useReadModeContext = () => useContext(ReadModeContext); diff --git a/src/hooks/useDocumentDriveServer.ts b/src/hooks/useDocumentDriveServer.ts index 79fd2c3d..c443db8f 100644 --- a/src/hooks/useDocumentDriveServer.ts +++ b/src/hooks/useDocumentDriveServer.ts @@ -508,8 +508,8 @@ export function useDocumentDriveServer( ); const deleteDrive = useCallback( - async (id: string) => { - if (!isAllowedToCreateDocuments) { + async (id: string, force = false) => { + if (!force && !isAllowedToCreateDocuments) { throw new Error('User is not allowed to delete drives'); } if (!server) { diff --git a/src/hooks/useDocumentDrives.ts b/src/hooks/useDocumentDrives.ts index b307e05a..04190dd5 100644 --- a/src/hooks/useDocumentDrives.ts +++ b/src/hooks/useDocumentDrives.ts @@ -1,6 +1,6 @@ import type { IDocumentDriveServer } from 'document-drive/server'; import { DocumentDriveDocument } from 'document-model-libs/document-drive'; -import { OperationScope } from 'document-model/document'; +import { Document, OperationScope } from 'document-model/document'; import { atom, useAtom } from 'jotai'; import { atomFamily } from 'jotai/utils'; import { useCallback, useMemo } from 'react'; @@ -12,17 +12,17 @@ const documentDrivesAtom = atom( new Map(), ); -function driveToHash(drive: DocumentDriveDocument): string { +export function documentToHash(drive: Document): string { return Object.keys(drive.operations) .map( key => - `${key}:d${drive.operations[key as OperationScope].at(-1)?.hash}`, + `${key}:${drive.operations[key as OperationScope].length}:${drive.operations[key as OperationScope].at(-1)?.hash}`, ) .join(':'); } -function drivesToHash(drives: DocumentDriveDocument[]): string { - return drives.map(driveToHash).join('&'); +export function drivesToHash(drives: DocumentDriveDocument[]): string { + return drives.map(documentToHash).join('&'); } // creates a derived atom that encapsulates the Map of Document Drives diff --git a/src/hooks/useLoadInitialData.tsx b/src/hooks/useLoadInitialData.tsx index f0849f56..fe0f708b 100644 --- a/src/hooks/useLoadInitialData.tsx +++ b/src/hooks/useLoadInitialData.tsx @@ -11,6 +11,7 @@ import { TFunction } from 'i18next'; import { useCallback, useEffect, useRef } from 'react'; import { useTranslation } from 'react-i18next'; import { ReloadConnectToast } from 'src/components/toast/reload-connect-toast'; +import { useReadModeContext } from 'src/context/read-mode'; import { useUiNodes } from 'src/hooks/useUiNodes'; import { DefaultDocumentDriveServer as server } from 'src/utils/document-drive-server'; import { useClientErrorHandler } from './useClientErrorHandler'; @@ -29,6 +30,7 @@ export const useLoadInitialData = () => { const prevDrivesState = useRef([...driveNodes]); const drivesWithError = useRef([]); const [, , serverSubscribeUpdates] = useDocumentDrives(server); + const { readDrives } = useReadModeContext(); const clientErrorHandler = useClientErrorHandler(); async function checkLatestVersion() { @@ -123,8 +125,10 @@ export const useLoadInitialData = () => { ); useEffect(() => { - updateUiDriveNodes(documentDrives).catch(console.error); - }, [documentDrives, updateUiDriveNodes]); + updateUiDriveNodes(readDrives.concat(documentDrives)).catch( + console.error, + ); + }, [documentDrives, readDrives, updateUiDriveNodes]); useEffect(() => { const unsub = onSyncStatus(() => updateUiDriveNodes(documentDrives)); diff --git a/src/hooks/useUiNodes.ts b/src/hooks/useUiNodes.ts index 01b8a7c4..1540623f 100644 --- a/src/hooks/useUiNodes.ts +++ b/src/hooks/useUiNodes.ts @@ -16,10 +16,12 @@ import { UiNode, useUiNodesContext, } from '@powerhousedao/design-system'; +import { ReadDrive } from 'document-drive'; import { DocumentDriveDocument } from 'document-model-libs/document-drive'; import { useCallback, useMemo } from 'react'; import { useTranslation } from 'react-i18next'; import { useModal } from 'src/components/modal'; +import { useReadModeContext } from 'src/context/read-mode'; import { useFileNodeDocument } from 'src/store/document-drive'; import { useFilteredDocumentModels, @@ -43,6 +45,7 @@ export function useUiNodes() { setSelectedNode, getParentNode, } = uiNodesContext; + const readModeContext = useReadModeContext(); const documentDriveServer = useDocumentDriveServer(); const { addFolder, @@ -71,18 +74,23 @@ export function useUiNodes() { const fileNodeDocument = useFileNodeDocument({ ...uiNodesContext, ...documentDriveServer, + ...readModeContext, }); const makeUiDriveNode = useCallback( - async (drive: DocumentDriveDocument) => { + async (drive: DocumentDriveDocument | ReadDrive) => { + const isReadDrive = 'readContext' in drive; const { id, name, icon, slug } = drive.state.global; - const { sharingType: _sharingType, availableOffline } = - drive.state.local; + const { sharingType: _sharingType, availableOffline } = !isReadDrive + ? drive.state.local + : { sharingType: PUBLIC, availableOffline: false }; const __sharingType = _sharingType?.toUpperCase(); const sharingType = ( __sharingType === 'PRIVATE' ? LOCAL : __sharingType ) as SharingType; - const driveSyncStatus = await getSyncStatus(id, sharingType); + const driveSyncStatus = !isReadDrive + ? await getSyncStatus(id, sharingType) + : undefined; // TODO: rempve this after integration in design-system const normalizedDriveSyncStatus = diff --git a/src/services/renown/index.ts b/src/services/renown/index.ts index e9db5320..e2b8c395 100644 --- a/src/services/renown/index.ts +++ b/src/services/renown/index.ts @@ -66,12 +66,16 @@ export class Renown { credential, }; - try { - const ens = await getEnsInfo(user.address, user.chainId); - user.ens = ens; - } catch (error) { - console.error(error); - } + getEnsInfo(user.address, user.chainId) + .then(ens => { + if ( + this.user?.address === user.address && + this.user.chainId === user.chainId + ) { + this.#updateUser({ ...this.user, ens }); + } + }) + .catch(logger.error); this.#updateUser(user); return user; diff --git a/src/store/document-drive.ts b/src/store/document-drive.ts index 3021e330..111dca6f 100644 --- a/src/store/document-drive.ts +++ b/src/store/document-drive.ts @@ -1,7 +1,12 @@ import { FILE, TUiNodesContext } from '@powerhousedao/design-system'; import { Document, Operation } from 'document-model/document'; -import { useCallback, useEffect, useMemo, useState } from 'react'; +import { atom, useAtom, useAtomValue } from 'jotai'; +import { selectAtom } from 'jotai/utils'; +import { useCallback, useEffect, useMemo } from 'react'; +import { IReadModeContext } from 'src/context/read-mode'; +import { documentToHash } from 'src/hooks/useDocumentDrives'; import { TDocumentDriveServer } from 'src/hooks/useDocumentDriveServer'; +import { logger } from 'src/services/logger'; function debounceOperations( callback: (operations: Operation[]) => Promise, @@ -43,74 +48,237 @@ function debounceOperations( }; } +type FileNodeDocument = + | { + driveId: string; + documentId: string; + documentType: string; + document: Document | undefined; + status: 'LOADING' | 'ERROR'; + } + | { + driveId: string; + documentId: string; + documentType: string; + document: Document; + status: 'LOADED'; + } + | undefined; + +const documentCacheAtom = atom(new Map()); + +const singletonFileNodeDocumentAtom = atom( + undefined, +); +const fileNodeDocumentAtom = atom( + get => get(singletonFileNodeDocumentAtom), + (get, set, newValue: FileNodeDocument) => { + const currentValue = get(singletonFileNodeDocumentAtom); + + // if document will be loaded then sets + // the cached version while it loads + const documentCache = get(documentCacheAtom); + if (!newValue?.document && newValue?.status === 'LOADING') { + newValue.document = documentCache.get( + `${newValue.driveId}:${newValue.documentId}`, + ); + } + + // only change if the provided file node is different + if ( + currentValue?.driveId !== newValue?.driveId || + currentValue?.documentId !== newValue?.documentId || + currentValue?.documentType !== newValue?.documentType || + currentValue?.status !== newValue?.status || + !!currentValue?.document !== !!newValue?.document || + (currentValue?.document && + newValue?.document && + documentToHash(currentValue.document) !== + documentToHash(newValue.document)) + ) { + // if document has been fetched then updates the cache + if (newValue?.status === 'LOADED') { + documentCache.set( + `${newValue.driveId}:${newValue.documentId}`, + newValue.document, + ); + } + + set(singletonFileNodeDocumentAtom, newValue); + return true; + } + + return false; + }, +); + +const selectedDocumentAtom = selectAtom( + fileNodeDocumentAtom, + fileNode => fileNode?.document, +); + export function useFileNodeDocument( - props: TUiNodesContext & TDocumentDriveServer, + props: TUiNodesContext & TDocumentDriveServer & IReadModeContext, ) { - const { selectedNode, openFile, addOperations, onStrandUpdate } = props; - const [selectedDocument, setSelectedDocument] = useState< - Document | undefined - >(); + const { + selectedNode, + selectedDriveNode, + openFile, + addOperations, + onStrandUpdate, + fetchDocument: fetchReadDocument, + } = props; + const [fileNodeDocument, setFileNodeDocument] = + useAtom(fileNodeDocumentAtom); + const isReadMode = selectedDriveNode?.syncStatus === undefined; + const driveId = selectedNode?.driveId; + const documentId = selectedNode?.id; + const kind = selectedNode?.kind; + const documentType = + kind === 'FILE' ? selectedNode?.documentType : undefined; - const fetchDocument = useCallback(async () => { - if (selectedNode?.kind !== FILE) { - return; - } - try { - const document = await openFile( - selectedNode.driveId, - selectedNode.id, - ); - setSelectedDocument(document); - } catch (error) { - setSelectedDocument(undefined); - console.error(error); + const selectedDocument = useAtomValue(selectedDocumentAtom); + const setSelectedDocument = useMemo(() => { + function setSelectedDocument(document: Document | undefined) { + if (!document) { + setFileNodeDocument(undefined); + } else if (fileNodeDocument) { + setFileNodeDocument({ ...fileNodeDocument, document }); + } else { + throw new Error('fileNodeDocument is undefined'); + } } - }, [openFile, selectedNode?.driveId, selectedNode?.id, selectedNode?.kind]); + return setSelectedDocument; + }, [fileNodeDocument, setFileNodeDocument]); + + const fetchDocument = useCallback( + async (driveId: string, id: string, documentType: string) => { + try { + const document = await (isReadMode + ? fetchReadDocument(driveId, id, documentType) + : openFile(driveId, id)); + if (document instanceof Error) { + throw document; + } + return document; + } catch (error) { + logger.error(error); + return undefined; + } + }, + [fetchReadDocument, isReadMode, openFile], + ); useEffect(() => { - let handler: (() => void) | undefined = undefined; - if (selectedNode?.kind === FILE) { - handler = onStrandUpdate(strand => { + // if selected node is undefine then clears fileNodeDocument + if (!driveId || !documentId || !documentType) { + if (fileNodeDocument) { + setFileNodeDocument(undefined); + } + return; + } + + // if selectedNode changes then fetches fileNodeDocument + if ( + driveId !== fileNodeDocument?.driveId || + documentId !== fileNodeDocument.documentId || + documentType !== fileNodeDocument.documentType + ) { + const changed = setFileNodeDocument({ + driveId, + documentId, + documentType, + document: undefined, + status: 'LOADING', + }); + + // if the selected file node didn't change then does nothing + if (!changed) { + return; + } + fetchDocument(driveId, documentId, documentType) + .then(document => + setFileNodeDocument( + document + ? { + driveId, + documentId, + documentType, + document, + status: 'LOADED', + } + : { + driveId, + documentId, + documentType, + document, + status: 'ERROR', + }, + ), + ) + .catch(error => { + logger.error(error); + setFileNodeDocument({ + driveId, + documentId, + documentType, + document: undefined, + status: 'ERROR', + }); + }); + + // watches for strand updates to update the document + const handler = onStrandUpdate(strand => { if ( - strand.driveId === selectedNode.driveId && - strand.documentId === selectedNode.id + strand.driveId === driveId && + strand.documentId === documentId ) { - fetchDocument().catch(console.error); + fetchDocument(driveId, documentId, documentType) + .then(setSelectedDocument) + .catch(logger.error); } }); - fetchDocument().catch(console.error); - } else { - setSelectedDocument(undefined); - } - return () => { - handler?.(); - }; - }, [fetchDocument, onStrandUpdate, selectedNode]); + return () => { + handler(); + }; + } + }, [ + selectedNode, + documentId, + documentType, + driveId, + fetchDocument, + fileNodeDocument, + onStrandUpdate, + setFileNodeDocument, + setSelectedDocument, + ]); const addOperationToSelectedDocument = useMemo(() => { - if (selectedNode?.kind === FILE) { + if (driveId && documentId && kind === FILE) { return debounceOperations(operations => - addOperations( - selectedNode.driveId, - selectedNode.id, - operations, - ), + addOperations(driveId, documentId, operations), ); } - }, [ - addOperations, - selectedNode?.driveId, - selectedNode?.id, - selectedNode?.kind, - ]); + }, [addOperations, driveId, documentId, kind]); + + const isSelectedDocument = + kind === FILE && + fileNodeDocument?.driveId === driveId && + fileNodeDocument?.documentId === documentId; return useMemo( () => ({ - selectedDocument, + selectedDocument: isSelectedDocument ? selectedDocument : undefined, setSelectedDocument, addOperationToSelectedDocument, }), - [selectedDocument, setSelectedDocument, addOperationToSelectedDocument], + [ + isSelectedDocument, + selectedDocument, + setSelectedDocument, + addOperationToSelectedDocument, + ], ); } diff --git a/tsconfig.json b/tsconfig.json index 7b026830..9d552492 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -22,7 +22,8 @@ "@/assets": ["assets"], "connect-config": ["src/connect.config.ts"], }, - "types": ["vite/client", "vite-plugin-svgr/client", "@types/wicg-file-system-access"] + "types": ["vite/client", "vite-plugin-svgr/client", "@types/wicg-file-system-access"], + "experimentalDecorators": true }, "include": [ "src", diff --git a/vite.renderer.config.mts b/vite.renderer.config.mts index 1ed5728c..1d7fe1bc 100644 --- a/vite.renderer.config.mts +++ b/vite.renderer.config.mts @@ -89,6 +89,9 @@ export default defineConfig(({ mode }) => { react({ include: 'src/**/*.tsx', babel: { + parserOpts: { + plugins: ['decorators'], + }, plugins: isProd ? [] : [jotaiDebugLabel, jotaiReactRefresh], }, }), From 0cdb778f5721c031e24304505ca8ef4819304e11 Mon Sep 17 00:00:00 2001 From: acaldas Date: Wed, 11 Sep 2024 13:16:08 +0100 Subject: [PATCH 83/90] feat: updated default drives handling --- src/context/read-mode.tsx | 40 ++++++++++++++++++++++++----- src/hooks/useDocumentDriveServer.ts | 5 ++-- src/hooks/useLoadInitialData.tsx | 3 ++- src/utils/reactor.ts | 33 ++++++++++++++---------- 4 files changed, 58 insertions(+), 23 deletions(-) diff --git a/src/context/read-mode.tsx b/src/context/read-mode.tsx index 534e3498..c36bfbff 100644 --- a/src/context/read-mode.tsx +++ b/src/context/read-mode.tsx @@ -1,8 +1,9 @@ import { + IDocumentDriveServer, InferDocumentLocalState, InferDocumentOperation, InferDocumentState, - IReadMoveDriveServer, + IReadModeDriveServer, ReadDocumentNotFoundError, ReadDrive, ReadDriveContext, @@ -25,17 +26,18 @@ import { useState, } from 'react'; import { drivesToHash } from 'src/hooks/useDocumentDrives'; +import { useUserPermissions } from 'src/hooks/useUserPermissions'; import { logger } from 'src/services/logger'; import { DefaultDocumentDriveServer } from 'src/utils/document-drive-server'; -export interface IReadModeContext extends IReadMoveDriveServer { +export interface IReadModeContext extends IReadModeDriveServer { readDrives: ReadDrive[]; - setDocumentDrive(documentDrive: IReadMoveDriveServer): void; + setDocumentDrive(documentDrive: IReadModeDriveServer): void; } // decorator method to ensure server is defined before calling it function checkServer< - T extends IReadModeContext & { server: IReadMoveDriveServer | undefined }, + T extends IReadModeContext & { server: IReadModeDriveServer | undefined }, U extends any[], R, >( @@ -72,14 +74,18 @@ function bindClassMethods(instance: any) { } class ReadModeContextImpl implements Omit { - private server?: IReadMoveDriveServer; + private server?: IReadModeDriveServer; - constructor(documentDrive?: IReadMoveDriveServer) { + constructor(documentDrive?: IReadModeDriveServer) { bindClassMethods(this); this.server = documentDrive; } - setDocumentDrive(documentDrive: IReadMoveDriveServer) { + getServer(): IReadModeDriveServer | undefined { + return this.server; + } + + setDocumentDrive(documentDrive: IReadModeDriveServer) { this.server = documentDrive; } @@ -156,6 +162,7 @@ class ReadModeContextImpl implements Omit { ): Promise { return this.server!.onReadDrivesUpdate(listener); } + /* eslint-enable @typescript-eslint/no-non-null-assertion */ } @@ -175,6 +182,25 @@ export const ReadModeContextProvider: FC< > = props => { const [readDrives, setReadDrives] = useState([]); + const { isAllowedToCreateDocuments, isAllowedToEditDocuments } = + useUserPermissions(); + + // updates drive access level when user permissions change + const readMode = !(isAllowedToCreateDocuments || isAllowedToEditDocuments); + useMemo(() => { + const accessLevel = readMode ? 'READ' : 'WRITE'; + const server = ReadModeInstance.getServer(); + if ( + server && + typeof (server as IDocumentDriveServer) + .setAllDefaultDrivesAccessLevel === 'function' + ) { + (server as IDocumentDriveServer) + .setAllDefaultDrivesAccessLevel(accessLevel) + .catch(logger.error); + } + }, [readMode]); + useEffect(() => { const unsubscribe = ReadModeInstance.onReadDrivesUpdate(newDrives => { setReadDrives(readDrives => diff --git a/src/hooks/useDocumentDriveServer.ts b/src/hooks/useDocumentDriveServer.ts index c443db8f..2918f40b 100644 --- a/src/hooks/useDocumentDriveServer.ts +++ b/src/hooks/useDocumentDriveServer.ts @@ -38,8 +38,9 @@ import { useConnectCrypto, useConnectDid } from './useConnectCrypto'; import { useDocumentDrives } from './useDocumentDrives'; import { useUserPermissions } from './useUserPermissions'; -export const FILE_UPLOAD_OPERATIONS_CHUNK_SIZE = - parseInt(import.meta.env.FILE_UPLOAD_OPERATIONS_CHUNK_SIZE as string) || 50; +export const FILE_UPLOAD_OPERATIONS_CHUNK_SIZE = parseInt( + (import.meta.env.FILE_UPLOAD_OPERATIONS_CHUNK_SIZE as string) || '50', +); // TODO this should be added to the document model export interface SortOptions { diff --git a/src/hooks/useLoadInitialData.tsx b/src/hooks/useLoadInitialData.tsx index fe0f708b..d45d6c6f 100644 --- a/src/hooks/useLoadInitialData.tsx +++ b/src/hooks/useLoadInitialData.tsx @@ -125,7 +125,8 @@ export const useLoadInitialData = () => { ); useEffect(() => { - updateUiDriveNodes(readDrives.concat(documentDrives)).catch( + const drives: DocumentDriveDocument[] = [...readDrives, ...documentDrives]; + updateUiDriveNodes(drives).catch( console.error, ); }, [documentDrives, readDrives, updateUiDriveNodes]); diff --git a/src/utils/reactor.ts b/src/utils/reactor.ts index 5661bd89..84bc6f3f 100644 --- a/src/utils/reactor.ts +++ b/src/utils/reactor.ts @@ -1,4 +1,7 @@ -import { DocumentDriveServerOptions } from 'document-drive/server'; +import { + DefaultRemoteDriveInput, + DocumentDriveServerOptions, +} from 'document-drive/server'; const DEFAULT_DRIVES_URL = import.meta.env.PH_CONNECT_DEFAULT_DRIVES_URL || undefined; @@ -8,12 +11,13 @@ const defaultDrivesUrl = DEFAULT_DRIVES_URL export const getReactorDefaultDrivesConfig = (): Pick< DocumentDriveServerOptions, - 'defaultRemoteDrives' | 'removeOldRemoteDrives' + 'defaultDrives' > => { - const defaultDrives: DocumentDriveServerOptions['defaultRemoteDrives'] = - defaultDrivesUrl.map(driveUrl => ({ + const remoteDrives: DefaultRemoteDriveInput[] = defaultDrivesUrl.map( + driveUrl => ({ url: driveUrl, options: { + accessLevel: 'READ', sharingType: 'PUBLIC', availableOffline: true, listeners: [ @@ -38,16 +42,19 @@ export const getReactorDefaultDrivesConfig = (): Pick< triggers: [], pullInterval: 3000, }, - })); + }), + ); return { - defaultRemoteDrives: defaultDrives, - removeOldRemoteDrives: - defaultDrivesUrl.length > 0 - ? { - strategy: 'preserve-by-url', - urls: defaultDrivesUrl, - } - : { strategy: 'preserve-all' }, + defaultDrives: { + remoteDrives, + removeOldRemoteDrives: + defaultDrivesUrl.length > 0 + ? { + strategy: 'preserve-by-url', + urls: defaultDrivesUrl, + } + : { strategy: 'preserve-all' }, + }, }; }; From 16c07e641c7beafa4639b1caf0f5532ec2532fa6 Mon Sep 17 00:00:00 2001 From: acaldas Date: Wed, 11 Sep 2024 16:20:11 +0100 Subject: [PATCH 84/90] feat: updated document drive --- package-lock.json | 9 +++++---- package.json | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5efe2d91..8a1da39e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "@sentry/vite-plugin": "^2.22.2", "@tanstack/react-virtual": "^3.8.1", "did-key-creator": "^1.2.0", - "document-drive": "^1.0.0-alpha.92", + "document-drive": "^1.0.0-alpha.93", "document-model": "^1.8.0", "document-model-libs": "^1.85.0", "electron-is-dev": "^3.0.1", @@ -15882,10 +15882,11 @@ } }, "node_modules/document-drive": { - "version": "1.0.0-alpha.92", - "resolved": "https://registry.npmjs.org/document-drive/-/document-drive-1.0.0-alpha.92.tgz", - "integrity": "sha512-fBtlSBldSvrrZFdqaPm/Ha13iHg0uwKk38CvZEhq7uDDmEV0ktfw038djwjFIDlr+uRISL43n3S7WAnzrVhCjw==", + "version": "1.0.0-alpha.93", + "resolved": "https://registry.npmjs.org/document-drive/-/document-drive-1.0.0-alpha.93.tgz", + "integrity": "sha512-x7VWi8A/oHngsXKU6stR5DrDPGXK1Ln4B2O2HSeJ5IkNZt7COkzcF9/uV+sbRNL+NbMzJG8jTUPebRj4XyPJiw==", "dependencies": { + "change-case": "^5.4.4", "exponential-backoff": "^3.1.1", "graphql": "^16.9.0", "graphql-request": "^6.1.0", diff --git a/package.json b/package.json index d3c572ae..9c5fb42e 100644 --- a/package.json +++ b/package.json @@ -95,7 +95,7 @@ "@sentry/vite-plugin": "^2.22.2", "@tanstack/react-virtual": "^3.8.1", "did-key-creator": "^1.2.0", - "document-drive": "^1.0.0-alpha.92", + "document-drive": "^1.0.0-alpha.93", "document-model": "^1.8.0", "document-model-libs": "^1.85.0", "electron-is-dev": "^3.0.1", From 4a511dd320343bd5899eab2c7c9175af41629c3e Mon Sep 17 00:00:00 2001 From: acaldas Date: Wed, 11 Sep 2024 16:20:11 +0100 Subject: [PATCH 85/90] feat: updated document drive --- src/context/read-mode.tsx | 21 ++++++++++++++++++--- src/hooks/useLoadInitialData.tsx | 10 +++++----- src/hooks/useUiNodes.ts | 10 ++++++---- 3 files changed, 29 insertions(+), 12 deletions(-) diff --git a/src/context/read-mode.tsx b/src/context/read-mode.tsx index c36bfbff..19056384 100644 --- a/src/context/read-mode.tsx +++ b/src/context/read-mode.tsx @@ -13,7 +13,6 @@ import { ReadDriveSlugNotFoundError, RemoteDriveOptions, } from 'document-drive'; -import { ListenerFilter } from 'document-model-libs/document-drive'; import { Document, DocumentModel } from 'document-model/document'; import { DocumentModelNotFoundError } from 'node_modules/document-drive/src/server/error'; import { @@ -96,8 +95,8 @@ class ReadModeContextImpl implements Omit { } @checkServer - addReadDrive(url: string, filter?: ListenerFilter) { - return this.server!.addReadDrive(url, filter); + addReadDrive(url: string, options?: RemoteDriveOptions) { + return this.server!.addReadDrive(url, options); } @checkServer @@ -177,6 +176,18 @@ export interface ReadModeContextProviderProps { children: ReactNode; } +async function getReadDrives( + instance: ReadModeContextImpl, +): Promise { + const driveIds = await instance.getReadDrives(); + const drives = await Promise.all( + driveIds.map(id => instance.getReadDrive(id)), + ); + return drives.filter( + drive => !(drive instanceof ReadDriveNotFoundError), + ) as ReadDrive[]; +} + export const ReadModeContextProvider: FC< ReadModeContextProviderProps > = props => { @@ -202,6 +213,10 @@ export const ReadModeContextProvider: FC< }, [readMode]); useEffect(() => { + getReadDrives(ReadModeInstance) + .then(drives => setReadDrives(drives)) + .catch(logger.error); + const unsubscribe = ReadModeInstance.onReadDrivesUpdate(newDrives => { setReadDrives(readDrives => readDrives.length !== newDrives.length || diff --git a/src/hooks/useLoadInitialData.tsx b/src/hooks/useLoadInitialData.tsx index d45d6c6f..b3dae0ae 100644 --- a/src/hooks/useLoadInitialData.tsx +++ b/src/hooks/useLoadInitialData.tsx @@ -123,12 +123,12 @@ export const useLoadInitialData = () => { }, [makeUiDriveNodes, setDriveNodes], ); - useEffect(() => { - const drives: DocumentDriveDocument[] = [...readDrives, ...documentDrives]; - updateUiDriveNodes(drives).catch( - console.error, - ); + const drives: DocumentDriveDocument[] = [ + ...readDrives, + ...documentDrives, + ]; + updateUiDriveNodes(drives).catch(console.error); }, [documentDrives, readDrives, updateUiDriveNodes]); useEffect(() => { diff --git a/src/hooks/useUiNodes.ts b/src/hooks/useUiNodes.ts index 1540623f..cd291ce9 100644 --- a/src/hooks/useUiNodes.ts +++ b/src/hooks/useUiNodes.ts @@ -144,10 +144,12 @@ export function useUiNodes() { for await (const node of nodes) { if (node.kind === FILE) { - const fileSyncStatus = await getSyncStatus( - node.synchronizationUnits[0].syncId, - sharingType, - ); + const fileSyncStatus = !isReadDrive + ? await getSyncStatus( + node.synchronizationUnits[0].syncId, + sharingType, + ) + : undefined; // TODO: rempve this after integration in design-system const normalizedFileSyncStatus = From cfdfa01895e2b31dd027b2818c5761f56c23c2d7 Mon Sep 17 00:00:00 2001 From: acaldas Date: Wed, 11 Sep 2024 21:06:42 +0100 Subject: [PATCH 86/90] feat: show loading editor while document is being fetched --- package-lock.json | 2685 ++++++++++++--------------- package.json | 4 +- src/components/editors.tsx | 61 +- src/context/read-mode.tsx | 18 +- src/hooks/useAllowList.ts | 18 +- src/hooks/useDocumentDriveServer.ts | 7 +- src/hooks/useDocumentDrives.ts | 5 + src/hooks/useLogin.ts | 2 +- src/hooks/useUserPermissions.ts | 8 +- src/pages/content.tsx | 7 +- src/store/document-drive.ts | 6 +- src/store/user.ts | 8 +- src/utils/document-model.ts | 4 +- src/utils/reactor.ts | 1 - 14 files changed, 1246 insertions(+), 1588 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8a1da39e..2c3dedb9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,14 +9,14 @@ "version": "1.0.0-dev.103", "license": "AGPL-3.0-only", "dependencies": { - "@powerhousedao/design-system": "1.0.0-alpha.166", + "@powerhousedao/design-system": "^1.0.0-alpha.167", "@sentry/react": "^7.109.0", "@sentry/vite-plugin": "^2.22.2", "@tanstack/react-virtual": "^3.8.1", "did-key-creator": "^1.2.0", - "document-drive": "^1.0.0-alpha.93", + "document-drive": "^1.0.0-alpha.94", "document-model": "^1.8.0", - "document-model-libs": "^1.85.0", + "document-model-libs": "^1.84.0", "electron-is-dev": "^3.0.1", "electron-squirrel-startup": "^1.0.0", "electron-store": "^8.1.0", @@ -849,25 +849,6 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", - "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.", - "peer": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-proposal-class-properties": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", @@ -900,23 +881,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", - "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead.", - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", @@ -934,23 +898,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.", - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-proposal-object-rest-spread": { "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", @@ -970,23 +917,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.", - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-proposal-optional-chaining": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", @@ -2002,15 +1932,15 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.7.tgz", - "integrity": "sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==", + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.4.tgz", + "integrity": "sha512-8hsyG+KUYGY0coX6KUCDancA0Vw225KJ2HJO0yCNr1vq5r+lJTleDaJf0K7iOhjw4SWhu03TMBzYTJ9krmzULQ==", "peer": true, "dependencies": { "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.8", "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.1", + "babel-plugin-polyfill-corejs3": "^0.10.6", "babel-plugin-polyfill-regenerator": "^0.6.1", "semver": "^6.3.1" }, @@ -2364,9 +2294,9 @@ "peer": true }, "node_modules/@babel/runtime": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.8.tgz", - "integrity": "sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA==", + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.6.tgz", + "integrity": "sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -4367,15 +4297,15 @@ } }, "node_modules/@emotion/babel-plugin": { - "version": "11.11.0", - "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", - "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.12.0.tgz", + "integrity": "sha512-y2WQb+oP8Jqvvclh8Q55gLUyb7UFvgv7eJfsj7td5TToBrIUtPay2kMrZi4xjq9qw2vD0ZR5fSho0yqoFgX7Rw==", "dependencies": { "@babel/helper-module-imports": "^7.16.7", "@babel/runtime": "^7.18.3", - "@emotion/hash": "^0.9.1", - "@emotion/memoize": "^0.8.1", - "@emotion/serialize": "^1.1.2", + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/serialize": "^1.2.0", "babel-plugin-macros": "^3.1.0", "convert-source-map": "^1.5.0", "escape-string-regexp": "^4.0.0", @@ -4398,39 +4328,39 @@ } }, "node_modules/@emotion/cache": { - "version": "11.11.0", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", - "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", - "dependencies": { - "@emotion/memoize": "^0.8.1", - "@emotion/sheet": "^1.2.2", - "@emotion/utils": "^1.2.1", - "@emotion/weak-memoize": "^0.3.1", + "version": "11.13.1", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.13.1.tgz", + "integrity": "sha512-iqouYkuEblRcXmylXIwwOodiEK5Ifl7JcX7o6V4jI3iW4mLXX3dmt5xwBtIkJiQEXFAI+pC8X0i67yiPkH9Ucw==", + "dependencies": { + "@emotion/memoize": "^0.9.0", + "@emotion/sheet": "^1.4.0", + "@emotion/utils": "^1.4.0", + "@emotion/weak-memoize": "^0.4.0", "stylis": "4.2.0" } }, "node_modules/@emotion/hash": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", - "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", + "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==" }, "node_modules/@emotion/memoize": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", - "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", + "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==" }, "node_modules/@emotion/react": { - "version": "11.11.4", - "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.4.tgz", - "integrity": "sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==", + "version": "11.13.3", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.13.3.tgz", + "integrity": "sha512-lIsdU6JNrmYfJ5EbUCf4xW1ovy5wKQ2CkPRM4xogziOxH1nXxBSjpC9YqbFAP7circxMfYp+6x676BqWcEiixg==", "dependencies": { "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.11.0", - "@emotion/cache": "^11.11.0", - "@emotion/serialize": "^1.1.3", - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", - "@emotion/utils": "^1.2.1", - "@emotion/weak-memoize": "^0.3.1", + "@emotion/babel-plugin": "^11.12.0", + "@emotion/cache": "^11.13.0", + "@emotion/serialize": "^1.3.1", + "@emotion/use-insertion-effect-with-fallbacks": "^1.1.0", + "@emotion/utils": "^1.4.0", + "@emotion/weak-memoize": "^0.4.0", "hoist-non-react-statics": "^3.3.1" }, "peerDependencies": { @@ -4443,44 +4373,44 @@ } }, "node_modules/@emotion/serialize": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.4.tgz", - "integrity": "sha512-RIN04MBT8g+FnDwgvIUi8czvr1LU1alUMI05LekWB5DGyTm8cCBMCRpq3GqaiyEDRptEXOyXnvZ58GZYu4kBxQ==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.1.tgz", + "integrity": "sha512-dEPNKzBPU+vFPGa+z3axPRn8XVDetYORmDC0wAiej+TNcOZE70ZMJa0X7JdeoM6q/nWTMZeLpN/fTnD9o8MQBA==", "dependencies": { - "@emotion/hash": "^0.9.1", - "@emotion/memoize": "^0.8.1", - "@emotion/unitless": "^0.8.1", - "@emotion/utils": "^1.2.1", + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/unitless": "^0.10.0", + "@emotion/utils": "^1.4.0", "csstype": "^3.0.2" } }, "node_modules/@emotion/sheet": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", - "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==" + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz", + "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==" }, "node_modules/@emotion/unitless": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", - "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz", + "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==" }, "node_modules/@emotion/use-insertion-effect-with-fallbacks": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", - "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.1.0.tgz", + "integrity": "sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw==", "peerDependencies": { "react": ">=16.8.0" } }, "node_modules/@emotion/utils": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", - "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==" + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.0.tgz", + "integrity": "sha512-spEnrA1b6hDR/C68lC2M7m6ALPUHZC0lIY7jAS/B/9DuuO1ZP04eov8SMv/6fwRd8pzmsn2AuJEznRREWlQrlQ==" }, "node_modules/@emotion/weak-memoize": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", - "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==" + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz", + "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==" }, "node_modules/@esbuild/aix-ppc64": { "version": "0.21.5", @@ -5002,20 +4932,20 @@ } }, "node_modules/@floating-ui/core": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.4.tgz", - "integrity": "sha512-a4IowK4QkXl4SCWTGUR0INAfEOX3wtsYw3rKK5InQEHMGObkR8Xk44qYQD9P4r6HHw0iIfK6GUKECmY8sTkqRA==", + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.7.tgz", + "integrity": "sha512-yDzVT/Lm101nQ5TCVeK65LtdN7Tj4Qpr9RTXJ2vPFLqtLxwOrpoxAHAJI8J3yYWUc40J0BDBheaitK5SJmno2g==", "dependencies": { - "@floating-ui/utils": "^0.2.4" + "@floating-ui/utils": "^0.2.7" } }, "node_modules/@floating-ui/dom": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.7.tgz", - "integrity": "sha512-wmVfPG5o2xnKDU4jx/m4w5qva9FWHcnZ8BvzEe90D/RpwsJaTAVYPEPdQ8sbr/N8zZTAHlZUTQdqg8ZUbzHmng==", + "version": "1.6.10", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.10.tgz", + "integrity": "sha512-fskgCFv8J8OamCmyun8MfjB1Olfn+uZKjOKZ0vhYF3gRmEUXcGOjxWL8bBr7i4kIuPZ2KD2S3EUIOxnjC8kl2A==", "dependencies": { "@floating-ui/core": "^1.6.0", - "@floating-ui/utils": "^0.2.4" + "@floating-ui/utils": "^0.2.7" } }, "node_modules/@floating-ui/react-dom": { @@ -5031,9 +4961,9 @@ } }, "node_modules/@floating-ui/utils": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.4.tgz", - "integrity": "sha512-dWO2pw8hhi+WrXq1YJy2yCuWoL20PddgGaqTgVe4cOS9Q6qklXCiA1tJEqX6BEwRNSCP84/afac9hd4MS+zEUA==" + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.7.tgz", + "integrity": "sha512-X8R8Oj771YRl/w+c1HqAC1szL8zWQRwFvgDwT129k9ACdBoud/+/rX9V0qiMl6LWUdP9voC2nDVZYPMQQsb6eA==" }, "node_modules/@gar/promisify": { "version": "1.1.3", @@ -5317,9 +5247,9 @@ "dev": true }, "node_modules/@internationalized/date": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.4.tgz", - "integrity": "sha512-qoVJVro+O0rBaw+8HPjUB1iH8Ihf8oziEnqMnvhJUSuVIrHOuZ6eNLHNvzXJKUvAtaDiqMnRlg8Z2mgh09BlUw==", + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.5.tgz", + "integrity": "sha512-H+CfYvOZ0LTJeeLOqm19E3uj/4YjrmOFtBufDHPfvtI80hFAMqtrp7oCACpe4Cil5l8S0Qu/9dYfZc/5lY8WQQ==", "dependencies": { "@swc/helpers": "^0.5.0" } @@ -5570,9 +5500,9 @@ } }, "node_modules/@lit-labs/ssr-dom-shim": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.0.tgz", - "integrity": "sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.1.tgz", + "integrity": "sha512-wx4aBmgeGvFmOKucFKY+8VFJSYZxs9poN3SDNQFF6lT6NrQUnHiPB2PWz2sc4ieEcAaYYzN+1uWahEeTq2aRIQ==" }, "node_modules/@lit/reactive-element": { "version": "1.6.3", @@ -5617,6 +5547,38 @@ "node": ">=14.0.0" } }, + "node_modules/@metamask/eth-json-rpc-provider/node_modules/@metamask/json-rpc-engine": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@metamask/json-rpc-engine/-/json-rpc-engine-7.3.3.tgz", + "integrity": "sha512-dwZPq8wx9yV3IX2caLi9q9xZBw2XeIoYqdyihDDDpuHVCEiqadJLwqM3zy+uwf6F1QYQ65A8aOMQg1Uw7LMLNg==", + "dependencies": { + "@metamask/rpc-errors": "^6.2.1", + "@metamask/safe-event-emitter": "^3.0.0", + "@metamask/utils": "^8.3.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@metamask/eth-json-rpc-provider/node_modules/@metamask/json-rpc-engine/node_modules/@metamask/utils": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-8.5.0.tgz", + "integrity": "sha512-I6bkduevXb72TIM9q2LRO63JSsF9EXduh3sBr9oybNX2hNNpr/j1tEjXrsG0Uabm4MJ1xkGAQEMwifvKZIkyxQ==", + "dependencies": { + "@ethereumjs/tx": "^4.2.0", + "@metamask/superstruct": "^3.0.0", + "@noble/hashes": "^1.3.1", + "@scure/base": "^1.1.3", + "@types/debug": "^4.1.7", + "debug": "^4.3.4", + "pony-cause": "^2.1.10", + "semver": "^7.5.4", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/@metamask/eth-json-rpc-provider/node_modules/@metamask/utils": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-5.0.2.tgz", @@ -5633,9 +5595,9 @@ } }, "node_modules/@metamask/json-rpc-engine": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@metamask/json-rpc-engine/-/json-rpc-engine-7.3.3.tgz", - "integrity": "sha512-dwZPq8wx9yV3IX2caLi9q9xZBw2XeIoYqdyihDDDpuHVCEiqadJLwqM3zy+uwf6F1QYQ65A8aOMQg1Uw7LMLNg==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@metamask/json-rpc-engine/-/json-rpc-engine-8.0.2.tgz", + "integrity": "sha512-IoQPmql8q7ABLruW7i4EYVHWUbF74yrp63bRuXV5Zf9BQwcn5H9Ww1eLtROYvI1bUXwOiHZ6qT5CWTrDc/t/AA==", "dependencies": { "@metamask/rpc-errors": "^6.2.1", "@metamask/safe-event-emitter": "^3.0.0", @@ -5646,11 +5608,11 @@ } }, "node_modules/@metamask/json-rpc-middleware-stream": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@metamask/json-rpc-middleware-stream/-/json-rpc-middleware-stream-6.0.2.tgz", - "integrity": "sha512-jtyx3PRfc1kqoLpYveIVQNwsxYKefc64/LCl9h9Da1m3nUKEvypbYuXSIwi237qvOjKmNHQKsDOZg6f4uBf62Q==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@metamask/json-rpc-middleware-stream/-/json-rpc-middleware-stream-7.0.2.tgz", + "integrity": "sha512-yUdzsJK04Ev98Ck4D7lmRNQ8FPioXYhEUZOMS01LXW8qTvPGiRVXmVltj2p4wrLkh0vW7u6nv0mNl5xzC5Qmfg==", "dependencies": { - "@metamask/json-rpc-engine": "^7.3.2", + "@metamask/json-rpc-engine": "^8.0.2", "@metamask/safe-event-emitter": "^3.0.0", "@metamask/utils": "^8.3.0", "readable-stream": "^3.6.2" @@ -5706,15 +5668,15 @@ } }, "node_modules/@metamask/providers": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@metamask/providers/-/providers-15.0.0.tgz", - "integrity": "sha512-FXvL1NQNl6I7fMOJTfQYcBlBZ33vSlm6w80cMpmn8sJh0Lb7wcBpe02UwBsNlARnI+Qsr26XeDs6WHUHQh8CuA==", + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/@metamask/providers/-/providers-16.1.0.tgz", + "integrity": "sha512-znVCvux30+3SaUwcUGaSf+pUckzT5ukPRpcBmy+muBLC0yaWnBcvDqGfcsw6CBIenUdFrVoAFa8B6jsuCY/a+g==", "dependencies": { - "@metamask/json-rpc-engine": "^7.3.2", - "@metamask/json-rpc-middleware-stream": "^6.0.2", + "@metamask/json-rpc-engine": "^8.0.1", + "@metamask/json-rpc-middleware-stream": "^7.0.1", "@metamask/object-multiplex": "^2.0.0", "@metamask/rpc-errors": "^6.2.1", - "@metamask/safe-event-emitter": "^3.0.0", + "@metamask/safe-event-emitter": "^3.1.1", "@metamask/utils": "^8.3.0", "detect-browser": "^5.2.0", "extension-port-stream": "^3.0.0", @@ -5753,9 +5715,9 @@ } }, "node_modules/@metamask/rpc-errors/node_modules/@metamask/utils": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-9.1.0.tgz", - "integrity": "sha512-g2REf+xSt0OZfMoNNdC4+/Yy8eP3KUqvIArel54XRFKPoXbHI6+YjFfrLtfykWBjffOp7DTfIc3Kvk5TLfuiyg==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-9.2.1.tgz", + "integrity": "sha512-/u663aUaB6+Xe75i3Mt/1cCljm41HDYIsna5oBrwGvgkY2zH7/9k9Zjd706cxoAbxN7QgLSVAReUiGnuxCuXrQ==", "dependencies": { "@ethereumjs/tx": "^4.2.0", "@metamask/superstruct": "^3.1.0", @@ -5780,15 +5742,16 @@ } }, "node_modules/@metamask/sdk": { - "version": "0.26.4", - "resolved": "https://registry.npmjs.org/@metamask/sdk/-/sdk-0.26.4.tgz", - "integrity": "sha512-9Yh41KJkD9RhW0lRijnQzPV0ptblLorLdTsf5GnAl3yE72QIfaPBtsDxzLtX+0QLppiFfj7o8vRBYvBApG9k+Q==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@metamask/sdk/-/sdk-0.28.2.tgz", + "integrity": "sha512-pylk1uJAZYyO3HcNW/TNfII3+T+Yx6qrFYaC/HmuSIuRJeXsdZuExSbNQ236iQocIy3L7JjI+GQKbv3TbN+HQQ==", "dependencies": { "@metamask/onboarding": "^1.0.1", - "@metamask/providers": "^15.0.0", - "@metamask/sdk-communication-layer": "0.26.4", - "@metamask/sdk-install-modal-web": "0.26.4", + "@metamask/providers": "16.1.0", + "@metamask/sdk-communication-layer": "0.28.2", + "@metamask/sdk-install-modal-web": "0.28.1", "@types/dom-screen-wake-lock": "^1.0.0", + "@types/uuid": "^10.0.0", "bowser": "^2.9.0", "cross-fetch": "^4.0.0", "debug": "^4.3.4", @@ -5821,14 +5784,14 @@ } }, "node_modules/@metamask/sdk-install-modal-web": { - "version": "0.26.4", - "resolved": "https://registry.npmjs.org/@metamask/sdk-install-modal-web/-/sdk-install-modal-web-0.26.4.tgz", - "integrity": "sha512-7Cx7ZsaExbMwghlRrUWWI0Ksg0m7K60LtMjfuDpjvjWqoZa9MoPxitGDEXNbLaqvKn39ebPvNcPzQ6czA4ilTw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@metamask/sdk-install-modal-web/-/sdk-install-modal-web-0.28.1.tgz", + "integrity": "sha512-mHkIjWTpYQMPDMtLEEtTVXhae4pEjy7jDBfV7497L0U3VCPQrBl/giZBwA6AgKEX1emYcM2d1WRHWR9N4YhyJA==", "dependencies": { "qr-code-styling": "^1.6.0-rc.1" }, "peerDependencies": { - "i18next": "23.2.3", + "i18next": "23.11.5", "react": "^18.2.0", "react-dom": "^18.2.0", "react-native": "*" @@ -5845,26 +5808,10 @@ } } }, - "node_modules/@metamask/sdk/node_modules/@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "peer": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, "node_modules/@metamask/sdk/node_modules/@metamask/sdk-communication-layer": { - "version": "0.26.4", - "resolved": "https://registry.npmjs.org/@metamask/sdk-communication-layer/-/sdk-communication-layer-0.26.4.tgz", - "integrity": "sha512-+X4GEc5mV1gWK4moSswVlKsUh+RsA48qPlkxBLTUxQODSnyBe0TRMxE6mH+bSrfponnTzvBkGUXyEjvDwDjDHw==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@metamask/sdk-communication-layer/-/sdk-communication-layer-0.28.2.tgz", + "integrity": "sha512-kGx6qgP482DecPILnIS38bgxIjNransR3/Jh5Lfg9BXJLaXpq/MEGrjHGnJHAqCyfRymnd5cgexHtXJvQtRWQA==", "dependencies": { "bufferutil": "^4.0.8", "date-fns": "^2.29.3", @@ -5880,14 +5827,10 @@ "socket.io-client": "^4.5.1" } }, - "node_modules/@metamask/sdk/node_modules/@types/yargs": { - "version": "15.0.19", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz", - "integrity": "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==", - "peer": true, - "dependencies": { - "@types/yargs-parser": "*" - } + "node_modules/@metamask/sdk/node_modules/@types/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==" }, "node_modules/@metamask/sdk/node_modules/cross-fetch": { "version": "4.0.0", @@ -5912,180 +5855,6 @@ "url": "https://opencollective.com/date-fns" } }, - "node_modules/@metamask/sdk/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@metamask/sdk/node_modules/i18next": { - "version": "23.11.5", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.11.5.tgz", - "integrity": "sha512-41pvpVbW9rhZPk5xjCX2TPJi2861LEig/YRhUkY+1FQ2IQPS0bKUDYnEqY8XPPbB48h1uIwLnP9iiEfuSl20CA==", - "funding": [ - { - "type": "individual", - "url": "https://locize.com" - }, - { - "type": "individual", - "url": "https://locize.com/i18next.html" - }, - { - "type": "individual", - "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" - } - ], - "dependencies": { - "@babel/runtime": "^7.23.2" - } - }, - "node_modules/@metamask/sdk/node_modules/memoize-one": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", - "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==", - "peer": true - }, - "node_modules/@metamask/sdk/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "peer": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/@metamask/sdk/node_modules/pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", - "peer": true, - "dependencies": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@metamask/sdk/node_modules/promise": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", - "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", - "peer": true, - "dependencies": { - "asap": "~2.0.6" - } - }, - "node_modules/@metamask/sdk/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "peer": true - }, - "node_modules/@metamask/sdk/node_modules/react-native": { - "version": "0.74.3", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.74.3.tgz", - "integrity": "sha512-UFutCC6WEw6HkxlcpQ2BemKqi0JkwrgDchYB5Svi8Sp4Xwt4HA6LGEjNQgZ+3KM44bjyFRpofQym0uh0jACGng==", - "peer": true, - "dependencies": { - "@jest/create-cache-key-function": "^29.6.3", - "@react-native-community/cli": "13.6.9", - "@react-native-community/cli-platform-android": "13.6.9", - "@react-native-community/cli-platform-ios": "13.6.9", - "@react-native/assets-registry": "0.74.85", - "@react-native/codegen": "0.74.85", - "@react-native/community-cli-plugin": "0.74.85", - "@react-native/gradle-plugin": "0.74.85", - "@react-native/js-polyfills": "0.74.85", - "@react-native/normalize-colors": "0.74.85", - "@react-native/virtualized-lists": "0.74.85", - "abort-controller": "^3.0.0", - "anser": "^1.4.9", - "ansi-regex": "^5.0.0", - "base64-js": "^1.5.1", - "chalk": "^4.0.0", - "event-target-shim": "^5.0.1", - "flow-enums-runtime": "^0.0.6", - "invariant": "^2.2.4", - "jest-environment-node": "^29.6.3", - "jsc-android": "^250231.0.0", - "memoize-one": "^5.0.0", - "metro-runtime": "^0.80.3", - "metro-source-map": "^0.80.3", - "mkdirp": "^0.5.1", - "nullthrows": "^1.1.1", - "pretty-format": "^26.5.2", - "promise": "^8.3.0", - "react-devtools-core": "^5.0.0", - "react-refresh": "^0.14.0", - "react-shallow-renderer": "^16.15.0", - "regenerator-runtime": "^0.13.2", - "scheduler": "0.24.0-canary-efb381bbf-20230505", - "stacktrace-parser": "^0.1.10", - "whatwg-fetch": "^3.0.0", - "ws": "^6.2.2", - "yargs": "^17.6.2" - }, - "bin": { - "react-native": "cli.js" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/react": "^18.2.6", - "react": "18.2.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@metamask/sdk/node_modules/react-native-webview": { - "version": "11.26.1", - "resolved": "https://registry.npmjs.org/react-native-webview/-/react-native-webview-11.26.1.tgz", - "integrity": "sha512-hC7BkxOpf+z0UKhxFSFTPAM4shQzYmZHoELa6/8a/MspcjEP7ukYKpuSUTLDywQditT8yI9idfcKvfZDKQExGw==", - "dependencies": { - "escape-string-regexp": "2.0.0", - "invariant": "2.2.4" - }, - "peerDependencies": { - "react": "*", - "react-native": "*" - } - }, - "node_modules/@metamask/sdk/node_modules/react-native/node_modules/@react-native/virtualized-lists": { - "version": "0.74.85", - "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.74.85.tgz", - "integrity": "sha512-jx2Zw0qlZteoQ+0KxRc7s4drsljLBEP534FaNZ950e9+CN9nVkLsV6rigcTjDR8wjKMSBWhKf0C0C3egYz7Ehg==", - "peer": true, - "dependencies": { - "invariant": "^2.2.4", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/react": "^18.2.6", - "react": "*", - "react-native": "*" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@metamask/sdk/node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", @@ -6099,21 +5868,6 @@ "node": ">= 6" } }, - "node_modules/@metamask/sdk/node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "peer": true - }, - "node_modules/@metamask/sdk/node_modules/scheduler": { - "version": "0.24.0-canary-efb381bbf-20230505", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.24.0-canary-efb381bbf-20230505.tgz", - "integrity": "sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA==", - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0" - } - }, "node_modules/@metamask/sdk/node_modules/uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", @@ -6122,15 +5876,6 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/@metamask/sdk/node_modules/ws": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", - "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", - "peer": true, - "dependencies": { - "async-limiter": "~1.0.0" - } - }, "node_modules/@metamask/superstruct": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@metamask/superstruct/-/superstruct-3.1.0.tgz", @@ -6821,9 +6566,9 @@ } }, "node_modules/@powerhousedao/design-system": { - "version": "1.0.0-alpha.166", - "resolved": "https://registry.npmjs.org/@powerhousedao/design-system/-/design-system-1.0.0-alpha.166.tgz", - "integrity": "sha512-YPn7zwV+VwC3jNZX+TrlAZOgS5IArWtzI4C0wmTfO80y3TX9sl5YDCx86xeTMs4XQmS5pHYimtM4rmZMXpVcyA==", + "version": "1.0.0-alpha.167", + "resolved": "https://registry.npmjs.org/@powerhousedao/design-system/-/design-system-1.0.0-alpha.167.tgz", + "integrity": "sha512-yWXV4MXvUJN/BbuxhtPEqpx0QXgJ8a8ys4C2zN65uoeLVOqMG5HcdOtMqm84fXd5eOYcKrIfAsH1UB6JkZP2PA==", "dependencies": { "@internationalized/date": "^3.5.1", "@radix-ui/react-dialog": "^1.0.5", @@ -7475,24 +7220,23 @@ "integrity": "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==" }, "node_modules/@react-native-community/cli": { - "version": "13.6.9", - "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-13.6.9.tgz", - "integrity": "sha512-hFJL4cgLPxncJJd/epQ4dHnMg5Jy/7Q56jFvA3MHViuKpzzfTCJCB+pGY54maZbtym53UJON9WTGpM3S81UfjQ==", - "peer": true, - "dependencies": { - "@react-native-community/cli-clean": "13.6.9", - "@react-native-community/cli-config": "13.6.9", - "@react-native-community/cli-debugger-ui": "13.6.9", - "@react-native-community/cli-doctor": "13.6.9", - "@react-native-community/cli-hermes": "13.6.9", - "@react-native-community/cli-server-api": "13.6.9", - "@react-native-community/cli-tools": "13.6.9", - "@react-native-community/cli-types": "13.6.9", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-14.1.0.tgz", + "integrity": "sha512-k7aTdKNZIec7WMSqMJn9bDVLWPPOaYmshXcnjWy6t5ItsJnREju9p2azMTR5tXY5uIeynose3cxettbhk2Tbnw==", + "peer": true, + "dependencies": { + "@react-native-community/cli-clean": "14.1.0", + "@react-native-community/cli-config": "14.1.0", + "@react-native-community/cli-debugger-ui": "14.1.0", + "@react-native-community/cli-doctor": "14.1.0", + "@react-native-community/cli-server-api": "14.1.0", + "@react-native-community/cli-tools": "14.1.0", + "@react-native-community/cli-types": "14.1.0", "chalk": "^4.1.2", "commander": "^9.4.1", "deepmerge": "^4.3.0", "execa": "^5.0.0", - "find-up": "^4.1.0", + "find-up": "^5.0.0", "fs-extra": "^8.1.0", "graceful-fs": "^4.1.3", "prompts": "^2.4.2", @@ -7506,135 +7250,82 @@ } }, "node_modules/@react-native-community/cli-clean": { - "version": "13.6.9", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-13.6.9.tgz", - "integrity": "sha512-7Dj5+4p9JggxuVNOjPbduZBAP1SUgNhLKVw5noBUzT/3ZpUZkDM+RCSwyoyg8xKWoE4OrdUAXwAFlMcFDPKykA==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-14.1.0.tgz", + "integrity": "sha512-/C4j1yntLo6faztNgZnsDtgpGqa6j0+GYrxOY8LqaKAN03OCnoeUUKO6w78dycbYSGglc1xjJg2RZI/M2oF2AA==", "peer": true, "dependencies": { - "@react-native-community/cli-tools": "13.6.9", + "@react-native-community/cli-tools": "14.1.0", "chalk": "^4.1.2", "execa": "^5.0.0", "fast-glob": "^3.3.2" } }, "node_modules/@react-native-community/cli-config": { - "version": "13.6.9", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-13.6.9.tgz", - "integrity": "sha512-rFfVBcNojcMm+KKHE/xqpqXg8HoKl4EC7bFHUrahMJ+y/tZll55+oX/PGG37rzB8QzP2UbMQ19DYQKC1G7kXeg==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-14.1.0.tgz", + "integrity": "sha512-P3FK2rPUJBD1fmQHLgTqpHxsc111pnMdEEFR7KeqprCNz+Qr2QpPxfNy0V7s15tGL5rAv+wpbOGcioIV50EbxA==", "peer": true, "dependencies": { - "@react-native-community/cli-tools": "13.6.9", + "@react-native-community/cli-tools": "14.1.0", "chalk": "^4.1.2", - "cosmiconfig": "^5.1.0", + "cosmiconfig": "^9.0.0", "deepmerge": "^4.3.0", "fast-glob": "^3.3.2", "joi": "^17.2.1" } }, - "node_modules/@react-native-community/cli-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "peer": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, "node_modules/@react-native-community/cli-config/node_modules/cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", "peer": true, "dependencies": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" }, "engines": { - "node": ">=4" - } - }, - "node_modules/@react-native-community/cli-config/node_modules/import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==", - "peer": true, - "dependencies": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" + "node": ">=14" }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@react-native-community/cli-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "peer": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "funding": { + "url": "https://github.com/sponsors/d-fischer" }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@react-native-community/cli-config/node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", - "peer": true, - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "peerDependencies": { + "typescript": ">=4.9.5" }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@react-native-community/cli-config/node_modules/resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", - "peer": true, - "engines": { - "node": ">=4" + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@react-native-community/cli-config/node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "peer": true - }, "node_modules/@react-native-community/cli-debugger-ui": { - "version": "13.6.9", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-13.6.9.tgz", - "integrity": "sha512-TkN7IdFmGPPvTpAo3nCAH9uwGCPxWBEAwpqEZDrq0NWllI7Tdie8vDpGdrcuCcKalmhq6OYnkXzeBah7O1Ztpw==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-14.1.0.tgz", + "integrity": "sha512-+YbeCL0wLcBcqDwraJFGsqzcXu9S+bwTVrfImne/4mT6itfe3Oa93yrOVJgNbstrt5pJHuwpU76ZXfXoiuncsg==", "peer": true, "dependencies": { "serve-static": "^1.13.1" } }, "node_modules/@react-native-community/cli-doctor": { - "version": "13.6.9", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-13.6.9.tgz", - "integrity": "sha512-5quFaLdWFQB+677GXh5dGU9I5eg2z6Vg4jOX9vKnc9IffwyIFAyJfCZHrxLSRPDGNXD7biDQUdoezXYGwb6P/A==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-14.1.0.tgz", + "integrity": "sha512-xIf0oQDRKt7lufUenRwcLYdINGc0x1FSXHaHjd7lQDGT5FJnCEYlIkYEDDgAl5tnVJSvM/IL2c6O+mffkNEPzQ==", "peer": true, "dependencies": { - "@react-native-community/cli-config": "13.6.9", - "@react-native-community/cli-platform-android": "13.6.9", - "@react-native-community/cli-platform-apple": "13.6.9", - "@react-native-community/cli-platform-ios": "13.6.9", - "@react-native-community/cli-tools": "13.6.9", + "@react-native-community/cli-config": "14.1.0", + "@react-native-community/cli-platform-android": "14.1.0", + "@react-native-community/cli-platform-apple": "14.1.0", + "@react-native-community/cli-platform-ios": "14.1.0", + "@react-native-community/cli-tools": "14.1.0", "chalk": "^4.1.2", "command-exists": "^1.2.8", "deepmerge": "^4.3.0", - "envinfo": "^7.10.0", + "envinfo": "^7.13.0", "execa": "^5.0.0", - "hermes-profile-transformer": "^0.0.6", "node-stream-zip": "^1.9.1", "ora": "^5.4.1", "semver": "^7.5.2", @@ -7664,70 +7355,58 @@ "node": ">=6" } }, - "node_modules/@react-native-community/cli-hermes": { - "version": "13.6.9", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-13.6.9.tgz", - "integrity": "sha512-GvwiwgvFw4Ws+krg2+gYj8sR3g05evmNjAHkKIKMkDTJjZ8EdyxbkifRUs1ZCq3TMZy2oeblZBXCJVOH4W7ZbA==", - "peer": true, - "dependencies": { - "@react-native-community/cli-platform-android": "13.6.9", - "@react-native-community/cli-tools": "13.6.9", - "chalk": "^4.1.2", - "hermes-profile-transformer": "^0.0.6" - } - }, "node_modules/@react-native-community/cli-platform-android": { - "version": "13.6.9", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-13.6.9.tgz", - "integrity": "sha512-9KsYGdr08QhdvT3Ht7e8phQB3gDX9Fs427NJe0xnoBh+PDPTI2BD5ks5ttsH8CzEw8/P6H8tJCHq6hf2nxd9cw==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-14.1.0.tgz", + "integrity": "sha512-4JnXkAV+ca8XdUhZ7xjgDhXAMwTVjQs8JqiwP7FTYVrayShXy2cBXm/C3HNDoe+oQOF5tPT2SqsDAF2vYTnKiQ==", "peer": true, "dependencies": { - "@react-native-community/cli-tools": "13.6.9", + "@react-native-community/cli-tools": "14.1.0", "chalk": "^4.1.2", "execa": "^5.0.0", "fast-glob": "^3.3.2", - "fast-xml-parser": "^4.2.4", + "fast-xml-parser": "^4.4.1", "logkitty": "^0.7.1" } }, "node_modules/@react-native-community/cli-platform-apple": { - "version": "13.6.9", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-apple/-/cli-platform-apple-13.6.9.tgz", - "integrity": "sha512-KoeIHfhxMhKXZPXmhQdl6EE+jGKWwoO9jUVWgBvibpVmsNjo7woaG/tfJMEWfWF3najX1EkQAoJWpCDBMYWtlA==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-apple/-/cli-platform-apple-14.1.0.tgz", + "integrity": "sha512-DExd+pZ7hHxXt8I6BBmckeYUxxq7PQ+o4YSmGIeQx0xUpi+f82obBct2WNC3VWU72Jw6obwfoN6Fwe6F7Wxp5Q==", "peer": true, "dependencies": { - "@react-native-community/cli-tools": "13.6.9", + "@react-native-community/cli-tools": "14.1.0", "chalk": "^4.1.2", "execa": "^5.0.0", "fast-glob": "^3.3.2", - "fast-xml-parser": "^4.0.12", + "fast-xml-parser": "^4.4.1", "ora": "^5.4.1" } }, "node_modules/@react-native-community/cli-platform-ios": { - "version": "13.6.9", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-13.6.9.tgz", - "integrity": "sha512-CiUcHlGs8vE0CAB4oi1f+dzniqfGuhWPNrDvae2nm8dewlahTBwIcK5CawyGezjcJoeQhjBflh9vloska+nlnw==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-14.1.0.tgz", + "integrity": "sha512-ah/ZTiJXUdCVHujyRJ4OmCL5nTq8OWcURcE3UXa1z0sIIiA8io06n+v5n299T9rtPKMwRtVJlQjtO/nbODABPQ==", "peer": true, "dependencies": { - "@react-native-community/cli-platform-apple": "13.6.9" + "@react-native-community/cli-platform-apple": "14.1.0" } }, "node_modules/@react-native-community/cli-server-api": { - "version": "13.6.9", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-13.6.9.tgz", - "integrity": "sha512-W8FSlCPWymO+tlQfM3E0JmM8Oei5HZsIk5S0COOl0MRi8h0NmHI4WSTF2GCfbFZkcr2VI/fRsocoN8Au4EZAug==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-14.1.0.tgz", + "integrity": "sha512-1k2LBQaYsy9RDWFIfKVne3frOye73O33MV6eYMoRPff7wqxHCrsX1CYJQkmwpgVigZHxYwalHj+Axtu3gpomCA==", "peer": true, "dependencies": { - "@react-native-community/cli-debugger-ui": "13.6.9", - "@react-native-community/cli-tools": "13.6.9", + "@react-native-community/cli-debugger-ui": "14.1.0", + "@react-native-community/cli-tools": "14.1.0", "compression": "^1.7.1", "connect": "^3.6.5", "errorhandler": "^1.5.1", "nocache": "^3.0.1", "pretty-format": "^26.6.2", "serve-static": "^1.13.1", - "ws": "^6.2.2" + "ws": "^6.2.3" } }, "node_modules/@react-native-community/cli-server-api/node_modules/@jest/types": { @@ -7786,9 +7465,9 @@ } }, "node_modules/@react-native-community/cli-tools": { - "version": "13.6.9", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-13.6.9.tgz", - "integrity": "sha512-OXaSjoN0mZVw3nrAwcY1PC0uMfyTd9fz7Cy06dh+EJc+h0wikABsVRzV8cIOPrVV+PPEEXE0DBrH20T2puZzgQ==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-14.1.0.tgz", + "integrity": "sha512-r1KxSu2+OSuhWFoE//1UR7aSTXMLww/UYWQprEw4bSo/kvutGX//4r9ywgXSWp+39udpNN4jQpNTHuWhGZd/Bg==", "peer": true, "dependencies": { "appdirsjs": "^1.2.4", @@ -7796,7 +7475,6 @@ "execa": "^5.0.0", "find-up": "^5.0.0", "mime": "^2.4.1", - "node-fetch": "^2.6.0", "open": "^6.2.0", "ora": "^5.4.1", "semver": "^7.5.2", @@ -7804,15 +7482,6 @@ "sudo-prompt": "^9.0.0" } }, - "node_modules/@react-native-community/cli-tools/node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", - "peer": true, - "engines": { - "node": ">=4" - } - }, "node_modules/@react-native-community/cli-tools/node_modules/mime": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", @@ -7825,22 +7494,10 @@ "node": ">=4.0.0" } }, - "node_modules/@react-native-community/cli-tools/node_modules/open": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", - "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", - "peer": true, - "dependencies": { - "is-wsl": "^1.1.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@react-native-community/cli-types": { - "version": "13.6.9", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-13.6.9.tgz", - "integrity": "sha512-RLxDppvRxXfs3hxceW/mShi+6o5yS+kFPnPqZTaMKKR5aSg7LwDpLQW4K2D22irEG8e6RKDkZUeH9aL3vO2O0w==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-14.1.0.tgz", + "integrity": "sha512-aJwZI9mGRx3HdP8U4CGhqjt3S4r8GmeOqv4kRagC1UHDk4QNMC+bZ8JgPA4W7FrGiPey+lJQHMDPAXOo51SOUw==", "peer": true, "dependencies": { "joi": "^17.2.1" @@ -7855,19 +7512,6 @@ "node": "^12.20.0 || >=14" } }, - "node_modules/@react-native-community/cli/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "peer": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@react-native-community/cli/node_modules/fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", @@ -7891,45 +7535,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/@react-native-community/cli/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "peer": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "peer": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "peer": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@react-native-community/cli/node_modules/universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -7940,58 +7545,59 @@ } }, "node_modules/@react-native/assets-registry": { - "version": "0.74.85", - "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.74.85.tgz", - "integrity": "sha512-59YmIQxfGDw4aP9S/nAM+sjSFdW8fUP6fsqczCcXgL2YVEjyER9XCaUT0J1K+PdHep8pi05KUgIKUds8P3jbmA==", + "version": "0.75.3", + "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.75.3.tgz", + "integrity": "sha512-i7MaRbYR06WdpJWv3a0PQ2ScFBUeevwcJ0tVopnFwTg0tBWp3NFEMDIcU8lyXVy9Y59WmrP1V2ROaRDaPiESgg==", "peer": true, "engines": { "node": ">=18" } }, "node_modules/@react-native/babel-plugin-codegen": { - "version": "0.74.85", - "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.74.85.tgz", - "integrity": "sha512-48TSDclRB5OMXiImiJkLxyCfRyLsqkCgI8buugCZzvXcYslfV7gCvcyFyQldtcOmerV+CK4RAj7QS4hmB5Mr8Q==", + "version": "0.75.3", + "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.75.3.tgz", + "integrity": "sha512-8JmXEKq+Efb9AffsV48l8gmKe/ZQ2PbBygZjHdIf8DNZZhO/z5mt27J4B43MWNdp5Ww1l59T0mEaf8l/uywQUg==", "peer": true, "dependencies": { - "@react-native/codegen": "0.74.85" + "@react-native/codegen": "0.75.3" }, "engines": { "node": ">=18" } }, "node_modules/@react-native/babel-preset": { - "version": "0.74.85", - "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.74.85.tgz", - "integrity": "sha512-yMHUlN8INbK5BBwiBuQMftdWkpm1IgCsoJTKcGD2OpSgZhwwm8RUSvGhdRMzB2w7bsqqBmaEMleGtW6aCR7B9w==", + "version": "0.75.3", + "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.75.3.tgz", + "integrity": "sha512-VZQkQEj36DKEGApXFYdVcFtqdglbnoVr7aOZpjffURSgPcIA9vWTm1b+OL4ayOaRZXTZKiDBNQCXvBX5E5AgQg==", "peer": true, "dependencies": { "@babel/core": "^7.20.0", - "@babel/plugin-proposal-async-generator-functions": "^7.0.0", - "@babel/plugin-proposal-class-properties": "^7.18.0", "@babel/plugin-proposal-export-default-from": "^7.0.0", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.0", - "@babel/plugin-proposal-numeric-separator": "^7.0.0", - "@babel/plugin-proposal-object-rest-spread": "^7.20.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", - "@babel/plugin-proposal-optional-chaining": "^7.20.0", "@babel/plugin-syntax-dynamic-import": "^7.8.0", "@babel/plugin-syntax-export-default-from": "^7.0.0", "@babel/plugin-syntax-flow": "^7.18.0", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0", "@babel/plugin-syntax-optional-chaining": "^7.0.0", "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-async-generator-functions": "^7.24.3", "@babel/plugin-transform-async-to-generator": "^7.20.0", "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-class-properties": "^7.24.1", "@babel/plugin-transform-classes": "^7.0.0", "@babel/plugin-transform-computed-properties": "^7.0.0", "@babel/plugin-transform-destructuring": "^7.20.0", "@babel/plugin-transform-flow-strip-types": "^7.20.0", + "@babel/plugin-transform-for-of": "^7.0.0", "@babel/plugin-transform-function-name": "^7.0.0", "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.1", "@babel/plugin-transform-modules-commonjs": "^7.0.0", "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.1", + "@babel/plugin-transform-numeric-separator": "^7.24.1", + "@babel/plugin-transform-object-rest-spread": "^7.24.5", + "@babel/plugin-transform-optional-catch-binding": "^7.24.1", + "@babel/plugin-transform-optional-chaining": "^7.24.5", "@babel/plugin-transform-parameters": "^7.0.0", "@babel/plugin-transform-private-methods": "^7.22.5", "@babel/plugin-transform-private-property-in-object": "^7.22.11", @@ -7999,6 +7605,7 @@ "@babel/plugin-transform-react-jsx": "^7.0.0", "@babel/plugin-transform-react-jsx-self": "^7.0.0", "@babel/plugin-transform-react-jsx-source": "^7.0.0", + "@babel/plugin-transform-regenerator": "^7.20.0", "@babel/plugin-transform-runtime": "^7.0.0", "@babel/plugin-transform-shorthand-properties": "^7.0.0", "@babel/plugin-transform-spread": "^7.0.0", @@ -8006,7 +7613,7 @@ "@babel/plugin-transform-typescript": "^7.5.0", "@babel/plugin-transform-unicode-regex": "^7.0.0", "@babel/template": "^7.0.0", - "@react-native/babel-plugin-codegen": "0.74.85", + "@react-native/babel-plugin-codegen": "0.75.3", "babel-plugin-transform-flow-enums": "^0.0.2", "react-refresh": "^0.14.0" }, @@ -8018,18 +7625,19 @@ } }, "node_modules/@react-native/codegen": { - "version": "0.74.85", - "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.74.85.tgz", - "integrity": "sha512-N7QwoS4Hq/uQmoH83Ewedy6D0M7xbQsOU3OMcQf0eY3ltQ7S2hd9/R4UTalQWRn1OUJfXR6OG12QJ4FStKgV6Q==", + "version": "0.75.3", + "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.75.3.tgz", + "integrity": "sha512-I0bz5jwOkiR7vnhYLGoV22RGmesErUg03tjsCiQgmsMpbyCYumudEtLNN5+DplHGK56bu8KyzBqKkWXGSKSCZQ==", "peer": true, "dependencies": { "@babel/parser": "^7.20.0", "glob": "^7.1.1", - "hermes-parser": "0.19.1", + "hermes-parser": "0.22.0", "invariant": "^2.2.4", "jscodeshift": "^0.14.0", "mkdirp": "^0.5.1", - "nullthrows": "^1.1.1" + "nullthrows": "^1.1.1", + "yargs": "^17.6.2" }, "engines": { "node": ">=18" @@ -8136,22 +7744,21 @@ } }, "node_modules/@react-native/community-cli-plugin": { - "version": "0.74.85", - "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.74.85.tgz", - "integrity": "sha512-ODzND33eA2owAY3g9jgCdqB+BjAh8qJ7dvmSotXgrgDYr3MJMpd8gvHTIPe2fg4Kab+wk8uipRhrE0i0RYMwtQ==", + "version": "0.75.3", + "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.75.3.tgz", + "integrity": "sha512-njsYm+jBWzfLcJcxavAY5QFzYTrmPtjbxq/64GSqwcQYzy9qAkI7LNTK/Wprq1I/4HOuHJO7Km+EddCXB+ByRQ==", "peer": true, "dependencies": { - "@react-native-community/cli-server-api": "13.6.9", - "@react-native-community/cli-tools": "13.6.9", - "@react-native/dev-middleware": "0.74.85", - "@react-native/metro-babel-transformer": "0.74.85", + "@react-native-community/cli-server-api": "14.1.0", + "@react-native-community/cli-tools": "14.1.0", + "@react-native/dev-middleware": "0.75.3", + "@react-native/metro-babel-transformer": "0.75.3", "chalk": "^4.0.0", "execa": "^5.1.1", "metro": "^0.80.3", "metro-config": "^0.80.3", "metro-core": "^0.80.3", "node-fetch": "^2.2.0", - "querystring": "^0.2.1", "readline": "^1.3.0" }, "engines": { @@ -8159,24 +7766,24 @@ } }, "node_modules/@react-native/debugger-frontend": { - "version": "0.74.85", - "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.74.85.tgz", - "integrity": "sha512-gUIhhpsYLUTYWlWw4vGztyHaX/kNlgVspSvKe2XaPA7o3jYKUoNLc3Ov7u70u/MBWfKdcEffWq44eSe3j3s5JQ==", + "version": "0.75.3", + "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.75.3.tgz", + "integrity": "sha512-99bLQsUwsxUMNR7Wa9eV2uyR38yfd6mOEqfN+JIm8/L9sKA926oh+CZkjDy1M8RmCB6spB5N9fVFVkrVdf2yFA==", "peer": true, "engines": { "node": ">=18" } }, "node_modules/@react-native/dev-middleware": { - "version": "0.74.85", - "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.74.85.tgz", - "integrity": "sha512-BRmgCK5vnMmHaKRO+h8PKJmHHH3E6JFuerrcfE3wG2eZ1bcSr+QTu8DAlpxsDWvJvHpCi8tRJGauxd+Ssj/c7w==", + "version": "0.75.3", + "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.75.3.tgz", + "integrity": "sha512-h2/6+UGmeMWjnT43axy27jNqoDRsE1C1qpjRC3sYpD4g0bI0jSTkY1kAgj8uqGGXLnHXiHOtjLDGdbAgZrsPaA==", "peer": true, "dependencies": { "@isaacs/ttlcache": "^1.4.1", - "@react-native/debugger-frontend": "0.74.85", - "@rnx-kit/chromium-edge-launcher": "^1.0.0", + "@react-native/debugger-frontend": "0.75.3", "chrome-launcher": "^0.15.2", + "chromium-edge-launcher": "^0.2.0", "connect": "^3.6.5", "debug": "^2.2.0", "node-fetch": "^2.2.0", @@ -8184,7 +7791,6 @@ "open": "^7.0.3", "selfsigned": "^2.4.1", "serve-static": "^1.13.1", - "temp-dir": "^2.0.0", "ws": "^6.2.2" }, "engines": { @@ -8222,15 +7828,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@react-native/dev-middleware/node_modules/temp-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", - "peer": true, - "engines": { - "node": ">=8" - } - }, "node_modules/@react-native/dev-middleware/node_modules/ws": { "version": "6.2.3", "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", @@ -8241,32 +7838,32 @@ } }, "node_modules/@react-native/gradle-plugin": { - "version": "0.74.85", - "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.74.85.tgz", - "integrity": "sha512-1VQSLukJzaVMn1MYcs8Weo1nUW8xCas2XU1KuoV7OJPk6xPnEBFJmapmEGP5mWeEy7kcTXJmddEgy1wwW0tcig==", + "version": "0.75.3", + "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.75.3.tgz", + "integrity": "sha512-mSfa/Mq/AsALuG/kvXz5ECrc6HdY5waMHal2sSfa8KA0Gt3JqYQVXF9Pdwd4yR5ClPZDI2HRa1tdE8GVlhMvPA==", "peer": true, "engines": { "node": ">=18" } }, "node_modules/@react-native/js-polyfills": { - "version": "0.74.85", - "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.74.85.tgz", - "integrity": "sha512-gp4Rg9le3lVZeW7Cie6qLfekvRKZuhJ3LKgi1SFB4N154z1wIclypAJXVXgWBsy8JKJfTwRI+sffC4qZDlvzrg==", + "version": "0.75.3", + "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.75.3.tgz", + "integrity": "sha512-+JVFJ351GSJT3V7LuXscMqfnpR/UxzsAjbBjfAHBR3kqTbVqrAmBccqPCA3NLzgb/RY8khLJklwMUVlWrn8iFg==", "peer": true, "engines": { "node": ">=18" } }, "node_modules/@react-native/metro-babel-transformer": { - "version": "0.74.85", - "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.74.85.tgz", - "integrity": "sha512-JIrXqEwhTvWPtGArgMptIPGstMdXQIkwSjKVYt+7VC4a9Pw1GurIWanIJheEW6ZuCVvTc0VZkwglFz9JVjzDjA==", + "version": "0.75.3", + "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.75.3.tgz", + "integrity": "sha512-gDlEl6C2mwQPLxFOR+yla5MpJpDPNOFD6J5Hd9JM9+lOdUq6MNujh1Xn4ZMvglW7rfViq3nMjg4xPQeGUhDG+w==", "peer": true, "dependencies": { "@babel/core": "^7.20.0", - "@react-native/babel-preset": "0.74.85", - "hermes-parser": "0.19.1", + "@react-native/babel-preset": "0.75.3", + "hermes-parser": "0.22.0", "nullthrows": "^1.1.1" }, "engines": { @@ -8277,113 +7874,136 @@ } }, "node_modules/@react-native/normalize-colors": { - "version": "0.74.85", - "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.74.85.tgz", - "integrity": "sha512-pcE4i0X7y3hsAE0SpIl7t6dUc0B0NZLd1yv7ssm4FrLhWG+CGyIq4eFDXpmPU1XHmL5PPySxTAjEMiwv6tAmOw==", + "version": "0.75.3", + "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.75.3.tgz", + "integrity": "sha512-3mhF8AJFfIN0E5bEs/DQ4U2LzMJYm+FPSwY5bJ1DZhrxW1PFAh24bAPrSd8PwS0iarQ7biLdr1lWf/8LFv8pDA==", "peer": true }, + "node_modules/@react-native/virtualized-lists": { + "version": "0.75.3", + "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.75.3.tgz", + "integrity": "sha512-cTLm7k7Y//SvV8UK8esrDHEw5OrwwSJ4Fqc3x52Imi6ROuhshfGIPFwhtn4pmAg9nWHzHwwqiJ+9hCSVnXXX+g==", + "peer": true, + "dependencies": { + "invariant": "^2.2.4", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/react": "^18.2.6", + "react": "*", + "react-native": "*" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@react-stately/calendar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@react-stately/calendar/-/calendar-3.5.1.tgz", - "integrity": "sha512-7l7QhqGUJ5AzWHfvZzbTe3J4t72Ht5BmhW4hlVI7flQXtfrmYkVtl3ZdytEZkkHmWGYZRW9b4IQTQGZxhtlElA==", - "dependencies": { - "@internationalized/date": "^3.5.4", - "@react-stately/utils": "^3.10.1", - "@react-types/calendar": "^3.4.6", - "@react-types/shared": "^3.23.1", + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/@react-stately/calendar/-/calendar-3.5.4.tgz", + "integrity": "sha512-R2011mtFSXIjzMXaA+CZ1sflPm9XkTBMqVk77Bnxso2ZsG7FUX8nqFmaDavxwTuHFC6OUexAGSMs8bP9KycTNg==", + "dependencies": { + "@internationalized/date": "^3.5.5", + "@react-stately/utils": "^3.10.3", + "@react-types/calendar": "^3.4.9", + "@react-types/shared": "^3.24.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-stately/checkbox": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.6.5.tgz", - "integrity": "sha512-IXV3f9k+LtmfQLE+DKIN41Q5QB/YBLDCB1YVx5PEdRp52S9+EACD5683rjVm8NVRDwjMi2SP6RnFRk7fVb5Azg==", - "dependencies": { - "@react-stately/form": "^3.0.3", - "@react-stately/utils": "^3.10.1", - "@react-types/checkbox": "^3.8.1", - "@react-types/shared": "^3.23.1", + "version": "3.6.8", + "resolved": "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.6.8.tgz", + "integrity": "sha512-c8TWjU67XHHBCpqj6+FXXhQUWGr2Pil1IKggX81pkedhWiJl3/7+WHJuZI0ivGnRjp3aISNOG8UNVlBEjS9E8A==", + "dependencies": { + "@react-stately/form": "^3.0.5", + "@react-stately/utils": "^3.10.3", + "@react-types/checkbox": "^3.8.3", + "@react-types/shared": "^3.24.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-stately/collections": { - "version": "3.10.7", - "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.10.7.tgz", - "integrity": "sha512-KRo5O2MWVL8n3aiqb+XR3vP6akmHLhLWYZEmPKjIv0ghQaEebBTrN3wiEjtd6dzllv0QqcWvDLM1LntNfJ2TsA==", + "version": "3.10.9", + "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.10.9.tgz", + "integrity": "sha512-plyrng6hOQMG8LrjArMA6ts/DgWyXln3g90/hFNbqe/hdVYF53sDVsj8Jb+5LtoYTpiAlV6eOvy1XR0vPZUf8w==", "dependencies": { - "@react-types/shared": "^3.23.1", + "@react-types/shared": "^3.24.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-stately/combobox": { - "version": "3.8.4", - "resolved": "https://registry.npmjs.org/@react-stately/combobox/-/combobox-3.8.4.tgz", - "integrity": "sha512-iLVGvKRRz0TeJXZhZyK783hveHpYA6xovOSdzSD+WGYpiPXo1QrcrNoH3AE0Z2sHtorU+8nc0j58vh5PB+m2AA==", - "dependencies": { - "@react-stately/collections": "^3.10.7", - "@react-stately/form": "^3.0.3", - "@react-stately/list": "^3.10.5", - "@react-stately/overlays": "^3.6.7", - "@react-stately/select": "^3.6.4", - "@react-stately/utils": "^3.10.1", - "@react-types/combobox": "^3.11.1", - "@react-types/shared": "^3.23.1", + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@react-stately/combobox/-/combobox-3.9.2.tgz", + "integrity": "sha512-ZsbAcD58IvxZqwYxg9d2gOf8R/k5RUB2TPUiGKD6wgWfEKH6SDzY3bgRByHGOyMCyJB62cHjih/ZShizNTguqA==", + "dependencies": { + "@react-stately/collections": "^3.10.9", + "@react-stately/form": "^3.0.5", + "@react-stately/list": "^3.10.8", + "@react-stately/overlays": "^3.6.10", + "@react-stately/select": "^3.6.7", + "@react-stately/utils": "^3.10.3", + "@react-types/combobox": "^3.12.1", + "@react-types/shared": "^3.24.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-stately/data": { - "version": "3.11.4", - "resolved": "https://registry.npmjs.org/@react-stately/data/-/data-3.11.4.tgz", - "integrity": "sha512-PbnUQxeE6AznSuEWYnRmrYQ9t5z1Asx98Jtrl96EeA6Iapt9kOjTN9ySqCxtPxMKleb1NIqG3+uHU3veIqmLsg==", + "version": "3.11.6", + "resolved": "https://registry.npmjs.org/@react-stately/data/-/data-3.11.6.tgz", + "integrity": "sha512-S8q1Ejuhijl8SnyVOdDNFrMrWWnLk/Oh1ZT3KHSbTdpfMRtvhi5HukoiP06jlzz75phnpSPQL40npDtUB/kk3Q==", "dependencies": { - "@react-types/shared": "^3.23.1", + "@react-types/shared": "^3.24.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-stately/datepicker": { - "version": "3.9.4", - "resolved": "https://registry.npmjs.org/@react-stately/datepicker/-/datepicker-3.9.4.tgz", - "integrity": "sha512-yBdX01jn6gq4NIVvHIqdjBUPo+WN8Bujc4OnPw+ZnfA4jI0eIgq04pfZ84cp1LVXW0IB0VaCu1AlQ/kvtZjfGA==", + "version": "3.10.2", + "resolved": "https://registry.npmjs.org/@react-stately/datepicker/-/datepicker-3.10.2.tgz", + "integrity": "sha512-pa5IZUw+49AyOnddwu4XwU2kI5eo/1thbiIVNHP8uDpbbBrBkquSk3zVFDAGX1cu/I1U2VUkt64U/dxgkwaMQw==", "dependencies": { - "@internationalized/date": "^3.5.4", + "@internationalized/date": "^3.5.5", "@internationalized/string": "^3.2.3", - "@react-stately/form": "^3.0.3", - "@react-stately/overlays": "^3.6.7", - "@react-stately/utils": "^3.10.1", - "@react-types/datepicker": "^3.7.4", - "@react-types/shared": "^3.23.1", + "@react-stately/form": "^3.0.5", + "@react-stately/overlays": "^3.6.10", + "@react-stately/utils": "^3.10.3", + "@react-types/datepicker": "^3.8.2", + "@react-types/shared": "^3.24.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-stately/dnd": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@react-stately/dnd/-/dnd-3.3.1.tgz", - "integrity": "sha512-I/Ci5xB8hSgAXzoWYWScfMM9UK1MX/eTlARBhiSlfudewweOtNJAI+cXJgU7uiUnGjh4B4v3qDBtlAH1dWDCsw==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@react-stately/dnd/-/dnd-3.4.2.tgz", + "integrity": "sha512-VrHmNoNdVGrx5JHdz/zewmN+N8rlZe+vL/iAOLmvQ74RRLEz8KDFnHdlhgKg1AZqaSg3JJ18BlHEkS7oL1n+tA==", "dependencies": { - "@react-stately/selection": "^3.15.1", - "@react-types/shared": "^3.23.1", + "@react-stately/selection": "^3.16.2", + "@react-types/shared": "^3.24.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-stately/flags": { @@ -8395,436 +8015,436 @@ } }, "node_modules/@react-stately/form": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@react-stately/form/-/form-3.0.3.tgz", - "integrity": "sha512-92YYBvlHEWUGUpXgIaQ48J50jU9XrxfjYIN8BTvvhBHdD63oWgm8DzQnyT/NIAMzdLnhkg7vP+fjG8LjHeyIAg==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@react-stately/form/-/form-3.0.5.tgz", + "integrity": "sha512-J3plwJ63HQz109OdmaTqTA8Qhvl3gcYYK7DtgKyNP6mc/Me2Q4tl2avkWoA+22NRuv5m+J8TpBk4AVHUEOwqeQ==", "dependencies": { - "@react-types/shared": "^3.23.1", + "@react-types/shared": "^3.24.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-stately/grid": { - "version": "3.8.7", - "resolved": "https://registry.npmjs.org/@react-stately/grid/-/grid-3.8.7.tgz", - "integrity": "sha512-he3TXCLAhF5C5z1/G4ySzcwyt7PEiWcVIupxebJQqRyFrNWemSuv+7tolnStmG8maMVIyV3P/3j4eRBbdSlOIg==", - "dependencies": { - "@react-stately/collections": "^3.10.7", - "@react-stately/selection": "^3.15.1", - "@react-types/grid": "^3.2.6", - "@react-types/shared": "^3.23.1", + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@react-stately/grid/-/grid-3.9.2.tgz", + "integrity": "sha512-2gK//sqAqg2Xaq6UITTFQwFUJnBRgcW+cKBVbFt+F8d152xB6UwwTS/K79E5PUkOotwqZgTEpkrSFs/aVxCLpw==", + "dependencies": { + "@react-stately/collections": "^3.10.9", + "@react-stately/selection": "^3.16.2", + "@react-types/grid": "^3.2.8", + "@react-types/shared": "^3.24.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-stately/list": { - "version": "3.10.5", - "resolved": "https://registry.npmjs.org/@react-stately/list/-/list-3.10.5.tgz", - "integrity": "sha512-fV9plO+6QDHiewsYIhboxcDhF17GO95xepC5ki0bKXo44gr14g/LSo/BMmsaMnV+1BuGdBunB05bO4QOIaigXA==", - "dependencies": { - "@react-stately/collections": "^3.10.7", - "@react-stately/selection": "^3.15.1", - "@react-stately/utils": "^3.10.1", - "@react-types/shared": "^3.23.1", + "version": "3.10.8", + "resolved": "https://registry.npmjs.org/@react-stately/list/-/list-3.10.8.tgz", + "integrity": "sha512-rHCiPLXd+Ry3ztR9DkLA5FPQeH4Zd4/oJAEDWJ77W3oBBOdiMp3ZdHDLP7KBRh17XGNLO/QruYoHWAQTPiMF4g==", + "dependencies": { + "@react-stately/collections": "^3.10.9", + "@react-stately/selection": "^3.16.2", + "@react-stately/utils": "^3.10.3", + "@react-types/shared": "^3.24.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-stately/menu": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/@react-stately/menu/-/menu-3.7.1.tgz", - "integrity": "sha512-mX1w9HHzt+xal1WIT2xGrTQsoLvDwuB2R1Er1MBABs//MsJzccycatcgV/J/28m6tO5M9iuFQQvLV+i1dCtodg==", + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/@react-stately/menu/-/menu-3.8.2.tgz", + "integrity": "sha512-lt6hIHmSixMzkKx1rKJf3lbAf01EmEvvIlENL20GLiU9cRbpPnPJ1aJMZ5Ad5ygglA7wAemAx+daPhlTQfF2rg==", "dependencies": { - "@react-stately/overlays": "^3.6.7", - "@react-types/menu": "^3.9.9", - "@react-types/shared": "^3.23.1", + "@react-stately/overlays": "^3.6.10", + "@react-types/menu": "^3.9.11", + "@react-types/shared": "^3.24.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-stately/numberfield": { - "version": "3.9.3", - "resolved": "https://registry.npmjs.org/@react-stately/numberfield/-/numberfield-3.9.3.tgz", - "integrity": "sha512-UlPTLSabhLEuHtgzM0PgfhtEaHy3yttbzcRb8yHNvGo4KbCHeHpTHd3QghKfTFm024Mug7+mVlWCmMtW0f5ttg==", + "version": "3.9.6", + "resolved": "https://registry.npmjs.org/@react-stately/numberfield/-/numberfield-3.9.6.tgz", + "integrity": "sha512-p2R9admGLI439qZzB39dyANhkruprJJtZwuoGVtxW/VD0ficw6BrPVqAaKG25iwKPkmveleh9p8o+yRqjGedcQ==", "dependencies": { "@internationalized/number": "^3.5.3", - "@react-stately/form": "^3.0.3", - "@react-stately/utils": "^3.10.1", - "@react-types/numberfield": "^3.8.3", + "@react-stately/form": "^3.0.5", + "@react-stately/utils": "^3.10.3", + "@react-types/numberfield": "^3.8.5", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-stately/overlays": { - "version": "3.6.7", - "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.7.tgz", - "integrity": "sha512-6zp8v/iNUm6YQap0loaFx6PlvN8C0DgWHNlrlzMtMmNuvjhjR0wYXVaTfNoUZBWj25tlDM81ukXOjpRXg9rLrw==", + "version": "3.6.10", + "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.10.tgz", + "integrity": "sha512-XxZ2qScT5JPwGk9qiVJE4dtVh3AXTcYwGRA5RsHzC26oyVVsegPqY2PmNJGblAh6Q57VyodoVUyebE0Eo5CzRw==", "dependencies": { - "@react-stately/utils": "^3.10.1", - "@react-types/overlays": "^3.8.7", + "@react-stately/utils": "^3.10.3", + "@react-types/overlays": "^3.8.9", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-stately/radio": { - "version": "3.10.4", - "resolved": "https://registry.npmjs.org/@react-stately/radio/-/radio-3.10.4.tgz", - "integrity": "sha512-kCIc7tAl4L7Hu4Wt9l2jaa+MzYmAJm0qmC8G8yPMbExpWbLRu6J8Un80GZu+JxvzgDlqDyrVvyv9zFifwH/NkQ==", - "dependencies": { - "@react-stately/form": "^3.0.3", - "@react-stately/utils": "^3.10.1", - "@react-types/radio": "^3.8.1", - "@react-types/shared": "^3.23.1", + "version": "3.10.7", + "resolved": "https://registry.npmjs.org/@react-stately/radio/-/radio-3.10.7.tgz", + "integrity": "sha512-ZwGzFR+sGd42DxRlDTp3G2vLZyhMVtgHkwv2BxazPHxPMvLO9yYl7+3PPNxAmhMB4tg2u9CrzffpGX2rmEJEXA==", + "dependencies": { + "@react-stately/form": "^3.0.5", + "@react-stately/utils": "^3.10.3", + "@react-types/radio": "^3.8.3", + "@react-types/shared": "^3.24.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-stately/searchfield": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/@react-stately/searchfield/-/searchfield-3.5.3.tgz", - "integrity": "sha512-H0OvlgwPIFdc471ypw79MDjz3WXaVq9+THaY6JM4DIohEJNN5Dwei7O9g6r6m/GqPXJIn5TT3b74kJ2Osc00YQ==", + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@react-stately/searchfield/-/searchfield-3.5.6.tgz", + "integrity": "sha512-gVzU0FeWiLYD8VOYRgWlk79Qn7b2eirqOnWhtI5VNuGN8WyNaCIuBp6SkXTW2dY8hs2Hzn8HlMbgy1MIc7130Q==", "dependencies": { - "@react-stately/utils": "^3.10.1", - "@react-types/searchfield": "^3.5.5", + "@react-stately/utils": "^3.10.3", + "@react-types/searchfield": "^3.5.8", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-stately/select": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/@react-stately/select/-/select-3.6.4.tgz", - "integrity": "sha512-whZgF1N53D0/dS8tOFdrswB0alsk5Q5620HC3z+5f2Hpi8gwgAZ8TYa+2IcmMYRiT+bxVuvEc/NirU9yPmqGbA==", - "dependencies": { - "@react-stately/form": "^3.0.3", - "@react-stately/list": "^3.10.5", - "@react-stately/overlays": "^3.6.7", - "@react-types/select": "^3.9.4", - "@react-types/shared": "^3.23.1", + "version": "3.6.7", + "resolved": "https://registry.npmjs.org/@react-stately/select/-/select-3.6.7.tgz", + "integrity": "sha512-hCUIddw0mPxVy1OH6jhyaDwgNea9wESjf+MYdnnTG/abRB+OZv/dWScd87OjzVsHTHWcw7CN4ZzlJoXm0FJbKQ==", + "dependencies": { + "@react-stately/form": "^3.0.5", + "@react-stately/list": "^3.10.8", + "@react-stately/overlays": "^3.6.10", + "@react-types/select": "^3.9.6", + "@react-types/shared": "^3.24.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-stately/selection": { - "version": "3.15.1", - "resolved": "https://registry.npmjs.org/@react-stately/selection/-/selection-3.15.1.tgz", - "integrity": "sha512-6TQnN9L0UY9w19B7xzb1P6mbUVBtW840Cw1SjgNXCB3NPaCf59SwqClYzoj8O2ZFzMe8F/nUJtfU1NS65/OLlw==", + "version": "3.16.2", + "resolved": "https://registry.npmjs.org/@react-stately/selection/-/selection-3.16.2.tgz", + "integrity": "sha512-C4eSKw7BIZHJLPzwqGqCnsyFHiUIEyryVQZTJDt6d0wYBOHU6k1pW+Q4VhrZuzSv+IMiI2RkiXeJKc55f0ZXrg==", "dependencies": { - "@react-stately/collections": "^3.10.7", - "@react-stately/utils": "^3.10.1", - "@react-types/shared": "^3.23.1", + "@react-stately/collections": "^3.10.9", + "@react-stately/utils": "^3.10.3", + "@react-types/shared": "^3.24.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-stately/slider": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@react-stately/slider/-/slider-3.5.4.tgz", - "integrity": "sha512-Jsf7K17dr93lkNKL9ij8HUcoM1sPbq8TvmibD6DhrK9If2lje+OOL8y4n4qreUnfMT56HCAeS9wCO3fg3eMyrw==", + "version": "3.5.7", + "resolved": "https://registry.npmjs.org/@react-stately/slider/-/slider-3.5.7.tgz", + "integrity": "sha512-gEIGTcpBLcXixd8LYiLc8HKrBiGQJltrrEGoOvvTP8KVItXQxmeL+JiSsh8qgOoUdRRpzmAoFNUKGEg2/gtN8A==", "dependencies": { - "@react-stately/utils": "^3.10.1", - "@react-types/shared": "^3.23.1", - "@react-types/slider": "^3.7.3", + "@react-stately/utils": "^3.10.3", + "@react-types/shared": "^3.24.1", + "@react-types/slider": "^3.7.5", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-stately/table": { - "version": "3.11.8", - "resolved": "https://registry.npmjs.org/@react-stately/table/-/table-3.11.8.tgz", - "integrity": "sha512-EdyRW3lT1/kAVDp5FkEIi1BQ7tvmD2YgniGdLuW/l9LADo0T+oxZqruv60qpUS6sQap+59Riaxl91ClDxrJnpg==", + "version": "3.12.2", + "resolved": "https://registry.npmjs.org/@react-stately/table/-/table-3.12.2.tgz", + "integrity": "sha512-dUcsrdALylhWz6exqIoqtR/dnrzjIAptMyAUPT378Y/mCYs4PxKkHSvtPEQrZhdQS1ALIIgfeg9KUVIempoXPw==", "dependencies": { - "@react-stately/collections": "^3.10.7", + "@react-stately/collections": "^3.10.9", "@react-stately/flags": "^3.0.3", - "@react-stately/grid": "^3.8.7", - "@react-stately/selection": "^3.15.1", - "@react-stately/utils": "^3.10.1", - "@react-types/grid": "^3.2.6", - "@react-types/shared": "^3.23.1", - "@react-types/table": "^3.9.5", + "@react-stately/grid": "^3.9.2", + "@react-stately/selection": "^3.16.2", + "@react-stately/utils": "^3.10.3", + "@react-types/grid": "^3.2.8", + "@react-types/shared": "^3.24.1", + "@react-types/table": "^3.10.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-stately/tabs": { - "version": "3.6.6", - "resolved": "https://registry.npmjs.org/@react-stately/tabs/-/tabs-3.6.6.tgz", - "integrity": "sha512-sOLxorH2uqjAA+v1ppkMCc2YyjgqvSGeBDgtR/lyPSDd4CVMoTExszROX2dqG0c8il9RQvzFuufUtQWMY6PgSA==", + "version": "3.6.9", + "resolved": "https://registry.npmjs.org/@react-stately/tabs/-/tabs-3.6.9.tgz", + "integrity": "sha512-YZDqZng3HrRX+uXmg6u78x73Oi24G5ICpiXVqDKKDkO333XCA5H8MWItiuPZkYB2h3SbaCaLqSobLkvCoWYpNQ==", "dependencies": { - "@react-stately/list": "^3.10.5", - "@react-types/shared": "^3.23.1", - "@react-types/tabs": "^3.3.7", + "@react-stately/list": "^3.10.8", + "@react-types/shared": "^3.24.1", + "@react-types/tabs": "^3.3.9", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-stately/toggle": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.7.4.tgz", - "integrity": "sha512-CoYFe9WrhLkDP4HGDpJYQKwfiYCRBAeoBQHv+JWl5eyK61S8xSwoHsveYuEZ3bowx71zyCnNAqWRrmNOxJ4CKA==", + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.7.7.tgz", + "integrity": "sha512-AS+xB4+hHWa3wzYkbS6pwBkovPfIE02B9SnuYTe0stKcuejpWKo5L3QMptW0ftFYsW3ZPCXuneImfObEw2T01A==", "dependencies": { - "@react-stately/utils": "^3.10.1", - "@react-types/checkbox": "^3.8.1", + "@react-stately/utils": "^3.10.3", + "@react-types/checkbox": "^3.8.3", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-stately/tooltip": { - "version": "3.4.9", - "resolved": "https://registry.npmjs.org/@react-stately/tooltip/-/tooltip-3.4.9.tgz", - "integrity": "sha512-P7CDJsdoKarz32qFwf3VNS01lyC+63gXpDZG31pUu+EO5BeQd4WKN/AH1Beuswpr4GWzxzFc1aXQgERFGVzraA==", + "version": "3.4.12", + "resolved": "https://registry.npmjs.org/@react-stately/tooltip/-/tooltip-3.4.12.tgz", + "integrity": "sha512-QKYT/cze7n9qaBsk7o5ais3jRfhYCzcVRfps+iys/W+/9FFbbhjfQG995Lwi6b+vGOHWfXxXpwmyIO2tzM1Iog==", "dependencies": { - "@react-stately/overlays": "^3.6.7", - "@react-types/tooltip": "^3.4.9", + "@react-stately/overlays": "^3.6.10", + "@react-types/tooltip": "^3.4.11", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-stately/tree": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@react-stately/tree/-/tree-3.8.1.tgz", - "integrity": "sha512-LOdkkruJWch3W89h4B/bXhfr0t0t1aRfEp+IMrrwdRAl23NaPqwl5ILHs4Xu5XDHqqhg8co73pHrJwUyiTWEjw==", - "dependencies": { - "@react-stately/collections": "^3.10.7", - "@react-stately/selection": "^3.15.1", - "@react-stately/utils": "^3.10.1", - "@react-types/shared": "^3.23.1", + "version": "3.8.4", + "resolved": "https://registry.npmjs.org/@react-stately/tree/-/tree-3.8.4.tgz", + "integrity": "sha512-HFNclIXJ/3QdGQWxXbj+tdlmIX/XwCfzAMB5m26xpJ6HtJhia6dtx3GLfcdyHNjmuRbAsTBsAAnnVKBmNRUdIQ==", + "dependencies": { + "@react-stately/collections": "^3.10.9", + "@react-stately/selection": "^3.16.2", + "@react-stately/utils": "^3.10.3", + "@react-types/shared": "^3.24.1", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-stately/utils": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.1.tgz", - "integrity": "sha512-VS/EHRyicef25zDZcM/ClpzYMC5i2YGN6uegOeQawmgfGjb02yaCX0F0zR69Pod9m2Hr3wunTbtpgVXvYbZItg==", + "version": "3.10.3", + "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.3.tgz", + "integrity": "sha512-moClv7MlVSHpbYtQIkm0Cx+on8Pgt1XqtPx6fy9rQFb2DNc9u1G3AUVnqA17buOkH1vLxAtX4MedlxMWyRCYYA==", "dependencies": { "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-types/calendar": { - "version": "3.4.6", - "resolved": "https://registry.npmjs.org/@react-types/calendar/-/calendar-3.4.6.tgz", - "integrity": "sha512-WSntZPwtvsIYWvBQRAPvuCn55UTJBZroTvX0vQvWykJRQnPAI20G1hMQ3dNsnAL+gLZUYxBXn66vphmjUuSYew==", + "version": "3.4.9", + "resolved": "https://registry.npmjs.org/@react-types/calendar/-/calendar-3.4.9.tgz", + "integrity": "sha512-O/PS9c21HgO9qzxOyZ7/dTccxabFZdF6tj3UED4DrBw7AN3KZ7JMzwzYbwHinOcO7nUcklGgNoAIHk45UAKR9g==", "dependencies": { - "@internationalized/date": "^3.5.4", - "@react-types/shared": "^3.23.1" + "@internationalized/date": "^3.5.5", + "@react-types/shared": "^3.24.1" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-types/checkbox": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.8.1.tgz", - "integrity": "sha512-5/oVByPw4MbR/8QSdHCaalmyWC71H/QGgd4aduTJSaNi825o+v/hsN2/CH7Fq9atkLKsC8fvKD00Bj2VGaKriQ==", + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.8.3.tgz", + "integrity": "sha512-f4c1mnLEt0iS1NMkyZXgT3q3AgcxzDk7w6MSONOKydcnh0xG5L2oefY14DhVDLkAuQS7jThlUFwiAs+MxiO3MA==", "dependencies": { - "@react-types/shared": "^3.23.1" + "@react-types/shared": "^3.24.1" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-types/combobox": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/@react-types/combobox/-/combobox-3.11.1.tgz", - "integrity": "sha512-UNc3OHt5cUt5gCTHqhQIqhaWwKCpaNciD8R7eQazmHiA9fq8ROlV+7l3gdNgdhJbTf5Bu/V5ISnN7Y1xwL3zqQ==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@react-types/combobox/-/combobox-3.12.1.tgz", + "integrity": "sha512-bd5YwHZWtgnJx4jGbplWbYzXj7IbO5w3IY5suNR7r891rx6IktquZ8GQwyYH0pQ/x+X5LdK2xI59i6+QC2PmlA==", "dependencies": { - "@react-types/shared": "^3.23.1" + "@react-types/shared": "^3.24.1" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-types/datepicker": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@react-types/datepicker/-/datepicker-3.7.4.tgz", - "integrity": "sha512-ZfvgscvNzBJpYyVWg3nstJtA/VlWLwErwSkd1ivZYam859N30w8yH+4qoYLa6FzWLCFlrsRHyvtxlEM7lUAt5A==", + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/@react-types/datepicker/-/datepicker-3.8.2.tgz", + "integrity": "sha512-Ih4F0bNVGrEuwCD8XmmBAspuuOBsj/Svn/pDFtC2RyAZjXfWh+sI+n4XLz/sYKjvARh5TUI8GNy9smYS4vYXug==", "dependencies": { - "@internationalized/date": "^3.5.4", - "@react-types/calendar": "^3.4.6", - "@react-types/overlays": "^3.8.7", - "@react-types/shared": "^3.23.1" + "@internationalized/date": "^3.5.5", + "@react-types/calendar": "^3.4.9", + "@react-types/overlays": "^3.8.9", + "@react-types/shared": "^3.24.1" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-types/grid": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.2.6.tgz", - "integrity": "sha512-XfHenL2jEBUYrhKiPdeM24mbLRXUn79wVzzMhrNYh24nBwhsPPpxF+gjFddT3Cy8dt6tRInfT6pMEu9nsXwaHw==", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.2.8.tgz", + "integrity": "sha512-6PJrpukwMqlv3IhJSDkJuVbhHM8Oe6hd2supWqd9adMXrlSP7QHt9a8SgFcFblCCTx8JzUaA0PvY5sTudcEtOQ==", "dependencies": { - "@react-types/shared": "^3.23.1" + "@react-types/shared": "^3.24.1" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-types/menu": { - "version": "3.9.9", - "resolved": "https://registry.npmjs.org/@react-types/menu/-/menu-3.9.9.tgz", - "integrity": "sha512-FamUaPVs1Fxr4KOMI0YcR2rYZHoN7ypGtgiEiJ11v/tEPjPPGgeKDxii0McCrdOkjheatLN1yd2jmMwYj6hTDg==", + "version": "3.9.11", + "resolved": "https://registry.npmjs.org/@react-types/menu/-/menu-3.9.11.tgz", + "integrity": "sha512-IguQVF70d7aHXgWB1Rd2a/PiIuLZ2Nt7lyayJshLcy/NLOYmgpTmTyn2WCtlA5lTfQwmQrNFf4EvnWkeljJXdA==", "dependencies": { - "@react-types/overlays": "^3.8.7", - "@react-types/shared": "^3.23.1" + "@react-types/overlays": "^3.8.9", + "@react-types/shared": "^3.24.1" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-types/numberfield": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/@react-types/numberfield/-/numberfield-3.8.3.tgz", - "integrity": "sha512-z5fGfVj3oh5bmkw9zDvClA1nDBSFL9affOuyk2qZ/M2SRUmykDAPCksbfcMndft0XULWKbF4s2CYbVI+E/yrUA==", + "version": "3.8.5", + "resolved": "https://registry.npmjs.org/@react-types/numberfield/-/numberfield-3.8.5.tgz", + "integrity": "sha512-LVWggkxwd1nyVZomXBPfQA1E4I4/i4PBifjcDs2AfcV7q5RE9D+DVIDXsYucVOBxPlDOxiAq/T9ypobspWSwHw==", "dependencies": { - "@react-types/shared": "^3.23.1" + "@react-types/shared": "^3.24.1" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-types/overlays": { - "version": "3.8.7", - "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.7.tgz", - "integrity": "sha512-zCOYvI4at2DkhVpviIClJ7bRrLXYhSg3Z3v9xymuPH3mkiuuP/dm8mUCtkyY4UhVeUTHmrQh1bzaOP00A+SSQA==", + "version": "3.8.9", + "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.9.tgz", + "integrity": "sha512-9ni9upQgXPnR+K9cWmbYWvm3ll9gH8P/XsEZprqIV5zNLMF334jADK48h4jafb1X9RFnj0WbHo6BqcSObzjTig==", "dependencies": { - "@react-types/shared": "^3.23.1" + "@react-types/shared": "^3.24.1" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-types/radio": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@react-types/radio/-/radio-3.8.1.tgz", - "integrity": "sha512-bK0gio/qj1+0Ldu/3k/s9BaOZvnnRgvFtL3u5ky479+aLG5qf1CmYed3SKz8ErZ70JkpuCSrSwSCFf0t1IHovw==", + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/@react-types/radio/-/radio-3.8.3.tgz", + "integrity": "sha512-fUVJt4Bb6jOReFqnhHVNxWXH7t6c60uSFfoPKuXt/xI9LL1i2jhpur0ggpTfIn3qLIAmNBU6bKBCWAdr4KjeVQ==", "dependencies": { - "@react-types/shared": "^3.23.1" + "@react-types/shared": "^3.24.1" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-types/searchfield": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/@react-types/searchfield/-/searchfield-3.5.5.tgz", - "integrity": "sha512-T/NHg12+w23TxlXMdetogLDUldk1z5dDavzbnjKrLkajLb221bp8brlR/+O6C1CtFpuJGALqYHgTasU1qkQFSA==", + "version": "3.5.8", + "resolved": "https://registry.npmjs.org/@react-types/searchfield/-/searchfield-3.5.8.tgz", + "integrity": "sha512-EcdqalHNIC6BJoRfmqUhAvXRd3aHkWlV1cFCz57JJKgUEFYyXPNrXd1b73TKLzTXEk+X/D6LKV15ILYpEaxu8w==", "dependencies": { - "@react-types/shared": "^3.23.1", - "@react-types/textfield": "^3.9.3" + "@react-types/shared": "^3.24.1", + "@react-types/textfield": "^3.9.6" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-types/select": { - "version": "3.9.4", - "resolved": "https://registry.npmjs.org/@react-types/select/-/select-3.9.4.tgz", - "integrity": "sha512-xI7dnOW2st91fPPcv6hdtrTdcfetYiqZuuVPZ5TRobY7Q10/Zqqe/KqtOw1zFKUj9xqNJe4Ov3xP5GSdcO60Eg==", + "version": "3.9.6", + "resolved": "https://registry.npmjs.org/@react-types/select/-/select-3.9.6.tgz", + "integrity": "sha512-cVSFR0eJLup/ht1Uto+y8uyLmHO89J6wNh65SIHb3jeVz9oLBAedP3YNI2qB+F9qFMUcA8PBSLXIIuT6gXzLgQ==", "dependencies": { - "@react-types/shared": "^3.23.1" + "@react-types/shared": "^3.24.1" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-types/shared": { - "version": "3.23.1", - "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.23.1.tgz", - "integrity": "sha512-5d+3HbFDxGZjhbMBeFHRQhexMFt4pUce3okyRtUVKbbedQFUrtXSBg9VszgF2RTeQDKDkMCIQDtz5ccP/Lk1gw==", + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.24.1.tgz", + "integrity": "sha512-AUQeGYEm/zDTN6zLzdXolDxz3Jk5dDL7f506F07U8tBwxNNI3WRdhU84G0/AaFikOZzDXhOZDr3MhQMzyE7Ydw==", "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-types/slider": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@react-types/slider/-/slider-3.7.3.tgz", - "integrity": "sha512-F8qFQaD2mqug2D0XeWMmjGBikiwbdERFlhFzdvNGbypPLz3AZICBKp1ZLPWdl0DMuy03G/jy6Gl4mDobl7RT2g==", + "version": "3.7.5", + "resolved": "https://registry.npmjs.org/@react-types/slider/-/slider-3.7.5.tgz", + "integrity": "sha512-bRitwQRQjQoOcKEdPMljnvm474dwrmsc6pdsVQDh/qynzr+KO9IHuYc3qPW53WVE2hMQJDohlqtCAWQXWQ5Vcg==", "dependencies": { - "@react-types/shared": "^3.23.1" + "@react-types/shared": "^3.24.1" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-types/table": { - "version": "3.9.5", - "resolved": "https://registry.npmjs.org/@react-types/table/-/table-3.9.5.tgz", - "integrity": "sha512-fgM2j9F/UR4Anmd28CueghCgBwOZoCVyN8fjaIFPd2MN4gCwUUfANwxLav65gZk4BpwUXGoQdsW+X50L3555mg==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@react-types/table/-/table-3.10.1.tgz", + "integrity": "sha512-xsNh0Gm4GtNeSknZqkMsfGvc94fycmfhspGO+FzQKim2hB5k4yILwd+lHYQ2UKW6New9GVH/zN2Pd3v67IeZ2g==", "dependencies": { - "@react-types/grid": "^3.2.6", - "@react-types/shared": "^3.23.1" + "@react-types/grid": "^3.2.8", + "@react-types/shared": "^3.24.1" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-types/tabs": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@react-types/tabs/-/tabs-3.3.7.tgz", - "integrity": "sha512-ZdLe5xOcFX6+/ni45Dl2jO0jFATpTnoSqj6kLIS/BYv8oh0n817OjJkLf+DS3CLfNjApJWrHqAk34xNh6nRnEg==", + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/@react-types/tabs/-/tabs-3.3.9.tgz", + "integrity": "sha512-3Q9kRVvg/qDyeJR/W1+C2z2OyvDWQrSLvOCvAezX5UKzww4rBEAA8OqBlyDwn7q3fiwrh/m64l6p+dbln+RdxQ==", "dependencies": { - "@react-types/shared": "^3.23.1" + "@react-types/shared": "^3.24.1" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-types/textfield": { - "version": "3.9.3", - "resolved": "https://registry.npmjs.org/@react-types/textfield/-/textfield-3.9.3.tgz", - "integrity": "sha512-DoAY6cYOL0pJhgNGI1Rosni7g72GAt4OVr2ltEx2S9ARmFZ0DBvdhA9lL2nywcnKMf27PEJcKMXzXc10qaHsJw==", + "version": "3.9.6", + "resolved": "https://registry.npmjs.org/@react-types/textfield/-/textfield-3.9.6.tgz", + "integrity": "sha512-0uPqjJh4lYp1aL1HL9IlV8Cgp8eT0PcsNfdoCktfkLytvvBPmox2Pfm57W/d0xTtzZu2CjxhYNTob+JtGAOeXA==", "dependencies": { - "@react-types/shared": "^3.23.1" + "@react-types/shared": "^3.24.1" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-types/tooltip": { - "version": "3.4.9", - "resolved": "https://registry.npmjs.org/@react-types/tooltip/-/tooltip-3.4.9.tgz", - "integrity": "sha512-wZ+uF1+Zc43qG+cOJzioBmLUNjRa7ApdcT0LI1VvaYvH5GdfjzUJOorLX9V/vAci0XMJ50UZ+qsh79aUlw2yqg==", + "version": "3.4.11", + "resolved": "https://registry.npmjs.org/@react-types/tooltip/-/tooltip-3.4.11.tgz", + "integrity": "sha512-WPikHQxeT5Lb09yJEaW6Ja3ecE0g1YM6ukWYS2v/iZLUPn5YlYrGytspuCYQNSh/u7suCz4zRLEHYCl7OCigjw==", "dependencies": { - "@react-types/overlays": "^3.8.7", - "@react-types/shared": "^3.23.1" + "@react-types/overlays": "^3.8.9", + "@react-types/shared": "^3.24.1" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@redis/bloom": { @@ -8900,32 +8520,6 @@ "node": ">=14.0.0" } }, - "node_modules/@rnx-kit/chromium-edge-launcher": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@rnx-kit/chromium-edge-launcher/-/chromium-edge-launcher-1.0.0.tgz", - "integrity": "sha512-lzD84av1ZQhYUS+jsGqJiCMaJO2dn9u+RTT9n9q6D3SaKVwWqv+7AoRKqBu19bkwyE+iFRl1ymr40QS90jVFYg==", - "peer": true, - "dependencies": { - "@types/node": "^18.0.0", - "escape-string-regexp": "^4.0.0", - "is-wsl": "^2.2.0", - "lighthouse-logger": "^1.0.0", - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=14.15" - } - }, - "node_modules/@rnx-kit/chromium-edge-launcher/node_modules/@types/node": { - "version": "18.19.39", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.39.tgz", - "integrity": "sha512-nPwTRDKUctxw3di5b4TfT3I0sWDiWoPQCZjXhvdkINntwr8lcoVCKsTgnXeRubKIlfnV+eN/HYk6Jb40tbcEAQ==", - "peer": true, - "dependencies": { - "undici-types": "~5.26.4" - } - }, "node_modules/@rollup/pluginutils": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", @@ -9153,160 +8747,27 @@ ] }, "node_modules/@safe-global/safe-apps-provider": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/@safe-global/safe-apps-provider/-/safe-apps-provider-0.18.1.tgz", - "integrity": "sha512-V4a05A3EgJcriqtDoJklDz1BOinWhC6P0hjUSxshA4KOZM7rGPCTto/usXs09zr1vvL28evl/NldSTv97j2bmg==", + "version": "0.18.3", + "resolved": "https://registry.npmjs.org/@safe-global/safe-apps-provider/-/safe-apps-provider-0.18.3.tgz", + "integrity": "sha512-f/0cNv3S4v7p8rowAjj0hDCg8Q8P/wBjp5twkNWeBdvd0RDr7BuRBPPk74LCqmjQ82P+1ltLlkmVFSmxTIT7XQ==", "dependencies": { - "@safe-global/safe-apps-sdk": "^8.1.0", + "@safe-global/safe-apps-sdk": "^9.1.0", "events": "^3.3.0" } }, "node_modules/@safe-global/safe-apps-sdk": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@safe-global/safe-apps-sdk/-/safe-apps-sdk-8.1.0.tgz", - "integrity": "sha512-XJbEPuaVc7b9n23MqlF6c+ToYIS3f7P2Sel8f3cSBQ9WORE4xrSuvhMpK9fDSFqJ7by/brc+rmJR/5HViRr0/w==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@safe-global/safe-apps-sdk/-/safe-apps-sdk-9.1.0.tgz", + "integrity": "sha512-N5p/ulfnnA2Pi2M3YeWjULeWbjo7ei22JwU/IXnhoHzKq3pYCN6ynL9mJBOlvDVv892EgLPCWCOwQk/uBT2v0Q==", "dependencies": { "@safe-global/safe-gateway-typescript-sdk": "^3.5.3", - "viem": "^1.0.0" - } - }, - "node_modules/@safe-global/safe-apps-sdk/node_modules/@noble/curves": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", - "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", - "dependencies": { - "@noble/hashes": "1.3.2" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@safe-global/safe-apps-sdk/node_modules/@noble/hashes": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", - "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@safe-global/safe-apps-sdk/node_modules/@scure/bip32": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.2.tgz", - "integrity": "sha512-N1ZhksgwD3OBlwTv3R6KFEcPojl/W4ElJOeCZdi+vuI5QmTFwLq3OFf2zd2ROpKvxFdgZ6hUpb0dx9bVNEwYCA==", - "dependencies": { - "@noble/curves": "~1.2.0", - "@noble/hashes": "~1.3.2", - "@scure/base": "~1.1.2" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@safe-global/safe-apps-sdk/node_modules/@scure/bip39": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.1.tgz", - "integrity": "sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==", - "dependencies": { - "@noble/hashes": "~1.3.0", - "@scure/base": "~1.1.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@safe-global/safe-apps-sdk/node_modules/abitype": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/abitype/-/abitype-0.9.8.tgz", - "integrity": "sha512-puLifILdm+8sjyss4S+fsUN09obiT1g2YW6CtcQF+QDzxR0euzgEB29MZujC6zMk2a6SVmtttq1fc6+YFA7WYQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wagmi-dev" - } - ], - "peerDependencies": { - "typescript": ">=5.0.4", - "zod": "^3 >=3.19.1" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - }, - "zod": { - "optional": true - } - } - }, - "node_modules/@safe-global/safe-apps-sdk/node_modules/isows": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.3.tgz", - "integrity": "sha512-2cKei4vlmg2cxEjm3wVSqn8pcoRF/LX/wpifuuNquFO4SQmPwarClT+SUCA2lt+l581tTeZIPIZuIDo2jWN1fg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wagmi-dev" - } - ], - "peerDependencies": { - "ws": "*" - } - }, - "node_modules/@safe-global/safe-apps-sdk/node_modules/viem": { - "version": "1.21.4", - "resolved": "https://registry.npmjs.org/viem/-/viem-1.21.4.tgz", - "integrity": "sha512-BNVYdSaUjeS2zKQgPs+49e5JKocfo60Ib2yiXOWBT6LuVxY1I/6fFX3waEtpXvL1Xn4qu+BVitVtMh9lyThyhQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wevm" - } - ], - "dependencies": { - "@adraffy/ens-normalize": "1.10.0", - "@noble/curves": "1.2.0", - "@noble/hashes": "1.3.2", - "@scure/bip32": "1.3.2", - "@scure/bip39": "1.2.1", - "abitype": "0.9.8", - "isows": "1.0.3", - "ws": "8.13.0" - }, - "peerDependencies": { - "typescript": ">=5.0.4" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@safe-global/safe-apps-sdk/node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "viem": "^2.1.1" } }, "node_modules/@safe-global/safe-gateway-typescript-sdk": { - "version": "3.22.0", - "resolved": "https://registry.npmjs.org/@safe-global/safe-gateway-typescript-sdk/-/safe-gateway-typescript-sdk-3.22.0.tgz", - "integrity": "sha512-QKgucFMloZ7S23X70U6OmFaRxfX2O52xBAZFIDeW9n+uiANG+JYUiJv6UC0/eVNto+CU/dOVnpqRDhr6/ElKDg==", + "version": "3.22.2", + "resolved": "https://registry.npmjs.org/@safe-global/safe-gateway-typescript-sdk/-/safe-gateway-typescript-sdk-3.22.2.tgz", + "integrity": "sha512-Y0yAxRaB98LFp2Dm+ACZqBSdAmI3FlpH/LjxOZ94g/ouuDJecSq0iR26XZ5QDuEL8Rf+L4jBJaoDC08CD0KkJw==", "engines": { "node": ">=16" } @@ -10987,27 +10448,27 @@ } }, "node_modules/@tanstack/query-core": { - "version": "5.51.1", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.51.1.tgz", - "integrity": "sha512-fJBMQMpo8/KSsWW5ratJR5+IFr7YNJ3K2kfP9l5XObYHsgfVy1w3FJUWU4FT2fj7+JMaEg33zOcNDBo0LMwHnw==", + "version": "5.55.4", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.55.4.tgz", + "integrity": "sha512-uoRqNnRfzOH4OMIoxj8E2+Us89UIGXfau981qYJWsNMkFS1GXR4UIyzUTVGq4N7SDLHgFPpo6IOazqUV5gkMZA==", "funding": { "type": "github", "url": "https://github.com/sponsors/tannerlinsley" } }, "node_modules/@tanstack/react-query": { - "version": "5.51.1", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.51.1.tgz", - "integrity": "sha512-s47HKFnQ4HOJAHoIiXcpna/roMMPZJPy6fJ6p4ZNVn8+/onlLBEDd1+xc8OnDuwgvecqkZD7Z2mnSRbcWefrKw==", + "version": "5.55.4", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.55.4.tgz", + "integrity": "sha512-e3uX5XkLD9oTV66/VsVpkYz3Ds/ps/Yk+V5d89xthAbtNIKKBEm4FdNb9yISFzGEGezUzVO68qmfmiSrtScvsg==", "dependencies": { - "@tanstack/query-core": "5.51.1" + "@tanstack/query-core": "5.55.4" }, "funding": { "type": "github", "url": "https://github.com/sponsors/tannerlinsley" }, "peerDependencies": { - "react": "^18.0.0" + "react": "^18 || ^19" } }, "node_modules/@tanstack/react-virtual": { @@ -11435,9 +10896,9 @@ } }, "node_modules/@types/react-transition-group": { - "version": "4.4.10", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz", - "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==", + "version": "4.4.11", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.11.tgz", + "integrity": "sha512-RM05tAniPZ5DZPzzNFP+DmrcOdD0efDUxMy3145oljWSl3x9ZV5vhme98gTxFrj2lhXvmGNnUiuDyJgY9IKkNA==", "dependencies": { "@types/react": "*" } @@ -11527,9 +10988,9 @@ "dev": true }, "node_modules/@types/yargs": { - "version": "17.0.32", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", - "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", "peer": true, "dependencies": { "@types/yargs-parser": "*" @@ -11863,15 +11324,15 @@ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" }, "node_modules/@wagmi/connectors": { - "version": "5.0.23", - "resolved": "https://registry.npmjs.org/@wagmi/connectors/-/connectors-5.0.23.tgz", - "integrity": "sha512-0VZaxi0W9jZ9tYvLdFULxS0JhhJkU6kIhQ/Ovw6VRvL03pLSZN93NFZ8W5X+KYXljko+ZAH11xNUsOgpTlcKdw==", + "version": "5.1.10", + "resolved": "https://registry.npmjs.org/@wagmi/connectors/-/connectors-5.1.10.tgz", + "integrity": "sha512-ybgKV09PIhgUgQ4atXTs2KOy4Hevd6f972SXfx6HTgsnFXlzxzN6o0aWjhavZOYjvx5tjuL3+8Mgqo0R7uP5Cg==", "dependencies": { "@coinbase/wallet-sdk": "4.0.4", - "@metamask/sdk": "0.26.4", - "@safe-global/safe-apps-provider": "0.18.1", - "@safe-global/safe-apps-sdk": "8.1.0", - "@walletconnect/ethereum-provider": "2.13.0", + "@metamask/sdk": "0.28.2", + "@safe-global/safe-apps-provider": "0.18.3", + "@safe-global/safe-apps-sdk": "9.1.0", + "@walletconnect/ethereum-provider": "2.16.1", "@walletconnect/modal": "2.6.2", "cbw-sdk": "npm:@coinbase/wallet-sdk@3.9.3" }, @@ -11879,7 +11340,7 @@ "url": "https://github.com/sponsors/wevm" }, "peerDependencies": { - "@wagmi/core": "2.11.8", + "@wagmi/core": "2.13.5", "typescript": ">=5.0.4", "viem": "2.x" }, @@ -11890,9 +11351,9 @@ } }, "node_modules/@wagmi/core": { - "version": "2.11.8", - "resolved": "https://registry.npmjs.org/@wagmi/core/-/core-2.11.8.tgz", - "integrity": "sha512-ZdhFcdS6DITiIr8CbFFjXALxNyY9CNqfed8FzOK3Qvhm5myGW8fn9BmpFhcu5fk7oWQmvFQd9psCjbZBtm3Ulg==", + "version": "2.13.5", + "resolved": "https://registry.npmjs.org/@wagmi/core/-/core-2.13.5.tgz", + "integrity": "sha512-lvX/hApJTSA/H2kOklokjIYiUpnT8CpBH80GeOiKxU0CGK1wNHTu20GRTCy0GF1t7jkNwPSG3m0SmnXmgYMmHw==", "dependencies": { "eventemitter3": "5.0.1", "mipd": "0.0.7", @@ -11916,9 +11377,9 @@ } }, "node_modules/@walletconnect/core": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.13.0.tgz", - "integrity": "sha512-blDuZxQenjeXcVJvHxPznTNl6c/2DO4VNrFnus+qHmO6OtT5lZRowdMtlCaCNb1q0OxzgrmBDcTOCbFcCpio/g==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.16.1.tgz", + "integrity": "sha512-UlsnEMT5wwFvmxEjX8s4oju7R3zadxNbZgsFeHEsjh7uknY2zgmUe1Lfc5XU6zyPb1Jx7Nqpdx1KN485ee8ogw==", "dependencies": { "@walletconnect/heartbeat": "1.2.2", "@walletconnect/jsonrpc-provider": "1.0.14", @@ -11927,34 +11388,18 @@ "@walletconnect/jsonrpc-ws-connection": "1.0.14", "@walletconnect/keyvaluestorage": "1.1.1", "@walletconnect/logger": "2.1.2", - "@walletconnect/relay-api": "1.0.10", + "@walletconnect/relay-api": "1.0.11", "@walletconnect/relay-auth": "1.0.4", "@walletconnect/safe-json": "1.0.2", "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.13.0", - "@walletconnect/utils": "2.13.0", + "@walletconnect/types": "2.16.1", + "@walletconnect/utils": "2.16.1", "events": "3.3.0", - "isomorphic-unfetch": "3.1.0", "lodash.isequal": "4.5.0", "uint8arrays": "3.1.0" - } - }, - "node_modules/@walletconnect/core/node_modules/@walletconnect/keyvaluestorage": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz", - "integrity": "sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==", - "dependencies": { - "@walletconnect/safe-json": "^1.0.1", - "idb-keyval": "^6.2.1", - "unstorage": "^1.9.0" }, - "peerDependencies": { - "@react-native-async-storage/async-storage": "1.x" - }, - "peerDependenciesMeta": { - "@react-native-async-storage/async-storage": { - "optional": true - } + "engines": { + "node": ">=18" } }, "node_modules/@walletconnect/core/node_modules/uint8arrays": { @@ -11979,19 +11424,19 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@walletconnect/ethereum-provider": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/@walletconnect/ethereum-provider/-/ethereum-provider-2.13.0.tgz", - "integrity": "sha512-dnpW8mmLpWl1AZUYGYZpaAfGw1HFkL0WSlhk5xekx3IJJKn4pLacX2QeIOo0iNkzNQxZfux1AK4Grl1DvtzZEA==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/@walletconnect/ethereum-provider/-/ethereum-provider-2.16.1.tgz", + "integrity": "sha512-oD7DNCssUX3plS5gGUZ9JQ63muQB/vxO68X6RzD2wd8gBsYtSPw4BqYFc7KTO6dUizD6gfPirw32yW2pTvy92w==", "dependencies": { "@walletconnect/jsonrpc-http-connection": "1.0.8", "@walletconnect/jsonrpc-provider": "1.0.14", "@walletconnect/jsonrpc-types": "1.0.4", "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/modal": "2.6.2", - "@walletconnect/sign-client": "2.13.0", - "@walletconnect/types": "2.13.0", - "@walletconnect/universal-provider": "2.13.0", - "@walletconnect/utils": "2.13.0", + "@walletconnect/sign-client": "2.16.1", + "@walletconnect/types": "2.16.1", + "@walletconnect/universal-provider": "2.16.1", + "@walletconnect/utils": "2.16.1", "events": "3.3.0" } }, @@ -12075,6 +11520,24 @@ "ws": "^7.5.1" } }, + "node_modules/@walletconnect/keyvaluestorage": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz", + "integrity": "sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==", + "dependencies": { + "@walletconnect/safe-json": "^1.0.1", + "idb-keyval": "^6.2.1", + "unstorage": "^1.9.0" + }, + "peerDependencies": { + "@react-native-async-storage/async-storage": "1.x" + }, + "peerDependenciesMeta": { + "@react-native-async-storage/async-storage": { + "optional": true + } + } + }, "node_modules/@walletconnect/logger": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/@walletconnect/logger/-/logger-2.1.2.tgz", @@ -12113,9 +11576,9 @@ } }, "node_modules/@walletconnect/relay-api": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@walletconnect/relay-api/-/relay-api-1.0.10.tgz", - "integrity": "sha512-tqrdd4zU9VBNqUaXXQASaexklv6A54yEyQQEXYOCr+Jz8Ket0dmPBDyg19LVSNUN2cipAghQc45/KVmfFJ0cYw==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@walletconnect/relay-api/-/relay-api-1.0.11.tgz", + "integrity": "sha512-tLPErkze/HmC9aCmdZOhtVmYZq1wKfWTJtygQHoWtgg722Jd4homo54Cs4ak2RUFUZIGO2RsOpIcWipaua5D5Q==", "dependencies": { "@walletconnect/jsonrpc-types": "^1.0.2" } @@ -12160,18 +11623,18 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@walletconnect/sign-client": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.13.0.tgz", - "integrity": "sha512-En7KSvNUlQFx20IsYGsFgkNJ2lpvDvRsSFOT5PTdGskwCkUfOpB33SQJ6nCrN19gyoKPNvWg80Cy6MJI0TjNYA==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.16.1.tgz", + "integrity": "sha512-s2Tx2n2duxt+sHtuWXrN9yZVaHaYqcEcjwlTD+55/vs5NUPlISf+fFmZLwSeX1kUlrSBrAuxPUcqQuRTKcjLOA==", "dependencies": { - "@walletconnect/core": "2.13.0", + "@walletconnect/core": "2.16.1", "@walletconnect/events": "1.0.1", "@walletconnect/heartbeat": "1.2.2", "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/logger": "2.1.2", "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.13.0", - "@walletconnect/utils": "2.13.0", + "@walletconnect/types": "2.16.1", + "@walletconnect/utils": "2.16.1", "events": "3.3.0" } }, @@ -12189,9 +11652,9 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@walletconnect/types": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.13.0.tgz", - "integrity": "sha512-MWaVT0FkZwzYbD3tvk8F+2qpPlz1LUSWHuqbINUtMXnSzJtXN49Y99fR7FuBhNFtDalfuWsEK17GrNA+KnAsPQ==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.16.1.tgz", + "integrity": "sha512-9P4RG4VoDEF+yBF/n2TF12gsvT/aTaeZTVDb/AOayafqiPnmrQZMKmNCJJjq1sfdsDcHXFcZWMGsuCeSJCmrXA==", "dependencies": { "@walletconnect/events": "1.0.1", "@walletconnect/heartbeat": "1.2.2", @@ -12201,57 +11664,41 @@ "events": "3.3.0" } }, - "node_modules/@walletconnect/types/node_modules/@walletconnect/keyvaluestorage": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz", - "integrity": "sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==", - "dependencies": { - "@walletconnect/safe-json": "^1.0.1", - "idb-keyval": "^6.2.1", - "unstorage": "^1.9.0" - }, - "peerDependencies": { - "@react-native-async-storage/async-storage": "1.x" - }, - "peerDependenciesMeta": { - "@react-native-async-storage/async-storage": { - "optional": true - } - } - }, "node_modules/@walletconnect/universal-provider": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.13.0.tgz", - "integrity": "sha512-B5QvO8pnk5Bqn4aIt0OukGEQn2Auk9VbHfhQb9cGwgmSCd1GlprX/Qblu4gyT5+TjHMb1Gz5UssUaZWTWbDhBg==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.16.1.tgz", + "integrity": "sha512-q/tyWUVNenizuClEiaekx9FZj/STU1F3wpDK4PUIh3xh+OmUI5fw2dY3MaNDjyb5AyrS0M8BuQDeuoSuOR/Q7w==", "dependencies": { "@walletconnect/jsonrpc-http-connection": "1.0.8", "@walletconnect/jsonrpc-provider": "1.0.14", "@walletconnect/jsonrpc-types": "1.0.4", "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/logger": "2.1.2", - "@walletconnect/sign-client": "2.13.0", - "@walletconnect/types": "2.13.0", - "@walletconnect/utils": "2.13.0", + "@walletconnect/sign-client": "2.16.1", + "@walletconnect/types": "2.16.1", + "@walletconnect/utils": "2.16.1", "events": "3.3.0" } }, "node_modules/@walletconnect/utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.13.0.tgz", - "integrity": "sha512-q1eDCsRHj5iLe7fF8RroGoPZpdo2CYMZzQSrw1iqL+2+GOeqapxxuJ1vaJkmDUkwgklfB22ufqG6KQnz78sD4w==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.16.1.tgz", + "integrity": "sha512-aoQirVoDoiiEtYeYDtNtQxFzwO/oCrz9zqeEEXYJaAwXlGVTS34KFe7W3/Rxd/pldTYKFOZsku2EzpISfH8Wsw==", "dependencies": { "@stablelib/chacha20poly1305": "1.0.1", "@stablelib/hkdf": "1.0.1", "@stablelib/random": "1.0.2", "@stablelib/sha256": "1.0.1", "@stablelib/x25519": "1.0.3", - "@walletconnect/relay-api": "1.0.10", + "@walletconnect/relay-api": "1.0.11", + "@walletconnect/relay-auth": "1.0.4", "@walletconnect/safe-json": "1.0.2", "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.13.0", + "@walletconnect/types": "2.16.1", "@walletconnect/window-getters": "1.0.1", "@walletconnect/window-metadata": "1.0.1", "detect-browser": "5.3.0", + "elliptic": "^6.5.7", "query-string": "7.1.3", "uint8arrays": "3.1.0" } @@ -12729,8 +12176,7 @@ "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "node_modules/argv-formatter": { "version": "1.0.0", @@ -13240,13 +12686,13 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", - "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", + "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", "peer": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.1", - "core-js-compat": "^3.36.1" + "@babel/helper-define-polyfill-provider": "^0.6.2", + "core-js-compat": "^3.38.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -13519,9 +12965,9 @@ "peer": true }, "node_modules/browserslist": { - "version": "4.23.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.2.tgz", - "integrity": "sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", + "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", "funding": [ { "type": "opencollective", @@ -13537,9 +12983,9 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001640", - "electron-to-chromium": "^1.4.820", - "node-releases": "^2.0.14", + "caniuse-lite": "^1.0.30001646", + "electron-to-chromium": "^1.5.4", + "node-releases": "^2.0.18", "update-browserslist-db": "^1.1.0" }, "bin": { @@ -13871,9 +13317,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001642", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001642.tgz", - "integrity": "sha512-3XQ0DoRgLijXJErLSl+bLnJ+Et4KqV1PY6JJBGAFlsNsz31zeAIncyeZfLCabHK/jtSh+671RM9YMldxjUPZtA==", + "version": "1.0.30001660", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001660.tgz", + "integrity": "sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==", "funding": [ { "type": "opencollective", @@ -14137,6 +13583,20 @@ "node": ">=6.0" } }, + "node_modules/chromium-edge-launcher": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/chromium-edge-launcher/-/chromium-edge-launcher-0.2.0.tgz", + "integrity": "sha512-JfJjUnq25y9yg4FABRRVPmBGWPZZi+AQXT4mxupb67766/0UlhG8PAZCz6xzEMXTbW3CsSoE8PcCWA49n35mKg==", + "peer": true, + "dependencies": { + "@types/node": "*", + "escape-string-regexp": "^4.0.0", + "is-wsl": "^2.2.0", + "lighthouse-logger": "^1.0.0", + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + } + }, "node_modules/chromium-pickle-js": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz", @@ -14924,9 +14384,9 @@ } }, "node_modules/cookie-es": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.1.0.tgz", - "integrity": "sha512-L2rLOcK0wzWSfSDA33YR+PUHDG10a8px7rUHKWbGLP4YfbsMed2KFUw5fczvDPbT98DDe3LEzviswl810apTEw==" + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.2.2.tgz", + "integrity": "sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==" }, "node_modules/cookie-signature": { "version": "1.0.6", @@ -14948,12 +14408,12 @@ } }, "node_modules/core-js-compat": { - "version": "3.37.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz", - "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", + "version": "3.38.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.1.tgz", + "integrity": "sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==", "peer": true, "dependencies": { - "browserslist": "^4.23.0" + "browserslist": "^4.23.3" }, "funding": { "type": "opencollective", @@ -15882,9 +15342,9 @@ } }, "node_modules/document-drive": { - "version": "1.0.0-alpha.93", - "resolved": "https://registry.npmjs.org/document-drive/-/document-drive-1.0.0-alpha.93.tgz", - "integrity": "sha512-x7VWi8A/oHngsXKU6stR5DrDPGXK1Ln4B2O2HSeJ5IkNZt7COkzcF9/uV+sbRNL+NbMzJG8jTUPebRj4XyPJiw==", + "version": "1.0.0-alpha.94", + "resolved": "https://registry.npmjs.org/document-drive/-/document-drive-1.0.0-alpha.94.tgz", + "integrity": "sha512-664ITD1XCLL4u1rNzgxdAvi5T0gXkIuuBenG33sQQKD9BGD7E6MxtViJPTssKeNsra3sm9fl3SfAqx/PciUrKw==", "dependencies": { "change-case": "^5.4.4", "exponential-backoff": "^3.1.1", @@ -15923,9 +15383,9 @@ } }, "node_modules/document-model-libs": { - "version": "1.85.0", - "resolved": "https://registry.npmjs.org/document-model-libs/-/document-model-libs-1.85.0.tgz", - "integrity": "sha512-Km4CyqVOnhKnCpyww0afUFV4Wi/QTBI4aiVPDGEJvzN/EPX9OFVATiJzVXUNODprkLlNayDcQOjdjnDq6Ael1w==", + "version": "1.84.0", + "resolved": "https://registry.npmjs.org/document-model-libs/-/document-model-libs-1.84.0.tgz", + "integrity": "sha512-v3dc9asjf+pvAPffubUb8Pr1R8ahPwKUU1/qIwLrlXbSJ4Rz3ctsvjcwW2z0uIiCZJPoLCRTE+VESIIAO5GiHQ==", "dependencies": { "@acaldas/graphql-codegen-typescript-validation-schema": "^0.12.3", "@graphql-codegen/core": "^4.0.2", @@ -16134,9 +15594,9 @@ "dev": true }, "node_modules/eciesjs": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/eciesjs/-/eciesjs-0.3.19.tgz", - "integrity": "sha512-b+PkRDZ3ym7HEcnbxc22CMVCpgsnr8+gGgST3U5PtgeX1luvINgfXW7efOyUtmn/jFtA/lg5ywBi/Uazf4oeaA==", + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/eciesjs/-/eciesjs-0.3.20.tgz", + "integrity": "sha512-Rz5AB8v9+xmMdS/R7RzWPe/R8DP5QfyrkA6ce4umJopoB5su2H2aDy/GcgIfwhmCwxnBkqGf/PbGzmKcGtIgGA==", "dependencies": { "@types/secp256k1": "^4.0.6", "futoin-hkdf": "^1.5.3", @@ -16565,9 +16025,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.828", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.828.tgz", - "integrity": "sha512-QOIJiWpQJDHAVO4P58pwb133Cwee0nbvy/MV1CwzZVGpkH1RX33N3vsaWRCpR6bF63AAq366neZrRTu7Qlsbbw==" + "version": "1.5.20", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.20.tgz", + "integrity": "sha512-74mdl6Fs1HHzK9SUX4CKFxAtAe3nUns48y79TskHNAG6fGOlLfyKA4j855x+0b5u8rWJIrlaG9tcTPstMlwjIw==" }, "node_modules/electron-winstaller": { "version": "5.3.1", @@ -16626,9 +16086,9 @@ } }, "node_modules/elliptic": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.5.tgz", - "integrity": "sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw==", + "version": "6.5.7", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.7.tgz", + "integrity": "sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q==", "dependencies": { "bn.js": "^4.11.9", "brorand": "^1.1.0", @@ -18029,9 +17489,9 @@ "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==" }, "node_modules/fast-xml-parser": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.0.tgz", - "integrity": "sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.0.tgz", + "integrity": "sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg==", "funding": [ { "type": "github", @@ -19684,39 +19144,18 @@ } }, "node_modules/hermes-estree": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.19.1.tgz", - "integrity": "sha512-daLGV3Q2MKk8w4evNMKwS8zBE/rcpA800nu1Q5kM08IKijoSnPe9Uo1iIxzPKRkn95IxxsgBMPeYHt3VG4ej2g==", + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.22.0.tgz", + "integrity": "sha512-FLBt5X9OfA8BERUdc6aZS36Xz3rRuB0Y/mfocSADWEJfomc1xfene33GdyAmtTkKTBXTN/EgAy+rjTKkkZJHlw==", "peer": true }, "node_modules/hermes-parser": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.19.1.tgz", - "integrity": "sha512-Vp+bXzxYJWrpEuJ/vXxUsLnt0+y4q9zyi4zUlkLqD8FKv4LjIfOvP69R/9Lty3dCyKh0E2BU7Eypqr63/rKT/A==", - "peer": true, - "dependencies": { - "hermes-estree": "0.19.1" - } - }, - "node_modules/hermes-profile-transformer": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/hermes-profile-transformer/-/hermes-profile-transformer-0.0.6.tgz", - "integrity": "sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==", + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.22.0.tgz", + "integrity": "sha512-gn5RfZiEXCsIWsFGsKiykekktUoh0PdFWYocXsUdZIyWSckT6UIyPcyyUIPSR3kpnELWeK3n3ztAse7Mat6PSA==", "peer": true, "dependencies": { - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/hermes-profile-transformer/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "peer": true, - "engines": { - "node": ">= 8" + "hermes-estree": "0.22.0" } }, "node_modules/hey-listen": { @@ -19938,9 +19377,9 @@ } }, "node_modules/i18next": { - "version": "23.12.1", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.12.1.tgz", - "integrity": "sha512-l4y291ZGRgUhKuqVSiqyuU2DDzxKStlIWSaoNBR4grYmh0X+pRYbFpTMs3CnJ5ECKbOI8sQcJ3PbTUfLgPRaMA==", + "version": "23.11.5", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.11.5.tgz", + "integrity": "sha512-41pvpVbW9rhZPk5xjCX2TPJi2861LEig/YRhUkY+1FQ2IQPS0bKUDYnEqY8XPPbB48h1uIwLnP9iiEfuSl20CA==", "funding": [ { "type": "individual", @@ -20906,15 +20345,6 @@ "node": ">=0.10.0" } }, - "node_modules/isomorphic-unfetch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz", - "integrity": "sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q==", - "dependencies": { - "node-fetch": "^2.6.1", - "unfetch": "^4.2.0" - } - }, "node_modules/isows": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.4.tgz", @@ -21280,7 +20710,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, "dependencies": { "argparse": "^2.0.1" }, @@ -23029,9 +22458,9 @@ } }, "node_modules/metro": { - "version": "0.80.9", - "resolved": "https://registry.npmjs.org/metro/-/metro-0.80.9.tgz", - "integrity": "sha512-Bc57Xf3GO2Xe4UWQsBj/oW6YfLPABEu8jfDVDiNmJvoQW4CO34oDPuYKe4KlXzXhcuNsqOtSxpbjCRRVjhhREg==", + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.80.12.tgz", + "integrity": "sha512-1UsH5FzJd9quUsD1qY+zUG4JY3jo3YEMxbMYH9jT6NK3j4iORhlwTK8fYTfAUBhDKjgLfKjAh7aoazNE23oIRA==", "peer": true, "dependencies": { "@babel/code-frame": "^7.0.0", @@ -23048,34 +22477,33 @@ "debug": "^2.2.0", "denodeify": "^1.2.1", "error-stack-parser": "^2.0.6", + "flow-enums-runtime": "^0.0.6", "graceful-fs": "^4.2.4", - "hermes-parser": "0.20.1", + "hermes-parser": "0.23.1", "image-size": "^1.0.2", "invariant": "^2.2.4", "jest-worker": "^29.6.3", "jsc-safe-url": "^0.2.2", "lodash.throttle": "^4.1.1", - "metro-babel-transformer": "0.80.9", - "metro-cache": "0.80.9", - "metro-cache-key": "0.80.9", - "metro-config": "0.80.9", - "metro-core": "0.80.9", - "metro-file-map": "0.80.9", - "metro-resolver": "0.80.9", - "metro-runtime": "0.80.9", - "metro-source-map": "0.80.9", - "metro-symbolicate": "0.80.9", - "metro-transform-plugins": "0.80.9", - "metro-transform-worker": "0.80.9", + "metro-babel-transformer": "0.80.12", + "metro-cache": "0.80.12", + "metro-cache-key": "0.80.12", + "metro-config": "0.80.12", + "metro-core": "0.80.12", + "metro-file-map": "0.80.12", + "metro-resolver": "0.80.12", + "metro-runtime": "0.80.12", + "metro-source-map": "0.80.12", + "metro-symbolicate": "0.80.12", + "metro-transform-plugins": "0.80.12", + "metro-transform-worker": "0.80.12", "mime-types": "^2.1.27", - "node-fetch": "^2.2.0", "nullthrows": "^1.1.1", - "rimraf": "^3.0.2", "serialize-error": "^2.1.0", "source-map": "^0.5.6", "strip-ansi": "^6.0.0", "throat": "^5.0.0", - "ws": "^7.5.1", + "ws": "^7.5.10", "yargs": "^17.6.2" }, "bin": { @@ -23086,13 +22514,14 @@ } }, "node_modules/metro-babel-transformer": { - "version": "0.80.9", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.80.9.tgz", - "integrity": "sha512-d76BSm64KZam1nifRZlNJmtwIgAeZhZG3fi3K+EmPOlrR8rDtBxQHDSN3fSGeNB9CirdTyabTMQCkCup6BXFSQ==", + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.80.12.tgz", + "integrity": "sha512-YZziRs0MgA3pzCkkvOoQRXjIoVjvrpi/yRlJnObyIvMP6lFdtyG4nUGIwGY9VXnBvxmXD6mPY2e+NSw6JAyiRg==", "peer": true, "dependencies": { "@babel/core": "^7.20.0", - "hermes-parser": "0.20.1", + "flow-enums-runtime": "^0.0.6", + "hermes-parser": "0.23.1", "nullthrows": "^1.1.1" }, "engines": { @@ -23100,55 +22529,60 @@ } }, "node_modules/metro-babel-transformer/node_modules/hermes-estree": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.20.1.tgz", - "integrity": "sha512-SQpZK4BzR48kuOg0v4pb3EAGNclzIlqMj3Opu/mu7bbAoFw6oig6cEt/RAi0zTFW/iW6Iz9X9ggGuZTAZ/yZHg==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.23.1.tgz", + "integrity": "sha512-eT5MU3f5aVhTqsfIReZ6n41X5sYn4IdQL0nvz6yO+MMlPxw49aSARHLg/MSehQftyjnrE8X6bYregzSumqc6cg==", "peer": true }, "node_modules/metro-babel-transformer/node_modules/hermes-parser": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.20.1.tgz", - "integrity": "sha512-BL5P83cwCogI8D7rrDCgsFY0tdYUtmFP9XaXtl2IQjC+2Xo+4okjfXintlTxcIwl4qeGddEl28Z11kbVIw0aNA==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.23.1.tgz", + "integrity": "sha512-oxl5h2DkFW83hT4DAUJorpah8ou4yvmweUzLJmmr6YV2cezduCdlil1AvU/a/xSsAFo4WUcNA4GoV5Bvq6JffA==", "peer": true, "dependencies": { - "hermes-estree": "0.20.1" + "hermes-estree": "0.23.1" } }, "node_modules/metro-cache": { - "version": "0.80.9", - "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.80.9.tgz", - "integrity": "sha512-ujEdSI43QwI+Dj2xuNax8LMo8UgKuXJEdxJkzGPU6iIx42nYa1byQ+aADv/iPh5sh5a//h5FopraW5voXSgm2w==", + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.80.12.tgz", + "integrity": "sha512-p5kNHh2KJ0pbQI/H7ZBPCEwkyNcSz7OUkslzsiIWBMPQGFJ/xArMwkV7I+GJcWh+b4m6zbLxE5fk6fqbVK1xGA==", "peer": true, "dependencies": { - "metro-core": "0.80.9", - "rimraf": "^3.0.2" + "exponential-backoff": "^3.1.1", + "flow-enums-runtime": "^0.0.6", + "metro-core": "0.80.12" }, "engines": { "node": ">=18" } }, "node_modules/metro-cache-key": { - "version": "0.80.9", - "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.80.9.tgz", - "integrity": "sha512-hRcYGhEiWIdM87hU0fBlcGr+tHDEAT+7LYNCW89p5JhErFt/QaAkVx4fb5bW3YtXGv5BTV7AspWPERoIb99CXg==", + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.80.12.tgz", + "integrity": "sha512-o4BspKnugg/pE45ei0LGHVuBJXwRgruW7oSFAeSZvBKA/sGr0UhOGY3uycOgWInnS3v5yTTfiBA9lHlNRhsvGA==", "peer": true, + "dependencies": { + "flow-enums-runtime": "^0.0.6" + }, "engines": { "node": ">=18" } }, "node_modules/metro-config": { - "version": "0.80.9", - "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.80.9.tgz", - "integrity": "sha512-28wW7CqS3eJrunRGnsibWldqgwRP9ywBEf7kg+uzUHkSFJNKPM1K3UNSngHmH0EZjomizqQA2Zi6/y6VdZMolg==", + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.80.12.tgz", + "integrity": "sha512-4rwOWwrhm62LjB12ytiuR5NgK1ZBNr24/He8mqCsC+HXZ+ATbrewLNztzbAZHtFsrxP4D4GLTGgh96pCpYLSAQ==", "peer": true, "dependencies": { "connect": "^3.6.5", "cosmiconfig": "^5.0.5", + "flow-enums-runtime": "^0.0.6", "jest-validate": "^29.6.3", - "metro": "0.80.9", - "metro-cache": "0.80.9", - "metro-core": "0.80.9", - "metro-runtime": "0.80.9" + "metro": "0.80.12", + "metro-cache": "0.80.12", + "metro-core": "0.80.12", + "metro-runtime": "0.80.12" }, "engines": { "node": ">=18" @@ -23233,27 +22667,29 @@ "peer": true }, "node_modules/metro-core": { - "version": "0.80.9", - "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.80.9.tgz", - "integrity": "sha512-tbltWQn+XTdULkGdzHIxlxk4SdnKxttvQQV3wpqqFbHDteR4gwCyTR2RyYJvxgU7HELfHtrVbqgqAdlPByUSbg==", + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.80.12.tgz", + "integrity": "sha512-QqdJ/yAK+IpPs2HU/h5v2pKEdANBagSsc6DRSjnwSyJsCoHlmyJKCaCJ7KhWGx+N4OHxh37hoA8fc2CuZbx0Fw==", "peer": true, "dependencies": { + "flow-enums-runtime": "^0.0.6", "lodash.throttle": "^4.1.1", - "metro-resolver": "0.80.9" + "metro-resolver": "0.80.12" }, "engines": { "node": ">=18" } }, "node_modules/metro-file-map": { - "version": "0.80.9", - "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.80.9.tgz", - "integrity": "sha512-sBUjVtQMHagItJH/wGU9sn3k2u0nrCl0CdR4SFMO1tksXLKbkigyQx4cbpcyPVOAmGTVuy3jyvBlELaGCAhplQ==", + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.80.12.tgz", + "integrity": "sha512-sYdemWSlk66bWzW2wp79kcPMzwuG32x1ZF3otI0QZTmrnTaaTiGyhE66P1z6KR4n2Eu5QXiABa6EWbAQv0r8bw==", "peer": true, "dependencies": { "anymatch": "^3.0.3", "debug": "^2.2.0", "fb-watchman": "^2.0.0", + "flow-enums-runtime": "^0.0.6", "graceful-fs": "^4.2.4", "invariant": "^2.2.4", "jest-worker": "^29.6.3", @@ -23285,11 +22721,12 @@ "peer": true }, "node_modules/metro-minify-terser": { - "version": "0.80.9", - "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.80.9.tgz", - "integrity": "sha512-FEeCeFbkvvPuhjixZ1FYrXtO0araTpV6UbcnGgDUpH7s7eR5FG/PiJz3TsuuPP/HwCK19cZtQydcA2QrCw446A==", + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.80.12.tgz", + "integrity": "sha512-muWzUw3y5k+9083ZoX9VaJLWEV2Jcgi+Oan0Mmb/fBNMPqP9xVDuy4pOMn/HOiGndgfh/MK7s4bsjkyLJKMnXQ==", "peer": true, "dependencies": { + "flow-enums-runtime": "^0.0.6", "terser": "^5.15.0" }, "engines": { @@ -23297,38 +22734,43 @@ } }, "node_modules/metro-resolver": { - "version": "0.80.9", - "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.80.9.tgz", - "integrity": "sha512-wAPIjkN59BQN6gocVsAvvpZ1+LQkkqUaswlT++cJafE/e54GoVkMNCmrR4BsgQHr9DknZ5Um/nKueeN7kaEz9w==", + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.80.12.tgz", + "integrity": "sha512-PR24gYRZnYHM3xT9pg6BdbrGbM/Cu1TcyIFBVlAk7qDAuHkUNQ1nMzWumWs+kwSvtd9eZGzHoucGJpTUEeLZAw==", "peer": true, + "dependencies": { + "flow-enums-runtime": "^0.0.6" + }, "engines": { "node": ">=18" } }, "node_modules/metro-runtime": { - "version": "0.80.9", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.80.9.tgz", - "integrity": "sha512-8PTVIgrVcyU+X/rVCy/9yxNlvXsBCk5JwwkbAm/Dm+Abo6NBGtNjWF0M1Xo/NWCb4phamNWcD7cHdR91HhbJvg==", + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.80.12.tgz", + "integrity": "sha512-LIx7+92p5rpI0i6iB4S4GBvvLxStNt6fF0oPMaUd1Weku7jZdfkCZzmrtDD9CSQ6EPb0T9NUZoyXIxlBa3wOCw==", "peer": true, "dependencies": { - "@babel/runtime": "^7.0.0" + "@babel/runtime": "^7.25.0", + "flow-enums-runtime": "^0.0.6" }, "engines": { "node": ">=18" } }, "node_modules/metro-source-map": { - "version": "0.80.9", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.80.9.tgz", - "integrity": "sha512-RMn+XS4VTJIwMPOUSj61xlxgBvPeY4G6s5uIn6kt6HB6A/k9ekhr65UkkDD7WzHYs3a9o869qU8tvOZvqeQzgw==", + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.80.12.tgz", + "integrity": "sha512-o+AXmE7hpvM8r8MKsx7TI21/eerYYy2DCDkWfoBkv+jNkl61khvDHlQn0cXZa6lrcNZiZkl9oHSMcwLLIrFmpw==", "peer": true, "dependencies": { "@babel/traverse": "^7.20.0", "@babel/types": "^7.20.0", + "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", - "metro-symbolicate": "0.80.9", + "metro-symbolicate": "0.80.12", "nullthrows": "^1.1.1", - "ob1": "0.80.9", + "ob1": "0.80.12", "source-map": "^0.5.6", "vlq": "^1.0.0" }, @@ -23346,13 +22788,14 @@ } }, "node_modules/metro-symbolicate": { - "version": "0.80.9", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.80.9.tgz", - "integrity": "sha512-Ykae12rdqSs98hg41RKEToojuIW85wNdmSe/eHUgMkzbvCFNVgcC0w3dKZEhSsqQOXapXRlLtHkaHLil0UD/EA==", + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.80.12.tgz", + "integrity": "sha512-/dIpNdHksXkGHZXARZpL7doUzHqSNxgQ8+kQGxwpJuHnDhGkENxB5PS2QBaTDdEcmyTMjS53CN1rl9n1gR6fmw==", "peer": true, "dependencies": { + "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", - "metro-source-map": "0.80.9", + "metro-source-map": "0.80.12", "nullthrows": "^1.1.1", "source-map": "^0.5.6", "through2": "^2.0.1", @@ -23385,15 +22828,16 @@ } }, "node_modules/metro-transform-plugins": { - "version": "0.80.9", - "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.80.9.tgz", - "integrity": "sha512-UlDk/uc8UdfLNJhPbF3tvwajyuuygBcyp+yBuS/q0z3QSuN/EbLllY3rK8OTD9n4h00qZ/qgxGv/lMFJkwP4vg==", + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.80.12.tgz", + "integrity": "sha512-WQWp00AcZvXuQdbjQbx1LzFR31IInlkCDYJNRs6gtEtAyhwpMMlL2KcHmdY+wjDO9RPcliZ+Xl1riOuBecVlPA==", "peer": true, "dependencies": { "@babel/core": "^7.20.0", "@babel/generator": "^7.20.0", "@babel/template": "^7.0.0", "@babel/traverse": "^7.20.0", + "flow-enums-runtime": "^0.0.6", "nullthrows": "^1.1.1" }, "engines": { @@ -23401,22 +22845,23 @@ } }, "node_modules/metro-transform-worker": { - "version": "0.80.9", - "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.80.9.tgz", - "integrity": "sha512-c/IrzMUVnI0hSVVit4TXzt3A1GiUltGVlzCmLJWxNrBGHGrJhvgePj38+GXl1Xf4Fd4vx6qLUkKMQ3ux73bFLQ==", + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.80.12.tgz", + "integrity": "sha512-KAPFN1y3eVqEbKLx1I8WOarHPqDMUa8WelWxaJCNKO/yHCP26zELeqTJvhsQup+8uwB6EYi/sp0b6TGoh6lOEA==", "peer": true, "dependencies": { "@babel/core": "^7.20.0", "@babel/generator": "^7.20.0", "@babel/parser": "^7.20.0", "@babel/types": "^7.20.0", - "metro": "0.80.9", - "metro-babel-transformer": "0.80.9", - "metro-cache": "0.80.9", - "metro-cache-key": "0.80.9", - "metro-minify-terser": "0.80.9", - "metro-source-map": "0.80.9", - "metro-transform-plugins": "0.80.9", + "flow-enums-runtime": "^0.0.6", + "metro": "0.80.12", + "metro-babel-transformer": "0.80.12", + "metro-cache": "0.80.12", + "metro-cache-key": "0.80.12", + "metro-minify-terser": "0.80.12", + "metro-source-map": "0.80.12", + "metro-transform-plugins": "0.80.12", "nullthrows": "^1.1.1" }, "engines": { @@ -23439,18 +22884,18 @@ } }, "node_modules/metro/node_modules/hermes-estree": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.20.1.tgz", - "integrity": "sha512-SQpZK4BzR48kuOg0v4pb3EAGNclzIlqMj3Opu/mu7bbAoFw6oig6cEt/RAi0zTFW/iW6Iz9X9ggGuZTAZ/yZHg==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.23.1.tgz", + "integrity": "sha512-eT5MU3f5aVhTqsfIReZ6n41X5sYn4IdQL0nvz6yO+MMlPxw49aSARHLg/MSehQftyjnrE8X6bYregzSumqc6cg==", "peer": true }, "node_modules/metro/node_modules/hermes-parser": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.20.1.tgz", - "integrity": "sha512-BL5P83cwCogI8D7rrDCgsFY0tdYUtmFP9XaXtl2IQjC+2Xo+4okjfXintlTxcIwl4qeGddEl28Z11kbVIw0aNA==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.23.1.tgz", + "integrity": "sha512-oxl5h2DkFW83hT4DAUJorpah8ou4yvmweUzLJmmr6YV2cezduCdlil1AvU/a/xSsAFo4WUcNA4GoV5Bvq6JffA==", "peer": true, "dependencies": { - "hermes-estree": "0.20.1" + "hermes-estree": "0.23.1" } }, "node_modules/metro/node_modules/ms": { @@ -24078,9 +23523,9 @@ "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" }, "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==" }, "node_modules/node-stream-zip": { "version": "1.15.0", @@ -26911,10 +26356,13 @@ } }, "node_modules/ob1": { - "version": "0.80.9", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.80.9.tgz", - "integrity": "sha512-v9yOxowkZbxWhKOaaTyLjIm1aLy4ebMNcSn4NYJKOAI/Qv+SkfEfszpLr2GIxsccmb2Y2HA9qtsqiIJ80ucpVA==", + "version": "0.80.12", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.80.12.tgz", + "integrity": "sha512-VMArClVT6LkhUGpnuEoBuyjG9rzUyEzg4PDkav6wK1cLhOK02gPCYFxoiB4mqVnrMhDpIzJcrGNAMVi9P+hXrw==", "peer": true, + "dependencies": { + "flow-enums-runtime": "^0.0.6" + }, "engines": { "node": ">=18" } @@ -27104,19 +26552,24 @@ } }, "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", + "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", + "peer": true, "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" + "is-wsl": "^1.1.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" + } + }, + "node_modules/open/node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "peer": true, + "engines": { + "node": ">=4" } }, "node_modules/optionator": { @@ -28081,9 +27534,9 @@ } }, "node_modules/preact": { - "version": "10.22.1", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.22.1.tgz", - "integrity": "sha512-jRYbDDgMpIb5LHq3hkI0bbl+l/TQ9UnkdQ0ww+lp+4MMOdqaUYdFc5qeyP+IV8FAd/2Em7drVPeKdQxsiWCf/A==", + "version": "10.23.2", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.23.2.tgz", + "integrity": "sha512-kKYfePf9rzKnxOAKDpsWhg/ysrHPqT+yQ7UW4JjdnqjFIeNUnNcEJvhuA8fDenxAGWzUqtd51DfVg7xp/8T9NA==", "funding": { "type": "opencollective", "url": "https://opencollective.com/preact" @@ -28515,16 +27968,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/querystring": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz", - "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "peer": true, - "engines": { - "node": ">=0.4.x" - } - }, "node_modules/querystringify": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", @@ -28690,11 +28133,11 @@ } }, "node_modules/react-hook-form": { - "version": "7.52.1", - "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.52.1.tgz", - "integrity": "sha512-uNKIhaoICJ5KQALYZ4TOaOLElyM+xipord+Ha3crEFhTntdLvWZqVY49Wqd/0GiVCA/f9NjemLeiNPjG7Hpurg==", + "version": "7.53.0", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.53.0.tgz", + "integrity": "sha512-M1n3HhqCww6S2hxLxciEXy2oISPnAzxY7gvwVPrtlczTM/1dDadXgUxDpHMrMTblDOcm/AXtXxHwZ3jpg1mqKQ==", "engines": { - "node": ">=12.22.0" + "node": ">=18.0.0" }, "funding": { "type": "opencollective", @@ -28748,13 +28191,199 @@ "react-dom": "^16 || ^17 || ^18" } }, - "node_modules/react-number-format": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/react-number-format/-/react-number-format-5.4.0.tgz", - "integrity": "sha512-NWdICrqLhI7rAS8yUeLVd6Wr4cN7UjJ9IBTS0f/a9i7UB4x4Ti70kGnksBtZ7o4Z7YRbvCMMR/jQmkoOBa/4fg==", + "node_modules/react-native": { + "version": "0.75.3", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.75.3.tgz", + "integrity": "sha512-+Ne6u5H+tPo36sme19SCd1u2UID2uo0J/XzAJarxmrDj4Nsdi44eyUDKtQHmhgxjRGsuVJqAYrMK0abLSq8AHw==", + "peer": true, + "dependencies": { + "@jest/create-cache-key-function": "^29.6.3", + "@react-native-community/cli": "14.1.0", + "@react-native-community/cli-platform-android": "14.1.0", + "@react-native-community/cli-platform-ios": "14.1.0", + "@react-native/assets-registry": "0.75.3", + "@react-native/codegen": "0.75.3", + "@react-native/community-cli-plugin": "0.75.3", + "@react-native/gradle-plugin": "0.75.3", + "@react-native/js-polyfills": "0.75.3", + "@react-native/normalize-colors": "0.75.3", + "@react-native/virtualized-lists": "0.75.3", + "abort-controller": "^3.0.0", + "anser": "^1.4.9", + "ansi-regex": "^5.0.0", + "base64-js": "^1.5.1", + "chalk": "^4.0.0", + "commander": "^9.4.1", + "event-target-shim": "^5.0.1", + "flow-enums-runtime": "^0.0.6", + "glob": "^7.1.1", + "invariant": "^2.2.4", + "jest-environment-node": "^29.6.3", + "jsc-android": "^250231.0.0", + "memoize-one": "^5.0.0", + "metro-runtime": "^0.80.3", + "metro-source-map": "^0.80.3", + "mkdirp": "^0.5.1", + "nullthrows": "^1.1.1", + "pretty-format": "^26.5.2", + "promise": "^8.3.0", + "react-devtools-core": "^5.3.1", + "react-refresh": "^0.14.0", + "regenerator-runtime": "^0.13.2", + "scheduler": "0.24.0-canary-efb381bbf-20230505", + "semver": "^7.1.3", + "stacktrace-parser": "^0.1.10", + "whatwg-fetch": "^3.0.0", + "ws": "^6.2.2", + "yargs": "^17.6.2" + }, + "bin": { + "react-native": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/react": "^18.2.6", + "react": "^18.2.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-native-webview": { + "version": "11.26.1", + "resolved": "https://registry.npmjs.org/react-native-webview/-/react-native-webview-11.26.1.tgz", + "integrity": "sha512-hC7BkxOpf+z0UKhxFSFTPAM4shQzYmZHoELa6/8a/MspcjEP7ukYKpuSUTLDywQditT8yI9idfcKvfZDKQExGw==", + "dependencies": { + "escape-string-regexp": "2.0.0", + "invariant": "2.2.4" + }, + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/react-native-webview/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/react-native/node_modules/@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "peer": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/react-native/node_modules/@types/yargs": { + "version": "15.0.19", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz", + "integrity": "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==", + "peer": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/react-native/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "peer": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/react-native/node_modules/memoize-one": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==", + "peer": true + }, + "node_modules/react-native/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "peer": true, "dependencies": { - "prop-types": "^15.7.2" + "minimist": "^1.2.6" }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/react-native/node_modules/pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "peer": true, + "dependencies": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/react-native/node_modules/promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "peer": true, + "dependencies": { + "asap": "~2.0.6" + } + }, + "node_modules/react-native/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "peer": true + }, + "node_modules/react-native/node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "peer": true + }, + "node_modules/react-native/node_modules/scheduler": { + "version": "0.24.0-canary-efb381bbf-20230505", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.24.0-canary-efb381bbf-20230505.tgz", + "integrity": "sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA==", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/react-native/node_modules/ws": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", + "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", + "peer": true, + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/react-number-format": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/react-number-format/-/react-number-format-5.4.2.tgz", + "integrity": "sha512-cg//jVdS49PYDgmcYoBnMMHl4XNTMuV723ZnHD2aXYtWWWqbVF3hjQ8iB+UZEuXapLbeA8P8H+1o6ZB1lcw3vg==", "peerDependencies": { "react": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", "react-dom": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" @@ -28863,50 +28492,37 @@ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, - "node_modules/react-shallow-renderer": { - "version": "16.15.0", - "resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz", - "integrity": "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==", - "peer": true, - "dependencies": { - "object-assign": "^4.1.1", - "react-is": "^16.12.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependencies": { - "react": "^16.0.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/react-stately": { - "version": "3.31.1", - "resolved": "https://registry.npmjs.org/react-stately/-/react-stately-3.31.1.tgz", - "integrity": "sha512-wuq673NHkYSdoceGryjtMJJvB9iQgyDkQDsnTN0t2v91pXjGDsN/EcOvnUrxXSBtY9eLdIw74R54z9GX5cJNEg==", - "dependencies": { - "@react-stately/calendar": "^3.5.1", - "@react-stately/checkbox": "^3.6.5", - "@react-stately/collections": "^3.10.7", - "@react-stately/combobox": "^3.8.4", - "@react-stately/data": "^3.11.4", - "@react-stately/datepicker": "^3.9.4", - "@react-stately/dnd": "^3.3.1", - "@react-stately/form": "^3.0.3", - "@react-stately/list": "^3.10.5", - "@react-stately/menu": "^3.7.1", - "@react-stately/numberfield": "^3.9.3", - "@react-stately/overlays": "^3.6.7", - "@react-stately/radio": "^3.10.4", - "@react-stately/searchfield": "^3.5.3", - "@react-stately/select": "^3.6.4", - "@react-stately/selection": "^3.15.1", - "@react-stately/slider": "^3.5.4", - "@react-stately/table": "^3.11.8", - "@react-stately/tabs": "^3.6.6", - "@react-stately/toggle": "^3.7.4", - "@react-stately/tooltip": "^3.4.9", - "@react-stately/tree": "^3.8.1", - "@react-types/shared": "^3.23.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "version": "3.32.2", + "resolved": "https://registry.npmjs.org/react-stately/-/react-stately-3.32.2.tgz", + "integrity": "sha512-pDSrbCIJtir4HeSa//PTqLSR7Tl7pFC9usmkkBObNKktObQq3Vdgkf46cxeTD1ov7J7GDdR3meIyjXGnZoEzUg==", + "dependencies": { + "@react-stately/calendar": "^3.5.4", + "@react-stately/checkbox": "^3.6.8", + "@react-stately/collections": "^3.10.9", + "@react-stately/combobox": "^3.9.2", + "@react-stately/data": "^3.11.6", + "@react-stately/datepicker": "^3.10.2", + "@react-stately/dnd": "^3.4.2", + "@react-stately/form": "^3.0.5", + "@react-stately/list": "^3.10.8", + "@react-stately/menu": "^3.8.2", + "@react-stately/numberfield": "^3.9.6", + "@react-stately/overlays": "^3.6.10", + "@react-stately/radio": "^3.10.7", + "@react-stately/searchfield": "^3.5.6", + "@react-stately/select": "^3.6.7", + "@react-stately/selection": "^3.16.2", + "@react-stately/slider": "^3.5.7", + "@react-stately/table": "^3.12.2", + "@react-stately/tabs": "^3.6.9", + "@react-stately/toggle": "^3.7.7", + "@react-stately/tooltip": "^3.4.12", + "@react-stately/tree": "^3.8.4", + "@react-types/shared": "^3.24.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/react-style-singleton": { @@ -29624,6 +29240,22 @@ } } }, + "node_modules/rollup-plugin-visualizer/node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/rollup-plugin-visualizer/node_modules/source-map": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", @@ -32474,9 +32106,9 @@ } }, "node_modules/ufo": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.3.tgz", - "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==" + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", + "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==" }, "node_modules/uglify-js": { "version": "3.18.0", @@ -32533,15 +32165,15 @@ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" }, "node_modules/unenv": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/unenv/-/unenv-1.9.0.tgz", - "integrity": "sha512-QKnFNznRxmbOF1hDgzpqrlIf6NC5sbZ2OJ+5Wl3OX8uM+LUJXbj4TXvLJCtwbPTmbMHCLIz6JLKNinNsMShK9g==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/unenv/-/unenv-1.10.0.tgz", + "integrity": "sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==", "dependencies": { "consola": "^3.2.3", - "defu": "^6.1.3", + "defu": "^6.1.4", "mime": "^3.0.0", - "node-fetch-native": "^1.6.1", - "pathe": "^1.1.1" + "node-fetch-native": "^1.6.4", + "pathe": "^1.1.2" } }, "node_modules/unenv/node_modules/mime": { @@ -32555,11 +32187,6 @@ "node": ">=10.0.0" } }, - "node_modules/unfetch": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz", - "integrity": "sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==" - }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -32693,35 +32320,35 @@ } }, "node_modules/unstorage": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.10.2.tgz", - "integrity": "sha512-cULBcwDqrS8UhlIysUJs2Dk0Mmt8h7B0E6mtR+relW9nZvsf/u4SkAYyNliPiPW7XtFNb5u3IUMkxGxFTTRTgQ==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.12.0.tgz", + "integrity": "sha512-ARZYTXiC+e8z3lRM7/qY9oyaOkaozCeNd2xoz7sYK9fv7OLGhVsf+BZbmASqiK/HTZ7T6eAlnVq9JynZppyk3w==", "dependencies": { "anymatch": "^3.1.3", "chokidar": "^3.6.0", "destr": "^2.0.3", - "h3": "^1.11.1", + "h3": "^1.12.0", "listhen": "^1.7.2", - "lru-cache": "^10.2.0", + "lru-cache": "^10.4.3", "mri": "^1.2.0", - "node-fetch-native": "^1.6.2", - "ofetch": "^1.3.3", - "ufo": "^1.4.0" + "node-fetch-native": "^1.6.4", + "ofetch": "^1.3.4", + "ufo": "^1.5.4" }, "peerDependencies": { - "@azure/app-configuration": "^1.5.0", - "@azure/cosmos": "^4.0.0", + "@azure/app-configuration": "^1.7.0", + "@azure/cosmos": "^4.1.1", "@azure/data-tables": "^13.2.2", - "@azure/identity": "^4.0.1", + "@azure/identity": "^4.4.1", "@azure/keyvault-secrets": "^4.8.0", - "@azure/storage-blob": "^12.17.0", - "@capacitor/preferences": "^5.0.7", + "@azure/storage-blob": "^12.24.0", + "@capacitor/preferences": "^6.0.2", "@netlify/blobs": "^6.5.0 || ^7.0.0", - "@planetscale/database": "^1.16.0", - "@upstash/redis": "^1.28.4", + "@planetscale/database": "^1.19.0", + "@upstash/redis": "^1.34.0", "@vercel/kv": "^1.0.1", "idb-keyval": "^6.2.1", - "ioredis": "^5.3.2" + "ioredis": "^5.4.1" }, "peerDependenciesMeta": { "@azure/app-configuration": { @@ -32924,6 +32551,14 @@ } } }, + "node_modules/use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/username": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/username/-/username-5.1.0.tgz", @@ -33152,14 +32787,6 @@ } } }, - "node_modules/valtio/node_modules/use-sync-external-store": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", - "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/value-or-promise": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", @@ -33439,12 +33066,12 @@ } }, "node_modules/wagmi": { - "version": "2.10.11", - "resolved": "https://registry.npmjs.org/wagmi/-/wagmi-2.10.11.tgz", - "integrity": "sha512-0cbyhjB7Ry7DhEuxksdQf3tRVlUQhReVv+/G+Kb3sYV5wJrLvdrHNqGnUFKqbRd5GuZesGJBvypYdS0rv8k2xw==", + "version": "2.12.11", + "resolved": "https://registry.npmjs.org/wagmi/-/wagmi-2.12.11.tgz", + "integrity": "sha512-CtK05Hl5nKVskiwvNEtxMIAMJwI8RF+6qwVqlhypDs+Y1c30gVnNnF7ivAuVs4xzJbAsZ5LUmsrVVxUMIC0KDg==", "dependencies": { - "@wagmi/connectors": "5.0.23", - "@wagmi/core": "2.11.8", + "@wagmi/connectors": "5.1.10", + "@wagmi/core": "2.13.5", "use-sync-external-store": "1.2.0" }, "funding": { @@ -33462,14 +33089,6 @@ } } }, - "node_modules/wagmi/node_modules/use-sync-external-store": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", - "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/walk-up-path": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-3.0.1.tgz", @@ -34083,14 +33702,6 @@ "optional": true } } - }, - "node_modules/zustand/node_modules/use-sync-external-store": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", - "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } } } } diff --git a/package.json b/package.json index 9c5fb42e..98f9b063 100644 --- a/package.json +++ b/package.json @@ -90,12 +90,12 @@ "xvfb-maybe": "^0.2.1" }, "dependencies": { - "@powerhousedao/design-system": "1.0.0-alpha.166", + "@powerhousedao/design-system": "^1.0.0-alpha.167", "@sentry/react": "^7.109.0", "@sentry/vite-plugin": "^2.22.2", "@tanstack/react-virtual": "^3.8.1", "did-key-creator": "^1.2.0", - "document-drive": "^1.0.0-alpha.93", + "document-drive": "^1.0.0-alpha.94", "document-model": "^1.8.0", "document-model-libs": "^1.85.0", "electron-is-dev": "^3.0.1", diff --git a/src/components/editors.tsx b/src/components/editors.tsx index c8d220b4..d127fc69 100644 --- a/src/components/editors.tsx +++ b/src/components/editors.tsx @@ -15,8 +15,8 @@ import { TUiNodes } from 'src/hooks/useUiNodes'; import { useUndoRedoShortcuts } from 'src/hooks/useUndoRedoShortcuts'; import { useUserPermissions } from 'src/hooks/useUserPermissions'; import { logger } from 'src/services/logger'; -import { useDocumentModel } from 'src/store/document-model'; -import { useEditor } from 'src/store/editor'; +import { useGetDocumentModel } from 'src/store/document-model'; +import { useGetEditor } from 'src/store/editor'; import { themeAtom } from 'src/store/theme'; import { useUser } from 'src/store/user'; import { @@ -32,7 +32,7 @@ export type EditorProps< A extends Action = Action, LocalState = unknown, > = TUiNodes & { - document: Document; + document: Document | undefined; onExport: () => void; onAddOperation: (operation: Operation) => Promise; onOpenSwitchboardLink?: () => Promise; @@ -42,6 +42,7 @@ export type EditorProps< export function DocumentEditor(props: EditorProps) { const { selectedNode, + fileNodeDocument, selectedParentNode, document: initialDocument, setSelectedNode, @@ -51,22 +52,36 @@ export function DocumentEditor(props: EditorProps) { onOpenSwitchboardLink, } = props; const [showRevisionHistory, setShowRevisionHistory] = useState(false); - const user = useUser(); + const theme = useAtomValue(themeAtom); + const user = useUser() || undefined; const connectDid = useConnectDid(); const { sign } = useConnectCrypto(); - const documentModel = useDocumentModel(initialDocument.documentType); - const editor = useEditor(initialDocument.documentType); - const theme = useAtomValue(themeAtom); + const getDocumentModel = useGetDocumentModel(); + const getEditor = useGetEditor(); + + const documentType = fileNodeDocument?.documentType; + const documentModel = useMemo( + () => (documentType ? getDocumentModel(documentType) : undefined), + [documentType, getDocumentModel], + ); + + const editor = useMemo( + () => (documentType ? getEditor(documentType) : undefined), + [documentType, getEditor], + ); + const [document, _dispatch, error] = useDocumentDispatch( documentModel?.reducer, initialDocument, ); const context: EditorContext = useMemo( - () => ({ theme, user }), + () => ({ theme, user: user }), [theme, user], ); - const { isAllowedToCreateDocuments, isAllowedToEditDocuments } = - useUserPermissions(); + const userPermissions = useUserPermissions(); + + const isLoadingDocument = + fileNodeDocument?.status === 'LOADING' || !document; const isLoadingEditor = !!editor && !!document && @@ -135,31 +150,25 @@ export function DocumentEditor(props: EditorProps) { setSelectedNode(selectedParentNode); } + if (isLoadingDocument || isLoadingEditor) { + return ; + } + if (selectedNode?.kind !== FILE) { - console.error('Selected node is not a file'); return null; } if (!documentModel) { return (

- Document of type {initialDocument.documentType} is not + Document of type {fileNodeDocument?.documentType} is not supported.

); } if (!editor) { - return ( -

- No editor available for document of type{' '} - {initialDocument.documentType} -

- ); - } - - if (!document || isLoadingEditor) { - return ; + return

No editor available for document of type {documentType}

; } const EditorComponent = editor.Component; @@ -206,9 +215,13 @@ export function DocumentEditor(props: EditorProps) { setShowRevisionHistory(true) } isAllowedToCreateDocuments={ - isAllowedToCreateDocuments + userPermissions?.isAllowedToCreateDocuments ?? + false + } + isAllowedToEditDocuments={ + userPermissions?.isAllowedToEditDocuments ?? + false } - isAllowedToEditDocuments={isAllowedToEditDocuments} /> )} diff --git a/src/context/read-mode.tsx b/src/context/read-mode.tsx index 19056384..12cf86d7 100644 --- a/src/context/read-mode.tsx +++ b/src/context/read-mode.tsx @@ -192,15 +192,25 @@ export const ReadModeContextProvider: FC< ReadModeContextProviderProps > = props => { const [readDrives, setReadDrives] = useState([]); - - const { isAllowedToCreateDocuments, isAllowedToEditDocuments } = - useUserPermissions(); + const userPermissions = useUserPermissions(); // updates drive access level when user permissions change - const readMode = !(isAllowedToCreateDocuments || isAllowedToEditDocuments); + const readMode = + userPermissions === undefined + ? undefined + : !( + userPermissions.isAllowedToCreateDocuments || + userPermissions.isAllowedToEditDocuments + ); useMemo(() => { + // wait for user initial load + if (readMode === undefined) { + return; + } + const accessLevel = readMode ? 'READ' : 'WRITE'; const server = ReadModeInstance.getServer(); + if ( server && typeof (server as IDocumentDriveServer) diff --git a/src/hooks/useAllowList.ts b/src/hooks/useAllowList.ts index 634e934f..81f5256f 100644 --- a/src/hooks/useAllowList.ts +++ b/src/hooks/useAllowList.ts @@ -1,13 +1,21 @@ import { useLogin } from './useLogin'; type AllowListType = 'arbitrum' | 'rwa' | 'none'; -export function useAllowList(): { - isAllowed: boolean; - allowListType: AllowListType; -} { +export function useAllowList(): + | { + isAllowed: boolean; + allowListType: AllowListType; + } + | undefined { const { user, status } = useLogin(); - const arbitrumAllowListEnvString = import.meta.env.PH_CONNECT_ARBITRUM_ALLOW_LIST; + // if the user is not yet loaded then wait + if (user === undefined) { + return undefined; + } + + const arbitrumAllowListEnvString = import.meta.env + .PH_CONNECT_ARBITRUM_ALLOW_LIST; const rwaAllowListEnvString = import.meta.env.PH_CONNECT_RWA_ALLOW_LIST; const arbitrumAllowListIsDefined = diff --git a/src/hooks/useDocumentDriveServer.ts b/src/hooks/useDocumentDriveServer.ts index 2918f40b..8053cc01 100644 --- a/src/hooks/useDocumentDriveServer.ts +++ b/src/hooks/useDocumentDriveServer.ts @@ -51,8 +51,11 @@ export function useDocumentDriveServer( server: IDocumentDriveServer | undefined = DefaultDocumentDriveServer, ) { const { isAllowedToCreateDocuments, isAllowedToEditDocuments } = - useUserPermissions(); - const user = useUser(); + useUserPermissions() || { + isAllowedToCreateDocuments: false, + isAllowedToEditDocuments: false, + }; + const user = useUser() || undefined; const connectDid = useConnectDid(); const { sign } = useConnectCrypto(); diff --git a/src/hooks/useDocumentDrives.ts b/src/hooks/useDocumentDrives.ts index 04190dd5..90c894c7 100644 --- a/src/hooks/useDocumentDrives.ts +++ b/src/hooks/useDocumentDrives.ts @@ -108,10 +108,15 @@ export function useDocumentDrives(server: IDocumentDriveServer) { clientErrorhandler.strandsErrorHandler, ); + const unsub3 = server.on('defaultRemoteDrive', () => + refreshDocumentDrives(), + ); + return () => { unsub1(); unsub2(); unsubOnSyncError(); + unsub3(); }; }, [server, refreshDocumentDrives], diff --git a/src/hooks/useLogin.ts b/src/hooks/useLogin.ts index f44fa1c6..719b2f73 100644 --- a/src/hooks/useLogin.ts +++ b/src/hooks/useLogin.ts @@ -85,7 +85,7 @@ export const useLogin = () => { ({ openRenown, user, - status, + status: user ? 'authorized' : status, login: renown ? login : undefined, logout, }) as const, diff --git a/src/hooks/useUserPermissions.ts b/src/hooks/useUserPermissions.ts index e17beb4c..2091c515 100644 --- a/src/hooks/useUserPermissions.ts +++ b/src/hooks/useUserPermissions.ts @@ -1,7 +1,13 @@ import { useAllowList } from './useAllowList'; export function useUserPermissions() { - const { isAllowed, allowListType } = useAllowList(); + const allowList = useAllowList(); + + if (!allowList) { + return undefined; + } + + const { allowListType, isAllowed } = allowList; if (allowListType === 'arbitrum') { return { diff --git a/src/pages/content.tsx b/src/pages/content.tsx index 75911cc3..526246c9 100644 --- a/src/pages/content.tsx +++ b/src/pages/content.tsx @@ -32,6 +32,7 @@ const Content = () => { selectedParentNode, isRemoteDrive, isAllowedToCreateDocuments, + fileNodeDocument, selectedDocument, documentModels, setSelectedNode, @@ -151,13 +152,15 @@ const Content = () => { className="flex h-full flex-col overflow-auto bg-gray-100 p-6" id="content-view" > - {selectedDocument ? ( + {fileNodeDocument ? (
exportDocument(selectedDocument)} + onExport={() => + selectedDocument && exportDocument(selectedDocument) + } onAddOperation={handleAddOperationToSelectedDocument} {...(isRemoteDrive && { onOpenSwitchboardLink })} /> diff --git a/src/store/document-drive.ts b/src/store/document-drive.ts index 111dca6f..66c791e9 100644 --- a/src/store/document-drive.ts +++ b/src/store/document-drive.ts @@ -67,9 +67,7 @@ type FileNodeDocument = const documentCacheAtom = atom(new Map()); -const singletonFileNodeDocumentAtom = atom( - undefined, -); +const singletonFileNodeDocumentAtom = atom(undefined); const fileNodeDocumentAtom = atom( get => get(singletonFileNodeDocumentAtom), (get, set, newValue: FileNodeDocument) => { @@ -270,11 +268,13 @@ export function useFileNodeDocument( return useMemo( () => ({ + fileNodeDocument, selectedDocument: isSelectedDocument ? selectedDocument : undefined, setSelectedDocument, addOperationToSelectedDocument, }), [ + fileNodeDocument, isSelectedDocument, selectedDocument, setSelectedDocument, diff --git a/src/store/user.ts b/src/store/user.ts index 761c34b0..0c6b31d3 100644 --- a/src/store/user.ts +++ b/src/store/user.ts @@ -9,7 +9,7 @@ import type { User } from 'src/services/renown/types'; let userInit = false; -const userAtom = atom(undefined); +const userAtom = atom(undefined); export const useUser = () => { const [user, setUser] = useAtom(userAtom); @@ -31,14 +31,14 @@ export const useUser = () => { renown ?.user() .then(user => { - setUser(user); + setUser(user || null); }) .catch(() => { - setUser(undefined); + setUser(null); }); const unsub = renown?.on.user(user => { - setUser(user); + setUser(user || null); }); return () => { diff --git a/src/utils/document-model.ts b/src/utils/document-model.ts index cf4a5f18..86e59315 100644 --- a/src/utils/document-model.ts +++ b/src/utils/document-model.ts @@ -42,7 +42,7 @@ type OnErrorHandler = (error: unknown) => void; export function useDocumentDispatch( documentReducer: Reducer | undefined, - initialState: Document, + initialState: Document | undefined, onError: OnErrorHandler = logger.error, ): readonly [ Document | undefined, @@ -68,7 +68,7 @@ export function useDocumentDispatch( ) => { setError(undefined); setState(_state => { - if (!documentReducer) return _state; + if (!documentReducer || !_state) return _state; try { const newState = documentReducer(_state, action); diff --git a/src/utils/reactor.ts b/src/utils/reactor.ts index 84bc6f3f..9c5eb46e 100644 --- a/src/utils/reactor.ts +++ b/src/utils/reactor.ts @@ -17,7 +17,6 @@ export const getReactorDefaultDrivesConfig = (): Pick< driveUrl => ({ url: driveUrl, options: { - accessLevel: 'READ', sharingType: 'PUBLIC', availableOffline: true, listeners: [ From ff6b7d8a86a5c89d4eaa52a442e3f244c18981af Mon Sep 17 00:00:00 2001 From: acaldas Date: Thu, 12 Sep 2024 10:09:12 +0100 Subject: [PATCH 87/90] feat: only show editor loader for slow documents --- package-lock.json | 20 ++++++++++---------- package.json | 2 +- src/components/editor-loader.tsx | 20 ++++++++++++++++---- src/components/editors.tsx | 14 ++++++-------- src/hooks/useDocumentDriveServer.ts | 4 ++-- 5 files changed, 35 insertions(+), 25 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2c3dedb9..6520e0c6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,22 +1,22 @@ { "name": "@powerhousedao/connect", - "version": "1.0.0-dev.103", + "version": "1.0.0-dev.104", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@powerhousedao/connect", - "version": "1.0.0-dev.103", + "version": "1.0.0-dev.104", "license": "AGPL-3.0-only", "dependencies": { - "@powerhousedao/design-system": "^1.0.0-alpha.167", + "@powerhousedao/design-system": "^1.0.0-alpha.168", "@sentry/react": "^7.109.0", "@sentry/vite-plugin": "^2.22.2", "@tanstack/react-virtual": "^3.8.1", "did-key-creator": "^1.2.0", "document-drive": "^1.0.0-alpha.94", "document-model": "^1.8.0", - "document-model-libs": "^1.84.0", + "document-model-libs": "^1.85.0", "electron-is-dev": "^3.0.1", "electron-squirrel-startup": "^1.0.0", "electron-store": "^8.1.0", @@ -6566,9 +6566,9 @@ } }, "node_modules/@powerhousedao/design-system": { - "version": "1.0.0-alpha.167", - "resolved": "https://registry.npmjs.org/@powerhousedao/design-system/-/design-system-1.0.0-alpha.167.tgz", - "integrity": "sha512-yWXV4MXvUJN/BbuxhtPEqpx0QXgJ8a8ys4C2zN65uoeLVOqMG5HcdOtMqm84fXd5eOYcKrIfAsH1UB6JkZP2PA==", + "version": "1.0.0-alpha.168", + "resolved": "https://registry.npmjs.org/@powerhousedao/design-system/-/design-system-1.0.0-alpha.168.tgz", + "integrity": "sha512-z3mmuvyjJAjj2ztj/YWY/TbGDBxwHbDkVgIPvsaZxMTrpO6l3fwU8Urj85EP7ZPF4xyefEQ9S1oFlCNFskRXlw==", "dependencies": { "@internationalized/date": "^3.5.1", "@radix-ui/react-dialog": "^1.0.5", @@ -15383,9 +15383,9 @@ } }, "node_modules/document-model-libs": { - "version": "1.84.0", - "resolved": "https://registry.npmjs.org/document-model-libs/-/document-model-libs-1.84.0.tgz", - "integrity": "sha512-v3dc9asjf+pvAPffubUb8Pr1R8ahPwKUU1/qIwLrlXbSJ4Rz3ctsvjcwW2z0uIiCZJPoLCRTE+VESIIAO5GiHQ==", + "version": "1.85.0", + "resolved": "https://registry.npmjs.org/document-model-libs/-/document-model-libs-1.85.0.tgz", + "integrity": "sha512-Km4CyqVOnhKnCpyww0afUFV4Wi/QTBI4aiVPDGEJvzN/EPX9OFVATiJzVXUNODprkLlNayDcQOjdjnDq6Ael1w==", "dependencies": { "@acaldas/graphql-codegen-typescript-validation-schema": "^0.12.3", "@graphql-codegen/core": "^4.0.2", diff --git a/package.json b/package.json index 98f9b063..05ae3bbf 100644 --- a/package.json +++ b/package.json @@ -90,7 +90,7 @@ "xvfb-maybe": "^0.2.1" }, "dependencies": { - "@powerhousedao/design-system": "^1.0.0-alpha.167", + "@powerhousedao/design-system": "^1.0.0-alpha.168", "@sentry/react": "^7.109.0", "@sentry/vite-plugin": "^2.22.2", "@tanstack/react-virtual": "^3.8.1", diff --git a/src/components/editor-loader.tsx b/src/components/editor-loader.tsx index 60940f74..227cb2e4 100644 --- a/src/components/editor-loader.tsx +++ b/src/components/editor-loader.tsx @@ -1,13 +1,25 @@ import { DefaultEditorLoader } from '@powerhousedao/design-system'; -import { ReactNode } from 'react'; +import { ComponentProps, ReactNode, useEffect, useState } from 'react'; -type Props = { +type Props = ComponentProps & { + loadingTimeout?: number; customEditorLoader?: ReactNode; }; export function EditorLoader(props: Props) { - const { customEditorLoader } = props; + const [showLoading, setShowLoading] = useState(false); + + // only shows the loader after some time has passed + useEffect(() => { + setTimeout(() => { + setShowLoading(true); + }, props.loadingTimeout ?? 200); + }, [props]); + + if (!showLoading) return null; + + const { customEditorLoader, ...defaultProps } = props; if (customEditorLoader) return <>{customEditorLoader}; - return ; + return ; } diff --git a/src/components/editors.tsx b/src/components/editors.tsx index d127fc69..15a8e95c 100644 --- a/src/components/editors.tsx +++ b/src/components/editors.tsx @@ -75,7 +75,7 @@ export function DocumentEditor(props: EditorProps) { initialDocument, ); const context: EditorContext = useMemo( - () => ({ theme, user: user }), + () => ({ theme, user }), [theme, user], ); const userPermissions = useUserPermissions(); @@ -151,7 +151,10 @@ export function DocumentEditor(props: EditorProps) { } if (isLoadingDocument || isLoadingEditor) { - return ; + const message = isLoadingDocument + ? 'Loading document' + : 'Loading editor'; + return ; } if (selectedNode?.kind !== FILE) { @@ -159,12 +162,7 @@ export function DocumentEditor(props: EditorProps) { } if (!documentModel) { - return ( -

- Document of type {fileNodeDocument?.documentType} is not - supported. -

- ); + return

Document of type {documentType} is not supported.

; } if (!editor) { diff --git a/src/hooks/useDocumentDriveServer.ts b/src/hooks/useDocumentDriveServer.ts index 8053cc01..f7aefcc5 100644 --- a/src/hooks/useDocumentDriveServer.ts +++ b/src/hooks/useDocumentDriveServer.ts @@ -512,8 +512,8 @@ export function useDocumentDriveServer( ); const deleteDrive = useCallback( - async (id: string, force = false) => { - if (!force && !isAllowedToCreateDocuments) { + async (id: string) => { + if (!isAllowedToCreateDocuments) { throw new Error('User is not allowed to delete drives'); } if (!server) { From 94ae965a6633635e3c55ba4079cd9ece1ab615e4 Mon Sep 17 00:00:00 2001 From: acaldas Date: Thu, 12 Sep 2024 11:51:09 +0100 Subject: [PATCH 88/90] feat: allow all when no allow list is defined --- src/hooks/useAllowList.ts | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/hooks/useAllowList.ts b/src/hooks/useAllowList.ts index 81f5256f..435456d5 100644 --- a/src/hooks/useAllowList.ts +++ b/src/hooks/useAllowList.ts @@ -9,11 +9,6 @@ export function useAllowList(): | undefined { const { user, status } = useLogin(); - // if the user is not yet loaded then wait - if (user === undefined) { - return undefined; - } - const arbitrumAllowListEnvString = import.meta.env .PH_CONNECT_ARBITRUM_ALLOW_LIST; const rwaAllowListEnvString = import.meta.env.PH_CONNECT_RWA_ALLOW_LIST; @@ -29,6 +24,19 @@ export function useAllowList(): ); } + // if none of the lists are defined then allow all + if (!arbitrumAllowListIsDefined && !rwaAllowListIsDefined) { + return { + isAllowed: true, + allowListType: 'none', + }; + } + + // if the user is not yet loaded then wait + if (user === undefined) { + return undefined; + } + if (arbitrumAllowListIsDefined) { const arbitrumAllowList = arbitrumAllowListEnvString.split(','); From c796a3846fca3bfb1c2e66499d87093684f01eb1 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Thu, 12 Sep 2024 10:53:17 +0000 Subject: [PATCH 89/90] chore(release): set `package.json` to 1.0.0-dev.105 [skip ci] # [1.0.0-dev.105](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.104...v1.0.0-dev.105) (2024-09-12) ### Features * added support for read mode ([146c59e](https://github.com/powerhouse-inc/document-model-electron/commit/146c59eb5c56365e36cb28493a415ae531054e57)) * allow all when no allow list is defined ([94ae965](https://github.com/powerhouse-inc/document-model-electron/commit/94ae965a6633635e3c55ba4079cd9ece1ab615e4)) * only show editor loader for slow documents ([ff6b7d8](https://github.com/powerhouse-inc/document-model-electron/commit/ff6b7d8a86a5c89d4eaa52a442e3f244c18981af)) * show loading editor while document is being fetched ([cfdfa01](https://github.com/powerhouse-inc/document-model-electron/commit/cfdfa01895e2b31dd027b2818c5761f56c23c2d7)) * updated default drives handling ([0cdb778](https://github.com/powerhouse-inc/document-model-electron/commit/0cdb778f5721c031e24304505ca8ef4819304e11)) * updated document drive ([4a511dd](https://github.com/powerhouse-inc/document-model-electron/commit/4a511dd320343bd5899eab2c7c9175af41629c3e)) * updated document drive ([16c07e6](https://github.com/powerhouse-inc/document-model-electron/commit/16c07e641c7beafa4639b1caf0f5532ec2532fa6)) --- CHANGELOG.md | 13 +++++++++++++ package.json | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index eb5a0f3d..7d184cb2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,16 @@ +# [1.0.0-dev.105](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.104...v1.0.0-dev.105) (2024-09-12) + + +### Features + +* added support for read mode ([146c59e](https://github.com/powerhouse-inc/document-model-electron/commit/146c59eb5c56365e36cb28493a415ae531054e57)) +* allow all when no allow list is defined ([94ae965](https://github.com/powerhouse-inc/document-model-electron/commit/94ae965a6633635e3c55ba4079cd9ece1ab615e4)) +* only show editor loader for slow documents ([ff6b7d8](https://github.com/powerhouse-inc/document-model-electron/commit/ff6b7d8a86a5c89d4eaa52a442e3f244c18981af)) +* show loading editor while document is being fetched ([cfdfa01](https://github.com/powerhouse-inc/document-model-electron/commit/cfdfa01895e2b31dd027b2818c5761f56c23c2d7)) +* updated default drives handling ([0cdb778](https://github.com/powerhouse-inc/document-model-electron/commit/0cdb778f5721c031e24304505ca8ef4819304e11)) +* updated document drive ([4a511dd](https://github.com/powerhouse-inc/document-model-electron/commit/4a511dd320343bd5899eab2c7c9175af41629c3e)) +* updated document drive ([16c07e6](https://github.com/powerhouse-inc/document-model-electron/commit/16c07e641c7beafa4639b1caf0f5532ec2532fa6)) + # [1.0.0-dev.104](https://github.com/powerhouse-inc/document-model-electron/compare/v1.0.0-dev.103...v1.0.0-dev.104) (2024-09-11) diff --git a/package.json b/package.json index 05ae3bbf..1bc1e0cb 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@powerhousedao/connect", "productName": "Powerhouse-Connect", - "version": "1.0.0-dev.104", + "version": "1.0.0-dev.105", "description": "Powerhouse Connect", "main": ".vite/build/main.js", "license": "AGPL-3.0-only", From 9c82f933d83ddd0e581e30cc6889d09a8fecde4d Mon Sep 17 00:00:00 2001 From: acaldas Date: Thu, 12 Sep 2024 13:46:46 +0100 Subject: [PATCH 90/90] feat: show error when document loading fails --- src/components/editors.tsx | 24 ++++++++++++++++++++++-- src/store/document-drive.ts | 17 ++++++----------- 2 files changed, 28 insertions(+), 13 deletions(-) diff --git a/src/components/editors.tsx b/src/components/editors.tsx index 15a8e95c..ea3854da 100644 --- a/src/components/editors.tsx +++ b/src/components/editors.tsx @@ -39,6 +39,14 @@ export type EditorProps< onChange?: (document: Document) => void; }; +function EditorError({ message }: { message: string }) { + return ( +
+

{message}

+
+ ); +} + export function DocumentEditor(props: EditorProps) { const { selectedNode, @@ -150,6 +158,10 @@ export function DocumentEditor(props: EditorProps) { setSelectedNode(selectedParentNode); } + if (fileNodeDocument?.status === 'ERROR') { + return ; + } + if (isLoadingDocument || isLoadingEditor) { const message = isLoadingDocument ? 'Loading document' @@ -162,11 +174,19 @@ export function DocumentEditor(props: EditorProps) { } if (!documentModel) { - return

Document of type {documentType} is not supported.

; + return ( + + ); } if (!editor) { - return

No editor available for document of type {documentType}

; + return ( + + ); } const EditorComponent = editor.Component; diff --git a/src/store/document-drive.ts b/src/store/document-drive.ts index 66c791e9..9c5400a9 100644 --- a/src/store/document-drive.ts +++ b/src/store/document-drive.ts @@ -151,18 +151,13 @@ export function useFileNodeDocument( const fetchDocument = useCallback( async (driveId: string, id: string, documentType: string) => { - try { - const document = await (isReadMode - ? fetchReadDocument(driveId, id, documentType) - : openFile(driveId, id)); - if (document instanceof Error) { - throw document; - } - return document; - } catch (error) { - logger.error(error); - return undefined; + const document = await (isReadMode + ? fetchReadDocument(driveId, id, documentType) + : openFile(driveId, id)); + if (document instanceof Error) { + throw document; } + return document; }, [fetchReadDocument, isReadMode, openFile], );