diff --git a/.gitignore b/.gitignore index ef13c79..1d2742e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .nogit/ +.playwright-mcp/ # artifacts coverage/ @@ -17,4 +18,4 @@ node_modules/ dist/ dist_*/ -# custom \ No newline at end of file +# custom diff --git a/.smartconfig.json b/.smartconfig.json new file mode 100644 index 0000000..e71eb6b --- /dev/null +++ b/.smartconfig.json @@ -0,0 +1,82 @@ +{ + "@git.zone/cli": { + "projectType": "wcc", + "module": { + "githost": "gitlab.com", + "gitscope": "signature.digital", + "gitrepo": "catalog", + "description": "A comprehensive catalog of customizable web components designed for building and managing e-signature applications.", + "npmPackagename": "@signature.digital/catalog", + "license": "MIT", + "projectDomain": "signature.digital", + "keywords": [ + "e-signature", + "web components", + "digital signature", + "signature capture", + "ECMAScript Modules", + "typescript", + "component library", + "contract management", + "frontend development", + "signature pad", + "custom elements", + "electronic signing", + "npm package" + ] + }, + "release": { + "registries": [ + "https://verdaccio.lossless.digital", + "https://registry.npmjs.org" + ], + "accessLevel": "public" + } + }, + "@git.zone/tsbundle": { + "bundles": [ + { + "from": "./html/index.ts", + "to": "./dist_bundle/bundle.js", + "outputMode": "bundle", + "bundler": "esbuild", + "production": true, + "includeFiles": [ + "./html/index.html" + ] + } + ] + }, + "@git.zone/tswatch": { + "server": { + "enabled": true, + "port": 3002, + "serveDir": "./dist_watch/", + "liveReload": true + }, + "bundles": [ + { + "name": "element-bundle", + "from": "./html/index.ts", + "to": "./dist_watch/bundle.js", + "watchPatterns": [ + "./ts_web/**/*", + "./html/index.ts" + ], + "triggerReload": true, + "bundler": "esbuild", + "production": false + }, + { + "name": "html", + "from": "./html/index.html", + "to": "./dist_watch/index.html", + "watchPatterns": [ + "./html/**/*" + ], + "triggerReload": true + } + ] + }, + "@ship.zone/szci": {} +} \ No newline at end of file diff --git a/changelog.md b/changelog.md index dd829e9..0f1bfe2 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,13 @@ # Changelog +## 2026-05-02 - 1.3.0 - feat(workspace) +introduce a responsive signature workspace demo and remove legacy contract editor components + +- Adds a new `sdig-workspace` component with inbox, compose, sign, audit, developers, templates, team, and settings views. +- Removes the previous contract editor module and related contract subcomponents from exports and source files. +- Updates package exports, build configuration, and project metadata for the new workspace-focused catalog distribution. +- Improves sign pad and sign box null-safety and groups demos under signature primitives and workspace categories. + ## 2025-12-18 - 1.2.0 - feat(icons) migrate icon usage to the new dees-icon API and integrate collaboration sidebar into the editor diff --git a/license b/license new file mode 100644 index 0000000..b5330c9 --- /dev/null +++ b/license @@ -0,0 +1,19 @@ +Copyright (c) 2014 Task Venture Capital GmbH (hello@task.vc) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/npmextra.json b/npmextra.json deleted file mode 100644 index 7102d1c..0000000 --- a/npmextra.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "gitzone": { - "projectType": "wcc", - "module": { - "githost": "gitlab.com", - "gitscope": "signature.digital_private", - "gitrepo": "catalog", - "description": "A comprehensive catalog of customizable web components designed for building and managing e-signature applications.", - "npmPackagename": "@signature.digital_private/catalog", - "license": "UNLICENSED", - "projectDomain": "signature.digital", - "keywords": [ - "e-signature", - "web components", - "digital signature", - "signature capture", - "ECMAScript Modules", - "typescript", - "component library", - "contract management", - "frontend development", - "signature pad", - "custom elements", - "electronic signing", - "npm package" - ] - } - }, - "npmci": { - "npmGlobalTools": [], - "npmAccessLevel": "private" - } -} \ No newline at end of file diff --git a/package.json b/package.json index c95edba..ace6c5a 100644 --- a/package.json +++ b/package.json @@ -4,30 +4,30 @@ "private": false, "description": "A comprehensive catalog of customizable web components designed for building and managing e-signature applications.", "exports": { - ".": "./dist_ts_web/index.ts" + ".": "./dist_ts_web/index.js" }, "type": "module", "scripts": { - "test": "npm run build", - "build": "tsbuild element && tsbundle element --production", - "watch": "tswatch element" + "test": "pnpm run build", + "build": "tsbuild tsfolders --allowimplicitany && tsbundle", + "watch": "tswatch" }, "author": "Task Venture Capital GmbH", "license": "MIT", "dependencies": { - "@design.estate/dees-catalog": "^3.3.1", - "@design.estate/dees-domtools": "^2.3.6", - "@design.estate/dees-element": "^2.1.3", - "@design.estate/dees-wcctools": "^2.0.1", - "@git.zone/tsrun": "^2.0.1", - "@signature.digital/tools": "^1.1.0", + "@design.estate/dees-catalog": "3.81.0", + "@design.estate/dees-domtools": "^2.5.6", + "@design.estate/dees-element": "^2.2.4", + "@design.estate/dees-wcctools": "^3.9.0", + "@git.zone/tsrun": "^2.0.3", "signature_pad": "^5.1.3" }, "devDependencies": { - "@git.zone/tsbuild": "^4.0.2", - "@git.zone/tsbundle": "^2.6.3", - "@git.zone/tswatch": "^2.3.13", - "@push.rocks/projectinfo": "^5.0.2" + "@git.zone/tsbuild": "^4.4.0", + "@git.zone/tsbundle": "2.10.1", + "@git.zone/tswatch": "^3.3.3", + "@push.rocks/projectinfo": "^5.1.0", + "@types/node": "^25.6.0" }, "files": [ "ts/**/*", @@ -38,7 +38,8 @@ "dist_ts_web/**/*", "assets/**/*", "cli.js", - "npmextra.json", + ".smartconfig.json", + "license", "readme.md" ], "browserslist": [ @@ -58,11 +59,5 @@ "custom elements", "electronic signing", "npm package" - ], - "pnpm": { - "overrides": { - "@push.rocks/smartrequest": "^5.0.1", - "agentkeepalive": "^4.6.0" - } - } + ] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e9667eb..395a07a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,48 +4,44 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false -overrides: - '@push.rocks/smartrequest': ^5.0.1 - agentkeepalive: ^4.6.0 - importers: .: dependencies: '@design.estate/dees-catalog': - specifier: ^3.3.1 - version: 3.3.1(@tiptap/pm@2.27.1) + specifier: 3.81.0 + version: 3.81.0(@tiptap/pm@2.27.2) '@design.estate/dees-domtools': - specifier: ^2.3.6 - version: 2.3.6 + specifier: ^2.5.6 + version: 2.5.6 '@design.estate/dees-element': - specifier: ^2.1.3 - version: 2.1.3 + specifier: ^2.2.4 + version: 2.2.4 '@design.estate/dees-wcctools': - specifier: ^2.0.1 - version: 2.0.1 + specifier: ^3.9.0 + version: 3.9.0 '@git.zone/tsrun': - specifier: ^2.0.1 - version: 2.0.1 - '@signature.digital/tools': - specifier: ^1.1.0 - version: 1.1.0 + specifier: ^2.0.3 + version: 2.0.3 signature_pad: specifier: ^5.1.3 version: 5.1.3 devDependencies: '@git.zone/tsbuild': - specifier: ^4.0.2 - version: 4.0.2 + specifier: ^4.4.0 + version: 4.4.0 '@git.zone/tsbundle': - specifier: ^2.6.3 - version: 2.6.3 + specifier: 2.10.1 + version: 2.10.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) '@git.zone/tswatch': - specifier: ^2.3.13 - version: 2.3.13(@tiptap/pm@2.27.1) + specifier: ^3.3.3 + version: 3.3.3(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@tiptap/pm@2.27.2) '@push.rocks/projectinfo': - specifier: ^5.0.2 - version: 5.0.2 + specifier: ^5.1.0 + version: 5.1.0 + '@types/node': + specifier: ^25.6.0 + version: 25.6.0 packages: @@ -55,17 +51,14 @@ packages: '@api.global/typedrequest-interfaces@3.0.19': resolution: {integrity: sha512-uuHUXJeOy/inWSDrwD0Cwax2rovpxYllDhM2RWh+6mVpQuNmZ3uw6IVg6dA2G1rOe24Ebs+Y9SzEogo+jYN7vw==} - '@api.global/typedrequest@3.1.10': - resolution: {integrity: sha512-EiCp44XVcMjBvEs4oM1nMUaeY4ySU0Pzt3+mDwVG5DNP6EV87Nwancbr2jKScvaFNel9eeDgGtgEnFBKjOnApA==} + '@api.global/typedrequest@3.3.0': + resolution: {integrity: sha512-Jwobqla+9k2IBG0duwrCFtc6GU6wsvHS3f0gJJsxTrpapylBW1YSF7NnGHPGs7F9hbATsO6IoUBpR2ScoKyGJA==} - '@api.global/typedrequest@3.2.5': - resolution: {integrity: sha512-LM/sUTuYnU5xY4gNZrN6ERMiKr+SpDZuSxJkAZz1YazC7ymGfo6uQ8sCnN8eNNQNFqIOkC+BtfYRayfbGwYLLg==} + '@api.global/typedserver@8.4.6': + resolution: {integrity: sha512-kSzjzM0TenzRL73rmDiwsJR/SFJ3nPI7zFC9KWxO7nIhyMo5wgO7UMVCpjXrTYMK6c4HwbhBxEPIJb4prqakww==} - '@api.global/typedserver@7.11.1': - resolution: {integrity: sha512-1vQUJ2/DszDFHVkCmqqBy/qNiIP/jltFN3KxHtoNLxjbdBZYfw1Zd1Odjs6YSPalAD0p8wQ/alJblJEAewNQVg==} - - '@api.global/typedsocket@4.1.0': - resolution: {integrity: sha512-ttmoU5BNHmLAkAF/o+Ta8F5O4F7CUmkFo6LK7NKHQvuYJvodPMYWdhJ6yCINTF4pfCgljkMDUqoVKobm6ea4mQ==} + '@api.global/typedsocket@4.1.2': + resolution: {integrity: sha512-fZFuJY9ucFCICjF4wi6OvK8drsv6UcwVVsfamOT1HxFj7OBOYw6QHOceQ+cAQ8IrWbX817sf8gzlesl+jlG8JA==} peerDependencies: '@push.rocks/smartserve': '>=1.1.0' @@ -92,508 +85,554 @@ packages: '@aws-crypto/util@5.2.0': resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} - '@aws-sdk/client-s3@3.715.0': - resolution: {integrity: sha512-7Qq8nW+/Yf+1Prjbwt2I6BsxhY28V6mbi8WF0n8m4qbC+y9wvreNuGv0PgzuLpfcP1bacB1ItW/Wkwuw2mau0w==} - engines: {node: '>=16.0.0'} + '@aws-sdk/client-s3@3.1041.0': + resolution: {integrity: sha512-sQV14bIqslnBHuSlLMD+fc3pH+ajop6vnrFlJ4wM4JDqcYwVik4O+9srnZUrkesFw5y+CN0GfOQ06CAgtC4mjQ==} + engines: {node: '>=20.0.0'} - '@aws-sdk/client-sso-oidc@3.714.0': - resolution: {integrity: sha512-dMvpPUaL3v01psPY1ZyCzQ/w2tOgQTH1if0zBF5r2q7Vc0oOPzbBZgNAhG1bDWlRCBW0iXmoqRFoWUwQ5rtx+A==} - engines: {node: '>=16.0.0'} - peerDependencies: - '@aws-sdk/client-sts': ^3.714.0 + '@aws-sdk/core@3.974.8': + resolution: {integrity: sha512-njR2qoG6ZuB0kvAS2FyICsFZJ6gmCcf2X/7JcD14sUvGDm26wiZ5BrA6LOiUxKFEF+IVe7kdroxyE00YlkiYsw==} + engines: {node: '>=20.0.0'} - '@aws-sdk/client-sso@3.714.0': - resolution: {integrity: sha512-pFtjY5Ga91qrryo0UfbjetdT2p9rOgtHofogAeEuGjxx7/rupBpdlW0WDOtD/7jhmbhM8WZEr6aH7GLzzkKfCA==} - engines: {node: '>=16.0.0'} + '@aws-sdk/crc64-nvme@3.972.7': + resolution: {integrity: sha512-QUagVVBbC8gODCF6e1aV0mE2TXWB9Opz4k8EJFdNrujUVQm5R4AjJa1mpOqzwOuROBzqJU9zawzig7M96L8Ejg==} + engines: {node: '>=20.0.0'} - '@aws-sdk/client-sts@3.714.0': - resolution: {integrity: sha512-ThcXgolapPsOzeavJF4Am312umFyoFBBeiTYD8PQGIiYkbJi4hXcjoWacmtkq6moMmMZSP9iK/ellls7vwY2JQ==} - engines: {node: '>=16.0.0'} + '@aws-sdk/credential-provider-env@3.972.34': + resolution: {integrity: sha512-XT0jtf8Fw9JE6ppsQeoNnZRiG+jqRixMT1v1ZR17G60UvVdsQmTG8nbEyHuEPfMxDXEhfdARaM/XiEhca4lGHQ==} + engines: {node: '>=20.0.0'} - '@aws-sdk/core@3.714.0': - resolution: {integrity: sha512-TlZ50d8MEPVp9O03SvisOmcmxjxhMDKHJJcrBgYjgDej6QmNfiFwtCRkReXDdkEeXP29ehMs7uPXtmVvPqziYw==} - engines: {node: '>=16.0.0'} + '@aws-sdk/credential-provider-http@3.972.36': + resolution: {integrity: sha512-DPoGWfy7J7RKxvbf5kOKIGQkD2ek3dbKgzKIGrnLuvZBz5myU+Im/H6pmc14QcnFbqHMqxvtWSgRDSJW3qXLQg==} + engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-env@3.714.0': - resolution: {integrity: sha512-0S4nKE1a+EHXAInXUeuWkyzVnXzmwIbwLStVidAIoyl6sJF8xGdw+r3AaoTr7p0YXzdoDUsn3wBTCA6ZwgXVbA==} - engines: {node: '>=16.0.0'} + '@aws-sdk/credential-provider-ini@3.972.38': + resolution: {integrity: sha512-oDzUBu2MGJFgoar05sPMCwSrhw44ASyccrHzj66vO69OZqi7I6hZZxXfuPLC8OCzW7C+sU+bI73XHij41yekgQ==} + engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-http@3.714.0': - resolution: {integrity: sha512-1AXEfUSQUQg+x/DpH1XJhjf2yEgTHHatM3cvYu7FZMhRXF28Q5OJDbEFPfdqrK+vmCiYRWhszDb+zuUIvz46bw==} - engines: {node: '>=16.0.0'} + '@aws-sdk/credential-provider-login@3.972.38': + resolution: {integrity: sha512-g1NosS8qe4OF++G2UFCM5ovSkgipC7YYor5KCWatG0UoMSO5YFj9C8muePlyVmOBV/WTI16Jo3/s1NUo/o1Bww==} + engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-ini@3.714.0': - resolution: {integrity: sha512-w5wOcgBngfcvVev5wnYWXoc/W2ewVmGJkfRdGquhFt8pkUxktyd8eXehqkP7u31SONVlgy96EFTdSCzWpTrqOw==} - engines: {node: '>=16.0.0'} - peerDependencies: - '@aws-sdk/client-sts': ^3.714.0 + '@aws-sdk/credential-provider-node@3.972.39': + resolution: {integrity: sha512-HEswDQyxUtadoZ/bJsPPENHg7R0Lzym5LuMksJeHvqhCOpP+rtkDLKI4/ZChH4w3cf5kG8n6bZuI8PzajoiqMg==} + engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-node@3.714.0': - resolution: {integrity: sha512-ebho1HYNKzaw0ZfbI9kEicSW8J7tsOoV6EJajsjfFnuP+GY9J5Oi4759GEq1Qqj7GxIhrySOZFzif/hxAXPWtQ==} - engines: {node: '>=16.0.0'} + '@aws-sdk/credential-provider-process@3.972.34': + resolution: {integrity: sha512-T3IFs4EVmVi1dVN5RciFnklCANSzvrQd/VuHY9ThHSQmYkTogjcGkoJEr+oNUPQZnso52183088NqysMPji1/Q==} + engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-process@3.714.0': - resolution: {integrity: sha512-mHM+zYJDUiXggBx4YvQgMOhbkV07KUib8/jWPnAZbUJcRncN/yevAp/WNocjUN4VaBWkooJUgoTET/okRK+TCQ==} - engines: {node: '>=16.0.0'} + '@aws-sdk/credential-provider-sso@3.972.38': + resolution: {integrity: sha512-5ZxG+t0+3Q3QPh8KEjX6syskhgNf7I0MN7oGioTf6Lm1NTjfP7sIcYGNsthXC2qR8vcD3edNZwCr2ovfSSWuRA==} + engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-sso@3.714.0': - resolution: {integrity: sha512-LQyHUQd+/A0PO96m6/A3KeekRplRpG9AmwLn8VPknlmACAhhbWHehzerCTd42V8dClf5pigr25/aVqh/2p/sRw==} - engines: {node: '>=16.0.0'} + '@aws-sdk/credential-provider-web-identity@3.972.38': + resolution: {integrity: sha512-lYHFF30DGI20jZcYX8cm6Ns0V7f1dDN6g/MBDLTyD/5iw+bXs3yBr2iAiHDkx4RFU5JgsnZvCHYKiRVPRdmOgw==} + engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-web-identity@3.714.0': - resolution: {integrity: sha512-piKfEJvLrGZ0bH4NPO19d1dtfCZi2p6YJUK/9vRCD1rvJidOuHNeUwIcxTnkIMovQHX12rZVvU9ub0C3CwegUQ==} - engines: {node: '>=16.0.0'} - peerDependencies: - '@aws-sdk/client-sts': ^3.714.0 + '@aws-sdk/middleware-bucket-endpoint@3.972.10': + resolution: {integrity: sha512-Vbc2frZH7wXlMNd+ZZSXUEs/l1Sv8Jj4zUnIfwrYF5lwaLdXHZ9xx4U3rjUcaye3HRhFVc+E5DbBxpRAbB16BA==} + engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-bucket-endpoint@3.714.0': - resolution: {integrity: sha512-I/xSOskiseJJ8i183Z522BgqbgYzLKP7jGcg2Qeib/IWoG2IP+9DH8pwqagKaPAycyswtnoKBJiiFXY43n0CkA==} - engines: {node: '>=16.0.0'} + '@aws-sdk/middleware-expect-continue@3.972.10': + resolution: {integrity: sha512-2Yn0f1Qiq/DjxYR3wfI3LokXnjOhFM7Ssn4LTdFDIxRMCE6I32MAsVnhPX1cUZsuVA9tiZtwwhlSLAtFGxAZlQ==} + engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-expect-continue@3.714.0': - resolution: {integrity: sha512-rlzsXdG8Lzo4Qpl35ZnpOBAWlzvDHpP9++0AXoUwAJA0QmMm7auIRmgxJuNj91VwT9h15ZU6xjU4S7fJl4W0+w==} - engines: {node: '>=16.0.0'} + '@aws-sdk/middleware-flexible-checksums@3.974.16': + resolution: {integrity: sha512-6ru8doI0/XzszqLIPXf0E/V7HhAw1Pu94010XCKYtBUfD0LxF0BuOzrUf8OQGR6j2o6wgKTHUniOmndQycHwCA==} + engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-flexible-checksums@3.715.0': - resolution: {integrity: sha512-oDUxpwBZqQ0x7c9typmaX7cHxFsyxwApQPuPYV4hSTBsLtqpDc7KtyV+lgxQxkgoHya6P37+Wwllr4FjcujXwg==} - engines: {node: '>=16.0.0'} + '@aws-sdk/middleware-host-header@3.972.10': + resolution: {integrity: sha512-IJSsIMeVQ8MMCPbuh1AbltkFhLBLXn7aejzfX5YKT/VLDHn++Dcz8886tXckE+wQssyPUhaXrJhdakO2VilRhg==} + engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-host-header@3.714.0': - resolution: {integrity: sha512-6l68kjNrh5QC8FGX3I3geBDavWN5Tg1RLHJ2HLA8ByGBtJyCwnz3hEkKfaxn0bBx0hF9DzbfjEOUF6cDqy2Kjg==} - engines: {node: '>=16.0.0'} + '@aws-sdk/middleware-location-constraint@3.972.10': + resolution: {integrity: sha512-rI3NZvJcEvjoD0+0PI0iUAwlPw2IlSlhyvgBK/3WkKJQE/YiKFedd9dMN2lVacdNxPNhxL/jzQaKQdrGtQagjQ==} + engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-location-constraint@3.714.0': - resolution: {integrity: sha512-MX7M+V+FblujKck3fyuzePVIAy9530gY719IiSxV6uN1qLHl7VDJxNblpF/KpXakD6rOg8OpvtmqsXj9aBMftw==} - engines: {node: '>=16.0.0'} + '@aws-sdk/middleware-logger@3.972.10': + resolution: {integrity: sha512-OOuGvvz1Dm20SjZo5oEBePFqxt5nf8AwkNDSyUHvD9/bfNASmstcYxFAHUowy4n6Io7mWUZ04JURZwSBvyQanQ==} + engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-logger@3.714.0': - resolution: {integrity: sha512-RkqHlMvQWUaRklU1bMfUuBvdWwxgUtEqpADaHXlGVj3vtEY2UgBjy+57CveC4MByqKIunNvVHBBbjrGVtwY7Lg==} - engines: {node: '>=16.0.0'} + '@aws-sdk/middleware-recursion-detection@3.972.11': + resolution: {integrity: sha512-+zz6f79Kj9V5qFK2P+D8Ehjnw4AhphAlCAsPjUqEcInA9umtSSKMrHbSagEeOIsDNuvVrH98bjRHcyQukTrhaQ==} + engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-recursion-detection@3.714.0': - resolution: {integrity: sha512-AVU5ixnh93nqtsfgNc284oXsXaadyHGPHpql/jwgaaqQfEXjS/1/j3j9E/vpacfTTz2Vzo7hAOjnvrOXSEVDaA==} - engines: {node: '>=16.0.0'} + '@aws-sdk/middleware-sdk-s3@3.972.37': + resolution: {integrity: sha512-Km7M+i8DrLArVzrid1gfxeGhYHBd3uxvE77g0s5a52zPSVosxzQBnJ0gwWb6NIp/DOk8gsBMhi7V+cpJG0ndTA==} + engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-sdk-s3@3.714.0': - resolution: {integrity: sha512-YYhX+JefwwEsUxYs0YXn5Mfb97Lo3hwnk3qRIlUkcotCsHYwgCX4jVWjeh8HK+RFFx3Krbh/8/YmzTkI/Z4Z9Q==} - engines: {node: '>=16.0.0'} + '@aws-sdk/middleware-ssec@3.972.10': + resolution: {integrity: sha512-Gli9A0u8EVVb+5bFDGS/QbSVg28w/wpEidg1ggVcSj65BDTdGR6punsOcVjqdiu1i42WHWo51MCvARPIIz9juw==} + engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-ssec@3.714.0': - resolution: {integrity: sha512-RkK8REAVwNUQmYbIDRw8eYbMJ8F1Rw4C9mlME4BBMhFlelGcD3ErU2ce24moQbDxBjNwHNESmIqgmdQk93CDCQ==} - engines: {node: '>=16.0.0'} + '@aws-sdk/middleware-user-agent@3.972.38': + resolution: {integrity: sha512-iz+B29TXcAZsJpwB+AwG/TTGA5l/VnmMZ2UxtiySOZjI6gCdmviXPwdgzcmuazMy16rXoPY4mYCGe7zdNKfx5A==} + engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-user-agent@3.714.0': - resolution: {integrity: sha512-OgLjJf7WxUqA2OgiqGCfIc68gsbXlIG8LjObBiF0qlMStAd0L23AGuK5VmYinJlsle9qUpwQvWgKFKaDgdQXgA==} - engines: {node: '>=16.0.0'} + '@aws-sdk/nested-clients@3.997.6': + resolution: {integrity: sha512-WBDnqatJl+kGObpfmfSxqnXeYTu3Me8wx8WCtvoxX3pfWrrTv8I4WTMSSs7PZqcRcVh8WeUKMgGFjMG+52SR1w==} + engines: {node: '>=20.0.0'} - '@aws-sdk/region-config-resolver@3.714.0': - resolution: {integrity: sha512-HJzsQxgMOAzZrbf/YIqEx30or4tZK1oNAk6Wm6xecUQx+23JXIaePRu1YFUOLBBERQ4QBPpISFurZWBMZ5ibAw==} - engines: {node: '>=16.0.0'} + '@aws-sdk/region-config-resolver@3.972.13': + resolution: {integrity: sha512-CvJ2ZIjK/jVD/lbOpowBVElJyC1YxLTIJ13yM0AEo0t2v7swOzGjSA6lJGH+DwZXQhcjUjoYwc8bVYCX5MDr1A==} + engines: {node: '>=20.0.0'} - '@aws-sdk/signature-v4-multi-region@3.714.0': - resolution: {integrity: sha512-xIQyx0ILRtJZnSUPpMsWkwASuFDYh9GPnr7p+pmfsV5KtRQluHuoH1wPkPTeNuTnAl7RDHUOmcOgTPUCDxiKxg==} - engines: {node: '>=16.0.0'} + '@aws-sdk/signature-v4-multi-region@3.996.25': + resolution: {integrity: sha512-+CMIt3e1VzlklAECmG+DtP1sV8iKq25FuA0OKpnJ4KA0kxUtd7CgClY7/RU6VzJBQwbN4EJ9Ue6plvqx1qGadw==} + engines: {node: '>=20.0.0'} - '@aws-sdk/token-providers@3.714.0': - resolution: {integrity: sha512-vKN064aLE3kl+Zl16Ony3jltHnMddMBT7JRkP1L+lLywhA0PcAKxpdvComul/sTBWnbnwLnaS5NsDUhcWySH8A==} - engines: {node: '>=16.0.0'} - peerDependencies: - '@aws-sdk/client-sso-oidc': ^3.714.0 + '@aws-sdk/token-providers@3.1041.0': + resolution: {integrity: sha512-Th7kPI6YPtvJUcdznooXJMy+9rQWjmEF81LxaJssngBzuysK4a/x+l8kjm1zb7nYsUPbndnBdUnwng/3PLvtGw==} + engines: {node: '>=20.0.0'} - '@aws-sdk/types@3.714.0': - resolution: {integrity: sha512-ZjpP2gYbSFlxxaUDa1Il5AVvfggvUPbjzzB/l3q0gIE5Thd6xKW+yzEpt2mLZ5s5UaYSABZbF94g8NUOF4CVGA==} - engines: {node: '>=16.0.0'} + '@aws-sdk/types@3.973.8': + resolution: {integrity: sha512-gjlAdtHMbtR9X5iIhVUvbVcy55KnznpC6bkDUWW9z915bi0ckdUr5cjf16Kp6xq0bP5HBD2xzgbL9F9Quv5vUw==} + engines: {node: '>=20.0.0'} - '@aws-sdk/util-arn-parser@3.693.0': - resolution: {integrity: sha512-WC8x6ca+NRrtpAH64rWu+ryDZI3HuLwlEr8EU6/dbC/pt+r/zC0PBoC15VEygUaBA+isppCikQpGyEDu0Yj7gQ==} - engines: {node: '>=16.0.0'} + '@aws-sdk/util-arn-parser@3.972.3': + resolution: {integrity: sha512-HzSD8PMFrvgi2Kserxuff5VitNq2sgf3w9qxmskKDiDTThWfVteJxuCS9JXiPIPtmCrp+7N9asfIaVhBFORllA==} + engines: {node: '>=20.0.0'} - '@aws-sdk/util-endpoints@3.714.0': - resolution: {integrity: sha512-Xv+Z2lhe7w7ZZRsgBwBMZgGTVmS+dkkj2S13uNHAx9lhB5ovM8PhK5G/j28xYf6vIibeuHkRAbb7/ozdZIGR+A==} - engines: {node: '>=16.0.0'} + '@aws-sdk/util-endpoints@3.996.8': + resolution: {integrity: sha512-oOZHcRDihk5iEe5V25NVWg45b3qEA8OpHWVdU/XQh8Zj4heVPAJqWvMphQnU7LkufmUo10EpvFPZuQMiFLJK3g==} + engines: {node: '>=20.0.0'} - '@aws-sdk/util-locate-window@3.693.0': - resolution: {integrity: sha512-ttrag6haJLWABhLqtg1Uf+4LgHWIMOVSYL+VYZmAp2v4PUGOwWmWQH0Zk8RM7YuQcLfH/EoR72/Yxz6A4FKcuw==} - engines: {node: '>=16.0.0'} + '@aws-sdk/util-locate-window@3.965.5': + resolution: {integrity: sha512-WhlJNNINQB+9qtLtZJcpQdgZw3SCDCpXdUJP7cToGwHbCWCnRckGlc6Bx/OhWwIYFNAn+FIydY8SZ0QmVu3xTQ==} + engines: {node: '>=20.0.0'} - '@aws-sdk/util-user-agent-browser@3.714.0': - resolution: {integrity: sha512-OdJJ03cP9/MgIVToPJPCPUImbpZzTcwdIgbXC0tUQPJhbD7b7cB4LdnkhNHko+MptpOrCq4CPY/33EpOjRdofw==} + '@aws-sdk/util-user-agent-browser@3.972.10': + resolution: {integrity: sha512-FAzqXvfEssGdSIz8ejatan0bOdx1qefBWKF/gWmVBXIP1HkS7v/wjjaqrAGGKvyihrXTXW00/2/1nTJtxpXz7g==} - '@aws-sdk/util-user-agent-node@3.714.0': - resolution: {integrity: sha512-x8JoZb7yBEbNUmHUNoRAP4L++6A5uZCVf2yFLw8CZKpH4q+Cf1a68ou48OfnND3H0rbBnLXc/3uOlseRvd57/g==} - engines: {node: '>=16.0.0'} + '@aws-sdk/util-user-agent-node@3.973.24': + resolution: {integrity: sha512-ZWwlkjcIp7cEL8ZfTpTAPNkwx25p7xol0xlKoWVVf22+nsjwmLcHYtTPjIV1cSpmB/b6DaK4cb1fSkvCXHgRdw==} + engines: {node: '>=20.0.0'} peerDependencies: aws-crt: '>=1.0.0' peerDependenciesMeta: aws-crt: optional: true - '@aws-sdk/xml-builder@3.709.0': - resolution: {integrity: sha512-2GPCwlNxeHspoK/Mc8nbk9cBOkSpp3j2SJUQmFnyQK6V/pR6II2oPRyZkMomug1Rc10hqlBHByMecq4zhV2uUw==} - engines: {node: '>=16.0.0'} + '@aws-sdk/xml-builder@3.972.22': + resolution: {integrity: sha512-PMYKKtJd70IsSG0yHrdAbxBr+ZWBKLvzFZfD3/urxgf6hXVMzuU5M+3MJ5G67RpOmLBu1fAUN65SbWuKUCOlAA==} + engines: {node: '>=20.0.0'} - '@babel/runtime@7.23.4': - resolution: {integrity: sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==} + '@aws/lambda-invoke-store@0.2.4': + resolution: {integrity: sha512-iY8yvjE0y651BixKNPgmv1WrQc+GZ142sb0z4gYnChDDY2YqI4P/jsSopBWrKfAt7LOJAkOXt7rC/hms+WclQQ==} + engines: {node: '>=18.0.0'} + + '@babel/runtime@7.28.6': + resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==} engines: {node: '>=6.9.0'} - '@babel/runtime@7.28.4': - resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} - engines: {node: '>=6.9.0'} - - '@borewit/text-codec@0.1.1': - resolution: {integrity: sha512-5L/uBxmjaCIX5h8Z+uu+kA9BQLkc/Wl06UGR5ajNRxu+/XjonB5i8JpgFMrPj3LXTCPA0pv8yxUvbUi+QthGGA==} + '@borewit/text-codec@0.2.2': + resolution: {integrity: sha512-DDaRehssg1aNrH4+2hnj1B7vnUGEjU6OIlyRdkMd0aUdIUvKXrJfXsy8LVtXAy7DRvYVluWbMspsRhz2lcW0mQ==} '@cfworker/json-schema@4.1.1': resolution: {integrity: sha512-gAmrUZSGtKc3AiBL71iNWxDsyUC5uMaKKGdvzYsBoTW/xi42JQHl7eKV2OYzCUqvc+D2RCcf7EXY2iCyFIk6og==} - '@cloudflare/workers-types@4.20251217.0': - resolution: {integrity: sha512-qdVSqCza5Bv23E0DFET+8SEl9fM1F16WHC0HGoYLlDAyWF7rK2HhkPCdUEOp8DsJXwANWvNOkFdJfE1kLYGHYg==} + '@cloudflare/workers-types@4.20260502.1': + resolution: {integrity: sha512-gttFwGL0pYBF5nA2GIazKTVjDqXLnqWa/Mstd5aGTZyzkhmPy0ej3L2sIn2h8kAbF6I+XGK0P4UXvlmnuxefYg==} '@configvault.io/interfaces@1.0.17': resolution: {integrity: sha512-bEcCUR2VBDJsTin8HQh8Uw/mlYl2v8A3jMIaQ+MTB9Hrqd6CZL2dL7iJdWyFl/3EIX+LDxWFR+Oq7liIq7w+1Q==} - '@design.estate/dees-catalog@3.3.1': - resolution: {integrity: sha512-QNIjAElIMm04Jz7VZTY/F1NjBIXCEYJ0VGK/wHE8ppzsSpSw93uLV47GFyAoEnwFp665IJpfS4HzRh7epwIArA==} - - '@design.estate/dees-comms@1.0.27': - resolution: {integrity: sha512-GvzTUwkV442LD60T08iqSoqvhA02Mou5lFvvqBPc4yBUiU7cZISqBx+76xvMgMIEI9Dx9JfTl4/2nW8MoVAanw==} + '@design.estate/dees-catalog@3.81.0': + resolution: {integrity: sha512-N7ocwSKVdjDQWmVV2XWiyg3dotGEuxP4/jhyB6duH8zJ3k63wmGm8+FeoP+LzRc8/U0Bl8w7UZrewlkIEMstUA==} '@design.estate/dees-comms@1.0.30': resolution: {integrity: sha512-KchMlklJfKAjQiJiR0xmofXtQ27VgZtBIxcMwPE9d+h3jJRv+lPZxzBQVOM0eyM0uS44S5vJMZ11IeV4uDXSHg==} - '@design.estate/dees-domtools@2.3.6': - resolution: {integrity: sha512-cKaPNtSpp/ZuuXVx2dXO3K2FU3/HjC4ZkqtXb8Kl6yy9rNDbgtjcI4PuOk9Ux1SJzw7FgcxqVh7OSEV60htbmg==} + '@design.estate/dees-domtools@2.5.6': + resolution: {integrity: sha512-/vEgDvRrAkdzTX1b9mobP7wEe/XGC4r7NDjAgWGvC4I5uOwi7C1qPzm0/fzT9MI89wfbYWprJhD12vVu/+luDA==} - '@design.estate/dees-element@2.1.3': - resolution: {integrity: sha512-TjXWxVcdSPaT1IOk31ckfxvAZnJLuTxhFGsNCKoh63/UE2FVf6slp8//UFvN+ADigiA9ZsY0azkY99XbJCwDDA==} + '@design.estate/dees-element@2.2.4': + resolution: {integrity: sha512-O9cA6flBMMd+pBwMQrZXwAWel9yVxgokolb+Em6gvkXxPJ0P/B5UDn4Vc2d4ts3ta55PTBm+l2dPeDVGx/bl7Q==} - '@design.estate/dees-wcctools@2.0.1': - resolution: {integrity: sha512-1DaQtvoMmD+uH9cjSrL4szk7h0nbBlT/ZBmz+qvWCOqzZXE3wPOAdgASZ73NeQlehLx4KGbfJTCG15DSB0W3LQ==} + '@design.estate/dees-wcctools@3.9.0': + resolution: {integrity: sha512-0vZBaGBEGIbl8hx+8BezIIea3U5T7iSHHF9VqlJZGf+nOFIW4zBAxcCljH8YzZ1Yayp6BEjxp/pQXjHN2YB3Jg==} - '@emnapi/core@1.7.1': - resolution: {integrity: sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==} + '@emnapi/core@1.10.0': + resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} - '@emnapi/runtime@1.7.1': - resolution: {integrity: sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==} + '@emnapi/runtime@1.10.0': + resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} - '@emnapi/wasi-threads@1.1.0': - resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} + '@emnapi/wasi-threads@1.2.1': + resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} - '@esbuild/aix-ppc64@0.27.2': - resolution: {integrity: sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==} + '@esbuild/aix-ppc64@0.27.7': + resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.27.2': - resolution: {integrity: sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==} + '@esbuild/android-arm64@0.27.7': + resolution: {integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.27.2': - resolution: {integrity: sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==} + '@esbuild/android-arm@0.27.7': + resolution: {integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.27.2': - resolution: {integrity: sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==} + '@esbuild/android-x64@0.27.7': + resolution: {integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.27.2': - resolution: {integrity: sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==} + '@esbuild/darwin-arm64@0.27.7': + resolution: {integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.27.2': - resolution: {integrity: sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==} + '@esbuild/darwin-x64@0.27.7': + resolution: {integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.27.2': - resolution: {integrity: sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==} + '@esbuild/freebsd-arm64@0.27.7': + resolution: {integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.27.2': - resolution: {integrity: sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==} + '@esbuild/freebsd-x64@0.27.7': + resolution: {integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.27.2': - resolution: {integrity: sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==} + '@esbuild/linux-arm64@0.27.7': + resolution: {integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.27.2': - resolution: {integrity: sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==} + '@esbuild/linux-arm@0.27.7': + resolution: {integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.27.2': - resolution: {integrity: sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==} + '@esbuild/linux-ia32@0.27.7': + resolution: {integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.27.2': - resolution: {integrity: sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==} + '@esbuild/linux-loong64@0.27.7': + resolution: {integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.27.2': - resolution: {integrity: sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==} + '@esbuild/linux-mips64el@0.27.7': + resolution: {integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.27.2': - resolution: {integrity: sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==} + '@esbuild/linux-ppc64@0.27.7': + resolution: {integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.27.2': - resolution: {integrity: sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==} + '@esbuild/linux-riscv64@0.27.7': + resolution: {integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.27.2': - resolution: {integrity: sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==} + '@esbuild/linux-s390x@0.27.7': + resolution: {integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.27.2': - resolution: {integrity: sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==} + '@esbuild/linux-x64@0.27.7': + resolution: {integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.27.2': - resolution: {integrity: sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==} + '@esbuild/netbsd-arm64@0.27.7': + resolution: {integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.27.2': - resolution: {integrity: sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==} + '@esbuild/netbsd-x64@0.27.7': + resolution: {integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.27.2': - resolution: {integrity: sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==} + '@esbuild/openbsd-arm64@0.27.7': + resolution: {integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.27.2': - resolution: {integrity: sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==} + '@esbuild/openbsd-x64@0.27.7': + resolution: {integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openharmony-arm64@0.27.2': - resolution: {integrity: sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==} + '@esbuild/openharmony-arm64@0.27.7': + resolution: {integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] - '@esbuild/sunos-x64@0.27.2': - resolution: {integrity: sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==} + '@esbuild/sunos-x64@0.27.7': + resolution: {integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.27.2': - resolution: {integrity: sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==} + '@esbuild/win32-arm64@0.27.7': + resolution: {integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.27.2': - resolution: {integrity: sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==} + '@esbuild/win32-ia32@0.27.7': + resolution: {integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.27.2': - resolution: {integrity: sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==} + '@esbuild/win32-x64@0.27.7': + resolution: {integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==} engines: {node: '>=18'} cpu: [x64] os: [win32] - '@fortawesome/fontawesome-common-types@7.1.0': - resolution: {integrity: sha512-l/BQM7fYntsCI//du+6sEnHOP6a74UixFyOYUyz2DLMXKx+6DEhfR3F2NYGE45XH1JJuIamacb4IZs9S0ZOWLA==} + '@fortawesome/fontawesome-common-types@7.2.0': + resolution: {integrity: sha512-IpR0bER9FY25p+e7BmFH25MZKEwFHTfRAfhOyJubgiDnoJNsSvJ7nigLraHtp4VOG/cy8D7uiV0dLkHOne5Fhw==} engines: {node: '>=6'} - '@fortawesome/fontawesome-svg-core@7.1.0': - resolution: {integrity: sha512-fNxRUk1KhjSbnbuBxlWSnBLKLBNun52ZBTcs22H/xEEzM6Ap81ZFTQ4bZBxVQGQgVY0xugKGoRcCbaKjLQ3XZA==} + '@fortawesome/fontawesome-svg-core@7.2.0': + resolution: {integrity: sha512-6639htZMjEkwskf3J+e6/iar+4cTNM9qhoWuRfj9F3eJD6r7iCzV1SWnQr2Mdv0QT0suuqU8BoJCZUyCtP9R4Q==} engines: {node: '>=6'} - '@fortawesome/free-brands-svg-icons@7.1.0': - resolution: {integrity: sha512-9byUd9bgNfthsZAjBl6GxOu1VPHgBuRUP9juI7ZoM98h8xNPTCTagfwUFyYscdZq4Hr7gD1azMfM9s5tIWKZZA==} + '@fortawesome/free-brands-svg-icons@7.2.0': + resolution: {integrity: sha512-VNG8xqOip1JuJcC3zsVsKRQ60oXG9+oYNDCosjoU/H9pgYmLTEwWw8pE0jhPz/JWdHeUuK6+NQ3qsM4gIbdbYQ==} engines: {node: '>=6'} - '@fortawesome/free-regular-svg-icons@7.1.0': - resolution: {integrity: sha512-0e2fdEyB4AR+e6kU4yxwA/MonnYcw/CsMEP9lH82ORFi9svA6/RhDyhxIv5mlJaldmaHLLYVTb+3iEr+PDSZuQ==} + '@fortawesome/free-regular-svg-icons@7.2.0': + resolution: {integrity: sha512-iycmlN51EULlQ4D/UU9WZnHiN0CvjJ2TuuCrAh+1MVdzD+4ViKYH2deNAll4XAAYlZa8WAefHR5taSK8hYmSMw==} engines: {node: '>=6'} - '@fortawesome/free-solid-svg-icons@7.1.0': - resolution: {integrity: sha512-Udu3K7SzAo9N013qt7qmm22/wo2hADdheXtBfxFTecp+ogsc0caQNRKEb7pkvvagUGOpG9wJC1ViH6WXs8oXIA==} + '@fortawesome/free-solid-svg-icons@7.2.0': + resolution: {integrity: sha512-YTVITFGN0/24PxzXrwqCgnyd7njDuzp5ZvaCx5nq/jg55kUYd94Nj8UTchBdBofi/L0nwRfjGOg0E41d2u9T1w==} engines: {node: '>=6'} - '@git.zone/tsbuild@4.0.2': - resolution: {integrity: sha512-LcRlFnDbcUe53Pdoob585iXq9TAT90TyEaYl/wml/etFoPeBX+oQLm6GryejUPXrUP7i1opyTonadkQN1OyXOA==} + '@git.zone/tsbuild@4.4.0': + resolution: {integrity: sha512-98igHfppi6blFYDyzNukNkj4FUO5ZlyXEaSyJh8vCkkZM8SyAgfZj+NUWA1D1iaPXE58UvK1Pt/o8p8iI9UHHw==} hasBin: true - '@git.zone/tsbundle@2.6.3': - resolution: {integrity: sha512-YD1qMYA/4eOuF57V0ccR+xo6ww1+QOYFA2K5gBPFBDNh9VdfvWxxDhOUybja8lT9PVMoli8PHG5WA5tKJkdXIQ==} + '@git.zone/tsbundle@2.10.1': + resolution: {integrity: sha512-bCoDoHsT9oIQRFZbItkjPu/lTiyCKxzhA+XSEc1L2jV8S717faaLWHJEbbmrX/pZXG2OkIr2At1xpsicE/6I7g==} hasBin: true - '@git.zone/tspublish@1.11.0': - resolution: {integrity: sha512-dkgaDBTzZJ53lAV72r7OW/W7l/KqpkncFuPojr11JO35OKAbjjDhZbAwPv4oGX9NplyXrhC5VJRPNX/orqNTHA==} + '@git.zone/tspublish@1.11.6': + resolution: {integrity: sha512-0HmIS4rs5fgbxnNWAm0aZ4wKjSMX9nsHx1Gy90iK9uXFUVmzx/4SibE9UmSgNfmGAGSXiSh8TW6M1gOmLODNNw==} hasBin: true - '@git.zone/tsrun@2.0.1': - resolution: {integrity: sha512-NEcnsjvlC1o3Z6SS3VhKCf6Ev+Sh4EAinmggslrIR/ppMrvjDbXNFXoyr3PB+GLeSAR0JRZ1fGvVYjpEzjBdIg==} + '@git.zone/tsrun@2.0.3': + resolution: {integrity: sha512-QxSM8u+PFnO4jWul0MZpIVCk8XmafqnlPram68dgKuFBl86JM+29G1ag66QUAXSH13WWawbozAGcpCCpIWz7dQ==} hasBin: true - '@git.zone/tswatch@2.3.13': - resolution: {integrity: sha512-43995OlWl8UzCA+cX3ehYba/ksm6CqHbMljHKjosrDRpx8EU+LY4bWTc8JT/Ldgwsw3iW9vur2bBqpgMmdeJJw==} + '@git.zone/tswatch@3.3.3': + resolution: {integrity: sha512-WFm7DIVINFw/cRo/IjbzvY05Lm+hixfj2xRoYP3MGOxMBgYYFUP5VXG1+9aFBuWx9la3vYq9olc17BkUR8Ittw==} hasBin: true - '@happy-dom/global-registrator@15.11.7': - resolution: {integrity: sha512-mfOoUlIw8VBiJYPrl5RZfMzkXC/z7gbSpi2ecycrj/gRWLq2CMV+Q+0G+JPjeOmuNFgg0skEIzkVFzVYFP6URw==} - engines: {node: '>=18.0.0'} + '@happy-dom/global-registrator@20.9.0': + resolution: {integrity: sha512-lBW6/m5BIFl3pMuWPNN0lIOYw9LMCmPfix53ExS3FBi4E+NELEljQ3xH6aAV9IYiQRfn9YIIgzzMrD0vIcD7tw==} + engines: {node: '>=20.0.0'} - '@isaacs/balanced-match@4.0.1': - resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} - engines: {node: 20 || >=22} + '@inquirer/checkbox@3.0.1': + resolution: {integrity: sha512-0hm2nrToWUdD6/UHnel/UKGdk1//ke5zGUpHIvk5ZWmaKezlGxZkOJXNSWsdxO/rEqTkbB3lNC2J6nBElV2aAQ==} + engines: {node: '>=18'} - '@isaacs/brace-expansion@5.0.0': - resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} - engines: {node: 20 || >=22} + '@inquirer/confirm@4.0.1': + resolution: {integrity: sha512-46yL28o2NJ9doViqOy0VDcoTzng7rAb6yPQKU7VDLqkmbCaH4JqK4yk4XqlzNWy9PVC5pG1ZUXPBQv+VqnYs2w==} + engines: {node: '>=18'} - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} + '@inquirer/core@9.2.1': + resolution: {integrity: sha512-F2VBt7W/mwqEU4bL0RnHNZmC/OxzNx9cOYxHqnXX3MP6ruYvZUZAW9imgN9+h/uBT/oP8Gh888J2OZSbjSeWcg==} + engines: {node: '>=18'} - '@lit-labs/ssr-dom-shim@1.4.0': - resolution: {integrity: sha512-ficsEARKnmmW5njugNYKipTm4SFnbik7CXtoencDZzmzo/dQ+2Q0bgkzJuoJP20Aj0F+izzJjOqsnkd6F/o1bw==} + '@inquirer/editor@3.0.1': + resolution: {integrity: sha512-VA96GPFaSOVudjKFraokEEmUQg/Lub6OXvbIEZU1SDCmBzRkHGhxoFAVaF30nyiB4m5cEbDgiI2QRacXZ2hw9Q==} + engines: {node: '>=18'} - '@lit/reactive-element@2.1.1': - resolution: {integrity: sha512-N+dm5PAYdQ8e6UlywyyrgI2t++wFGXfHx+dSJ1oBrg6FAxUj40jId++EaRm80MKX5JnlH1sBsyZ5h0bcZKemCg==} + '@inquirer/expand@3.0.1': + resolution: {integrity: sha512-ToG8d6RIbnVpbdPdiN7BCxZGiHOTomOX94C2FaT5KOHupV40tKEDozp12res6cMIfRKrXLJyexAZhWVHgbALSQ==} + engines: {node: '>=18'} + + '@inquirer/figures@1.0.15': + resolution: {integrity: sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==} + engines: {node: '>=18'} + + '@inquirer/input@3.0.1': + resolution: {integrity: sha512-BDuPBmpvi8eMCxqC5iacloWqv+5tQSJlUafYWUe31ow1BVXjW2a5qe3dh4X/Z25Wp22RwvcaLCc2siHobEOfzg==} + engines: {node: '>=18'} + + '@inquirer/number@2.0.1': + resolution: {integrity: sha512-QpR8jPhRjSmlr/mD2cw3IR8HRO7lSVOnqUvQa8scv1Lsr3xoAMMworcYW3J13z3ppjBFBD2ef1Ci6AE5Qn8goQ==} + engines: {node: '>=18'} + + '@inquirer/password@3.0.1': + resolution: {integrity: sha512-haoeEPUisD1NeE2IanLOiFr4wcTXGWrBOyAyPZi1FfLJuXOzNmxCJPgUrGYKVh+Y8hfGJenIfz5Wb/DkE9KkMQ==} + engines: {node: '>=18'} + + '@inquirer/prompts@6.0.1': + resolution: {integrity: sha512-yl43JD/86CIj3Mz5mvvLJqAOfIup7ncxfJ0Btnl0/v5TouVUyeEdcpknfgc+yMevS/48oH9WAkkw93m7otLb/A==} + engines: {node: '>=18'} + + '@inquirer/rawlist@3.0.1': + resolution: {integrity: sha512-VgRtFIwZInUzTiPLSfDXK5jLrnpkuSOh1ctfaoygKAdPqjcjKYmGh6sCY1pb0aGnCGsmhUxoqLDUAU0ud+lGXQ==} + engines: {node: '>=18'} + + '@inquirer/search@2.0.1': + resolution: {integrity: sha512-r5hBKZk3g5MkIzLVoSgE4evypGqtOannnB3PKTG9NRZxyFRKcfzrdxXXPcoJQsxJPzvdSU2Rn7pB7lw0GCmGAg==} + engines: {node: '>=18'} + + '@inquirer/select@3.0.1': + resolution: {integrity: sha512-lUDGUxPhdWMkN/fHy1Lk7pF3nK1fh/gqeyWXmctefhxLYxlDsc7vsPBEpxrfVGDsVdyYJsiJoD4bJ1b623cV1Q==} + engines: {node: '>=18'} + + '@inquirer/type@2.0.0': + resolution: {integrity: sha512-XvJRx+2KR3YXyYtPUUy+qd9i7p+GO9Ko6VIIpWlBrpWwXDv8WLFeHTxz35CfQFUiBMLXlGHhGzys7lqit9gWag==} + engines: {node: '>=18'} + + '@lit-labs/ssr-dom-shim@1.5.1': + resolution: {integrity: sha512-Aou5UdlSpr5whQe8AA/bZG0jMj96CoJIWbGfZ91qieWu5AWUMKw8VR/pAkQkJYvBNhmCcWnZlyyk5oze8JIqYA==} + + '@lit/reactive-element@2.1.2': + resolution: {integrity: sha512-pbCDiVMnne1lYUIaYNN5wrwQXDtHaYtg7YEFPeW+hws6U47WeFvISGUWekPGKWOP1ygrs0ef0o1VJMk1exos5A==} '@mixmark-io/domino@2.2.0': resolution: {integrity: sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw==} - '@module-federation/error-codes@0.21.6': - resolution: {integrity: sha512-MLJUCQ05KnoVl8xd6xs9a5g2/8U+eWmVxg7xiBMeR0+7OjdWUbHwcwgVFatRIwSZvFgKHfWEiI7wsU1q1XbTRQ==} + '@module-federation/error-codes@0.22.0': + resolution: {integrity: sha512-xF9SjnEy7vTdx+xekjPCV5cIHOGCkdn3pIxo9vU7gEZMIw0SvAEdsy6Uh17xaCpm8V0FWvR0SZoK9Ik6jGOaug==} - '@module-federation/runtime-core@0.21.6': - resolution: {integrity: sha512-5Hd1Y5qp5lU/aTiK66lidMlM/4ji2gr3EXAtJdreJzkY+bKcI5+21GRcliZ4RAkICmvdxQU5PHPL71XmNc7Lsw==} + '@module-federation/runtime-core@0.22.0': + resolution: {integrity: sha512-GR1TcD6/s7zqItfhC87zAp30PqzvceoeDGYTgF3Vx2TXvsfDrhP6Qw9T4vudDQL3uJRne6t7CzdT29YyVxlgIA==} - '@module-federation/runtime-tools@0.21.6': - resolution: {integrity: sha512-fnP+ZOZTFeBGiTAnxve+axGmiYn2D60h86nUISXjXClK3LUY1krUfPgf6MaD4YDJ4i51OGXZWPekeMe16pkd8Q==} + '@module-federation/runtime-tools@0.22.0': + resolution: {integrity: sha512-4ScUJ/aUfEernb+4PbLdhM/c60VHl698Gn1gY21m9vyC1Ucn69fPCA1y2EwcCB7IItseRMoNhdcWQnzt/OPCNA==} - '@module-federation/runtime@0.21.6': - resolution: {integrity: sha512-+caXwaQqwTNh+CQqyb4mZmXq7iEemRDrTZQGD+zyeH454JAYnJ3s/3oDFizdH6245pk+NiqDyOOkHzzFQorKhQ==} + '@module-federation/runtime@0.22.0': + resolution: {integrity: sha512-38g5iPju2tPC3KHMPxRKmy4k4onNp6ypFPS1eKGsNLUkXgHsPMBFqAjDw96iEcjri91BrahG4XcdyKi97xZzlA==} - '@module-federation/sdk@0.21.6': - resolution: {integrity: sha512-x6hARETb8iqHVhEsQBysuWpznNZViUh84qV2yE7AD+g7uIzHKiYdoWqj10posbo5XKf/147qgWDzKZoKoEP2dw==} + '@module-federation/sdk@0.22.0': + resolution: {integrity: sha512-x4aFNBKn2KVQRuNVC5A7SnrSCSqyfIWmm1DvubjbO9iKFe7ith5niw8dqSFBekYBg2Fwy+eMg4sEFNVvCAdo6g==} - '@module-federation/webpack-bundler-runtime@0.21.6': - resolution: {integrity: sha512-7zIp3LrcWbhGuFDTUMLJ2FJvcwjlddqhWGxi/MW3ur1a+HaO8v5tF2nl+vElKmbG1DFLU/52l3PElVcWf/YcsQ==} + '@module-federation/webpack-bundler-runtime@0.22.0': + resolution: {integrity: sha512-aM8gCqXu+/4wBmJtVeMeeMN5guw3chf+2i6HajKtQv7SJfxV/f4IyNQJUeUQu9HfiAZHjqtMV5Lvq/Lvh8LdyA==} - '@napi-rs/canvas-android-arm64@0.1.65': - resolution: {integrity: sha512-ZYwqFYEKcT5Zr8lbiaJNJj/poLaeK2TncolY914r+gD2TJNeP7ZqvE7A2SX/1C9MB4E3DQEwm3YhL3WEf0x3MQ==} + '@napi-rs/canvas-android-arm64@0.1.100': + resolution: {integrity: sha512-hjhCKhntPv9+t4ckHymdx0phYNcVW+GKQR6Lzw2zE+pOVjOplSmtx9nNNknTjbEDLcuLZqA1y8ufKg1XfgftzQ==} engines: {node: '>= 10'} cpu: [arm64] os: [android] - '@napi-rs/canvas-darwin-arm64@0.1.65': - resolution: {integrity: sha512-Pg1pfiJEyDIsX+V0QaJPRWvXbw5zmWAk3bivFCvt/5pwZb37/sT6E/RqPHT9NnqpDyKW6SriwY9ypjljysUA1Q==} + '@napi-rs/canvas-darwin-arm64@0.1.100': + resolution: {integrity: sha512-2PcswRaC7Ly645DGt88///zuFDhJxJYdKAs1uU3mfk1atYkXufgcgLfBpk6Tm12nCQBaNt1wpybuPZ4qOhTo8A==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@napi-rs/canvas-darwin-x64@0.1.65': - resolution: {integrity: sha512-3Tr+/HjdJN7Z/VKIcsxV2DvDIibZCExgfYTgljCkUSFuoI7iNkOE6Dc1Q6j212EB9PeO8KmfrViBqHYT6IwWkA==} + '@napi-rs/canvas-darwin-x64@0.1.100': + resolution: {integrity: sha512-ePNZtj7pNIva/siZMg+HmbeozkIjqUIYdoymH8HaA3qK7LfzFN4WMBM8G6HQ9ZC+H3+Dnn5pqtiXpgLykaPOhw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@napi-rs/canvas-linux-arm-gnueabihf@0.1.65': - resolution: {integrity: sha512-3KP+dYObH7CVkZMZWwk1WX9jRjL+EKdQtD43H8MOI+illf+dwqLlecdQ4d9bQRIxELKJ8dyPWY4fOp/Ngufrdg==} + '@napi-rs/canvas-linux-arm-gnueabihf@0.1.100': + resolution: {integrity: sha512-d5cDB48oWFGU8/XPhUOFAlySgb/VAu7D+s8fi55K1Pcfg8aPplHWqMgibhVLU8ky7Pyg/fuiVLz4Nf3JrSTuUA==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@napi-rs/canvas-linux-arm64-gnu@0.1.65': - resolution: {integrity: sha512-Ka3StKz7Dq7kjTF3nNJCq43UN/VlANS7qGE3dWkn1d+tQNsCRy/wRmyt1TUFzIjRqcTFMQNRbgYq84+53UBA0A==} + '@napi-rs/canvas-linux-arm64-gnu@0.1.100': + resolution: {integrity: sha512-rDxgxRu69RvDlX/bh9o22DxLsGr8EqsNgotL9+RwQE1S0b0cqeatqsw6aW45mukm0B42DIAaAacKaYQ8cqS1nw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] - '@napi-rs/canvas-linux-arm64-musl@0.1.65': - resolution: {integrity: sha512-O4xMASm2JrmqYoiDyxVWi+z5C14H+oVEag2rZ5iIA67dhWqYZB+iO7wCFpBYRj31JPBR29FOsu6X9zL+DwBFdw==} + '@napi-rs/canvas-linux-arm64-musl@0.1.100': + resolution: {integrity: sha512-K3mDW66N+xT2/V439u1alFANiBUjdEx2gLiNYnCmUsva5jZMxWTjafBYwTzYK+EMFMHrUoabuU+T1BIP5CgbYQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] - '@napi-rs/canvas-linux-riscv64-gnu@0.1.65': - resolution: {integrity: sha512-dblWDaA59ZU8bPbkfM+riSke7sFbNZ70LEevUdI5rgiFEUzYUQlU34gSBzemTACj5rCWt1BYeu0GfkLSjNMBSw==} + '@napi-rs/canvas-linux-riscv64-gnu@0.1.100': + resolution: {integrity: sha512-mooqUBTIsccZpnoQC4NgrC1v6C1vof39etLNMnBwCY+p0gajWJvAHLGQ6g/gGyS5YrpDW+GefSN4+Cvcr08UWw==} engines: {node: '>= 10'} cpu: [riscv64] os: [linux] + libc: [glibc] - '@napi-rs/canvas-linux-x64-gnu@0.1.65': - resolution: {integrity: sha512-wsp+atutw13OJXGU3DDkdngtBDoEg01IuK5xMe0L6VFPV8maGkh17CXze078OD5QJOc6kFyw3DDscMLOPF8+oA==} + '@napi-rs/canvas-linux-x64-gnu@0.1.100': + resolution: {integrity: sha512-1eCvkDCazm7FFhsT7DfGOdSaHgZVK3bt/dSBl5EWHOWmnz+I7j8tPseJqqD81NF+MH21jKUK4wQSDjN0mdhnTg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] - '@napi-rs/canvas-linux-x64-musl@0.1.65': - resolution: {integrity: sha512-odX+nN+IozWzhdj31INcHz3Iy9+EckNw+VqsZcaUxZOTu7/3FmktRNI6aC1qe5minZNv1m05YOS1FVf7fvmjlA==} + '@napi-rs/canvas-linux-x64-musl@0.1.100': + resolution: {integrity: sha512-20arT6lnI19S68qNlii73TSEDbECNgzMz2EpldC1V3mZFuRkeujXkcebRk0LRJe9SEUAooYiLokfMViY8IX7yA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] - '@napi-rs/canvas-win32-x64-msvc@0.1.65': - resolution: {integrity: sha512-RZQX3luWnlNWgdMnLMQ1hyfQraeAn9lnxWWVCHuUM4tAWEV8UDdeb7cMwmJW7eyt8kAosmjeHt3cylQMHOxGFg==} + '@napi-rs/canvas-win32-arm64-msvc@0.1.100': + resolution: {integrity: sha512-DZFFT1wIAg37LJw37yhMRFfjATd3vTQzjZ1Yki8u2vhO6Hi5VE6BVaGQ1aaDu7xb4iMErz+9EOwjpS7xcxFeBw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@napi-rs/canvas-win32-x64-msvc@0.1.100': + resolution: {integrity: sha512-MyT1j3mHC2+Lu4pBi9mKyMJhtP6U7k7EldY7sj/uS5gJA65gTXt8MefJQXLJo5d/vZbuWmfxzkEUNc/urV3pHA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@napi-rs/canvas@0.1.65': - resolution: {integrity: sha512-YcFhXQcp+b2d38zFOJNbpyPHnIL7KAEkhJQ+UeeKI5IpE9B8Cpf/M6RiHPQXSsSqnYbrfFylnW49dyh2oeSblQ==} + '@napi-rs/canvas@0.1.100': + resolution: {integrity: sha512-xglYA6q3XO5P3BNJYxVZ1IV7DLVjp1Py6nwag88YntrS+3vKHyYcMqXVS4ZztJmwz2uGvz1FWhI/4LgbR5uQDA==} engines: {node: '>= 10'} '@napi-rs/wasm-runtime@1.0.7': resolution: {integrity: sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw==} - '@napi-rs/wasm-runtime@1.1.0': - resolution: {integrity: sha512-Fq6DJW+Bb5jaWE69/qOE0D1TUN9+6uWhCeZpdnSBk14pjLcCWR7Q8n49PTSPHazM37JqrsdpEthXy2xn6jWWiA==} + '@napi-rs/wasm-runtime@1.1.4': + resolution: {integrity: sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==} + peerDependencies: + '@emnapi/core': ^1.7.1 + '@emnapi/runtime': ^1.7.1 - '@oxc-project/types@0.99.0': - resolution: {integrity: sha512-LLDEhXB7g1m5J+woRSgfKsFPS3LhR9xRhTeIoEBm5WrkwMxn6eZ0Ld0c0K5eHB57ChZX6I3uSmmLjZ8pcjlRcw==} + '@nodable/entities@2.1.0': + resolution: {integrity: sha512-nyT7T3nbMyBI/lvr6L5TyWbFJAI9FTgVRakNoBqCD+PmID8DzFrrNdLLtHMwMszOtqZa8PAOV24ZqDnQrhQINA==} - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} + '@oxc-project/types@0.122.0': + resolution: {integrity: sha512-oLAl5kBpV4w69UtFZ9xqcmTi+GENWOcPF7FCrczTiBbmC0ibXxCwyvZGbO39rCVEuLGAZM84DH0pUIyyv/YJzA==} '@pnpm/config.env-replace@1.1.0': resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} @@ -603,15 +642,12 @@ packages: resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} engines: {node: '>=12.22.0'} - '@pnpm/npm-conf@2.3.1': - resolution: {integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==} + '@pnpm/npm-conf@3.0.2': + resolution: {integrity: sha512-h104Kh26rR8tm+a3Qkc5S4VLYint3FE48as7+/5oCEcKR2idC/pF1G6AhIXKI+eHPJa/3J9i5z0Al47IeGHPkA==} engines: {node: '>=12'} - '@push.rocks/consolecolor@2.0.2': - resolution: {integrity: sha512-IBwxCLX+YF3f5wB2N4LfuvFqm9WPlBMiEeSAfjN8YQCyYec6u1hlrR3EIj8vT300pppjeGrybJHK+GyjdGXZJw==} - - '@push.rocks/consolecolor@2.0.3': - resolution: {integrity: sha512-hA+m0BMqEwZNSAS7c2aQFfoPkpX/dNdsHzkdLdeERUOy7BLacb9ItTUofGtjtginP0yDj4NSpqSjNYyX3Y8Y/w==} + '@push.rocks/consolecolor@2.0.4': + resolution: {integrity: sha512-rQJfuSJLzm117PBpsfyemX8Q/rpKh8ZVc2AqDVu6RXJMJkmGkKsADe0/rnttuHZYss8IP7yJIN9E6Vnx+jyy0A==} '@push.rocks/early@4.0.4': resolution: {integrity: sha512-ak6/vqZ1PlFV08fSFQ6UwiBrr+K6IsfieZWWzT7eex1Ls6GvWEi8wZ3REFDPJq/qckNLWSgEy0EsqzRtltkaCA==} @@ -622,59 +658,47 @@ packages: '@push.rocks/isounique@1.0.5': resolution: {integrity: sha512-Z0BVqZZOCif1THTbIKWMgg0wxCzt9CyBtBBqQJiZ+jJ0KlQFrQHNHrPt81/LXe/L4x0cxWsn0bpL6W5DNSvNLw==} - '@push.rocks/levelcache@3.1.1': - resolution: {integrity: sha512-+JpDNEt+EuvmbtADGH9SkODxBy+slHDDzs43mAbuMbwpVvi6uNuMK0Mkhrfz9UFpxUSp+cJE/jl/OxdpD0xL1A==} + '@push.rocks/levelcache@3.2.2': + resolution: {integrity: sha512-g44xp3XmtSPlcTHQ8qoaNV0AK7w4cuLd6h7sGXXxldN3NLgjOUpUqnnyDBU9i5hpIIxqssxe8WRQz10bi9W+tA==} - '@push.rocks/lik@6.0.12': - resolution: {integrity: sha512-/vzlOZ26gCmXZz67LeM2hJ+aNM49Jxvf3FKxLMXHhJwffd3LcV96MYbMfKzKR/za/bh5Itf3a6UjLL5mmN6Pew==} + '@push.rocks/lik@6.4.1': + resolution: {integrity: sha512-W5M2zoJWUxYnCVqUB7jaxMB4W1kfhs1P6SXvWGqwDpJAjMjCnZeAXD+w0akECgSBY1zCCT2qMj7YK4Gza0t25g==} - '@push.rocks/lik@6.1.0': - resolution: {integrity: sha512-BoSAIRFNryQ8Sd5EP+35ZBj6vAQ1C60/XjZIO2O65XDyLG8xz7xJ+u5Wm8/fjIJ0WX3h8GkkaCz2tJM34nFT3A==} + '@push.rocks/projectinfo@5.1.0': + resolution: {integrity: sha512-jd+aP/UpCVA+kxK7qr1PqMUb5oRIGxukUIi6Qtlp6KKX0jBoaTFvgtEH+cnd3ilL4oNdYNsXMNwvfv4KOmMeVw==} - '@push.rocks/lik@6.2.2': - resolution: {integrity: sha512-j64FFPPyMXeeUorjKJVF6PWaJUfiIrF3pc41iJH4lOh0UUpBAHpcNzHVxTR58orwbVA/h3Hz+DQd4b1Rq0dFDQ==} + '@push.rocks/qenv@6.1.4': + resolution: {integrity: sha512-NlDwrb3KJVBCeEXIWaYRZXZLOvHhDoo+n2X5akcGCDjn5HyP0C9/opn2RDpCnSt+hoValKpp89wcX4BEB+gWjA==} - '@push.rocks/npmextra@5.3.3': - resolution: {integrity: sha512-snLpSHwaQ5OXlZzF1KX/FY71W5LwajjBzor82Vue0smjEPnSeUPY5/JcVdMwtdprdJe13pc/EQQuIiL/zw4/yg==} + '@push.rocks/smartarchive@5.2.2': + resolution: {integrity: sha512-EEh3X5f5EAERx6qYmqPFsAAWYSlodmEYxFTKsa4jUK4AFb5Dn/vK5Jsx2A46PKriu8mQJIMEfGWrkLU4kTi5tw==} - '@push.rocks/projectinfo@5.0.2': - resolution: {integrity: sha512-zzieCal6jwR++o+fDl8gMpWkNV2cGEsbT96vCNZu/H9kr0iqRmapOiA4DFadkhOnhlDqvRr6TPaXESu2YUbI8Q==} + '@push.rocks/smartbucket@4.6.1': + resolution: {integrity: sha512-dh2xfAKOf9MKcJkkWImGCpoUmh10gDYQbeyEMO478H0ozxsf9mxgImRMX4a57BYzXGJ1LtoImdTqX2sFoltB3g==} - '@push.rocks/qenv@6.1.3': - resolution: {integrity: sha512-+z2hsAU/7CIgpYLFqvda8cn9rUBMHqLdQLjsFfRn5jPoD7dJ5rFlpkbhfM4Ws8mHMniwWaxGKo+q/YBhtzRBLg==} + '@push.rocks/smartbuffer@3.0.6': + resolution: {integrity: sha512-1jXfAOsisgDZS+L1E5OCLcM1dseO2rpuqGtSbeB89IDMiBeBTYbzcQ7ZkQQpFIzEzpzjvtl6COT6ZVxCtGnhGA==} - '@push.rocks/smartarchive@4.2.4': - resolution: {integrity: sha512-uiqVAXPxmr8G5rv3uZvZFMOCt8l7cZC3nzvsy4YQqKf/VkPhKIEX+b7LkAeNlxPSYUiBQUkNRoawg9+5BaMcHg==} + '@push.rocks/smartcli@4.0.21': + resolution: {integrity: sha512-BtBL4uTNrrEynYsltPJBxYd6lweVuD9DDoKyqZLMFGIWMdizqzy1PuO6aCUqCKdZBcxW7ckfXZDWIoEc61sa3w==} - '@push.rocks/smartbucket@3.3.7': - resolution: {integrity: sha512-RiOuEtwHJ+HFbV1nlZgh5VuMvP6PXElX6rVe7OSQsyNCBybRQa/d1qDic92+2Ejx852DGeHlyREELQCxd/a/7w==} + '@push.rocks/smartclickhouse@2.2.1': + resolution: {integrity: sha512-K0qSPcMbUisHn/igQu4XaHn3SC9mnlu/mhAp5RwTeyL+rha/U4RtW/t4E89OUp7o35XnP4T4U4UUs58Cxk1h+Q==} - '@push.rocks/smartbuffer@3.0.4': - resolution: {integrity: sha512-TLfhx/JD61YC8XGO9TI6Ux6US38R14HaIM84QT8hZZod8axfXrg+h8xA8tMUBpSV8PXsQy9LzxmOq0Il1fmDXw==} + '@push.rocks/smartconfig@6.1.1': + resolution: {integrity: sha512-coEpt1s0QII5cUh+Vj9E57iuuOlsn3ecTJOuo/ry9npSYDE9oapKgDO/odXBRNQYBsIlF8jEtXr+LdO0mZNTMw==} - '@push.rocks/smartcache@1.0.16': - resolution: {integrity: sha512-UAXf74eDuH4/RebJhydIbHlYVR3ACYJjniEY/9ZePblu7bIPgwFZqLBE9g1lcKVogbH9yY62dk3rSpgBzenyfQ==} - - '@push.rocks/smartcli@4.0.19': - resolution: {integrity: sha512-s1jZSgDZWi/az26AY4TJ2HPuG1qZzGC5R9fKWaECLmwnSpk6y9JXL5dnJAUohcdu50kdXCWEcRmLfYxOt81vEA==} - - '@push.rocks/smartclickhouse@2.0.17': - resolution: {integrity: sha512-IYO8Obor/Ruam2KQ2B/+5uQ+rL0exU5KZoSgOc3jkkrfjn+zZenN2xoV8lVqavAtxZVfG7MfxFrcv6I7I9ZMmA==} - - '@push.rocks/smartdelay@3.0.5': - resolution: {integrity: sha512-mUuI7kj2f7ztjpic96FvRIlf2RsKBa5arw81AHNsndbxO6asRcxuWL8dTVxouEIK8YsBUlj0AsrCkHhMbLQdHw==} - - '@push.rocks/smartenv@5.0.12': - resolution: {integrity: sha512-tDEFwywzq0FNzRYc9qY2dRl2pgQuZG0G2/yml2RLWZWSW+Fn1EHshnKOGHz8o77W7zvu4hTgQQX42r/JY5XHTg==} + '@push.rocks/smartdelay@3.1.0': + resolution: {integrity: sha512-59xveBMbWmbFhh/rqhQnYG/klg/VONG9hV8+RQ7ftqsNRkcmUT+VM5etAbODgAUvsF4lxK+xVR0tbZOo0kGhRQ==} '@push.rocks/smartenv@5.0.13': resolution: {integrity: sha512-ACXmUcHZHl2CF2jnVuRw9saRRrZvJblCRs2d+K5aLR1DfkYFX3eA21kcMlKeLisI3aGNbIj9vz/rowN5qkRkfA==} - '@push.rocks/smartenv@6.0.0': - resolution: {integrity: sha512-ktW5MqOFs0492sB4vrvl4lgRFQ/sQ4AyREgB+sCIzGqszHWGVvGXR95Y2a3z66jkLPYML2CUWHzmMlfv8fkG+A==} + '@push.rocks/smartenv@6.1.0': + resolution: {integrity: sha512-pKm5knYEkcHHc9XaYJ41Ya8/WfZB6fy1ZDB+TSLC85lvMrrRFLSsujjDehdDXl/mJr3MqecauTh2QzQIszTrjQ==} - '@push.rocks/smartexit@1.0.23': - resolution: {integrity: sha512-WmwKYcwbHBByoABhHHB+PAjr5475AtD/xBh1mDcqPrFsOOUOZq3BBUdpq25wI3ccu/SZB5IwaimiVzadls6HkA==} + '@push.rocks/smartexit@2.0.3': + resolution: {integrity: sha512-ZWpZ3Elorpv/rKtUcCUejUHG4BIE5B3QWysBAgb7lTcA7y0vGdFY32Y5/Q5tHpZM6PPxl/WTdUOYtSojQTq+pA==} '@push.rocks/smartfeed@1.4.0': resolution: {integrity: sha512-bvj/3cGQI6TbbjbqrgC1uufcqprd/VthefuIsS8KHiHyCqYD5Z6RTjrbQY9WOCsmub/dcuMavfXQZqe9g2+OrQ==} @@ -682,39 +706,30 @@ packages: '@push.rocks/smartfile-interfaces@1.0.7': resolution: {integrity: sha512-MeOl/200UOvSO4Pgq/DVFiBVZpL9gjOBQM+4XYNjSxda8c6VBvchHAntaFLQUlO8U1ckNaP9i+nMO4O4/0ymyw==} - '@push.rocks/smartfile@10.0.41': - resolution: {integrity: sha512-xOOy0duI34M2qrJZggpk51EHGXmg9+mBL1Q55tNiQKXzfx89P3coY1EAZG8tvmep3qB712QEKe7T+u04t42Kjg==} + '@push.rocks/smartfile@13.1.3': + resolution: {integrity: sha512-p0pqD3FBykwxeQDnnv0fhLaPAQ233a1w/nNij8JYuYWEsH3eVdE5elgecRRfsO+L8Jtntx0QPPJ9p0Aybgb7ow==} - '@push.rocks/smartfile@11.2.7': - resolution: {integrity: sha512-8Yp7/sAgPpWJBHohV92ogHWKzRomI5MEbSG6b5W2n18tqwfAmjMed0rQvsvGrSBlnEWCKgoOrYIIZbLO61+J0Q==} - - '@push.rocks/smartfile@13.1.2': - resolution: {integrity: sha512-DaEhwmnGEpX4coeeToaw4cZe3pNBhH7CY1iGr+d3pIXihozREvzzAR9/0i2r7bUXXL5+Lgy8YYIk5ZS+fwxMKA==} - - '@push.rocks/smartfs@1.3.1': - resolution: {integrity: sha512-ZSduVS8tM+/erbyCTvRRvc9gLWwbpqN5xdIIkMr+gub7fowSeJb7tR2rnGwySa63DyimU0q2KTp79VV9YqGLeg==} + '@push.rocks/smartfs@1.5.1': + resolution: {integrity: sha512-M/JIRWhVwY6EhwEGL+wz3d1CkuNTcBTXKylOv/gk1fyfw3tnkOQheux+NjV/8lVMQG+NeQca5yUaJIz1s+OESA==} '@push.rocks/smartguard@3.1.0': resolution: {integrity: sha512-J23q84f1O+TwFGmd4lrO9XLHUh2DaLXo9PN/9VmTWYzTkQDv5JehmifXVI0esophXcCIfbdIu6hbt7/aHlDF4A==} - '@push.rocks/smarthash@3.0.4': - resolution: {integrity: sha512-HJ/fSx41jm0CvSaqMLa6b2nuNK5rHAqAeAq3dAB7Sq9BCPm2M0J5ZVDTzEAH8pS91XYniUiwuE0jwPERNn9hmw==} + '@push.rocks/smarthash@3.2.7': + resolution: {integrity: sha512-y6iyu9l8Hslsa8W4e8UktX5d0yFZqipNgxxIik6NT0yHUM1zagx2cjemUtdV49uq1u+086Wr7nvrzLROWDzReA==} - '@push.rocks/smarthash@3.2.6': - resolution: {integrity: sha512-Mq/WNX0Tjjes3X1gHd/ZBwOOKSrAG/Z3Xoc0OcCm3P20WKpniihkMpsnlE7wGjvpHLi/ZRe/XkB3KC3d5r9X4g==} + '@push.rocks/smarti18n@1.1.0': + resolution: {integrity: sha512-fRdnqWtmeIO3kbvyCFwdSM2+IHQI+Uz9+2TQCla5Qj5ISypRI1Cj4oRmde1QeGs7TyH50zXoO2vVXOS59Ya45g==} - '@push.rocks/smarti18n@1.0.4': - resolution: {integrity: sha512-bHIi9Iuzp2cbux9q79ZK5jOQYPsYJ9zDDS4p/xEPQH31gr0mcFRosLSQb1kvDQDVmUhI0ADlQMqr2ui9zEXQHA==} - - '@push.rocks/smartjson@5.0.10': - resolution: {integrity: sha512-yuntSMGZ+XNHMrbS9RxotaD+eOgoNTcuDoWsttis+N3Mkc9DIam0pt/ER4NU8TgfMmhT/hKwQH+3DJceDzntoA==} - - '@push.rocks/smartjson@5.0.20': - resolution: {integrity: sha512-ogGBLyOTluphZVwBYNyjhm5sziPGuiAwWihW07OSRxD4HQUyqj9Ek6r1pqH07JUG5EbtRYivM1Yt1cCwnu3JVQ==} + '@push.rocks/smartinteract@2.0.16': + resolution: {integrity: sha512-eltvVRRUKBKd77DSFA4DPY2g4V4teZLNe8A93CDy/WglglYcUjxMoLY/b0DFTWCWKYT+yjk6Fe6p0FRrvX9Yvg==} '@push.rocks/smartjson@5.2.0': resolution: {integrity: sha512-710e8UwovRfPgUtaBHcd6unaODUjV5fjxtGcGCqtaTcmvOV6VpasdVfT66xMDzQmWH2E9ZfHDJeso9HdDQzNQA==} + '@push.rocks/smartjson@6.0.1': + resolution: {integrity: sha512-iIw860jpjBcl83bLtq97QrjJxQkgxIKkhrX53EnpsVsZVNBgPCymLp0xNqY2jMpak5MKCEIWUVXkrmWVXj/TlQ==} + '@push.rocks/smartlog-destination-devtools@1.0.12': resolution: {integrity: sha512-zvsIkrqByc0JRaBgIyhh+PSz2SY/e/bmhZdUcr/OW6pudgAcqe2sso68EzrKux0w9OMl1P9ZnzF3FpCZPFWD/A==} @@ -724,29 +739,26 @@ packages: '@push.rocks/smartlog-interfaces@3.0.2': resolution: {integrity: sha512-8hGRTJehbsFSJxLhCQkA018mZtXVPxPTblbg9VaE/EqISRzUw+eosJ2EJV7M4Qu0eiTJZjnWnNLn8CkD77ziWw==} - '@push.rocks/smartlog@3.1.10': - resolution: {integrity: sha512-5pf5JyzOE2WTCUislNIW4EHePo1a7hiXB+jbil38+N5hW71AEwcPFe6oGxbp5w9ALlz66hV2+E+25R0SsxN+fQ==} + '@push.rocks/smartlog@3.2.2': + resolution: {integrity: sha512-3Nw/Ki/jZ4vrrWnEtpcGPF28jQ+fr9/9Edc7ytaEA6ZWIpojtwacJ5qihMvHbIei+zjpD35w6tZP2mQjvw5VRQ==} '@push.rocks/smartmanifest@2.0.2': resolution: {integrity: sha512-QGc5C9vunjfUbYsPGz5bynV/mVmPHkrQDkWp8ZO8VJtK1GZe+njgbrNyxn2SUHR0IhSAbSXl1j4JvBqYf5eTVg==} - '@push.rocks/smartmarkdown@3.0.3': - resolution: {integrity: sha512-9KhKZxDQKPk4P/2CYdVqJa5dpGfTA8w1cxqoVZL3e8RPA7EGxbdYEqMp0n2d9mth0btk/m0KHHV+G09LfCVeBw==} + '@push.rocks/smartmarkdown@3.1.0': + resolution: {integrity: sha512-+iiGMS0ceQK42OJFGzSWlj1CDYxab++tS0dVTVgV3H4uA92+PWEbnZ0FAeNyeNh8yJCiz2JvvVo6vfPJSTY/Kw==} '@push.rocks/smartmatch@2.0.0': resolution: {integrity: sha512-MBzP++1yNIBeox71X6VxpIgZ8m4bXnJpZJ4nWVH6IWpmO38MXTu4X0QF8tQnyT4LFcwvc9iiWaD15cstHa7Mmw==} - '@push.rocks/smartmime@1.0.6': - resolution: {integrity: sha512-PHd+I4UcsnOATNg8wjDsSAmmJ4CwQFrQCNzd0HSJMs4ZpiK3Ya91almd6GLpDPU370U4HFh4FaPF4eEAI6vkJQ==} - '@push.rocks/smartmime@2.0.4': resolution: {integrity: sha512-mG6lRBLr5nF+GLZmgCcdjhdDsmTtJWBFZDCa1eJ8Au9TvUzbPW0fY5aqJBb3UwfyZzH6St8Th9cJSXjagOQkYA==} - '@push.rocks/smartnpm@2.0.6': - resolution: {integrity: sha512-7anKDOjX6gXWs1IAc+YWz9ZZ8gDsTwaLh+CxRnGHjAawOmK788NrrgVCg2Fb3qojrPnoxecc46F8Ivp1BT7Izw==} + '@push.rocks/smartnpm@2.1.0': + resolution: {integrity: sha512-vJpve3xboGyPRvQZ9WDuSCb3qZC0vM+Glq5T2RKNVOVbVPKjKSAF4j/FbsKbV94nBBwUqTH4L1wETN5yDio9dg==} - '@push.rocks/smartntml@2.0.8': - resolution: {integrity: sha512-LIYeOQbmav2m2kZQz4pGS74xvWAm4YAGQnbPkofA2oas4RW9SGR1JTRpFd9pxGCOXd6djYdNGsZZ/xz+k/vRPQ==} + '@push.rocks/smartntml@2.0.9': + resolution: {integrity: sha512-6g8kf6Ag2864A+S79RBSZjV8xHBq82YC83j5TbG71aPLoGiy+YREg9HiIOLN50j8/hk3PEkM21YDOGhRle6R8Q==} '@push.rocks/smartobject@1.0.12': resolution: {integrity: sha512-xSMiqXiZXXUOixT3QIPsOUKOWjL3YA/1h9/YTiCzqs5C0D3tyfTbojnfcp6YbKZoBzans2I5LghaDHsGid2DKQ==} @@ -754,74 +766,50 @@ packages: '@push.rocks/smartopen@2.0.0': resolution: {integrity: sha512-eVT0GhtQ2drb95j/kktYst/Toh1zCwCqjTJFYtaYFUnnBnBUajPtBZDFnPQo01DN8JxoeCTo8jggq+PCvzcfww==} - '@push.rocks/smartpath@5.0.11': - resolution: {integrity: sha512-dqdd7KTby0AdaWYC9gVoHDTUIixFhEvo+mmdaTdNshZsfHNkm/EDV25dA+9gJ8/yoyuCYmrwmByNYy9a+xFUeQ==} - - '@push.rocks/smartpath@5.0.18': - resolution: {integrity: sha512-kIyRTlOoeEth5b4Qp8KPUxNOGNdvhb2aD0hbHfF3oGTQ0xnDdgB1l03/4bIoapHG48OrTgh4uQ5tUorykgdOzw==} - '@push.rocks/smartpath@6.0.0': resolution: {integrity: sha512-r94u1MbBaIOSy+517PZp2P7SuZPSe9LkwJ8l3dXQKHeIOri/zDxk/RQPiFM+j4N9301ztkRyhvRj7xgUDroOsg==} - '@push.rocks/smartpromise@4.0.3': - resolution: {integrity: sha512-z3lIso4/6KK3c6NFTVGZ7AOBsGURf8ha3qQtX/OxjZFk5dqS//8PLd0XqghVdIaUlRGmJ7Sfds/efZERWn1tAg==} + '@push.rocks/smartpromise@4.2.4': + resolution: {integrity: sha512-8FUyYt94hOIY9mqHjitn4h69u0jbEtTF2RKKw2DpiTVFjpDTk9gXbVHZ/V+xEcBrN4mrzdQES0OiDmkNPoddEQ==} - '@push.rocks/smartpromise@4.0.4': - resolution: {integrity: sha512-Mbh+DnX4+rVPEZgYU7LtTJI/AYoNn7+h27AycEFpPJW41DCfjTiXiI0+ecNdyO1AfbcL0Q02RQjoEauEWx5FQg==} + '@push.rocks/smartrequest@2.1.0': + resolution: {integrity: sha512-3eHLTRInHA+u+W98TqJwgTES7rRimBAsJC4JxVNQC3UUezmblAhM5/TIQsEBQTsbjAY8SeQKy6NHzW6iTiaD8w==} - '@push.rocks/smartpromise@4.2.3': - resolution: {integrity: sha512-Ycg/TJR+tMt+S3wSFurOpEoW6nXv12QBtKXgBcjMZ4RsdO28geN46U09osPn9N9WuwQy1PkmTV5J/V4F9U8qEw==} - - '@push.rocks/smartrequest@5.0.1': - resolution: {integrity: sha512-gZQQF6HVt3LwTBxaPh6hHObd4VF76PUYQcs5pHD7f0VXaEewmrNAQSnccoinOY7fi45+0dOf04PJOXu9MibPzQ==} + '@push.rocks/smartrequest@5.0.3': + resolution: {integrity: sha512-Yu7fhkV+7ilumFT9rS6BCrI7GisTlkqAiH4Uuprs5SLFC/5OBlCSCpS5U2v6fU/hbknQelp9hdmGSr/KDoZ9qg==} '@push.rocks/smartrouter@1.3.3': resolution: {integrity: sha512-1+xZEnWlhzqLWAaJ1zFNhQ0zgbfCWQl1DBT72LygLxTs+P0K8AwJKgqo/IX6CT55kGCFnPAZIYSbVJlGsgrB0w==} + '@push.rocks/smartrust@1.4.0': + resolution: {integrity: sha512-3+VLuKEZYNkKZUYttt54u7tftrw/1scAo3N3401ztblh/7KdIQ1YHkGzOYA3sFhRqckk+yKKVi9wDz3YNmwaIA==} + '@push.rocks/smartrx@3.0.10': resolution: {integrity: sha512-USjIYcsSfzn14cwOsxgq/bBmWDTTzy3ouWAnW5NdMyRRzEbmeNrvmy6TRqNeDlJ2PsYNTt1rr/zGUqvIy72ITg==} - '@push.rocks/smartrx@3.0.7': - resolution: {integrity: sha512-qCWy0s3RLAgGSnaw/Gu0BNaJ59CsI6RK5OJDCCqxc7P2X/S755vuLtnAR5/0dEjdhCHXHX9ytPZx+o9g/CNiyA==} + '@push.rocks/smartserve@2.0.4': + resolution: {integrity: sha512-nMhTOVNRL20UL/WiFYfo1VDEQgzwwQ95tapRHEDnTi32KA5HlitS8dGbnGV+mM4G9lrH/CuBDXWguldhqvKyOg==} - '@push.rocks/smartserve@1.4.0': - resolution: {integrity: sha512-cEoXZQSBX3pOv9AyhxRPkrMAWzs2XQhTBmW95BFtTSNzZdji0XgqUu92p7iuF+NVuTFX1QZ8+dbCClLCoRRW7g==} + '@push.rocks/smartshell@3.3.8': + resolution: {integrity: sha512-t9J/py0vnea4ZtOs7Anc9dc6lcvg6EDvYBw5eE1mB+KUWxMQf/ROIQwWMo6B9SMNY4JS2UwvfuJQJ8makP/7Tg==} - '@push.rocks/smartshell@3.2.2': - resolution: {integrity: sha512-zMTVJ2ca1pDiqyRQpByz/T2HtoRYLCbXFo6TSA663nuGmnGsIn/DHFZMQYUJGdDi6LSjVxPsQMsY5Bwc4hL6og==} + '@push.rocks/smartsitemap@4.0.2': + resolution: {integrity: sha512-VIDJbOym82cWBArhIdBgVeCqp2vEWDtFIz6huQqwFAumLxNM6EtyqPmSBUDpzcpp/AbjxGART81Rp6P1PmGnag==} - '@push.rocks/smartshell@3.3.0': - resolution: {integrity: sha512-m0w618H6YBs+vXGz1CgS4nPi5CUAnqRtckcS9/koGwfcIx1IpjqmiP47BoCTbdgcv0IPUxQVBG1IXTHPuZ8Z5g==} + '@push.rocks/smartspawn@3.0.4': + resolution: {integrity: sha512-bPl4+SCLbW07YHXU1bgBuIfPVv5+Wbg89+Pz0e6ezPBmEQxj372qPRGdaR+8Ouw3d5KZ/IEyuVG+fcQbpDhyYw==} - '@push.rocks/smartsitemap@2.0.4': - resolution: {integrity: sha512-76dYWG/o/EjV4vYCK7ZKM35T9xgrI+oHEiiIE6E2MDaFIU6QnSfciTfbscH5nc0vxx8Ah+I0HPEJO94BM2S39w==} + '@push.rocks/smartstate@2.3.1': + resolution: {integrity: sha512-rutCXb2MVo+bg4tWbX4uYFrJCIZOrGvbJKhmuvy1hJBk2j7OApsDib3vlH1b+uhu15nhHvUM1ZpnpCXjZj6j1g==} - '@push.rocks/smartspawn@3.0.3': - resolution: {integrity: sha512-DyrGPV69wwOiJgKkyruk5hS3UEGZ99xFAqBE9O2nM8VXCRLbbty3xt1Ug5Z092ZZmJYaaGMSnMw3ijyZJFCT0Q==} + '@push.rocks/smartstream@3.4.2': + resolution: {integrity: sha512-JsjFjaNIlCBUglciM/IrXH0mH+oOQTLYQ6UMwqsew2XSUTXxER3ev2NeKMDBV6ONf2HF21EPnOZuKfgvtNGnUg==} - '@push.rocks/smartstate@2.0.27': - resolution: {integrity: sha512-q4UKir7GV3hakJWXQR4DoA4tUVwT5GRkJ/MtanHYF0wZLHfS19+nGmyO9y974zk3eT9hmy3+Lq5cKtU2W6+Y3w==} + '@push.rocks/smartstring@4.1.1': + resolution: {integrity: sha512-FlEpp2PcQ819ymmxjWb5/2gD8uPic/+IvOrSP2+KTdXLHOI4GSyK9YW/YBF541LVGl0GC3VGFmypcPNUzkPfYw==} - '@push.rocks/smartstream@2.0.8': - resolution: {integrity: sha512-GlF/9cCkvBHwKa3DK4DO5wjfSgqkj6gAS4TrY9uD5NMHu9RQv4WiNrElTYj7iCEpnZgUnLO3tzw1JA3NRIMnnA==} - - '@push.rocks/smartstream@3.2.5': - resolution: {integrity: sha512-PLGGIFDy8JLNVUnnntMSIYN4W081YSbNC7Y/sWpvUT8PAXtbEXXUiDFgK5o3gcI0ptpKQxHAwxhzNlPj0sbFVg==} - - '@push.rocks/smartstring@4.0.15': - resolution: {integrity: sha512-NTNeOjWyg+aHtBTiQEyXamr7oTvYZ3wS1fudHo9ua7CLrykpK+i+RxFyJaLg1zB5x9xQF3NLEQecB14HPFX8Cg==} - - '@push.rocks/smartstring@4.0.9': - resolution: {integrity: sha512-VB0jzKmI4ZpdzEZe79M8rKVjAReNWGMG6ktzS0R5FeH96SSk3jvfOezgz/RJ7JbRN3UcyR0Ra/mXlpyeqJUHvw==} - - '@push.rocks/smartstring@4.1.0': - resolution: {integrity: sha512-Q4py/Nm3KTDhQ9EiC75yBtSTLR0KLMwhKM+8gGcutgKotZT6wJ3gncjmtD8LKFfNhb4lSaFMgPJgLrCHTOH6Iw==} - - '@push.rocks/smarttime@4.0.6': - resolution: {integrity: sha512-1whOow0YJw/TbN758TedRRxApoZbsvyxCVpoGjXh7DE/fEEgs7RCr4vVF5jYpyXNQuNMLpKJcTsSfyQ6RvH4Aw==} - - '@push.rocks/smarttime@4.1.1': - resolution: {integrity: sha512-Ha/3J/G+zfTl4ahpZgF6oUOZnUjpLhrBja0OQ2cloFxF9sKT8I1COaSqIfBGDtoK2Nly4UD4aTJ3JcJNOg/kgA==} + '@push.rocks/smarttime@4.2.3': + resolution: {integrity: sha512-8gMg8RUkrCG4p9NcEUZV7V6KpL24+jAMK02g7qyhfA6giz/JJWD0+8w8xjSR+G7qe16KVQ2y3RbvAL9TxmO36g==} '@push.rocks/smartunique@3.0.9': resolution: {integrity: sha512-q6DYQgT7/dqdWi9HusvtWCjdsFzLFXY9LTtaZV6IYNJt6teZOonoygxTdNt9XLn6niBSbLYrHSKvJNTRH/uK+g==} @@ -829,39 +817,30 @@ packages: '@push.rocks/smarturl@3.1.0': resolution: {integrity: sha512-ij73Q4GERojdPSHxAvYKvspimcpAJC6GGQCWsC4b+1sAiOSByjfmkUHK8yiEEOPRU9AeGuyaIVqK6ZzKLEZ3vA==} - '@push.rocks/smartversion@3.0.5': - resolution: {integrity: sha512-8MZSo1yqyaKxKq0Q5N188l4un++9GFWVbhCAX5mXJwewZHn97ujffTeL+eOQYpWFTEpUhaq1QhL4NhqObBCt1Q==} + '@push.rocks/smartversion@3.1.0': + resolution: {integrity: sha512-qsJb82p8aQzJQ04fLiZsrxarhn+IoOn6v1B869NjH06vOCbCHXNKoS8WPssE6E6zge4NPCCD5WQ2hkyzqxCv9A==} - '@push.rocks/smartwatch@6.3.0': - resolution: {integrity: sha512-TeZ1PGBoBMpC4/CK8StIj5InEiFfKp7xWJSm3aYMjB/uaoeRP0vXqv1ORIC/TKYGJuEDuAXUsit8tZVjn0qT1Q==} + '@push.rocks/smartwatch@6.4.0': + resolution: {integrity: sha512-KDswRgE/siBmZRCsRA07MtW5oF4c9uQEBkwTGPIWneHzksbCDsvs/7agKFEL7WnNifLNwo8w1K1qoiVWkX1fvw==} engines: {node: '>=20.0.0'} '@push.rocks/smartxml@2.0.0': resolution: {integrity: sha512-1d06zYJX4Zt8s5w5qFOUg2LAEz9ykrh9d6CQPK4WAgOBIefb1xzVEWHc7yoxicc2OkzNgC3IBCEg3s6BncZKWw==} - '@push.rocks/smartyaml@2.0.5': - resolution: {integrity: sha512-tBcf+HaOIfeEsTMwgUZDtZERCxXQyRsWO8Ar5DjBdiSRchbhVGZQEBzXswMS0W5ZoRenjgPK+4tPW3JQGRTfbg==} + '@push.rocks/smartyaml@3.0.5': + resolution: {integrity: sha512-oWmnHSqud+0jCZ69HPyfXg7b1e8wt23mG/i9brOnMQdliw5NDZHH0xze/EYzXCIGUBVMpotzEpYvAhMycw4Knw==} - '@push.rocks/smartyaml@3.0.4': - resolution: {integrity: sha512-1JRt+hnoc2zHw3AW+vXKlCdSVwqOmY/01fu+2HBviS0UDjoZCa+/rp6E3GaQb5lEEafKi8ENbffAfjXXp3N2xQ==} + '@push.rocks/taskbuffer@8.0.2': + resolution: {integrity: sha512-SRCAzrSHysW5XEjwZ494V60ybdpOo/s96jDD3sn7SkYolzg2Pboh+SW5Q7SVNcdkP4b9wCEizOYe9CB3vj3W6w==} - '@push.rocks/taskbuffer@3.1.7': - resolution: {integrity: sha512-QktGVJPucqQmW/QNGnscf4FAigT1H7JWKFGFdRuDEaOHKFh9qN+PXG3QY7DtZ4jfXdGLxPN4yAufDuPSAJYFnw==} + '@push.rocks/webrequest@4.0.5': + resolution: {integrity: sha512-wVSCaXqJ9Vh+rbwVz0wDl46dYz4rnwwSrm5vbVXKbuH6oKTPF0YRoujeJPqRltIn64RVGdLeY9/6ix+ZCrzhsg==} - '@push.rocks/taskbuffer@3.5.0': - resolution: {integrity: sha512-Y9WwIEIyp6oVFdj06j84tfrZIvjhbMb3DF52rYxlTeYLk3W7RPhSg1bGPCbtkXWeKdBrSe37V90BkOG7Qq8Pqg==} + '@push.rocks/websetup@3.0.20': + resolution: {integrity: sha512-7TJ2ryFEpuSocGQwhhdEL6x8d7H0q3N4MJIJS46nc7r5XM5oXAXaIj/8gX2/TSNQWUt35CNSpJPkznoLpp95Jw==} - '@push.rocks/webrequest@3.0.37': - resolution: {integrity: sha512-fLN7kP6GeHFxE4UH4r9C9pjcQb0QkJxHeAMwXvbOqB9hh0MFNKhtGU7GoaTn8SVRGRMPc9UqZVNwo6u5l8Wn0A==} - - '@push.rocks/webrequest@4.0.1': - resolution: {integrity: sha512-I60XZZLVf8W5I7YdmUVVu4G92teE3rg3/aKaV00BRg8vJ3VXx3wc59Qj4em7zxQ5o0HvL8m1Aezw3RFMDPyVgA==} - - '@push.rocks/websetup@3.0.19': - resolution: {integrity: sha512-iKJDwXdMmQdu5siOIgziPRxM51lN1AU9HOr+yMteu1YMDkZT7HKCyisDAr4gC9WZ9a7FzsG8zgthm4dMeA8NTw==} - - '@push.rocks/webstore@2.0.20': - resolution: {integrity: sha512-Z3L4OHGcw/Gs9aXpMUwebEPTh0nK/C7R6YwPfCLcGVu9yd/ZShaQ8QZEYE243Cu9J1Mn+CEtz4jpPLnHiizHQA==} + '@push.rocks/webstore@2.0.22': + resolution: {integrity: sha512-EdWfcNo0m6adSgTq7NtZusvmubUtRiCRADfFIbbgGZhCr9xLxmyB1nCtO/wzUrWZEbnR+Q9+fYkJFnDFOmZ4wA==} '@push.rocks/webstream@1.0.10': resolution: {integrity: sha512-45CcR0I4/9v0qSjLvz2dYTGMkR0YP3x66ItpStdad5hidJm86t1lfHF06d0oiEvJTpvQkeyIX/8YKAumf21d/Q==} @@ -870,26 +849,10 @@ packages: resolution: {integrity: sha512-XYeoKGkmIdsWX64NlPA1fuA41n/1bQ7LdYXytlU/QqYeW7ojgA0ARRhBSh/2phL6o0Jpw6K/7gJ8jc7ab/Tc+w==} deprecated: This package has been deprecated in favour of the new package at @push.rocks/isounique - '@pushrocks/lik@6.0.2': - resolution: {integrity: sha512-jO85PCb4gULfZbLoVpXb9HIR9Wgoigq6Zjcp1JqHOgM4KB38IZrU+HPWPWWMErAOOQmmYvVCdl4gkrkO/Rzn4w==} - deprecated: This package has been deprecated in favour of the new package at @push.rocks/lik - - '@pushrocks/smartdelay@2.0.13': - resolution: {integrity: sha512-s6Wh0BHWMfZ5VYONQwpxOYX1JeC9RKA0O9TxEzfZ6FCw2oNQb2QUPCixT9rsceKwva4+atKRw/RfU+Z7aJDmsA==} - deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartdelay - - '@pushrocks/smartdelay@3.0.1': - resolution: {integrity: sha512-I+i/QhC6kLsXsWyW19UgD1vH2r1YWVxK19VMxt2CEuvxMyC6tuCd0vqud9vv5JxaxsJwxWlOsrURkgL4tXeILQ==} - deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartdelay - '@pushrocks/smartenv@5.0.5': resolution: {integrity: sha512-VWON1OJ4qV2/9hzJbgRquRekaO9am3b8W82tgCwgO6LBg23ea2tanfd+gESVMbRFduxHVoFLvlhSBcDGM5zsLA==} deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartenv - '@pushrocks/smarterror@2.0.1': - resolution: {integrity: sha512-3OrF5me+/sy5VgwR/tfCqs7qhb0Ywzgn8tTThRUZnCGas0aindISzMiW7cIro3RlFykmtPmdTztC9Ostu2ioeA==} - deprecated: This package has been deprecated in favour of the new package at @push.rocks/smarterror - '@pushrocks/smarthash@3.0.2': resolution: {integrity: sha512-jXW4f8k6iqOQRvkCmXMID1C+qXyNvUMKm7apPETxnO+L172VlzxP1dml0Ey1+vjfpU2luKCteJWX7W95sOdLDg==} deprecated: This package has been deprecated in favour of the new package at @push.rocks/smarthash @@ -898,173 +861,173 @@ packages: resolution: {integrity: sha512-9OJbnRgLTaCRQz+pqu5tB3ZCqRs5Zh0hnBe7t7URE+TgwIZ8aiELUIbWRkgn4mSGVzHyL6pqTyIowP6AjUCG3w==} deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartjson - '@pushrocks/smartmatch@2.0.0': - resolution: {integrity: sha512-PLvBNVeuY9BERNLq3PFDkhnHHc0RpilEGHd4aUI5XRFlZF++LETdLxPbxw+DHbvHlkUf/nep09f7rrL9Tqub1Q==} - deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartmatch - '@pushrocks/smartpromise@3.1.10': resolution: {integrity: sha512-VeTurbZ1+ZMxBDJk1Y1LV8SN9xLI+oDXKVeCFw41FAGEKOUEqordqFpi6t+7Vhe/TXUZzCVpZ5bXxAxrGf8yTQ==} deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartpromise - '@pushrocks/smartpromise@4.0.2': - resolution: {integrity: sha512-bqorOaGXPOuiOSV81luTKrTghg4O4NBRD0zyv7TIqmrMGf4a0uoozaUMp1X8vQdZW+y0gTzUJP9wkzAE6Cci0g==} - deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartpromise - - '@pushrocks/smartrx@3.0.2': - resolution: {integrity: sha512-uh2ByyE86Q4f1/rpktR29vAMzHgAvAhFZqbvP6Sme9FK57OZG0mqZxDvJMVNP5O+QOn0Chrbl3BZCuRsFF3NUA==} - deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartrx - '@pushrocks/smartstring@4.0.7': resolution: {integrity: sha512-TxHSar7Cj29E+GOcIj4DeZKWCNVzHKdqnrBRqcBqLqmeYZvzFosLXpFKoaCJDq7MSxuPoCvu5woSdp9YmPXyog==} deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartstring - '@pushrocks/smarttime@4.0.1': - resolution: {integrity: sha512-5SpUqD3X/2IZCTezCpk48Ss7cDc9QOuQAkeAYnJrRjDL4UCLakA3lBeHXRD/rsIB7S1smtXlayQ/vizfYzdbfw==} - deprecated: This package has been deprecated in favour of the new package at @push.rocks/smarttime - '@remirror/core-constants@3.0.0': resolution: {integrity: sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==} - '@rolldown/binding-android-arm64@1.0.0-beta.52': - resolution: {integrity: sha512-MBGIgysimZPqTDcLXI+i9VveijkP5C3EAncEogXhqfax6YXj1Tr2LY3DVuEOMIjWfMPMhtQSPup4fSTAmgjqIw==} + '@rolldown/binding-android-arm64@1.0.0-rc.11': + resolution: {integrity: sha512-SJ+/g+xNnOh6NqYxD0V3uVN4W3VfnrGsC9/hoglicgTNfABFG9JjISvkkU0dNY84MNHLWyOgxP9v9Y9pX4S7+A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@rolldown/binding-darwin-arm64@1.0.0-beta.52': - resolution: {integrity: sha512-MmKeoLnKu1d9j6r19K8B+prJnIZ7u+zQ+zGQ3YHXGnr41rzE3eqQLovlkvoZnRoxDGPA4ps0pGiwXy6YE3lJyg==} + '@rolldown/binding-darwin-arm64@1.0.0-rc.11': + resolution: {integrity: sha512-7WQgR8SfOPwmDZGFkThUvsmd/nwAWv91oCO4I5LS7RKrssPZmOt7jONN0cW17ydGC1n/+puol1IpoieKqQidmg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-beta.52': - resolution: {integrity: sha512-qpHedvQBmIjT8zdnjN3nWPR2qjQyJttbXniCEKKdHeAbZG9HyNPBUzQF7AZZGwmS9coQKL+hWg9FhWzh2dZ2IA==} + '@rolldown/binding-darwin-x64@1.0.0-rc.11': + resolution: {integrity: sha512-39Ks6UvIHq4rEogIfQBoBRusj0Q0nPVWIvqmwBLaT6aqQGIakHdESBVOPRRLacy4WwUPIx4ZKzfZ9PMW+IeyUQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.0-beta.52': - resolution: {integrity: sha512-dDp7WbPapj/NVW0LSiH/CLwMhmLwwKb3R7mh2kWX+QW85X1DGVnIEyKh9PmNJjB/+suG1dJygdtdNPVXK1hylg==} + '@rolldown/binding-freebsd-x64@1.0.0-rc.11': + resolution: {integrity: sha512-jfsm0ZHfhiqrvWjJAmzsqiIFPz5e7mAoCOPBNTcNgkiid/LaFKiq92+0ojH+nmJmKYkre4t71BWXUZDNp7vsag==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.52': - resolution: {integrity: sha512-9e4l6vy5qNSliDPqNfR6CkBOAx6PH7iDV4OJiEJzajajGrVy8gc/IKKJUsoE52G8ud8MX6r3PMl97NfwgOzB7g==} + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.11': + resolution: {integrity: sha512-zjQaUtSyq1nVe3nxmlSCuR96T1LPlpvmJ0SZy0WJFEsV4kFbXcq2u68L4E6O0XeFj4aex9bEauqjW8UQBeAvfQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.52': - resolution: {integrity: sha512-V48oDR84feRU2KRuzpALp594Uqlx27+zFsT6+BgTcXOtu7dWy350J1G28ydoCwKB+oxwsRPx2e7aeQnmd3YJbQ==} + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.11': + resolution: {integrity: sha512-WMW1yE6IOnehTcFE9eipFkm3XN63zypWlrJQ2iF7NrQ9b2LDRjumFoOGJE8RJJTJCTBAdmLMnJ8uVitACUUo1Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] + libc: [glibc] - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.52': - resolution: {integrity: sha512-ENLmSQCWqSA/+YN45V2FqTIemg7QspaiTjlm327eUAMeOLdqmSOVVyrQexJGNTQ5M8sDYCgVAig2Kk01Ggmqaw==} + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.11': + resolution: {integrity: sha512-jfndI9tsfm4APzjNt6QdBkYwre5lRPUgHeDHoI7ydKUuJvz3lZeCfMsI56BZj+7BYqiKsJm7cfd/6KYV7ubrBg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] + libc: [musl] - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.52': - resolution: {integrity: sha512-klahlb2EIFltSUubn/VLjuc3qxp1E7th8ukayPfdkcKvvYcQ5rJztgx8JsJSuAKVzKtNTqUGOhy4On71BuyV8g==} + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.11': + resolution: {integrity: sha512-ZlFgw46NOAGMgcdvdYwAGu2Q+SLFA9LzbJLW+iyMOJyhj5wk6P3KEE9Gct4xWwSzFoPI7JCdYmYMzVtlgQ+zfw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.11': + resolution: {integrity: sha512-hIOYmuT6ofM4K04XAZd3OzMySEO4K0/nc9+jmNcxNAxRi6c5UWpqfw3KMFV4MVFWL+jQsSh+bGw2VqmaPMTLyw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.11': + resolution: {integrity: sha512-qXBQQO9OvkjjQPLdUVr7Nr2t3QTZI7s4KZtfw7HzBgjbmAPSFwSv4rmET9lLSgq3rH/ndA3ngv3Qb8l2njoPNA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] + libc: [glibc] - '@rolldown/binding-linux-x64-musl@1.0.0-beta.52': - resolution: {integrity: sha512-UuA+JqQIgqtkgGN2c/AQ5wi8M6mJHrahz/wciENPTeI6zEIbbLGoth5XN+sQe2pJDejEVofN9aOAp0kaazwnVg==} + '@rolldown/binding-linux-x64-musl@1.0.0-rc.11': + resolution: {integrity: sha512-/tpFfoSTzUkH9LPY+cYbqZBDyyX62w5fICq9qzsHLL8uTI6BHip3Q9Uzft0wylk/i8OOwKik8OxW+QAhDmzwmg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] + libc: [musl] - '@rolldown/binding-openharmony-arm64@1.0.0-beta.52': - resolution: {integrity: sha512-1BNQW8u4ro8bsN1+tgKENJiqmvc+WfuaUhXzMImOVSMw28pkBKdfZtX2qJPADV3terx+vNJtlsgSGeb3+W6Jiw==} + '@rolldown/binding-openharmony-arm64@1.0.0-rc.11': + resolution: {integrity: sha512-mcp3Rio2w72IvdZG0oQ4bM2c2oumtwHfUfKncUM6zGgz0KgPz4YmDPQfnXEiY5t3+KD/i8HG2rOB/LxdmieK2g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@rolldown/binding-wasm32-wasi@1.0.0-beta.52': - resolution: {integrity: sha512-K/p7clhCqJOQpXGykrFaBX2Dp9AUVIDHGc+PtFGBwg7V+mvBTv/tsm3LC3aUmH02H2y3gz4y+nUTQ0MLpofEEg==} + '@rolldown/binding-wasm32-wasi@1.0.0-rc.11': + resolution: {integrity: sha512-LXk5Hii1Ph9asuGRjBuz8TUxdc1lWzB7nyfdoRgI0WGPZKmCxvlKk8KfYysqtr4MfGElu/f/pEQRh8fcEgkrWw==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.52': - resolution: {integrity: sha512-a4EkXBtnYYsKipjS7QOhEBM4bU5IlR9N1hU+JcVEVeuTiaslIyhWVKsvf7K2YkQHyVAJ+7/A9BtrGqORFcTgng==} + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.11': + resolution: {integrity: sha512-dDwf5otnx0XgRY1yqxOC4ITizcdzS/8cQ3goOWv3jFAo4F+xQYni+hnMuO6+LssHHdJW7+OCVL3CoU4ycnh35Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.52': - resolution: {integrity: sha512-5ZXcYyd4GxPA6QfbGrNcQjmjbuLGvfz6728pZMsQvGHI+06LT06M6TPtXvFvLgXtexc+OqvFe1yAIXJU1gob/w==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [ia32] - os: [win32] - - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.52': - resolution: {integrity: sha512-tzpnRQXJrSzb8Z9sm97UD3cY0toKOImx+xRKsDLX4zHaAlRXWh7jbaKBePJXEN7gNw7Nm03PBNwphdtA8KSUYQ==} + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.11': + resolution: {integrity: sha512-LN4/skhSggybX71ews7dAj6r2geaMJfm3kMbK2KhFMg9B10AZXnKoLCVVgzhMHL0S+aKtr4p8QbAW8k+w95bAA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@rolldown/pluginutils@1.0.0-beta.52': - resolution: {integrity: sha512-/L0htLJZbaZFL1g9OHOblTxbCYIGefErJjtYOwgl9ZqNx27P3L0SDfjhhHIss32gu5NWgnxuT2a2Hnnv6QGHKA==} + '@rolldown/pluginutils@1.0.0-rc.11': + resolution: {integrity: sha512-xQO9vbwBecJRv9EUcQ/y0dzSTJgA7Q6UVN7xp6B81+tBGSLVAK03yJ9NkJaUA7JFD91kbjxRSC/mDnmvXzbHoQ==} - '@rspack/binding-darwin-arm64@1.6.8': - resolution: {integrity: sha512-e8CTQtzaeGnf+BIzR7wRMUwKfIg0jd/sxMRc1Vd0bCMHBhSN9EsGoMuJJaKeRrSmy2nwMCNWHIG+TvT1CEKg+A==} + '@rspack/binding-darwin-arm64@1.7.11': + resolution: {integrity: sha512-oduECiZVqbO5zlVw+q7Vy65sJFth99fWPTyucwvLJJtJkPL5n17Uiql2cYP6Ijn0pkqtf1SXgK8WjiKLG5bIig==} cpu: [arm64] os: [darwin] - '@rspack/binding-darwin-x64@1.6.8': - resolution: {integrity: sha512-ku1XpTEPt6Za11zhpFWhfwrTQogcgi9RJrOUVC4FESiPO9aKyd4hJ+JiPgLY0MZOqsptK6vEAgOip+uDVXrCpg==} + '@rspack/binding-darwin-x64@1.7.11': + resolution: {integrity: sha512-a1+TtTE9ap6RalgFi7FGIgkJP6O4Vy6ctv+9WGJy53E4kuqHR0RygzaiVxCI/GMc/vBT9vY23hyrpWb3d1vtXA==} cpu: [x64] os: [darwin] - '@rspack/binding-linux-arm64-gnu@1.6.8': - resolution: {integrity: sha512-fvZX6xZPvBT8qipSpvkKMX5M7yd2BSpZNCZXcefw6gA3uC7LI3gu+er0LrDXY1PtPzVuHTyDx+abwWpagV3PiQ==} + '@rspack/binding-linux-arm64-gnu@1.7.11': + resolution: {integrity: sha512-P0QrGRPbTWu6RKWfN0bDtbnEps3rXH0MWIMreZABoUrVmNQKtXR6e73J3ub6a+di5s2+K0M2LJ9Bh2/H4UsDUA==} cpu: [arm64] os: [linux] + libc: [glibc] - '@rspack/binding-linux-arm64-musl@1.6.8': - resolution: {integrity: sha512-++XMKcMNrt59HcFBLnRaJcn70k3X0GwkAegZBVpel8xYIAgvoXT5+L8P1ExId/yTFxqedaz8DbcxQnNmMozviw==} + '@rspack/binding-linux-arm64-musl@1.7.11': + resolution: {integrity: sha512-6ky7R43VMjWwmx3Yx7Jl7faLBBMAgMDt+/bN35RgwjiPgsIByz65EwytUVuW9rikB43BGHvA/eqlnjLrUzNBqw==} cpu: [arm64] os: [linux] + libc: [musl] - '@rspack/binding-linux-x64-gnu@1.6.8': - resolution: {integrity: sha512-tv3BWkTE1TndfX+DsE1rSTg8fBevCxujNZ3MlfZ22Wfy9x1FMXTJlWG8VIOXmaaJ1wUHzv8S7cE2YUUJ2LuiCg==} + '@rspack/binding-linux-x64-gnu@1.7.11': + resolution: {integrity: sha512-cuOJMfCOvb2Wgsry5enXJ3iT1FGUjdPqtGUBVupQlEG4ntSYsQ2PtF4wIDVasR3wdxC5nQbipOrDiN/u6fYsdQ==} cpu: [x64] os: [linux] + libc: [glibc] - '@rspack/binding-linux-x64-musl@1.6.8': - resolution: {integrity: sha512-DCGgZ5/in1O3FjHWqXnDsncRy+48cMhfuUAAUyl0yDj1NpsZu9pP+xfGLvGcQTiYrVl7IH9Aojf1eShP/77WGA==} + '@rspack/binding-linux-x64-musl@1.7.11': + resolution: {integrity: sha512-CoK37hva4AmHGh3VCsQXmGr40L36m1/AdnN5LEjUX6kx5rEH7/1nEBN6Ii72pejqDVvk9anEROmPDiPw10tpFg==} cpu: [x64] os: [linux] + libc: [musl] - '@rspack/binding-wasm32-wasi@1.6.8': - resolution: {integrity: sha512-VUwdhl/lI4m6o1OGCZ9JwtMjTV/yLY5VZTQdEPKb40JMTlmZ5MBlr5xk7ByaXXYHr6I+qnqEm73iMKQvg6iknw==} + '@rspack/binding-wasm32-wasi@1.7.11': + resolution: {integrity: sha512-OtrmnPUVJMxjNa3eDMfHyPdtlLRmmp/aIm0fQHlAOATbZvlGm12q7rhPW5BXTu1yh+1rQ1/uqvz+SzKEZXuJaQ==} cpu: [wasm32] - '@rspack/binding-win32-arm64-msvc@1.6.8': - resolution: {integrity: sha512-23YX7zlOZlub+nPGDBUzktb4D5D6ETUAluKjXEeHIZ9m7fSlEYBnGL66YE+3t1DHXGd0OqsdwlvrNGcyo6EXDQ==} + '@rspack/binding-win32-arm64-msvc@1.7.11': + resolution: {integrity: sha512-lObFW6e5lCWNgTBNwT//yiEDbsxm9QG4BYUojqeXxothuzJ/L6ibXz6+gLMvbOvLGV3nKgkXmx8GvT9WDKR0mA==} cpu: [arm64] os: [win32] - '@rspack/binding-win32-ia32-msvc@1.6.8': - resolution: {integrity: sha512-cFgRE3APxrY4AEdooVk2LtipwNNT/9mrnjdC5lVbsIsz+SxvGbZR231bxDJEqP15+RJOaD07FO1sIjINFqXMEg==} + '@rspack/binding-win32-ia32-msvc@1.7.11': + resolution: {integrity: sha512-0pYGnZd8PPqNR68zQ8skamqNAXEA1sUfXuAdYcknIIRq2wsbiwFzIc0Pov1cIfHYab37G7sSIPBiOUdOWF5Ivw==} cpu: [ia32] os: [win32] - '@rspack/binding-win32-x64-msvc@1.6.8': - resolution: {integrity: sha512-cIuhVsZYd3o3Neo1JSAhJYw6BDvlxaBoqvgwRkG1rs0ExFmEmgYyG7ip9pFKnKNWph/tmW3rDYypmEfjs1is7g==} + '@rspack/binding-win32-x64-msvc@1.7.11': + resolution: {integrity: sha512-EeQXayoQk/uBkI3pdoXfQBXNIUrADq56L3s/DFyM2pJeUDrWmhfIw2UFIGkYPTMSCo8F2JcdcGM32FGJrSnU0Q==} cpu: [x64] os: [win32] - '@rspack/binding@1.6.8': - resolution: {integrity: sha512-lUeL4mbwGo+nqRKqFDCm9vH2jv9FNMVt1X8jqayWRcOCPlj/2UVMEFgqjR7Pp2vlvnTKq//31KbDBJmDZq31RQ==} + '@rspack/binding@1.7.11': + resolution: {integrity: sha512-2MGdy2s2HimsDT444Bp5XnALzNRxuBNc7y0JzyuqKbHBywd4x2NeXyhWXXoxufaCFu5PBc9Qq9jyfjW2Aeh06Q==} - '@rspack/core@1.6.8': - resolution: {integrity: sha512-FolcIAH5FW4J2FET+qwjd1kNeFbCkd0VLuIHO0thyolEjaPSxw5qxG67DA7BZGm6PVcoiSgPLks1DL6eZ8c+fA==} + '@rspack/core@1.7.11': + resolution: {integrity: sha512-rsD9b+Khmot5DwCMiB3cqTQo53ioPG3M/A7BySu8+0+RS7GCxKm+Z+mtsjtG/vsu4Tn2tcqCdZtA3pgLoJB+ew==} engines: {node: '>=18.12.0'} peerDependencies: '@swc/helpers': '>=0.5.1' @@ -1078,379 +1041,366 @@ packages: '@sec-ant/readable-stream@0.4.1': resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} - '@signature.digital/tools@1.1.0': - resolution: {integrity: sha512-2o6iYVQ0YHSDi69HUCo8xCWnDeN615WF58D3KsO0NpFRhXtakzn4dlbDhosPnYl/5dMR4F5O/ukPfaIDzreaCg==} + '@smithy/chunked-blob-reader-native@4.2.3': + resolution: {integrity: sha512-jA5k5Udn7Y5717L86h4EIv06wIr3xn8GM1qHRi/Nf31annXcXHJjBKvgztnbn2TxH3xWrPBfgwHsOwZf0UmQWw==} + engines: {node: '>=18.0.0'} - '@sindresorhus/is@5.6.0': - resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} - engines: {node: '>=14.16'} + '@smithy/chunked-blob-reader@5.2.2': + resolution: {integrity: sha512-St+kVicSyayWQca+I1rGitaOEH6uKgE8IUWoYnnEX26SWdWQcL6LvMSD19Lg+vYHKdT9B2Zuu7rd3i6Wnyb/iw==} + engines: {node: '>=18.0.0'} - '@smithy/abort-controller@3.1.9': - resolution: {integrity: sha512-yiW0WI30zj8ZKoSYNx90no7ugVn3khlyH/z5W8qtKBtVE6awRALbhSG+2SAHA1r6bO/6M9utxYKVZ3PCJ1rWxw==} - engines: {node: '>=16.0.0'} + '@smithy/config-resolver@4.4.17': + resolution: {integrity: sha512-TzDZcAnhTyAHbXVxWZo7/tEcrIeFq20IBk8So3OLOetWpR8EwY/yEqBMBFaJMeyEiREDq4NfEl+qO3OAUD+vbQ==} + engines: {node: '>=18.0.0'} - '@smithy/chunked-blob-reader-native@3.0.1': - resolution: {integrity: sha512-VEYtPvh5rs/xlyqpm5NRnfYLZn+q0SRPELbvBV+C/G7IQ+ouTuo+NKKa3ShG5OaFR8NYVMXls9hPYLTvIKKDrQ==} + '@smithy/core@3.23.17': + resolution: {integrity: sha512-x7BlLbUFL8NWCGjMF9C+1N5cVCxcPa7g6Tv9B4A2luWx3be3oU8hQ96wIwxe/s7OhIzvoJH73HAUSg5JXVlEtQ==} + engines: {node: '>=18.0.0'} - '@smithy/chunked-blob-reader@4.0.0': - resolution: {integrity: sha512-jSqRnZvkT4egkq/7b6/QRCNXmmYVcHwnJldqJ3IhVpQE2atObVJ137xmGeuGFhjFUr8gCEVAOKwSY79OvpbDaQ==} + '@smithy/credential-provider-imds@4.2.14': + resolution: {integrity: sha512-Au28zBN48ZAoXdooGUHemuVBrkE+Ie6RPmGNIAJsFqj33Vhb6xAgRifUydZ2aY+M+KaMAETAlKk5NC5h1G7wpg==} + engines: {node: '>=18.0.0'} - '@smithy/config-resolver@3.0.13': - resolution: {integrity: sha512-Gr/qwzyPaTL1tZcq8WQyHhTZREER5R1Wytmz4WnVGL4onA3dNk6Btll55c8Vr58pLdvWZmtG8oZxJTw3t3q7Jg==} - engines: {node: '>=16.0.0'} + '@smithy/eventstream-codec@4.2.14': + resolution: {integrity: sha512-erZq0nOIpzfeZdCyzZjdJb4nVSKLUmSkaQUVkRGQTXs30gyUGeKnrYEg+Xe1W5gE3aReS7IgsvANwVPxSzY6Pw==} + engines: {node: '>=18.0.0'} - '@smithy/core@2.5.5': - resolution: {integrity: sha512-G8G/sDDhXA7o0bOvkc7bgai6POuSld/+XhNnWAbpQTpLv2OZPvyqQ58tLPPlz0bSNsXktldDDREIv1LczFeNEw==} - engines: {node: '>=16.0.0'} + '@smithy/eventstream-serde-browser@4.2.14': + resolution: {integrity: sha512-8IelTCtTctWRbb+0Dcy+C0aICh1qa0qWXqgjcXDmMuCvPJRnv26hiDZoAau2ILOniki65mCPKqOQs/BaWvO4CQ==} + engines: {node: '>=18.0.0'} - '@smithy/credential-provider-imds@3.2.8': - resolution: {integrity: sha512-ZCY2yD0BY+K9iMXkkbnjo+08T2h8/34oHd0Jmh6BZUSZwaaGlGCyBT/3wnS7u7Xl33/EEfN4B6nQr3Gx5bYxgw==} - engines: {node: '>=16.0.0'} + '@smithy/eventstream-serde-config-resolver@4.3.14': + resolution: {integrity: sha512-sqHiHpYRYo3FJlaIxD1J8PhbcmJAm7IuM16mVnwSkCToD7g00IBZzKuiLNMGmftULmEUX6/UAz8/NN5uMP8bVA==} + engines: {node: '>=18.0.0'} - '@smithy/eventstream-codec@3.1.10': - resolution: {integrity: sha512-323B8YckSbUH0nMIpXn7HZsAVKHYHFUODa8gG9cHo0ySvA1fr5iWaNT+iIL0UCqUzG6QPHA3BSsBtRQou4mMqQ==} + '@smithy/eventstream-serde-node@4.2.14': + resolution: {integrity: sha512-Ht/8BuGlKfFTy0H3+8eEu0vdpwGztCnaLLXtpXNdQqiR7Hj4vFScU3T436vRAjATglOIPjJXronY+1WxxNLSiw==} + engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-browser@3.0.14': - resolution: {integrity: sha512-kbrt0vjOIihW3V7Cqj1SXQvAI5BR8SnyQYsandva0AOR307cXAc+IhPngxIPslxTLfxwDpNu0HzCAq6g42kCPg==} - engines: {node: '>=16.0.0'} + '@smithy/eventstream-serde-universal@4.2.14': + resolution: {integrity: sha512-lWyt4T2XQZUZgK3tQ3Wn0w3XBvZsK/vjTuJl6bXbnGZBHH0ZUSONTYiK9TgjTTzU54xQr3DRFwpjmhp0oLm3gg==} + engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-config-resolver@3.0.11': - resolution: {integrity: sha512-P2pnEp4n75O+QHjyO7cbw/vsw5l93K/8EWyjNCAAybYwUmj3M+hjSQZ9P5TVdUgEG08ueMAP5R4FkuSkElZ5tQ==} - engines: {node: '>=16.0.0'} + '@smithy/fetch-http-handler@5.3.17': + resolution: {integrity: sha512-bXOvQzaSm6MnmLaWA1elgfQcAtN4UP3vXqV97bHuoOrHQOJiLT3ds6o9eo5bqd0TJfRFpzdGnDQdW3FACiAVdw==} + engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-node@3.0.13': - resolution: {integrity: sha512-zqy/9iwbj8Wysmvi7Lq7XFLeDgjRpTbCfwBhJa8WbrylTAHiAu6oQTwdY7iu2lxigbc9YYr9vPv5SzYny5tCXQ==} - engines: {node: '>=16.0.0'} + '@smithy/hash-blob-browser@4.2.15': + resolution: {integrity: sha512-0PJ4Al3fg2nM4qKrAIxyNcApgqHAXcBkN8FeizOz69z0rb26uZ6lMESYtxegaTlXB5Hj84JfwMPavMrwDMjucA==} + engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-universal@3.0.13': - resolution: {integrity: sha512-L1Ib66+gg9uTnqp/18Gz4MDpJPKRE44geOjOQ2SVc0eiaO5l255ADziATZgjQjqumC7yPtp1XnjHlF1srcwjKw==} - engines: {node: '>=16.0.0'} + '@smithy/hash-node@4.2.14': + resolution: {integrity: sha512-8ZBDY2DD4wr+GGjTpPtiglEsqr0lUP+KHqgZcWczFf6qeZ/YRjMIOoQWVQlmwu7EtxKTd8YXD8lblmYcpBIA1g==} + engines: {node: '>=18.0.0'} - '@smithy/fetch-http-handler@4.1.2': - resolution: {integrity: sha512-R7rU7Ae3ItU4rC0c5mB2sP5mJNbCfoDc8I5XlYjIZnquyUwec7fEo78F6DA3SmgJgkU1qTMcZJuGblxZsl10ZA==} + '@smithy/hash-stream-node@4.2.14': + resolution: {integrity: sha512-tw4GANWkZPb6+BdD4Fgucqzey2+r73Z/GRo9zklsCdwrnxxumUV83ZIaBDdudV4Ylazw3EPTiJZhpX42105ruQ==} + engines: {node: '>=18.0.0'} - '@smithy/hash-blob-browser@3.1.10': - resolution: {integrity: sha512-elwslXOoNunmfS0fh55jHggyhccobFkexLYC1ZeZ1xP2BTSrcIBaHV2b4xUQOdctrSNOpMqOZH1r2XzWTEhyfA==} - - '@smithy/hash-node@3.0.11': - resolution: {integrity: sha512-emP23rwYyZhQBvklqTtwetkQlqbNYirDiEEwXl2v0GYWMnCzxst7ZaRAnWuy28njp5kAH54lvkdG37MblZzaHA==} - engines: {node: '>=16.0.0'} - - '@smithy/hash-stream-node@3.1.10': - resolution: {integrity: sha512-olomK/jZQ93OMayW1zfTHwcbwBdhcZOHsyWyiZ9h9IXvc1mCD/VuvzbLb3Gy/qNJwI4MANPLctTp2BucV2oU/Q==} - engines: {node: '>=16.0.0'} - - '@smithy/invalid-dependency@3.0.11': - resolution: {integrity: sha512-NuQmVPEJjUX6c+UELyVz8kUx8Q539EDeNwbRyu4IIF8MeV7hUtq1FB3SHVyki2u++5XLMFqngeMKk7ccspnNyQ==} + '@smithy/invalid-dependency@4.2.14': + resolution: {integrity: sha512-c21qJiTSb25xvvOp+H2TNZzPCngrvl5vIPqPB8zQ/DmJF4QWXO19x1dWfMJZ6wZuuWUPPm0gV8C0cU3+ifcWuw==} + engines: {node: '>=18.0.0'} '@smithy/is-array-buffer@2.2.0': resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} engines: {node: '>=14.0.0'} - '@smithy/is-array-buffer@3.0.0': - resolution: {integrity: sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==} - engines: {node: '>=16.0.0'} + '@smithy/is-array-buffer@4.2.2': + resolution: {integrity: sha512-n6rQ4N8Jj4YTQO3YFrlgZuwKodf4zUFs7EJIWH86pSCWBaAtAGBFfCM7Wx6D2bBJ2xqFNxGBSrUWswT3M0VJow==} + engines: {node: '>=18.0.0'} - '@smithy/md5-js@3.0.11': - resolution: {integrity: sha512-3NM0L3i2Zm4bbgG6Ymi9NBcxXhryi3uE8fIfHJZIOfZVxOkGdjdgjR9A06SFIZCfnEIWKXZdm6Yq5/aPXFFhsQ==} + '@smithy/md5-js@4.2.14': + resolution: {integrity: sha512-V2v0vx+h0iUSNG1Alt+GNBMSLGCrl9iVsdd+Ap67HPM9PN479x12V8LkuMoKImNZxn3MXeuyUjls+/7ZACZghA==} + engines: {node: '>=18.0.0'} - '@smithy/middleware-content-length@3.0.13': - resolution: {integrity: sha512-zfMhzojhFpIX3P5ug7jxTjfUcIPcGjcQYzB9t+rv0g1TX7B0QdwONW+ATouaLoD7h7LOw/ZlXfkq4xJ/g2TrIw==} - engines: {node: '>=16.0.0'} + '@smithy/middleware-content-length@4.2.14': + resolution: {integrity: sha512-xhHq7fX4/3lv5NHxLUk3OeEvl0xZ+Ek3qIbWaCL4f9JwgDZEclPBElljaZCAItdGPQl/kSM4LPMOpy1MYgprpw==} + engines: {node: '>=18.0.0'} - '@smithy/middleware-endpoint@3.2.5': - resolution: {integrity: sha512-VhJNs/s/lyx4weiZdXSloBgoLoS8osV0dKIain8nGmx7of3QFKu5BSdEuk1z/U8x9iwes1i+XCiNusEvuK1ijg==} - engines: {node: '>=16.0.0'} + '@smithy/middleware-endpoint@4.4.32': + resolution: {integrity: sha512-ZZkgyjnJppiZbIm6Qbx92pbXYi1uzenIvGhBSCDlc7NwuAkiqSgS75j1czAD25ZLs2FjMjYy1q7gyRVWG6JA0Q==} + engines: {node: '>=18.0.0'} - '@smithy/middleware-retry@3.0.30': - resolution: {integrity: sha512-6323RL2BvAR3VQpTjHpa52kH/iSHyxd/G9ohb2MkBk2Ucu+oMtRXT8yi7KTSIS9nb58aupG6nO0OlXnQOAcvmQ==} - engines: {node: '>=16.0.0'} + '@smithy/middleware-retry@4.5.7': + resolution: {integrity: sha512-bRt6ZImqVSeTk39Nm81K20ObIiAZ3WefY7G6+iz/0tZjs4dgRRjvRX2sgsH+zi6iDCRR/aQvQofLKxxz4rPBZg==} + engines: {node: '>=18.0.0'} - '@smithy/middleware-serde@3.0.11': - resolution: {integrity: sha512-KzPAeySp/fOoQA82TpnwItvX8BBURecpx6ZMu75EZDkAcnPtO6vf7q4aH5QHs/F1s3/snQaSFbbUMcFFZ086Mw==} - engines: {node: '>=16.0.0'} + '@smithy/middleware-serde@4.2.20': + resolution: {integrity: sha512-Lx9JMO9vArPtiChE3wbEZ5akMIDQpWQtlu90lhACQmNOXcGXRbaDywMHDzuDZ2OkZzP+9wQfZi3YJT9F67zTQQ==} + engines: {node: '>=18.0.0'} - '@smithy/middleware-stack@3.0.11': - resolution: {integrity: sha512-1HGo9a6/ikgOMrTrWL/WiN9N8GSVYpuRQO5kjstAq4CvV59bjqnh7TbdXGQ4vxLD3xlSjfBjq5t1SOELePsLnA==} - engines: {node: '>=16.0.0'} + '@smithy/middleware-stack@4.2.14': + resolution: {integrity: sha512-2dvkUKLuFdKsCRmOE4Mn63co0Djtsm+JMh0bYZQupN1pJwMeE8FmQmRLLzzEMN0dnNi7CDCYYH8F0EVwWiPBeA==} + engines: {node: '>=18.0.0'} - '@smithy/node-config-provider@3.1.12': - resolution: {integrity: sha512-O9LVEu5J/u/FuNlZs+L7Ikn3lz7VB9hb0GtPT9MQeiBmtK8RSY3ULmsZgXhe6VAlgTw0YO+paQx4p8xdbs43vQ==} - engines: {node: '>=16.0.0'} + '@smithy/node-config-provider@4.3.14': + resolution: {integrity: sha512-S+gFjyo/weSVL0P1b9Ts8C/CwIfNCgUPikk3sl6QVsfE/uUuO+QsF+NsE/JkpvWqqyz1wg7HFdiaZuj5CoBMRg==} + engines: {node: '>=18.0.0'} - '@smithy/node-http-handler@3.3.2': - resolution: {integrity: sha512-t4ng1DAd527vlxvOfKFYEe6/QFBcsj7WpNlWTyjorwXXcKw3XlltBGbyHfSJ24QT84nF+agDha9tNYpzmSRZPA==} - engines: {node: '>=16.0.0'} + '@smithy/node-http-handler@4.6.1': + resolution: {integrity: sha512-iB+orM4x3xrr57X3YaXazfKnntl0LHlZB1kcXSGzMV1Tt0+YwEjGlbjk/44qEGtBzXAz6yFDzkYTKSV6Pj2HUg==} + engines: {node: '>=18.0.0'} - '@smithy/property-provider@3.1.11': - resolution: {integrity: sha512-I/+TMc4XTQ3QAjXfOcUWbSS073oOEAxgx4aZy8jHaf8JQnRkq2SZWw8+PfDtBvLUjcGMdxl+YwtzWe6i5uhL/A==} - engines: {node: '>=16.0.0'} + '@smithy/property-provider@4.2.14': + resolution: {integrity: sha512-WuM31CgfsnQ/10i7NYr0PyxqknD72Y5uMfUMVSniPjbEPceiTErb4eIqJQ+pdxNEAUEWrewrGjIRjVbVHsxZiQ==} + engines: {node: '>=18.0.0'} - '@smithy/protocol-http@4.1.8': - resolution: {integrity: sha512-hmgIAVyxw1LySOwkgMIUN0kjN8TG9Nc85LJeEmEE/cNEe2rkHDUWhnJf2gxcSRFLWsyqWsrZGw40ROjUogg+Iw==} - engines: {node: '>=16.0.0'} + '@smithy/protocol-http@5.3.14': + resolution: {integrity: sha512-dN5F8kHx8RNU0r+pCwNmFZyz6ChjMkzShy/zup6MtkRmmix4vZzJdW+di7x//b1LiynIev88FM18ie+wwPcQtQ==} + engines: {node: '>=18.0.0'} - '@smithy/querystring-builder@3.0.11': - resolution: {integrity: sha512-u+5HV/9uJaeLj5XTb6+IEF/dokWWkEqJ0XiaRRogyREmKGUgZnNecLucADLdauWFKUNbQfulHFEZEdjwEBjXRg==} - engines: {node: '>=16.0.0'} + '@smithy/querystring-builder@4.2.14': + resolution: {integrity: sha512-XYA5Z0IqTeF+5XDdh4BBmSA0HvbgVZIyv4cmOoUheDNR57K1HgBp9ukUMx3Cr3XpDHHpLBnexPE3LAtDsZkj2A==} + engines: {node: '>=18.0.0'} - '@smithy/querystring-parser@3.0.11': - resolution: {integrity: sha512-Je3kFvCsFMnso1ilPwA7GtlbPaTixa3WwC+K21kmMZHsBEOZYQaqxcMqeFFoU7/slFjKDIpiiPydvdJm8Q/MCw==} - engines: {node: '>=16.0.0'} + '@smithy/querystring-parser@4.2.14': + resolution: {integrity: sha512-hr+YyqBD23GVvRxGGrcc/oOeNlK3PzT5Fu4dzrDXxzS1LpFiuL2PQQqKPs87M79aW7ziMs+nvB3qdw77SqE7Lw==} + engines: {node: '>=18.0.0'} - '@smithy/service-error-classification@3.0.11': - resolution: {integrity: sha512-QnYDPkyewrJzCyaeI2Rmp7pDwbUETe+hU8ADkXmgNusO1bgHBH7ovXJiYmba8t0fNfJx75fE8dlM6SEmZxheog==} - engines: {node: '>=16.0.0'} + '@smithy/service-error-classification@4.3.1': + resolution: {integrity: sha512-aUQuDGh760ts/8MU+APjIZhlLPKhIIfqyzZaJikLEIMrdxFvxuLYD0WxWzaYWpmLbQlXDe9p7EWM3HsBe0K6Gw==} + engines: {node: '>=18.0.0'} - '@smithy/shared-ini-file-loader@3.1.12': - resolution: {integrity: sha512-1xKSGI+U9KKdbG2qDvIR9dGrw3CNx+baqJfyr0igKEpjbHL5stsqAesYBzHChYHlelWtb87VnLWlhvfCz13H8Q==} - engines: {node: '>=16.0.0'} + '@smithy/shared-ini-file-loader@4.4.9': + resolution: {integrity: sha512-495/V2I15SHgedSJoDPD23JuSfKAp726ZI1V0wtjB07Wh7q/0tri/0e0DLefZCHgxZonrGKt/OCTpAtP1wE1kQ==} + engines: {node: '>=18.0.0'} - '@smithy/signature-v4@4.2.4': - resolution: {integrity: sha512-5JWeMQYg81TgU4cG+OexAWdvDTs5JDdbEZx+Qr1iPbvo91QFGzjy0IkXAKaXUHqmKUJgSHK0ZxnCkgZpzkeNTA==} - engines: {node: '>=16.0.0'} + '@smithy/signature-v4@5.3.14': + resolution: {integrity: sha512-1D9Y/nmlVjCeSivCbhZ7hgEpmHyY1h0GvpSZt3l0xcD9JjmjVC1CHOozS6+Gh+/ldMH8JuJ6cujObQqfayAVFA==} + engines: {node: '>=18.0.0'} - '@smithy/smithy-client@3.5.0': - resolution: {integrity: sha512-Y8FeOa7gbDfCWf7njrkoRATPa5eNLUEjlJS5z5rXatYuGkCb80LbHcu8AQR8qgAZZaNHCLyo2N+pxPsV7l+ivg==} - engines: {node: '>=16.0.0'} + '@smithy/smithy-client@4.12.13': + resolution: {integrity: sha512-y/Pcj1V9+qG98gyu1gvftHB7rDpdh+7kIBIggs55yGm3JdtBV8GT8IFF3a1qxZ79QnaJHX9GXzvBG6tAd+czJA==} + engines: {node: '>=18.0.0'} - '@smithy/types@3.7.2': - resolution: {integrity: sha512-bNwBYYmN8Eh9RyjS1p2gW6MIhSO2rl7X9QeLM8iTdcGRP+eDiIWDt66c9IysCc22gefKszZv+ubV9qZc7hdESg==} - engines: {node: '>=16.0.0'} + '@smithy/types@4.14.1': + resolution: {integrity: sha512-59b5HtSVrVR/eYNei3BUj3DCPKD/G7EtDDe7OEJE7i7FtQFugYo6MxbotS8mVJkLNVf8gYaAlEBwwtJ9HzhWSg==} + engines: {node: '>=18.0.0'} - '@smithy/url-parser@3.0.11': - resolution: {integrity: sha512-TmlqXkSk8ZPhfc+SQutjmFr5FjC0av3GZP4B/10caK1SbRwe/v+Wzu/R6xEKxoNqL+8nY18s1byiy6HqPG37Aw==} + '@smithy/url-parser@4.2.14': + resolution: {integrity: sha512-p06BiBigJ8bTA3MgnOfCtDUWnAMY0YfedO/GRpmc7p+wg3KW8vbXy1xwSu5ASy0wV7rRYtlfZOIKH4XqfhjSQQ==} + engines: {node: '>=18.0.0'} - '@smithy/util-base64@3.0.0': - resolution: {integrity: sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ==} - engines: {node: '>=16.0.0'} + '@smithy/util-base64@4.3.2': + resolution: {integrity: sha512-XRH6b0H/5A3SgblmMa5ErXQ2XKhfbQB+Fm/oyLZ2O2kCUrwgg55bU0RekmzAhuwOjA9qdN5VU2BprOvGGUkOOQ==} + engines: {node: '>=18.0.0'} - '@smithy/util-body-length-browser@3.0.0': - resolution: {integrity: sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ==} + '@smithy/util-body-length-browser@4.2.2': + resolution: {integrity: sha512-JKCrLNOup3OOgmzeaKQwi4ZCTWlYR5H4Gm1r2uTMVBXoemo1UEghk5vtMi1xSu2ymgKVGW631e2fp9/R610ZjQ==} + engines: {node: '>=18.0.0'} - '@smithy/util-body-length-node@3.0.0': - resolution: {integrity: sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA==} - engines: {node: '>=16.0.0'} + '@smithy/util-body-length-node@4.2.3': + resolution: {integrity: sha512-ZkJGvqBzMHVHE7r/hcuCxlTY8pQr1kMtdsVPs7ex4mMU+EAbcXppfo5NmyxMYi2XU49eqaz56j2gsk4dHHPG/g==} + engines: {node: '>=18.0.0'} '@smithy/util-buffer-from@2.2.0': resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} engines: {node: '>=14.0.0'} - '@smithy/util-buffer-from@3.0.0': - resolution: {integrity: sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA==} - engines: {node: '>=16.0.0'} + '@smithy/util-buffer-from@4.2.2': + resolution: {integrity: sha512-FDXD7cvUoFWwN6vtQfEta540Y/YBe5JneK3SoZg9bThSoOAC/eGeYEua6RkBgKjGa/sz6Y+DuBZj3+YEY21y4Q==} + engines: {node: '>=18.0.0'} - '@smithy/util-config-provider@3.0.0': - resolution: {integrity: sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==} - engines: {node: '>=16.0.0'} + '@smithy/util-config-provider@4.2.2': + resolution: {integrity: sha512-dWU03V3XUprJwaUIFVv4iOnS1FC9HnMHDfUrlNDSh4315v0cWyaIErP8KiqGVbf5z+JupoVpNM7ZB3jFiTejvQ==} + engines: {node: '>=18.0.0'} - '@smithy/util-defaults-mode-browser@3.0.30': - resolution: {integrity: sha512-nLuGmgfcr0gzm64pqF2UT4SGWVG8UGviAdayDlVzJPNa6Z4lqvpDzdRXmLxtOdEjVlTOEdpZ9dd3ZMMu488mzg==} - engines: {node: '>= 10.0.0'} + '@smithy/util-defaults-mode-browser@4.3.49': + resolution: {integrity: sha512-a5bNrdiONYB/qE2BuKegvUMd/+ZDwdg4vsNuuSzYE8qs2EYAdK9CynL+Rzn29PbPiUqoz/cbpRbcLzD5lEevHw==} + engines: {node: '>=18.0.0'} - '@smithy/util-defaults-mode-node@3.0.30': - resolution: {integrity: sha512-OD63eWoH68vp75mYcfYyuVH+p7Li/mY4sYOROnauDrtObo1cS4uWfsy/zhOTW8F8ZPxQC1ZXZKVxoxvMGUv2Ow==} - engines: {node: '>= 10.0.0'} + '@smithy/util-defaults-mode-node@4.2.54': + resolution: {integrity: sha512-g1cvrJvOnzeJgEdf7AE4luI7gp6L8weE0y9a9wQUSGtjb8QRHDbCJYuE4Sy0SD9N8RrnNPFsPltAz/OSoBR9Zw==} + engines: {node: '>=18.0.0'} - '@smithy/util-endpoints@2.1.7': - resolution: {integrity: sha512-tSfcqKcN/Oo2STEYCABVuKgJ76nyyr6skGl9t15hs+YaiU06sgMkN7QYjo0BbVw+KT26zok3IzbdSOksQ4YzVw==} - engines: {node: '>=16.0.0'} + '@smithy/util-endpoints@3.4.2': + resolution: {integrity: sha512-a55Tr+3OKld4TTtnT+RhKOQHyPxm3j/xL4OR83WBUhLJaKDS9dnJ7arRMOp3t31dcLhApwG9bgvrRXBHlLdIkg==} + engines: {node: '>=18.0.0'} - '@smithy/util-hex-encoding@3.0.0': - resolution: {integrity: sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ==} - engines: {node: '>=16.0.0'} + '@smithy/util-hex-encoding@4.2.2': + resolution: {integrity: sha512-Qcz3W5vuHK4sLQdyT93k/rfrUwdJ8/HZ+nMUOyGdpeGA1Wxt65zYwi3oEl9kOM+RswvYq90fzkNDahPS8K0OIg==} + engines: {node: '>=18.0.0'} - '@smithy/util-middleware@3.0.11': - resolution: {integrity: sha512-dWpyc1e1R6VoXrwLoLDd57U1z6CwNSdkM69Ie4+6uYh2GC7Vg51Qtan7ITzczuVpqezdDTKJGJB95fFvvjU/ow==} - engines: {node: '>=16.0.0'} + '@smithy/util-middleware@4.2.14': + resolution: {integrity: sha512-1Su2vj9RYNDEv/V+2E+jXkkwGsgR7dc4sfHn9Z7ruzQHJIEni9zzw5CauvRXlFJfmgcqYP8fWa0dkh2Q2YaQyw==} + engines: {node: '>=18.0.0'} - '@smithy/util-retry@3.0.11': - resolution: {integrity: sha512-hJUC6W7A3DQgaee3Hp9ZFcOxVDZzmBIRBPlUAk8/fSOEl7pE/aX7Dci0JycNOnm9Mfr0KV2XjIlUOcGWXQUdVQ==} - engines: {node: '>=16.0.0'} + '@smithy/util-retry@4.3.8': + resolution: {integrity: sha512-LUIxbTBi+OpvXpg91poGA6BdyoleMDLnfXjVDqyi2RvZmTveY5loE/FgYUBCR5LU2BThW2SoZRh8dTIIy38IPw==} + engines: {node: '>=18.0.0'} - '@smithy/util-stream@3.3.2': - resolution: {integrity: sha512-sInAqdiVeisUGYAv/FrXpmJ0b4WTFmciTRqzhb7wVuem9BHvhIG7tpiYHLDWrl2stOokNZpTTGqz3mzB2qFwXg==} - engines: {node: '>=16.0.0'} + '@smithy/util-stream@4.5.25': + resolution: {integrity: sha512-/PFpG4k8Ze8Ei+mMKj3oiPICYekthuzePZMgZbCqMiXIHHf4n2aZ4Ps0aSRShycFTGuj/J6XldmC0x0DwednIA==} + engines: {node: '>=18.0.0'} - '@smithy/util-uri-escape@3.0.0': - resolution: {integrity: sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg==} - engines: {node: '>=16.0.0'} + '@smithy/util-uri-escape@4.2.2': + resolution: {integrity: sha512-2kAStBlvq+lTXHyAZYfJRb/DfS3rsinLiwb+69SstC9Vb0s9vNWkRwpnj918Pfi85mzi42sOqdV72OLxWAISnw==} + engines: {node: '>=18.0.0'} '@smithy/util-utf8@2.3.0': resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} engines: {node: '>=14.0.0'} - '@smithy/util-utf8@3.0.0': - resolution: {integrity: sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==} - engines: {node: '>=16.0.0'} + '@smithy/util-utf8@4.2.2': + resolution: {integrity: sha512-75MeYpjdWRe8M5E3AW0O4Cx3UadweS+cwdXjwYGBW5h/gxxnbeZ877sLPX/ZJA9GVTlL/qG0dXP29JWFCD1Ayw==} + engines: {node: '>=18.0.0'} - '@smithy/util-waiter@3.2.0': - resolution: {integrity: sha512-PpjSboaDUE6yl+1qlg3Si57++e84oXdWGbuFUSAciXsVfEZJJJupR2Nb0QuXHiunt2vGR+1PTizOMvnUPaG2Qg==} - engines: {node: '>=16.0.0'} + '@smithy/util-waiter@4.3.0': + resolution: {integrity: sha512-JyjYmLAfS+pdxF92o4yLgEoy0zhayKTw73FU1aofLWwLcJw7iSqIY2exGmMTrl/lmZugP5p/zxdFSippJDfKWA==} + engines: {node: '>=18.0.0'} - '@svgdotjs/svg.draggable.js@3.0.6': - resolution: {integrity: sha512-7iJFm9lL3C40HQcqzEfezK2l+dW2CpoVY3b77KQGqc8GXWa6LhhmX5Ckv7alQfUXBuZbjpICZ+Dvq1czlGx7gA==} + '@smithy/uuid@1.1.2': + resolution: {integrity: sha512-O/IEdcCUKkubz60tFbGA7ceITTAJsty+lBjNoorP4Z6XRqaFb/OjQjZODophEcuq68nKm6/0r+6/lLQ+XVpk8g==} + engines: {node: '>=18.0.0'} + + '@tempfix/lenis@1.3.20': + resolution: {integrity: sha512-ypeB0FuHLHOCQXW4d0RQ69txPJJH+1CHcpsZIUdcv2t1vR0IVyQr2vHihtde9UOXhjzqEnUphWon/UcJNsa0YA==} peerDependencies: - '@svgdotjs/svg.js': ^3.2.4 + '@nuxt/kit': '>=3.0.0' + react: '>=17.0.0' + vue: '>=3.0.0' + peerDependenciesMeta: + '@nuxt/kit': + optional: true + react: + optional: true + vue: + optional: true - '@svgdotjs/svg.filter.js@3.0.9': - resolution: {integrity: sha512-/69XMRCDoam2HgC4ldHIaDgeQf1ViHIsa0Ld4uWgiXtZ+E24DWHe/9Ib6kbNiZ7WRIdlVokUDR1Fg0kjIpkfbw==} - engines: {node: '>= 0.8.0'} + '@tempfix/webcontainer__api@1.6.1': + resolution: {integrity: sha512-Hgn3cwy0vPzjrVBqeVnY0jNZLaOCW7d+dxBe7Jv9YGHAjJ8udUMS+KbTywSv5paAfld3A/RN/iolmMzOwZxLTA==} - '@svgdotjs/svg.js@3.2.5': - resolution: {integrity: sha512-/VNHWYhNu+BS7ktbYoVGrCmsXDh+chFMaONMwGNdIBcFHrWqk2jY8fNyr3DLdtQUIalvkPfM554ZSFa3dm3nxQ==} - - '@svgdotjs/svg.resize.js@2.0.5': - resolution: {integrity: sha512-4heRW4B1QrJeENfi7326lUPYBCevj78FJs8kfeDxn5st0IYPIRXoTtOSYvTzFWgaWWXd3YCDE6ao4fmv91RthA==} - engines: {node: '>= 14.18'} - peerDependencies: - '@svgdotjs/svg.js': ^3.2.4 - '@svgdotjs/svg.select.js': ^4.0.1 - - '@svgdotjs/svg.select.js@4.0.3': - resolution: {integrity: sha512-qkMgso1sd2hXKd1FZ1weO7ANq12sNmQJeGDjs46QwDVsxSRcHmvWKL2NDF7Yimpwf3sl5esOLkPqtV2bQ3v/Jg==} - engines: {node: '>= 14.18'} - peerDependencies: - '@svgdotjs/svg.js': ^3.2.4 - - '@szmarczak/http-timer@5.0.1': - resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} - engines: {node: '>=14.16'} - - '@tempfix/idb@8.0.3': - resolution: {integrity: sha512-hPJQKO7+oAIY+pDNImrZ9QAINbz9KmwT+yO4iRVwdPanok2YKpaUxdJzIvCUwY0YgAawlvYdffbLvRLV5hbs2g==} - - '@tiptap/core@2.27.1': - resolution: {integrity: sha512-nkerkl8syHj44ZzAB7oA2GPmmZINKBKCa79FuNvmGJrJ4qyZwlkDzszud23YteFZEytbc87kVd/fP76ROS6sLg==} + '@tiptap/core@2.27.2': + resolution: {integrity: sha512-ABL1N6eoxzDzC1bYvkMbvyexHacszsKdVPYqhl5GwHLOvpZcv9VE9QaKwDILTyz5voCA0lGcAAXZp+qnXOk5lQ==} peerDependencies: '@tiptap/pm': ^2.7.0 - '@tiptap/extension-blockquote@2.27.1': - resolution: {integrity: sha512-QrUX3muElDrNjKM3nqCSAtm3H3pT33c6ON8kwRiQboOAjT/9D57Cs7XEVY7r6rMaJPeKztrRUrNVF9w/w/6B0A==} + '@tiptap/extension-blockquote@2.27.2': + resolution: {integrity: sha512-oIGZgiAeA4tG3YxbTDfrmENL4/CIwGuP3THtHsNhwRqwsl9SfMk58Ucopi2GXTQSdYXpRJ0ahE6nPqB5D6j/Zw==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-bold@2.27.1': - resolution: {integrity: sha512-g4l4p892x/r7mhea8syp3fNYODxsDrimgouQ+q4DKXIgQmm5+uNhyuEPexP3I8TFNXqQ4DlMNFoM9yCqk97etQ==} + '@tiptap/extension-bold@2.27.2': + resolution: {integrity: sha512-bR7J5IwjCGQ0s3CIxyMvOCnMFMzIvsc5OVZKscTN5UkXzFsaY6muUAIqtKxayBUucjtUskm5qZowJITCeCb1/A==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-bullet-list@2.27.1': - resolution: {integrity: sha512-5FmnfXkJ76wN4EbJNzBhAlmQxho8yEMIJLchTGmXdsD/n/tsyVVtewnQYaIOj/Z7naaGySTGDmjVtLgTuQ+Sxw==} + '@tiptap/extension-bullet-list@2.27.2': + resolution: {integrity: sha512-gmFuKi97u5f8uFc/GQs+zmezjiulZmFiDYTh3trVoLRoc2SAHOjGEB7qxdx7dsqmMN7gwiAWAEVurLKIi1lnnw==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-code-block@2.27.1': - resolution: {integrity: sha512-wCI5VIOfSAdkenCWFvh4m8FFCJ51EOK+CUmOC/PWUjyo2Dgn8QC8HMi015q8XF7886T0KvYVVoqxmxJSUDAYNg==} + '@tiptap/extension-code-block@2.27.2': + resolution: {integrity: sha512-KgvdQHS4jXr79aU3wZOGBIZYYl9vCB7uDEuRFV4so2rYrfmiYMw3T8bTnlNEEGe4RUeAms1i4fdwwvQp9nR1Dw==} peerDependencies: '@tiptap/core': ^2.7.0 '@tiptap/pm': ^2.7.0 - '@tiptap/extension-code@2.27.1': - resolution: {integrity: sha512-i65wUGJevzBTIIUBHBc1ggVa27bgemvGl/tY1/89fEuS/0Xmre+OQjw8rCtSLevoHSiYYLgLRlvjtUSUhE4kgg==} + '@tiptap/extension-code@2.27.2': + resolution: {integrity: sha512-7X9AgwqiIGXoZX7uvdHQsGsjILnN/JaEVtqfXZnPECzKGaWHeK/Ao4sYvIIIffsyZJA8k5DC7ny2/0sAgr2TuA==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-document@2.27.1': - resolution: {integrity: sha512-NtJzJY7Q/6XWjpOm5OXKrnEaofrcc1XOTYlo/SaTwl8k2bZo918Vl0IDBWhPVDsUN7kx767uHwbtuQZ+9I82hA==} + '@tiptap/extension-document@2.27.2': + resolution: {integrity: sha512-CFhAYsPnyYnosDC4639sCJnBUnYH4Cat9qH5NZWHVvdgtDwu8GZgZn2eSzaKSYXWH1vJ9DSlCK+7UyC3SNXIBA==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-dropcursor@2.27.1': - resolution: {integrity: sha512-3MBQRGHHZ0by3OT0CWbLKS7J3PH9PpobrXjmIR7kr0nde7+bHqxXiVNuuIf501oKU9rnEUSedipSHkLYGkmfsA==} + '@tiptap/extension-dropcursor@2.27.2': + resolution: {integrity: sha512-oEu/OrktNoQXq1x29NnH/GOIzQZm8ieTQl3FK27nxfBPA89cNoH4mFEUmBL5/OFIENIjiYG3qWpg6voIqzswNw==} peerDependencies: '@tiptap/core': ^2.7.0 '@tiptap/pm': ^2.7.0 - '@tiptap/extension-gapcursor@2.27.1': - resolution: {integrity: sha512-A9e1jr+jGhDWzNSXtIO6PYVYhf5j/udjbZwMja+wCE/3KvZU9V3IrnGKz1xNW+2Q2BDOe1QO7j5uVL9ElR6nTA==} + '@tiptap/extension-gapcursor@2.27.2': + resolution: {integrity: sha512-/c9VF1HBxj+AP54XGVgCmD9bEGYc5w5OofYCFQgM7l7PB1J00A4vOke0oPkHJnqnOOyPlFaxO/7N6l3XwFcnKA==} peerDependencies: '@tiptap/core': ^2.7.0 '@tiptap/pm': ^2.7.0 - '@tiptap/extension-hard-break@2.27.1': - resolution: {integrity: sha512-W4hHa4Io6QCTwpyTlN6UAvqMIQ7t56kIUByZhyY9EWrg/+JpbfpxE1kXFLPB4ZGgwBknFOw+e4bJ1j3oAbTJFw==} + '@tiptap/extension-hard-break@2.27.2': + resolution: {integrity: sha512-kSRVGKlCYK6AGR0h8xRkk0WOFGXHIIndod3GKgWU49APuIGDiXd8sziXsSlniUsWmqgDmDXcNnSzPcV7AQ8YNg==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-heading@2.27.1': - resolution: {integrity: sha512-6xoC7igZlW1EmnQ5WVH9IL7P1nCQb3bBUaIDLvk7LbweEogcTUECI4Xg1vxMOVmj9tlDe1I4BsgfcKpB5KEsZw==} + '@tiptap/extension-heading@2.27.2': + resolution: {integrity: sha512-iM3yeRWuuQR/IRQ1djwNooJGfn9Jts9zF43qZIUf+U2NY8IlvdNsk2wTOdBgh6E0CamrStPxYGuln3ZS4fuglw==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-history@2.27.1': - resolution: {integrity: sha512-K8PHC9gegSAt0wzSlsd4aUpoEyIJYOmVVeyniHr1P1mIblW1KYEDbRGbDlrLALTyUEfMcBhdIm8zrB9X2Nihvg==} + '@tiptap/extension-history@2.27.2': + resolution: {integrity: sha512-+hSyqERoFNTWPiZx4/FCyZ/0eFqB9fuMdTB4AC/q9iwu3RNWAQtlsJg5230bf/qmyO6bZxRUc0k8p4hrV6ybAw==} peerDependencies: '@tiptap/core': ^2.7.0 '@tiptap/pm': ^2.7.0 - '@tiptap/extension-horizontal-rule@2.27.1': - resolution: {integrity: sha512-WxXWGEEsqDmGIF2o9av+3r9Qje4CKrqrpeQY6aRO5bxvWX9AabQCfasepayBok6uwtvNzh3Xpsn9zbbSk09dNA==} + '@tiptap/extension-horizontal-rule@2.27.2': + resolution: {integrity: sha512-WGWUSgX+jCsbtf9Y9OCUUgRZYuwjVoieW5n6mAUohJ9/6gc6sGIOrUpBShf+HHo6WD+gtQjRd+PssmX3NPWMpg==} peerDependencies: '@tiptap/core': ^2.7.0 '@tiptap/pm': ^2.7.0 - '@tiptap/extension-italic@2.27.1': - resolution: {integrity: sha512-rcm0GyniWW0UhcNI9+1eIK64GqWQLyIIrWGINslvqSUoBc+WkfocLvv4CMpRkzKlfsAxwVIBuH2eLxHKDtAREA==} + '@tiptap/extension-italic@2.27.2': + resolution: {integrity: sha512-1OFsw2SZqfaqx5Fa5v90iNlPRcqyt+lVSjBwTDzuPxTPFY4Q0mL89mKgkq2gVHYNCiaRkXvFLDxaSvBWbmthgg==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-link@2.27.1': - resolution: {integrity: sha512-cCwWPZsnVh9MXnGOqSIRXPPuUixRDK8eMN2TvqwbxUBb1TU7b/HtNvfMU4tAOqAuMRJ0aJkFuf3eB0Gi8LVb1g==} + '@tiptap/extension-link@2.27.2': + resolution: {integrity: sha512-bnP61qkr0Kj9Cgnop1hxn2zbOCBzNtmawxr92bVTOE31fJv6FhtCnQiD6tuPQVGMYhcmAj7eihtvuEMFfqEPcQ==} peerDependencies: '@tiptap/core': ^2.7.0 '@tiptap/pm': ^2.7.0 - '@tiptap/extension-list-item@2.27.1': - resolution: {integrity: sha512-dtsxvtzxfwOJP6dKGf0vb2MJAoDF2NxoiWzpq0XTvo7NGGYUHfuHjX07Zp0dYqb4seaDXjwsi5BIQUOp3+WMFQ==} + '@tiptap/extension-list-item@2.27.2': + resolution: {integrity: sha512-eJNee7IEGXMnmygM5SdMGDC8m/lMWmwNGf9fPCK6xk0NxuQRgmZHL6uApKcdH6gyNcRPHCqvTTkhEP7pbny/fg==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-ordered-list@2.27.1': - resolution: {integrity: sha512-U1/sWxc2TciozQsZjH35temyidYUjvroHj3PUPzPyh19w2fwKh1NSbFybWuoYs6jS3XnMSwnM2vF52tOwvfEmA==} + '@tiptap/extension-ordered-list@2.27.2': + resolution: {integrity: sha512-M7A4tLGJcLPYdLC4CI2Gwl8LOrENQW59u3cMVa+KkwG1hzSJyPsbDpa1DI6oXPC2WtYiTf22zrbq3gVvH+KA2w==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-paragraph@2.27.1': - resolution: {integrity: sha512-R3QdrHcUdFAsdsn2UAIvhY0yWyHjqGyP/Rv8RRdN0OyFiTKtwTPqreKMHKJOflgX4sMJl/OpHTpNG1Kaf7Lo2A==} + '@tiptap/extension-paragraph@2.27.2': + resolution: {integrity: sha512-elYVn2wHJJ+zB9LESENWOAfI4TNT0jqEN34sMA/hCtA4im1ZG2DdLHwkHIshj/c4H0dzQhmsS/YmNC5Vbqab/A==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-strike@2.27.1': - resolution: {integrity: sha512-S9I//K8KPgfFTC5I5lorClzXk0g4lrAv9y5qHzHO5EOWt7AFl0YTg2oN8NKSIBK4bHRnPIrjJJKv+dDFnUp5jQ==} + '@tiptap/extension-strike@2.27.2': + resolution: {integrity: sha512-HHIjhafLhS2lHgfAsCwC1okqMsQzR4/mkGDm4M583Yftyjri1TNA7lzhzXWRFWiiMfJxKtdjHjUAQaHuteRTZw==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-text-align@2.27.1': - resolution: {integrity: sha512-D7dLPk7y5mDn9ZNANQ4K2gCq4vy+Emm5AdeWOGzNeqJsYrBotiQYXd9rb1QYjdup2kzAoKduMTUXV92ujo5cEg==} + '@tiptap/extension-text-align@2.27.2': + resolution: {integrity: sha512-0Pyks6Hu+Q/+9+5/osoSv0SP6jIerdWMYbi13aaZLsJoj3lBj5WNaE11JtAwSFN5sx0IbqhDSlp1zkvRnzgZ8g==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-text-style@2.27.1': - resolution: {integrity: sha512-NagQ9qLk0Ril83gfrk+C65SvTqPjL3WVnLF2arsEVnCrxcx3uDOvdJW67f/K5HEwEHsoqJ4Zq9Irco/koXrOXA==} + '@tiptap/extension-text-style@2.27.2': + resolution: {integrity: sha512-Omk+uxjJLyEY69KStpCw5fA9asvV+MGcAX2HOxyISDFoLaL49TMrNjhGAuz09P1L1b0KGXo4ml7Q3v/Lfy4WPA==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-text@2.27.1': - resolution: {integrity: sha512-a4GCT+GZ9tUwl82F4CEum9/+WsuW0/De9Be/NqrMmi7eNfAwbUTbLCTFU0gEvv25WMHCoUzaeNk/qGmzeVPJ1Q==} + '@tiptap/extension-text@2.27.2': + resolution: {integrity: sha512-Xk7nYcigljAY0GO9hAQpZ65ZCxqOqaAlTPDFcKerXmlkQZP/8ndx95OgUb1Xf63kmPOh3xypurGS2is3v0MXSA==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-typography@2.27.1': - resolution: {integrity: sha512-jAZU5IuWH9CtZlolQ1gRhV+bT75s19SXjadQwkk18gMMiapcaIVVTxUDWY6ycv9ge4cjRoaP3lqBviW3cGqhOA==} + '@tiptap/extension-typography@2.27.2': + resolution: {integrity: sha512-NSyqDa8PlAZoVRfTWQuxueTZ6ftOD72EV7UKVpftf3C+Heme727mvwl1YHMnagOlqVoxBhFOrl9CnSs/q5uayQ==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/extension-underline@2.27.1': - resolution: {integrity: sha512-fPTmfJFAQWg1O/os1pYSPVdtvly6eW/w5sDofG7pre+bdQUN+8s1cZYelSuj/ltNVioRaB2Ws7tvNgnHL0aAJQ==} + '@tiptap/extension-underline@2.27.2': + resolution: {integrity: sha512-gPOsbAcw1S07ezpAISwoO8f0RxpjcSH7VsHEFDVuXm4ODE32nhvSinvHQjv2icRLOXev+bnA7oIBu7Oy859gWQ==} peerDependencies: '@tiptap/core': ^2.7.0 - '@tiptap/pm@2.27.1': - resolution: {integrity: sha512-ijKo3+kIjALthYsnBmkRXAuw2Tswd9gd7BUR5OMfIcjGp8v576vKxOxrRfuYiUM78GPt//P0sVc1WV82H5N0PQ==} + '@tiptap/pm@2.27.2': + resolution: {integrity: sha512-kaEg7BfiJPDQMKbjVIzEPO3wlcA+pZb2tlcK9gPrdDnEFaec2QTF1sXz2ak2IIb2curvnIrQ4yrfHgLlVA72wA==} - '@tiptap/starter-kit@2.27.1': - resolution: {integrity: sha512-uQQlP0Nmn9eq19qm8YoOeloEfmcGbPpB1cujq54Q6nPgxaBozR7rE7tXbFTinxRW2+Hr7XyNWhpjB7DMNkdU2Q==} + '@tiptap/starter-kit@2.27.2': + resolution: {integrity: sha512-bb0gJvPoDuyRUQ/iuN52j1//EtWWttw+RXAv1uJxfR0uKf8X7uAqzaOOgwjknoCIDC97+1YHwpGdnRjpDkOBxw==} '@tokenizer/inflate@0.4.1': resolution: {integrity: sha512-2mAv+8pkG6GIZiF1kNg1jAjh27IDxEPKwdGul3snfztFerfPGI1LjDezZp3i7BElXompqEtPmoPx6c2wgtWsOA==} @@ -1459,11 +1409,11 @@ packages: '@tokenizer/token@0.3.0': resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} - '@tsclass/tsclass@4.2.0': - resolution: {integrity: sha512-34p1jFzpOXapfsD95VN+Kq/qW/XDbyCi/qDMcZp3aUCYIv6dlzY3+6s+GOIQSzkL1YW1uKCij88J+jNsWGijbA==} + '@tsclass/tsclass@4.4.4': + resolution: {integrity: sha512-YZOAF+u+r4u5rCev2uUd1KBTBdfyFdtDmcv4wuN+864lMccbdfRICR3SlJwCfYS1lbeV3QNLYGD30wjRXgvCJA==} - '@tsclass/tsclass@9.3.0': - resolution: {integrity: sha512-KD3oTUN3RGu67tgjNHgWWZGsdYipr1RUDxQ9MMKSgIJ6oNZ4q5m2rg0ibrgyHWkAjTPlHVa6kHP3uVOY+8bnHw==} + '@tsclass/tsclass@9.5.1': + resolution: {integrity: sha512-IJKjLh/r4h1H4byDa+ODmBSM3HBfdCkUI3NT4TBSvG9Ov2zNTv5GhYeX7Wktsr4bcnicYM/zV58dVB6ubOUVTA==} '@tybys/wasm-util@0.10.1': resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} @@ -1474,17 +1424,14 @@ packages: '@types/clean-css@4.2.11': resolution: {integrity: sha512-Y8n81lQVTAfP2TOdtJJEsCoYl1AnOkqDqMvXb9/7pfgZZ7r8YrEyurrAvAoAjHOGXKRybay+5CsExqIH6liccw==} - '@types/debug@4.1.12': - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + '@types/debug@4.1.13': + resolution: {integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==} - '@types/from2@2.3.5': - resolution: {integrity: sha512-giavnjf3kNlJnE+HpZA1CQ3UKHxgehzsTuIMGda8pGMbOiLYGVNADEskey44OZcADHm/HOoBany8IV+0x28XFw==} + '@types/dom-mediacapture-transform@0.1.11': + resolution: {integrity: sha512-Y2p+nGf1bF2XMttBnsVPHUWzRRZzqUoJAKmiP10b5umnO6DDrWI0BrGDJy1pOHoOULVmGSfFNkQrAlC5dcj6nQ==} - '@types/fs-extra@11.0.4': - resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} - - '@types/glob@8.1.0': - resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} + '@types/dom-webcodecs@0.1.13': + resolution: {integrity: sha512-O5hkiFIcjjszPIYyUSyvScyvrBoV3NOEEZx/pMlsu44TKzWNkLVBBxnxJz42in5n3QIolYOcBYFCPZZ0h8SkwQ==} '@types/hast@3.0.4': resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} @@ -1492,18 +1439,9 @@ packages: '@types/html-minifier@4.0.6': resolution: {integrity: sha512-1Dcf38DkVMYo8SIOkUka7GxI+0BztCVsnfiG2Sxb6G8ShHDQTWQb1WKps/eb3O074HNDCn8wU7LMl5N99nNG+Q==} - '@types/http-cache-semantics@4.0.4': - resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} - - '@types/js-yaml@3.12.10': - resolution: {integrity: sha512-/Mtaq/wf+HxXpvhzFYzrzCqNRcA958sW++7JOFC8nPrZcvfi/TrzOaaGbvt27ltJB2NQbHVAg5a1wUCsyMH7NA==} - '@types/js-yaml@4.0.9': resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} - '@types/jsonfile@6.1.4': - resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} - '@types/linkify-it@5.0.0': resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} @@ -1519,17 +1457,17 @@ packages: '@types/mime-types@2.1.4': resolution: {integrity: sha512-lfU4b34HOri+kAY5UheuFMWPDOI+OPceBSHZKp69gEyTL/mmJ4cnU6Y/rlme3UL3GyOn6Y42hyIEw0/q8sWx5w==} - '@types/minimatch@5.1.2': - resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} + '@types/ms@2.1.0': + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - '@types/ms@0.7.34': - resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + '@types/mute-stream@0.0.4': + resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==} - '@types/node@20.10.0': - resolution: {integrity: sha512-D0WfRmU9TQ8I9PFx9Yc+EBHw+vSpIub4IDvQivcp26PtPrdMGAq5SDcpXEo/epqa/DXotVpekHiLNTg3iaKXBQ==} + '@types/node@22.19.17': + resolution: {integrity: sha512-wGdMcf+vPYM6jikpS/qhg6WiqSV/OhG+jeeHT/KlVqxYfD40iYJf9/AE1uQxVWFvU7MipKRkRv8NSHiCGgPr8Q==} - '@types/node@22.10.2': - resolution: {integrity: sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==} + '@types/node@25.6.0': + resolution: {integrity: sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==} '@types/randomatic@3.1.5': resolution: {integrity: sha512-VCwCTw6qh1pRRw+5rNTAwqPmf6A+hdrkdM7dBpZVmhl7g+em3ONXlYK/bWPVKqVGMWgP0d1bog8Vc/X6zRwRRQ==} @@ -1537,23 +1475,20 @@ packages: '@types/relateurl@0.2.33': resolution: {integrity: sha512-bTQCKsVbIdzLqZhLkF5fcJQreE4y1ro4DIyVrlDNSCJRRwHhB8Z+4zXXa8jN6eDvc2HbRsEYgbvrnGvi54EpSw==} - '@types/semver@7.5.8': - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + '@types/semver@7.7.1': + resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} '@types/symbol-tree@3.2.5': resolution: {integrity: sha512-zXnnyENt1TYQcS21MkPaJCVjfcPq7p7yc5mo5JACuumXp6sly5jnlS0IokHd+xmmuCbx6V7JqkMBpswR+nZAcw==} - '@types/tar-stream@3.1.4': - resolution: {integrity: sha512-921gW0+g29mCJX0fRvqeHzBlE/XclDaAG0Ousy1LCghsOhvaKacDeRGEVzQP9IPfKn8Vysy7FEXAIxycpc/CMg==} - '@types/through2@2.0.41': resolution: {integrity: sha512-ryQ0tidWkb1O1JuYvWKyMLYEtOWDqF5mHerJzKz/gQpoAaJq2l/dsMPBF0B5BNVT34rbARYJ5/tsZwLfUi2kwQ==} '@types/trusted-types@2.0.7': resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} - '@types/turndown@5.0.5': - resolution: {integrity: sha512-TL2IgGgc7B5j78rIccBtlYAnkuv8nUQqhQc+DSYV5j9Be9XOcm/SKOVRuA47xAVI3680Tk9B1d8flK2GWT2+4w==} + '@types/turndown@5.0.6': + resolution: {integrity: sha512-ru00MoyeeouE5BX4gRL+6m/BsDfbRayOskWqUvh7CLGW+UXxHQItqALa38kKnOiZPqJrtzJUgAC2+F0rL1S4Pg==} '@types/uglify-js@3.17.5': resolution: {integrity: sha512-TU+fZFBTBcXj/GpDpDaBmgWk/gn96kMZ+uocaFUlV2f8a6WdMzzI44QBCmGcCiYR0Y6ZlNRiyUyKKt5nl/lbzQ==} @@ -1564,17 +1499,20 @@ packages: '@types/uuid@9.0.8': resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} + '@types/whatwg-mimetype@3.0.2': + resolution: {integrity: sha512-c2AKvDT8ToxLIOUlN51gTiHXflsfIFisS4pO7pDPoKouJCESkhZnEy623gwP9laCy5lnLDAw1vAzu2vM2YLOrA==} + '@types/which@3.0.4': resolution: {integrity: sha512-liyfuo/106JdlgSchJzXEQCVArk0CvevqPote8F8HgWgJ3dRCcTHgJIsLDuee0kxk/mhbInzIZk3QWSZJ8R+2w==} - '@ungap/structured-clone@1.2.1': - resolution: {integrity: sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA==} + '@types/wrap-ansi@3.0.0': + resolution: {integrity: sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==} - '@webcontainer/api@1.2.0': - resolution: {integrity: sha512-tzoKBd4lLdhHy5GHFpUkl+ndoSba8JqmB7x0ZQFnWfjbcbQOvKQfxA8MEMUYhgqjWHnbrWdAfnBEHz5f5lYG5A==} + '@types/ws@8.18.1': + resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} - '@yr/monotone-cubic-spline@1.0.3': - resolution: {integrity: sha512-FQXkOta0XBSUPHndIKON2Y9JeQz5ZeMqLYZVVK93FliNBFm7LNMIZmY6FrMEB9XPcDbE2bekMbZD6kzDkxwYjA==} + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} agentkeepalive@4.6.0: resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} @@ -1584,36 +1522,31 @@ packages: resolution: {integrity: sha1-kQ3lDvzHwJ49gvL4er1rcAwYgYo=} engines: {node: '>=0.10.0'} + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} - ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} - ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - - apexcharts@5.3.6: - resolution: {integrity: sha512-sVEPw+J0Gp0IHQabKu8cfdsxlfME0e36Wid7RIaPclGM2OUt+O7O4+6mfAmTUYhy5bDk8cNHzEhPfVtLCIXEJA==} - - argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} asynckit@0.4.0: resolution: {integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k=} - b4a@1.6.7: - resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} + b4a@1.8.1: + resolution: {integrity: sha512-aiqre1Nr0B/6DgE2N5vwTc+2/oQZ4Wh1t4NznYY4E00y8LCt6NqdRv81so00oo27D8MVKTpUa/MwUUtBLXCoDw==} + peerDependencies: + react-native-b4a: '*' + peerDependenciesMeta: + react-native-b4a: + optional: true bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} @@ -1621,26 +1554,66 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - bare-events@2.5.0: - resolution: {integrity: sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==} + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} + + bare-events@2.8.2: + resolution: {integrity: sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==} + peerDependencies: + bare-abort-controller: '*' + peerDependenciesMeta: + bare-abort-controller: + optional: true + + bare-fs@4.7.1: + resolution: {integrity: sha512-WDRsyVN52eAx/lBamKD6uyw8H4228h/x0sGGGegOamM2cd7Pag88GfMQalobXI+HaEUxpCkbKQUDOQqt9wawRw==} + engines: {bare: '>=1.16.0'} + peerDependencies: + bare-buffer: '*' + peerDependenciesMeta: + bare-buffer: + optional: true + + bare-os@3.9.1: + resolution: {integrity: sha512-6M5XjcnsygQNPMCMPXSK379xrJFiZ/AEMNBmFEmQW8d/789VQATvriyi5r0HYTL9TkQ26rn3kgdTG3aisbrXkQ==} + engines: {bare: '>=1.14.0'} + + bare-path@3.0.0: + resolution: {integrity: sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==} + + bare-stream@2.13.1: + resolution: {integrity: sha512-Vp0cnjYyrEC4whYTymQ+YZi6pBpfiICZO3cfRG8sy67ZNWe951urv1x4eW1BKNngw3U+3fPYb5JQvHbCtxH7Ow==} + peerDependencies: + bare-abort-controller: '*' + bare-buffer: '*' + bare-events: '*' + peerDependenciesMeta: + bare-abort-controller: + optional: true + bare-buffer: + optional: true + bare-events: + optional: true + + bare-url@2.4.2: + resolution: {integrity: sha512-/9a2j4ac6ckpmAHvod/ob7x439OAHst/drc2Clnq+reRYd/ovddwcF4LfoxHyNk5AuGBnPg+HqFjmE/Zpq6v0A==} base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - bowser@2.11.0: - resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} + bowser@2.14.1: + resolution: {integrity: sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==} - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + brace-expansion@2.1.0: + resolution: {integrity: sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==} - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + brace-expansion@5.0.5: + resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} + engines: {node: 18 || 20 || >=22} - broadcast-channel@7.0.0: - resolution: {integrity: sha512-a2tW0Ia1pajcPBOGUF2jXlDnvE9d5/dg6BG9h60OmRUcZVr/veUrU8vEQFwwQIhwG3KVzYwSk3v2nRRGFgQDXQ==} - - broadcast-channel@7.2.0: - resolution: {integrity: sha512-JgraikEriG/TxBUi2W/w2O0jhHjXZUtXAvCZH0Yr3whjxYVgAg0hSe6r/teM+I5H5Q/q6RhyuKdC2pHNlFyepQ==} + broadcast-channel@7.3.0: + resolution: {integrity: sha512-UHPhLBQKfQ8OmMFMpmPfO5dRakyA1vsfiDGWTYNvChYol65tbuhivPEGgZZiuetorvExdvxaWiBy/ym1Ty08yA==} buffer-json@2.0.0: resolution: {integrity: sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw==} @@ -1648,23 +1621,16 @@ packages: buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - cacheable-lookup@7.0.0: - resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} - engines: {node: '>=14.16'} - - cacheable-request@10.2.14: - resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} - engines: {node: '>=14.16'} - - call-bind-apply-helpers@1.0.1: - resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} - call-bind@1.0.5: - resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} + call-bind@1.0.9: + resolution: {integrity: sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==} + engines: {node: '>= 0.4'} - call-bound@1.0.3: - resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} engines: {node: '>= 0.4'} callsites@3.1.0: @@ -1686,6 +1652,9 @@ packages: character-entities@2.0.2: resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + chokidar@5.0.0: resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} engines: {node: '>= 20.19.0'} @@ -1694,9 +1663,9 @@ packages: resolution: {integrity: sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==} engines: {node: '>= 4.0'} - clean-stack@1.3.0: - resolution: {integrity: sha1-noIVAa6XmYbEax1m0tQy2y/UrjE=} - engines: {node: '>=4'} + cli-width@4.1.0: + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} + engines: {node: '>= 12'} color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} @@ -1715,34 +1684,16 @@ packages: commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - concat-map@0.0.1: - resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} - config-chain@1.1.13: resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} - core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - crelt@1.0.6: resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} - croner@5.7.0: - resolution: {integrity: sha512-9pSLe+tDJnmNak2JeMkz6ZmTCXP5p6vCxSd4kvDqrTJkqAP62j2uAEIZjf8cPDZIakStujqVzh5Y5MIWH3yYAw==} - engines: {node: '>=6.0'} - - croner@7.0.5: - resolution: {integrity: sha512-15HLCD7iXnMe5km54yc4LN5BH+Cg9uCQvbkJ0acHxFffE29w3Uvgb9s/l310UCVUgMwGSBNw9BAHsEb5uMgj1g==} - engines: {node: '>=6.0'} - - croner@9.0.0: - resolution: {integrity: sha512-onMB0OkDjkXunhdW9htFjEhqrD54+M94i6ackoUkjHKbRnXdyEyKRelp4nJ1kAz32+s27jP1FsebpJCVl0BsvA==} + croner@10.0.1: + resolution: {integrity: sha512-ixNtAJndqh173VQ4KodSdJEI6nuioBWI0V1ITNKhZZsO0pEMoDxz539T4FTTbSZ/xIOSuDnzxLVRqBVSvPNE2g==} engines: {node: '>=18.0'} - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} @@ -1754,20 +1705,8 @@ packages: date-fns@4.1.0: resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} - dayjs@1.11.10: - resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} - - dayjs@1.11.13: - resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} - - debug@4.4.0: - resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + dayjs@1.11.20: + resolution: {integrity: sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==} debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} @@ -1778,23 +1717,15 @@ packages: supports-color: optional: true - decode-named-character-reference@1.0.2: - resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} - - decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} + decode-named-character-reference@1.3.0: + resolution: {integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==} deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} - defer-to-connect@2.0.1: - resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} - engines: {node: '>=10'} - - define-data-property@1.1.1: - resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} define-lazy-prop@2.0.0: @@ -1816,23 +1747,27 @@ packages: devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + dompurify@3.2.7: + resolution: {integrity: sha512-WhL/YuveyGXJaerVlMYGWhvQswa7myDG17P7Vu65EWC05o8vfeNbvNf4d/BOvH99+ZW+LlQsc1GDKMa1vNK6dw==} + dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + echarts@5.6.0: + resolution: {integrity: sha512-oTbVTsXfKuEhxftHqL5xprgLoc0k7uScAwtryCgWF6hPYFLRwOUHiFmHGCBKP5NPFNkDVopOieyUqYGH8Fa3kA==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + entities@7.0.1: + resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} + engines: {node: '>=0.12'} + es-define-property@1.0.1: resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} engines: {node: '>= 0.4'} @@ -1841,16 +1776,16 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-object-atoms@1.0.0: - resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} es-set-tostringtag@2.1.0: resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} - esbuild@0.27.2: - resolution: {integrity: sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==} + esbuild@0.27.7: + resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==} engines: {node: '>=18'} hasBin: true @@ -1866,24 +1801,25 @@ packages: resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==} engines: {node: '>=6'} - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + events-universal@1.0.1: + resolution: {integrity: sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==} + extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - fake-indexeddb@5.0.2: - resolution: {integrity: sha512-cB507r5T3D55DfclY01GLkninZLfU7HXV/mhVRTnTRm5k2u+fY7Fof2dBkr80p5t7G7dlA/G5dI87QiMdPpMCQ==} + external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + + fake-indexeddb@6.2.5: + resolution: {integrity: sha512-CGnyrvbhPlWYMngksqrSSUT1BAVP49dZocrHuK0SvtR0D5TMs5wP0o3j7jexDJW01KSadjBp1M/71o/KR3nD1w==} engines: {node: '>=18'} - fake-indexeddb@6.0.0: - resolution: {integrity: sha512-YEboHE5VfopUclOck7LncgIqskAqnv4q0EWbYCaxKKjAvO93c+TJIaBuGy8CBFdbg9nKdpN3AuPRwVBJ4k7NrQ==} - engines: {node: '>=18'} + fancy-canvas@2.1.0: + resolution: {integrity: sha512-nifxXJ95JNLFR2NgRV4/MxVP45G9909wJTEKz5fg/TZS20JJZA6hfgRVh/bC9bwl2zBtBNcYPjiBE4njQHVBwQ==} fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -1894,16 +1830,15 @@ packages: fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - fast-xml-parser@4.4.1: - resolution: {integrity: sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==} + fast-xml-builder@1.1.5: + resolution: {integrity: sha512-4TJn/8FKLeslLAH3dnohXqE3QSoxkhvaMzepOIZytwJXZO69Bfz0HBdDHzOTOon6G59Zrk6VQ2bEiv1t61rfkA==} + + fast-xml-parser@4.5.6: + resolution: {integrity: sha512-Yd4vkROfJf8AuJrDIVMVmYfULKmIJszVsMv7Vo71aocsKgFxpdlpSHXSaInvyYfgw2PRuObQSW2GFpVMUjxu9A==} hasBin: true - fast-xml-parser@4.5.1: - resolution: {integrity: sha512-y655CeyUQ+jj7KBbYMc4FG01V8ZQqjN+gDYGJ50RtfsUB8iG9AmwmwoAgeKLJdmueKKMrH1RJ7yXHTSoczdv5w==} - hasBin: true - - fast-xml-parser@5.3.3: - resolution: {integrity: sha512-2O3dkPAAC6JavuMm8+4+pgTk+5hoAs+CjZ+sWcQLkX9+/tHRuTkQh/Oaifr8qDmZ8iEHb771Ea6G8CdwkrgvYA==} + fast-xml-parser@5.7.2: + resolution: {integrity: sha512-P7oW7tLbYnhOLQk/Gv7cZgzgMPP/XN03K02/Jy6Y/NHzyIAIpxuZIM/YqAkfiXFPxA2CTm7NtCijK9EDu09u2w==} hasBin: true fault@2.0.1: @@ -1916,26 +1851,14 @@ packages: resolution: {integrity: sha512-VZR5I7k5wkD0HgFnMsq5hOsSc710MJMu5Nc5QYsbe38NN5iPV/XTObYLc/cpttRTf6lX538+5uO1ZQRhYibiZQ==} engines: {node: '>=18'} - file-type@21.1.1: - resolution: {integrity: sha512-ifJXo8zUqbQ/bLbl9sFoqHNTNWbnPY1COImFfM6CCy7z+E+jC1eY9YfOKkx0fckIg+VljAy2/87T61fp0+eEkg==} - engines: {node: '>=20'} + file-type@22.0.1: + resolution: {integrity: sha512-ww5Mhre0EE+jmBvOXTmXAbEMuZE7uX4a3+oRCQFNj8w++g3ev913N6tXQz0XTXbueQ5TWQfm6BdaViEHHn8bhA==} + engines: {node: '>=22'} foreground-child@2.0.0: resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} engines: {node: '>=8.0.0'} - foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} - engines: {node: '>=14'} - - foreground-child@3.3.1: - resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} - engines: {node: '>=14'} - - form-data-encoder@2.1.4: - resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} - engines: {node: '>= 14.17'} - form-data@4.0.5: resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} engines: {node: '>= 6'} @@ -1944,20 +1867,6 @@ packages: resolution: {integrity: sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=} engines: {node: '>=0.4.x'} - from2@2.3.0: - resolution: {integrity: sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=} - - fs-extra@11.1.1: - resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} - engines: {node: '>=14.14'} - - fs-extra@11.3.2: - resolution: {integrity: sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==} - engines: {node: '>=14.14'} - - fs.realpath@1.0.0: - resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} - fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -1966,68 +1875,38 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - get-intrinsic@1.2.2: - resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} - - get-intrinsic@1.2.6: - resolution: {integrity: sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==} + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} engines: {node: '>= 0.4'} - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} get-stream@9.0.1: resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} engines: {node: '>=18'} - get-tsconfig@4.8.1: - resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} + get-tsconfig@4.14.0: + resolution: {integrity: sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==} - glob@10.3.10: - resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - - glob@11.1.0: - resolution: {integrity: sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==} - engines: {node: 20 || >=22} - hasBin: true - - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - - gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + glob@13.0.6: + resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} + engines: {node: 18 || 20 || >=22} gopd@1.2.0: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} - got@12.6.1: - resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==} - engines: {node: '>=14.16'} - graceful-fs@4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + happy-dom@20.9.0: + resolution: {integrity: sha512-GZZ9mKe8r646NUAf/zemnGbjYh4Bt8/MqASJY+pSm5ZDtc3YQox+4gsLI7yi1hba6o+eCsGxpHn5+iEVn31/FQ==} + engines: {node: '>=20.0.0'} - happy-dom@15.11.7: - resolution: {integrity: sha512-KyrFvnl+J9US63TEzwoiJOQzZBJY7KgBushJA8X61DMbNsH+2ONkDuLDnCnwUiPTF42tLoEmrPyoqbenVA5zrg==} - engines: {node: '>=18.0.0'} - - has-property-descriptors@1.0.1: - resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} - - has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} - engines: {node: '>= 0.4'} - - has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} has-symbols@1.1.0: resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} @@ -2037,19 +1916,15 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} - hasown@2.0.0: - resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} - engines: {node: '>= 0.4'} - - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + hasown@2.0.3: + resolution: {integrity: sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==} engines: {node: '>= 0.4'} hast-util-sanitize@5.0.2: resolution: {integrity: sha512-3yTWghByc50aGS7JlGhk61SPenfE/p1oaFeNwkOOyrscaOkMGrcW9+Cy/QAIOBpZxP1yqDIzFMR0+Np0i0+usg==} - hast-util-to-html@9.0.4: - resolution: {integrity: sha512-wxQzXtdbhiwGAUKrnQJXlOPmHnEehzphwkK7aluUPQ+lEc1xefC8pblMgpp2w5ldBTEfveRIrADcrhGIWrlTDA==} + hast-util-to-html@9.0.5: + resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} hast-util-whitespace@3.0.0: resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} @@ -2070,31 +1945,32 @@ packages: html-void-elements@3.0.0: resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} - http-cache-semantics@4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - - http2-wrapper@2.2.1: - resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} - engines: {node: '>=10.19.0'} - humanize-ms@1.2.1: resolution: {integrity: sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=} - ibantools@4.5.1: - resolution: {integrity: sha512-DfKQpLlFq9yEUIEnFuCJzss3XavD7iHZTU5PyqXiAJ+rmaMp+NFP3hboumHKuK8nZjuOJg93WemTzcQ5b9jOZA==} + ibantools@4.5.4: + resolution: {integrity: sha512-6jX1gh4aH6XH+o0ey+wtkMTzkcvsEta7DakIOZSng9voZYpMw3U+gK1+tZChk3aRcPcloEt0NOzksjaRZiqXbw==} + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + idb@8.0.3: + resolution: {integrity: sha512-LtwtVyVYO5BqRvcsKuB2iUMnHwPVByPCXFXOpuU96IZPPoPN6xjOGxZQ74pgSVVLQWtUOYgyeL4GE98BY5D3wg==} ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - inflight@1.0.6: - resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} - inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + inquirer@11.1.0: + resolution: {integrity: sha512-CmLAZT65GG/v30c+D2Fk8+ceP6pxD6RL+hIUOWAltCmeyEqWYwqu9v76q03OvjyZ3AB0C1Ala2stn1z/rMqGEw==} + engines: {node: '>=18'} + is-docker@2.2.1: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} @@ -2132,64 +2008,30 @@ packages: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} - isarray@1.0.0: - resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=} - isexe@2.0.0: resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} - isexe@3.1.1: - resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} - engines: {node: '>=16'} + isexe@4.0.0: + resolution: {integrity: sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==} + engines: {node: '>=20'} - jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} + js-base64@3.7.8: + resolution: {integrity: sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow==} - jackspeak@4.1.1: - resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==} - engines: {node: 20 || >=22} - - js-base64@3.7.5: - resolution: {integrity: sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==} - - js-base64@3.7.7: - resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==} - - js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + js-yaml@4.1.1: + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} hasBin: true - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - - jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} - lenis@1.3.16: - resolution: {integrity: sha512-KULpna+5TgRCDMSPx4SzJwtsjlz7EeoFCp4IDCXrlM73rLBAj34Egcl7GCLz/6+hXFOYt3DTBeTtJvTu45dJNA==} - peerDependencies: - '@nuxt/kit': '>=3.0.0' - react: '>=17.0.0' - vue: '>=3.0.0' - peerDependenciesMeta: - '@nuxt/kit': - optional: true - react: - optional: true - vue: - optional: true + ky@1.14.3: + resolution: {integrity: sha512-9zy9lkjac+TR1c2tG+mkNSVlyOpInnWdSMiue4F+kq8TwJSgv6o8jhLRg8Ho6SnZ9wOYUq/yozts9qQCfk7bIw==} + engines: {node: '>=18'} + + lightweight-charts@5.2.0: + resolution: {integrity: sha512-ey3Vas8UhV06ni+LT9TA1nEe4y8So4Mi6CL/oarNHFMyTktz/xy8e8+oh04Q//eO3t6etvFXgayz2fClyFQb5w==} linkify-it@5.0.0: resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} @@ -2197,14 +2039,14 @@ packages: linkifyjs@4.3.2: resolution: {integrity: sha512-NT1CJtq3hHIreOianA8aSXn6Cw0JzYOuDQbOrSPe7gqFnCpKP++MQe3ODgO3oh2GJFORkAAdqredOa60z63GbA==} - lit-element@4.2.1: - resolution: {integrity: sha512-WGAWRGzirAgyphK2urmYOV72tlvnxw7YfyLDgQ+OZnM9vQQBQnumQ7jUJe6unEzwGU3ahFOjuz1iz1jjrpCPuw==} + lit-element@4.2.2: + resolution: {integrity: sha512-aFKhNToWxoyhkNDmWZwEva2SlQia+jfG0fjIWV//YeTaWrVnOxD89dPKfigCUspXFmjzOEUQpOkejH5Ly6sG0w==} - lit-html@3.3.1: - resolution: {integrity: sha512-S9hbyDu/vs1qNrithiNyeyv64c9yqiW9l+DBgI18fL+MTvOtWoFR0FWiyq1TxaYef5wNlpEmzlXoBlZEO+WjoA==} + lit-html@3.3.2: + resolution: {integrity: sha512-Qy9hU88zcmaxBXcc10ZpdK7cOLXvXpRoBxERdtqV9QOrfpMZZ6pSYP91LhpPtap3sFMUiL7Tw2RImbe0Al2/kw==} - lit@3.3.1: - resolution: {integrity: sha512-Ksr/8L3PTapbdXJCk+EJVB78jDodUMaP54gD24W186zGRARvwrsPfS60wae/SSCTCNZVPd1chXqio1qHQmu4NA==} + lit@3.3.2: + resolution: {integrity: sha512-NF9zbsP79l4ao2SNrH3NkfmFgN/hBYSQo90saIVI1o5GpjAdCPVstVzO1MrLOakHoEhYkrtRjPK6Ob521aoYWQ==} lodash.clonedeep@4.5.0: resolution: {integrity: sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=} @@ -2215,38 +2057,29 @@ packages: lower-case@1.1.4: resolution: {integrity: sha1-miyr0bno4K6ZOkv31YdcOcQujqw=} - lowercase-keys@3.0.0: - resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - lru-cache@10.1.0: - resolution: {integrity: sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==} - engines: {node: 14 || >=16.14} - - lru-cache@11.0.2: - resolution: {integrity: sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==} + lru-cache@11.3.5: + resolution: {integrity: sha512-NxVFwLAnrd9i7KUBxC4DrUhmgjzOs+1Qm50D3oF1/oL+r1NpZ4gA7xvG0/zJ8evR7zIKn4vLf7qTNduWFtCrRw==} engines: {node: 20 || >=22} - lucide@0.560.0: - resolution: {integrity: sha512-w7++Pwdz0NxxMtC4ugLmsy66Ar95HnDIMjzJZdHl0kQKIHto3icgI+lbOZMlovZ1Mo4RGITWGhYn1ro7hcY/UA==} + lucide@1.14.0: + resolution: {integrity: sha512-IoRC3lHwemJWvsXKcHK90hkgY4h1HGztBL63w2XwFtIu8gFDPp4/kiuqVtlN3vaM9bxsLQ4ZUBJfGsbKFaB2IA==} make-dir@3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} - make-error-cause@2.3.0: - resolution: {integrity: sha512-etgt+n4LlOkGSJbBTV9VROHA5R7ekIPS4vfh+bCAoJgRrJWdqJCBbpS3osRJ/HrT7R68MzMiY3L3sDJ/Fd8aBg==} - - make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - - markdown-it@14.1.0: - resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} + markdown-it@14.1.1: + resolution: {integrity: sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==} hasBin: true markdown-table@3.0.4: resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + marked@14.0.0: + resolution: {integrity: sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ==} + engines: {node: '>= 18'} + hasBin: true + matcher@5.0.0: resolution: {integrity: sha512-s2EMBOWtXFc8dgqvoAzKJXxNHibcdJMV0gwqKUaw9E2JBJuGUK7DrNKrA6g/i+v72TT16+6sVm5mS3thaMLQUw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -2258,11 +2091,11 @@ packages: math-random@1.0.4: resolution: {integrity: sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==} - mdast-util-find-and-replace@3.0.1: - resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} + mdast-util-find-and-replace@3.0.2: + resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} - mdast-util-from-markdown@2.0.2: - resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} + mdast-util-from-markdown@2.0.3: + resolution: {integrity: sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==} mdast-util-frontmatter@2.0.1: resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} @@ -2270,8 +2103,8 @@ packages: mdast-util-gfm-autolink-literal@2.0.1: resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} - mdast-util-gfm-footnote@2.0.0: - resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} + mdast-util-gfm-footnote@2.1.0: + resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} mdast-util-gfm-strikethrough@2.0.0: resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} @@ -2282,14 +2115,14 @@ packages: mdast-util-gfm-task-list-item@2.0.0: resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} - mdast-util-gfm@3.0.0: - resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} + mdast-util-gfm@3.1.0: + resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} mdast-util-phrasing@4.1.0: resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} - mdast-util-to-hast@13.2.0: - resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} + mdast-util-to-hast@13.2.1: + resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==} mdast-util-to-markdown@2.1.2: resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} @@ -2300,8 +2133,11 @@ packages: mdurl@2.0.0: resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} - micromark-core-commonmark@2.0.2: - resolution: {integrity: sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==} + mediabunny@1.43.1: + resolution: {integrity: sha512-TuxRDvj2FrQjVZ5Zi1nNJ2NcpRbbc3FpDpNcwWAygeA4ND9w1xICOXnze8XUk0VlFhAMkQPm5Gy+yZL+BJ/Gtg==} + + micromark-core-commonmark@2.0.3: + resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} micromark-extension-frontmatter@2.0.0: resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} @@ -2315,8 +2151,8 @@ packages: micromark-extension-gfm-strikethrough@2.1.0: resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} - micromark-extension-gfm-table@2.1.0: - resolution: {integrity: sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==} + micromark-extension-gfm-table@2.1.1: + resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} micromark-extension-gfm-tagfilter@2.0.0: resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} @@ -2375,17 +2211,17 @@ packages: micromark-util-sanitize-uri@2.0.1: resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} - micromark-util-subtokenize@2.0.3: - resolution: {integrity: sha512-VXJJuNxYWSoYL6AJ6OQECCFGhIU2GGHMw8tahogePBrjkG8aCCas3ibkp7RnVOSTClg2is05/R7maAhF1XyQMg==} + micromark-util-subtokenize@2.1.0: + resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} micromark-util-symbol@2.0.1: resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} - micromark-util-types@2.0.1: - resolution: {integrity: sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==} + micromark-util-types@2.0.2: + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} - micromark@4.0.1: - resolution: {integrity: sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==} + micromark@4.0.2: + resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} @@ -2395,55 +2231,40 @@ packages: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} - mime@4.0.6: - resolution: {integrity: sha512-4rGt7rvQHBbaSOF9POGkk1ocRP16Md1x36Xma8sz8h8/vfCUI2OtEIeCqe4Ofes853x4xDoPiFLIT47J5fI/7A==} + mime@4.1.0: + resolution: {integrity: sha512-X5ju04+cAzsojXKes0B/S4tcYtFAJ6tTMuSPBEn9CPGlrWr8Fiw7qYeLT0XyH80HSoAoqWCaz+MWKh22P7G1cw==} engines: {node: '>=16'} hasBin: true - mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} + minimatch@10.2.5: + resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} + engines: {node: 18 || 20 || >=22} - mimic-response@4.0.0: - resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - - minimatch@10.1.1: - resolution: {integrity: sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==} - engines: {node: 20 || >=22} - - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - - minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} - - minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + minimatch@9.0.9: + resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==} engines: {node: '>=16 || 14 >=14.17'} minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - minipass@7.0.4: - resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} engines: {node: '>=16 || 14 >=14.17'} - minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} - engines: {node: '>=16 || 14 >=14.17'} + modern-tar@0.7.6: + resolution: {integrity: sha512-sweCIVXzx1aIGTCdzcMlSZt1h8k5Tmk08VNAuRk3IU28XamGiOH5ypi11g6De2CH7PhYqSSnGy2A/EFhbWnVKg==} + engines: {node: '>=18.0.0'} - monaco-editor@0.52.2: - resolution: {integrity: sha512-GEQWEZmfkOGLdd3XK8ryrfWz3AIP8YymVXiPHEdewrUq7mh0qrKrfHLNCXcbB6sTnMLnOZ3ztSiKcciFUkIJwQ==} + monaco-editor@0.55.1: + resolution: {integrity: sha512-jz4x+TJNFHwHtwuV9vA9rMujcZRb0CEilTEwG2rRSpe/A7Jdkuj8xPKttCgOh+v/lkHy7HsZ64oj+q3xoAFl9A==} ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + mute-stream@1.0.0: + resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + nanoid@4.0.2: resolution: {integrity: sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==} engines: {node: ^14 || ^16 || >=18} @@ -2456,25 +2277,14 @@ packages: resolution: {integrity: sha512-ff4jKqMI8Xl50/4Mms/9jPobzAV/UK+kXG2XJ/7AqOmxIx8mqfqTIHYxuAnEgJ2AQeBbLnlbmZ5+38Y9A0w/YA==} engines: {node: '>=12'} - normalize-url@8.0.1: - resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} - engines: {node: '>=14.16'} - - object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} - - object-inspect@1.13.3: - resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} engines: {node: '>= 0.4'} object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} - oblivious-set@1.4.0: - resolution: {integrity: sha512-szyd0ou0T8nsAqHtprRcP3WidfsN1TnAR5yWXf2mFCEr5ek3LEOkT6EZ/92Xfs74HIdyhG5WkGxIssMU0jBaeg==} - engines: {node: '>=16'} - oblivious-set@2.0.0: resolution: {integrity: sha512-QOUH5Xrsced9fKXaQTjWoDGKeS/Or7E2jB0FN63N4mkAO4qJdB7WR7e6qWAOHM5nk25FJ8TGjhP7DH4l6vFVLg==} engines: {node: '>=16'} @@ -2482,9 +2292,6 @@ packages: observable-fns@0.6.1: resolution: {integrity: sha512-9gRK4+sRWzeN6AOewNBTLXir7Zl/i3GB6Yl26gK4flxz8BXVpD3kt8amREmWNb0mxYOGDotvE5a4N+PtGGKdkg==} - once@1.4.0: - resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} - open@8.4.2: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} @@ -2492,9 +2299,9 @@ packages: orderedmap@2.1.1: resolution: {integrity: sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==} - p-cancelable@3.0.0: - resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} - engines: {node: '>=12.20'} + os-tmpdir@1.0.2: + resolution: {integrity: sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=} + engines: {node: '>=0.10.0'} p-finally@1.0.0: resolution: {integrity: sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=} @@ -2511,69 +2318,53 @@ packages: package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - package-json@8.1.1: - resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} - engines: {node: '>=14.16'} + package-json@10.0.1: + resolution: {integrity: sha512-ua1L4OgXSBdsu1FPb7F3tYH0F48a6kxvod4pLUlGY9COeJAJQNX/sNH2IiEmsxw7lqYiAwrdHMjz1FctOsyDQg==} + engines: {node: '>=18'} param-case@2.1.1: resolution: {integrity: sha1-35T9jPZTHs915r75oIWPvHK+Ikc=} - parse-ms@3.0.0: - resolution: {integrity: sha512-Tpb8Z7r7XbbtBTrM9UhpkzzaMrqA2VXMT3YChzYltwV3P3pM6t8wl7TvpMnSTosz1aQAdVib7kdoys7vYOPerw==} - engines: {node: '>=12'} - parse-ms@4.0.0: resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} engines: {node: '>=18'} - path-is-absolute@1.0.1: - resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=} - engines: {node: '>=0.10.0'} + path-expression-matcher@1.5.0: + resolution: {integrity: sha512-cbrerZV+6rvdQrrD+iGMcZFEiiSrbv9Tfdkvnusy6y0x0GKBXREFg/Y65GhIfm0tnLntThhzCnfKwp1WRjeCyQ==} + engines: {node: '>=14.0.0'} path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} - path-scurry@1.10.1: - resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} - engines: {node: '>=16 || 14 >=14.17'} + path-scurry@2.0.2: + resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} + engines: {node: 18 || 20 || >=22} - path-scurry@2.0.0: - resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} - engines: {node: 20 || >=22} - - path-to-regexp@8.2.0: - resolution: {integrity: sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==} - engines: {node: '>=16'} + path-to-regexp@8.4.2: + resolution: {integrity: sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==} pdfjs-dist@4.10.38: resolution: {integrity: sha512-/Y3fcFrXEAsMjJXeL9J8+ZG9U01LbuWaYypvDW2ycW1jL269L3js3DVBjDJ0Up9Np1uqDXsDrRihHANhZOlwdQ==} engines: {node: '>=20'} - peek-readable@5.3.1: - resolution: {integrity: sha512-GVlENSDW6KHaXcd9zkZltB7tCLosKB/4Hg0fqBJkAoBgYG2Tn1xtMgXtSUuMU9AK/gCm/tTdT8mgAeF4YNeeqw==} + peek-readable@5.4.2: + resolution: {integrity: sha512-peBp3qZyuS6cNIJ2akRNG1uo1WJ1d0wTxg/fxMdZ0BqCVhx242bSFHM9eNqflfJVS9SsgkzgT/1UgnsurBOTMg==} engines: {node: '>=14.16'} - picomatch@4.0.3: - resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + picomatch@4.0.4: + resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} engines: {node: '>=12'} - pretty-ms@8.0.0: - resolution: {integrity: sha512-ASJqOugUF1bbzI35STMBUpZqdfYKlJugy6JBziGi2EE+AL5JPJGSzvpeVXojxrr0ViUYoToUjb5kjSEGf7Y83Q==} - engines: {node: '>=14.16'} - - pretty-ms@9.2.0: - resolution: {integrity: sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==} + pretty-ms@9.3.0: + resolution: {integrity: sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==} engines: {node: '>=18'} - process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + property-information@7.1.0: + resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} - property-information@6.5.0: - resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} - - prosemirror-changeset@2.3.1: - resolution: {integrity: sha512-j0kORIBm8ayJNl3zQvD1TTPHJX3g042et6y/KQhZhnPrruO8exkTgG8X+NRpj7kIyMMEx74Xb3DyMIBtO0IKkQ==} + prosemirror-changeset@2.4.1: + resolution: {integrity: sha512-96WBLhOaYhJ+kPhLg3uW359Tz6I/MfcrQfL4EGv4SrcqKEMC1gmoGrXHecPE8eOwTVCJ4IwgfzM8fFad25wNfw==} prosemirror-collab@1.3.1: resolution: {integrity: sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ==} @@ -2584,8 +2375,8 @@ packages: prosemirror-dropcursor@1.8.2: resolution: {integrity: sha512-CCk6Gyx9+Tt2sbYk5NK0nB1ukHi2ryaRgadV/LvyNuO3ena1payM2z6Cg0vO1ebK8cxbzo41ku2DE5Axj1Zuiw==} - prosemirror-gapcursor@1.4.0: - resolution: {integrity: sha512-z00qvurSdCEWUIulij/isHaqu4uLS8r/Fi61IbjdIPJEonQgggbJsLnstW7Lgdk4zQ68/yr6B6bf7sJXowIgdQ==} + prosemirror-gapcursor@1.4.1: + resolution: {integrity: sha512-pMdYaEnjNMSwl11yjEGtgTmLkR08m/Vl+Jj443167p9eB3HVQKhYCc4gmHVDsLPODfZfjr/MmirsdyZziXbQKw==} prosemirror-history@1.5.0: resolution: {integrity: sha512-zlzTiH01eKA55UAf1MEjtssJeHnGxO0j4K4Dpx+gnmX9n+SHNlDqI2oO1Kv1iPN5B1dm5fsljCfqKF9nFL6HRg==} @@ -2596,11 +2387,11 @@ packages: prosemirror-keymap@1.2.3: resolution: {integrity: sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==} - prosemirror-markdown@1.13.2: - resolution: {integrity: sha512-FPD9rHPdA9fqzNmIIDhhnYQ6WgNoSWX9StUZ8LEKapaXU9i6XgykaHKhp6XMyXlOWetmaFgGDS/nu/w9/vUc5g==} + prosemirror-markdown@1.13.4: + resolution: {integrity: sha512-D98dm4cQ3Hs6EmjK500TdAOew4Z03EV71ajEFiWra3Upr7diytJsjF4mPV2dW+eK5uNectiRj0xFxYI9NLXDbw==} - prosemirror-menu@1.2.5: - resolution: {integrity: sha512-qwXzynnpBIeg1D7BAtjOusR+81xCp53j7iWu/IargiRZqRjGIlQuu1f3jFi+ehrHhWMLoyOQTSRx/IWZJqOYtQ==} + prosemirror-menu@1.3.2: + resolution: {integrity: sha512-6VgUJTYod0nMBlCaYJGhXGLu7Gt4AvcwcOq0YfJCY/6Uh+3S7UsWhpy6rJFCBFOmonq1hD8KyWOtZhkppd4YPg==} prosemirror-model@1.25.4: resolution: {integrity: sha512-PIM7E43PBxKce8OQeezAs9j4TP+5yDpZVbuurd1h5phUxEKIu+G2a+EUZzIC5nS1mJktDJWzbqS23n1tsAf5QA==} @@ -2614,8 +2405,8 @@ packages: prosemirror-state@1.4.4: resolution: {integrity: sha512-6jiYHH2CIGbCfnxdHbXZ12gySFY/fz/ulZE333G6bPqIZ4F+TXo9ifiR86nAHpWnfoNjOb3o5ESi7J8Uz1jXHw==} - prosemirror-tables@1.8.3: - resolution: {integrity: sha512-wbqCR/RlRPRe41a4LFtmhKElzBEfBTdtAYWNIGHM6X2e24NN/MTNUKyXjjphfAfdQce37Kh/5yf765mLPYDe7Q==} + prosemirror-tables@1.8.5: + resolution: {integrity: sha512-V/0cDCsHKHe/tfWkeCmthNUcEp1IVO3p6vwN8XtwE9PZQLAZJigbw3QoraAdfJPir4NKJtNvOB8oYGKRl+t0Dw==} prosemirror-trailing-node@3.0.0: resolution: {integrity: sha512-xiun5/3q0w5eRnGYfNlW1uU9W6x5MoFKWwq/0TIRgt09lv7Hcser2QYV8t4muXbEr+Fwo0geYn79Xs4GKywrRQ==} @@ -2624,11 +2415,11 @@ packages: prosemirror-state: ^1.4.2 prosemirror-view: ^1.33.8 - prosemirror-transform@1.10.5: - resolution: {integrity: sha512-RPDQCxIDhIBb1o36xxwsaeAvivO8VLJcgBtzmOwQ64bMtsVFh5SSuJ6dWSxO1UsHTiTXPCgQm3PDJt7p6IOLbw==} + prosemirror-transform@1.12.0: + resolution: {integrity: sha512-GxboyN4AMIsoHNtz5uf2r2Ru551i5hWeCMD6E2Ib4Eogqoub0NflniaBPVQ4MrGE5yZ8JV9tUHg9qcZTTrcN4w==} - prosemirror-view@1.41.4: - resolution: {integrity: sha512-WkKgnyjNncri03Gjaz3IFWvCAE94XoiEgvtr0/r2Xw7R8/IjK3sKLSiDoCHWcsXSAinVaKlGRZDvMCsF1kbzjA==} + prosemirror-view@1.41.8: + resolution: {integrity: sha512-TnKDdohEatgyZNGCDWIdccOHXhYloJwbwU+phw/a23KBvJIR9lWQWW7WHHK3vBdOLDNuF7TaX98GObUZOWkOnA==} proto-list@1.2.4: resolution: {integrity: sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=} @@ -2640,21 +2431,10 @@ packages: punycode@1.4.1: resolution: {integrity: sha1-wNWmOycYgArY4esPpSachN1BhF4=} - qs@6.11.2: - resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} + qs@6.15.1: + resolution: {integrity: sha512-6YHEFRL9mfgcAvql/XhwTvf5jKcOiiupt2FiJxHkiX1z4j7WL8J/jRHYLluORvc1XxB5rV20KoeK00gVJamspg==} engines: {node: '>=0.6'} - qs@6.13.1: - resolution: {integrity: sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==} - engines: {node: '>=0.6'} - - queue-tick@1.0.1: - resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} - - quick-lru@5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} - randomatic@3.1.1: resolution: {integrity: sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==} engines: {node: '>= 0.10.0'} @@ -2663,9 +2443,6 @@ packages: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true - readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} @@ -2674,11 +2451,8 @@ packages: resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} engines: {node: '>= 20.19.0'} - regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - - registry-auth-token@5.0.3: - resolution: {integrity: sha512-1bpc9IyC+e+CNFRaWyn77tk4xGG4PPUyfakSmA6F6cvUDjrm58dfyJ3II+9yb10EDkHoy1LaPSmHaWLOH3m6HA==} + registry-auth-token@5.1.1: + resolution: {integrity: sha512-P7B4+jq8DeD2nMsAcdfaqHbssgHtZ7Z5+++a5ask90fvmJ8p5je4mOa+wzu+DB4vQ5tdJV/xywY+UnVFeQLV5Q==} engines: {node: '>=14'} registry-url@6.0.1: @@ -2692,8 +2466,8 @@ packages: remark-frontmatter@5.0.0: resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==} - remark-gfm@4.0.0: - resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} + remark-gfm@4.0.1: + resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} remark-html@16.0.1: resolution: {integrity: sha512-B9JqA5i0qZe0Nsf49q3OXyGvyXuZFDzAP2iOFLEumymuYJITVpiH1IgsTEwTpdptDmZlMDMWeDmSawdaJIGCXQ==} @@ -2708,48 +2482,46 @@ packages: resolution: {integrity: sha512-ly3OKwKu+3T55DjP5PjIMzxgz9lFx6dQnBmAIxryZyRKl8f22juy12ShOyuq8WrQE5UlFOseZgQZDua0iF9DHw==} engines: {node: '>=4'} - resolve-alpn@1.2.1: - resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} - resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - responselike@3.0.0: - resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} - engines: {node: '>=14.16'} - - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + rimraf@6.1.3: + resolution: {integrity: sha512-LKg+Cr2ZF61fkcaK1UdkH2yEBBKnYjTyWzTJT6KNPcSPaiT7HSdhtMXQuN5wkTX0Xu72KQ1l8S42rlmexS2hSA==} + engines: {node: 20 || >=22} hasBin: true - rolldown@1.0.0-beta.52: - resolution: {integrity: sha512-Hbnpljue+JhMJrlOjQ1ixp9me7sUec7OjFvS+A1Qm8k8Xyxmw3ZhxFu7LlSXW1s9AX3POE9W9o2oqCEeR5uDmg==} + rolldown@1.0.0-rc.11: + resolution: {integrity: sha512-NRjoKMusSjfRbSYiH3VSumlkgFe7kYAa3pzVOsVYVFY3zb5d7nS+a3KGQ7hJKXuYWbzJKPVQ9Wxq2UvyK+ENpw==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true rope-sequence@1.3.4: resolution: {integrity: sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==} - rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + run-async@3.0.0: + resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==} + engines: {node: '>=0.12.0'} - safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + rxjs@7.8.2: + resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.6.3: - resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + semver@7.7.4: + resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} engines: {node: '>=10'} hasBin: true - set-function-length@1.1.1: - resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} shebang-command@2.0.0: @@ -2760,8 +2532,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - side-channel-list@1.0.0: - resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + side-channel-list@1.0.1: + resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==} engines: {node: '>= 0.4'} side-channel-map@1.0.1: @@ -2772,9 +2544,6 @@ packages: resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} engines: {node: '>= 0.4'} - side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} - side-channel@1.1.0: resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} engines: {node: '>= 0.4'} @@ -2796,27 +2565,17 @@ packages: space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - spawn-wrap@2.0.0: - resolution: {integrity: sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==} + spawn-wrap@3.0.0: + resolution: {integrity: sha512-z+s5vv4KzFPJVddGab0xX2n7kQPGMdNUX5l9T8EJqsXdKTWpcxmAqWHpsgHEXoC1taGBCc7b79bi62M5kdbrxQ==} engines: {node: '>=8'} - sprintf-js@1.0.3: - resolution: {integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=} - - streamx@2.21.1: - resolution: {integrity: sha512-PhP9wUnFLa+91CPy3N6tiQsK+gnYyUNuk15S3YG/zjYE7RuPeCjJngqnzpC31ow0lzBHQ+QGO4cNJnd0djYUsw==} + streamx@2.25.0: + resolution: {integrity: sha512-0nQuG6jf1w+wddNEEXCF4nTg3LtufWINB5eFEN+5TNZW7KWJp6x87+JFL43vaAUPyCfH1wID+mNVyW6OHtFamg==} string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - - string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} @@ -2827,26 +2586,22 @@ packages: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} - strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} - - strip-indent@4.0.0: - resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} + strip-indent@4.1.1: + resolution: {integrity: sha512-SlyRoSkdh1dYP0PzclLE7r0M9sgbFKKMFXpFRUMNuKhQSbC6VQIGzq3E0qsfvGJaUFJPGv6Ws1NZ/haTAjfbMA==} engines: {node: '>=12'} strip-json-comments@2.0.1: resolution: {integrity: sha1-PFMZQukIwml8DsNEhYwobHygpgo=} engines: {node: '>=0.10.0'} - strnum@1.0.5: - resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} + strnum@1.1.2: + resolution: {integrity: sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==} - strnum@2.1.2: - resolution: {integrity: sha512-l63NF9y/cLROq/yqKXSLtcMeeyOfnSQlfMSlzFt/K73oIaD8DGaQWd7Z34X9GPiKqP5rbSh84Hl4bOlLcjiSrQ==} + strnum@2.2.3: + resolution: {integrity: sha512-oKx6RUCuHfT3oyVjtnrmn19H1SiCqgJSg+54XqURKp5aCMbrXrhLjRN9TjuwMjiYstZ0MzDrHqkGZ5dFTKd+zg==} - strtok3@10.3.4: - resolution: {integrity: sha512-KIy5nylvC5le1OdaaoCJ07L+8iQzJHGH6pWDuzS+d07Cu7n1MZ2x26P8ZKIWfbK02+XIL8Mp4RkWeqdUCrDMfg==} + strtok3@10.3.5: + resolution: {integrity: sha512-ki4hZQfh5rX0QDLLkOCj+h+CVNkqmp/CMf8v8kZpkNVK6jGQooMytqzLZYUVYIZcFZ6yDB70EfD8POcFXiF5oA==} engines: {node: '>=18'} strtok3@9.1.1: @@ -2859,11 +2614,18 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - tar-stream@3.1.7: - resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} + tagged-tag@1.0.0: + resolution: {integrity: sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==} + engines: {node: '>=20'} - text-decoder@1.2.3: - resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==} + tar-stream@3.2.0: + resolution: {integrity: sha512-ojzvCvVaNp6aOTFmG7jaRD0meowIAuPc3cMMhSgKiVWws1GyHbGd/xvnyuRKcKlMpt3qvxx6r0hreCNITP9hIg==} + + teex@1.0.1: + resolution: {integrity: sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==} + + text-decoder@1.2.7: + resolution: {integrity: sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==} threads@1.7.0: resolution: {integrity: sha512-Mx5NBSHX3sQYR6iI9VYbgHKBLisyB+xROCBGjjWm1O9wb9vfLxdaGtmT/KCjUqMsSNW6nERzCW3T6H43LqjDZQ==} @@ -2874,26 +2636,22 @@ packages: tiny-worker@2.3.0: resolution: {integrity: sha512-pJ70wq5EAqTAEl9IkGzA+fN0836rycEuz2Cn6yeZ6FRzlVS5IDOkFHpIoEsksPRQV34GDqXm65+OlnZqUSyK2g==} - token-types@6.0.0: - resolution: {integrity: sha512-lbDrTLVsHhOMljPscd0yitpozq7Ga2M5Cvez5AjGg8GASBjtt6iERCAJ93yommPmz62fb45oFIXHEZ3u9bfJEA==} - engines: {node: '>=14.16'} + tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} - token-types@6.1.1: - resolution: {integrity: sha512-kh9LVIWH5CnL63Ipf0jhlBIy0UsrMj/NJDfpsy1SqOXlLKEVyXXYrnFxFT1yOOYVGBSApeVnjPw/sBz5BfEjAQ==} + token-types@6.1.2: + resolution: {integrity: sha512-dRXchy+C0IgK8WPC6xvCHFRIWYUbqqdEIKPaKo/AcTUNzwLTK6AH7RjdLWsEZcAN/TBdtfUw3PYEgPr5VPr6ww==} engines: {node: '>=14.16'} - tree-kill@1.2.2: - resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} - hasBin: true - trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + tslib@2.3.0: + resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==} tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} @@ -2906,23 +2664,33 @@ packages: turndown-plugin-gfm@1.0.2: resolution: {integrity: sha512-vwz9tfvF7XN/jE0dGoBei3FXWuvll78ohzCZQuOb+ZjWrs3a0XhQVomJEb2Qh4VHTPNRO4GPZh0V7VRbiWwkRg==} - turndown@7.2.0: - resolution: {integrity: sha512-eCZGBN4nNNqM9Owkv9HAtWRYfLA4h909E/WGAWWBpmB275ehNhZyk87/Tpvjbp0jjNl9XwCsbe6bm6CqFsgD+A==} + turndown@7.2.4: + resolution: {integrity: sha512-I8yFsfRzmzK0WV1pNNOA4A7y4RDfFxPRxb3t+e3ui14qSGOxGtiSP6GjeX+Y6CHb7HYaFj7ECUD7VE5kQMZWGQ==} + engines: {node: '>=18', npm: '>=9'} + + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} type-fest@2.19.0: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} - type-fest@4.30.2: - resolution: {integrity: sha512-UJShLPYi1aWqCdq9HycOL/gwsuqda1OISdBO3t8RlXQC4QvtuIz4b5FCfe2dQIWEpmlRExKmcTBfP1r9bhY7ig==} - engines: {node: '>=16'} - type-fest@4.41.0: resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} engines: {node: '>=16'} - typescript@5.9.3: - resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + type-fest@5.6.0: + resolution: {integrity: sha512-8ZiHFm91orbSAe2PSAiSVBVko18pbhbiB3U9GglSzF/zCGkR+rxpHx6sEMCUm4kxY4LjDIUGgCfUMtwfZfjfUA==} + engines: {node: '>=20'} + + typescript@6.0.2: + resolution: {integrity: sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==} + engines: {node: '>=14.17'} + hasBin: true + + typescript@6.0.3: + resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==} engines: {node: '>=14.17'} hasBin: true @@ -2934,21 +2702,21 @@ packages: engines: {node: '>=0.8.0'} hasBin: true - uint8array-extras@1.4.0: - resolution: {integrity: sha512-ZPtzy0hu4cZjv3z5NW9gfKnNLjoz4y6uv4HlelAjDK7sY/xOkKZv9xK/WQpcsBB3jEybChz9DPC2U/+cusjJVQ==} + uint8array-extras@1.5.0: + resolution: {integrity: sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==} engines: {node: '>=18'} - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - undici-types@6.20.0: - resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} + undici-types@7.19.2: + resolution: {integrity: sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==} unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} - unist-util-is@6.0.0: - resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + unist-util-is@6.0.1: + resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} unist-util-position@5.0.0: resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} @@ -2956,15 +2724,11 @@ packages: unist-util-stringify-position@4.0.0: resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - unist-util-visit-parents@6.0.1: - resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + unist-util-visit-parents@6.0.2: + resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} - unist-util-visit@5.0.0: - resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} - - universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} + unist-util-visit@5.1.0: + resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==} unload@2.4.1: resolution: {integrity: sha512-IViSAm8Z3sRBYA+9wc0fLQmU9Nrxb16rcDmIiR6Y9LJSZzI7QY5QsDhqPpKOjAn0O9/kfK1TfNEMMAGPTIraPw==} @@ -2972,9 +2736,6 @@ packages: upper-case@1.1.3: resolution: {integrity: sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=} - url@0.11.3: - resolution: {integrity: sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==} - url@0.11.4: resolution: {integrity: sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==} engines: {node: '>= 0.4'} @@ -2986,8 +2747,8 @@ packages: resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} hasBin: true - vfile-message@4.0.2: - resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + vfile-message@4.0.3: + resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} @@ -2995,10 +2756,6 @@ packages: w3c-keyname@2.2.8: resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} - webidl-conversions@7.0.0: - resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} - engines: {node: '>=12'} - whatwg-mimetype@3.0.0: resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} engines: {node: '>=12'} @@ -3008,24 +2765,17 @@ packages: engines: {node: '>= 8'} hasBin: true - which@5.0.0: - resolution: {integrity: sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==} - engines: {node: ^18.17.0 || >=20.5.0} + which@6.0.1: + resolution: {integrity: sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==} + engines: {node: ^20.17.0 || >=22.9.0} hasBin: true - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - - wrappy@1.0.2: - resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} - - ws@8.18.3: - resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} + ws@8.20.0: + resolution: {integrity: sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -3044,8 +2794,8 @@ packages: xterm@5.3.0: resolution: {integrity: sha512-8QqjlekLUFTrU6x7xck1MsPzPA571K5zNqWm0M0oroYEWVOptZ0+ubQSkQ3uxIEhcIHRujJy6emDWX4A7qyFzg==} - yaml@2.8.2: - resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} + yaml@2.8.4: + resolution: {integrity: sha512-ml/JPOj9fOQK8RNnWojA67GbZ0ApXAUlN2UQclwv2eVgTgn7O9gg9o7paZWKMp4g0H3nTLtS9LVzhkpOFIKzog==} engines: {node: '>= 14.6'} hasBin: true @@ -3053,6 +2803,13 @@ packages: resolution: {integrity: sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==} engines: {node: ^20.19.0 || ^22.12.0 || >=23} + yoctocolors-cjs@2.1.3: + resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} + engines: {node: '>=18'} + + zrender@5.6.1: + resolution: {integrity: sha512-OFXkDJKcrlx5su2XbzJvj/34Q3m6PvyCZkVPHGYpcCJ52ek4U/ymZyfuV1nKE23AyBJ51E/6Yr0mhZ7xGTO4ag==} + zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -3062,67 +2819,55 @@ snapshots: '@api.global/typedrequest-interfaces@3.0.19': {} - '@api.global/typedrequest@3.1.10': + '@api.global/typedrequest@3.3.0': dependencies: '@api.global/typedrequest-interfaces': 3.0.19 '@push.rocks/isounique': 1.0.5 - '@push.rocks/lik': 6.2.2 - '@push.rocks/smartbuffer': 3.0.4 - '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/lik': 6.4.1 + '@push.rocks/smartbuffer': 3.0.6 + '@push.rocks/smartdelay': 3.1.0 '@push.rocks/smartguard': 3.1.0 - '@push.rocks/smartpromise': 4.2.3 - '@push.rocks/webrequest': 3.0.37 + '@push.rocks/smartpromise': 4.2.4 + '@push.rocks/webrequest': 4.0.5 '@push.rocks/webstream': 1.0.10 - '@api.global/typedrequest@3.2.5': + '@api.global/typedserver@8.4.6(@tiptap/pm@2.27.2)': dependencies: + '@api.global/typedrequest': 3.3.0 '@api.global/typedrequest-interfaces': 3.0.19 - '@push.rocks/isounique': 1.0.5 - '@push.rocks/lik': 6.2.2 - '@push.rocks/smartbuffer': 3.0.4 - '@push.rocks/smartdelay': 3.0.5 - '@push.rocks/smartguard': 3.1.0 - '@push.rocks/smartpromise': 4.2.3 - '@push.rocks/webrequest': 3.0.37 - '@push.rocks/webstream': 1.0.10 - - '@api.global/typedserver@7.11.1(@tiptap/pm@2.27.1)': - dependencies: - '@api.global/typedrequest': 3.2.5 - '@api.global/typedrequest-interfaces': 3.0.19 - '@api.global/typedsocket': 4.1.0(@push.rocks/smartserve@1.4.0) - '@cloudflare/workers-types': 4.20251217.0 - '@design.estate/dees-catalog': 3.3.1(@tiptap/pm@2.27.1) + '@api.global/typedsocket': 4.1.2(@push.rocks/smartserve@2.0.4) + '@cloudflare/workers-types': 4.20260502.1 + '@design.estate/dees-catalog': 3.81.0(@tiptap/pm@2.27.2) '@design.estate/dees-comms': 1.0.30 - '@push.rocks/lik': 6.2.2 - '@push.rocks/smartdelay': 3.0.5 - '@push.rocks/smartenv': 6.0.0 + '@push.rocks/lik': 6.4.1 + '@push.rocks/smartdelay': 3.1.0 + '@push.rocks/smartenv': 6.1.0 '@push.rocks/smartfeed': 1.4.0 - '@push.rocks/smartfile': 13.1.2 - '@push.rocks/smartfs': 1.3.1 - '@push.rocks/smartjson': 5.2.0 - '@push.rocks/smartlog': 3.1.10 + '@push.rocks/smartfile': 13.1.3 + '@push.rocks/smartfs': 1.5.1 + '@push.rocks/smartjson': 6.0.1 + '@push.rocks/smartlog': 3.2.2 '@push.rocks/smartlog-destination-devtools': 1.0.12 '@push.rocks/smartlog-interfaces': 3.0.2 '@push.rocks/smartmanifest': 2.0.2 '@push.rocks/smartmatch': 2.0.0 '@push.rocks/smartmime': 2.0.4 - '@push.rocks/smartntml': 2.0.8 + '@push.rocks/smartntml': 2.0.9 '@push.rocks/smartopen': 2.0.0 '@push.rocks/smartpath': 6.0.0 - '@push.rocks/smartpromise': 4.2.3 - '@push.rocks/smartrequest': 5.0.1 + '@push.rocks/smartpromise': 4.2.4 + '@push.rocks/smartrequest': 5.0.3 '@push.rocks/smartrx': 3.0.10 - '@push.rocks/smartserve': 1.4.0 - '@push.rocks/smartsitemap': 2.0.4 - '@push.rocks/smartstream': 3.2.5 - '@push.rocks/smarttime': 4.1.1 - '@push.rocks/smartwatch': 6.3.0 - '@push.rocks/taskbuffer': 3.5.0 - '@push.rocks/webrequest': 4.0.1 - '@push.rocks/webstore': 2.0.20 - '@tsclass/tsclass': 9.3.0 - lit: 3.3.1 + '@push.rocks/smartserve': 2.0.4 + '@push.rocks/smartsitemap': 4.0.2 + '@push.rocks/smartstream': 3.4.2 + '@push.rocks/smarttime': 4.2.3 + '@push.rocks/smartwatch': 6.4.0 + '@push.rocks/taskbuffer': 8.0.2 + '@push.rocks/webrequest': 4.0.5 + '@push.rocks/webstore': 2.0.22 + '@tsclass/tsclass': 9.5.1 + lit: 3.3.2 transitivePeerDependencies: - '@nuxt/kit' - '@tiptap/pm' @@ -3132,37 +2877,37 @@ snapshots: - utf-8-validate - vue - '@api.global/typedsocket@4.1.0(@push.rocks/smartserve@1.4.0)': + '@api.global/typedsocket@4.1.2(@push.rocks/smartserve@2.0.4)': dependencies: - '@api.global/typedrequest': 3.2.5 + '@api.global/typedrequest': 3.3.0 '@api.global/typedrequest-interfaces': 3.0.19 '@push.rocks/isohash': 2.0.1 - '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartdelay': 3.1.0 '@push.rocks/smartjson': 5.2.0 - '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartpromise': 4.2.4 '@push.rocks/smartrx': 3.0.10 - '@push.rocks/smartserve': 1.4.0 - '@push.rocks/smartstring': 4.1.0 + '@push.rocks/smartserve': 2.0.4 + '@push.rocks/smartstring': 4.1.1 '@push.rocks/smarturl': 3.1.0 '@aws-crypto/crc32@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.714.0 + '@aws-sdk/types': 3.973.8 tslib: 2.8.1 '@aws-crypto/crc32c@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.714.0 + '@aws-sdk/types': 3.973.8 tslib: 2.8.1 '@aws-crypto/sha1-browser@5.2.0': dependencies: '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.714.0 - '@aws-sdk/util-locate-window': 3.693.0 + '@aws-sdk/types': 3.973.8 + '@aws-sdk/util-locate-window': 3.965.5 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 @@ -3171,15 +2916,15 @@ snapshots: '@aws-crypto/sha256-js': 5.2.0 '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.714.0 - '@aws-sdk/util-locate-window': 3.693.0 + '@aws-sdk/types': 3.973.8 + '@aws-sdk/util-locate-window': 3.965.5 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 '@aws-crypto/sha256-js@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.714.0 + '@aws-sdk/types': 3.973.8 tslib: 2.8.1 '@aws-crypto/supports-web-crypto@5.2.0': @@ -3188,512 +2933,448 @@ snapshots: '@aws-crypto/util@5.2.0': dependencies: - '@aws-sdk/types': 3.714.0 + '@aws-sdk/types': 3.973.8 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 - '@aws-sdk/client-s3@3.715.0': + '@aws-sdk/client-s3@3.1041.0': dependencies: '@aws-crypto/sha1-browser': 5.2.0 '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.714.0(@aws-sdk/client-sts@3.714.0) - '@aws-sdk/client-sts': 3.714.0 - '@aws-sdk/core': 3.714.0 - '@aws-sdk/credential-provider-node': 3.714.0(@aws-sdk/client-sso-oidc@3.714.0(@aws-sdk/client-sts@3.714.0))(@aws-sdk/client-sts@3.714.0) - '@aws-sdk/middleware-bucket-endpoint': 3.714.0 - '@aws-sdk/middleware-expect-continue': 3.714.0 - '@aws-sdk/middleware-flexible-checksums': 3.715.0 - '@aws-sdk/middleware-host-header': 3.714.0 - '@aws-sdk/middleware-location-constraint': 3.714.0 - '@aws-sdk/middleware-logger': 3.714.0 - '@aws-sdk/middleware-recursion-detection': 3.714.0 - '@aws-sdk/middleware-sdk-s3': 3.714.0 - '@aws-sdk/middleware-ssec': 3.714.0 - '@aws-sdk/middleware-user-agent': 3.714.0 - '@aws-sdk/region-config-resolver': 3.714.0 - '@aws-sdk/signature-v4-multi-region': 3.714.0 - '@aws-sdk/types': 3.714.0 - '@aws-sdk/util-endpoints': 3.714.0 - '@aws-sdk/util-user-agent-browser': 3.714.0 - '@aws-sdk/util-user-agent-node': 3.714.0 - '@aws-sdk/xml-builder': 3.709.0 - '@smithy/config-resolver': 3.0.13 - '@smithy/core': 2.5.5 - '@smithy/eventstream-serde-browser': 3.0.14 - '@smithy/eventstream-serde-config-resolver': 3.0.11 - '@smithy/eventstream-serde-node': 3.0.13 - '@smithy/fetch-http-handler': 4.1.2 - '@smithy/hash-blob-browser': 3.1.10 - '@smithy/hash-node': 3.0.11 - '@smithy/hash-stream-node': 3.1.10 - '@smithy/invalid-dependency': 3.0.11 - '@smithy/md5-js': 3.0.11 - '@smithy/middleware-content-length': 3.0.13 - '@smithy/middleware-endpoint': 3.2.5 - '@smithy/middleware-retry': 3.0.30 - '@smithy/middleware-serde': 3.0.11 - '@smithy/middleware-stack': 3.0.11 - '@smithy/node-config-provider': 3.1.12 - '@smithy/node-http-handler': 3.3.2 - '@smithy/protocol-http': 4.1.8 - '@smithy/smithy-client': 3.5.0 - '@smithy/types': 3.7.2 - '@smithy/url-parser': 3.0.11 - '@smithy/util-base64': 3.0.0 - '@smithy/util-body-length-browser': 3.0.0 - '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.30 - '@smithy/util-defaults-mode-node': 3.0.30 - '@smithy/util-endpoints': 2.1.7 - '@smithy/util-middleware': 3.0.11 - '@smithy/util-retry': 3.0.11 - '@smithy/util-stream': 3.3.2 - '@smithy/util-utf8': 3.0.0 - '@smithy/util-waiter': 3.2.0 + '@aws-sdk/core': 3.974.8 + '@aws-sdk/credential-provider-node': 3.972.39 + '@aws-sdk/middleware-bucket-endpoint': 3.972.10 + '@aws-sdk/middleware-expect-continue': 3.972.10 + '@aws-sdk/middleware-flexible-checksums': 3.974.16 + '@aws-sdk/middleware-host-header': 3.972.10 + '@aws-sdk/middleware-location-constraint': 3.972.10 + '@aws-sdk/middleware-logger': 3.972.10 + '@aws-sdk/middleware-recursion-detection': 3.972.11 + '@aws-sdk/middleware-sdk-s3': 3.972.37 + '@aws-sdk/middleware-ssec': 3.972.10 + '@aws-sdk/middleware-user-agent': 3.972.38 + '@aws-sdk/region-config-resolver': 3.972.13 + '@aws-sdk/signature-v4-multi-region': 3.996.25 + '@aws-sdk/types': 3.973.8 + '@aws-sdk/util-endpoints': 3.996.8 + '@aws-sdk/util-user-agent-browser': 3.972.10 + '@aws-sdk/util-user-agent-node': 3.973.24 + '@smithy/config-resolver': 4.4.17 + '@smithy/core': 3.23.17 + '@smithy/eventstream-serde-browser': 4.2.14 + '@smithy/eventstream-serde-config-resolver': 4.3.14 + '@smithy/eventstream-serde-node': 4.2.14 + '@smithy/fetch-http-handler': 5.3.17 + '@smithy/hash-blob-browser': 4.2.15 + '@smithy/hash-node': 4.2.14 + '@smithy/hash-stream-node': 4.2.14 + '@smithy/invalid-dependency': 4.2.14 + '@smithy/md5-js': 4.2.14 + '@smithy/middleware-content-length': 4.2.14 + '@smithy/middleware-endpoint': 4.4.32 + '@smithy/middleware-retry': 4.5.7 + '@smithy/middleware-serde': 4.2.20 + '@smithy/middleware-stack': 4.2.14 + '@smithy/node-config-provider': 4.3.14 + '@smithy/node-http-handler': 4.6.1 + '@smithy/protocol-http': 5.3.14 + '@smithy/smithy-client': 4.12.13 + '@smithy/types': 4.14.1 + '@smithy/url-parser': 4.2.14 + '@smithy/util-base64': 4.3.2 + '@smithy/util-body-length-browser': 4.2.2 + '@smithy/util-body-length-node': 4.2.3 + '@smithy/util-defaults-mode-browser': 4.3.49 + '@smithy/util-defaults-mode-node': 4.2.54 + '@smithy/util-endpoints': 3.4.2 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-retry': 4.3.8 + '@smithy/util-stream': 4.5.25 + '@smithy/util-utf8': 4.2.2 + '@smithy/util-waiter': 4.3.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso-oidc@3.714.0(@aws-sdk/client-sts@3.714.0)': + '@aws-sdk/core@3.974.8': dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sts': 3.714.0 - '@aws-sdk/core': 3.714.0 - '@aws-sdk/credential-provider-node': 3.714.0(@aws-sdk/client-sso-oidc@3.714.0(@aws-sdk/client-sts@3.714.0))(@aws-sdk/client-sts@3.714.0) - '@aws-sdk/middleware-host-header': 3.714.0 - '@aws-sdk/middleware-logger': 3.714.0 - '@aws-sdk/middleware-recursion-detection': 3.714.0 - '@aws-sdk/middleware-user-agent': 3.714.0 - '@aws-sdk/region-config-resolver': 3.714.0 - '@aws-sdk/types': 3.714.0 - '@aws-sdk/util-endpoints': 3.714.0 - '@aws-sdk/util-user-agent-browser': 3.714.0 - '@aws-sdk/util-user-agent-node': 3.714.0 - '@smithy/config-resolver': 3.0.13 - '@smithy/core': 2.5.5 - '@smithy/fetch-http-handler': 4.1.2 - '@smithy/hash-node': 3.0.11 - '@smithy/invalid-dependency': 3.0.11 - '@smithy/middleware-content-length': 3.0.13 - '@smithy/middleware-endpoint': 3.2.5 - '@smithy/middleware-retry': 3.0.30 - '@smithy/middleware-serde': 3.0.11 - '@smithy/middleware-stack': 3.0.11 - '@smithy/node-config-provider': 3.1.12 - '@smithy/node-http-handler': 3.3.2 - '@smithy/protocol-http': 4.1.8 - '@smithy/smithy-client': 3.5.0 - '@smithy/types': 3.7.2 - '@smithy/url-parser': 3.0.11 - '@smithy/util-base64': 3.0.0 - '@smithy/util-body-length-browser': 3.0.0 - '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.30 - '@smithy/util-defaults-mode-node': 3.0.30 - '@smithy/util-endpoints': 2.1.7 - '@smithy/util-middleware': 3.0.11 - '@smithy/util-retry': 3.0.11 - '@smithy/util-utf8': 3.0.0 + '@aws-sdk/types': 3.973.8 + '@aws-sdk/xml-builder': 3.972.22 + '@smithy/core': 3.23.17 + '@smithy/node-config-provider': 4.3.14 + '@smithy/property-provider': 4.2.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/signature-v4': 5.3.14 + '@smithy/smithy-client': 4.12.13 + '@smithy/types': 4.14.1 + '@smithy/util-base64': 4.3.2 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-retry': 4.3.8 + '@smithy/util-utf8': 4.2.2 + tslib: 2.8.1 + + '@aws-sdk/crc64-nvme@3.972.7': + dependencies: + '@smithy/types': 4.14.1 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-env@3.972.34': + dependencies: + '@aws-sdk/core': 3.974.8 + '@aws-sdk/types': 3.973.8 + '@smithy/property-provider': 4.2.14 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-http@3.972.36': + dependencies: + '@aws-sdk/core': 3.974.8 + '@aws-sdk/types': 3.973.8 + '@smithy/fetch-http-handler': 5.3.17 + '@smithy/node-http-handler': 4.6.1 + '@smithy/property-provider': 4.2.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/smithy-client': 4.12.13 + '@smithy/types': 4.14.1 + '@smithy/util-stream': 4.5.25 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-ini@3.972.38': + dependencies: + '@aws-sdk/core': 3.974.8 + '@aws-sdk/credential-provider-env': 3.972.34 + '@aws-sdk/credential-provider-http': 3.972.36 + '@aws-sdk/credential-provider-login': 3.972.38 + '@aws-sdk/credential-provider-process': 3.972.34 + '@aws-sdk/credential-provider-sso': 3.972.38 + '@aws-sdk/credential-provider-web-identity': 3.972.38 + '@aws-sdk/nested-clients': 3.997.6 + '@aws-sdk/types': 3.973.8 + '@smithy/credential-provider-imds': 4.2.14 + '@smithy/property-provider': 4.2.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso@3.714.0': + '@aws-sdk/credential-provider-login@3.972.38': dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.714.0 - '@aws-sdk/middleware-host-header': 3.714.0 - '@aws-sdk/middleware-logger': 3.714.0 - '@aws-sdk/middleware-recursion-detection': 3.714.0 - '@aws-sdk/middleware-user-agent': 3.714.0 - '@aws-sdk/region-config-resolver': 3.714.0 - '@aws-sdk/types': 3.714.0 - '@aws-sdk/util-endpoints': 3.714.0 - '@aws-sdk/util-user-agent-browser': 3.714.0 - '@aws-sdk/util-user-agent-node': 3.714.0 - '@smithy/config-resolver': 3.0.13 - '@smithy/core': 2.5.5 - '@smithy/fetch-http-handler': 4.1.2 - '@smithy/hash-node': 3.0.11 - '@smithy/invalid-dependency': 3.0.11 - '@smithy/middleware-content-length': 3.0.13 - '@smithy/middleware-endpoint': 3.2.5 - '@smithy/middleware-retry': 3.0.30 - '@smithy/middleware-serde': 3.0.11 - '@smithy/middleware-stack': 3.0.11 - '@smithy/node-config-provider': 3.1.12 - '@smithy/node-http-handler': 3.3.2 - '@smithy/protocol-http': 4.1.8 - '@smithy/smithy-client': 3.5.0 - '@smithy/types': 3.7.2 - '@smithy/url-parser': 3.0.11 - '@smithy/util-base64': 3.0.0 - '@smithy/util-body-length-browser': 3.0.0 - '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.30 - '@smithy/util-defaults-mode-node': 3.0.30 - '@smithy/util-endpoints': 2.1.7 - '@smithy/util-middleware': 3.0.11 - '@smithy/util-retry': 3.0.11 - '@smithy/util-utf8': 3.0.0 + '@aws-sdk/core': 3.974.8 + '@aws-sdk/nested-clients': 3.997.6 + '@aws-sdk/types': 3.973.8 + '@smithy/property-provider': 4.2.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sts@3.714.0': + '@aws-sdk/credential-provider-node@3.972.39': dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.714.0(@aws-sdk/client-sts@3.714.0) - '@aws-sdk/core': 3.714.0 - '@aws-sdk/credential-provider-node': 3.714.0(@aws-sdk/client-sso-oidc@3.714.0(@aws-sdk/client-sts@3.714.0))(@aws-sdk/client-sts@3.714.0) - '@aws-sdk/middleware-host-header': 3.714.0 - '@aws-sdk/middleware-logger': 3.714.0 - '@aws-sdk/middleware-recursion-detection': 3.714.0 - '@aws-sdk/middleware-user-agent': 3.714.0 - '@aws-sdk/region-config-resolver': 3.714.0 - '@aws-sdk/types': 3.714.0 - '@aws-sdk/util-endpoints': 3.714.0 - '@aws-sdk/util-user-agent-browser': 3.714.0 - '@aws-sdk/util-user-agent-node': 3.714.0 - '@smithy/config-resolver': 3.0.13 - '@smithy/core': 2.5.5 - '@smithy/fetch-http-handler': 4.1.2 - '@smithy/hash-node': 3.0.11 - '@smithy/invalid-dependency': 3.0.11 - '@smithy/middleware-content-length': 3.0.13 - '@smithy/middleware-endpoint': 3.2.5 - '@smithy/middleware-retry': 3.0.30 - '@smithy/middleware-serde': 3.0.11 - '@smithy/middleware-stack': 3.0.11 - '@smithy/node-config-provider': 3.1.12 - '@smithy/node-http-handler': 3.3.2 - '@smithy/protocol-http': 4.1.8 - '@smithy/smithy-client': 3.5.0 - '@smithy/types': 3.7.2 - '@smithy/url-parser': 3.0.11 - '@smithy/util-base64': 3.0.0 - '@smithy/util-body-length-browser': 3.0.0 - '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.30 - '@smithy/util-defaults-mode-node': 3.0.30 - '@smithy/util-endpoints': 2.1.7 - '@smithy/util-middleware': 3.0.11 - '@smithy/util-retry': 3.0.11 - '@smithy/util-utf8': 3.0.0 + '@aws-sdk/credential-provider-env': 3.972.34 + '@aws-sdk/credential-provider-http': 3.972.36 + '@aws-sdk/credential-provider-ini': 3.972.38 + '@aws-sdk/credential-provider-process': 3.972.34 + '@aws-sdk/credential-provider-sso': 3.972.38 + '@aws-sdk/credential-provider-web-identity': 3.972.38 + '@aws-sdk/types': 3.973.8 + '@smithy/credential-provider-imds': 4.2.14 + '@smithy/property-provider': 4.2.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/core@3.714.0': + '@aws-sdk/credential-provider-process@3.972.34': dependencies: - '@aws-sdk/types': 3.714.0 - '@smithy/core': 2.5.5 - '@smithy/node-config-provider': 3.1.12 - '@smithy/property-provider': 3.1.11 - '@smithy/protocol-http': 4.1.8 - '@smithy/signature-v4': 4.2.4 - '@smithy/smithy-client': 3.5.0 - '@smithy/types': 3.7.2 - '@smithy/util-middleware': 3.0.11 - fast-xml-parser: 4.4.1 + '@aws-sdk/core': 3.974.8 + '@aws-sdk/types': 3.973.8 + '@smithy/property-provider': 4.2.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-env@3.714.0': + '@aws-sdk/credential-provider-sso@3.972.38': dependencies: - '@aws-sdk/core': 3.714.0 - '@aws-sdk/types': 3.714.0 - '@smithy/property-provider': 3.1.11 - '@smithy/types': 3.7.2 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-http@3.714.0': - dependencies: - '@aws-sdk/core': 3.714.0 - '@aws-sdk/types': 3.714.0 - '@smithy/fetch-http-handler': 4.1.2 - '@smithy/node-http-handler': 3.3.2 - '@smithy/property-provider': 3.1.11 - '@smithy/protocol-http': 4.1.8 - '@smithy/smithy-client': 3.5.0 - '@smithy/types': 3.7.2 - '@smithy/util-stream': 3.3.2 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-ini@3.714.0(@aws-sdk/client-sso-oidc@3.714.0(@aws-sdk/client-sts@3.714.0))(@aws-sdk/client-sts@3.714.0)': - dependencies: - '@aws-sdk/client-sts': 3.714.0 - '@aws-sdk/core': 3.714.0 - '@aws-sdk/credential-provider-env': 3.714.0 - '@aws-sdk/credential-provider-http': 3.714.0 - '@aws-sdk/credential-provider-process': 3.714.0 - '@aws-sdk/credential-provider-sso': 3.714.0(@aws-sdk/client-sso-oidc@3.714.0(@aws-sdk/client-sts@3.714.0)) - '@aws-sdk/credential-provider-web-identity': 3.714.0(@aws-sdk/client-sts@3.714.0) - '@aws-sdk/types': 3.714.0 - '@smithy/credential-provider-imds': 3.2.8 - '@smithy/property-provider': 3.1.11 - '@smithy/shared-ini-file-loader': 3.1.12 - '@smithy/types': 3.7.2 + '@aws-sdk/core': 3.974.8 + '@aws-sdk/nested-clients': 3.997.6 + '@aws-sdk/token-providers': 3.1041.0 + '@aws-sdk/types': 3.973.8 + '@smithy/property-provider': 4.2.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 tslib: 2.8.1 transitivePeerDependencies: - - '@aws-sdk/client-sso-oidc' - aws-crt - '@aws-sdk/credential-provider-node@3.714.0(@aws-sdk/client-sso-oidc@3.714.0(@aws-sdk/client-sts@3.714.0))(@aws-sdk/client-sts@3.714.0)': + '@aws-sdk/credential-provider-web-identity@3.972.38': dependencies: - '@aws-sdk/credential-provider-env': 3.714.0 - '@aws-sdk/credential-provider-http': 3.714.0 - '@aws-sdk/credential-provider-ini': 3.714.0(@aws-sdk/client-sso-oidc@3.714.0(@aws-sdk/client-sts@3.714.0))(@aws-sdk/client-sts@3.714.0) - '@aws-sdk/credential-provider-process': 3.714.0 - '@aws-sdk/credential-provider-sso': 3.714.0(@aws-sdk/client-sso-oidc@3.714.0(@aws-sdk/client-sts@3.714.0)) - '@aws-sdk/credential-provider-web-identity': 3.714.0(@aws-sdk/client-sts@3.714.0) - '@aws-sdk/types': 3.714.0 - '@smithy/credential-provider-imds': 3.2.8 - '@smithy/property-provider': 3.1.11 - '@smithy/shared-ini-file-loader': 3.1.12 - '@smithy/types': 3.7.2 + '@aws-sdk/core': 3.974.8 + '@aws-sdk/nested-clients': 3.997.6 + '@aws-sdk/types': 3.973.8 + '@smithy/property-provider': 4.2.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 tslib: 2.8.1 transitivePeerDependencies: - - '@aws-sdk/client-sso-oidc' - - '@aws-sdk/client-sts' - aws-crt - '@aws-sdk/credential-provider-process@3.714.0': + '@aws-sdk/middleware-bucket-endpoint@3.972.10': dependencies: - '@aws-sdk/core': 3.714.0 - '@aws-sdk/types': 3.714.0 - '@smithy/property-provider': 3.1.11 - '@smithy/shared-ini-file-loader': 3.1.12 - '@smithy/types': 3.7.2 + '@aws-sdk/types': 3.973.8 + '@aws-sdk/util-arn-parser': 3.972.3 + '@smithy/node-config-provider': 4.3.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 + '@smithy/util-config-provider': 4.2.2 tslib: 2.8.1 - '@aws-sdk/credential-provider-sso@3.714.0(@aws-sdk/client-sso-oidc@3.714.0(@aws-sdk/client-sts@3.714.0))': + '@aws-sdk/middleware-expect-continue@3.972.10': dependencies: - '@aws-sdk/client-sso': 3.714.0 - '@aws-sdk/core': 3.714.0 - '@aws-sdk/token-providers': 3.714.0(@aws-sdk/client-sso-oidc@3.714.0(@aws-sdk/client-sts@3.714.0)) - '@aws-sdk/types': 3.714.0 - '@smithy/property-provider': 3.1.11 - '@smithy/shared-ini-file-loader': 3.1.12 - '@smithy/types': 3.7.2 - tslib: 2.8.1 - transitivePeerDependencies: - - '@aws-sdk/client-sso-oidc' - - aws-crt - - '@aws-sdk/credential-provider-web-identity@3.714.0(@aws-sdk/client-sts@3.714.0)': - dependencies: - '@aws-sdk/client-sts': 3.714.0 - '@aws-sdk/core': 3.714.0 - '@aws-sdk/types': 3.714.0 - '@smithy/property-provider': 3.1.11 - '@smithy/types': 3.7.2 + '@aws-sdk/types': 3.973.8 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@aws-sdk/middleware-bucket-endpoint@3.714.0': - dependencies: - '@aws-sdk/types': 3.714.0 - '@aws-sdk/util-arn-parser': 3.693.0 - '@smithy/node-config-provider': 3.1.12 - '@smithy/protocol-http': 4.1.8 - '@smithy/types': 3.7.2 - '@smithy/util-config-provider': 3.0.0 - tslib: 2.8.1 - - '@aws-sdk/middleware-expect-continue@3.714.0': - dependencies: - '@aws-sdk/types': 3.714.0 - '@smithy/protocol-http': 4.1.8 - '@smithy/types': 3.7.2 - tslib: 2.8.1 - - '@aws-sdk/middleware-flexible-checksums@3.715.0': + '@aws-sdk/middleware-flexible-checksums@3.974.16': dependencies: '@aws-crypto/crc32': 5.2.0 '@aws-crypto/crc32c': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/core': 3.714.0 - '@aws-sdk/types': 3.714.0 - '@smithy/is-array-buffer': 3.0.0 - '@smithy/node-config-provider': 3.1.12 - '@smithy/protocol-http': 4.1.8 - '@smithy/types': 3.7.2 - '@smithy/util-middleware': 3.0.11 - '@smithy/util-stream': 3.3.2 - '@smithy/util-utf8': 3.0.0 + '@aws-sdk/core': 3.974.8 + '@aws-sdk/crc64-nvme': 3.972.7 + '@aws-sdk/types': 3.973.8 + '@smithy/is-array-buffer': 4.2.2 + '@smithy/node-config-provider': 4.3.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-stream': 4.5.25 + '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 - '@aws-sdk/middleware-host-header@3.714.0': + '@aws-sdk/middleware-host-header@3.972.10': dependencies: - '@aws-sdk/types': 3.714.0 - '@smithy/protocol-http': 4.1.8 - '@smithy/types': 3.7.2 + '@aws-sdk/types': 3.973.8 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@aws-sdk/middleware-location-constraint@3.714.0': + '@aws-sdk/middleware-location-constraint@3.972.10': dependencies: - '@aws-sdk/types': 3.714.0 - '@smithy/types': 3.7.2 + '@aws-sdk/types': 3.973.8 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@aws-sdk/middleware-logger@3.714.0': + '@aws-sdk/middleware-logger@3.972.10': dependencies: - '@aws-sdk/types': 3.714.0 - '@smithy/types': 3.7.2 + '@aws-sdk/types': 3.973.8 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@aws-sdk/middleware-recursion-detection@3.714.0': + '@aws-sdk/middleware-recursion-detection@3.972.11': dependencies: - '@aws-sdk/types': 3.714.0 - '@smithy/protocol-http': 4.1.8 - '@smithy/types': 3.7.2 + '@aws-sdk/types': 3.973.8 + '@aws/lambda-invoke-store': 0.2.4 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@aws-sdk/middleware-sdk-s3@3.714.0': + '@aws-sdk/middleware-sdk-s3@3.972.37': dependencies: - '@aws-sdk/core': 3.714.0 - '@aws-sdk/types': 3.714.0 - '@aws-sdk/util-arn-parser': 3.693.0 - '@smithy/core': 2.5.5 - '@smithy/node-config-provider': 3.1.12 - '@smithy/protocol-http': 4.1.8 - '@smithy/signature-v4': 4.2.4 - '@smithy/smithy-client': 3.5.0 - '@smithy/types': 3.7.2 - '@smithy/util-config-provider': 3.0.0 - '@smithy/util-middleware': 3.0.11 - '@smithy/util-stream': 3.3.2 - '@smithy/util-utf8': 3.0.0 + '@aws-sdk/core': 3.974.8 + '@aws-sdk/types': 3.973.8 + '@aws-sdk/util-arn-parser': 3.972.3 + '@smithy/core': 3.23.17 + '@smithy/node-config-provider': 4.3.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/signature-v4': 5.3.14 + '@smithy/smithy-client': 4.12.13 + '@smithy/types': 4.14.1 + '@smithy/util-config-provider': 4.2.2 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-stream': 4.5.25 + '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 - '@aws-sdk/middleware-ssec@3.714.0': + '@aws-sdk/middleware-ssec@3.972.10': dependencies: - '@aws-sdk/types': 3.714.0 - '@smithy/types': 3.7.2 + '@aws-sdk/types': 3.973.8 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@aws-sdk/middleware-user-agent@3.714.0': + '@aws-sdk/middleware-user-agent@3.972.38': dependencies: - '@aws-sdk/core': 3.714.0 - '@aws-sdk/types': 3.714.0 - '@aws-sdk/util-endpoints': 3.714.0 - '@smithy/core': 2.5.5 - '@smithy/protocol-http': 4.1.8 - '@smithy/types': 3.7.2 + '@aws-sdk/core': 3.974.8 + '@aws-sdk/types': 3.973.8 + '@aws-sdk/util-endpoints': 3.996.8 + '@smithy/core': 3.23.17 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 + '@smithy/util-retry': 4.3.8 tslib: 2.8.1 - '@aws-sdk/region-config-resolver@3.714.0': + '@aws-sdk/nested-clients@3.997.6': dependencies: - '@aws-sdk/types': 3.714.0 - '@smithy/node-config-provider': 3.1.12 - '@smithy/types': 3.7.2 - '@smithy/util-config-provider': 3.0.0 - '@smithy/util-middleware': 3.0.11 + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.974.8 + '@aws-sdk/middleware-host-header': 3.972.10 + '@aws-sdk/middleware-logger': 3.972.10 + '@aws-sdk/middleware-recursion-detection': 3.972.11 + '@aws-sdk/middleware-user-agent': 3.972.38 + '@aws-sdk/region-config-resolver': 3.972.13 + '@aws-sdk/signature-v4-multi-region': 3.996.25 + '@aws-sdk/types': 3.973.8 + '@aws-sdk/util-endpoints': 3.996.8 + '@aws-sdk/util-user-agent-browser': 3.972.10 + '@aws-sdk/util-user-agent-node': 3.973.24 + '@smithy/config-resolver': 4.4.17 + '@smithy/core': 3.23.17 + '@smithy/fetch-http-handler': 5.3.17 + '@smithy/hash-node': 4.2.14 + '@smithy/invalid-dependency': 4.2.14 + '@smithy/middleware-content-length': 4.2.14 + '@smithy/middleware-endpoint': 4.4.32 + '@smithy/middleware-retry': 4.5.7 + '@smithy/middleware-serde': 4.2.20 + '@smithy/middleware-stack': 4.2.14 + '@smithy/node-config-provider': 4.3.14 + '@smithy/node-http-handler': 4.6.1 + '@smithy/protocol-http': 5.3.14 + '@smithy/smithy-client': 4.12.13 + '@smithy/types': 4.14.1 + '@smithy/url-parser': 4.2.14 + '@smithy/util-base64': 4.3.2 + '@smithy/util-body-length-browser': 4.2.2 + '@smithy/util-body-length-node': 4.2.3 + '@smithy/util-defaults-mode-browser': 4.3.49 + '@smithy/util-defaults-mode-node': 4.2.54 + '@smithy/util-endpoints': 3.4.2 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-retry': 4.3.8 + '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt - '@aws-sdk/signature-v4-multi-region@3.714.0': + '@aws-sdk/region-config-resolver@3.972.13': dependencies: - '@aws-sdk/middleware-sdk-s3': 3.714.0 - '@aws-sdk/types': 3.714.0 - '@smithy/protocol-http': 4.1.8 - '@smithy/signature-v4': 4.2.4 - '@smithy/types': 3.7.2 + '@aws-sdk/types': 3.973.8 + '@smithy/config-resolver': 4.4.17 + '@smithy/node-config-provider': 4.3.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@aws-sdk/token-providers@3.714.0(@aws-sdk/client-sso-oidc@3.714.0(@aws-sdk/client-sts@3.714.0))': + '@aws-sdk/signature-v4-multi-region@3.996.25': dependencies: - '@aws-sdk/client-sso-oidc': 3.714.0(@aws-sdk/client-sts@3.714.0) - '@aws-sdk/types': 3.714.0 - '@smithy/property-provider': 3.1.11 - '@smithy/shared-ini-file-loader': 3.1.12 - '@smithy/types': 3.7.2 + '@aws-sdk/middleware-sdk-s3': 3.972.37 + '@aws-sdk/types': 3.973.8 + '@smithy/protocol-http': 5.3.14 + '@smithy/signature-v4': 5.3.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@aws-sdk/types@3.714.0': + '@aws-sdk/token-providers@3.1041.0': dependencies: - '@smithy/types': 3.7.2 + '@aws-sdk/core': 3.974.8 + '@aws-sdk/nested-clients': 3.997.6 + '@aws-sdk/types': 3.973.8 + '@smithy/property-provider': 4.2.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/types@3.973.8': + dependencies: + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@aws-sdk/util-arn-parser@3.693.0': + '@aws-sdk/util-arn-parser@3.972.3': dependencies: tslib: 2.8.1 - '@aws-sdk/util-endpoints@3.714.0': + '@aws-sdk/util-endpoints@3.996.8': dependencies: - '@aws-sdk/types': 3.714.0 - '@smithy/types': 3.7.2 - '@smithy/util-endpoints': 2.1.7 + '@aws-sdk/types': 3.973.8 + '@smithy/types': 4.14.1 + '@smithy/url-parser': 4.2.14 + '@smithy/util-endpoints': 3.4.2 tslib: 2.8.1 - '@aws-sdk/util-locate-window@3.693.0': + '@aws-sdk/util-locate-window@3.965.5': dependencies: tslib: 2.8.1 - '@aws-sdk/util-user-agent-browser@3.714.0': + '@aws-sdk/util-user-agent-browser@3.972.10': dependencies: - '@aws-sdk/types': 3.714.0 - '@smithy/types': 3.7.2 - bowser: 2.11.0 + '@aws-sdk/types': 3.973.8 + '@smithy/types': 4.14.1 + bowser: 2.14.1 tslib: 2.8.1 - '@aws-sdk/util-user-agent-node@3.714.0': + '@aws-sdk/util-user-agent-node@3.973.24': dependencies: - '@aws-sdk/middleware-user-agent': 3.714.0 - '@aws-sdk/types': 3.714.0 - '@smithy/node-config-provider': 3.1.12 - '@smithy/types': 3.7.2 + '@aws-sdk/middleware-user-agent': 3.972.38 + '@aws-sdk/types': 3.973.8 + '@smithy/node-config-provider': 4.3.14 + '@smithy/types': 4.14.1 + '@smithy/util-config-provider': 4.2.2 tslib: 2.8.1 - '@aws-sdk/xml-builder@3.709.0': + '@aws-sdk/xml-builder@3.972.22': dependencies: - '@smithy/types': 3.7.2 + '@nodable/entities': 2.1.0 + '@smithy/types': 4.14.1 + fast-xml-parser: 5.7.2 tslib: 2.8.1 - '@babel/runtime@7.23.4': - dependencies: - regenerator-runtime: 0.14.1 + '@aws/lambda-invoke-store@0.2.4': {} - '@babel/runtime@7.28.4': {} + '@babel/runtime@7.28.6': {} - '@borewit/text-codec@0.1.1': {} + '@borewit/text-codec@0.2.2': {} '@cfworker/json-schema@4.1.1': {} - '@cloudflare/workers-types@4.20251217.0': {} + '@cloudflare/workers-types@4.20260502.1': {} '@configvault.io/interfaces@1.0.17': dependencies: '@api.global/typedrequest-interfaces': 3.0.19 - '@design.estate/dees-catalog@3.3.1(@tiptap/pm@2.27.1)': + '@design.estate/dees-catalog@3.81.0(@tiptap/pm@2.27.2)': dependencies: - '@design.estate/dees-domtools': 2.3.6 - '@design.estate/dees-element': 2.1.3 - '@design.estate/dees-wcctools': 2.0.1 - '@fortawesome/fontawesome-svg-core': 7.1.0 - '@fortawesome/free-brands-svg-icons': 7.1.0 - '@fortawesome/free-regular-svg-icons': 7.1.0 - '@fortawesome/free-solid-svg-icons': 7.1.0 - '@push.rocks/smarti18n': 1.0.4 - '@push.rocks/smartpromise': 4.2.3 - '@push.rocks/smartstring': 4.1.0 - '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) - '@tiptap/extension-link': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))(@tiptap/pm@2.27.1) - '@tiptap/extension-text-align': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1)) - '@tiptap/extension-typography': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1)) - '@tiptap/extension-underline': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1)) - '@tiptap/starter-kit': 2.27.1 - '@tsclass/tsclass': 9.3.0 - '@webcontainer/api': 1.2.0 - apexcharts: 5.3.6 + '@design.estate/dees-domtools': 2.5.6 + '@design.estate/dees-element': 2.2.4 + '@design.estate/dees-wcctools': 3.9.0 + '@fortawesome/fontawesome-svg-core': 7.2.0 + '@fortawesome/free-brands-svg-icons': 7.2.0 + '@fortawesome/free-regular-svg-icons': 7.2.0 + '@fortawesome/free-solid-svg-icons': 7.2.0 + '@push.rocks/smarti18n': 1.1.0 + '@push.rocks/smartpromise': 4.2.4 + '@push.rocks/smartstring': 4.1.1 + '@tempfix/webcontainer__api': 1.6.1 + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + '@tiptap/extension-link': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2) + '@tiptap/extension-text-align': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) + '@tiptap/extension-typography': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) + '@tiptap/extension-underline': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) + '@tiptap/starter-kit': 2.27.2 + '@tsclass/tsclass': 9.5.1 + echarts: 5.6.0 highlight.js: 11.11.1 - ibantools: 4.5.1 - lit: 3.3.1 - lucide: 0.560.0 - monaco-editor: 0.52.2 + ibantools: 4.5.4 + lightweight-charts: 5.2.0 + lucide: 1.14.0 + monaco-editor: 0.55.1 pdfjs-dist: 4.10.38 xterm: 5.3.0 xterm-addon-fit: 0.8.0(xterm@5.3.0) @@ -3704,39 +3385,32 @@ snapshots: - supports-color - vue - '@design.estate/dees-comms@1.0.27': - dependencies: - '@api.global/typedrequest': 3.1.10 - '@api.global/typedrequest-interfaces': 3.0.19 - '@push.rocks/smartdelay': 3.0.5 - broadcast-channel: 7.0.0 - '@design.estate/dees-comms@1.0.30': dependencies: - '@api.global/typedrequest': 3.2.5 + '@api.global/typedrequest': 3.3.0 '@api.global/typedrequest-interfaces': 3.0.19 - '@push.rocks/smartdelay': 3.0.5 - broadcast-channel: 7.2.0 + '@push.rocks/smartdelay': 3.1.0 + broadcast-channel: 7.3.0 - '@design.estate/dees-domtools@2.3.6': + '@design.estate/dees-domtools@2.5.6': dependencies: - '@api.global/typedrequest': 3.1.10 - '@design.estate/dees-comms': 1.0.27 - '@push.rocks/lik': 6.2.2 - '@push.rocks/smartdelay': 3.0.5 - '@push.rocks/smartjson': 5.2.0 - '@push.rocks/smartmarkdown': 3.0.3 - '@push.rocks/smartpromise': 4.2.3 + '@api.global/typedrequest': 3.3.0 + '@design.estate/dees-comms': 1.0.30 + '@push.rocks/lik': 6.4.1 + '@push.rocks/smartdelay': 3.1.0 + '@push.rocks/smartjson': 6.0.1 + '@push.rocks/smartmarkdown': 3.1.0 + '@push.rocks/smartpromise': 4.2.4 '@push.rocks/smartrouter': 1.3.3 '@push.rocks/smartrx': 3.0.10 - '@push.rocks/smartstate': 2.0.27 - '@push.rocks/smartstring': 4.1.0 + '@push.rocks/smartstate': 2.3.1 + '@push.rocks/smartstring': 4.1.1 '@push.rocks/smarturl': 3.1.0 - '@push.rocks/webrequest': 3.0.37 - '@push.rocks/websetup': 3.0.19 - '@push.rocks/webstore': 2.0.20 - lenis: 1.3.16 - lit: 3.3.1 + '@push.rocks/webrequest': 4.0.5 + '@push.rocks/websetup': 3.0.20 + '@push.rocks/webstore': 2.0.22 + '@tempfix/lenis': 1.3.20 + lit: 3.3.2 sweet-scroll: 4.0.0 transitivePeerDependencies: - '@nuxt/kit' @@ -3744,218 +3418,242 @@ snapshots: - supports-color - vue - '@design.estate/dees-element@2.1.3': + '@design.estate/dees-element@2.2.4': dependencies: - '@design.estate/dees-domtools': 2.3.6 + '@design.estate/dees-domtools': 2.5.6 '@push.rocks/isounique': 1.0.5 '@push.rocks/smartrx': 3.0.10 - lit: 3.3.1 + lit: 3.3.2 transitivePeerDependencies: - '@nuxt/kit' - react - supports-color - vue - '@design.estate/dees-wcctools@2.0.1': + '@design.estate/dees-wcctools@3.9.0': dependencies: - '@design.estate/dees-domtools': 2.3.6 - '@design.estate/dees-element': 2.1.3 - '@push.rocks/smartdelay': 3.0.5 - lit: 3.3.1 + '@design.estate/dees-domtools': 2.5.6 + '@design.estate/dees-element': 2.2.4 + '@push.rocks/smartdelay': 3.1.0 + lit: 3.3.2 + mediabunny: 1.43.1 transitivePeerDependencies: - '@nuxt/kit' - react - supports-color - vue - '@emnapi/core@1.7.1': + '@emnapi/core@1.10.0': dependencies: - '@emnapi/wasi-threads': 1.1.0 + '@emnapi/wasi-threads': 1.2.1 tslib: 2.8.1 optional: true - '@emnapi/runtime@1.7.1': + '@emnapi/runtime@1.10.0': dependencies: tslib: 2.8.1 optional: true - '@emnapi/wasi-threads@1.1.0': + '@emnapi/wasi-threads@1.2.1': dependencies: tslib: 2.8.1 optional: true - '@esbuild/aix-ppc64@0.27.2': + '@esbuild/aix-ppc64@0.27.7': optional: true - '@esbuild/android-arm64@0.27.2': + '@esbuild/android-arm64@0.27.7': optional: true - '@esbuild/android-arm@0.27.2': + '@esbuild/android-arm@0.27.7': optional: true - '@esbuild/android-x64@0.27.2': + '@esbuild/android-x64@0.27.7': optional: true - '@esbuild/darwin-arm64@0.27.2': + '@esbuild/darwin-arm64@0.27.7': optional: true - '@esbuild/darwin-x64@0.27.2': + '@esbuild/darwin-x64@0.27.7': optional: true - '@esbuild/freebsd-arm64@0.27.2': + '@esbuild/freebsd-arm64@0.27.7': optional: true - '@esbuild/freebsd-x64@0.27.2': + '@esbuild/freebsd-x64@0.27.7': optional: true - '@esbuild/linux-arm64@0.27.2': + '@esbuild/linux-arm64@0.27.7': optional: true - '@esbuild/linux-arm@0.27.2': + '@esbuild/linux-arm@0.27.7': optional: true - '@esbuild/linux-ia32@0.27.2': + '@esbuild/linux-ia32@0.27.7': optional: true - '@esbuild/linux-loong64@0.27.2': + '@esbuild/linux-loong64@0.27.7': optional: true - '@esbuild/linux-mips64el@0.27.2': + '@esbuild/linux-mips64el@0.27.7': optional: true - '@esbuild/linux-ppc64@0.27.2': + '@esbuild/linux-ppc64@0.27.7': optional: true - '@esbuild/linux-riscv64@0.27.2': + '@esbuild/linux-riscv64@0.27.7': optional: true - '@esbuild/linux-s390x@0.27.2': + '@esbuild/linux-s390x@0.27.7': optional: true - '@esbuild/linux-x64@0.27.2': + '@esbuild/linux-x64@0.27.7': optional: true - '@esbuild/netbsd-arm64@0.27.2': + '@esbuild/netbsd-arm64@0.27.7': optional: true - '@esbuild/netbsd-x64@0.27.2': + '@esbuild/netbsd-x64@0.27.7': optional: true - '@esbuild/openbsd-arm64@0.27.2': + '@esbuild/openbsd-arm64@0.27.7': optional: true - '@esbuild/openbsd-x64@0.27.2': + '@esbuild/openbsd-x64@0.27.7': optional: true - '@esbuild/openharmony-arm64@0.27.2': + '@esbuild/openharmony-arm64@0.27.7': optional: true - '@esbuild/sunos-x64@0.27.2': + '@esbuild/sunos-x64@0.27.7': optional: true - '@esbuild/win32-arm64@0.27.2': + '@esbuild/win32-arm64@0.27.7': optional: true - '@esbuild/win32-ia32@0.27.2': + '@esbuild/win32-ia32@0.27.7': optional: true - '@esbuild/win32-x64@0.27.2': + '@esbuild/win32-x64@0.27.7': optional: true - '@fortawesome/fontawesome-common-types@7.1.0': {} + '@fortawesome/fontawesome-common-types@7.2.0': {} - '@fortawesome/fontawesome-svg-core@7.1.0': + '@fortawesome/fontawesome-svg-core@7.2.0': dependencies: - '@fortawesome/fontawesome-common-types': 7.1.0 + '@fortawesome/fontawesome-common-types': 7.2.0 - '@fortawesome/free-brands-svg-icons@7.1.0': + '@fortawesome/free-brands-svg-icons@7.2.0': dependencies: - '@fortawesome/fontawesome-common-types': 7.1.0 + '@fortawesome/fontawesome-common-types': 7.2.0 - '@fortawesome/free-regular-svg-icons@7.1.0': + '@fortawesome/free-regular-svg-icons@7.2.0': dependencies: - '@fortawesome/fontawesome-common-types': 7.1.0 + '@fortawesome/fontawesome-common-types': 7.2.0 - '@fortawesome/free-solid-svg-icons@7.1.0': + '@fortawesome/free-solid-svg-icons@7.2.0': dependencies: - '@fortawesome/fontawesome-common-types': 7.1.0 + '@fortawesome/fontawesome-common-types': 7.2.0 - '@git.zone/tsbuild@4.0.2': + '@git.zone/tsbuild@4.4.0': dependencies: - '@git.zone/tspublish': 1.11.0 + '@git.zone/tspublish': 1.11.6 '@push.rocks/early': 4.0.4 - '@push.rocks/smartcli': 4.0.19 - '@push.rocks/smartdelay': 3.0.5 - '@push.rocks/smartfile': 13.1.2 - '@push.rocks/smartfs': 1.3.1 - '@push.rocks/smartlog': 3.1.10 + '@push.rocks/smartcli': 4.0.21 + '@push.rocks/smartdelay': 3.1.0 + '@push.rocks/smartfile': 13.1.3 + '@push.rocks/smartfs': 1.5.1 + '@push.rocks/smartlog': 3.2.2 '@push.rocks/smartpath': 6.0.0 - '@push.rocks/smartpromise': 4.2.3 - typescript: 5.9.3 + '@push.rocks/smartpromise': 4.2.4 + typescript: 6.0.3 transitivePeerDependencies: + - '@nuxt/kit' - aws-crt + - bare-abort-controller + - bare-buffer + - react + - react-native-b4a - supports-color + - vue - '@git.zone/tsbundle@2.6.3': + '@git.zone/tsbundle@2.10.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: '@push.rocks/early': 4.0.4 - '@push.rocks/smartcli': 4.0.19 - '@push.rocks/smartdelay': 3.0.5 - '@push.rocks/smartfs': 1.3.1 - '@push.rocks/smartlog': 3.1.10 + '@push.rocks/smartcli': 4.0.21 + '@push.rocks/smartconfig': 6.1.1 + '@push.rocks/smartdelay': 3.1.0 + '@push.rocks/smartfs': 1.5.1 + '@push.rocks/smartinteract': 2.0.16 + '@push.rocks/smartlog': 3.2.2 '@push.rocks/smartlog-destination-local': 9.0.2 '@push.rocks/smartpath': 6.0.0 - '@push.rocks/smartpromise': 4.2.3 - '@push.rocks/smartspawn': 3.0.3 - '@rspack/core': 1.6.8 + '@push.rocks/smartpromise': 4.2.4 + '@push.rocks/smartspawn': 3.0.4 + '@rspack/core': 1.7.11 '@types/html-minifier': 4.0.6 - esbuild: 0.27.2 + esbuild: 0.27.7 html-minifier: 4.0.0 - rolldown: 1.0.0-beta.52 - typescript: 5.9.3 + rolldown: 1.0.0-rc.11(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + typescript: 6.0.2 transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' + - '@nuxt/kit' - '@swc/helpers' + - react - supports-color + - vue - '@git.zone/tspublish@1.11.0': + '@git.zone/tspublish@1.11.6': dependencies: - '@push.rocks/consolecolor': 2.0.3 - '@push.rocks/npmextra': 5.3.3 - '@push.rocks/smartcli': 4.0.19 - '@push.rocks/smartdelay': 3.0.5 - '@push.rocks/smartfile': 13.1.2 - '@push.rocks/smartfs': 1.3.1 - '@push.rocks/smartlog': 3.1.10 - '@push.rocks/smartnpm': 2.0.6 + '@push.rocks/consolecolor': 2.0.4 + '@push.rocks/smartcli': 4.0.21 + '@push.rocks/smartconfig': 6.1.1 + '@push.rocks/smartdelay': 3.1.0 + '@push.rocks/smartfile': 13.1.3 + '@push.rocks/smartfs': 1.5.1 + '@push.rocks/smartlog': 3.2.2 + '@push.rocks/smartnpm': 2.1.0 '@push.rocks/smartpath': 6.0.0 - '@push.rocks/smartrequest': 5.0.1 - '@push.rocks/smartshell': 3.3.0 + '@push.rocks/smartrequest': 5.0.3 + '@push.rocks/smartshell': 3.3.8 transitivePeerDependencies: + - '@nuxt/kit' - aws-crt + - bare-abort-controller + - bare-buffer + - react + - react-native-b4a - supports-color + - vue - '@git.zone/tsrun@2.0.1': + '@git.zone/tsrun@2.0.3': dependencies: - '@push.rocks/smartfile': 13.1.2 - '@push.rocks/smartshell': 3.2.2 + '@push.rocks/smartfile': 13.1.3 + '@push.rocks/smartshell': 3.3.8 tsx: 4.21.0 - '@git.zone/tswatch@2.3.13(@tiptap/pm@2.27.1)': + '@git.zone/tswatch@3.3.3(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@tiptap/pm@2.27.2)': dependencies: - '@api.global/typedserver': 7.11.1(@tiptap/pm@2.27.1) - '@git.zone/tsbundle': 2.6.3 - '@git.zone/tsrun': 2.0.1 + '@api.global/typedserver': 8.4.6(@tiptap/pm@2.27.2) + '@git.zone/tsbundle': 2.10.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + '@git.zone/tsrun': 2.0.3 '@push.rocks/early': 4.0.4 - '@push.rocks/lik': 6.2.2 - '@push.rocks/smartcli': 4.0.19 - '@push.rocks/smartdelay': 3.0.5 - '@push.rocks/smartfs': 1.3.1 - '@push.rocks/smartlog': 3.1.10 + '@push.rocks/lik': 6.4.1 + '@push.rocks/smartcli': 4.0.21 + '@push.rocks/smartconfig': 6.1.1 + '@push.rocks/smartdelay': 3.1.0 + '@push.rocks/smartexit': 2.0.3 + '@push.rocks/smartfs': 1.5.1 + '@push.rocks/smartinteract': 2.0.16 + '@push.rocks/smartlog': 3.2.2 '@push.rocks/smartlog-destination-local': 9.0.2 - '@push.rocks/smartshell': 3.3.0 - '@push.rocks/smartwatch': 6.3.0 - '@push.rocks/taskbuffer': 3.5.0 + '@push.rocks/smartshell': 3.3.8 + '@push.rocks/smartwatch': 6.4.0 transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' - '@nuxt/kit' - '@swc/helpers' - '@tiptap/pm' @@ -3965,120 +3663,208 @@ snapshots: - utf-8-validate - vue - '@happy-dom/global-registrator@15.11.7': + '@happy-dom/global-registrator@20.9.0': dependencies: - happy-dom: 15.11.7 + '@types/node': 25.6.0 + happy-dom: 20.9.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate - '@isaacs/balanced-match@4.0.1': {} - - '@isaacs/brace-expansion@5.0.0': + '@inquirer/checkbox@3.0.1': dependencies: - '@isaacs/balanced-match': 4.0.1 + '@inquirer/core': 9.2.1 + '@inquirer/figures': 1.0.15 + '@inquirer/type': 2.0.0 + ansi-escapes: 4.3.2 + yoctocolors-cjs: 2.1.3 - '@isaacs/cliui@8.0.2': + '@inquirer/confirm@4.0.1': dependencies: - string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.0 - strip-ansi-cjs: strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 + '@inquirer/core': 9.2.1 + '@inquirer/type': 2.0.0 - '@lit-labs/ssr-dom-shim@1.4.0': {} - - '@lit/reactive-element@2.1.1': + '@inquirer/core@9.2.1': dependencies: - '@lit-labs/ssr-dom-shim': 1.4.0 + '@inquirer/figures': 1.0.15 + '@inquirer/type': 2.0.0 + '@types/mute-stream': 0.0.4 + '@types/node': 22.19.17 + '@types/wrap-ansi': 3.0.0 + ansi-escapes: 4.3.2 + cli-width: 4.1.0 + mute-stream: 1.0.0 + signal-exit: 4.1.0 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.3 + + '@inquirer/editor@3.0.1': + dependencies: + '@inquirer/core': 9.2.1 + '@inquirer/type': 2.0.0 + external-editor: 3.1.0 + + '@inquirer/expand@3.0.1': + dependencies: + '@inquirer/core': 9.2.1 + '@inquirer/type': 2.0.0 + yoctocolors-cjs: 2.1.3 + + '@inquirer/figures@1.0.15': {} + + '@inquirer/input@3.0.1': + dependencies: + '@inquirer/core': 9.2.1 + '@inquirer/type': 2.0.0 + + '@inquirer/number@2.0.1': + dependencies: + '@inquirer/core': 9.2.1 + '@inquirer/type': 2.0.0 + + '@inquirer/password@3.0.1': + dependencies: + '@inquirer/core': 9.2.1 + '@inquirer/type': 2.0.0 + ansi-escapes: 4.3.2 + + '@inquirer/prompts@6.0.1': + dependencies: + '@inquirer/checkbox': 3.0.1 + '@inquirer/confirm': 4.0.1 + '@inquirer/editor': 3.0.1 + '@inquirer/expand': 3.0.1 + '@inquirer/input': 3.0.1 + '@inquirer/number': 2.0.1 + '@inquirer/password': 3.0.1 + '@inquirer/rawlist': 3.0.1 + '@inquirer/search': 2.0.1 + '@inquirer/select': 3.0.1 + + '@inquirer/rawlist@3.0.1': + dependencies: + '@inquirer/core': 9.2.1 + '@inquirer/type': 2.0.0 + yoctocolors-cjs: 2.1.3 + + '@inquirer/search@2.0.1': + dependencies: + '@inquirer/core': 9.2.1 + '@inquirer/figures': 1.0.15 + '@inquirer/type': 2.0.0 + yoctocolors-cjs: 2.1.3 + + '@inquirer/select@3.0.1': + dependencies: + '@inquirer/core': 9.2.1 + '@inquirer/figures': 1.0.15 + '@inquirer/type': 2.0.0 + ansi-escapes: 4.3.2 + yoctocolors-cjs: 2.1.3 + + '@inquirer/type@2.0.0': + dependencies: + mute-stream: 1.0.0 + + '@lit-labs/ssr-dom-shim@1.5.1': {} + + '@lit/reactive-element@2.1.2': + dependencies: + '@lit-labs/ssr-dom-shim': 1.5.1 '@mixmark-io/domino@2.2.0': {} - '@module-federation/error-codes@0.21.6': {} + '@module-federation/error-codes@0.22.0': {} - '@module-federation/runtime-core@0.21.6': + '@module-federation/runtime-core@0.22.0': dependencies: - '@module-federation/error-codes': 0.21.6 - '@module-federation/sdk': 0.21.6 + '@module-federation/error-codes': 0.22.0 + '@module-federation/sdk': 0.22.0 - '@module-federation/runtime-tools@0.21.6': + '@module-federation/runtime-tools@0.22.0': dependencies: - '@module-federation/runtime': 0.21.6 - '@module-federation/webpack-bundler-runtime': 0.21.6 + '@module-federation/runtime': 0.22.0 + '@module-federation/webpack-bundler-runtime': 0.22.0 - '@module-federation/runtime@0.21.6': + '@module-federation/runtime@0.22.0': dependencies: - '@module-federation/error-codes': 0.21.6 - '@module-federation/runtime-core': 0.21.6 - '@module-federation/sdk': 0.21.6 + '@module-federation/error-codes': 0.22.0 + '@module-federation/runtime-core': 0.22.0 + '@module-federation/sdk': 0.22.0 - '@module-federation/sdk@0.21.6': {} + '@module-federation/sdk@0.22.0': {} - '@module-federation/webpack-bundler-runtime@0.21.6': + '@module-federation/webpack-bundler-runtime@0.22.0': dependencies: - '@module-federation/runtime': 0.21.6 - '@module-federation/sdk': 0.21.6 + '@module-federation/runtime': 0.22.0 + '@module-federation/sdk': 0.22.0 - '@napi-rs/canvas-android-arm64@0.1.65': + '@napi-rs/canvas-android-arm64@0.1.100': optional: true - '@napi-rs/canvas-darwin-arm64@0.1.65': + '@napi-rs/canvas-darwin-arm64@0.1.100': optional: true - '@napi-rs/canvas-darwin-x64@0.1.65': + '@napi-rs/canvas-darwin-x64@0.1.100': optional: true - '@napi-rs/canvas-linux-arm-gnueabihf@0.1.65': + '@napi-rs/canvas-linux-arm-gnueabihf@0.1.100': optional: true - '@napi-rs/canvas-linux-arm64-gnu@0.1.65': + '@napi-rs/canvas-linux-arm64-gnu@0.1.100': optional: true - '@napi-rs/canvas-linux-arm64-musl@0.1.65': + '@napi-rs/canvas-linux-arm64-musl@0.1.100': optional: true - '@napi-rs/canvas-linux-riscv64-gnu@0.1.65': + '@napi-rs/canvas-linux-riscv64-gnu@0.1.100': optional: true - '@napi-rs/canvas-linux-x64-gnu@0.1.65': + '@napi-rs/canvas-linux-x64-gnu@0.1.100': optional: true - '@napi-rs/canvas-linux-x64-musl@0.1.65': + '@napi-rs/canvas-linux-x64-musl@0.1.100': optional: true - '@napi-rs/canvas-win32-x64-msvc@0.1.65': + '@napi-rs/canvas-win32-arm64-msvc@0.1.100': optional: true - '@napi-rs/canvas@0.1.65': + '@napi-rs/canvas-win32-x64-msvc@0.1.100': + optional: true + + '@napi-rs/canvas@0.1.100': optionalDependencies: - '@napi-rs/canvas-android-arm64': 0.1.65 - '@napi-rs/canvas-darwin-arm64': 0.1.65 - '@napi-rs/canvas-darwin-x64': 0.1.65 - '@napi-rs/canvas-linux-arm-gnueabihf': 0.1.65 - '@napi-rs/canvas-linux-arm64-gnu': 0.1.65 - '@napi-rs/canvas-linux-arm64-musl': 0.1.65 - '@napi-rs/canvas-linux-riscv64-gnu': 0.1.65 - '@napi-rs/canvas-linux-x64-gnu': 0.1.65 - '@napi-rs/canvas-linux-x64-musl': 0.1.65 - '@napi-rs/canvas-win32-x64-msvc': 0.1.65 + '@napi-rs/canvas-android-arm64': 0.1.100 + '@napi-rs/canvas-darwin-arm64': 0.1.100 + '@napi-rs/canvas-darwin-x64': 0.1.100 + '@napi-rs/canvas-linux-arm-gnueabihf': 0.1.100 + '@napi-rs/canvas-linux-arm64-gnu': 0.1.100 + '@napi-rs/canvas-linux-arm64-musl': 0.1.100 + '@napi-rs/canvas-linux-riscv64-gnu': 0.1.100 + '@napi-rs/canvas-linux-x64-gnu': 0.1.100 + '@napi-rs/canvas-linux-x64-musl': 0.1.100 + '@napi-rs/canvas-win32-arm64-msvc': 0.1.100 + '@napi-rs/canvas-win32-x64-msvc': 0.1.100 optional: true '@napi-rs/wasm-runtime@1.0.7': dependencies: - '@emnapi/core': 1.7.1 - '@emnapi/runtime': 1.7.1 + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 '@tybys/wasm-util': 0.10.1 optional: true - '@napi-rs/wasm-runtime@1.1.0': + '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: - '@emnapi/core': 1.7.1 - '@emnapi/runtime': 1.7.1 + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 '@tybys/wasm-util': 0.10.1 optional: true - '@oxc-project/types@0.99.0': {} + '@nodable/entities@2.1.0': {} - '@pkgjs/parseargs@0.11.0': - optional: true + '@oxc-project/types@0.122.0': {} '@pnpm/config.env-replace@1.1.0': {} @@ -4086,24 +3872,20 @@ snapshots: dependencies: graceful-fs: 4.2.10 - '@pnpm/npm-conf@2.3.1': + '@pnpm/npm-conf@3.0.2': dependencies: '@pnpm/config.env-replace': 1.1.0 '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 - '@push.rocks/consolecolor@2.0.2': - dependencies: - ansi-256-colors: 1.1.0 - - '@push.rocks/consolecolor@2.0.3': + '@push.rocks/consolecolor@2.0.4': dependencies: ansi-256-colors: 1.1.0 '@push.rocks/early@4.0.4': dependencies: - '@push.rocks/consolecolor': 2.0.2 - '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/consolecolor': 2.0.4 + '@push.rocks/smartpromise': 4.2.4 '@push.rocks/isohash@2.0.1': dependencies: @@ -4112,318 +3894,238 @@ snapshots: '@push.rocks/isounique@1.0.5': {} - '@push.rocks/levelcache@3.1.1': + '@push.rocks/levelcache@3.2.2': dependencies: - '@push.rocks/lik': 6.1.0 - '@push.rocks/smartbucket': 3.3.7 - '@push.rocks/smartcache': 1.0.16 - '@push.rocks/smartenv': 5.0.12 - '@push.rocks/smartexit': 1.0.23 - '@push.rocks/smartfile': 11.2.7 - '@push.rocks/smartjson': 5.0.20 - '@push.rocks/smartpath': 5.0.18 - '@push.rocks/smartpromise': 4.2.3 - '@push.rocks/smartstring': 4.0.15 - '@push.rocks/smartunique': 3.0.9 - '@push.rocks/taskbuffer': 3.1.7 - '@tsclass/tsclass': 4.2.0 + '@push.rocks/lik': 6.4.1 + '@push.rocks/smartbucket': 4.6.1 + '@push.rocks/smartfs': 1.5.1 + '@push.rocks/smartjson': 6.0.1 + '@push.rocks/smartpath': 6.0.0 + '@push.rocks/smartpromise': 4.2.4 + '@tsclass/tsclass': 9.5.1 transitivePeerDependencies: - aws-crt - '@push.rocks/lik@6.0.12': + '@push.rocks/lik@6.4.1': dependencies: - '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartdelay': 3.1.0 '@push.rocks/smartmatch': 2.0.0 - '@push.rocks/smartpromise': 4.0.4 - '@push.rocks/smartrx': 3.0.7 - '@push.rocks/smarttime': 4.0.6 - '@types/minimatch': 5.1.2 - '@types/symbol-tree': 3.2.5 - symbol-tree: 3.2.4 - - '@push.rocks/lik@6.1.0': - dependencies: - '@push.rocks/smartdelay': 3.0.5 - '@push.rocks/smartmatch': 2.0.0 - '@push.rocks/smartpromise': 4.2.3 - '@push.rocks/smartrx': 3.0.7 - '@push.rocks/smarttime': 4.1.1 - '@types/minimatch': 5.1.2 - '@types/symbol-tree': 3.2.5 - symbol-tree: 3.2.4 - - '@push.rocks/lik@6.2.2': - dependencies: - '@push.rocks/smartdelay': 3.0.5 - '@push.rocks/smartmatch': 2.0.0 - '@push.rocks/smartpromise': 4.0.4 - '@push.rocks/smartrx': 3.0.7 - '@push.rocks/smarttime': 4.1.1 - '@types/minimatch': 5.1.2 - '@types/symbol-tree': 3.2.5 - symbol-tree: 3.2.4 - - '@push.rocks/npmextra@5.3.3': - dependencies: - '@push.rocks/qenv': 6.1.3 - '@push.rocks/smartfile': 11.2.7 - '@push.rocks/smartjson': 5.0.20 - '@push.rocks/smartlog': 3.1.10 - '@push.rocks/smartpath': 6.0.0 - '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartpromise': 4.2.4 '@push.rocks/smartrx': 3.0.10 - '@push.rocks/taskbuffer': 3.1.7 - '@tsclass/tsclass': 9.3.0 + '@push.rocks/smarttime': 4.2.3 + '@types/symbol-tree': 3.2.5 + symbol-tree: 3.2.4 - '@push.rocks/projectinfo@5.0.2': + '@push.rocks/projectinfo@5.1.0': dependencies: - '@push.rocks/smartfile': 10.0.41 - '@push.rocks/smartpath': 5.0.11 - '@push.rocks/smartpromise': 4.0.3 - '@push.rocks/smartstring': 4.0.9 + '@push.rocks/smartfs': 1.5.1 + '@push.rocks/smartpath': 6.0.0 + '@push.rocks/smartpromise': 4.2.4 + '@push.rocks/smartstring': 4.1.1 - '@push.rocks/qenv@6.1.3': + '@push.rocks/qenv@6.1.4': dependencies: - '@api.global/typedrequest': 3.1.10 + '@api.global/typedrequest': 3.3.0 '@configvault.io/interfaces': 1.0.17 - '@push.rocks/smartfile': 11.2.7 - '@push.rocks/smartlog': 3.1.10 + '@push.rocks/smartlog': 3.2.2 '@push.rocks/smartpath': 6.0.0 + yaml: 2.8.4 - '@push.rocks/smartarchive@4.2.4': + '@push.rocks/smartarchive@5.2.2': dependencies: - '@push.rocks/smartdelay': 3.0.5 - '@push.rocks/smartfile': 13.1.2 + '@push.rocks/smartdelay': 3.1.0 + '@push.rocks/smartfile': 13.1.3 '@push.rocks/smartpath': 6.0.0 - '@push.rocks/smartpromise': 4.2.3 - '@push.rocks/smartrequest': 5.0.1 + '@push.rocks/smartpromise': 4.2.4 + '@push.rocks/smartrequest': 5.0.3 '@push.rocks/smartrx': 3.0.10 - '@push.rocks/smartstream': 3.2.5 + '@push.rocks/smartstream': 3.4.2 '@push.rocks/smartunique': 3.0.9 '@push.rocks/smarturl': 3.1.0 - '@types/tar-stream': 3.1.4 fflate: 0.8.2 - file-type: 21.1.1 - tar-stream: 3.1.7 + file-type: 22.0.1 + modern-tar: 0.7.6 + tar-stream: 3.2.0 transitivePeerDependencies: + - bare-abort-controller + - bare-buffer + - react-native-b4a - supports-color - '@push.rocks/smartbucket@3.3.7': + '@push.rocks/smartbucket@4.6.1': dependencies: - '@aws-sdk/client-s3': 3.715.0 + '@aws-sdk/client-s3': 3.1041.0 '@push.rocks/smartmime': 2.0.4 - '@push.rocks/smartpath': 5.0.18 - '@push.rocks/smartpromise': 4.2.3 - '@push.rocks/smartrx': 3.0.7 - '@push.rocks/smartstream': 3.2.5 - '@push.rocks/smartstring': 4.0.15 + '@push.rocks/smartpath': 6.0.0 + '@push.rocks/smartpromise': 4.2.4 + '@push.rocks/smartrx': 3.0.10 + '@push.rocks/smartstream': 3.4.2 + '@push.rocks/smartstring': 4.1.1 '@push.rocks/smartunique': 3.0.9 - '@tsclass/tsclass': 4.2.0 + '@tsclass/tsclass': 9.5.1 + minimatch: 10.2.5 transitivePeerDependencies: - aws-crt - '@push.rocks/smartbuffer@3.0.4': + '@push.rocks/smartbuffer@3.0.6': dependencies: - uint8array-extras: 1.4.0 + uint8array-extras: 1.5.0 - '@push.rocks/smartcache@1.0.16': + '@push.rocks/smartcli@4.0.21': dependencies: - '@pushrocks/smartdelay': 2.0.13 - '@pushrocks/smarterror': 2.0.1 - '@pushrocks/smarthash': 3.0.2 - '@pushrocks/smartpromise': 3.1.10 - '@pushrocks/smarttime': 4.0.1 - - '@push.rocks/smartcli@4.0.19': - dependencies: - '@push.rocks/lik': 6.2.2 - '@push.rocks/smartlog': 3.1.10 + '@push.rocks/lik': 6.4.1 + '@push.rocks/smartlog': 3.2.2 '@push.rocks/smartobject': 1.0.12 - '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartpromise': 4.2.4 '@push.rocks/smartrx': 3.0.10 yargs-parser: 22.0.0 - '@push.rocks/smartclickhouse@2.0.17': + '@push.rocks/smartclickhouse@2.2.1': dependencies: - '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartdelay': 3.1.0 '@push.rocks/smartobject': 1.0.12 - '@push.rocks/smartpromise': 4.2.3 - '@push.rocks/smartrx': 3.0.7 + '@push.rocks/smartpromise': 4.2.4 + '@push.rocks/smartrx': 3.0.10 '@push.rocks/smarturl': 3.1.0 - '@push.rocks/webrequest': 3.0.37 + '@push.rocks/webrequest': 4.0.5 - '@push.rocks/smartdelay@3.0.5': + '@push.rocks/smartconfig@6.1.1': dependencies: - '@push.rocks/smartpromise': 4.0.4 + '@push.rocks/qenv': 6.1.4 + '@push.rocks/smartfs': 1.5.1 + '@push.rocks/smartjson': 6.0.1 + '@push.rocks/smartlog': 3.2.2 + '@push.rocks/smartpath': 6.0.0 + '@push.rocks/smartpromise': 4.2.4 + '@push.rocks/smartrx': 3.0.10 + '@push.rocks/taskbuffer': 8.0.2 + '@tsclass/tsclass': 9.5.1 + transitivePeerDependencies: + - '@nuxt/kit' + - react + - supports-color + - vue - '@push.rocks/smartenv@5.0.12': + '@push.rocks/smartdelay@3.1.0': dependencies: - '@push.rocks/smartpromise': 4.0.3 + '@push.rocks/smartpromise': 4.2.4 '@push.rocks/smartenv@5.0.13': dependencies: - '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartpromise': 4.2.4 - '@push.rocks/smartenv@6.0.0': + '@push.rocks/smartenv@6.1.0': dependencies: - '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartpromise': 4.2.4 - '@push.rocks/smartexit@1.0.23': + '@push.rocks/smartexit@2.0.3': dependencies: - '@push.rocks/lik': 6.1.0 - '@push.rocks/smartdelay': 3.0.5 - '@push.rocks/smartpromise': 4.0.4 - tree-kill: 1.2.2 + '@push.rocks/lik': 6.4.1 + '@push.rocks/smartpromise': 4.2.4 '@push.rocks/smartfeed@1.4.0': dependencies: - '@tsclass/tsclass': 9.3.0 - fast-xml-parser: 4.5.1 + '@tsclass/tsclass': 9.5.1 + fast-xml-parser: 4.5.6 '@push.rocks/smartfile-interfaces@1.0.7': {} - '@push.rocks/smartfile@10.0.41': + '@push.rocks/smartfile@13.1.3': dependencies: - '@push.rocks/lik': 6.0.12 - '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/lik': 6.4.1 + '@push.rocks/smartdelay': 3.1.0 '@push.rocks/smartfile-interfaces': 1.0.7 - '@push.rocks/smarthash': 3.0.4 - '@push.rocks/smartjson': 5.0.10 - '@push.rocks/smartmime': 1.0.6 - '@push.rocks/smartpath': 5.0.11 - '@push.rocks/smartpromise': 4.0.3 - '@push.rocks/smartrequest': 5.0.1 - '@push.rocks/smartstream': 2.0.8 - '@types/fs-extra': 11.0.4 - '@types/glob': 8.1.0 - '@types/js-yaml': 4.0.9 - fs-extra: 11.1.1 - glob: 10.3.10 - js-yaml: 4.1.0 - - '@push.rocks/smartfile@11.2.7': - dependencies: - '@push.rocks/lik': 6.2.2 - '@push.rocks/smartdelay': 3.0.5 - '@push.rocks/smartfile-interfaces': 1.0.7 - '@push.rocks/smarthash': 3.2.6 - '@push.rocks/smartjson': 5.0.20 + '@push.rocks/smartfs': 1.5.1 + '@push.rocks/smarthash': 3.2.7 + '@push.rocks/smartjson': 6.0.1 '@push.rocks/smartmime': 2.0.4 '@push.rocks/smartpath': 6.0.0 - '@push.rocks/smartpromise': 4.2.3 - '@push.rocks/smartrequest': 5.0.1 - '@push.rocks/smartstream': 3.2.5 - '@types/fs-extra': 11.0.4 + '@push.rocks/smartpromise': 4.2.4 + '@push.rocks/smartrequest': 5.0.3 + '@push.rocks/smartstream': 3.4.2 '@types/js-yaml': 4.0.9 - fs-extra: 11.3.2 - glob: 11.1.0 - js-yaml: 4.1.0 + glob: 13.0.6 + js-yaml: 4.1.1 - '@push.rocks/smartfile@13.1.2': - dependencies: - '@push.rocks/lik': 6.2.2 - '@push.rocks/smartdelay': 3.0.5 - '@push.rocks/smartfile-interfaces': 1.0.7 - '@push.rocks/smartfs': 1.3.1 - '@push.rocks/smarthash': 3.2.6 - '@push.rocks/smartjson': 5.0.20 - '@push.rocks/smartmime': 2.0.4 - '@push.rocks/smartpath': 6.0.0 - '@push.rocks/smartpromise': 4.2.3 - '@push.rocks/smartrequest': 5.0.1 - '@push.rocks/smartstream': 3.2.5 - '@types/js-yaml': 4.0.9 - glob: 11.1.0 - js-yaml: 4.1.0 - - '@push.rocks/smartfs@1.3.1': + '@push.rocks/smartfs@1.5.1': dependencies: '@push.rocks/smartpath': 6.0.0 + '@push.rocks/smartrust': 1.4.0 '@push.rocks/smartguard@3.1.0': dependencies: - '@push.rocks/smartpromise': 4.2.3 - '@push.rocks/smartrequest': 5.0.1 + '@push.rocks/smartpromise': 4.2.4 + '@push.rocks/smartrequest': 2.1.0 - '@push.rocks/smarthash@3.0.4': + '@push.rocks/smarthash@3.2.7': dependencies: - '@push.rocks/smartjson': 5.0.10 - '@push.rocks/smartpromise': 4.0.4 + '@push.rocks/smartenv': 6.1.0 + '@push.rocks/smartjson': 6.0.1 + '@push.rocks/smartpromise': 4.2.4 '@types/through2': 2.0.41 through2: 4.0.2 - '@push.rocks/smarthash@3.2.6': - dependencies: - '@push.rocks/smartenv': 5.0.13 - '@push.rocks/smartjson': 5.2.0 - '@push.rocks/smartpromise': 4.2.3 - '@types/through2': 2.0.41 - through2: 4.0.2 + '@push.rocks/smarti18n@1.1.0': {} - '@push.rocks/smarti18n@1.0.4': {} - - '@push.rocks/smartjson@5.0.10': + '@push.rocks/smartinteract@2.0.16': dependencies: - '@push.rocks/smartstring': 4.0.9 - '@types/buffer-json': 2.0.3 - buffer-json: 2.0.0 - fast-json-stable-stringify: 2.1.0 - lodash.clonedeep: 4.5.0 - - '@push.rocks/smartjson@5.0.20': - dependencies: - '@push.rocks/smartenv': 5.0.12 - '@push.rocks/smartstring': 4.0.15 - fast-json-stable-stringify: 2.1.0 - lodash.clonedeep: 4.5.0 + '@push.rocks/lik': 6.4.1 + '@push.rocks/smartobject': 1.0.12 + '@push.rocks/smartpromise': 4.2.4 + inquirer: 11.1.0 '@push.rocks/smartjson@5.2.0': dependencies: '@push.rocks/smartenv': 5.0.13 - '@push.rocks/smartstring': 4.1.0 + '@push.rocks/smartstring': 4.1.1 fast-json-stable-stringify: 2.1.0 lodash.clonedeep: 4.5.0 + '@push.rocks/smartjson@6.0.1': + dependencies: + '@push.rocks/smartenv': 6.1.0 + '@push.rocks/smartstring': 4.1.1 + fast-json-stable-stringify: 2.1.0 + '@push.rocks/smartlog-destination-devtools@1.0.12': dependencies: '@push.rocks/smartlog-interfaces': 3.0.2 '@push.rocks/smartlog-destination-local@9.0.2': dependencies: - '@push.rocks/consolecolor': 2.0.2 + '@push.rocks/consolecolor': 2.0.4 '@push.rocks/smartlog-interfaces': 3.0.2 - '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartpromise': 4.2.4 '@push.rocks/smartlog-interfaces@3.0.2': dependencies: '@api.global/typedrequest-interfaces': 2.0.2 - '@tsclass/tsclass': 4.2.0 + '@tsclass/tsclass': 4.4.4 - '@push.rocks/smartlog@3.1.10': + '@push.rocks/smartlog@3.2.2': dependencies: '@api.global/typedrequest-interfaces': 3.0.19 - '@push.rocks/consolecolor': 2.0.3 + '@push.rocks/consolecolor': 2.0.4 '@push.rocks/isounique': 1.0.5 - '@push.rocks/smartclickhouse': 2.0.17 - '@push.rocks/smartfile': 11.2.7 - '@push.rocks/smarthash': 3.2.6 - '@push.rocks/smartpromise': 4.2.3 - '@push.rocks/smarttime': 4.1.1 - '@push.rocks/webrequest': 3.0.37 - '@tsclass/tsclass': 9.3.0 + '@push.rocks/smartclickhouse': 2.2.1 + '@push.rocks/smarthash': 3.2.7 + '@push.rocks/smartpromise': 4.2.4 + '@push.rocks/smarttime': 4.2.3 + '@push.rocks/webrequest': 4.0.5 + '@tsclass/tsclass': 9.5.1 '@push.rocks/smartmanifest@2.0.2': {} - '@push.rocks/smartmarkdown@3.0.3': + '@push.rocks/smartmarkdown@3.1.0': dependencies: - '@push.rocks/smartyaml': 2.0.5 - '@types/turndown': 5.0.5 + '@push.rocks/smartyaml': 3.0.5 + '@types/turndown': 5.0.6 remark-frontmatter: 5.0.0 - remark-gfm: 4.0.0 + remark-gfm: 4.0.1 remark-html: 16.0.1 remark-parse: 11.0.0 remark-stringify: 11.0.0 - turndown: 7.2.0 + turndown: 7.2.4 turndown-plugin-gfm: 1.0.2 unified: 11.0.5 transitivePeerDependencies: @@ -4433,213 +4135,156 @@ snapshots: dependencies: matcher: 5.0.0 - '@push.rocks/smartmime@1.0.6': - dependencies: - '@types/mime-types': 2.1.4 - mime-types: 2.1.35 - '@push.rocks/smartmime@2.0.4': dependencies: '@types/mime-types': 2.1.4 file-type: 19.6.0 - mime: 4.0.6 + mime: 4.1.0 - '@push.rocks/smartnpm@2.0.6': + '@push.rocks/smartnpm@2.1.0': dependencies: - '@push.rocks/consolecolor': 2.0.3 - '@push.rocks/levelcache': 3.1.1 - '@push.rocks/smartarchive': 4.2.4 - '@push.rocks/smartfile': 11.2.7 + '@push.rocks/consolecolor': 2.0.4 + '@push.rocks/levelcache': 3.2.2 + '@push.rocks/smartarchive': 5.2.2 + '@push.rocks/smartfile': 13.1.3 + '@push.rocks/smartfs': 1.5.1 '@push.rocks/smartpath': 6.0.0 - '@push.rocks/smartpromise': 4.2.3 - '@push.rocks/smartrequest': 5.0.1 - '@push.rocks/smarttime': 4.1.1 - '@push.rocks/smartversion': 3.0.5 - package-json: 8.1.1 + '@push.rocks/smartpromise': 4.2.4 + '@push.rocks/smartrequest': 5.0.3 + '@push.rocks/smarttime': 4.2.3 + '@push.rocks/smartversion': 3.1.0 + package-json: 10.0.1 transitivePeerDependencies: - aws-crt + - bare-abort-controller + - bare-buffer + - react-native-b4a - supports-color - '@push.rocks/smartntml@2.0.8': + '@push.rocks/smartntml@2.0.9': dependencies: - '@design.estate/dees-element': 2.1.3 - '@happy-dom/global-registrator': 15.11.7 - '@push.rocks/smartpromise': 4.2.3 - fake-indexeddb: 6.0.0 + '@design.estate/dees-element': 2.2.4 + '@happy-dom/global-registrator': 20.9.0 + fake-indexeddb: 6.2.5 transitivePeerDependencies: - '@nuxt/kit' + - bufferutil - react - supports-color + - utf-8-validate - vue '@push.rocks/smartobject@1.0.12': dependencies: fast-deep-equal: 3.1.3 - minimatch: 9.0.5 + minimatch: 9.0.9 '@push.rocks/smartopen@2.0.0': dependencies: open: 8.4.2 - '@push.rocks/smartpath@5.0.11': {} - - '@push.rocks/smartpath@5.0.18': {} - '@push.rocks/smartpath@6.0.0': {} - '@push.rocks/smartpromise@4.0.3': {} + '@push.rocks/smartpromise@4.2.4': {} - '@push.rocks/smartpromise@4.0.4': {} - - '@push.rocks/smartpromise@4.2.3': {} - - '@push.rocks/smartrequest@5.0.1': + '@push.rocks/smartrequest@2.1.0': dependencies: - '@push.rocks/smartenv': 6.0.0 + '@push.rocks/smartpromise': 4.2.4 + '@push.rocks/smarturl': 3.1.0 + agentkeepalive: 4.6.0 + form-data: 4.0.5 + + '@push.rocks/smartrequest@5.0.3': + dependencies: + '@push.rocks/smartenv': 6.1.0 '@push.rocks/smartpath': 6.0.0 - '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartpromise': 4.2.4 '@push.rocks/smarturl': 3.1.0 agentkeepalive: 4.6.0 form-data: 4.0.5 '@push.rocks/smartrouter@1.3.3': dependencies: - '@push.rocks/lik': 6.2.2 + '@push.rocks/lik': 6.4.1 '@push.rocks/smartrx': 3.0.10 - path-to-regexp: 8.2.0 + path-to-regexp: 8.4.2 + + '@push.rocks/smartrust@1.4.0': + dependencies: + '@push.rocks/smartpath': 6.0.0 '@push.rocks/smartrx@3.0.10': dependencies: - '@push.rocks/smartpromise': 4.2.3 - rxjs: 7.8.1 + '@push.rocks/smartpromise': 4.2.4 + rxjs: 7.8.2 - '@push.rocks/smartrx@3.0.7': + '@push.rocks/smartserve@2.0.4': dependencies: - '@push.rocks/smartpromise': 4.0.4 - rxjs: 7.8.1 - - '@push.rocks/smartserve@1.4.0': - dependencies: - '@api.global/typedrequest': 3.2.5 + '@api.global/typedrequest': 3.3.0 '@cfworker/json-schema': 4.1.1 - '@push.rocks/lik': 6.2.2 - '@push.rocks/smartenv': 6.0.0 - '@push.rocks/smartlog': 3.1.10 + '@push.rocks/lik': 6.4.1 + '@push.rocks/smartenv': 6.1.0 + '@push.rocks/smartlog': 3.2.2 '@push.rocks/smartpath': 6.0.0 - ws: 8.18.3 + ws: 8.20.0 transitivePeerDependencies: - bufferutil - utf-8-validate - '@push.rocks/smartshell@3.2.2': + '@push.rocks/smartshell@3.3.8': dependencies: - '@push.rocks/smartdelay': 3.0.5 - '@push.rocks/smartexit': 1.0.23 - '@push.rocks/smartpromise': 4.0.4 + '@push.rocks/smartdelay': 3.1.0 + '@push.rocks/smartexit': 2.0.3 + '@push.rocks/smartpromise': 4.2.4 '@types/which': 3.0.4 - tree-kill: 1.2.2 - which: 5.0.0 + which: 6.0.1 - '@push.rocks/smartshell@3.3.0': + '@push.rocks/smartsitemap@4.0.2': dependencies: - '@push.rocks/smartdelay': 3.0.5 - '@push.rocks/smartexit': 1.0.23 - '@push.rocks/smartpromise': 4.2.3 - '@types/which': 3.0.4 - tree-kill: 1.2.2 - which: 5.0.0 - - '@push.rocks/smartsitemap@2.0.4': - dependencies: - '@push.rocks/smartcache': 1.0.16 '@push.rocks/smartfeed': 1.4.0 '@push.rocks/smartxml': 2.0.0 - '@push.rocks/smartyaml': 3.0.4 - '@push.rocks/webrequest': 4.0.1 - '@tsclass/tsclass': 9.3.0 + '@push.rocks/smartyaml': 3.0.5 + '@push.rocks/webrequest': 4.0.5 + '@tsclass/tsclass': 9.5.1 - '@push.rocks/smartspawn@3.0.3': + '@push.rocks/smartspawn@3.0.4': dependencies: - '@push.rocks/smartpromise': 4.2.3 - spawn-wrap: 2.0.0 + '@push.rocks/smartpromise': 4.2.4 + spawn-wrap: 3.0.0 threads: 1.7.0 tiny-worker: 2.3.0 transitivePeerDependencies: - supports-color - '@push.rocks/smartstate@2.0.27': + '@push.rocks/smartstate@2.3.1': dependencies: - '@push.rocks/lik': 6.2.2 - '@push.rocks/smarthash': 3.2.6 - '@push.rocks/smartjson': 5.2.0 - '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smarthash': 3.2.7 + '@push.rocks/smartjson': 6.0.1 + '@push.rocks/smartpromise': 4.2.4 '@push.rocks/smartrx': 3.0.10 - '@push.rocks/webstore': 2.0.20 + '@push.rocks/webstore': 2.0.22 - '@push.rocks/smartstream@2.0.8': + '@push.rocks/smartstream@3.4.2': dependencies: - '@push.rocks/smartpromise': 4.0.4 - '@push.rocks/smartrx': 3.0.7 - '@types/from2': 2.3.5 - '@types/through2': 2.0.41 - from2: 2.3.0 - through2: 4.0.2 + '@push.rocks/lik': 6.4.1 + '@push.rocks/smartenv': 6.1.0 + '@push.rocks/smartpromise': 4.2.4 + '@push.rocks/smartrx': 3.0.10 - '@push.rocks/smartstream@3.2.5': - dependencies: - '@push.rocks/lik': 6.2.2 - '@push.rocks/smartenv': 5.0.12 - '@push.rocks/smartpromise': 4.2.3 - '@push.rocks/smartrx': 3.0.7 - - '@push.rocks/smartstring@4.0.15': - dependencies: - '@push.rocks/isounique': 1.0.5 - '@push.rocks/smartenv': 5.0.12 - '@types/randomatic': 3.1.5 - crypto-random-string: 5.0.0 - js-base64: 3.7.7 - randomatic: 3.1.1 - strip-indent: 4.0.0 - url: 0.11.4 - - '@push.rocks/smartstring@4.0.9': - dependencies: - '@push.rocks/isounique': 1.0.5 - '@push.rocks/smartenv': 5.0.12 - '@types/randomatic': 3.1.5 - buffer: 6.0.3 - crypto-random-string: 5.0.0 - js-base64: 3.7.5 - normalize-newline: 4.1.0 - randomatic: 3.1.1 - strip-indent: 4.0.0 - url: 0.11.3 - - '@push.rocks/smartstring@4.1.0': + '@push.rocks/smartstring@4.1.1': dependencies: '@push.rocks/isounique': 1.0.5 - '@push.rocks/smarttime@4.0.6': + '@push.rocks/smarttime@4.2.3': dependencies: - '@push.rocks/lik': 6.0.12 - '@push.rocks/smartdelay': 3.0.5 - '@push.rocks/smartpromise': 4.0.4 - croner: 7.0.5 - dayjs: 1.11.10 - is-nan: 1.3.2 - pretty-ms: 8.0.0 - - '@push.rocks/smarttime@4.1.1': - dependencies: - '@push.rocks/lik': 6.1.0 - '@push.rocks/smartdelay': 3.0.5 - '@push.rocks/smartpromise': 4.2.3 - croner: 9.0.0 + '@push.rocks/lik': 6.4.1 + '@push.rocks/smartdelay': 3.1.0 + '@push.rocks/smartpromise': 4.2.4 + croner: 10.0.1 date-fns: 4.1.0 - dayjs: 1.11.13 + dayjs: 1.11.20 is-nan: 1.3.2 - pretty-ms: 9.2.0 + pretty-ms: 9.3.0 '@push.rocks/smartunique@3.0.9': dependencies: @@ -4649,52 +4294,38 @@ snapshots: '@push.rocks/smarturl@3.1.0': {} - '@push.rocks/smartversion@3.0.5': + '@push.rocks/smartversion@3.1.0': dependencies: - '@types/semver': 7.5.8 - semver: 7.6.3 + '@types/semver': 7.7.1 + semver: 7.7.4 - '@push.rocks/smartwatch@6.3.0': + '@push.rocks/smartwatch@6.4.0': dependencies: - '@push.rocks/lik': 6.2.2 - '@push.rocks/smartenv': 6.0.0 - '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/lik': 6.4.1 + '@push.rocks/smartenv': 6.1.0 + '@push.rocks/smartpromise': 4.2.4 + '@push.rocks/smartrust': 1.4.0 '@push.rocks/smartrx': 3.0.10 chokidar: 5.0.0 - picomatch: 4.0.3 + picomatch: 4.0.4 '@push.rocks/smartxml@2.0.0': dependencies: - fast-xml-parser: 5.3.3 + fast-xml-parser: 5.7.2 - '@push.rocks/smartyaml@2.0.5': + '@push.rocks/smartyaml@3.0.5': dependencies: - '@types/js-yaml': 3.12.10 - js-yaml: 3.14.1 + yaml: 2.8.4 - '@push.rocks/smartyaml@3.0.4': + '@push.rocks/taskbuffer@8.0.2': dependencies: - yaml: 2.8.2 - - '@push.rocks/taskbuffer@3.1.7': - dependencies: - '@push.rocks/lik': 6.1.0 - '@push.rocks/smartdelay': 3.0.5 - '@push.rocks/smartlog': 3.1.10 - '@push.rocks/smartpromise': 4.2.3 + '@design.estate/dees-element': 2.2.4 + '@push.rocks/lik': 6.4.1 + '@push.rocks/smartdelay': 3.1.0 + '@push.rocks/smartlog': 3.2.2 + '@push.rocks/smartpromise': 4.2.4 '@push.rocks/smartrx': 3.0.10 - '@push.rocks/smarttime': 4.1.1 - '@push.rocks/smartunique': 3.0.9 - - '@push.rocks/taskbuffer@3.5.0': - dependencies: - '@design.estate/dees-element': 2.1.3 - '@push.rocks/lik': 6.2.2 - '@push.rocks/smartdelay': 3.0.5 - '@push.rocks/smartlog': 3.1.10 - '@push.rocks/smartpromise': 4.2.3 - '@push.rocks/smartrx': 3.0.10 - '@push.rocks/smarttime': 4.1.1 + '@push.rocks/smarttime': 4.2.3 '@push.rocks/smartunique': 3.0.9 transitivePeerDependencies: - '@nuxt/kit' @@ -4702,73 +4333,40 @@ snapshots: - supports-color - vue - '@push.rocks/webrequest@3.0.37': + '@push.rocks/webrequest@4.0.5': dependencies: - '@push.rocks/smartdelay': 3.0.5 - '@push.rocks/smartenv': 5.0.12 - '@push.rocks/smartjson': 5.2.0 - '@push.rocks/smartpromise': 4.2.3 - '@push.rocks/webstore': 2.0.20 + '@push.rocks/smartdelay': 3.1.0 + '@push.rocks/smartenv': 6.1.0 + '@push.rocks/smartjson': 6.0.1 + '@push.rocks/smartpromise': 4.2.4 + '@push.rocks/webstore': 2.0.22 - '@push.rocks/webrequest@4.0.1': + '@push.rocks/websetup@3.0.20': dependencies: - '@push.rocks/smartdelay': 3.0.5 - '@push.rocks/smartenv': 5.0.12 - '@push.rocks/smartjson': 5.2.0 - '@push.rocks/smartpromise': 4.2.3 - '@push.rocks/webstore': 2.0.20 + '@push.rocks/smartpromise': 4.2.4 + '@tsclass/tsclass': 9.5.1 - '@push.rocks/websetup@3.0.19': - dependencies: - '@pushrocks/smartdelay': 3.0.1 - '@pushrocks/smartpromise': 4.0.2 - '@tsclass/tsclass': 4.2.0 - - '@push.rocks/webstore@2.0.20': + '@push.rocks/webstore@2.0.22': dependencies: '@api.global/typedrequest-interfaces': 3.0.19 - '@push.rocks/lik': 6.2.2 - '@push.rocks/smartenv': 5.0.12 - '@push.rocks/smartjson': 5.2.0 - '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/lik': 6.4.1 + '@push.rocks/smartenv': 6.1.0 + '@push.rocks/smartjson': 6.0.1 + '@push.rocks/smartpromise': 4.2.4 '@push.rocks/smartrx': 3.0.10 - '@tempfix/idb': 8.0.3 - fake-indexeddb: 5.0.2 + fake-indexeddb: 6.2.5 + idb: 8.0.3 '@push.rocks/webstream@1.0.10': dependencies: - '@push.rocks/smartenv': 5.0.12 + '@push.rocks/smartenv': 5.0.13 '@pushrocks/isounique@1.0.5': {} - '@pushrocks/lik@6.0.2': - dependencies: - '@pushrocks/smartdelay': 2.0.13 - '@pushrocks/smartmatch': 2.0.0 - '@pushrocks/smartpromise': 3.1.10 - '@pushrocks/smartrx': 3.0.2 - '@pushrocks/smarttime': 4.0.1 - '@types/minimatch': 5.1.2 - '@types/symbol-tree': 3.2.5 - symbol-tree: 3.2.4 - - '@pushrocks/smartdelay@2.0.13': - dependencies: - '@pushrocks/smartpromise': 3.1.10 - - '@pushrocks/smartdelay@3.0.1': - dependencies: - '@pushrocks/smartpromise': 4.0.2 - '@pushrocks/smartenv@5.0.5': dependencies: '@pushrocks/smartpromise': 3.1.10 - '@pushrocks/smarterror@2.0.1': - dependencies: - clean-stack: 1.3.0 - make-error-cause: 2.3.0 - '@pushrocks/smarthash@3.0.2': dependencies: '@pushrocks/smartjson': 5.0.6 @@ -4784,19 +4382,8 @@ snapshots: fast-json-stable-stringify: 2.1.0 lodash.clonedeep: 4.5.0 - '@pushrocks/smartmatch@2.0.0': - dependencies: - matcher: 5.0.0 - '@pushrocks/smartpromise@3.1.10': {} - '@pushrocks/smartpromise@4.0.2': {} - - '@pushrocks/smartrx@3.0.2': - dependencies: - '@pushrocks/smartpromise': 4.0.2 - rxjs: 7.8.1 - '@pushrocks/smartstring@4.0.7': dependencies: '@pushrocks/isounique': 1.0.5 @@ -4804,375 +4391,365 @@ snapshots: '@types/randomatic': 3.1.5 buffer: 6.0.3 crypto-random-string: 5.0.0 - js-base64: 3.7.7 + js-base64: 3.7.8 normalize-newline: 4.1.0 randomatic: 3.1.1 - strip-indent: 4.0.0 + strip-indent: 4.1.1 url: 0.11.4 - '@pushrocks/smarttime@4.0.1': - dependencies: - '@pushrocks/lik': 6.0.2 - '@pushrocks/smartdelay': 2.0.13 - '@pushrocks/smartpromise': 3.1.10 - croner: 5.7.0 - dayjs: 1.11.13 - is-nan: 1.3.2 - pretty-ms: 8.0.0 - '@remirror/core-constants@3.0.0': {} - '@rolldown/binding-android-arm64@1.0.0-beta.52': + '@rolldown/binding-android-arm64@1.0.0-rc.11': optional: true - '@rolldown/binding-darwin-arm64@1.0.0-beta.52': + '@rolldown/binding-darwin-arm64@1.0.0-rc.11': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.52': + '@rolldown/binding-darwin-x64@1.0.0-rc.11': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.52': + '@rolldown/binding-freebsd-x64@1.0.0-rc.11': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.52': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.11': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.52': + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.11': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.52': + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.11': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.52': + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.11': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.52': + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.11': optional: true - '@rolldown/binding-openharmony-arm64@1.0.0-beta.52': + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.11': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.52': + '@rolldown/binding-linux-x64-musl@1.0.0-rc.11': + optional: true + + '@rolldown/binding-openharmony-arm64@1.0.0-rc.11': + optional: true + + '@rolldown/binding-wasm32-wasi@1.0.0-rc.11(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: - '@napi-rs/wasm-runtime': 1.1.0 + '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.52': + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.11': optional: true - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.52': + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.11': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.52': + '@rolldown/pluginutils@1.0.0-rc.11': {} + + '@rspack/binding-darwin-arm64@1.7.11': optional: true - '@rolldown/pluginutils@1.0.0-beta.52': {} - - '@rspack/binding-darwin-arm64@1.6.8': + '@rspack/binding-darwin-x64@1.7.11': optional: true - '@rspack/binding-darwin-x64@1.6.8': + '@rspack/binding-linux-arm64-gnu@1.7.11': optional: true - '@rspack/binding-linux-arm64-gnu@1.6.8': + '@rspack/binding-linux-arm64-musl@1.7.11': optional: true - '@rspack/binding-linux-arm64-musl@1.6.8': + '@rspack/binding-linux-x64-gnu@1.7.11': optional: true - '@rspack/binding-linux-x64-gnu@1.6.8': + '@rspack/binding-linux-x64-musl@1.7.11': optional: true - '@rspack/binding-linux-x64-musl@1.6.8': - optional: true - - '@rspack/binding-wasm32-wasi@1.6.8': + '@rspack/binding-wasm32-wasi@1.7.11': dependencies: '@napi-rs/wasm-runtime': 1.0.7 optional: true - '@rspack/binding-win32-arm64-msvc@1.6.8': + '@rspack/binding-win32-arm64-msvc@1.7.11': optional: true - '@rspack/binding-win32-ia32-msvc@1.6.8': + '@rspack/binding-win32-ia32-msvc@1.7.11': optional: true - '@rspack/binding-win32-x64-msvc@1.6.8': + '@rspack/binding-win32-x64-msvc@1.7.11': optional: true - '@rspack/binding@1.6.8': + '@rspack/binding@1.7.11': optionalDependencies: - '@rspack/binding-darwin-arm64': 1.6.8 - '@rspack/binding-darwin-x64': 1.6.8 - '@rspack/binding-linux-arm64-gnu': 1.6.8 - '@rspack/binding-linux-arm64-musl': 1.6.8 - '@rspack/binding-linux-x64-gnu': 1.6.8 - '@rspack/binding-linux-x64-musl': 1.6.8 - '@rspack/binding-wasm32-wasi': 1.6.8 - '@rspack/binding-win32-arm64-msvc': 1.6.8 - '@rspack/binding-win32-ia32-msvc': 1.6.8 - '@rspack/binding-win32-x64-msvc': 1.6.8 + '@rspack/binding-darwin-arm64': 1.7.11 + '@rspack/binding-darwin-x64': 1.7.11 + '@rspack/binding-linux-arm64-gnu': 1.7.11 + '@rspack/binding-linux-arm64-musl': 1.7.11 + '@rspack/binding-linux-x64-gnu': 1.7.11 + '@rspack/binding-linux-x64-musl': 1.7.11 + '@rspack/binding-wasm32-wasi': 1.7.11 + '@rspack/binding-win32-arm64-msvc': 1.7.11 + '@rspack/binding-win32-ia32-msvc': 1.7.11 + '@rspack/binding-win32-x64-msvc': 1.7.11 - '@rspack/core@1.6.8': + '@rspack/core@1.7.11': dependencies: - '@module-federation/runtime-tools': 0.21.6 - '@rspack/binding': 1.6.8 + '@module-federation/runtime-tools': 0.22.0 + '@rspack/binding': 1.7.11 '@rspack/lite-tapable': 1.1.0 '@rspack/lite-tapable@1.1.0': {} '@sec-ant/readable-stream@0.4.1': {} - '@signature.digital/tools@1.1.0': + '@smithy/chunked-blob-reader-native@4.2.3': dependencies: - '@tsclass/tsclass': 4.2.0 - - '@sindresorhus/is@5.6.0': {} - - '@smithy/abort-controller@3.1.9': - dependencies: - '@smithy/types': 3.7.2 + '@smithy/util-base64': 4.3.2 tslib: 2.8.1 - '@smithy/chunked-blob-reader-native@3.0.1': - dependencies: - '@smithy/util-base64': 3.0.0 - tslib: 2.8.1 - - '@smithy/chunked-blob-reader@4.0.0': + '@smithy/chunked-blob-reader@5.2.2': dependencies: tslib: 2.8.1 - '@smithy/config-resolver@3.0.13': + '@smithy/config-resolver@4.4.17': dependencies: - '@smithy/node-config-provider': 3.1.12 - '@smithy/types': 3.7.2 - '@smithy/util-config-provider': 3.0.0 - '@smithy/util-middleware': 3.0.11 + '@smithy/node-config-provider': 4.3.14 + '@smithy/types': 4.14.1 + '@smithy/util-config-provider': 4.2.2 + '@smithy/util-endpoints': 3.4.2 + '@smithy/util-middleware': 4.2.14 tslib: 2.8.1 - '@smithy/core@2.5.5': + '@smithy/core@3.23.17': dependencies: - '@smithy/middleware-serde': 3.0.11 - '@smithy/protocol-http': 4.1.8 - '@smithy/types': 3.7.2 - '@smithy/util-body-length-browser': 3.0.0 - '@smithy/util-middleware': 3.0.11 - '@smithy/util-stream': 3.3.2 - '@smithy/util-utf8': 3.0.0 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 + '@smithy/url-parser': 4.2.14 + '@smithy/util-base64': 4.3.2 + '@smithy/util-body-length-browser': 4.2.2 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-stream': 4.5.25 + '@smithy/util-utf8': 4.2.2 + '@smithy/uuid': 1.1.2 tslib: 2.8.1 - '@smithy/credential-provider-imds@3.2.8': + '@smithy/credential-provider-imds@4.2.14': dependencies: - '@smithy/node-config-provider': 3.1.12 - '@smithy/property-provider': 3.1.11 - '@smithy/types': 3.7.2 - '@smithy/url-parser': 3.0.11 + '@smithy/node-config-provider': 4.3.14 + '@smithy/property-provider': 4.2.14 + '@smithy/types': 4.14.1 + '@smithy/url-parser': 4.2.14 tslib: 2.8.1 - '@smithy/eventstream-codec@3.1.10': + '@smithy/eventstream-codec@4.2.14': dependencies: '@aws-crypto/crc32': 5.2.0 - '@smithy/types': 3.7.2 - '@smithy/util-hex-encoding': 3.0.0 + '@smithy/types': 4.14.1 + '@smithy/util-hex-encoding': 4.2.2 tslib: 2.8.1 - '@smithy/eventstream-serde-browser@3.0.14': + '@smithy/eventstream-serde-browser@4.2.14': dependencies: - '@smithy/eventstream-serde-universal': 3.0.13 - '@smithy/types': 3.7.2 + '@smithy/eventstream-serde-universal': 4.2.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/eventstream-serde-config-resolver@3.0.11': + '@smithy/eventstream-serde-config-resolver@4.3.14': dependencies: - '@smithy/types': 3.7.2 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/eventstream-serde-node@3.0.13': + '@smithy/eventstream-serde-node@4.2.14': dependencies: - '@smithy/eventstream-serde-universal': 3.0.13 - '@smithy/types': 3.7.2 + '@smithy/eventstream-serde-universal': 4.2.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/eventstream-serde-universal@3.0.13': + '@smithy/eventstream-serde-universal@4.2.14': dependencies: - '@smithy/eventstream-codec': 3.1.10 - '@smithy/types': 3.7.2 + '@smithy/eventstream-codec': 4.2.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/fetch-http-handler@4.1.2': + '@smithy/fetch-http-handler@5.3.17': dependencies: - '@smithy/protocol-http': 4.1.8 - '@smithy/querystring-builder': 3.0.11 - '@smithy/types': 3.7.2 - '@smithy/util-base64': 3.0.0 + '@smithy/protocol-http': 5.3.14 + '@smithy/querystring-builder': 4.2.14 + '@smithy/types': 4.14.1 + '@smithy/util-base64': 4.3.2 tslib: 2.8.1 - '@smithy/hash-blob-browser@3.1.10': + '@smithy/hash-blob-browser@4.2.15': dependencies: - '@smithy/chunked-blob-reader': 4.0.0 - '@smithy/chunked-blob-reader-native': 3.0.1 - '@smithy/types': 3.7.2 + '@smithy/chunked-blob-reader': 5.2.2 + '@smithy/chunked-blob-reader-native': 4.2.3 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/hash-node@3.0.11': + '@smithy/hash-node@4.2.14': dependencies: - '@smithy/types': 3.7.2 - '@smithy/util-buffer-from': 3.0.0 - '@smithy/util-utf8': 3.0.0 + '@smithy/types': 4.14.1 + '@smithy/util-buffer-from': 4.2.2 + '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 - '@smithy/hash-stream-node@3.1.10': + '@smithy/hash-stream-node@4.2.14': dependencies: - '@smithy/types': 3.7.2 - '@smithy/util-utf8': 3.0.0 + '@smithy/types': 4.14.1 + '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 - '@smithy/invalid-dependency@3.0.11': + '@smithy/invalid-dependency@4.2.14': dependencies: - '@smithy/types': 3.7.2 + '@smithy/types': 4.14.1 tslib: 2.8.1 '@smithy/is-array-buffer@2.2.0': dependencies: tslib: 2.8.1 - '@smithy/is-array-buffer@3.0.0': + '@smithy/is-array-buffer@4.2.2': dependencies: tslib: 2.8.1 - '@smithy/md5-js@3.0.11': + '@smithy/md5-js@4.2.14': dependencies: - '@smithy/types': 3.7.2 - '@smithy/util-utf8': 3.0.0 + '@smithy/types': 4.14.1 + '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 - '@smithy/middleware-content-length@3.0.13': + '@smithy/middleware-content-length@4.2.14': dependencies: - '@smithy/protocol-http': 4.1.8 - '@smithy/types': 3.7.2 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/middleware-endpoint@3.2.5': + '@smithy/middleware-endpoint@4.4.32': dependencies: - '@smithy/core': 2.5.5 - '@smithy/middleware-serde': 3.0.11 - '@smithy/node-config-provider': 3.1.12 - '@smithy/shared-ini-file-loader': 3.1.12 - '@smithy/types': 3.7.2 - '@smithy/url-parser': 3.0.11 - '@smithy/util-middleware': 3.0.11 + '@smithy/core': 3.23.17 + '@smithy/middleware-serde': 4.2.20 + '@smithy/node-config-provider': 4.3.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 + '@smithy/url-parser': 4.2.14 + '@smithy/util-middleware': 4.2.14 tslib: 2.8.1 - '@smithy/middleware-retry@3.0.30': + '@smithy/middleware-retry@4.5.7': dependencies: - '@smithy/node-config-provider': 3.1.12 - '@smithy/protocol-http': 4.1.8 - '@smithy/service-error-classification': 3.0.11 - '@smithy/smithy-client': 3.5.0 - '@smithy/types': 3.7.2 - '@smithy/util-middleware': 3.0.11 - '@smithy/util-retry': 3.0.11 - tslib: 2.8.1 - uuid: 9.0.1 - - '@smithy/middleware-serde@3.0.11': - dependencies: - '@smithy/types': 3.7.2 + '@smithy/core': 3.23.17 + '@smithy/node-config-provider': 4.3.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/service-error-classification': 4.3.1 + '@smithy/smithy-client': 4.12.13 + '@smithy/types': 4.14.1 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-retry': 4.3.8 + '@smithy/uuid': 1.1.2 tslib: 2.8.1 - '@smithy/middleware-stack@3.0.11': + '@smithy/middleware-serde@4.2.20': dependencies: - '@smithy/types': 3.7.2 + '@smithy/core': 3.23.17 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/node-config-provider@3.1.12': + '@smithy/middleware-stack@4.2.14': dependencies: - '@smithy/property-provider': 3.1.11 - '@smithy/shared-ini-file-loader': 3.1.12 - '@smithy/types': 3.7.2 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/node-http-handler@3.3.2': + '@smithy/node-config-provider@4.3.14': dependencies: - '@smithy/abort-controller': 3.1.9 - '@smithy/protocol-http': 4.1.8 - '@smithy/querystring-builder': 3.0.11 - '@smithy/types': 3.7.2 + '@smithy/property-provider': 4.2.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/property-provider@3.1.11': + '@smithy/node-http-handler@4.6.1': dependencies: - '@smithy/types': 3.7.2 + '@smithy/protocol-http': 5.3.14 + '@smithy/querystring-builder': 4.2.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/protocol-http@4.1.8': + '@smithy/property-provider@4.2.14': dependencies: - '@smithy/types': 3.7.2 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/querystring-builder@3.0.11': + '@smithy/protocol-http@5.3.14': dependencies: - '@smithy/types': 3.7.2 - '@smithy/util-uri-escape': 3.0.0 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/querystring-parser@3.0.11': + '@smithy/querystring-builder@4.2.14': dependencies: - '@smithy/types': 3.7.2 + '@smithy/types': 4.14.1 + '@smithy/util-uri-escape': 4.2.2 tslib: 2.8.1 - '@smithy/service-error-classification@3.0.11': + '@smithy/querystring-parser@4.2.14': dependencies: - '@smithy/types': 3.7.2 - - '@smithy/shared-ini-file-loader@3.1.12': - dependencies: - '@smithy/types': 3.7.2 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/signature-v4@4.2.4': + '@smithy/service-error-classification@4.3.1': dependencies: - '@smithy/is-array-buffer': 3.0.0 - '@smithy/protocol-http': 4.1.8 - '@smithy/types': 3.7.2 - '@smithy/util-hex-encoding': 3.0.0 - '@smithy/util-middleware': 3.0.11 - '@smithy/util-uri-escape': 3.0.0 - '@smithy/util-utf8': 3.0.0 + '@smithy/types': 4.14.1 + + '@smithy/shared-ini-file-loader@4.4.9': + dependencies: + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/smithy-client@3.5.0': + '@smithy/signature-v4@5.3.14': dependencies: - '@smithy/core': 2.5.5 - '@smithy/middleware-endpoint': 3.2.5 - '@smithy/middleware-stack': 3.0.11 - '@smithy/protocol-http': 4.1.8 - '@smithy/types': 3.7.2 - '@smithy/util-stream': 3.3.2 + '@smithy/is-array-buffer': 4.2.2 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 + '@smithy/util-hex-encoding': 4.2.2 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-uri-escape': 4.2.2 + '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 - '@smithy/types@3.7.2': + '@smithy/smithy-client@4.12.13': + dependencies: + '@smithy/core': 3.23.17 + '@smithy/middleware-endpoint': 4.4.32 + '@smithy/middleware-stack': 4.2.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 + '@smithy/util-stream': 4.5.25 + tslib: 2.8.1 + + '@smithy/types@4.14.1': dependencies: tslib: 2.8.1 - '@smithy/url-parser@3.0.11': + '@smithy/url-parser@4.2.14': dependencies: - '@smithy/querystring-parser': 3.0.11 - '@smithy/types': 3.7.2 + '@smithy/querystring-parser': 4.2.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/util-base64@3.0.0': + '@smithy/util-base64@4.3.2': dependencies: - '@smithy/util-buffer-from': 3.0.0 - '@smithy/util-utf8': 3.0.0 + '@smithy/util-buffer-from': 4.2.2 + '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 - '@smithy/util-body-length-browser@3.0.0': + '@smithy/util-body-length-browser@4.2.2': dependencies: tslib: 2.8.1 - '@smithy/util-body-length-node@3.0.0': + '@smithy/util-body-length-node@4.2.3': dependencies: tslib: 2.8.1 @@ -5181,66 +4758,65 @@ snapshots: '@smithy/is-array-buffer': 2.2.0 tslib: 2.8.1 - '@smithy/util-buffer-from@3.0.0': + '@smithy/util-buffer-from@4.2.2': dependencies: - '@smithy/is-array-buffer': 3.0.0 + '@smithy/is-array-buffer': 4.2.2 tslib: 2.8.1 - '@smithy/util-config-provider@3.0.0': + '@smithy/util-config-provider@4.2.2': dependencies: tslib: 2.8.1 - '@smithy/util-defaults-mode-browser@3.0.30': + '@smithy/util-defaults-mode-browser@4.3.49': dependencies: - '@smithy/property-provider': 3.1.11 - '@smithy/smithy-client': 3.5.0 - '@smithy/types': 3.7.2 - bowser: 2.11.0 + '@smithy/property-provider': 4.2.14 + '@smithy/smithy-client': 4.12.13 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/util-defaults-mode-node@3.0.30': + '@smithy/util-defaults-mode-node@4.2.54': dependencies: - '@smithy/config-resolver': 3.0.13 - '@smithy/credential-provider-imds': 3.2.8 - '@smithy/node-config-provider': 3.1.12 - '@smithy/property-provider': 3.1.11 - '@smithy/smithy-client': 3.5.0 - '@smithy/types': 3.7.2 + '@smithy/config-resolver': 4.4.17 + '@smithy/credential-provider-imds': 4.2.14 + '@smithy/node-config-provider': 4.3.14 + '@smithy/property-provider': 4.2.14 + '@smithy/smithy-client': 4.12.13 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/util-endpoints@2.1.7': + '@smithy/util-endpoints@3.4.2': dependencies: - '@smithy/node-config-provider': 3.1.12 - '@smithy/types': 3.7.2 + '@smithy/node-config-provider': 4.3.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/util-hex-encoding@3.0.0': + '@smithy/util-hex-encoding@4.2.2': dependencies: tslib: 2.8.1 - '@smithy/util-middleware@3.0.11': + '@smithy/util-middleware@4.2.14': dependencies: - '@smithy/types': 3.7.2 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/util-retry@3.0.11': + '@smithy/util-retry@4.3.8': dependencies: - '@smithy/service-error-classification': 3.0.11 - '@smithy/types': 3.7.2 + '@smithy/service-error-classification': 4.3.1 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/util-stream@3.3.2': + '@smithy/util-stream@4.5.25': dependencies: - '@smithy/fetch-http-handler': 4.1.2 - '@smithy/node-http-handler': 3.3.2 - '@smithy/types': 3.7.2 - '@smithy/util-base64': 3.0.0 - '@smithy/util-buffer-from': 3.0.0 - '@smithy/util-hex-encoding': 3.0.0 - '@smithy/util-utf8': 3.0.0 + '@smithy/fetch-http-handler': 5.3.17 + '@smithy/node-http-handler': 4.6.1 + '@smithy/types': 4.14.1 + '@smithy/util-base64': 4.3.2 + '@smithy/util-buffer-from': 4.2.2 + '@smithy/util-hex-encoding': 4.2.2 + '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 - '@smithy/util-uri-escape@3.0.0': + '@smithy/util-uri-escape@4.2.2': dependencies: tslib: 2.8.1 @@ -5249,207 +4825,189 @@ snapshots: '@smithy/util-buffer-from': 2.2.0 tslib: 2.8.1 - '@smithy/util-utf8@3.0.0': + '@smithy/util-utf8@4.2.2': dependencies: - '@smithy/util-buffer-from': 3.0.0 + '@smithy/util-buffer-from': 4.2.2 tslib: 2.8.1 - '@smithy/util-waiter@3.2.0': + '@smithy/util-waiter@4.3.0': dependencies: - '@smithy/abort-controller': 3.1.9 - '@smithy/types': 3.7.2 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@svgdotjs/svg.draggable.js@3.0.6(@svgdotjs/svg.js@3.2.5)': + '@smithy/uuid@1.1.2': dependencies: - '@svgdotjs/svg.js': 3.2.5 + tslib: 2.8.1 - '@svgdotjs/svg.filter.js@3.0.9': + '@tempfix/lenis@1.3.20': {} + + '@tempfix/webcontainer__api@1.6.1': {} + + '@tiptap/core@2.27.2(@tiptap/pm@2.27.2)': dependencies: - '@svgdotjs/svg.js': 3.2.5 + '@tiptap/pm': 2.27.2 - '@svgdotjs/svg.js@3.2.5': {} - - '@svgdotjs/svg.resize.js@2.0.5(@svgdotjs/svg.js@3.2.5)(@svgdotjs/svg.select.js@4.0.3(@svgdotjs/svg.js@3.2.5))': + '@tiptap/extension-blockquote@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))': dependencies: - '@svgdotjs/svg.js': 3.2.5 - '@svgdotjs/svg.select.js': 4.0.3(@svgdotjs/svg.js@3.2.5) + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) - '@svgdotjs/svg.select.js@4.0.3(@svgdotjs/svg.js@3.2.5)': + '@tiptap/extension-bold@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))': dependencies: - '@svgdotjs/svg.js': 3.2.5 + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) - '@szmarczak/http-timer@5.0.1': + '@tiptap/extension-bullet-list@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))': dependencies: - defer-to-connect: 2.0.1 + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) - '@tempfix/idb@8.0.3': {} - - '@tiptap/core@2.27.1(@tiptap/pm@2.27.1)': + '@tiptap/extension-code-block@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)': dependencies: - '@tiptap/pm': 2.27.1 + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + '@tiptap/pm': 2.27.2 - '@tiptap/extension-blockquote@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))': + '@tiptap/extension-code@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))': dependencies: - '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) - '@tiptap/extension-bold@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))': + '@tiptap/extension-document@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))': dependencies: - '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) - '@tiptap/extension-bullet-list@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))': + '@tiptap/extension-dropcursor@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)': dependencies: - '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + '@tiptap/pm': 2.27.2 - '@tiptap/extension-code-block@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))(@tiptap/pm@2.27.1)': + '@tiptap/extension-gapcursor@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)': dependencies: - '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) - '@tiptap/pm': 2.27.1 + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + '@tiptap/pm': 2.27.2 - '@tiptap/extension-code@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))': + '@tiptap/extension-hard-break@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))': dependencies: - '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) - '@tiptap/extension-document@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))': + '@tiptap/extension-heading@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))': dependencies: - '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) - '@tiptap/extension-dropcursor@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))(@tiptap/pm@2.27.1)': + '@tiptap/extension-history@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)': dependencies: - '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) - '@tiptap/pm': 2.27.1 + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + '@tiptap/pm': 2.27.2 - '@tiptap/extension-gapcursor@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))(@tiptap/pm@2.27.1)': + '@tiptap/extension-horizontal-rule@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)': dependencies: - '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) - '@tiptap/pm': 2.27.1 + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + '@tiptap/pm': 2.27.2 - '@tiptap/extension-hard-break@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))': + '@tiptap/extension-italic@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))': dependencies: - '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) - '@tiptap/extension-heading@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))': + '@tiptap/extension-link@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)': dependencies: - '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) - - '@tiptap/extension-history@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))(@tiptap/pm@2.27.1)': - dependencies: - '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) - '@tiptap/pm': 2.27.1 - - '@tiptap/extension-horizontal-rule@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))(@tiptap/pm@2.27.1)': - dependencies: - '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) - '@tiptap/pm': 2.27.1 - - '@tiptap/extension-italic@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))': - dependencies: - '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) - - '@tiptap/extension-link@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))(@tiptap/pm@2.27.1)': - dependencies: - '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) - '@tiptap/pm': 2.27.1 + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + '@tiptap/pm': 2.27.2 linkifyjs: 4.3.2 - '@tiptap/extension-list-item@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))': + '@tiptap/extension-list-item@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))': dependencies: - '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) - '@tiptap/extension-ordered-list@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))': + '@tiptap/extension-ordered-list@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))': dependencies: - '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) - '@tiptap/extension-paragraph@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))': + '@tiptap/extension-paragraph@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))': dependencies: - '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) - '@tiptap/extension-strike@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))': + '@tiptap/extension-strike@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))': dependencies: - '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) - '@tiptap/extension-text-align@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))': + '@tiptap/extension-text-align@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))': dependencies: - '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) - '@tiptap/extension-text-style@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))': + '@tiptap/extension-text-style@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))': dependencies: - '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) - '@tiptap/extension-text@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))': + '@tiptap/extension-text@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))': dependencies: - '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) - '@tiptap/extension-typography@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))': + '@tiptap/extension-typography@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))': dependencies: - '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) - '@tiptap/extension-underline@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))': + '@tiptap/extension-underline@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))': dependencies: - '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) - '@tiptap/pm@2.27.1': + '@tiptap/pm@2.27.2': dependencies: - prosemirror-changeset: 2.3.1 + prosemirror-changeset: 2.4.1 prosemirror-collab: 1.3.1 prosemirror-commands: 1.7.1 prosemirror-dropcursor: 1.8.2 - prosemirror-gapcursor: 1.4.0 + prosemirror-gapcursor: 1.4.1 prosemirror-history: 1.5.0 prosemirror-inputrules: 1.5.1 prosemirror-keymap: 1.2.3 - prosemirror-markdown: 1.13.2 - prosemirror-menu: 1.2.5 + prosemirror-markdown: 1.13.4 + prosemirror-menu: 1.3.2 prosemirror-model: 1.25.4 prosemirror-schema-basic: 1.2.4 prosemirror-schema-list: 1.5.1 prosemirror-state: 1.4.4 - prosemirror-tables: 1.8.3 - prosemirror-trailing-node: 3.0.0(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.4) - prosemirror-transform: 1.10.5 - prosemirror-view: 1.41.4 + prosemirror-tables: 1.8.5 + prosemirror-trailing-node: 3.0.0(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.8) + prosemirror-transform: 1.12.0 + prosemirror-view: 1.41.8 - '@tiptap/starter-kit@2.27.1': + '@tiptap/starter-kit@2.27.2': dependencies: - '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) - '@tiptap/extension-blockquote': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1)) - '@tiptap/extension-bold': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1)) - '@tiptap/extension-bullet-list': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1)) - '@tiptap/extension-code': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1)) - '@tiptap/extension-code-block': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))(@tiptap/pm@2.27.1) - '@tiptap/extension-document': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1)) - '@tiptap/extension-dropcursor': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))(@tiptap/pm@2.27.1) - '@tiptap/extension-gapcursor': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))(@tiptap/pm@2.27.1) - '@tiptap/extension-hard-break': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1)) - '@tiptap/extension-heading': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1)) - '@tiptap/extension-history': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))(@tiptap/pm@2.27.1) - '@tiptap/extension-horizontal-rule': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))(@tiptap/pm@2.27.1) - '@tiptap/extension-italic': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1)) - '@tiptap/extension-list-item': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1)) - '@tiptap/extension-ordered-list': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1)) - '@tiptap/extension-paragraph': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1)) - '@tiptap/extension-strike': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1)) - '@tiptap/extension-text': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1)) - '@tiptap/extension-text-style': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1)) - '@tiptap/pm': 2.27.1 + '@tiptap/core': 2.27.2(@tiptap/pm@2.27.2) + '@tiptap/extension-blockquote': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) + '@tiptap/extension-bold': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) + '@tiptap/extension-bullet-list': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) + '@tiptap/extension-code': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) + '@tiptap/extension-code-block': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2) + '@tiptap/extension-document': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) + '@tiptap/extension-dropcursor': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2) + '@tiptap/extension-gapcursor': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2) + '@tiptap/extension-hard-break': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) + '@tiptap/extension-heading': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) + '@tiptap/extension-history': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2) + '@tiptap/extension-horizontal-rule': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2) + '@tiptap/extension-italic': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) + '@tiptap/extension-list-item': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) + '@tiptap/extension-ordered-list': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) + '@tiptap/extension-paragraph': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) + '@tiptap/extension-strike': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) + '@tiptap/extension-text': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) + '@tiptap/extension-text-style': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2)) + '@tiptap/pm': 2.27.2 '@tokenizer/inflate@0.4.1': dependencies: debug: 4.4.3 - token-types: 6.1.1 + token-types: 6.1.2 transitivePeerDependencies: - supports-color '@tokenizer/token@0.3.0': {} - '@tsclass/tsclass@4.2.0': - dependencies: - type-fest: 4.30.2 - - '@tsclass/tsclass@9.3.0': + '@tsclass/tsclass@4.4.4': dependencies: type-fest: 4.41.0 + '@tsclass/tsclass@9.5.1': + dependencies: + type-fest: 5.6.0 + '@tybys/wasm-util@0.10.1': dependencies: tslib: 2.8.1 @@ -5459,26 +5017,18 @@ snapshots: '@types/clean-css@4.2.11': dependencies: - '@types/node': 22.10.2 + '@types/node': 25.6.0 source-map: 0.6.1 - '@types/debug@4.1.12': + '@types/debug@4.1.13': dependencies: - '@types/ms': 0.7.34 + '@types/ms': 2.1.0 - '@types/from2@2.3.5': + '@types/dom-mediacapture-transform@0.1.11': dependencies: - '@types/node': 20.10.0 + '@types/dom-webcodecs': 0.1.13 - '@types/fs-extra@11.0.4': - dependencies: - '@types/jsonfile': 6.1.4 - '@types/node': 20.10.0 - - '@types/glob@8.1.0': - dependencies: - '@types/minimatch': 5.1.2 - '@types/node': 20.10.0 + '@types/dom-webcodecs@0.1.13': {} '@types/hast@3.0.4': dependencies: @@ -5490,16 +5040,8 @@ snapshots: '@types/relateurl': 0.2.33 '@types/uglify-js': 3.17.5 - '@types/http-cache-semantics@4.0.4': {} - - '@types/js-yaml@3.12.10': {} - '@types/js-yaml@4.0.9': {} - '@types/jsonfile@6.1.4': - dependencies: - '@types/node': 20.10.0 - '@types/linkify-it@5.0.0': {} '@types/markdown-it@14.1.2': @@ -5515,37 +5057,35 @@ snapshots: '@types/mime-types@2.1.4': {} - '@types/minimatch@5.1.2': {} + '@types/ms@2.1.0': {} - '@types/ms@0.7.34': {} - - '@types/node@20.10.0': + '@types/mute-stream@0.0.4': dependencies: - undici-types: 5.26.5 + '@types/node': 25.6.0 - '@types/node@22.10.2': + '@types/node@22.19.17': dependencies: - undici-types: 6.20.0 + undici-types: 6.21.0 + + '@types/node@25.6.0': + dependencies: + undici-types: 7.19.2 '@types/randomatic@3.1.5': {} '@types/relateurl@0.2.33': {} - '@types/semver@7.5.8': {} + '@types/semver@7.7.1': {} '@types/symbol-tree@3.2.5': {} - '@types/tar-stream@3.1.4': - dependencies: - '@types/node': 22.10.2 - '@types/through2@2.0.41': dependencies: - '@types/node': 20.10.0 + '@types/node': 25.6.0 '@types/trusted-types@2.0.7': {} - '@types/turndown@5.0.5': {} + '@types/turndown@5.0.6': {} '@types/uglify-js@3.17.5': dependencies: @@ -5555,13 +5095,17 @@ snapshots: '@types/uuid@9.0.8': {} + '@types/whatwg-mimetype@3.0.2': {} + '@types/which@3.0.4': {} - '@ungap/structured-clone@1.2.1': {} + '@types/wrap-ansi@3.0.0': {} - '@webcontainer/api@1.2.0': {} + '@types/ws@8.18.1': + dependencies: + '@types/node': 25.6.0 - '@yr/monotone-cubic-spline@1.0.3': {} + '@ungap/structured-clone@1.3.0': {} agentkeepalive@4.6.0: dependencies: @@ -5569,65 +5113,75 @@ snapshots: ansi-256-colors@1.1.0: {} - ansi-regex@5.0.1: {} + ansi-escapes@4.3.2: + dependencies: + type-fest: 0.21.3 - ansi-regex@6.0.1: {} + ansi-regex@5.0.1: {} ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 - ansi-styles@6.2.1: {} - - apexcharts@5.3.6: - dependencies: - '@svgdotjs/svg.draggable.js': 3.0.6(@svgdotjs/svg.js@3.2.5) - '@svgdotjs/svg.filter.js': 3.0.9 - '@svgdotjs/svg.js': 3.2.5 - '@svgdotjs/svg.resize.js': 2.0.5(@svgdotjs/svg.js@3.2.5)(@svgdotjs/svg.select.js@4.0.3(@svgdotjs/svg.js@3.2.5)) - '@svgdotjs/svg.select.js': 4.0.3(@svgdotjs/svg.js@3.2.5) - '@yr/monotone-cubic-spline': 1.0.3 - - argparse@1.0.10: - dependencies: - sprintf-js: 1.0.3 - argparse@2.0.1: {} asynckit@0.4.0: {} - b4a@1.6.7: {} + b4a@1.8.1: {} bail@2.0.2: {} balanced-match@1.0.2: {} - bare-events@2.5.0: - optional: true + balanced-match@4.0.4: {} + + bare-events@2.8.2: {} + + bare-fs@4.7.1: + dependencies: + bare-events: 2.8.2 + bare-path: 3.0.0 + bare-stream: 2.13.1(bare-events@2.8.2) + bare-url: 2.4.2 + fast-fifo: 1.3.2 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + + bare-os@3.9.1: {} + + bare-path@3.0.0: + dependencies: + bare-os: 3.9.1 + + bare-stream@2.13.1(bare-events@2.8.2): + dependencies: + streamx: 2.25.0 + teex: 1.0.1 + optionalDependencies: + bare-events: 2.8.2 + transitivePeerDependencies: + - react-native-b4a + + bare-url@2.4.2: + dependencies: + bare-path: 3.0.0 base64-js@1.5.1: {} - bowser@2.11.0: {} + bowser@2.14.1: {} - brace-expansion@1.1.11: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - brace-expansion@2.0.1: + brace-expansion@2.1.0: dependencies: balanced-match: 1.0.2 - broadcast-channel@7.0.0: + brace-expansion@5.0.5: dependencies: - '@babel/runtime': 7.23.4 - oblivious-set: 1.4.0 - p-queue: 6.6.2 - unload: 2.4.1 + balanced-match: 4.0.4 - broadcast-channel@7.2.0: + broadcast-channel@7.3.0: dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.28.6 oblivious-set: 2.0.0 p-queue: 6.6.2 unload: 2.4.1 @@ -5639,33 +5193,22 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 - cacheable-lookup@7.0.0: {} - - cacheable-request@10.2.14: - dependencies: - '@types/http-cache-semantics': 4.0.4 - get-stream: 6.0.1 - http-cache-semantics: 4.1.1 - keyv: 4.5.4 - mimic-response: 4.0.0 - normalize-url: 8.0.1 - responselike: 3.0.0 - - call-bind-apply-helpers@1.0.1: + call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 function-bind: 1.1.2 - call-bind@1.0.5: + call-bind@1.0.9: dependencies: - function-bind: 1.1.2 - get-intrinsic: 1.2.2 - set-function-length: 1.1.1 + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + get-intrinsic: 1.3.0 + set-function-length: 1.2.2 - call-bound@1.0.3: + call-bound@1.0.4: dependencies: - call-bind-apply-helpers: 1.0.1 - get-intrinsic: 1.2.6 + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 callsites@3.1.0: {} @@ -5682,6 +5225,8 @@ snapshots: character-entities@2.0.2: {} + chardet@0.7.0: {} + chokidar@5.0.0: dependencies: readdirp: 5.0.0 @@ -5690,7 +5235,7 @@ snapshots: dependencies: source-map: 0.6.1 - clean-stack@1.3.0: {} + cli-width@4.1.0: {} color-convert@2.0.1: dependencies: @@ -5706,28 +5251,14 @@ snapshots: commander@2.20.3: {} - concat-map@0.0.1: {} - config-chain@1.1.13: dependencies: ini: 1.3.8 proto-list: 1.2.4 - core-util-is@1.0.3: {} - crelt@1.0.6: {} - croner@5.7.0: {} - - croner@7.0.5: {} - - croner@9.0.0: {} - - cross-spawn@7.0.3: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 + croner@10.0.1: {} cross-spawn@7.0.6: dependencies: @@ -5741,42 +5272,30 @@ snapshots: date-fns@4.1.0: {} - dayjs@1.11.10: {} - - dayjs@1.11.13: {} - - debug@4.4.0: - dependencies: - ms: 2.1.3 + dayjs@1.11.20: {} debug@4.4.3: dependencies: ms: 2.1.3 - decode-named-character-reference@1.0.2: + decode-named-character-reference@1.3.0: dependencies: character-entities: 2.0.2 - decompress-response@6.0.0: - dependencies: - mimic-response: 3.1.0 - deep-extend@0.6.0: {} - defer-to-connect@2.0.1: {} - - define-data-property@1.1.1: + define-data-property@1.1.4: dependencies: - get-intrinsic: 1.2.2 - gopd: 1.0.1 - has-property-descriptors: 1.0.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 define-lazy-prop@2.0.0: {} define-properties@1.2.1: dependencies: - define-data-property: 1.1.1 - has-property-descriptors: 1.0.1 + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 object-keys: 1.1.1 delayed-stream@1.0.0: {} @@ -5787,63 +5306,70 @@ snapshots: dependencies: dequal: 2.0.3 + dompurify@3.2.7: + optionalDependencies: + '@types/trusted-types': 2.0.7 + dunder-proto@1.0.1: dependencies: - call-bind-apply-helpers: 1.0.1 + call-bind-apply-helpers: 1.0.2 es-errors: 1.3.0 gopd: 1.2.0 - eastasianwidth@0.2.0: {} + echarts@5.6.0: + dependencies: + tslib: 2.3.0 + zrender: 5.6.1 emoji-regex@8.0.0: {} - emoji-regex@9.2.2: {} - entities@4.5.0: {} + entities@7.0.1: {} + es-define-property@1.0.1: {} es-errors@1.3.0: {} - es-object-atoms@1.0.0: + es-object-atoms@1.1.1: dependencies: es-errors: 1.3.0 es-set-tostringtag@2.1.0: dependencies: es-errors: 1.3.0 - get-intrinsic: 1.2.6 + get-intrinsic: 1.3.0 has-tostringtag: 1.0.2 - hasown: 2.0.2 + hasown: 2.0.3 - esbuild@0.27.2: + esbuild@0.27.7: optionalDependencies: - '@esbuild/aix-ppc64': 0.27.2 - '@esbuild/android-arm': 0.27.2 - '@esbuild/android-arm64': 0.27.2 - '@esbuild/android-x64': 0.27.2 - '@esbuild/darwin-arm64': 0.27.2 - '@esbuild/darwin-x64': 0.27.2 - '@esbuild/freebsd-arm64': 0.27.2 - '@esbuild/freebsd-x64': 0.27.2 - '@esbuild/linux-arm': 0.27.2 - '@esbuild/linux-arm64': 0.27.2 - '@esbuild/linux-ia32': 0.27.2 - '@esbuild/linux-loong64': 0.27.2 - '@esbuild/linux-mips64el': 0.27.2 - '@esbuild/linux-ppc64': 0.27.2 - '@esbuild/linux-riscv64': 0.27.2 - '@esbuild/linux-s390x': 0.27.2 - '@esbuild/linux-x64': 0.27.2 - '@esbuild/netbsd-arm64': 0.27.2 - '@esbuild/netbsd-x64': 0.27.2 - '@esbuild/openbsd-arm64': 0.27.2 - '@esbuild/openbsd-x64': 0.27.2 - '@esbuild/openharmony-arm64': 0.27.2 - '@esbuild/sunos-x64': 0.27.2 - '@esbuild/win32-arm64': 0.27.2 - '@esbuild/win32-ia32': 0.27.2 - '@esbuild/win32-x64': 0.27.2 + '@esbuild/aix-ppc64': 0.27.7 + '@esbuild/android-arm': 0.27.7 + '@esbuild/android-arm64': 0.27.7 + '@esbuild/android-x64': 0.27.7 + '@esbuild/darwin-arm64': 0.27.7 + '@esbuild/darwin-x64': 0.27.7 + '@esbuild/freebsd-arm64': 0.27.7 + '@esbuild/freebsd-x64': 0.27.7 + '@esbuild/linux-arm': 0.27.7 + '@esbuild/linux-arm64': 0.27.7 + '@esbuild/linux-ia32': 0.27.7 + '@esbuild/linux-loong64': 0.27.7 + '@esbuild/linux-mips64el': 0.27.7 + '@esbuild/linux-ppc64': 0.27.7 + '@esbuild/linux-riscv64': 0.27.7 + '@esbuild/linux-s390x': 0.27.7 + '@esbuild/linux-x64': 0.27.7 + '@esbuild/netbsd-arm64': 0.27.7 + '@esbuild/netbsd-x64': 0.27.7 + '@esbuild/openbsd-arm64': 0.27.7 + '@esbuild/openbsd-x64': 0.27.7 + '@esbuild/openharmony-arm64': 0.27.7 + '@esbuild/sunos-x64': 0.27.7 + '@esbuild/win32-arm64': 0.27.7 + '@esbuild/win32-ia32': 0.27.7 + '@esbuild/win32-x64': 0.27.7 escape-string-regexp@4.0.0: {} @@ -5851,15 +5377,25 @@ snapshots: esm@3.2.25: {} - esprima@4.0.1: {} - eventemitter3@4.0.7: {} + events-universal@1.0.1: + dependencies: + bare-events: 2.8.2 + transitivePeerDependencies: + - bare-abort-controller + extend@3.0.2: {} - fake-indexeddb@5.0.2: {} + external-editor@3.1.0: + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 - fake-indexeddb@6.0.0: {} + fake-indexeddb@6.2.5: {} + + fancy-canvas@2.1.0: {} fast-deep-equal@3.1.3: {} @@ -5867,17 +5403,20 @@ snapshots: fast-json-stable-stringify@2.1.0: {} - fast-xml-parser@4.4.1: + fast-xml-builder@1.1.5: dependencies: - strnum: 1.0.5 + path-expression-matcher: 1.5.0 - fast-xml-parser@4.5.1: + fast-xml-parser@4.5.6: dependencies: - strnum: 1.0.5 + strnum: 1.1.2 - fast-xml-parser@5.3.3: + fast-xml-parser@5.7.2: dependencies: - strnum: 2.1.2 + '@nodable/entities': 2.1.0 + fast-xml-builder: 1.1.5 + path-expression-matcher: 1.5.0 + strnum: 2.2.3 fault@2.0.1: dependencies: @@ -5889,15 +5428,15 @@ snapshots: dependencies: get-stream: 9.0.1 strtok3: 9.1.1 - token-types: 6.0.0 - uint8array-extras: 1.4.0 + token-types: 6.1.2 + uint8array-extras: 1.5.0 - file-type@21.1.1: + file-type@22.0.1: dependencies: '@tokenizer/inflate': 0.4.1 - strtok3: 10.3.4 - token-types: 6.1.1 - uint8array-extras: 1.4.0 + strtok3: 10.3.5 + token-types: 6.1.2 + uint8array-extras: 1.5.0 transitivePeerDependencies: - supports-color @@ -5906,146 +5445,73 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 3.0.7 - foreground-child@3.1.1: - dependencies: - cross-spawn: 7.0.3 - signal-exit: 4.1.0 - - foreground-child@3.3.1: - dependencies: - cross-spawn: 7.0.6 - signal-exit: 4.1.0 - - form-data-encoder@2.1.4: {} - form-data@4.0.5: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 es-set-tostringtag: 2.1.0 - hasown: 2.0.2 + hasown: 2.0.3 mime-types: 2.1.35 format@0.2.2: {} - from2@2.3.0: - dependencies: - inherits: 2.0.4 - readable-stream: 2.3.8 - - fs-extra@11.1.1: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - - fs-extra@11.3.2: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - - fs.realpath@1.0.0: {} - fsevents@2.3.3: optional: true function-bind@1.1.2: {} - get-intrinsic@1.2.2: + get-intrinsic@1.3.0: dependencies: - function-bind: 1.1.2 - has-proto: 1.0.1 - has-symbols: 1.0.3 - hasown: 2.0.0 - - get-intrinsic@1.2.6: - dependencies: - call-bind-apply-helpers: 1.0.1 - dunder-proto: 1.0.1 + call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 function-bind: 1.1.2 + get-proto: 1.0.1 gopd: 1.2.0 has-symbols: 1.1.0 - hasown: 2.0.2 + hasown: 2.0.3 math-intrinsics: 1.1.0 - get-stream@6.0.1: {} + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 get-stream@9.0.1: dependencies: '@sec-ant/readable-stream': 0.4.1 is-stream: 4.0.1 - get-tsconfig@4.8.1: + get-tsconfig@4.14.0: dependencies: resolve-pkg-maps: 1.0.0 - glob@10.3.10: + glob@13.0.6: dependencies: - foreground-child: 3.1.1 - jackspeak: 2.3.6 - minimatch: 9.0.3 - minipass: 7.0.4 - path-scurry: 1.10.1 - - glob@11.1.0: - dependencies: - foreground-child: 3.3.1 - jackspeak: 4.1.1 - minimatch: 10.1.1 - minipass: 7.1.2 - package-json-from-dist: 1.0.1 - path-scurry: 2.0.0 - - glob@7.2.3: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - - gopd@1.0.1: - dependencies: - get-intrinsic: 1.2.2 + minimatch: 10.2.5 + minipass: 7.1.3 + path-scurry: 2.0.2 gopd@1.2.0: {} - got@12.6.1: - dependencies: - '@sindresorhus/is': 5.6.0 - '@szmarczak/http-timer': 5.0.1 - cacheable-lookup: 7.0.0 - cacheable-request: 10.2.14 - decompress-response: 6.0.0 - form-data-encoder: 2.1.4 - get-stream: 6.0.1 - http2-wrapper: 2.2.1 - lowercase-keys: 3.0.0 - p-cancelable: 3.0.0 - responselike: 3.0.0 - graceful-fs@4.2.10: {} - graceful-fs@4.2.11: {} - - happy-dom@15.11.7: + happy-dom@20.9.0: dependencies: - entities: 4.5.0 - webidl-conversions: 7.0.0 + '@types/node': 25.6.0 + '@types/whatwg-mimetype': 3.0.2 + '@types/ws': 8.18.1 + entities: 7.0.1 whatwg-mimetype: 3.0.0 + ws: 8.20.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate - has-property-descriptors@1.0.1: + has-property-descriptors@1.0.2: dependencies: - get-intrinsic: 1.2.2 - - has-proto@1.0.1: {} - - has-symbols@1.0.3: {} + es-define-property: 1.0.1 has-symbols@1.1.0: {} @@ -6053,21 +5519,17 @@ snapshots: dependencies: has-symbols: 1.1.0 - hasown@2.0.0: - dependencies: - function-bind: 1.1.2 - - hasown@2.0.2: + hasown@2.0.3: dependencies: function-bind: 1.1.2 hast-util-sanitize@5.0.2: dependencies: '@types/hast': 3.0.4 - '@ungap/structured-clone': 1.2.1 + '@ungap/structured-clone': 1.3.0 unist-util-position: 5.0.0 - hast-util-to-html@9.0.4: + hast-util-to-html@9.0.5: dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.3 @@ -6075,8 +5537,8 @@ snapshots: comma-separated-tokens: 2.0.3 hast-util-whitespace: 3.0.0 html-void-elements: 3.0.0 - mdast-util-to-hast: 13.2.0 - property-information: 6.5.0 + mdast-util-to-hast: 13.2.1 + property-information: 7.1.0 space-separated-tokens: 2.0.2 stringify-entities: 4.0.4 zwitch: 2.0.4 @@ -6101,37 +5563,42 @@ snapshots: html-void-elements@3.0.0: {} - http-cache-semantics@4.1.1: {} - - http2-wrapper@2.2.1: - dependencies: - quick-lru: 5.1.1 - resolve-alpn: 1.2.1 - humanize-ms@1.2.1: dependencies: ms: 2.1.3 - ibantools@4.5.1: {} + ibantools@4.5.4: {} + + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + + idb@8.0.3: {} ieee754@1.2.1: {} - inflight@1.0.6: - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - inherits@2.0.4: {} ini@1.3.8: {} + inquirer@11.1.0: + dependencies: + '@inquirer/core': 9.2.1 + '@inquirer/prompts': 6.0.1 + '@inquirer/type': 2.0.0 + '@types/mute-stream': 0.0.4 + ansi-escapes: 4.3.2 + mute-stream: 1.0.0 + run-async: 3.0.0 + rxjs: 7.8.2 + is-docker@2.2.1: {} is-fullwidth-code-point@3.0.0: {} is-nan@1.3.2: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.9 define-properties: 1.2.1 is-number@4.0.0: {} @@ -6148,50 +5615,23 @@ snapshots: dependencies: is-docker: 2.2.1 - isarray@1.0.0: {} - isexe@2.0.0: {} - isexe@3.1.1: {} + isexe@4.0.0: {} - jackspeak@2.3.6: - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 + js-base64@3.7.8: {} - jackspeak@4.1.1: - dependencies: - '@isaacs/cliui': 8.0.2 - - js-base64@3.7.5: {} - - js-base64@3.7.7: {} - - js-yaml@3.14.1: - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - - js-yaml@4.1.0: + js-yaml@4.1.1: dependencies: argparse: 2.0.1 - json-buffer@3.0.1: {} - - jsonfile@6.1.0: - dependencies: - universalify: 2.0.1 - optionalDependencies: - graceful-fs: 4.2.11 - - keyv@4.5.4: - dependencies: - json-buffer: 3.0.1 - kind-of@6.0.3: {} - lenis@1.3.16: {} + ky@1.14.3: {} + + lightweight-charts@5.2.0: + dependencies: + fancy-canvas: 2.1.0 linkify-it@5.0.0: dependencies: @@ -6199,21 +5639,21 @@ snapshots: linkifyjs@4.3.2: {} - lit-element@4.2.1: + lit-element@4.2.2: dependencies: - '@lit-labs/ssr-dom-shim': 1.4.0 - '@lit/reactive-element': 2.1.1 - lit-html: 3.3.1 + '@lit-labs/ssr-dom-shim': 1.5.1 + '@lit/reactive-element': 2.1.2 + lit-html: 3.3.2 - lit-html@3.3.1: + lit-html@3.3.2: dependencies: '@types/trusted-types': 2.0.7 - lit@3.3.1: + lit@3.3.2: dependencies: - '@lit/reactive-element': 2.1.1 - lit-element: 4.2.1 - lit-html: 3.3.1 + '@lit/reactive-element': 2.1.2 + lit-element: 4.2.2 + lit-html: 3.3.2 lodash.clonedeep@4.5.0: {} @@ -6221,25 +5661,15 @@ snapshots: lower-case@1.1.4: {} - lowercase-keys@3.0.0: {} + lru-cache@11.3.5: {} - lru-cache@10.1.0: {} - - lru-cache@11.0.2: {} - - lucide@0.560.0: {} + lucide@1.14.0: {} make-dir@3.1.0: dependencies: semver: 6.3.1 - make-error-cause@2.3.0: - dependencies: - make-error: 1.3.6 - - make-error@1.3.6: {} - - markdown-it@14.1.0: + markdown-it@14.1.1: dependencies: argparse: 2.0.1 entities: 4.5.0 @@ -6250,6 +5680,8 @@ snapshots: markdown-table@3.0.4: {} + marked@14.0.0: {} + matcher@5.0.0: dependencies: escape-string-regexp: 5.0.0 @@ -6258,26 +5690,26 @@ snapshots: math-random@1.0.4: {} - mdast-util-find-and-replace@3.0.1: + mdast-util-find-and-replace@3.0.2: dependencies: '@types/mdast': 4.0.4 escape-string-regexp: 5.0.0 - unist-util-is: 6.0.0 - unist-util-visit-parents: 6.0.1 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 - mdast-util-from-markdown@2.0.2: + mdast-util-from-markdown@2.0.3: dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 - decode-named-character-reference: 1.0.2 + decode-named-character-reference: 1.3.0 devlop: 1.1.0 mdast-util-to-string: 4.0.0 - micromark: 4.0.1 + micromark: 4.0.2 micromark-util-decode-numeric-character-reference: 2.0.2 micromark-util-decode-string: 2.0.1 micromark-util-normalize-identifier: 2.0.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 unist-util-stringify-position: 4.0.0 transitivePeerDependencies: - supports-color @@ -6287,7 +5719,7 @@ snapshots: '@types/mdast': 4.0.4 devlop: 1.1.0 escape-string-regexp: 5.0.0 - mdast-util-from-markdown: 2.0.2 + mdast-util-from-markdown: 2.0.3 mdast-util-to-markdown: 2.1.2 micromark-extension-frontmatter: 2.0.0 transitivePeerDependencies: @@ -6298,14 +5730,14 @@ snapshots: '@types/mdast': 4.0.4 ccount: 2.0.1 devlop: 1.1.0 - mdast-util-find-and-replace: 3.0.1 + mdast-util-find-and-replace: 3.0.2 micromark-util-character: 2.1.1 - mdast-util-gfm-footnote@2.0.0: + mdast-util-gfm-footnote@2.1.0: dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 + mdast-util-from-markdown: 2.0.3 mdast-util-to-markdown: 2.1.2 micromark-util-normalize-identifier: 2.0.1 transitivePeerDependencies: @@ -6314,7 +5746,7 @@ snapshots: mdast-util-gfm-strikethrough@2.0.0: dependencies: '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.2 + mdast-util-from-markdown: 2.0.3 mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color @@ -6324,7 +5756,7 @@ snapshots: '@types/mdast': 4.0.4 devlop: 1.1.0 markdown-table: 3.0.4 - mdast-util-from-markdown: 2.0.2 + mdast-util-from-markdown: 2.0.3 mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color @@ -6333,16 +5765,16 @@ snapshots: dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 + mdast-util-from-markdown: 2.0.3 mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color - mdast-util-gfm@3.0.0: + mdast-util-gfm@3.1.0: dependencies: - mdast-util-from-markdown: 2.0.2 + mdast-util-from-markdown: 2.0.3 mdast-util-gfm-autolink-literal: 2.0.1 - mdast-util-gfm-footnote: 2.0.0 + mdast-util-gfm-footnote: 2.1.0 mdast-util-gfm-strikethrough: 2.0.0 mdast-util-gfm-table: 2.0.0 mdast-util-gfm-task-list-item: 2.0.0 @@ -6353,18 +5785,18 @@ snapshots: mdast-util-phrasing@4.1.0: dependencies: '@types/mdast': 4.0.4 - unist-util-is: 6.0.0 + unist-util-is: 6.0.1 - mdast-util-to-hast@13.2.0: + mdast-util-to-hast@13.2.1: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - '@ungap/structured-clone': 1.2.1 + '@ungap/structured-clone': 1.3.0 devlop: 1.1.0 micromark-util-sanitize-uri: 2.0.1 trim-lines: 3.0.1 unist-util-position: 5.0.0 - unist-util-visit: 5.0.0 + unist-util-visit: 5.1.0 vfile: 6.0.3 mdast-util-to-markdown@2.1.2: @@ -6376,7 +5808,7 @@ snapshots: mdast-util-to-string: 4.0.0 micromark-util-classify-character: 2.0.1 micromark-util-decode-string: 2.0.1 - unist-util-visit: 5.0.0 + unist-util-visit: 5.1.0 zwitch: 2.0.4 mdast-util-to-string@4.0.0: @@ -6385,9 +5817,14 @@ snapshots: mdurl@2.0.0: {} - micromark-core-commonmark@2.0.2: + mediabunny@1.43.1: dependencies: - decode-named-character-reference: 1.0.2 + '@types/dom-mediacapture-transform': 0.1.11 + '@types/dom-webcodecs': 0.1.13 + + micromark-core-commonmark@2.0.3: + dependencies: + decode-named-character-reference: 1.3.0 devlop: 1.1.0 micromark-factory-destination: 2.0.1 micromark-factory-label: 2.0.1 @@ -6400,34 +5837,34 @@ snapshots: micromark-util-html-tag-name: 2.0.1 micromark-util-normalize-identifier: 2.0.1 micromark-util-resolve-all: 2.0.1 - micromark-util-subtokenize: 2.0.3 + micromark-util-subtokenize: 2.1.0 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-extension-frontmatter@2.0.0: dependencies: fault: 2.0.1 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-extension-gfm-autolink-literal@2.1.0: dependencies: micromark-util-character: 2.1.1 micromark-util-sanitize-uri: 2.0.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-extension-gfm-footnote@2.1.0: dependencies: devlop: 1.1.0 - micromark-core-commonmark: 2.0.2 + micromark-core-commonmark: 2.0.3 micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 micromark-util-normalize-identifier: 2.0.1 micromark-util-sanitize-uri: 2.0.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-extension-gfm-strikethrough@2.1.0: dependencies: @@ -6436,19 +5873,19 @@ snapshots: micromark-util-classify-character: 2.0.1 micromark-util-resolve-all: 2.0.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 - micromark-extension-gfm-table@2.1.0: + micromark-extension-gfm-table@2.1.1: dependencies: devlop: 1.1.0 micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-extension-gfm-tagfilter@2.0.0: dependencies: - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-extension-gfm-task-list-item@2.1.0: dependencies: @@ -6456,55 +5893,55 @@ snapshots: micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-extension-gfm@3.0.0: dependencies: micromark-extension-gfm-autolink-literal: 2.1.0 micromark-extension-gfm-footnote: 2.1.0 micromark-extension-gfm-strikethrough: 2.1.0 - micromark-extension-gfm-table: 2.1.0 + micromark-extension-gfm-table: 2.1.1 micromark-extension-gfm-tagfilter: 2.0.0 micromark-extension-gfm-task-list-item: 2.1.0 micromark-util-combine-extensions: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-factory-destination@2.0.1: dependencies: micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-factory-label@2.0.1: dependencies: devlop: 1.1.0 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-factory-space@2.0.1: dependencies: micromark-util-character: 2.1.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-factory-title@2.0.1: dependencies: micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-factory-whitespace@2.0.1: dependencies: micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-util-character@2.1.1: dependencies: micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-util-chunked@2.0.1: dependencies: @@ -6514,12 +5951,12 @@ snapshots: dependencies: micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-util-combine-extensions@2.0.1: dependencies: micromark-util-chunked: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-util-decode-numeric-character-reference@2.0.2: dependencies: @@ -6527,7 +5964,7 @@ snapshots: micromark-util-decode-string@2.0.1: dependencies: - decode-named-character-reference: 1.0.2 + decode-named-character-reference: 1.3.0 micromark-util-character: 2.1.1 micromark-util-decode-numeric-character-reference: 2.0.2 micromark-util-symbol: 2.0.1 @@ -6542,7 +5979,7 @@ snapshots: micromark-util-resolve-all@2.0.1: dependencies: - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-util-sanitize-uri@2.0.1: dependencies: @@ -6550,24 +5987,24 @@ snapshots: micromark-util-encode: 2.0.1 micromark-util-symbol: 2.0.1 - micromark-util-subtokenize@2.0.3: + micromark-util-subtokenize@2.1.0: dependencies: devlop: 1.1.0 micromark-util-chunked: 2.0.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-util-symbol@2.0.1: {} - micromark-util-types@2.0.1: {} + micromark-util-types@2.0.2: {} - micromark@4.0.1: + micromark@4.0.2: dependencies: - '@types/debug': 4.1.12 - debug: 4.4.0 - decode-named-character-reference: 1.0.2 + '@types/debug': 4.1.13 + debug: 4.4.3 + decode-named-character-reference: 1.3.0 devlop: 1.1.0 - micromark-core-commonmark: 2.0.2 + micromark-core-commonmark: 2.0.3 micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 micromark-util-chunked: 2.0.1 @@ -6577,9 +6014,9 @@ snapshots: micromark-util-normalize-identifier: 2.0.1 micromark-util-resolve-all: 2.0.1 micromark-util-sanitize-uri: 2.0.1 - micromark-util-subtokenize: 2.0.3 + micromark-util-subtokenize: 2.1.0 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 transitivePeerDependencies: - supports-color @@ -6589,40 +6026,31 @@ snapshots: dependencies: mime-db: 1.52.0 - mime@4.0.6: {} + mime@4.1.0: {} - mimic-response@3.1.0: {} - - mimic-response@4.0.0: {} - - min-indent@1.0.1: {} - - minimatch@10.1.1: + minimatch@10.2.5: dependencies: - '@isaacs/brace-expansion': 5.0.0 + brace-expansion: 5.0.5 - minimatch@3.1.2: + minimatch@9.0.9: dependencies: - brace-expansion: 1.1.11 - - minimatch@9.0.3: - dependencies: - brace-expansion: 2.0.1 - - minimatch@9.0.5: - dependencies: - brace-expansion: 2.0.1 + brace-expansion: 2.1.0 minimist@1.2.8: {} - minipass@7.0.4: {} + minipass@7.1.3: {} - minipass@7.1.2: {} + modern-tar@0.7.6: {} - monaco-editor@0.52.2: {} + monaco-editor@0.55.1: + dependencies: + dompurify: 3.2.7 + marked: 14.0.0 ms@2.1.3: {} + mute-stream@1.0.0: {} + nanoid@4.0.2: {} no-case@2.3.2: @@ -6633,24 +6061,14 @@ snapshots: dependencies: replace-buffer: 1.2.1 - normalize-url@8.0.1: {} - - object-inspect@1.13.1: {} - - object-inspect@1.13.3: {} + object-inspect@1.13.4: {} object-keys@1.1.1: {} - oblivious-set@1.4.0: {} - oblivious-set@2.0.0: {} observable-fns@0.6.1: {} - once@1.4.0: - dependencies: - wrappy: 1.0.2 - open@8.4.2: dependencies: define-lazy-prop: 2.0.0 @@ -6659,7 +6077,7 @@ snapshots: orderedmap@2.1.1: {} - p-cancelable@3.0.0: {} + os-tmpdir@1.0.2: {} p-finally@1.0.0: {} @@ -6674,60 +6092,47 @@ snapshots: package-json-from-dist@1.0.1: {} - package-json@8.1.1: + package-json@10.0.1: dependencies: - got: 12.6.1 - registry-auth-token: 5.0.3 + ky: 1.14.3 + registry-auth-token: 5.1.1 registry-url: 6.0.1 - semver: 7.6.3 + semver: 7.7.4 param-case@2.1.1: dependencies: no-case: 2.3.2 - parse-ms@3.0.0: {} - parse-ms@4.0.0: {} - path-is-absolute@1.0.1: {} + path-expression-matcher@1.5.0: {} path-key@3.1.1: {} - path-scurry@1.10.1: + path-scurry@2.0.2: dependencies: - lru-cache: 10.1.0 - minipass: 7.0.4 + lru-cache: 11.3.5 + minipass: 7.1.3 - path-scurry@2.0.0: - dependencies: - lru-cache: 11.0.2 - minipass: 7.1.2 - - path-to-regexp@8.2.0: {} + path-to-regexp@8.4.2: {} pdfjs-dist@4.10.38: optionalDependencies: - '@napi-rs/canvas': 0.1.65 + '@napi-rs/canvas': 0.1.100 - peek-readable@5.3.1: {} + peek-readable@5.4.2: {} - picomatch@4.0.3: {} + picomatch@4.0.4: {} - pretty-ms@8.0.0: - dependencies: - parse-ms: 3.0.0 - - pretty-ms@9.2.0: + pretty-ms@9.3.0: dependencies: parse-ms: 4.0.0 - process-nextick-args@2.0.1: {} + property-information@7.1.0: {} - property-information@6.5.0: {} - - prosemirror-changeset@2.3.1: + prosemirror-changeset@2.4.1: dependencies: - prosemirror-transform: 1.10.5 + prosemirror-transform: 1.12.0 prosemirror-collab@1.3.1: dependencies: @@ -6737,45 +6142,45 @@ snapshots: dependencies: prosemirror-model: 1.25.4 prosemirror-state: 1.4.4 - prosemirror-transform: 1.10.5 + prosemirror-transform: 1.12.0 prosemirror-dropcursor@1.8.2: dependencies: prosemirror-state: 1.4.4 - prosemirror-transform: 1.10.5 - prosemirror-view: 1.41.4 + prosemirror-transform: 1.12.0 + prosemirror-view: 1.41.8 - prosemirror-gapcursor@1.4.0: + prosemirror-gapcursor@1.4.1: dependencies: prosemirror-keymap: 1.2.3 prosemirror-model: 1.25.4 prosemirror-state: 1.4.4 - prosemirror-view: 1.41.4 + prosemirror-view: 1.41.8 prosemirror-history@1.5.0: dependencies: prosemirror-state: 1.4.4 - prosemirror-transform: 1.10.5 - prosemirror-view: 1.41.4 + prosemirror-transform: 1.12.0 + prosemirror-view: 1.41.8 rope-sequence: 1.3.4 prosemirror-inputrules@1.5.1: dependencies: prosemirror-state: 1.4.4 - prosemirror-transform: 1.10.5 + prosemirror-transform: 1.12.0 prosemirror-keymap@1.2.3: dependencies: prosemirror-state: 1.4.4 w3c-keyname: 2.2.8 - prosemirror-markdown@1.13.2: + prosemirror-markdown@1.13.4: dependencies: '@types/markdown-it': 14.1.2 - markdown-it: 14.1.0 + markdown-it: 14.1.1 prosemirror-model: 1.25.4 - prosemirror-menu@1.2.5: + prosemirror-menu@1.3.2: dependencies: crelt: 1.0.6 prosemirror-commands: 1.7.1 @@ -6794,39 +6199,39 @@ snapshots: dependencies: prosemirror-model: 1.25.4 prosemirror-state: 1.4.4 - prosemirror-transform: 1.10.5 + prosemirror-transform: 1.12.0 prosemirror-state@1.4.4: dependencies: prosemirror-model: 1.25.4 - prosemirror-transform: 1.10.5 - prosemirror-view: 1.41.4 + prosemirror-transform: 1.12.0 + prosemirror-view: 1.41.8 - prosemirror-tables@1.8.3: + prosemirror-tables@1.8.5: dependencies: prosemirror-keymap: 1.2.3 prosemirror-model: 1.25.4 prosemirror-state: 1.4.4 - prosemirror-transform: 1.10.5 - prosemirror-view: 1.41.4 + prosemirror-transform: 1.12.0 + prosemirror-view: 1.41.8 - prosemirror-trailing-node@3.0.0(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.4): + prosemirror-trailing-node@3.0.0(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.8): dependencies: '@remirror/core-constants': 3.0.0 escape-string-regexp: 4.0.0 prosemirror-model: 1.25.4 prosemirror-state: 1.4.4 - prosemirror-view: 1.41.4 + prosemirror-view: 1.41.8 - prosemirror-transform@1.10.5: + prosemirror-transform@1.12.0: dependencies: prosemirror-model: 1.25.4 - prosemirror-view@1.41.4: + prosemirror-view@1.41.8: dependencies: prosemirror-model: 1.25.4 prosemirror-state: 1.4.4 - prosemirror-transform: 1.10.5 + prosemirror-transform: 1.12.0 proto-list@1.2.4: {} @@ -6834,18 +6239,10 @@ snapshots: punycode@1.4.1: {} - qs@6.11.2: - dependencies: - side-channel: 1.0.4 - - qs@6.13.1: + qs@6.15.1: dependencies: side-channel: 1.1.0 - queue-tick@1.0.1: {} - - quick-lru@5.1.1: {} - randomatic@3.1.1: dependencies: is-number: 4.0.0 @@ -6859,16 +6256,6 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - readable-stream@2.3.8: - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 - readable-stream@3.6.2: dependencies: inherits: 2.0.4 @@ -6877,11 +6264,9 @@ snapshots: readdirp@5.0.0: {} - regenerator-runtime@0.14.1: {} - - registry-auth-token@5.0.3: + registry-auth-token@5.1.1: dependencies: - '@pnpm/npm-conf': 2.3.1 + '@pnpm/npm-conf': 3.0.2 registry-url@6.0.1: dependencies: @@ -6898,10 +6283,10 @@ snapshots: transitivePeerDependencies: - supports-color - remark-gfm@4.0.0: + remark-gfm@4.0.1: dependencies: '@types/mdast': 4.0.4 - mdast-util-gfm: 3.0.0 + mdast-util-gfm: 3.1.0 micromark-extension-gfm: 3.0.0 remark-parse: 11.0.0 remark-stringify: 11.0.0 @@ -6913,15 +6298,15 @@ snapshots: dependencies: '@types/mdast': 4.0.4 hast-util-sanitize: 5.0.2 - hast-util-to-html: 9.0.4 - mdast-util-to-hast: 13.2.0 + hast-util-to-html: 9.0.5 + mdast-util-to-hast: 13.2.1 unified: 11.0.5 remark-parse@11.0.0: dependencies: '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.2 - micromark-util-types: 2.0.1 + mdast-util-from-markdown: 2.0.3 + micromark-util-types: 2.0.2 unified: 11.0.5 transitivePeerDependencies: - supports-color @@ -6934,58 +6319,61 @@ snapshots: replace-buffer@1.2.1: {} - resolve-alpn@1.2.1: {} - resolve-pkg-maps@1.0.0: {} - responselike@3.0.0: + rimraf@6.1.3: dependencies: - lowercase-keys: 3.0.0 + glob: 13.0.6 + package-json-from-dist: 1.0.1 - rimraf@3.0.2: + rolldown@1.0.0-rc.11(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0): dependencies: - glob: 7.2.3 - - rolldown@1.0.0-beta.52: - dependencies: - '@oxc-project/types': 0.99.0 - '@rolldown/pluginutils': 1.0.0-beta.52 + '@oxc-project/types': 0.122.0 + '@rolldown/pluginutils': 1.0.0-rc.11 optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-beta.52 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.52 - '@rolldown/binding-darwin-x64': 1.0.0-beta.52 - '@rolldown/binding-freebsd-x64': 1.0.0-beta.52 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.52 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.52 - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.52 - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.52 - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.52 - '@rolldown/binding-openharmony-arm64': 1.0.0-beta.52 - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.52 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.52 - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.52 - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.52 + '@rolldown/binding-android-arm64': 1.0.0-rc.11 + '@rolldown/binding-darwin-arm64': 1.0.0-rc.11 + '@rolldown/binding-darwin-x64': 1.0.0-rc.11 + '@rolldown/binding-freebsd-x64': 1.0.0-rc.11 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.11 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.11 + '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.11 + '@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.11 + '@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.11 + '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.11 + '@rolldown/binding-linux-x64-musl': 1.0.0-rc.11 + '@rolldown/binding-openharmony-arm64': 1.0.0-rc.11 + '@rolldown/binding-wasm32-wasi': 1.0.0-rc.11(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.11 + '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.11 + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' rope-sequence@1.3.4: {} - rxjs@7.8.1: - dependencies: - tslib: 2.6.2 + run-async@3.0.0: {} - safe-buffer@5.1.2: {} + rxjs@7.8.2: + dependencies: + tslib: 2.8.1 safe-buffer@5.2.1: {} + safer-buffer@2.1.2: {} + semver@6.3.1: {} - semver@7.6.3: {} + semver@7.7.4: {} - set-function-length@1.1.1: + set-function-length@1.2.2: dependencies: - define-data-property: 1.1.1 - get-intrinsic: 1.2.2 - gopd: 1.0.1 - has-property-descriptors: 1.0.1 + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.3.0 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 shebang-command@2.0.0: dependencies: @@ -6993,37 +6381,31 @@ snapshots: shebang-regex@3.0.0: {} - side-channel-list@1.0.0: + side-channel-list@1.0.1: dependencies: es-errors: 1.3.0 - object-inspect: 1.13.3 + object-inspect: 1.13.4 side-channel-map@1.0.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 - get-intrinsic: 1.2.6 - object-inspect: 1.13.3 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 side-channel-weakmap@1.0.2: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 - get-intrinsic: 1.2.6 - object-inspect: 1.13.3 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 side-channel-map: 1.0.1 - side-channel@1.0.4: - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - object-inspect: 1.13.1 - side-channel@1.1.0: dependencies: es-errors: 1.3.0 - object-inspect: 1.13.3 - side-channel-list: 1.0.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.1 side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 @@ -7037,24 +6419,24 @@ snapshots: space-separated-tokens@2.0.2: {} - spawn-wrap@2.0.0: + spawn-wrap@3.0.0: dependencies: + cross-spawn: 7.0.6 foreground-child: 2.0.0 is-windows: 1.0.2 make-dir: 3.1.0 - rimraf: 3.0.2 + rimraf: 6.1.3 signal-exit: 3.0.7 which: 2.0.2 - sprintf-js@1.0.3: {} - - streamx@2.21.1: + streamx@2.25.0: dependencies: + events-universal: 1.0.1 fast-fifo: 1.3.2 - queue-tick: 1.0.1 - text-decoder: 1.2.3 - optionalDependencies: - bare-events: 2.5.0 + text-decoder: 1.2.7 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a string-width@4.2.3: dependencies: @@ -7062,16 +6444,6 @@ snapshots: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - string-width@5.1.2: - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.0 - - string_decoder@1.1.1: - dependencies: - safe-buffer: 5.1.2 - string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 @@ -7085,47 +6457,57 @@ snapshots: dependencies: ansi-regex: 5.0.1 - strip-ansi@7.1.0: - dependencies: - ansi-regex: 6.0.1 - - strip-indent@4.0.0: - dependencies: - min-indent: 1.0.1 + strip-indent@4.1.1: {} strip-json-comments@2.0.1: {} - strnum@1.0.5: {} + strnum@1.1.2: {} - strnum@2.1.2: {} + strnum@2.2.3: {} - strtok3@10.3.4: + strtok3@10.3.5: dependencies: '@tokenizer/token': 0.3.0 strtok3@9.1.1: dependencies: '@tokenizer/token': 0.3.0 - peek-readable: 5.3.1 + peek-readable: 5.4.2 sweet-scroll@4.0.0: {} symbol-tree@3.2.4: {} - tar-stream@3.1.7: - dependencies: - b4a: 1.6.7 - fast-fifo: 1.3.2 - streamx: 2.21.1 + tagged-tag@1.0.0: {} - text-decoder@1.2.3: + tar-stream@3.2.0: dependencies: - b4a: 1.6.7 + b4a: 1.8.1 + bare-fs: 4.7.1 + fast-fifo: 1.3.2 + streamx: 2.25.0 + transitivePeerDependencies: + - bare-abort-controller + - bare-buffer + - react-native-b4a + + teex@1.0.1: + dependencies: + streamx: 2.25.0 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + + text-decoder@1.2.7: + dependencies: + b4a: 1.8.1 + transitivePeerDependencies: + - react-native-b4a threads@1.7.0: dependencies: callsites: 3.1.0 - debug: 4.4.0 + debug: 4.4.3 is-observable: 2.1.0 observable-fns: 0.6.1 optionalDependencies: @@ -7141,57 +6523,60 @@ snapshots: dependencies: esm: 3.2.25 - token-types@6.0.0: + tmp@0.0.33: dependencies: + os-tmpdir: 1.0.2 + + token-types@6.1.2: + dependencies: + '@borewit/text-codec': 0.2.2 '@tokenizer/token': 0.3.0 ieee754: 1.2.1 - token-types@6.1.1: - dependencies: - '@borewit/text-codec': 0.1.1 - '@tokenizer/token': 0.3.0 - ieee754: 1.2.1 - - tree-kill@1.2.2: {} - trim-lines@3.0.1: {} trough@2.2.0: {} - tslib@2.6.2: {} + tslib@2.3.0: {} tslib@2.8.1: {} tsx@4.21.0: dependencies: - esbuild: 0.27.2 - get-tsconfig: 4.8.1 + esbuild: 0.27.7 + get-tsconfig: 4.14.0 optionalDependencies: fsevents: 2.3.3 turndown-plugin-gfm@1.0.2: {} - turndown@7.2.0: + turndown@7.2.4: dependencies: '@mixmark-io/domino': 2.2.0 - type-fest@2.19.0: {} + type-fest@0.21.3: {} - type-fest@4.30.2: {} + type-fest@2.19.0: {} type-fest@4.41.0: {} - typescript@5.9.3: {} + type-fest@5.6.0: + dependencies: + tagged-tag: 1.0.0 + + typescript@6.0.2: {} + + typescript@6.0.3: {} uc.micro@2.1.0: {} uglify-js@3.19.3: {} - uint8array-extras@1.4.0: {} + uint8array-extras@1.5.0: {} - undici-types@5.26.5: {} + undici-types@6.21.0: {} - undici-types@6.20.0: {} + undici-types@7.19.2: {} unified@11.0.5: dependencies: @@ -7203,7 +6588,7 @@ snapshots: trough: 2.2.0 vfile: 6.0.3 - unist-util-is@6.0.0: + unist-util-is@6.0.1: dependencies: '@types/unist': 3.0.3 @@ -7215,38 +6600,31 @@ snapshots: dependencies: '@types/unist': 3.0.3 - unist-util-visit-parents@6.0.1: + unist-util-visit-parents@6.0.2: dependencies: '@types/unist': 3.0.3 - unist-util-is: 6.0.0 + unist-util-is: 6.0.1 - unist-util-visit@5.0.0: + unist-util-visit@5.1.0: dependencies: '@types/unist': 3.0.3 - unist-util-is: 6.0.0 - unist-util-visit-parents: 6.0.1 - - universalify@2.0.1: {} + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 unload@2.4.1: {} upper-case@1.1.3: {} - url@0.11.3: - dependencies: - punycode: 1.4.1 - qs: 6.11.2 - url@0.11.4: dependencies: punycode: 1.4.1 - qs: 6.13.1 + qs: 6.15.1 util-deprecate@1.0.2: {} uuid@9.0.1: {} - vfile-message@4.0.2: + vfile-message@4.0.3: dependencies: '@types/unist': 3.0.3 unist-util-stringify-position: 4.0.0 @@ -7254,37 +6632,27 @@ snapshots: vfile@6.0.3: dependencies: '@types/unist': 3.0.3 - vfile-message: 4.0.2 + vfile-message: 4.0.3 w3c-keyname@2.2.8: {} - webidl-conversions@7.0.0: {} - whatwg-mimetype@3.0.0: {} which@2.0.2: dependencies: isexe: 2.0.0 - which@5.0.0: + which@6.0.1: dependencies: - isexe: 3.1.1 + isexe: 4.0.0 - wrap-ansi@7.0.0: + wrap-ansi@6.2.0: dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - wrap-ansi@8.1.0: - dependencies: - ansi-styles: 6.2.1 - string-width: 5.1.2 - strip-ansi: 7.1.0 - - wrappy@1.0.2: {} - - ws@8.18.3: {} + ws@8.20.0: {} xterm-addon-fit@0.8.0(xterm@5.3.0): dependencies: @@ -7292,8 +6660,14 @@ snapshots: xterm@5.3.0: {} - yaml@2.8.2: {} + yaml@2.8.4: {} yargs-parser@22.0.0: {} + yoctocolors-cjs@2.1.3: {} + + zrender@5.6.1: + dependencies: + tslib: 2.3.0 + zwitch@2.0.4: {} diff --git a/readme.md b/readme.md index ca03b43..3cfa51b 100644 --- a/readme.md +++ b/readme.md @@ -1,6 +1,8 @@ # @signature.digital/catalog -A comprehensive catalog of customizable web components designed for building and managing e-signature applications. Built with modern web technologies using LitElement and TypeScript. +Reusable web components for signature.digital product surfaces. The package ships signature capture primitives, a complete signature box, and a responsive workspace shell built with Lit and `@design.estate/dees-element`. + +Use it when you need browser-native custom elements for signing flows without pulling product-specific authentication, persistence, routing, or API behavior into the component layer. ## Issue Reporting and Security @@ -9,154 +11,148 @@ For reporting bugs, issues, or security vulnerabilities, please visit [community ## Install ```shell -npm install @signature.digital/catalog -# or -pnpm install @signature.digital/catalog +pnpm add @signature.digital/catalog ``` -## 🎯 Overview +## Quick Start -This package provides three main components for e-signature workflows: - -| Component | Tag | Description | -|-----------|-----|-------------| -| **SignPad** | `` | Canvas-based signature capture pad | -| **SignBox** | `` | Complete signing interface with controls | -| **ContractEditor** | `` | Contract document management component | - -## 📦 Usage - -### Basic Import +Register all elements once in your browser bundle: ```typescript import '@signature.digital/catalog'; ``` -This registers all custom elements and makes them available for use in your HTML. - -### SignPad Component - -The `` is a canvas-based signature capture component that allows users to draw their signatures directly in the browser. +Render the product workspace: ```html - + ``` -**API Methods:** - -```typescript -const signpad = document.querySelector('sdig-signpad'); - -// Get signature data as point arrays -const data = await signpad.toData(); - -// Load signature from data -await signpad.fromData(data); - -// Export signature as SVG string -const svg = await signpad.toSVG(); - -// Undo last stroke -await signpad.undo(); - -// Clear the signature pad -await signpad.clear(); -``` - -### SignBox Component - -The `` wraps `SignPad` with a complete UI including Clear, Undo, and Submit buttons. +Render a standalone signature box: ```html ``` -**Events:** +## Components + +| Component | Tag | Purpose | +|-----------|-----|---------| +| `SdigWorkspace` | `` | Product workspace shell with inbox, compose, signing, audit, developer, template, team, and settings views | +| `SignBox` | `` | Complete signature capture UI with clear, undo, and submit actions | +| `SignPad` | `` | Canvas-based signature capture primitive backed by `signature_pad` | + +## Workspace Shell + +`sdig-workspace` is the full product surface. It is responsive, supports dark/light themes, compact/comfortable density, an accent color, and a configurable initial view. + +```html + +``` + +### Workspace Properties + +| Property | Type | Default | Description | +|----------|------|---------|-------------| +| `accent` | `string` | `#3b82f6` | Accent color used for active navigation and highlights | +| `density` | `'compact' \| 'comfortable'` | `comfortable` | Controls spacing density | +| `theme` | `'dark' \| 'light'` | `dark` | Reflected to the host and used for design tokens | +| `initialView` | `TWorkspaceView` | `inbox` | First view displayed after connection | + +### Workspace Views + +| View | Notes | +|------|-------| +| `inbox` | Demo document inbox with status, recipients, sender, page count, and deadlines | +| `compose` | Document preparation surface with recipients and draggable-style field placements | +| `sign` | Signing flow surface for reviewing and completing assigned fields | +| `audit` | Audit trail surface for signature and document events | +| `developers` | Developer-facing integration and API concept surface | +| `templates` | Placeholder for reusable agreement templates | +| `team` | Placeholder for workspace members and roles | +| `settings` | Placeholder for workspace, billing, and security settings | + +### Workspace Events + +```typescript +const workspace = document.querySelector('sdig-workspace'); + +workspace?.addEventListener('view-change', (event) => { + const { view } = (event as CustomEvent<{ view: string }>).detail; + console.log(view); +}); +``` + +Child views can request navigation by dispatching `workspace-view-request` with `{ view }` in `detail`. The event bubbles and crosses the shadow boundary. + +## Signature Box + +Use `sdig-signbox` when you want the default capture UI with a heading, a signature pad, and built-in action controls: + +```html + +``` ```typescript const signbox = document.querySelector('sdig-signbox'); -signbox.addEventListener('signature', (event) => { - const signatureData = event.detail.signature; - console.log('Signature captured:', signatureData); +signbox?.addEventListener('signature', (event) => { + const { signature } = (event as CustomEvent<{ signature: unknown[] }>).detail; + console.log(signature); }); ``` -### ContractEditor Component +The `signature` event detail contains the `signature_pad` stroke data returned by `sdig-signpad.toData()`. -The `` provides contract viewing and editing capabilities using the `IPortableContract` interface from `@signature.digital/tools`. +## Signature Pad + +Use `sdig-signpad` directly when you need lower-level control over the canvas: + +```html + +``` ```typescript -import '@signature.digital/catalog'; -import { IPortableContract } from '@signature.digital/tools/interfaces'; -import { demoContract } from '@signature.digital/tools/demodata'; +const signpad = document.querySelector('sdig-signpad'); -const editor = document.querySelector('sdig-contracteditor'); -editor.contract = demoContract; +const strokes = await signpad?.toData(); +const svg = await signpad?.toSVG(); + +await signpad?.undo(); +await signpad?.clear(); ``` -## 🔧 Integration Example +| Method | Description | +|--------|-------------| +| `toData()` | Returns `signature_pad` stroke data | +| `fromData(data)` | Restores `signature_pad` stroke data | +| `toSVG()` | Returns an SVG representation without a background color | +| `undo()` | Removes the latest stroke | +| `clear()` | Clears the canvas | -Here's a complete example showing all components working together: +## Demo Data Boundary -```typescript -import '@signature.digital/catalog'; -import { LitElement, html, css } from 'lit'; -import { customElement } from 'lit/decorators.js'; +The workspace currently renders local demo UI data from `sdig-workspace.shared.ts`. Real accounts, server persistence, document import/export, notification delivery, authentication, and legal signing workflow state belong in `@signature.digital/app` or backend services, not in this component catalog. -@customElement('my-signature-app') -class MySignatureApp extends LitElement { - static styles = css` - :host { - display: block; - max-width: 800px; - margin: 0 auto; - } - `; +## Development - render() { - return html` -

Please sign below

- - `; - } - - private handleSignature(e: CustomEvent) { - console.log('Signature submitted:', e.detail.signature); - // Process or store the signature - } -} +```shell +pnpm install +pnpm run build +pnpm test +pnpm run watch ``` -## 🎨 Theming - -Components support automatic light/dark theme detection and can be customized using CSS custom properties: - -```css -sdig-signpad, sdig-signbox { - --main-background-color: #ffffff; - --line-color: #000000; - --button-color: #007bff; -} -``` - -The components use `cssManager.bdTheme()` for automatic theme switching based on system preferences. - -## 📋 Requirements - -- Modern browser with Custom Elements V1 support -- ECMAScript Modules (ESM) compatible environment -- TypeScript 5.0+ (for development) - -## 🔗 Dependencies - -- `@design.estate/dees-element` - LitElement-based component framework -- `@signature.digital/tools` - Contract interfaces and demo data -- `signature_pad` - Canvas signature capture library +The build compiles `ts_web/` into `dist_ts_web/` and bundles the component catalog demo from `html/index.ts` into `dist_bundle/`. Watch mode serves `dist_watch/` using the `.smartconfig.json` `@git.zone/tswatch` configuration. ## License and Legal Information -This repository contains open-source code licensed under the MIT License. A copy of the license can be found in the [LICENSE](./LICENSE) file. +This repository contains open-source code licensed under the MIT License. A copy of the license can be found in the [license](./license) file. **Please note:** The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file. @@ -168,7 +164,7 @@ Use of these trademarks must comply with Task Venture Capital GmbH's Trademark G ### Company Information -Task Venture Capital GmbH +Task Venture Capital GmbH Registered at District Court Bremen HRB 35230 HB, Germany For any legal inquiries or further information, please contact us via email at hello@task.vc. diff --git a/ts_web/00_commitinfo_data.ts b/ts_web/00_commitinfo_data.ts index c43e74f..0341062 100644 --- a/ts_web/00_commitinfo_data.ts +++ b/ts_web/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@signature.digital/catalog', - version: '1.2.0', + version: '1.3.0', description: 'A comprehensive catalog of customizable web components designed for building and managing e-signature applications.' } diff --git a/ts_web/elements/index.ts b/ts_web/elements/index.ts index 3283b75..64e91cb 100644 --- a/ts_web/elements/index.ts +++ b/ts_web/elements/index.ts @@ -1,18 +1,6 @@ -// Contract Editor (main module) -export * from './sdig-contracteditor/index.js'; - -// Contract sub-components -export * from './sdig-contract-header/index.js'; -export * from './sdig-contract-metadata/index.js'; -export * from './sdig-contract-parties/index.js'; -export * from './sdig-contract-content/index.js'; -export * from './sdig-contract-terms/index.js'; -export * from './sdig-contract-signatures/index.js'; -export * from './sdig-contract-attachments/index.js'; -export * from './sdig-contract-collaboration/index.js'; -export * from './sdig-contract-audit/index.js'; -export * from './sdig-collaboration-sidebar/index.js'; - // Signature components export * from './sdig-signbox/index.js'; export * from './sdig-signpad/index.js'; + +// Product workspace component +export * from './sdig-workspace/index.js'; diff --git a/ts_web/elements/sdig-collaboration-sidebar/index.ts b/ts_web/elements/sdig-collaboration-sidebar/index.ts deleted file mode 100644 index f8500cd..0000000 --- a/ts_web/elements/sdig-collaboration-sidebar/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './sdig-collaboration-sidebar.js'; diff --git a/ts_web/elements/sdig-collaboration-sidebar/sdig-collaboration-sidebar.ts b/ts_web/elements/sdig-collaboration-sidebar/sdig-collaboration-sidebar.ts deleted file mode 100644 index 51e4ac2..0000000 --- a/ts_web/elements/sdig-collaboration-sidebar/sdig-collaboration-sidebar.ts +++ /dev/null @@ -1,846 +0,0 @@ -/** - * @file sdig-collaboration-sidebar.ts - * @description Compact collaboration sidebar for the contract editor - */ - -import { - DeesElement, - property, - html, - customElement, - type TemplateResult, - css, - cssManager, - state, -} from '@design.estate/dees-element'; - -import * as plugins from '../../plugins.js'; - -declare global { - interface HTMLElementTagNameMap { - 'sdig-collaboration-sidebar': SdigCollaborationSidebar; - } -} - -// Comment interface -interface IComment { - id: string; - userId: string; - userName: string; - userColor: string; - content: string; - createdAt: number; - updatedAt?: number; - anchorPath?: string; - anchorText?: string; - resolved: boolean; - replies: IComment[]; -} - -// Suggestion interface -interface ISuggestion { - id: string; - userId: string; - userName: string; - userColor: string; - originalText: string; - suggestedText: string; - path: string; - status: 'pending' | 'accepted' | 'rejected'; - createdAt: number; -} - -// Presence interface -interface IPresence { - userId: string; - userName: string; - userColor: string; - currentSection: string; - cursorPosition?: { path: string; offset: number }; - lastActive: number; -} - -@customElement('sdig-collaboration-sidebar') -export class SdigCollaborationSidebar extends DeesElement { - // ============================================================================ - // STATIC - // ============================================================================ - - public static demo = () => html` -
- -
- `; - - public static styles = [ - cssManager.defaultStyles, - css` - :host { - display: block; - height: 100%; - overflow: hidden; - } - - .sidebar-container { - display: flex; - flex-direction: column; - height: 100%; - } - - /* Presence bar */ - .presence-bar { - display: flex; - align-items: center; - gap: 12px; - padding: 12px 16px; - background: ${cssManager.bdTheme('#f9fafb', '#111111')}; - border-bottom: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - } - - .presence-avatars { - display: flex; - align-items: center; - } - - .presence-avatar { - width: 28px; - height: 28px; - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - font-size: 11px; - font-weight: 600; - color: white; - margin-left: -6px; - border: 2px solid ${cssManager.bdTheme('#f9fafb', '#111111')}; - cursor: pointer; - position: relative; - } - - .presence-avatar:first-child { - margin-left: 0; - } - - .presence-avatar .status-dot { - position: absolute; - bottom: -1px; - right: -1px; - width: 8px; - height: 8px; - border-radius: 50%; - background: #10b981; - border: 2px solid ${cssManager.bdTheme('#f9fafb', '#111111')}; - } - - .presence-avatar .status-dot.away { - background: #f59e0b; - } - - .presence-count { - display: flex; - align-items: center; - justify-content: center; - width: 28px; - height: 28px; - border-radius: 50%; - background: ${cssManager.bdTheme('#e5e7eb', '#3f3f46')}; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - font-size: 11px; - font-weight: 600; - margin-left: -6px; - border: 2px solid ${cssManager.bdTheme('#f9fafb', '#111111')}; - } - - .presence-label { - font-size: 12px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - /* Scrollable content */ - .sidebar-content { - flex: 1; - overflow-y: auto; - padding: 12px; - } - - /* Collapsible sections */ - .collapsible-section { - margin-bottom: 12px; - border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - border-radius: 8px; - overflow: hidden; - background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - } - - .section-header { - display: flex; - align-items: center; - justify-content: space-between; - padding: 10px 12px; - background: ${cssManager.bdTheme('#f9fafb', '#111111')}; - cursor: pointer; - user-select: none; - transition: background 0.15s ease; - } - - .section-header:hover { - background: ${cssManager.bdTheme('#f3f4f6', '#18181b')}; - } - - .section-title { - display: flex; - align-items: center; - gap: 8px; - font-size: 13px; - font-weight: 600; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - } - - .section-title dees-icon { - font-size: 14px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .section-badge { - padding: 2px 6px; - border-radius: 9999px; - font-size: 10px; - font-weight: 600; - background: ${cssManager.bdTheme('#dbeafe', '#1e3a5f')}; - color: ${cssManager.bdTheme('#1e40af', '#93c5fd')}; - } - - .section-chevron { - font-size: 14px; - color: ${cssManager.bdTheme('#9ca3af', '#6b7280')}; - transition: transform 0.2s ease; - } - - .section-chevron.expanded { - transform: rotate(180deg); - } - - .section-body { - padding: 0; - max-height: 0; - overflow: hidden; - transition: max-height 0.2s ease, padding 0.2s ease; - } - - .section-body.expanded { - padding: 12px; - max-height: 1000px; - } - - /* Compact comment cards */ - .comment-card { - display: flex; - gap: 10px; - padding: 10px; - background: ${cssManager.bdTheme('#f9fafb', '#111111')}; - border-radius: 6px; - margin-bottom: 8px; - cursor: pointer; - transition: background 0.15s ease; - } - - .comment-card:last-child { - margin-bottom: 0; - } - - .comment-card:hover { - background: ${cssManager.bdTheme('#f3f4f6', '#18181b')}; - } - - .comment-card.resolved { - opacity: 0.6; - } - - .comment-avatar { - width: 24px; - height: 24px; - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - font-size: 10px; - font-weight: 600; - color: white; - flex-shrink: 0; - } - - .comment-body { - flex: 1; - min-width: 0; - } - - .comment-meta { - display: flex; - align-items: center; - gap: 6px; - margin-bottom: 4px; - } - - .comment-author { - font-size: 12px; - font-weight: 600; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - } - - .comment-time { - font-size: 10px; - color: ${cssManager.bdTheme('#9ca3af', '#6b7280')}; - } - - .comment-preview { - font-size: 12px; - line-height: 1.4; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } - - .comment-replies { - display: inline-flex; - align-items: center; - gap: 4px; - font-size: 10px; - color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')}; - margin-top: 4px; - } - - .comment-replies dees-icon { - font-size: 12px; - } - - /* Suggestion cards */ - .suggestion-card { - padding: 10px; - background: ${cssManager.bdTheme('#f9fafb', '#111111')}; - border-radius: 6px; - margin-bottom: 8px; - cursor: pointer; - transition: background 0.15s ease; - } - - .suggestion-card:last-child { - margin-bottom: 0; - } - - .suggestion-card:hover { - background: ${cssManager.bdTheme('#f3f4f6', '#18181b')}; - } - - .suggestion-header { - display: flex; - align-items: center; - justify-content: space-between; - margin-bottom: 8px; - } - - .suggestion-user { - display: flex; - align-items: center; - gap: 6px; - } - - .suggestion-status { - display: flex; - align-items: center; - gap: 4px; - padding: 2px 6px; - border-radius: 9999px; - font-size: 10px; - font-weight: 500; - } - - .suggestion-status dees-icon { - font-size: 10px; - } - - .suggestion-status.pending { - background: ${cssManager.bdTheme('#fef3c7', '#422006')}; - color: ${cssManager.bdTheme('#92400e', '#fcd34d')}; - } - - .suggestion-status.accepted { - background: ${cssManager.bdTheme('#d1fae5', '#064e3b')}; - color: ${cssManager.bdTheme('#065f46', '#6ee7b7')}; - } - - .suggestion-status.rejected { - background: ${cssManager.bdTheme('#fee2e2', '#450a0a')}; - color: ${cssManager.bdTheme('#991b1b', '#fca5a5')}; - } - - .suggestion-diff { - font-family: 'Roboto Mono', monospace; - font-size: 11px; - line-height: 1.4; - } - - .diff-removed { - background: ${cssManager.bdTheme('#fee2e2', '#450a0a')}; - color: ${cssManager.bdTheme('#991b1b', '#fca5a5')}; - text-decoration: line-through; - padding: 1px 3px; - border-radius: 2px; - } - - .diff-added { - background: ${cssManager.bdTheme('#d1fae5', '#064e3b')}; - color: ${cssManager.bdTheme('#065f46', '#6ee7b7')}; - padding: 1px 3px; - border-radius: 2px; - } - - /* Quick add comment */ - .quick-add { - padding: 12px; - border-top: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - background: ${cssManager.bdTheme('#f9fafb', '#111111')}; - } - - .quick-add-input { - width: 100%; - padding: 10px 12px; - font-size: 13px; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - border: 1px solid ${cssManager.bdTheme('#d1d5db', '#3f3f46')}; - border-radius: 6px; - outline: none; - resize: none; - min-height: 60px; - font-family: inherit; - box-sizing: border-box; - } - - .quick-add-input:focus { - border-color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')}; - box-shadow: 0 0 0 3px ${cssManager.bdTheme('rgba(59, 130, 246, 0.1)', 'rgba(96, 165, 250, 0.1)')}; - } - - .quick-add-input::placeholder { - color: ${cssManager.bdTheme('#9ca3af', '#6b7280')}; - } - - .quick-add-actions { - display: flex; - justify-content: flex-end; - margin-top: 8px; - } - - .btn { - display: inline-flex; - align-items: center; - gap: 6px; - padding: 6px 12px; - font-size: 12px; - font-weight: 500; - border-radius: 6px; - border: none; - cursor: pointer; - transition: all 0.15s ease; - } - - .btn-primary { - background: ${cssManager.bdTheme('#111111', '#fafafa')}; - color: ${cssManager.bdTheme('#ffffff', '#09090b')}; - } - - .btn-primary:hover { - background: ${cssManager.bdTheme('#333333', '#e5e5e5')}; - } - - .btn-primary:disabled { - opacity: 0.5; - cursor: not-allowed; - } - - /* Empty state */ - .empty-state { - display: flex; - flex-direction: column; - align-items: center; - padding: 24px 16px; - text-align: center; - color: ${cssManager.bdTheme('#9ca3af', '#6b7280')}; - } - - .empty-state dees-icon { - font-size: 32px; - margin-bottom: 8px; - opacity: 0.5; - } - - .empty-state p { - margin: 0; - font-size: 12px; - } - `, - ]; - - // ============================================================================ - // PROPERTIES - // ============================================================================ - - @property({ type: Object }) - public accessor contract: plugins.sdInterfaces.IPortableContract | null = null; - - @property({ type: Boolean }) - public accessor readonly: boolean = false; - - // ============================================================================ - // STATE - // ============================================================================ - - @state() - private accessor commentsExpanded: boolean = true; - - @state() - private accessor suggestionsExpanded: boolean = true; - - @state() - private accessor newCommentText: string = ''; - - // Demo presence data - @state() - private accessor presenceList: IPresence[] = [ - { userId: '1', userName: 'Alice Smith', userColor: '#3b82f6', currentSection: 'content', lastActive: Date.now() }, - { userId: '2', userName: 'Bob Johnson', userColor: '#10b981', currentSection: 'parties', lastActive: Date.now() - 60000 }, - { userId: '3', userName: 'Carol Davis', userColor: '#f59e0b', currentSection: 'terms', lastActive: Date.now() - 300000 }, - ]; - - // Demo comments data - @state() - private accessor comments: IComment[] = [ - { - id: '1', - userId: '1', - userName: 'Alice Smith', - userColor: '#3b82f6', - content: 'Can we clarify the payment terms in paragraph 3? The current wording seems ambiguous.', - createdAt: Date.now() - 3600000, - anchorPath: 'paragraphs.2', - anchorText: 'Compensation', - resolved: false, - replies: [ - { - id: '1-1', - userId: '2', - userName: 'Bob Johnson', - userColor: '#10b981', - content: 'Good point. I\'ll update the wording to be more specific.', - createdAt: Date.now() - 1800000, - resolved: false, - replies: [], - }, - ], - }, - { - id: '2', - userId: '3', - userName: 'Carol Davis', - userColor: '#f59e0b', - content: 'The termination clause needs to comply with the latest regulations.', - createdAt: Date.now() - 86400000, - resolved: true, - replies: [], - }, - { - id: '3', - userId: '2', - userName: 'Bob Johnson', - userColor: '#10b981', - content: 'Should we add an automatic renewal clause?', - createdAt: Date.now() - 7200000, - resolved: false, - replies: [], - }, - ]; - - // Demo suggestions data - @state() - private accessor suggestions: ISuggestion[] = [ - { - id: '1', - userId: '1', - userName: 'Alice Smith', - userColor: '#3b82f6', - originalText: 'monthly salary', - suggestedText: 'monthly gross salary', - path: 'paragraphs.2.content', - status: 'pending', - createdAt: Date.now() - 7200000, - }, - { - id: '2', - userId: '3', - userName: 'Carol Davis', - userColor: '#f59e0b', - originalText: '30 days', - suggestedText: '60 days', - path: 'paragraphs.5.content', - status: 'pending', - createdAt: Date.now() - 3600000, - }, - ]; - - // ============================================================================ - // EVENT HANDLERS - // ============================================================================ - - private handleCommentClick(comment: IComment) { - this.dispatchEvent( - new CustomEvent('comment-click', { - detail: { comment }, - bubbles: true, - composed: true, - }) - ); - } - - private handleSuggestionClick(suggestion: ISuggestion) { - this.dispatchEvent( - new CustomEvent('suggestion-click', { - detail: { suggestion }, - bubbles: true, - composed: true, - }) - ); - } - - private handleAddComment() { - if (!this.newCommentText.trim()) return; - - const newComment: IComment = { - id: `comment-${Date.now()}`, - userId: 'current-user', - userName: 'You', - userColor: '#6366f1', - content: this.newCommentText, - createdAt: Date.now(), - resolved: false, - replies: [], - }; - - this.comments = [newComment, ...this.comments]; - this.newCommentText = ''; - - this.dispatchEvent( - new CustomEvent('add-comment', { - detail: { comment: newComment }, - bubbles: true, - composed: true, - }) - ); - } - - // ============================================================================ - // HELPERS - // ============================================================================ - - private formatTimeAgo(timestamp: number): string { - const seconds = Math.floor((Date.now() - timestamp) / 1000); - if (seconds < 60) return 'now'; - const minutes = Math.floor(seconds / 60); - if (minutes < 60) return `${minutes}m`; - const hours = Math.floor(minutes / 60); - if (hours < 24) return `${hours}h`; - const days = Math.floor(hours / 24); - return `${days}d`; - } - - private getActivePresence(): IPresence[] { - const fiveMinutesAgo = Date.now() - 300000; - return this.presenceList.filter((p) => p.lastActive > fiveMinutesAgo); - } - - private getOpenComments(): IComment[] { - return this.comments.filter((c) => !c.resolved); - } - - private getPendingSuggestions(): ISuggestion[] { - return this.suggestions.filter((s) => s.status === 'pending'); - } - - // ============================================================================ - // RENDER - // ============================================================================ - - public render(): TemplateResult { - const activePresence = this.getActivePresence(); - const openComments = this.getOpenComments(); - const pendingSuggestions = this.getPendingSuggestions(); - - return html` - - `; - } - - private renderCommentCard(comment: IComment): TemplateResult { - return html` -
this.handleCommentClick(comment)} - > -
- ${comment.userName.charAt(0)} -
-
-
- ${comment.userName} - ${this.formatTimeAgo(comment.createdAt)} -
-
${comment.content}
- ${comment.replies.length > 0 - ? html` -
- - ${comment.replies.length} ${comment.replies.length === 1 ? 'reply' : 'replies'} -
- ` - : ''} -
-
- `; - } - - private renderSuggestionCard(suggestion: ISuggestion): TemplateResult { - return html` -
this.handleSuggestionClick(suggestion)}> -
-
-
- ${suggestion.userName.charAt(0)} -
- ${suggestion.userName} -
-
- - ${suggestion.status} -
-
-
- ${suggestion.originalText} - - ${suggestion.suggestedText} -
-
- `; - } -} diff --git a/ts_web/elements/sdig-contract-attachments/index.ts b/ts_web/elements/sdig-contract-attachments/index.ts deleted file mode 100644 index a742952..0000000 --- a/ts_web/elements/sdig-contract-attachments/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './sdig-contract-attachments.js'; diff --git a/ts_web/elements/sdig-contract-attachments/sdig-contract-attachments.ts b/ts_web/elements/sdig-contract-attachments/sdig-contract-attachments.ts deleted file mode 100644 index 976d60c..0000000 --- a/ts_web/elements/sdig-contract-attachments/sdig-contract-attachments.ts +++ /dev/null @@ -1,806 +0,0 @@ -/** - * @file sdig-contract-attachments.ts - * @description Contract attachments and prior contracts manager - */ - -import { - DeesElement, - property, - html, - customElement, - type TemplateResult, - css, - cssManager, - state, -} from '@design.estate/dees-element'; - -import * as plugins from '../../plugins.js'; - -declare global { - interface HTMLElementTagNameMap { - 'sdig-contract-attachments': SdigContractAttachments; - } -} - -// Attachment interface -interface IAttachment { - id: string; - name: string; - type: 'document' | 'image' | 'spreadsheet' | 'pdf' | 'other'; - mimeType: string; - size: number; - uploadedAt: number; - uploadedBy: string; - description?: string; - url?: string; -} - -// File type configuration -const FILE_TYPES = { - document: { icon: 'lucide:FileText', color: '#3b82f6', label: 'Document' }, - image: { icon: 'lucide:Image', color: '#10b981', label: 'Image' }, - spreadsheet: { icon: 'lucide:Sheet', color: '#22c55e', label: 'Spreadsheet' }, - pdf: { icon: 'lucide:FileType', color: '#ef4444', label: 'PDF' }, - other: { icon: 'lucide:File', color: '#6b7280', label: 'File' }, -}; - -@customElement('sdig-contract-attachments') -export class SdigContractAttachments extends DeesElement { - // ============================================================================ - // STATIC - // ============================================================================ - - public static demo = () => html` - - `; - - public static styles = [ - cssManager.defaultStyles, - css` - :host { - display: block; - } - - .attachments-container { - display: flex; - flex-direction: column; - gap: 24px; - } - - /* Section card */ - .section-card { - background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - border-radius: 12px; - overflow: hidden; - } - - .section-header { - display: flex; - align-items: center; - justify-content: space-between; - padding: 16px 20px; - background: ${cssManager.bdTheme('#f9fafb', '#111111')}; - border-bottom: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - } - - .section-title { - display: flex; - align-items: center; - gap: 10px; - font-size: 15px; - font-weight: 600; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - } - - .section-title dees-icon { - font-size: 18px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .section-count { - font-size: 13px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .section-content { - padding: 20px; - } - - /* Upload zone */ - .upload-zone { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - padding: 40px 20px; - border: 2px dashed ${cssManager.bdTheme('#d1d5db', '#3f3f46')}; - border-radius: 12px; - background: ${cssManager.bdTheme('#f9fafb', '#111111')}; - cursor: pointer; - transition: all 0.15s ease; - } - - .upload-zone:hover { - border-color: ${cssManager.bdTheme('#9ca3af', '#52525b')}; - background: ${cssManager.bdTheme('#f3f4f6', '#18181b')}; - } - - .upload-zone.dragging { - border-color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')}; - background: ${cssManager.bdTheme('#eff6ff', '#172554')}; - } - - .upload-zone-icon { - width: 64px; - height: 64px; - border-radius: 16px; - display: flex; - align-items: center; - justify-content: center; - font-size: 28px; - background: ${cssManager.bdTheme('#e5e7eb', '#27272a')}; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - margin-bottom: 16px; - } - - .upload-zone-title { - font-size: 16px; - font-weight: 600; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - margin-bottom: 8px; - } - - .upload-zone-subtitle { - font-size: 14px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - margin-bottom: 16px; - } - - .upload-zone-hint { - font-size: 12px; - color: ${cssManager.bdTheme('#9ca3af', '#6b7280')}; - } - - /* Attachments list */ - .attachments-list { - display: flex; - flex-direction: column; - gap: 12px; - } - - .attachment-item { - display: flex; - align-items: center; - gap: 14px; - padding: 14px 16px; - background: ${cssManager.bdTheme('#f9fafb', '#111111')}; - border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - border-radius: 10px; - transition: all 0.15s ease; - } - - .attachment-item:hover { - border-color: ${cssManager.bdTheme('#d1d5db', '#3f3f46')}; - } - - .attachment-icon { - width: 44px; - height: 44px; - border-radius: 10px; - display: flex; - align-items: center; - justify-content: center; - font-size: 20px; - flex-shrink: 0; - } - - .attachment-info { - flex: 1; - min-width: 0; - } - - .attachment-name { - font-size: 14px; - font-weight: 600; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - margin-bottom: 4px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } - - .attachment-meta { - display: flex; - flex-wrap: wrap; - gap: 12px; - font-size: 12px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .attachment-meta-item { - display: flex; - align-items: center; - gap: 4px; - } - - .attachment-actions { - display: flex; - gap: 4px; - flex-shrink: 0; - } - - /* Prior contracts */ - .prior-contracts-list { - display: flex; - flex-direction: column; - gap: 12px; - } - - .prior-contract-item { - display: flex; - align-items: center; - gap: 14px; - padding: 16px; - background: ${cssManager.bdTheme('#f9fafb', '#111111')}; - border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - border-radius: 10px; - cursor: pointer; - transition: all 0.15s ease; - } - - .prior-contract-item:hover { - border-color: ${cssManager.bdTheme('#d1d5db', '#3f3f46')}; - background: ${cssManager.bdTheme('#f3f4f6', '#18181b')}; - } - - .prior-contract-icon { - width: 48px; - height: 48px; - border-radius: 10px; - display: flex; - align-items: center; - justify-content: center; - font-size: 22px; - background: ${cssManager.bdTheme('#dbeafe', '#1e3a5f')}; - color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')}; - flex-shrink: 0; - } - - .prior-contract-info { - flex: 1; - min-width: 0; - } - - .prior-contract-title { - font-size: 15px; - font-weight: 600; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - margin-bottom: 4px; - } - - .prior-contract-context { - font-size: 13px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } - - .prior-contract-actions { - display: flex; - gap: 8px; - flex-shrink: 0; - } - - /* Empty state */ - .empty-state { - display: flex; - flex-direction: column; - align-items: center; - padding: 40px 20px; - text-align: center; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .empty-state dees-icon { - font-size: 48px; - margin-bottom: 16px; - opacity: 0.5; - } - - .empty-state h4 { - margin: 0 0 8px; - font-size: 16px; - font-weight: 600; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - } - - .empty-state p { - margin: 0; - font-size: 14px; - } - - /* Storage summary */ - .storage-summary { - display: flex; - align-items: center; - gap: 16px; - padding: 16px; - background: ${cssManager.bdTheme('#f9fafb', '#111111')}; - border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - border-radius: 10px; - margin-bottom: 20px; - } - - .storage-info { - flex: 1; - } - - .storage-label { - font-size: 13px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - margin-bottom: 6px; - } - - .storage-bar { - height: 6px; - background: ${cssManager.bdTheme('#e5e7eb', '#27272a')}; - border-radius: 3px; - overflow: hidden; - } - - .storage-fill { - height: 100%; - background: ${cssManager.bdTheme('#3b82f6', '#60a5fa')}; - transition: width 0.3s ease; - } - - .storage-text { - font-size: 14px; - font-weight: 600; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - white-space: nowrap; - } - - /* Buttons */ - .btn { - display: inline-flex; - align-items: center; - gap: 6px; - padding: 8px 14px; - font-size: 13px; - font-weight: 500; - border-radius: 6px; - border: none; - cursor: pointer; - transition: all 0.15s ease; - } - - .btn-sm { - padding: 6px 10px; - font-size: 12px; - } - - .btn-primary { - background: ${cssManager.bdTheme('#111111', '#fafafa')}; - color: ${cssManager.bdTheme('#ffffff', '#09090b')}; - } - - .btn-primary:hover { - background: ${cssManager.bdTheme('#333333', '#e5e5e5')}; - } - - .btn-secondary { - background: ${cssManager.bdTheme('#f3f4f6', '#27272a')}; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - } - - .btn-secondary:hover { - background: ${cssManager.bdTheme('#e5e7eb', '#3f3f46')}; - } - - .btn-ghost { - background: transparent; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - padding: 6px; - } - - .btn-ghost:hover { - background: ${cssManager.bdTheme('#f3f4f6', '#27272a')}; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - } - - .btn-danger { - color: ${cssManager.bdTheme('#dc2626', '#f87171')}; - } - - .btn-danger:hover { - background: ${cssManager.bdTheme('#fef2f2', '#450a0a')}; - } - - /* Type badge */ - .type-badge { - display: inline-flex; - align-items: center; - gap: 4px; - padding: 2px 8px; - border-radius: 4px; - font-size: 11px; - font-weight: 500; - background: ${cssManager.bdTheme('#e5e7eb', '#27272a')}; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - } - `, - ]; - - // ============================================================================ - // PROPERTIES - // ============================================================================ - - @property({ type: Object }) - public accessor contract: plugins.sdInterfaces.IPortableContract | null = null; - - @property({ type: Boolean }) - public accessor readonly: boolean = false; - - // ============================================================================ - // STATE - // ============================================================================ - - @state() - private accessor isDragging: boolean = false; - - // Demo attachments data - @state() - private accessor attachments: IAttachment[] = [ - { - id: '1', - name: 'Employment_Terms_v2.pdf', - type: 'pdf', - mimeType: 'application/pdf', - size: 245760, - uploadedAt: Date.now() - 86400000 * 3, - uploadedBy: 'employer', - description: 'Original employment terms document', - }, - { - id: '2', - name: 'ID_Verification.png', - type: 'image', - mimeType: 'image/png', - size: 1024000, - uploadedAt: Date.now() - 86400000, - uploadedBy: 'employee', - }, - { - id: '3', - name: 'Tax_Information.xlsx', - type: 'spreadsheet', - mimeType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', - size: 52480, - uploadedAt: Date.now() - 86400000 * 2, - uploadedBy: 'employer', - }, - ]; - - // ============================================================================ - // EVENT HANDLERS - // ============================================================================ - - private handleFieldChange(path: string, value: unknown) { - this.dispatchEvent( - new CustomEvent('field-change', { - detail: { path, value }, - bubbles: true, - composed: true, - }) - ); - } - - private handleDragEnter(e: DragEvent) { - e.preventDefault(); - e.stopPropagation(); - this.isDragging = true; - } - - private handleDragLeave(e: DragEvent) { - e.preventDefault(); - e.stopPropagation(); - this.isDragging = false; - } - - private handleDragOver(e: DragEvent) { - e.preventDefault(); - e.stopPropagation(); - } - - private handleDrop(e: DragEvent) { - e.preventDefault(); - e.stopPropagation(); - this.isDragging = false; - - const files = e.dataTransfer?.files; - if (files && files.length > 0) { - this.handleFiles(files); - } - } - - private handleFileSelect() { - const input = document.createElement('input'); - input.type = 'file'; - input.multiple = true; - input.onchange = () => { - if (input.files && input.files.length > 0) { - this.handleFiles(input.files); - } - }; - input.click(); - } - - private handleFiles(files: FileList) { - // Demo: just add to list - Array.from(files).forEach((file) => { - const newAttachment: IAttachment = { - id: `att-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`, - name: file.name, - type: this.getFileType(file.type), - mimeType: file.type, - size: file.size, - uploadedAt: Date.now(), - uploadedBy: 'user', - }; - this.attachments = [...this.attachments, newAttachment]; - }); - } - - private handleDeleteAttachment(attachmentId: string) { - this.attachments = this.attachments.filter((a) => a.id !== attachmentId); - } - - private handleAddPriorContract() { - // TODO: Open prior contract picker modal - } - - private handleRemovePriorContract(index: number) { - if (!this.contract) return; - const updatedPriorContracts = [...this.contract.priorContracts]; - updatedPriorContracts.splice(index, 1); - this.handleFieldChange('priorContracts', updatedPriorContracts); - } - - // ============================================================================ - // HELPERS - // ============================================================================ - - private getFileType(mimeType: string): IAttachment['type'] { - if (mimeType.includes('pdf')) return 'pdf'; - if (mimeType.includes('image')) return 'image'; - if (mimeType.includes('spreadsheet') || mimeType.includes('excel')) return 'spreadsheet'; - if (mimeType.includes('document') || mimeType.includes('word')) return 'document'; - return 'other'; - } - - private getFileTypeConfig(type: IAttachment['type']) { - return FILE_TYPES[type] || FILE_TYPES.other; - } - - private formatFileSize(bytes: number): string { - if (bytes === 0) return '0 B'; - const k = 1024; - const sizes = ['B', 'KB', 'MB', 'GB']; - const i = Math.floor(Math.log(bytes) / Math.log(k)); - return parseFloat((bytes / Math.pow(k, i)).toFixed(1)) + ' ' + sizes[i]; - } - - private formatDate(timestamp: number): string { - return new Date(timestamp).toLocaleDateString('en-US', { - month: 'short', - day: 'numeric', - year: 'numeric', - }); - } - - private getTotalSize(): number { - return this.attachments.reduce((sum, a) => sum + a.size, 0); - } - - private getPartyName(roleId: string): string { - const role = this.contract?.availableRoles.find((r) => r.id === roleId); - return role?.name || roleId; - } - - // ============================================================================ - // RENDER - // ============================================================================ - - public render(): TemplateResult { - if (!this.contract) { - return html`
No contract loaded
`; - } - - const totalSize = this.getTotalSize(); - const maxSize = 50 * 1024 * 1024; // 50MB demo limit - const usagePercent = Math.min((totalSize / maxSize) * 100, 100); - - return html` -
- -
-
-
- - Attachments -
- ${this.attachments.length} files -
-
- -
-
-
Storage used
-
-
-
-
-
- ${this.formatFileSize(totalSize)} / ${this.formatFileSize(maxSize)} -
-
- - - ${!this.readonly - ? html` -
-
- -
-
Drop files here or click to upload
-
Add supporting documents, images, or spreadsheets
-
PDF, DOCX, XLSX, PNG, JPG up to 10MB each
-
- ` - : ''} - - - ${this.attachments.length > 0 - ? html` -
- ${this.attachments.map((attachment) => this.renderAttachmentItem(attachment))} -
- ` - : html` -
- -

No Attachments

-

Upload files to attach them to this contract

-
- `} -
-
- - -
-
-
- - Prior Contracts -
- ${!this.readonly - ? html` - - ` - : ''} -
-
- ${this.contract.priorContracts.length > 0 - ? html` -
- ${this.contract.priorContracts.map((priorContract, index) => - this.renderPriorContractItem(priorContract, index) - )} -
- ` - : html` -
- -

No Prior Contracts

-

Link related or predecessor contracts here

-
- `} -
-
-
- `; - } - - private renderAttachmentItem(attachment: IAttachment): TemplateResult { - const typeConfig = this.getFileTypeConfig(attachment.type); - - return html` -
-
- -
-
-
${attachment.name}
-
- ${typeConfig.label} - - ${this.formatFileSize(attachment.size)} - - - - ${this.formatDate(attachment.uploadedAt)} - - - - ${this.getPartyName(attachment.uploadedBy)} - -
-
-
- - - ${!this.readonly - ? html` - - ` - : ''} -
-
- `; - } - - private renderPriorContractItem(priorContract: plugins.sdInterfaces.IPortableContract, index: number): TemplateResult { - return html` -
-
- -
-
-
${priorContract.title}
-
${priorContract.context || 'No description'}
-
-
- - ${!this.readonly - ? html` - - ` - : ''} -
-
- `; - } -} diff --git a/ts_web/elements/sdig-contract-audit/index.ts b/ts_web/elements/sdig-contract-audit/index.ts deleted file mode 100644 index 8ff425b..0000000 --- a/ts_web/elements/sdig-contract-audit/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './sdig-contract-audit.js'; diff --git a/ts_web/elements/sdig-contract-audit/sdig-contract-audit.ts b/ts_web/elements/sdig-contract-audit/sdig-contract-audit.ts deleted file mode 100644 index 6f9e4d1..0000000 --- a/ts_web/elements/sdig-contract-audit/sdig-contract-audit.ts +++ /dev/null @@ -1,772 +0,0 @@ -/** - * @file sdig-contract-audit.ts - * @description Contract audit log and lifecycle history component - */ - -import { - DeesElement, - property, - html, - customElement, - type TemplateResult, - css, - cssManager, - state, -} from '@design.estate/dees-element'; - -import * as plugins from '../../plugins.js'; - -declare global { - interface HTMLElementTagNameMap { - 'sdig-contract-audit': SdigContractAudit; - } -} - -// Audit event interface -interface IAuditEvent { - id: string; - timestamp: number; - type: 'created' | 'updated' | 'status_change' | 'signature' | 'comment' | 'attachment' | 'viewed' | 'shared'; - userId: string; - userName: string; - userColor: string; - description: string; - details?: { - field?: string; - oldValue?: string; - newValue?: string; - attachmentName?: string; - signatureStatus?: string; - }; -} - -// Status workflow configuration -const STATUS_WORKFLOW = [ - { id: 'draft', label: 'Draft', icon: 'lucide:FileEdit', color: '#f59e0b' }, - { id: 'review', label: 'Review', icon: 'lucide:Eye', color: '#3b82f6' }, - { id: 'pending', label: 'Pending Signatures', icon: 'lucide:PenTool', color: '#8b5cf6' }, - { id: 'signed', label: 'Signed', icon: 'lucide:CheckCircle', color: '#10b981' }, - { id: 'executed', label: 'Executed', icon: 'lucide:ShieldCheck', color: '#059669' }, -]; - -// Event type configuration -const EVENT_TYPES = { - created: { icon: 'lucide:PlusCircle', color: '#10b981', label: 'Created' }, - updated: { icon: 'lucide:Pencil', color: '#3b82f6', label: 'Updated' }, - status_change: { icon: 'lucide:ArrowRightCircle', color: '#8b5cf6', label: 'Status Changed' }, - signature: { icon: 'lucide:PenTool', color: '#10b981', label: 'Signature' }, - comment: { icon: 'lucide:MessageCircle', color: '#f59e0b', label: 'Comment' }, - attachment: { icon: 'lucide:Paperclip', color: '#6366f1', label: 'Attachment' }, - viewed: { icon: 'lucide:Eye', color: '#6b7280', label: 'Viewed' }, - shared: { icon: 'lucide:Share2', color: '#ec4899', label: 'Shared' }, -}; - -@customElement('sdig-contract-audit') -export class SdigContractAudit extends DeesElement { - // ============================================================================ - // STATIC - // ============================================================================ - - public static demo = () => html` - - `; - - public static styles = [ - cssManager.defaultStyles, - css` - :host { - display: block; - } - - .audit-container { - display: flex; - flex-direction: column; - gap: 24px; - } - - /* Lifecycle status */ - .lifecycle-card { - background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - border-radius: 12px; - padding: 24px; - } - - .lifecycle-title { - font-size: 16px; - font-weight: 600; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - margin-bottom: 20px; - } - - .status-workflow { - display: flex; - align-items: center; - gap: 8px; - overflow-x: auto; - padding-bottom: 8px; - } - - .status-step { - display: flex; - flex-direction: column; - align-items: center; - gap: 8px; - min-width: 100px; - } - - .status-icon { - width: 48px; - height: 48px; - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - font-size: 22px; - background: ${cssManager.bdTheme('#f3f4f6', '#27272a')}; - color: ${cssManager.bdTheme('#9ca3af', '#6b7280')}; - transition: all 0.2s ease; - } - - .status-step.completed .status-icon { - background: ${cssManager.bdTheme('#d1fae5', '#064e3b')}; - color: ${cssManager.bdTheme('#059669', '#34d399')}; - } - - .status-step.current .status-icon { - background: ${cssManager.bdTheme('#dbeafe', '#1e3a5f')}; - color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')}; - box-shadow: 0 0 0 4px ${cssManager.bdTheme('rgba(59, 130, 246, 0.2)', 'rgba(96, 165, 250, 0.2)')}; - } - - .status-label { - font-size: 12px; - font-weight: 500; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - text-align: center; - } - - .status-step.completed .status-label, - .status-step.current .status-label { - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - } - - .status-connector { - flex: 1; - height: 2px; - background: ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - min-width: 40px; - } - - .status-connector.completed { - background: ${cssManager.bdTheme('#10b981', '#34d399')}; - } - - /* Section card */ - .section-card { - background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - border-radius: 12px; - overflow: hidden; - } - - .section-header { - display: flex; - align-items: center; - justify-content: space-between; - padding: 16px 20px; - background: ${cssManager.bdTheme('#f9fafb', '#111111')}; - border-bottom: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - } - - .section-title { - display: flex; - align-items: center; - gap: 10px; - font-size: 15px; - font-weight: 600; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - } - - .section-title dees-icon { - font-size: 18px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .section-content { - padding: 20px; - } - - /* Filter controls */ - .filter-row { - display: flex; - align-items: center; - gap: 12px; - margin-bottom: 20px; - } - - .filter-select { - padding: 8px 12px; - font-size: 13px; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - border: 1px solid ${cssManager.bdTheme('#d1d5db', '#3f3f46')}; - border-radius: 6px; - outline: none; - cursor: pointer; - } - - .search-input { - flex: 1; - padding: 8px 12px; - font-size: 13px; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - border: 1px solid ${cssManager.bdTheme('#d1d5db', '#3f3f46')}; - border-radius: 6px; - outline: none; - } - - .search-input:focus { - border-color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')}; - } - - /* Timeline */ - .timeline { - position: relative; - padding-left: 32px; - } - - .timeline::before { - content: ''; - position: absolute; - left: 11px; - top: 0; - bottom: 0; - width: 2px; - background: ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - } - - .timeline-item { - position: relative; - padding-bottom: 24px; - } - - .timeline-item:last-child { - padding-bottom: 0; - } - - .timeline-dot { - position: absolute; - left: -32px; - top: 0; - width: 24px; - height: 24px; - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - font-size: 12px; - background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - border: 2px solid; - } - - .timeline-content { - padding: 16px; - background: ${cssManager.bdTheme('#f9fafb', '#111111')}; - border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - border-radius: 10px; - } - - .timeline-header { - display: flex; - align-items: center; - justify-content: space-between; - margin-bottom: 8px; - } - - .timeline-title { - display: flex; - align-items: center; - gap: 8px; - font-size: 14px; - font-weight: 600; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - } - - .timeline-time { - font-size: 12px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .timeline-user { - display: flex; - align-items: center; - gap: 8px; - margin-bottom: 8px; - } - - .timeline-avatar { - width: 24px; - height: 24px; - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - font-size: 10px; - font-weight: 600; - color: white; - } - - .timeline-username { - font-size: 13px; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - } - - .timeline-description { - font-size: 13px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .timeline-details { - margin-top: 10px; - padding: 10px; - background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - border-radius: 6px; - font-size: 12px; - font-family: 'Roboto Mono', monospace; - } - - .detail-row { - display: flex; - align-items: center; - gap: 8px; - margin-bottom: 4px; - } - - .detail-row:last-child { - margin-bottom: 0; - } - - .detail-label { - font-weight: 500; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .detail-value { - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - } - - .detail-old { - text-decoration: line-through; - color: ${cssManager.bdTheme('#ef4444', '#f87171')}; - } - - .detail-new { - color: ${cssManager.bdTheme('#10b981', '#34d399')}; - } - - /* Event type badge */ - .event-badge { - display: inline-flex; - align-items: center; - gap: 4px; - padding: 2px 8px; - border-radius: 4px; - font-size: 11px; - font-weight: 500; - } - - /* Stats row */ - .stats-row { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); - gap: 16px; - margin-bottom: 24px; - } - - .stat-card { - padding: 16px; - background: ${cssManager.bdTheme('#f9fafb', '#111111')}; - border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - border-radius: 10px; - text-align: center; - } - - .stat-value { - font-size: 28px; - font-weight: 700; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - margin-bottom: 4px; - } - - .stat-label { - font-size: 13px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - /* Empty state */ - .empty-state { - display: flex; - flex-direction: column; - align-items: center; - padding: 40px 20px; - text-align: center; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .empty-state dees-icon { - font-size: 48px; - margin-bottom: 16px; - opacity: 0.5; - } - - .empty-state h4 { - margin: 0 0 8px; - font-size: 16px; - font-weight: 600; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - } - - .empty-state p { - margin: 0; - font-size: 14px; - } - - /* Buttons */ - .btn { - display: inline-flex; - align-items: center; - gap: 6px; - padding: 8px 14px; - font-size: 13px; - font-weight: 500; - border-radius: 6px; - border: none; - cursor: pointer; - transition: all 0.15s ease; - } - - .btn-secondary { - background: ${cssManager.bdTheme('#f3f4f6', '#27272a')}; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - } - - .btn-secondary:hover { - background: ${cssManager.bdTheme('#e5e7eb', '#3f3f46')}; - } - `, - ]; - - // ============================================================================ - // PROPERTIES - // ============================================================================ - - @property({ type: Object }) - public accessor contract: plugins.sdInterfaces.IPortableContract | null = null; - - // ============================================================================ - // STATE - // ============================================================================ - - @state() - private accessor filterType: string = 'all'; - - @state() - private accessor searchQuery: string = ''; - - // Demo audit events - @state() - private accessor auditEvents: IAuditEvent[] = [ - { - id: '1', - timestamp: Date.now() - 3600000, - type: 'signature', - userId: '1', - userName: 'Alice Smith', - userColor: '#3b82f6', - description: 'Signed the contract', - details: { signatureStatus: 'completed' }, - }, - { - id: '2', - timestamp: Date.now() - 7200000, - type: 'status_change', - userId: '2', - userName: 'Bob Johnson', - userColor: '#10b981', - description: 'Changed status from Review to Pending Signatures', - details: { field: 'status', oldValue: 'review', newValue: 'pending' }, - }, - { - id: '3', - timestamp: Date.now() - 86400000, - type: 'updated', - userId: '2', - userName: 'Bob Johnson', - userColor: '#10b981', - description: 'Updated compensation amount', - details: { field: 'paragraphs.2.content', oldValue: '[Salary Amount]', newValue: '€520/month' }, - }, - { - id: '4', - timestamp: Date.now() - 86400000 * 2, - type: 'comment', - userId: '1', - userName: 'Alice Smith', - userColor: '#3b82f6', - description: 'Added a comment on Compensation section', - }, - { - id: '5', - timestamp: Date.now() - 86400000 * 3, - type: 'attachment', - userId: '3', - userName: 'Carol Davis', - userColor: '#f59e0b', - description: 'Uploaded ID verification document', - details: { attachmentName: 'ID_Verification.pdf' }, - }, - { - id: '6', - timestamp: Date.now() - 86400000 * 5, - type: 'created', - userId: '2', - userName: 'Bob Johnson', - userColor: '#10b981', - description: 'Created the contract', - }, - ]; - - // ============================================================================ - // HELPERS - // ============================================================================ - - private getEventConfig(type: IAuditEvent['type']) { - return EVENT_TYPES[type] || EVENT_TYPES.updated; - } - - private getFilteredEvents(): IAuditEvent[] { - let events = this.auditEvents; - - if (this.filterType !== 'all') { - events = events.filter((e) => e.type === this.filterType); - } - - if (this.searchQuery) { - const query = this.searchQuery.toLowerCase(); - events = events.filter( - (e) => - e.description.toLowerCase().includes(query) || - e.userName.toLowerCase().includes(query) - ); - } - - return events; - } - - private formatDate(timestamp: number): string { - return new Date(timestamp).toLocaleDateString('en-US', { - month: 'short', - day: 'numeric', - year: 'numeric', - hour: '2-digit', - minute: '2-digit', - }); - } - - private formatTimeAgo(timestamp: number): string { - const seconds = Math.floor((Date.now() - timestamp) / 1000); - if (seconds < 60) return 'just now'; - const minutes = Math.floor(seconds / 60); - if (minutes < 60) return `${minutes}m ago`; - const hours = Math.floor(minutes / 60); - if (hours < 24) return `${hours}h ago`; - const days = Math.floor(hours / 24); - return `${days}d ago`; - } - - private getCurrentStatusIndex(): number { - // Demo: Return a fixed position - return 2; // Pending Signatures - } - - private getEventStats() { - const total = this.auditEvents.length; - const updates = this.auditEvents.filter((e) => e.type === 'updated').length; - const signatures = this.auditEvents.filter((e) => e.type === 'signature').length; - const comments = this.auditEvents.filter((e) => e.type === 'comment').length; - return { total, updates, signatures, comments }; - } - - // ============================================================================ - // RENDER - // ============================================================================ - - public render(): TemplateResult { - if (!this.contract) { - return html`
No contract loaded
`; - } - - const currentStatusIndex = this.getCurrentStatusIndex(); - const filteredEvents = this.getFilteredEvents(); - const stats = this.getEventStats(); - - return html` -
- -
-
Contract Lifecycle
-
- ${STATUS_WORKFLOW.map((status, index) => html` -
-
- -
-
${status.label}
-
- ${index < STATUS_WORKFLOW.length - 1 - ? html`
` - : ''} - `)} -
-
- - -
-
-
${stats.total}
-
Total Events
-
-
-
${stats.updates}
-
Updates
-
-
-
${stats.signatures}
-
Signatures
-
-
-
${stats.comments}
-
Comments
-
-
- - -
-
-
- - Activity Log -
- -
-
- -
- - (this.searchQuery = (e.target as HTMLInputElement).value)} - /> -
- - - ${filteredEvents.length > 0 - ? html` -
- ${filteredEvents.map((event) => this.renderTimelineItem(event))} -
- ` - : html` -
- -

No Events Found

-

No activity matches your current filters

-
- `} -
-
-
- `; - } - - private renderTimelineItem(event: IAuditEvent): TemplateResult { - const config = this.getEventConfig(event.type); - - return html` -
-
- -
-
-
-
- - ${config.label} - -
- - ${this.formatTimeAgo(event.timestamp)} - -
-
-
- ${event.userName.charAt(0)} -
- ${event.userName} -
-
${event.description}
- ${event.details - ? html` -
- ${event.details.field - ? html` -
- Field: - ${event.details.field} -
- ` - : ''} - ${event.details.oldValue && event.details.newValue - ? html` -
- ${event.details.oldValue} - - ${event.details.newValue} -
- ` - : ''} - ${event.details.attachmentName - ? html` -
- File: - ${event.details.attachmentName} -
- ` - : ''} -
- ` - : ''} -
-
- `; - } -} diff --git a/ts_web/elements/sdig-contract-collaboration/index.ts b/ts_web/elements/sdig-contract-collaboration/index.ts deleted file mode 100644 index 064c40f..0000000 --- a/ts_web/elements/sdig-contract-collaboration/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './sdig-contract-collaboration.js'; diff --git a/ts_web/elements/sdig-contract-collaboration/sdig-contract-collaboration.ts b/ts_web/elements/sdig-contract-collaboration/sdig-contract-collaboration.ts deleted file mode 100644 index e8d2a8c..0000000 --- a/ts_web/elements/sdig-contract-collaboration/sdig-contract-collaboration.ts +++ /dev/null @@ -1,972 +0,0 @@ -/** - * @file sdig-contract-collaboration.ts - * @description Contract collaboration - comments, suggestions, and presence - */ - -import { - DeesElement, - property, - html, - customElement, - type TemplateResult, - css, - cssManager, - state, -} from '@design.estate/dees-element'; - -import * as plugins from '../../plugins.js'; - -declare global { - interface HTMLElementTagNameMap { - 'sdig-contract-collaboration': SdigContractCollaboration; - } -} - -// Comment interface -interface IComment { - id: string; - userId: string; - userName: string; - userColor: string; - content: string; - createdAt: number; - updatedAt?: number; - anchorPath?: string; - anchorText?: string; - resolved: boolean; - replies: IComment[]; -} - -// Suggestion interface -interface ISuggestion { - id: string; - userId: string; - userName: string; - userColor: string; - originalText: string; - suggestedText: string; - path: string; - status: 'pending' | 'accepted' | 'rejected'; - createdAt: number; -} - -// Presence interface -interface IPresence { - userId: string; - userName: string; - userColor: string; - currentSection: string; - cursorPosition?: { path: string; offset: number }; - lastActive: number; -} - -@customElement('sdig-contract-collaboration') -export class SdigContractCollaboration extends DeesElement { - // ============================================================================ - // STATIC - // ============================================================================ - - public static demo = () => html` - - `; - - public static styles = [ - cssManager.defaultStyles, - css` - :host { - display: block; - } - - .collaboration-container { - display: flex; - flex-direction: column; - gap: 24px; - } - - /* Presence bar */ - .presence-bar { - display: flex; - align-items: center; - justify-content: space-between; - padding: 16px 20px; - background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - border-radius: 12px; - } - - .presence-info { - display: flex; - align-items: center; - gap: 12px; - } - - .presence-label { - font-size: 14px; - font-weight: 500; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .presence-avatars { - display: flex; - align-items: center; - } - - .presence-avatar { - width: 36px; - height: 36px; - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - font-size: 14px; - font-weight: 600; - color: white; - margin-left: -8px; - border: 2px solid ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - cursor: pointer; - position: relative; - } - - .presence-avatar:first-child { - margin-left: 0; - } - - .presence-avatar .status-dot { - position: absolute; - bottom: 0; - right: 0; - width: 10px; - height: 10px; - border-radius: 50%; - background: #10b981; - border: 2px solid ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - } - - .presence-avatar .status-dot.away { - background: #f59e0b; - } - - .presence-count { - display: flex; - align-items: center; - justify-content: center; - min-width: 36px; - height: 36px; - border-radius: 50%; - background: ${cssManager.bdTheme('#f3f4f6', '#27272a')}; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - font-size: 13px; - font-weight: 600; - margin-left: -8px; - border: 2px solid ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - } - - .share-btn { - display: flex; - align-items: center; - gap: 8px; - padding: 10px 16px; - background: ${cssManager.bdTheme('#111111', '#fafafa')}; - color: ${cssManager.bdTheme('#ffffff', '#09090b')}; - border: none; - border-radius: 8px; - font-size: 14px; - font-weight: 500; - cursor: pointer; - transition: all 0.15s ease; - } - - .share-btn:hover { - background: ${cssManager.bdTheme('#333333', '#e5e5e5')}; - } - - /* Section card */ - .section-card { - background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - border-radius: 12px; - overflow: hidden; - } - - .section-header { - display: flex; - align-items: center; - justify-content: space-between; - padding: 16px 20px; - background: ${cssManager.bdTheme('#f9fafb', '#111111')}; - border-bottom: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - } - - .section-title { - display: flex; - align-items: center; - gap: 10px; - font-size: 15px; - font-weight: 600; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - } - - .section-title dees-icon { - font-size: 18px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .section-badge { - padding: 2px 8px; - border-radius: 9999px; - font-size: 12px; - font-weight: 600; - background: ${cssManager.bdTheme('#dbeafe', '#1e3a5f')}; - color: ${cssManager.bdTheme('#1e40af', '#93c5fd')}; - } - - .section-content { - padding: 20px; - } - - /* Comments list */ - .comments-list { - display: flex; - flex-direction: column; - gap: 16px; - } - - .comment-thread { - padding: 16px; - background: ${cssManager.bdTheme('#f9fafb', '#111111')}; - border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - border-radius: 10px; - } - - .comment-thread.resolved { - opacity: 0.6; - } - - .comment-header { - display: flex; - align-items: center; - gap: 10px; - margin-bottom: 10px; - } - - .comment-avatar { - width: 32px; - height: 32px; - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - font-size: 13px; - font-weight: 600; - color: white; - flex-shrink: 0; - } - - .comment-meta { - flex: 1; - } - - .comment-author { - font-size: 14px; - font-weight: 600; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - } - - .comment-time { - font-size: 12px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .comment-anchor { - display: inline-flex; - align-items: center; - gap: 4px; - padding: 4px 8px; - background: ${cssManager.bdTheme('#fef3c7', '#422006')}; - border-radius: 4px; - font-size: 12px; - color: ${cssManager.bdTheme('#92400e', '#fcd34d')}; - margin-bottom: 10px; - cursor: pointer; - } - - .comment-anchor:hover { - background: ${cssManager.bdTheme('#fde68a', '#713f12')}; - } - - .comment-content { - font-size: 14px; - line-height: 1.6; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - margin-bottom: 12px; - } - - .comment-actions { - display: flex; - align-items: center; - gap: 8px; - } - - .comment-replies { - margin-top: 16px; - padding-left: 16px; - border-left: 2px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - } - - .reply-item { - padding: 12px; - background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - border-radius: 8px; - margin-bottom: 8px; - } - - .reply-item:last-child { - margin-bottom: 0; - } - - /* Suggestions list */ - .suggestions-list { - display: flex; - flex-direction: column; - gap: 12px; - } - - .suggestion-card { - padding: 16px; - background: ${cssManager.bdTheme('#f9fafb', '#111111')}; - border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - border-radius: 10px; - } - - .suggestion-header { - display: flex; - align-items: center; - justify-content: space-between; - margin-bottom: 12px; - } - - .suggestion-user { - display: flex; - align-items: center; - gap: 8px; - } - - .suggestion-status { - display: flex; - align-items: center; - gap: 4px; - padding: 4px 10px; - border-radius: 9999px; - font-size: 12px; - font-weight: 500; - } - - .suggestion-status.pending { - background: ${cssManager.bdTheme('#fef3c7', '#422006')}; - color: ${cssManager.bdTheme('#92400e', '#fcd34d')}; - } - - .suggestion-status.accepted { - background: ${cssManager.bdTheme('#d1fae5', '#064e3b')}; - color: ${cssManager.bdTheme('#065f46', '#6ee7b7')}; - } - - .suggestion-status.rejected { - background: ${cssManager.bdTheme('#fee2e2', '#450a0a')}; - color: ${cssManager.bdTheme('#991b1b', '#fca5a5')}; - } - - .suggestion-diff { - padding: 12px; - background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - border-radius: 8px; - font-family: 'Roboto Mono', monospace; - font-size: 13px; - line-height: 1.5; - } - - .diff-removed { - background: ${cssManager.bdTheme('#fee2e2', '#450a0a')}; - color: ${cssManager.bdTheme('#991b1b', '#fca5a5')}; - text-decoration: line-through; - padding: 2px 4px; - border-radius: 2px; - } - - .diff-added { - background: ${cssManager.bdTheme('#d1fae5', '#064e3b')}; - color: ${cssManager.bdTheme('#065f46', '#6ee7b7')}; - padding: 2px 4px; - border-radius: 2px; - } - - .suggestion-actions { - display: flex; - gap: 8px; - margin-top: 12px; - } - - /* New comment input */ - .new-comment { - display: flex; - gap: 12px; - padding: 16px; - background: ${cssManager.bdTheme('#f9fafb', '#111111')}; - border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - border-radius: 10px; - } - - .new-comment-input { - flex: 1; - padding: 12px; - font-size: 14px; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - border: 1px solid ${cssManager.bdTheme('#d1d5db', '#3f3f46')}; - border-radius: 8px; - outline: none; - resize: none; - min-height: 80px; - font-family: inherit; - } - - .new-comment-input:focus { - border-color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')}; - box-shadow: 0 0 0 3px ${cssManager.bdTheme('rgba(59, 130, 246, 0.1)', 'rgba(96, 165, 250, 0.1)')}; - } - - .new-comment-input::placeholder { - color: ${cssManager.bdTheme('#9ca3af', '#6b7280')}; - } - - /* Empty state */ - .empty-state { - display: flex; - flex-direction: column; - align-items: center; - padding: 40px 20px; - text-align: center; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .empty-state dees-icon { - font-size: 48px; - margin-bottom: 16px; - opacity: 0.5; - } - - .empty-state h4 { - margin: 0 0 8px; - font-size: 16px; - font-weight: 600; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - } - - .empty-state p { - margin: 0; - font-size: 14px; - } - - /* Filter tabs */ - .filter-tabs { - display: flex; - gap: 4px; - margin-bottom: 16px; - } - - .filter-tab { - padding: 8px 14px; - font-size: 13px; - font-weight: 500; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - background: transparent; - border: none; - border-radius: 6px; - cursor: pointer; - transition: all 0.15s ease; - } - - .filter-tab:hover { - background: ${cssManager.bdTheme('#f3f4f6', '#27272a')}; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - } - - .filter-tab.active { - background: ${cssManager.bdTheme('#111111', '#fafafa')}; - color: ${cssManager.bdTheme('#ffffff', '#09090b')}; - } - - /* Buttons */ - .btn { - display: inline-flex; - align-items: center; - gap: 6px; - padding: 8px 14px; - font-size: 13px; - font-weight: 500; - border-radius: 6px; - border: none; - cursor: pointer; - transition: all 0.15s ease; - } - - .btn-sm { - padding: 6px 10px; - font-size: 12px; - } - - .btn-primary { - background: ${cssManager.bdTheme('#111111', '#fafafa')}; - color: ${cssManager.bdTheme('#ffffff', '#09090b')}; - } - - .btn-primary:hover { - background: ${cssManager.bdTheme('#333333', '#e5e5e5')}; - } - - .btn-secondary { - background: ${cssManager.bdTheme('#f3f4f6', '#27272a')}; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - } - - .btn-secondary:hover { - background: ${cssManager.bdTheme('#e5e7eb', '#3f3f46')}; - } - - .btn-ghost { - background: transparent; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .btn-ghost:hover { - background: ${cssManager.bdTheme('#f3f4f6', '#27272a')}; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - } - - .btn-success { - background: ${cssManager.bdTheme('#10b981', '#059669')}; - color: white; - } - - .btn-success:hover { - background: ${cssManager.bdTheme('#059669', '#047857')}; - } - - .btn-danger { - background: ${cssManager.bdTheme('#fee2e2', '#450a0a')}; - color: ${cssManager.bdTheme('#dc2626', '#f87171')}; - } - - .btn-danger:hover { - background: ${cssManager.bdTheme('#fecaca', '#7f1d1d')}; - } - `, - ]; - - // ============================================================================ - // PROPERTIES - // ============================================================================ - - @property({ type: Object }) - public accessor contract: plugins.sdInterfaces.IPortableContract | null = null; - - @property({ type: Boolean }) - public accessor readonly: boolean = false; - - // ============================================================================ - // STATE - // ============================================================================ - - @state() - private accessor activeTab: 'comments' | 'suggestions' = 'comments'; - - @state() - private accessor commentFilter: 'all' | 'open' | 'resolved' = 'all'; - - @state() - private accessor newCommentText: string = ''; - - // Demo presence data - @state() - private accessor presenceList: IPresence[] = [ - { userId: '1', userName: 'Alice Smith', userColor: '#3b82f6', currentSection: 'content', lastActive: Date.now() }, - { userId: '2', userName: 'Bob Johnson', userColor: '#10b981', currentSection: 'parties', lastActive: Date.now() - 60000 }, - { userId: '3', userName: 'Carol Davis', userColor: '#f59e0b', currentSection: 'terms', lastActive: Date.now() - 300000 }, - ]; - - // Demo comments data - @state() - private accessor comments: IComment[] = [ - { - id: '1', - userId: '1', - userName: 'Alice Smith', - userColor: '#3b82f6', - content: 'Can we clarify the payment terms in paragraph 3? The current wording seems ambiguous.', - createdAt: Date.now() - 3600000, - anchorPath: 'paragraphs.2', - anchorText: 'Compensation', - resolved: false, - replies: [ - { - id: '1-1', - userId: '2', - userName: 'Bob Johnson', - userColor: '#10b981', - content: 'Good point. I\'ll update the wording to be more specific.', - createdAt: Date.now() - 1800000, - resolved: false, - replies: [], - }, - ], - }, - { - id: '2', - userId: '3', - userName: 'Carol Davis', - userColor: '#f59e0b', - content: 'The termination clause needs to comply with the latest regulations.', - createdAt: Date.now() - 86400000, - resolved: true, - replies: [], - }, - ]; - - // Demo suggestions data - @state() - private accessor suggestions: ISuggestion[] = [ - { - id: '1', - userId: '1', - userName: 'Alice Smith', - userColor: '#3b82f6', - originalText: 'monthly salary', - suggestedText: 'monthly gross salary', - path: 'paragraphs.2.content', - status: 'pending', - createdAt: Date.now() - 7200000, - }, - ]; - - // ============================================================================ - // EVENT HANDLERS - // ============================================================================ - - private handleFieldChange(path: string, value: unknown) { - this.dispatchEvent( - new CustomEvent('field-change', { - detail: { path, value }, - bubbles: true, - composed: true, - }) - ); - } - - private handleAddComment() { - if (!this.newCommentText.trim()) return; - - const newComment: IComment = { - id: `comment-${Date.now()}`, - userId: 'current-user', - userName: 'You', - userColor: '#6366f1', - content: this.newCommentText, - createdAt: Date.now(), - resolved: false, - replies: [], - }; - - this.comments = [newComment, ...this.comments]; - this.newCommentText = ''; - } - - private handleResolveComment(commentId: string) { - this.comments = this.comments.map((c) => - c.id === commentId ? { ...c, resolved: !c.resolved } : c - ); - } - - private handleAcceptSuggestion(suggestionId: string) { - this.suggestions = this.suggestions.map((s) => - s.id === suggestionId ? { ...s, status: 'accepted' as const } : s - ); - } - - private handleRejectSuggestion(suggestionId: string) { - this.suggestions = this.suggestions.map((s) => - s.id === suggestionId ? { ...s, status: 'rejected' as const } : s - ); - } - - // ============================================================================ - // HELPERS - // ============================================================================ - - private getFilteredComments(): IComment[] { - if (this.commentFilter === 'all') return this.comments; - if (this.commentFilter === 'open') return this.comments.filter((c) => !c.resolved); - return this.comments.filter((c) => c.resolved); - } - - private formatTimeAgo(timestamp: number): string { - const seconds = Math.floor((Date.now() - timestamp) / 1000); - if (seconds < 60) return 'just now'; - const minutes = Math.floor(seconds / 60); - if (minutes < 60) return `${minutes}m ago`; - const hours = Math.floor(minutes / 60); - if (hours < 24) return `${hours}h ago`; - const days = Math.floor(hours / 24); - return `${days}d ago`; - } - - private getActivePresence(): IPresence[] { - const fiveMinutesAgo = Date.now() - 300000; - return this.presenceList.filter((p) => p.lastActive > fiveMinutesAgo); - } - - // ============================================================================ - // RENDER - // ============================================================================ - - public render(): TemplateResult { - if (!this.contract) { - return html`
No contract loaded
`; - } - - const activePresence = this.getActivePresence(); - const openComments = this.comments.filter((c) => !c.resolved).length; - const pendingSuggestions = this.suggestions.filter((s) => s.status === 'pending').length; - - return html` -
- -
-
- Currently viewing: -
- ${activePresence.slice(0, 4).map( - (p) => html` -
- ${p.userName.charAt(0)} - -
- ` - )} - ${activePresence.length > 4 - ? html`
+${activePresence.length - 4}
` - : ''} -
-
- -
- - -
-
-
- - Comments - ${openComments > 0 ? html`${openComments} open` : ''} -
-
-
- -
- - - -
- - - ${!this.readonly - ? html` -
- - -
- ` - : ''} - - - ${this.getFilteredComments().length > 0 - ? html` -
- ${this.getFilteredComments().map((comment) => this.renderComment(comment))} -
- ` - : html` -
- -

No Comments

-

Start a discussion by adding a comment

-
- `} -
-
- - -
-
-
- - Suggestions - ${pendingSuggestions > 0 ? html`${pendingSuggestions} pending` : ''} -
-
-
- ${this.suggestions.length > 0 - ? html` -
- ${this.suggestions.map((suggestion) => this.renderSuggestion(suggestion))} -
- ` - : html` -
- -

No Suggestions

-

Suggested changes will appear here

-
- `} -
-
-
- `; - } - - private renderComment(comment: IComment): TemplateResult { - return html` -
-
-
- ${comment.userName.charAt(0)} -
-
-
${comment.userName}
-
${this.formatTimeAgo(comment.createdAt)}
-
- ${!this.readonly - ? html` - - ` - : ''} -
- - ${comment.anchorText - ? html` -
- - ${comment.anchorText} -
- ` - : ''} - -
${comment.content}
- - ${comment.replies.length > 0 - ? html` -
- ${comment.replies.map( - (reply) => html` -
-
-
- ${reply.userName.charAt(0)} -
-
-
${reply.userName}
-
${this.formatTimeAgo(reply.createdAt)}
-
-
-
${reply.content}
-
- ` - )} -
- ` - : ''} -
- `; - } - - private renderSuggestion(suggestion: ISuggestion): TemplateResult { - return html` -
-
-
-
- ${suggestion.userName.charAt(0)} -
-
-
${suggestion.userName}
-
${this.formatTimeAgo(suggestion.createdAt)}
-
-
-
- - ${suggestion.status.charAt(0).toUpperCase() + suggestion.status.slice(1)} -
-
- -
- ${suggestion.originalText} - - ${suggestion.suggestedText} -
- - ${suggestion.status === 'pending' && !this.readonly - ? html` -
- - -
- ` - : ''} -
- `; - } -} diff --git a/ts_web/elements/sdig-contract-content/index.ts b/ts_web/elements/sdig-contract-content/index.ts deleted file mode 100644 index 39eab13..0000000 --- a/ts_web/elements/sdig-contract-content/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './sdig-contract-content.js'; diff --git a/ts_web/elements/sdig-contract-content/sdig-contract-content.ts b/ts_web/elements/sdig-contract-content/sdig-contract-content.ts deleted file mode 100644 index 33e1902..0000000 --- a/ts_web/elements/sdig-contract-content/sdig-contract-content.ts +++ /dev/null @@ -1,920 +0,0 @@ -/** - * @file sdig-contract-content.ts - * @description Contract content/paragraphs editor component - */ - -import { - DeesElement, - property, - html, - customElement, - type TemplateResult, - css, - cssManager, - state, -} from '@design.estate/dees-element'; - -import * as plugins from '../../plugins.js'; - -declare global { - interface HTMLElementTagNameMap { - 'sdig-contract-content': SdigContractContent; - } -} - -// Paragraph type configuration -const PARAGRAPH_TYPES = [ - { value: 'section', label: 'Section', icon: 'lucide:Heading' }, - { value: 'clause', label: 'Clause', icon: 'lucide:FileText' }, - { value: 'definition', label: 'Definition', icon: 'lucide:BookOpen' }, - { value: 'obligation', label: 'Obligation', icon: 'lucide:CheckSquare' }, - { value: 'condition', label: 'Condition', icon: 'lucide:GitBranch' }, - { value: 'schedule', label: 'Schedule', icon: 'lucide:Calendar' }, -]; - -@customElement('sdig-contract-content') -export class SdigContractContent extends DeesElement { - // ============================================================================ - // STATIC - // ============================================================================ - - public static demo = () => html` - - `; - - public static styles = [ - cssManager.defaultStyles, - css` - :host { - display: block; - } - - .content-container { - display: flex; - flex-direction: column; - gap: 16px; - } - - /* Toolbar */ - .content-toolbar { - display: flex; - align-items: center; - justify-content: space-between; - padding: 12px 16px; - background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - border-radius: 10px; - } - - .toolbar-left { - display: flex; - align-items: center; - gap: 12px; - } - - .toolbar-right { - display: flex; - align-items: center; - gap: 8px; - } - - .search-box { - display: flex; - align-items: center; - gap: 8px; - padding: 8px 12px; - background: ${cssManager.bdTheme('#f3f4f6', '#18181b')}; - border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - border-radius: 8px; - } - - .search-box input { - border: none; - background: transparent; - font-size: 14px; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - outline: none; - width: 200px; - } - - .search-box input::placeholder { - color: ${cssManager.bdTheme('#9ca3af', '#6b7280')}; - } - - .search-box dees-icon { - font-size: 16px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - /* Section card */ - .section-card { - background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - border-radius: 12px; - overflow: hidden; - } - - .section-header { - display: flex; - align-items: center; - justify-content: space-between; - padding: 16px 20px; - background: ${cssManager.bdTheme('#f9fafb', '#111111')}; - border-bottom: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - } - - .section-title { - display: flex; - align-items: center; - gap: 10px; - font-size: 15px; - font-weight: 600; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - } - - .section-title dees-icon { - font-size: 18px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .paragraph-count { - font-size: 13px; - font-weight: 500; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .section-content { - padding: 0; - } - - /* Paragraph list */ - .paragraphs-list { - display: flex; - flex-direction: column; - } - - .paragraph-item { - display: flex; - align-items: flex-start; - gap: 16px; - padding: 20px; - border-bottom: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - cursor: pointer; - transition: background 0.15s ease; - } - - .paragraph-item:last-child { - border-bottom: none; - } - - .paragraph-item:hover { - background: ${cssManager.bdTheme('#f9fafb', '#111111')}; - } - - .paragraph-item.selected { - background: ${cssManager.bdTheme('#eff6ff', '#172554')}; - border-color: ${cssManager.bdTheme('#bfdbfe', '#1e40af')}; - } - - .paragraph-item.editing { - background: ${cssManager.bdTheme('#f9fafb', '#111111')}; - } - - .paragraph-drag-handle { - display: flex; - align-items: center; - justify-content: center; - width: 24px; - height: 24px; - color: ${cssManager.bdTheme('#9ca3af', '#6b7280')}; - cursor: grab; - flex-shrink: 0; - margin-top: 2px; - } - - .paragraph-drag-handle:hover { - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .paragraph-number { - display: flex; - align-items: center; - justify-content: center; - width: 32px; - height: 32px; - border-radius: 8px; - font-size: 14px; - font-weight: 600; - background: ${cssManager.bdTheme('#f3f4f6', '#27272a')}; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - flex-shrink: 0; - } - - .paragraph-content { - flex: 1; - min-width: 0; - } - - .paragraph-title-row { - display: flex; - align-items: center; - gap: 10px; - margin-bottom: 8px; - } - - .paragraph-title { - font-size: 16px; - font-weight: 600; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - } - - .paragraph-title-input { - flex: 1; - font-size: 16px; - font-weight: 600; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - border: 1px solid ${cssManager.bdTheme('#d1d5db', '#3f3f46')}; - border-radius: 6px; - padding: 8px 12px; - outline: none; - } - - .paragraph-title-input:focus { - border-color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')}; - box-shadow: 0 0 0 3px ${cssManager.bdTheme('rgba(59, 130, 246, 0.1)', 'rgba(96, 165, 250, 0.1)')}; - } - - .paragraph-type-badge { - display: inline-flex; - align-items: center; - gap: 4px; - padding: 2px 8px; - border-radius: 4px; - font-size: 11px; - font-weight: 500; - background: ${cssManager.bdTheme('#e5e7eb', '#27272a')}; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - } - - .paragraph-body { - font-size: 14px; - line-height: 1.6; - color: ${cssManager.bdTheme('#4b5563', '#9ca3af')}; - display: -webkit-box; - -webkit-line-clamp: 3; - -webkit-box-orient: vertical; - overflow: hidden; - } - - .paragraph-body.expanded { - -webkit-line-clamp: unset; - overflow: visible; - } - - .paragraph-body-textarea { - width: 100%; - min-height: 150px; - font-size: 14px; - line-height: 1.6; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - border: 1px solid ${cssManager.bdTheme('#d1d5db', '#3f3f46')}; - border-radius: 6px; - padding: 12px; - outline: none; - resize: vertical; - font-family: inherit; - } - - .paragraph-body-textarea:focus { - border-color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')}; - box-shadow: 0 0 0 3px ${cssManager.bdTheme('rgba(59, 130, 246, 0.1)', 'rgba(96, 165, 250, 0.1)')}; - } - - .paragraph-meta { - display: flex; - align-items: center; - gap: 16px; - margin-top: 12px; - font-size: 12px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .paragraph-meta-item { - display: flex; - align-items: center; - gap: 4px; - } - - .paragraph-actions { - display: flex; - flex-direction: column; - gap: 4px; - flex-shrink: 0; - } - - .paragraph-edit-actions { - display: flex; - gap: 8px; - margin-top: 16px; - } - - /* Variable highlighting */ - .variable { - display: inline; - padding: 2px 6px; - border-radius: 4px; - font-family: 'Roboto Mono', monospace; - font-size: 13px; - background: ${cssManager.bdTheme('#fef3c7', '#422006')}; - color: ${cssManager.bdTheme('#92400e', '#fcd34d')}; - } - - /* Child paragraphs */ - .child-paragraphs { - margin-left: 48px; - border-left: 2px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - padding-left: 16px; - } - - .child-paragraphs .paragraph-item { - padding: 16px; - } - - .child-paragraphs .paragraph-number { - width: 28px; - height: 28px; - font-size: 12px; - } - - /* Add paragraph button */ - .add-paragraph-row { - display: flex; - align-items: center; - justify-content: center; - padding: 16px 20px; - border-top: 1px dashed ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - } - - .add-paragraph-btn { - display: flex; - align-items: center; - gap: 8px; - padding: 10px 20px; - background: transparent; - border: 2px dashed ${cssManager.bdTheme('#d1d5db', '#3f3f46')}; - border-radius: 8px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - font-size: 14px; - font-weight: 500; - cursor: pointer; - transition: all 0.15s ease; - } - - .add-paragraph-btn:hover { - border-color: ${cssManager.bdTheme('#9ca3af', '#52525b')}; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - background: ${cssManager.bdTheme('#f9fafb', '#18181b')}; - } - - /* Empty state */ - .empty-state { - display: flex; - flex-direction: column; - align-items: center; - padding: 60px 20px; - text-align: center; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .empty-state dees-icon { - font-size: 64px; - margin-bottom: 20px; - opacity: 0.5; - } - - .empty-state h4 { - margin: 0 0 8px; - font-size: 18px; - font-weight: 600; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - } - - .empty-state p { - margin: 0 0 24px; - font-size: 14px; - max-width: 400px; - } - - /* Buttons */ - .btn { - display: inline-flex; - align-items: center; - gap: 6px; - padding: 8px 14px; - font-size: 13px; - font-weight: 500; - border-radius: 6px; - border: none; - cursor: pointer; - transition: all 0.15s ease; - } - - .btn-sm { - padding: 6px 10px; - font-size: 12px; - } - - .btn-primary { - background: ${cssManager.bdTheme('#111111', '#fafafa')}; - color: ${cssManager.bdTheme('#ffffff', '#09090b')}; - } - - .btn-primary:hover { - background: ${cssManager.bdTheme('#333333', '#e5e5e5')}; - } - - .btn-secondary { - background: ${cssManager.bdTheme('#f3f4f6', '#27272a')}; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - } - - .btn-secondary:hover { - background: ${cssManager.bdTheme('#e5e7eb', '#3f3f46')}; - } - - .btn-ghost { - background: transparent; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - padding: 6px; - } - - .btn-ghost:hover { - background: ${cssManager.bdTheme('#f3f4f6', '#27272a')}; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - } - - .btn-danger { - background: ${cssManager.bdTheme('#fef2f2', '#450a0a')}; - color: ${cssManager.bdTheme('#dc2626', '#fca5a5')}; - } - - .btn-danger:hover { - background: ${cssManager.bdTheme('#fee2e2', '#7f1d1d')}; - } - - /* View mode toggle */ - .view-toggle { - display: flex; - background: ${cssManager.bdTheme('#f3f4f6', '#27272a')}; - border-radius: 6px; - padding: 2px; - } - - .view-toggle-btn { - display: flex; - align-items: center; - justify-content: center; - padding: 6px 10px; - background: transparent; - border: none; - border-radius: 4px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - cursor: pointer; - transition: all 0.15s ease; - } - - .view-toggle-btn.active { - background: ${cssManager.bdTheme('#ffffff', '#3f3f46')}; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); - } - - .view-toggle-btn dees-icon { - font-size: 16px; - } - `, - ]; - - // ============================================================================ - // PROPERTIES - // ============================================================================ - - @property({ type: Object }) - public accessor contract: plugins.sdInterfaces.IPortableContract | null = null; - - @property({ type: Boolean }) - public accessor readonly: boolean = false; - - // ============================================================================ - // STATE - // ============================================================================ - - @state() - private accessor selectedParagraphId: string | null = null; - - @state() - private accessor editingParagraphId: string | null = null; - - @state() - private accessor searchQuery: string = ''; - - @state() - private accessor viewMode: 'list' | 'outline' = 'list'; - - @state() - private accessor expandedParagraphs: Set = new Set(); - - // Editing state - @state() - private accessor editTitle: string = ''; - - @state() - private accessor editContent: string = ''; - - // ============================================================================ - // EVENT HANDLERS - // ============================================================================ - - private handleFieldChange(path: string, value: unknown) { - this.dispatchEvent( - new CustomEvent('field-change', { - detail: { path, value }, - bubbles: true, - composed: true, - }) - ); - } - - private handleSelectParagraph(paragraphId: string) { - this.selectedParagraphId = this.selectedParagraphId === paragraphId ? null : paragraphId; - this.dispatchEvent( - new CustomEvent('paragraph-select', { - detail: { paragraphId: this.selectedParagraphId }, - bubbles: true, - composed: true, - }) - ); - } - - private handleEditParagraph(paragraph: plugins.sdInterfaces.IParagraph) { - this.editingParagraphId = paragraph.uniqueId; - this.editTitle = paragraph.title; - this.editContent = paragraph.content; - } - - private handleSaveEdit() { - if (!this.contract || !this.editingParagraphId) return; - - const updatedParagraphs = this.contract.paragraphs.map((p) => { - if (p.uniqueId === this.editingParagraphId) { - return { ...p, title: this.editTitle, content: this.editContent }; - } - return p; - }); - - this.handleFieldChange('paragraphs', updatedParagraphs); - this.editingParagraphId = null; - this.editTitle = ''; - this.editContent = ''; - } - - private handleCancelEdit() { - this.editingParagraphId = null; - this.editTitle = ''; - this.editContent = ''; - } - - private handleAddParagraph(parentId: string | null = null) { - if (!this.contract) return; - - const newParagraph: plugins.sdInterfaces.IParagraph = { - uniqueId: `p-${Date.now()}`, - parent: parentId ? this.contract.paragraphs.find((p) => p.uniqueId === parentId) || null : null, - title: 'New Paragraph', - content: 'Enter paragraph content here...', - }; - - const updatedParagraphs = [...this.contract.paragraphs, newParagraph]; - this.handleFieldChange('paragraphs', updatedParagraphs); - - // Start editing the new paragraph - this.handleEditParagraph(newParagraph); - } - - private handleDeleteParagraph(paragraphId: string) { - if (!this.contract) return; - - // Remove the paragraph and any children - const idsToRemove = new Set([paragraphId]); - - // Find child paragraphs recursively - const findChildren = (parentId: string) => { - this.contract!.paragraphs.forEach((p) => { - if (p.parent?.uniqueId === parentId) { - idsToRemove.add(p.uniqueId); - findChildren(p.uniqueId); - } - }); - }; - findChildren(paragraphId); - - const updatedParagraphs = this.contract.paragraphs.filter((p) => !idsToRemove.has(p.uniqueId)); - this.handleFieldChange('paragraphs', updatedParagraphs); - - if (this.selectedParagraphId === paragraphId) { - this.selectedParagraphId = null; - } - } - - private handleMoveParagraph(paragraphId: string, direction: 'up' | 'down') { - if (!this.contract) return; - - const paragraphs = [...this.contract.paragraphs]; - const index = paragraphs.findIndex((p) => p.uniqueId === paragraphId); - - if (index === -1) return; - if (direction === 'up' && index === 0) return; - if (direction === 'down' && index === paragraphs.length - 1) return; - - const newIndex = direction === 'up' ? index - 1 : index + 1; - [paragraphs[index], paragraphs[newIndex]] = [paragraphs[newIndex], paragraphs[index]]; - - this.handleFieldChange('paragraphs', paragraphs); - } - - private handleSearchChange(e: Event) { - const input = e.target as HTMLInputElement; - this.searchQuery = input.value; - } - - private toggleExpanded(paragraphId: string) { - const expanded = new Set(this.expandedParagraphs); - if (expanded.has(paragraphId)) { - expanded.delete(paragraphId); - } else { - expanded.add(paragraphId); - } - this.expandedParagraphs = expanded; - } - - // ============================================================================ - // HELPERS - // ============================================================================ - - private getRootParagraphs(): plugins.sdInterfaces.IParagraph[] { - if (!this.contract) return []; - return this.contract.paragraphs.filter((p) => !p.parent); - } - - private getChildParagraphs(parentId: string): plugins.sdInterfaces.IParagraph[] { - if (!this.contract) return []; - return this.contract.paragraphs.filter((p) => p.parent?.uniqueId === parentId); - } - - private filterParagraphs(paragraphs: plugins.sdInterfaces.IParagraph[]): plugins.sdInterfaces.IParagraph[] { - if (!this.searchQuery) return paragraphs; - const query = this.searchQuery.toLowerCase(); - return paragraphs.filter( - (p) => - p.title.toLowerCase().includes(query) || - p.content.toLowerCase().includes(query) - ); - } - - private highlightVariables(content: string): TemplateResult { - // Match {{variableName}} patterns - const parts = content.split(/(\{\{[^}]+\}\})/g); - return html`${parts.map((part) => - part.startsWith('{{') && part.endsWith('}}') - ? html`${part}` - : part - )}`; - } - - private getParagraphNumber(paragraph: plugins.sdInterfaces.IParagraph, index: number): string { - // Simple numbering - can be enhanced for hierarchical numbering - return String(index + 1); - } - - // ============================================================================ - // RENDER - // ============================================================================ - - public render(): TemplateResult { - if (!this.contract) { - return html`
No contract loaded
`; - } - - const rootParagraphs = this.getRootParagraphs(); - const filteredParagraphs = this.filterParagraphs(rootParagraphs); - - return html` -
- -
-
- -
-
-
- - -
- ${!this.readonly - ? html` - - ` - : ''} -
-
- - -
-
-
- - Contract Content -
- ${this.contract.paragraphs.length} paragraphs -
- -
- ${filteredParagraphs.length > 0 - ? html` -
- ${filteredParagraphs.map((paragraph, index) => - this.renderParagraph(paragraph, index) - )} -
- ${!this.readonly - ? html` -
- -
- ` - : ''} - ` - : html` -
- -

No Paragraphs Yet

-

Start building your contract by adding paragraphs. Each paragraph can contain clauses, definitions, or obligations.

- ${!this.readonly - ? html` - - ` - : ''} -
- `} -
-
-
- `; - } - - private renderParagraph(paragraph: plugins.sdInterfaces.IParagraph, index: number): TemplateResult { - const isSelected = this.selectedParagraphId === paragraph.uniqueId; - const isEditing = this.editingParagraphId === paragraph.uniqueId; - const isExpanded = this.expandedParagraphs.has(paragraph.uniqueId); - const childParagraphs = this.getChildParagraphs(paragraph.uniqueId); - - return html` -
!isEditing && this.handleSelectParagraph(paragraph.uniqueId)} - > - ${!this.readonly - ? html` -
- -
- ` - : ''} - -
${this.getParagraphNumber(paragraph, index)}
- -
- ${isEditing - ? html` - (this.editTitle = (e.target as HTMLInputElement).value)} - @click=${(e: Event) => e.stopPropagation()} - placeholder="Paragraph title" - /> - -
- - -
- ` - : html` -
- ${paragraph.title} -
-
${this.highlightVariables(paragraph.content)}
- ${paragraph.content.length > 200 - ? html` - - ` - : ''} - `} -
- - ${!this.readonly && !isEditing - ? html` -
- - - - -
- ` - : ''} -
- - ${childParagraphs.length > 0 - ? html` -
- ${childParagraphs.map((child, childIndex) => this.renderParagraph(child, childIndex))} -
- ` - : ''} - `; - } -} diff --git a/ts_web/elements/sdig-contract-header/index.ts b/ts_web/elements/sdig-contract-header/index.ts deleted file mode 100644 index 70673b2..0000000 --- a/ts_web/elements/sdig-contract-header/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './sdig-contract-header.js'; diff --git a/ts_web/elements/sdig-contract-header/sdig-contract-header.ts b/ts_web/elements/sdig-contract-header/sdig-contract-header.ts deleted file mode 100644 index cf2ac7d..0000000 --- a/ts_web/elements/sdig-contract-header/sdig-contract-header.ts +++ /dev/null @@ -1,558 +0,0 @@ -/** - * @file sdig-contract-header.ts - * @description Contract header component with title, status, and quick actions - */ - -import { - DeesElement, - property, - html, - customElement, - type TemplateResult, - css, - cssManager, - state, -} from '@design.estate/dees-element'; - -import * as plugins from '../../plugins.js'; - -declare global { - interface HTMLElementTagNameMap { - 'sdig-contract-header': SdigContractHeader; - } -} - -@customElement('sdig-contract-header') -export class SdigContractHeader extends DeesElement { - // ============================================================================ - // STATIC - // ============================================================================ - - public static demo = () => html` - - `; - - public static styles = [ - cssManager.defaultStyles, - css` - :host { - display: block; - } - - .header-card { - background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - border-radius: 12px; - padding: 24px; - } - - .header-top { - display: flex; - align-items: flex-start; - justify-content: space-between; - margin-bottom: 20px; - } - - .title-section { - flex: 1; - } - - .contract-number { - font-size: 13px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - margin-bottom: 8px; - } - - .title-input-wrapper { - position: relative; - } - - .title-input { - width: 100%; - font-size: 24px; - font-weight: 700; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - background: transparent; - border: none; - padding: 0; - outline: none; - border-bottom: 2px solid transparent; - transition: border-color 0.15s ease; - } - - .title-input:focus { - border-bottom-color: ${cssManager.bdTheme('#111111', '#fafafa')}; - } - - .title-input::placeholder { - color: ${cssManager.bdTheme('#9ca3af', '#6b7280')}; - } - - .status-section { - display: flex; - align-items: center; - gap: 12px; - } - - /* shadcn-style badge */ - .status-badge { - display: inline-flex; - align-items: center; - gap: 6px; - padding: 2px 10px; - border-radius: 6px; - font-size: 12px; - font-weight: 500; - cursor: pointer; - transition: all 0.15s ease; - border: 1px solid transparent; - line-height: 1.4; - } - - .status-badge:hover:not(:disabled) { - filter: brightness(0.95); - } - - .status-badge:disabled { - cursor: default; - } - - .status-badge.draft { - background: ${cssManager.bdTheme('hsl(48 96% 89%)', 'hsl(48 96% 15%)')}; - color: ${cssManager.bdTheme('hsl(25 95% 30%)', 'hsl(48 96% 70%)')}; - border-color: ${cssManager.bdTheme('hsl(48 96% 76%)', 'hsl(48 96% 25%)')}; - } - - .status-badge.review { - background: ${cssManager.bdTheme('hsl(214 95% 93%)', 'hsl(214 95% 15%)')}; - color: ${cssManager.bdTheme('hsl(214 95% 35%)', 'hsl(214 95% 70%)')}; - border-color: ${cssManager.bdTheme('hsl(214 95% 80%)', 'hsl(214 95% 25%)')}; - } - - .status-badge.pending { - background: ${cssManager.bdTheme('hsl(38 92% 90%)', 'hsl(38 92% 15%)')}; - color: ${cssManager.bdTheme('hsl(25 95% 35%)', 'hsl(38 92% 65%)')}; - border-color: ${cssManager.bdTheme('hsl(38 92% 75%)', 'hsl(38 92% 25%)')}; - } - - .status-badge.signed, - .status-badge.active { - background: ${cssManager.bdTheme('hsl(142 76% 90%)', 'hsl(142 76% 15%)')}; - color: ${cssManager.bdTheme('hsl(142 76% 28%)', 'hsl(142 76% 65%)')}; - border-color: ${cssManager.bdTheme('hsl(142 76% 75%)', 'hsl(142 76% 25%)')}; - } - - .status-badge.terminated { - background: ${cssManager.bdTheme('hsl(0 84% 92%)', 'hsl(0 84% 15%)')}; - color: ${cssManager.bdTheme('hsl(0 84% 35%)', 'hsl(0 84% 65%)')}; - border-color: ${cssManager.bdTheme('hsl(0 84% 80%)', 'hsl(0 84% 25%)')}; - } - - .status-dot { - width: 6px; - height: 6px; - border-radius: 50%; - background: currentColor; - opacity: 0.8; - } - - /* Meta info row */ - .meta-row { - display: flex; - flex-wrap: wrap; - gap: 24px; - padding-top: 20px; - border-top: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - } - - .meta-item { - display: flex; - flex-direction: column; - gap: 4px; - } - - .meta-label { - font-size: 12px; - font-weight: 500; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - text-transform: uppercase; - letter-spacing: 0.05em; - } - - .meta-value { - font-size: 14px; - font-weight: 500; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - } - - .meta-value.clickable { - cursor: pointer; - color: ${cssManager.bdTheme('#2563eb', '#60a5fa')}; - } - - .meta-value.clickable:hover { - text-decoration: underline; - } - - /* Tags */ - .tags-container { - display: flex; - flex-wrap: wrap; - gap: 6px; - } - - .tag { - display: inline-flex; - align-items: center; - padding: 4px 10px; - border-radius: 6px; - font-size: 12px; - font-weight: 500; - background: ${cssManager.bdTheme('#f3f4f6', '#27272a')}; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - } - - /* Quick actions */ - .quick-actions { - display: flex; - gap: 8px; - } - - .action-btn { - display: inline-flex; - align-items: center; - justify-content: center; - width: 36px; - height: 36px; - border-radius: 8px; - border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - cursor: pointer; - transition: all 0.15s ease; - } - - .action-btn:hover { - background: ${cssManager.bdTheme('#f3f4f6', '#18181b')}; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - border-color: ${cssManager.bdTheme('#d1d5db', '#3f3f46')}; - } - - .action-btn dees-icon { - font-size: 16px; - } - - /* Status dropdown */ - .status-dropdown { - position: absolute; - top: 100%; - right: 0; - margin-top: 8px; - min-width: 200px; - background: ${cssManager.bdTheme('#ffffff', '#18181b')}; - border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - border-radius: 8px; - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); - z-index: 100; - overflow: hidden; - } - - .status-option { - display: flex; - align-items: center; - gap: 10px; - padding: 10px 14px; - font-size: 14px; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - cursor: pointer; - transition: background 0.1s ease; - } - - .status-option:hover { - background: ${cssManager.bdTheme('#f3f4f6', '#27272a')}; - } - - .status-option.selected { - background: ${cssManager.bdTheme('#eff6ff', '#1e3a5f')}; - color: ${cssManager.bdTheme('#1e40af', '#93c5fd')}; - } - `, - ]; - - // ============================================================================ - // PROPERTIES - // ============================================================================ - - @property({ type: Object }) - public accessor contract: plugins.sdInterfaces.IPortableContract | null = null; - - @property({ type: Boolean }) - public accessor readonly: boolean = false; - - // ============================================================================ - // STATE - // ============================================================================ - - @state() - private accessor showStatusDropdown: boolean = false; - - @state() - private accessor editingTitle: boolean = false; - - // ============================================================================ - // STATUS CONFIGURATION - // ============================================================================ - - private statusOptions: Array<{ - value: plugins.sdInterfaces.TContractStatus; - label: string; - category: string; - }> = [ - { value: 'draft', label: 'Draft', category: 'draft' }, - { value: 'internal_review', label: 'Internal Review', category: 'review' }, - { value: 'legal_review', label: 'Legal Review', category: 'review' }, - { value: 'negotiation', label: 'Negotiation', category: 'review' }, - { value: 'pending_approval', label: 'Pending Approval', category: 'pending' }, - { value: 'pending_signature', label: 'Pending Signature', category: 'pending' }, - { value: 'partially_signed', label: 'Partially Signed', category: 'pending' }, - { value: 'signed', label: 'Signed', category: 'signed' }, - { value: 'executed', label: 'Executed', category: 'signed' }, - { value: 'active', label: 'Active', category: 'active' }, - { value: 'expired', label: 'Expired', category: 'terminated' }, - { value: 'terminated', label: 'Terminated', category: 'terminated' }, - { value: 'cancelled', label: 'Cancelled', category: 'terminated' }, - { value: 'voided', label: 'Voided', category: 'terminated' }, - ]; - - // ============================================================================ - // EVENT HANDLERS - // ============================================================================ - - private handleTitleChange(e: Event) { - const input = e.target as HTMLInputElement; - this.dispatchEvent( - new CustomEvent('field-change', { - detail: { path: 'title', value: input.value }, - bubbles: true, - composed: true, - }) - ); - } - - private handleStatusChange(status: plugins.sdInterfaces.TContractStatus) { - this.showStatusDropdown = false; - this.dispatchEvent( - new CustomEvent('field-change', { - detail: { path: 'lifecycle.currentStatus', value: status }, - bubbles: true, - composed: true, - }) - ); - } - - private toggleStatusDropdown() { - if (!this.readonly) { - this.showStatusDropdown = !this.showStatusDropdown; - } - } - - private handleExport() { - this.dispatchEvent( - new CustomEvent('action', { - detail: { action: 'export' }, - bubbles: true, - composed: true, - }) - ); - } - - private handleDuplicate() { - this.dispatchEvent( - new CustomEvent('action', { - detail: { action: 'duplicate' }, - bubbles: true, - composed: true, - }) - ); - } - - private handleShare() { - this.dispatchEvent( - new CustomEvent('action', { - detail: { action: 'share' }, - bubbles: true, - composed: true, - }) - ); - } - - // ============================================================================ - // HELPERS - // ============================================================================ - - private getStatusCategory(status: string): string { - const option = this.statusOptions.find((o) => o.value === status); - return option?.category || 'draft'; - } - - private formatStatus(status: string): string { - const option = this.statusOptions.find((o) => o.value === status); - return option?.label || status.replace(/_/g, ' ').replace(/\b\w/g, (c) => c.toUpperCase()); - } - - private formatDate(timestamp: number): string { - return new Date(timestamp).toLocaleDateString('en-US', { - year: 'numeric', - month: 'short', - day: 'numeric', - }); - } - - private formatContractType(type: string): string { - return type.replace(/_/g, ' ').replace(/\b\w/g, (c) => c.toUpperCase()); - } - - // ============================================================================ - // RENDER - // ============================================================================ - - public render(): TemplateResult { - if (!this.contract) { - return html`
No contract loaded
`; - } - - const status = this.contract.lifecycle?.currentStatus || 'draft'; - const statusCategory = this.getStatusCategory(status); - - return html` -
-
-
- ${this.contract.metadata?.contractNumber - ? html`
#${this.contract.metadata.contractNumber}
` - : ''} -
- -
-
- -
-
- - - ${this.showStatusDropdown - ? html` -
- ${this.statusOptions.map( - (option) => html` -
this.handleStatusChange(option.value)} - > - - ${option.label} -
- ` - )} -
- ` - : ''} -
- -
- - - -
-
-
- - ${this.contract.metadata ? html` -
-
- Type - ${this.formatContractType(this.contract.metadata.contractType)} -
- -
- Category - ${this.formatContractType(this.contract.metadata.category)} -
- -
- Language - ${this.contract.metadata.language?.toUpperCase() || 'N/A'} -
- -
- Jurisdiction - - ${this.contract.metadata.governingLaw?.country || 'Not specified'} - ${this.contract.metadata.governingLaw?.state - ? `, ${this.contract.metadata.governingLaw.state}` - : ''} - -
- -
- Created - ${this.formatDate(this.contract.createdAt)} -
- -
- Parties - ${this.contract.involvedParties?.length || 0} parties -
- - ${this.contract.metadata.tags?.length > 0 - ? html` -
- Tags -
- ${this.contract.metadata.tags.map((tag) => html`${tag}`)} -
-
- ` - : ''} -
- ` : ''} -
- `; - } -} diff --git a/ts_web/elements/sdig-contract-metadata/index.ts b/ts_web/elements/sdig-contract-metadata/index.ts deleted file mode 100644 index eec7baf..0000000 --- a/ts_web/elements/sdig-contract-metadata/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './sdig-contract-metadata.js'; diff --git a/ts_web/elements/sdig-contract-metadata/sdig-contract-metadata.ts b/ts_web/elements/sdig-contract-metadata/sdig-contract-metadata.ts deleted file mode 100644 index 9a0f702..0000000 --- a/ts_web/elements/sdig-contract-metadata/sdig-contract-metadata.ts +++ /dev/null @@ -1,820 +0,0 @@ -/** - * @file sdig-contract-metadata.ts - * @description Contract metadata editor component - */ - -import { - DeesElement, - property, - html, - customElement, - type TemplateResult, - css, - cssManager, - state, -} from '@design.estate/dees-element'; - -import * as plugins from '../../plugins.js'; - -declare global { - interface HTMLElementTagNameMap { - 'sdig-contract-metadata': SdigContractMetadata; - } -} - -// Type-safe options arrays -const CONTRACT_CATEGORIES: Array<{ value: plugins.sdInterfaces.TContractCategory; label: string }> = [ - { value: 'employment', label: 'Employment' }, - { value: 'service', label: 'Service Agreement' }, - { value: 'sales', label: 'Sales' }, - { value: 'lease', label: 'Lease / Rental' }, - { value: 'license', label: 'License' }, - { value: 'partnership', label: 'Partnership' }, - { value: 'confidentiality', label: 'Confidentiality / NDA' }, - { value: 'financial', label: 'Financial' }, - { value: 'real_estate', label: 'Real Estate' }, - { value: 'intellectual_property', label: 'Intellectual Property' }, - { value: 'government', label: 'Government' }, - { value: 'construction', label: 'Construction' }, - { value: 'healthcare', label: 'Healthcare' }, - { value: 'insurance', label: 'Insurance' }, - { value: 'other', label: 'Other' }, -]; - -const CONFIDENTIALITY_LEVELS: Array<{ value: plugins.sdInterfaces.TConfidentialityLevel; label: string }> = [ - { value: 'public', label: 'Public' }, - { value: 'internal', label: 'Internal' }, - { value: 'confidential', label: 'Confidential' }, - { value: 'restricted', label: 'Restricted' }, -]; - -const DISPUTE_RESOLUTIONS: Array<{ value: plugins.sdInterfaces.TDisputeResolution; label: string }> = [ - { value: 'litigation', label: 'Litigation' }, - { value: 'arbitration', label: 'Arbitration' }, - { value: 'mediation', label: 'Mediation' }, - { value: 'negotiation', label: 'Negotiation' }, -]; - -const COMMON_LANGUAGES = [ - { value: 'en', label: 'English' }, - { value: 'de', label: 'German' }, - { value: 'fr', label: 'French' }, - { value: 'es', label: 'Spanish' }, - { value: 'it', label: 'Italian' }, - { value: 'pt', label: 'Portuguese' }, - { value: 'nl', label: 'Dutch' }, - { value: 'pl', label: 'Polish' }, - { value: 'sv', label: 'Swedish' }, - { value: 'da', label: 'Danish' }, - { value: 'fi', label: 'Finnish' }, - { value: 'no', label: 'Norwegian' }, - { value: 'zh', label: 'Chinese' }, - { value: 'ja', label: 'Japanese' }, - { value: 'ko', label: 'Korean' }, - { value: 'ar', label: 'Arabic' }, - { value: 'ru', label: 'Russian' }, -]; - -@customElement('sdig-contract-metadata') -export class SdigContractMetadata extends DeesElement { - // ============================================================================ - // STATIC - // ============================================================================ - - public static demo = () => html` - - `; - - public static styles = [ - cssManager.defaultStyles, - css` - :host { - display: block; - } - - .metadata-container { - display: flex; - flex-direction: column; - gap: 24px; - } - - /* Section cards */ - .section-card { - background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - border-radius: 12px; - overflow: hidden; - } - - .section-header { - display: flex; - align-items: center; - justify-content: space-between; - padding: 16px 20px; - background: ${cssManager.bdTheme('#f9fafb', '#111111')}; - border-bottom: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - } - - .section-title { - display: flex; - align-items: center; - gap: 10px; - font-size: 15px; - font-weight: 600; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - } - - .section-title dees-icon { - font-size: 18px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .section-content { - padding: 20px; - } - - /* Form grid */ - .form-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); - gap: 20px; - } - - .form-group { - display: flex; - flex-direction: column; - gap: 6px; - } - - .form-group.full-width { - grid-column: 1 / -1; - } - - .form-label { - font-size: 13px; - font-weight: 500; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - } - - .form-label .required { - color: #ef4444; - margin-left: 2px; - } - - .form-description { - font-size: 12px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - margin-top: 4px; - } - - /* Input styles */ - .form-input, - .form-select, - .form-textarea { - width: 100%; - padding: 10px 12px; - font-size: 14px; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - background: ${cssManager.bdTheme('#ffffff', '#18181b')}; - border: 1px solid ${cssManager.bdTheme('#d1d5db', '#3f3f46')}; - border-radius: 8px; - outline: none; - transition: all 0.15s ease; - } - - .form-input:focus, - .form-select:focus, - .form-textarea:focus { - border-color: ${cssManager.bdTheme('#111111', '#fafafa')}; - box-shadow: 0 0 0 3px ${cssManager.bdTheme('rgba(0,0,0,0.05)', 'rgba(255,255,255,0.05)')}; - } - - .form-input::placeholder, - .form-textarea::placeholder { - color: ${cssManager.bdTheme('#9ca3af', '#6b7280')}; - } - - .form-input:disabled, - .form-select:disabled, - .form-textarea:disabled { - opacity: 0.6; - cursor: not-allowed; - } - - .form-select { - appearance: none; - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e"); - background-position: right 10px center; - background-repeat: no-repeat; - background-size: 16px; - padding-right: 36px; - } - - .form-textarea { - min-height: 80px; - resize: vertical; - } - - /* Radio group */ - .radio-group { - display: flex; - flex-wrap: wrap; - gap: 12px; - } - - .radio-option { - display: flex; - align-items: center; - gap: 8px; - cursor: pointer; - } - - .radio-option input[type="radio"] { - width: 18px; - height: 18px; - accent-color: ${cssManager.bdTheme('#111111', '#fafafa')}; - } - - .radio-option span { - font-size: 14px; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - } - - /* Tags input */ - .tags-input-container { - display: flex; - flex-wrap: wrap; - gap: 8px; - padding: 8px 12px; - min-height: 44px; - background: ${cssManager.bdTheme('#ffffff', '#18181b')}; - border: 1px solid ${cssManager.bdTheme('#d1d5db', '#3f3f46')}; - border-radius: 8px; - cursor: text; - } - - .tags-input-container:focus-within { - border-color: ${cssManager.bdTheme('#111111', '#fafafa')}; - box-shadow: 0 0 0 3px ${cssManager.bdTheme('rgba(0,0,0,0.05)', 'rgba(255,255,255,0.05)')}; - } - - .tag-item { - display: inline-flex; - align-items: center; - gap: 6px; - padding: 4px 10px; - background: ${cssManager.bdTheme('#f3f4f6', '#27272a')}; - border-radius: 6px; - font-size: 13px; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - } - - .tag-remove { - display: flex; - align-items: center; - justify-content: center; - width: 16px; - height: 16px; - border-radius: 50%; - background: transparent; - border: none; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - cursor: pointer; - font-size: 14px; - line-height: 1; - } - - .tag-remove:hover { - background: ${cssManager.bdTheme('#e5e7eb', '#3f3f46')}; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - } - - .tags-input { - flex: 1; - min-width: 120px; - border: none; - background: transparent; - padding: 4px 0; - font-size: 14px; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - outline: none; - } - - .tags-input::placeholder { - color: ${cssManager.bdTheme('#9ca3af', '#6b7280')}; - } - - /* Divider */ - .section-divider { - border-top: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - margin: 20px 0; - } - - /* Collapsible sections */ - .collapsible-header { - display: flex; - align-items: center; - justify-content: space-between; - padding: 12px 0; - cursor: pointer; - user-select: none; - } - - .collapsible-header:hover .collapse-icon { - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - } - - .collapse-icon { - font-size: 16px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - transition: transform 0.2s ease; - } - - .collapse-icon.expanded { - transform: rotate(180deg); - } - - .collapsible-content { - overflow: hidden; - max-height: 0; - opacity: 0; - transition: all 0.3s ease; - } - - .collapsible-content.expanded { - max-height: 1000px; - opacity: 1; - } - `, - ]; - - // ============================================================================ - // PROPERTIES - // ============================================================================ - - @property({ type: Object }) - public accessor contract: plugins.sdInterfaces.IPortableContract | null = null; - - @property({ type: Boolean }) - public accessor readonly: boolean = false; - - // ============================================================================ - // STATE - // ============================================================================ - - @state() - private accessor showArbitrationFields: boolean = false; - - @state() - private accessor newTag: string = ''; - - // ============================================================================ - // LIFECYCLE - // ============================================================================ - - public updated(changedProperties: Map) { - if (changedProperties.has('contract') && this.contract?.metadata?.governingLaw) { - this.showArbitrationFields = this.contract.metadata.governingLaw.disputeResolution === 'arbitration'; - } - } - - // ============================================================================ - // EVENT HANDLERS - // ============================================================================ - - private handleFieldChange(path: string, value: unknown) { - this.dispatchEvent( - new CustomEvent('field-change', { - detail: { path, value }, - bubbles: true, - composed: true, - }) - ); - } - - private handleInputChange(path: string, e: Event) { - const input = e.target as HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement; - this.handleFieldChange(path, input.value); - } - - private handleRadioChange(path: string, value: string) { - this.handleFieldChange(path, value); - - // Special handling for dispute resolution - if (path === 'metadata.governingLaw.disputeResolution') { - this.showArbitrationFields = value === 'arbitration'; - } - } - - private handleTagAdd(e: KeyboardEvent) { - if (e.key === 'Enter' && this.newTag.trim()) { - e.preventDefault(); - const currentTags = this.contract?.metadata.tags || []; - if (!currentTags.includes(this.newTag.trim())) { - this.handleFieldChange('metadata.tags', [...currentTags, this.newTag.trim()]); - } - this.newTag = ''; - } - } - - private handleTagRemove(tag: string) { - const currentTags = this.contract?.metadata.tags || []; - this.handleFieldChange( - 'metadata.tags', - currentTags.filter((t) => t !== tag) - ); - } - - // ============================================================================ - // RENDER - // ============================================================================ - - public render(): TemplateResult { - if (!this.contract) { - return html`
No contract loaded
`; - } - - if (!this.contract.metadata) { - return html``; - } - - const metadata = this.contract.metadata; - - return html` - - `; - } -} diff --git a/ts_web/elements/sdig-contract-parties/index.ts b/ts_web/elements/sdig-contract-parties/index.ts deleted file mode 100644 index 8a61c8e..0000000 --- a/ts_web/elements/sdig-contract-parties/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './sdig-contract-parties.js'; diff --git a/ts_web/elements/sdig-contract-parties/sdig-contract-parties.ts b/ts_web/elements/sdig-contract-parties/sdig-contract-parties.ts deleted file mode 100644 index f008858..0000000 --- a/ts_web/elements/sdig-contract-parties/sdig-contract-parties.ts +++ /dev/null @@ -1,736 +0,0 @@ -/** - * @file sdig-contract-parties.ts - * @description Contract parties and roles management component - */ - -import { - DeesElement, - property, - html, - customElement, - type TemplateResult, - css, - cssManager, - state, -} from '@design.estate/dees-element'; - -import * as plugins from '../../plugins.js'; - -declare global { - interface HTMLElementTagNameMap { - 'sdig-contract-parties': SdigContractParties; - } -} - -// Party role display configuration -const PARTY_ROLES: Array<{ value: plugins.sdInterfaces.TPartyRole; label: string; icon: string }> = [ - { value: 'signer', label: 'Signer', icon: 'lucide:PenTool' }, - { value: 'witness', label: 'Witness', icon: 'lucide:Eye' }, - { value: 'notary', label: 'Notary', icon: 'lucide:Stamp' }, - { value: 'cc', label: 'CC (Copy)', icon: 'lucide:Mail' }, - { value: 'approver', label: 'Approver', icon: 'lucide:CheckCircle' }, - { value: 'guarantor', label: 'Guarantor', icon: 'lucide:Shield' }, - { value: 'beneficiary', label: 'Beneficiary', icon: 'lucide:UserCheck' }, -]; - -const SIGNING_DEPENDENCIES: Array<{ value: plugins.sdInterfaces.TSigningDependency; label: string }> = [ - { value: 'none', label: 'No dependency' }, - { value: 'sequential', label: 'Sequential (in order)' }, - { value: 'parallel', label: 'Parallel (any order)' }, - { value: 'after_specific', label: 'After specific parties' }, -]; - -@customElement('sdig-contract-parties') -export class SdigContractParties extends DeesElement { - // ============================================================================ - // STATIC - // ============================================================================ - - public static demo = () => html` - - `; - - public static styles = [ - cssManager.defaultStyles, - css` - :host { - display: block; - } - - .parties-container { - display: flex; - flex-direction: column; - gap: 24px; - } - - /* Section cards */ - .section-card { - background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - border-radius: 12px; - overflow: hidden; - } - - .section-header { - display: flex; - align-items: center; - justify-content: space-between; - padding: 16px 20px; - background: ${cssManager.bdTheme('#f9fafb', '#111111')}; - border-bottom: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - } - - .section-title { - display: flex; - align-items: center; - gap: 10px; - font-size: 15px; - font-weight: 600; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - } - - .section-title dees-icon { - font-size: 18px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .section-content { - padding: 20px; - } - - /* Roles list */ - .roles-grid { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); - gap: 16px; - } - - .role-card { - display: flex; - flex-direction: column; - padding: 16px; - background: ${cssManager.bdTheme('#f9fafb', '#111111')}; - border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - border-radius: 10px; - transition: all 0.15s ease; - } - - .role-card:hover { - border-color: ${cssManager.bdTheme('#d1d5db', '#3f3f46')}; - } - - .role-header { - display: flex; - align-items: center; - justify-content: space-between; - margin-bottom: 12px; - } - - .role-name { - display: flex; - align-items: center; - gap: 8px; - font-size: 15px; - font-weight: 600; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - } - - .role-name dees-icon { - font-size: 16px; - padding: 6px; - background: ${cssManager.bdTheme('#e5e7eb', '#27272a')}; - border-radius: 6px; - } - - .role-badge { - font-size: 11px; - font-weight: 500; - padding: 2px 8px; - border-radius: 4px; - background: ${cssManager.bdTheme('#dbeafe', '#1e3a5f')}; - color: ${cssManager.bdTheme('#1e40af', '#93c5fd')}; - } - - .role-description { - font-size: 13px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - margin-bottom: 12px; - } - - .role-meta { - display: flex; - flex-wrap: wrap; - gap: 8px; - font-size: 12px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .role-meta-item { - display: flex; - align-items: center; - gap: 4px; - } - - /* Parties list */ - .parties-list { - display: flex; - flex-direction: column; - gap: 16px; - } - - .party-card { - display: flex; - align-items: flex-start; - gap: 16px; - padding: 16px; - background: ${cssManager.bdTheme('#f9fafb', '#111111')}; - border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - border-radius: 10px; - transition: all 0.15s ease; - } - - .party-card:hover { - border-color: ${cssManager.bdTheme('#d1d5db', '#3f3f46')}; - } - - .party-card.selected { - border-color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')}; - background: ${cssManager.bdTheme('#eff6ff', '#172554')}; - } - - .party-avatar { - width: 48px; - height: 48px; - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - font-size: 18px; - font-weight: 600; - color: white; - flex-shrink: 0; - } - - .party-info { - flex: 1; - min-width: 0; - } - - .party-name { - font-size: 15px; - font-weight: 600; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - margin-bottom: 4px; - } - - .party-role-tag { - display: inline-flex; - align-items: center; - gap: 4px; - padding: 2px 8px; - border-radius: 4px; - font-size: 11px; - font-weight: 500; - background: ${cssManager.bdTheme('#e5e7eb', '#27272a')}; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - margin-bottom: 8px; - } - - .party-details { - display: flex; - flex-wrap: wrap; - gap: 16px; - font-size: 13px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .party-detail { - display: flex; - align-items: center; - gap: 6px; - } - - .party-detail dees-icon { - font-size: 14px; - } - - .party-status { - display: flex; - flex-direction: column; - align-items: flex-end; - gap: 8px; - } - - .signature-status { - display: inline-flex; - align-items: center; - gap: 6px; - padding: 4px 10px; - border-radius: 9999px; - font-size: 12px; - font-weight: 500; - } - - .signature-status.pending { - background: ${cssManager.bdTheme('#fef3c7', '#422006')}; - color: ${cssManager.bdTheme('#92400e', '#fcd34d')}; - } - - .signature-status.signed { - background: ${cssManager.bdTheme('#d1fae5', '#064e3b')}; - color: ${cssManager.bdTheme('#065f46', '#6ee7b7')}; - } - - .signature-status.declined { - background: ${cssManager.bdTheme('#fee2e2', '#450a0a')}; - color: ${cssManager.bdTheme('#991b1b', '#fca5a5')}; - } - - .signing-order { - display: flex; - align-items: center; - gap: 4px; - font-size: 12px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .order-number { - width: 24px; - height: 24px; - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - font-size: 12px; - font-weight: 600; - background: ${cssManager.bdTheme('#e5e7eb', '#27272a')}; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - } - - /* Add button */ - .add-button { - display: flex; - align-items: center; - justify-content: center; - gap: 8px; - padding: 12px 20px; - background: transparent; - border: 2px dashed ${cssManager.bdTheme('#d1d5db', '#3f3f46')}; - border-radius: 10px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - font-size: 14px; - font-weight: 500; - cursor: pointer; - transition: all 0.15s ease; - } - - .add-button:hover { - border-color: ${cssManager.bdTheme('#9ca3af', '#52525b')}; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - background: ${cssManager.bdTheme('#f9fafb', '#18181b')}; - } - - /* Empty state */ - .empty-state { - display: flex; - flex-direction: column; - align-items: center; - padding: 40px 20px; - text-align: center; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .empty-state dees-icon { - font-size: 48px; - margin-bottom: 16px; - opacity: 0.5; - } - - .empty-state h4 { - margin: 0 0 8px; - font-size: 16px; - font-weight: 600; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - } - - .empty-state p { - margin: 0; - font-size: 14px; - } - - /* Action buttons */ - .action-buttons { - display: flex; - gap: 8px; - } - - .btn { - display: inline-flex; - align-items: center; - gap: 6px; - padding: 8px 14px; - font-size: 13px; - font-weight: 500; - border-radius: 6px; - border: none; - cursor: pointer; - transition: all 0.15s ease; - } - - .btn-sm { - padding: 6px 10px; - font-size: 12px; - } - - .btn-primary { - background: ${cssManager.bdTheme('#111111', '#fafafa')}; - color: ${cssManager.bdTheme('#ffffff', '#09090b')}; - } - - .btn-primary:hover { - background: ${cssManager.bdTheme('#333333', '#e5e5e5')}; - } - - .btn-secondary { - background: ${cssManager.bdTheme('#f3f4f6', '#27272a')}; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - } - - .btn-secondary:hover { - background: ${cssManager.bdTheme('#e5e7eb', '#3f3f46')}; - } - - .btn-ghost { - background: transparent; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .btn-ghost:hover { - background: ${cssManager.bdTheme('#f3f4f6', '#27272a')}; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - } - `, - ]; - - // ============================================================================ - // PROPERTIES - // ============================================================================ - - @property({ type: Object }) - public accessor contract: plugins.sdInterfaces.IPortableContract | null = null; - - @property({ type: Boolean }) - public accessor readonly: boolean = false; - - // ============================================================================ - // STATE - // ============================================================================ - - @state() - private accessor selectedPartyId: string | null = null; - - @state() - private accessor showRoleEditor: boolean = false; - - @state() - private accessor showPartyEditor: boolean = false; - - // ============================================================================ - // EVENT HANDLERS - // ============================================================================ - - private handleFieldChange(path: string, value: unknown) { - this.dispatchEvent( - new CustomEvent('field-change', { - detail: { path, value }, - bubbles: true, - composed: true, - }) - ); - } - - private handleSelectParty(partyId: string) { - this.selectedPartyId = this.selectedPartyId === partyId ? null : partyId; - this.dispatchEvent( - new CustomEvent('party-select', { - detail: { partyId: this.selectedPartyId }, - bubbles: true, - composed: true, - }) - ); - } - - private handleAddRole() { - this.showRoleEditor = true; - // TODO: Open role editor modal - } - - private handleAddParty() { - this.showPartyEditor = true; - // TODO: Open party editor modal - } - - private handleRemoveParty(partyId: string) { - if (!this.contract) return; - const updatedParties = this.contract.involvedParties.filter((p) => p.partyId !== partyId); - this.handleFieldChange('involvedParties', updatedParties); - } - - // ============================================================================ - // HELPERS - // ============================================================================ - - private getPartyDisplayName(party: plugins.sdInterfaces.IInvolvedParty): string { - if (!party) return 'Unknown Party'; - const contact = party.contact; - if (!contact) return party.deliveryEmail || 'Unknown Party'; - if ('name' in contact && contact.name) { - return contact.name as string; - } - if ('firstName' in contact && 'lastName' in contact) { - return `${contact.firstName || ''} ${contact.lastName || ''}`.trim() || party.deliveryEmail || 'Unknown Party'; - } - return party.deliveryEmail || 'Unknown Party'; - } - - private getPartyInitials(party: plugins.sdInterfaces.IInvolvedParty): string { - const name = this.getPartyDisplayName(party); - if (!name || name.length === 0) return '??'; - const parts = name.split(' '); - if (parts.length >= 2 && parts[0].length > 0 && parts[parts.length - 1].length > 0) { - return (parts[0][0] + parts[parts.length - 1][0]).toUpperCase(); - } - return name.substring(0, Math.min(2, name.length)).toUpperCase(); - } - - private getPartyColor(party: plugins.sdInterfaces.IInvolvedParty): string { - // Generate a consistent color based on party ID - const colors = [ - '#3b82f6', '#10b981', '#f59e0b', '#ef4444', '#8b5cf6', - '#ec4899', '#06b6d4', '#84cc16', '#f97316', '#6366f1', - ]; - const idStr = party?.partyId || 'default'; - const hash = idStr.split('').reduce((a, b) => a + b.charCodeAt(0), 0); - return colors[hash % colors.length]; - } - - private getRoleName(roleId: string): string { - if (!roleId) return 'Unknown Role'; - const role = this.contract?.availableRoles.find((r) => r.id === roleId); - return role?.name || roleId.charAt(0).toUpperCase() + roleId.slice(1); - } - - private getSignatureStatusClass(status: string): string { - if (status === 'signed') return 'signed'; - if (status === 'declined') return 'declined'; - return 'pending'; - } - - private formatSignatureStatus(status: string): string { - return status.charAt(0).toUpperCase() + status.slice(1); - } - - // ============================================================================ - // RENDER - // ============================================================================ - - public render(): TemplateResult { - if (!this.contract) { - return html`
No contract loaded
`; - } - - const roles = this.contract.availableRoles; - const parties = this.contract.involvedParties; - - return html` -
- -
-
-
- - Available Roles -
- ${!this.readonly - ? html` - - ` - : ''} -
-
- ${roles.length > 0 - ? html` -
- ${roles.map((role) => this.renderRoleCard(role))} -
- ` - : html` -
- -

No Roles Defined

-

Add roles to define the types of parties in this contract

-
- `} -
-
- - -
-
-
- - Involved Parties (${parties.length}) -
- ${!this.readonly - ? html` - - ` - : ''} -
-
- ${parties.length > 0 - ? html` -
- ${parties.map((party) => this.renderPartyCard(party))} -
- ` - : html` -
- -

No Parties Added

-

Add parties who will be involved in this contract

-
- `} -
-
-
- `; - } - - private renderRoleCard(role: plugins.sdInterfaces.IRole): TemplateResult { - return html` -
-
-
- - ${role.name} -
- ${role.category} -
-
${role.description || 'No description'}
-
- ${role.signatureRequired - ? html` - - - Signature required - - ` - : ''} - ${role.defaultSigningOrder > 0 - ? html` - - - Order: ${role.defaultSigningOrder} - - ` - : ''} - ${role.minParties - ? html` - - - Min: ${role.minParties}${role.maxParties ? `, Max: ${role.maxParties}` : ''} - - ` - : ''} -
-
- `; - } - - private renderPartyCard(party: plugins.sdInterfaces.IInvolvedParty): TemplateResult { - // Handle both full IInvolvedParty and minimal demo data - const partyId = (party as any).partyId || (party as any).role || 'unknown'; - const roleId = (party as any).roleId || (party as any).role || ''; - const partyRole = (party as any).partyRole || 'signer'; - const signatureStatus = (party as any).signature?.status || 'pending'; - const signingOrder = (party as any).signingOrder || 0; - const deliveryEmail = (party as any).deliveryEmail; - const deliveryPhone = (party as any).deliveryPhone; - const actingAsProxy = (party as any).actingAsProxy; - - const isSelected = this.selectedPartyId === partyId; - - return html` -
this.handleSelectParty(partyId)} - > -
- ${this.getPartyInitials(party)} -
- -
-
${this.getPartyDisplayName(party)}
-
- ${this.getRoleName(roleId)} (${PARTY_ROLES.find((r) => r.value === partyRole)?.label || partyRole}) -
-
- ${deliveryEmail - ? html` -
- - ${deliveryEmail} -
- ` - : ''} - ${deliveryPhone - ? html` -
- - ${deliveryPhone} -
- ` - : ''} - ${actingAsProxy - ? html` -
- - Acting as proxy -
- ` - : ''} -
-
- -
- - ${this.formatSignatureStatus(signatureStatus)} - - ${signingOrder > 0 - ? html` -
- ${signingOrder} - Signing order -
- ` - : ''} -
-
- `; - } -} diff --git a/ts_web/elements/sdig-contract-signatures/index.ts b/ts_web/elements/sdig-contract-signatures/index.ts deleted file mode 100644 index 3a50274..0000000 --- a/ts_web/elements/sdig-contract-signatures/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './sdig-contract-signatures.js'; diff --git a/ts_web/elements/sdig-contract-signatures/sdig-contract-signatures.ts b/ts_web/elements/sdig-contract-signatures/sdig-contract-signatures.ts deleted file mode 100644 index 1458ae1..0000000 --- a/ts_web/elements/sdig-contract-signatures/sdig-contract-signatures.ts +++ /dev/null @@ -1,840 +0,0 @@ -/** - * @file sdig-contract-signatures.ts - * @description Contract signature fields manager component - */ - -import { - DeesElement, - property, - html, - customElement, - type TemplateResult, - css, - cssManager, - state, -} from '@design.estate/dees-element'; - -import * as plugins from '../../plugins.js'; - -declare global { - interface HTMLElementTagNameMap { - 'sdig-contract-signatures': SdigContractSignatures; - } -} - -// Signature field interface (for future interface updates) -interface ISignatureField { - id: string; - name: string; - assignedPartyId: string | null; - roleId: string; - type: 'signature' | 'initials' | 'date' | 'text'; - required: boolean; - status: 'pending' | 'ready' | 'signed' | 'declined'; - signedAt?: number; - signatureData?: any; - position: { - paragraphId?: string; - pageNumber?: number; - x: number; - y: number; - }; -} - -// Signature status configuration -const SIGNATURE_STATUSES = [ - { value: 'pending', label: 'Pending', color: '#f59e0b', icon: 'lucide:Clock' }, - { value: 'ready', label: 'Ready to Sign', color: '#3b82f6', icon: 'lucide:PenTool' }, - { value: 'signed', label: 'Signed', color: '#10b981', icon: 'lucide:CheckCircle' }, - { value: 'declined', label: 'Declined', color: '#ef4444', icon: 'lucide:XCircle' }, -]; - -const FIELD_TYPES = [ - { value: 'signature', label: 'Full Signature', icon: 'lucide:PenTool' }, - { value: 'initials', label: 'Initials', icon: 'lucide:Type' }, - { value: 'date', label: 'Date', icon: 'lucide:Calendar' }, - { value: 'text', label: 'Text Field', icon: 'lucide:TextCursor' }, -]; - -@customElement('sdig-contract-signatures') -export class SdigContractSignatures extends DeesElement { - // ============================================================================ - // STATIC - // ============================================================================ - - public static demo = () => html` - - `; - - public static styles = [ - cssManager.defaultStyles, - css` - :host { - display: block; - } - - .signatures-container { - display: flex; - flex-direction: column; - gap: 24px; - } - - /* Summary cards */ - .summary-row { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); - gap: 16px; - } - - .summary-card { - display: flex; - flex-direction: column; - gap: 8px; - padding: 20px; - background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - border-radius: 12px; - } - - .summary-card-icon { - width: 40px; - height: 40px; - border-radius: 10px; - display: flex; - align-items: center; - justify-content: center; - font-size: 20px; - } - - .summary-card-icon.pending { - background: ${cssManager.bdTheme('#fef3c7', '#422006')}; - color: ${cssManager.bdTheme('#f59e0b', '#fcd34d')}; - } - - .summary-card-icon.ready { - background: ${cssManager.bdTheme('#dbeafe', '#1e3a5f')}; - color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')}; - } - - .summary-card-icon.signed { - background: ${cssManager.bdTheme('#d1fae5', '#064e3b')}; - color: ${cssManager.bdTheme('#10b981', '#34d399')}; - } - - .summary-card-icon.declined { - background: ${cssManager.bdTheme('#fee2e2', '#450a0a')}; - color: ${cssManager.bdTheme('#ef4444', '#f87171')}; - } - - .summary-card-value { - font-size: 28px; - font-weight: 700; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - } - - .summary-card-label { - font-size: 13px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - /* Section card */ - .section-card { - background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - border-radius: 12px; - overflow: hidden; - } - - .section-header { - display: flex; - align-items: center; - justify-content: space-between; - padding: 16px 20px; - background: ${cssManager.bdTheme('#f9fafb', '#111111')}; - border-bottom: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - } - - .section-title { - display: flex; - align-items: center; - gap: 10px; - font-size: 15px; - font-weight: 600; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - } - - .section-title dees-icon { - font-size: 18px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .section-content { - padding: 20px; - } - - /* Signature fields list */ - .fields-list { - display: flex; - flex-direction: column; - gap: 12px; - } - - .field-card { - display: flex; - align-items: center; - gap: 16px; - padding: 16px; - background: ${cssManager.bdTheme('#f9fafb', '#111111')}; - border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - border-radius: 10px; - transition: all 0.15s ease; - } - - .field-card:hover { - border-color: ${cssManager.bdTheme('#d1d5db', '#3f3f46')}; - } - - .field-card.selected { - border-color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')}; - background: ${cssManager.bdTheme('#eff6ff', '#172554')}; - } - - .field-icon { - width: 44px; - height: 44px; - border-radius: 10px; - display: flex; - align-items: center; - justify-content: center; - font-size: 20px; - background: ${cssManager.bdTheme('#e5e7eb', '#27272a')}; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - flex-shrink: 0; - } - - .field-info { - flex: 1; - min-width: 0; - } - - .field-name { - font-size: 15px; - font-weight: 600; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - margin-bottom: 4px; - } - - .field-meta { - display: flex; - flex-wrap: wrap; - gap: 12px; - font-size: 13px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .field-meta-item { - display: flex; - align-items: center; - gap: 4px; - } - - .field-meta-item dees-icon { - font-size: 14px; - } - - .field-status { - display: flex; - align-items: center; - gap: 6px; - padding: 6px 12px; - border-radius: 9999px; - font-size: 12px; - font-weight: 500; - } - - .field-status.pending { - background: ${cssManager.bdTheme('#fef3c7', '#422006')}; - color: ${cssManager.bdTheme('#92400e', '#fcd34d')}; - } - - .field-status.ready { - background: ${cssManager.bdTheme('#dbeafe', '#1e3a5f')}; - color: ${cssManager.bdTheme('#1e40af', '#93c5fd')}; - } - - .field-status.signed { - background: ${cssManager.bdTheme('#d1fae5', '#064e3b')}; - color: ${cssManager.bdTheme('#065f46', '#6ee7b7')}; - } - - .field-status.declined { - background: ${cssManager.bdTheme('#fee2e2', '#450a0a')}; - color: ${cssManager.bdTheme('#991b1b', '#fca5a5')}; - } - - .field-actions { - display: flex; - gap: 8px; - flex-shrink: 0; - } - - /* Signer progress */ - .signers-section { - margin-top: 24px; - } - - .signers-grid { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); - gap: 16px; - } - - .signer-card { - display: flex; - align-items: center; - gap: 14px; - padding: 16px; - background: ${cssManager.bdTheme('#f9fafb', '#111111')}; - border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - border-radius: 10px; - } - - .signer-avatar { - width: 48px; - height: 48px; - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - font-size: 18px; - font-weight: 600; - color: white; - flex-shrink: 0; - } - - .signer-info { - flex: 1; - min-width: 0; - } - - .signer-name { - font-size: 15px; - font-weight: 600; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - margin-bottom: 4px; - } - - .signer-role { - font-size: 13px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - margin-bottom: 8px; - } - - .signer-progress { - display: flex; - align-items: center; - gap: 8px; - } - - .progress-bar { - flex: 1; - height: 6px; - background: ${cssManager.bdTheme('#e5e7eb', '#27272a')}; - border-radius: 3px; - overflow: hidden; - } - - .progress-fill { - height: 100%; - background: ${cssManager.bdTheme('#10b981', '#34d399')}; - transition: width 0.3s ease; - } - - .progress-text { - font-size: 12px; - font-weight: 500; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - min-width: 36px; - text-align: right; - } - - /* Signature preview */ - .signature-preview { - position: relative; - padding: 24px; - background: ${cssManager.bdTheme('#f9fafb', '#111111')}; - border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - border-radius: 10px; - text-align: center; - } - - .signature-preview-label { - font-size: 12px; - font-weight: 500; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - margin-bottom: 12px; - } - - .signature-preview-image { - max-width: 200px; - max-height: 80px; - margin: 0 auto; - } - - .signature-preview-placeholder { - display: flex; - flex-direction: column; - align-items: center; - gap: 8px; - color: ${cssManager.bdTheme('#9ca3af', '#6b7280')}; - } - - .signature-preview-placeholder dees-icon { - font-size: 32px; - opacity: 0.5; - } - - /* Empty state */ - .empty-state { - display: flex; - flex-direction: column; - align-items: center; - padding: 48px 20px; - text-align: center; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .empty-state dees-icon { - font-size: 48px; - margin-bottom: 16px; - opacity: 0.5; - } - - .empty-state h4 { - margin: 0 0 8px; - font-size: 16px; - font-weight: 600; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - } - - .empty-state p { - margin: 0 0 20px; - font-size: 14px; - } - - /* Buttons */ - .btn { - display: inline-flex; - align-items: center; - gap: 6px; - padding: 8px 14px; - font-size: 13px; - font-weight: 500; - border-radius: 6px; - border: none; - cursor: pointer; - transition: all 0.15s ease; - } - - .btn-sm { - padding: 6px 10px; - font-size: 12px; - } - - .btn-primary { - background: ${cssManager.bdTheme('#111111', '#fafafa')}; - color: ${cssManager.bdTheme('#ffffff', '#09090b')}; - } - - .btn-primary:hover { - background: ${cssManager.bdTheme('#333333', '#e5e5e5')}; - } - - .btn-secondary { - background: ${cssManager.bdTheme('#f3f4f6', '#27272a')}; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - } - - .btn-secondary:hover { - background: ${cssManager.bdTheme('#e5e7eb', '#3f3f46')}; - } - - .btn-ghost { - background: transparent; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - padding: 6px; - } - - .btn-ghost:hover { - background: ${cssManager.bdTheme('#f3f4f6', '#27272a')}; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - } - - .btn-success { - background: ${cssManager.bdTheme('#10b981', '#059669')}; - color: white; - } - - .btn-success:hover { - background: ${cssManager.bdTheme('#059669', '#047857')}; - } - - /* Type badge */ - .type-badge { - display: inline-flex; - align-items: center; - gap: 4px; - padding: 2px 8px; - border-radius: 4px; - font-size: 11px; - font-weight: 500; - background: ${cssManager.bdTheme('#e5e7eb', '#27272a')}; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - } - - /* Signing order */ - .signing-order-badge { - display: flex; - align-items: center; - justify-content: center; - width: 24px; - height: 24px; - border-radius: 50%; - font-size: 12px; - font-weight: 600; - background: ${cssManager.bdTheme('#dbeafe', '#1e3a5f')}; - color: ${cssManager.bdTheme('#1e40af', '#93c5fd')}; - } - `, - ]; - - // ============================================================================ - // PROPERTIES - // ============================================================================ - - @property({ type: Object }) - public accessor contract: plugins.sdInterfaces.IPortableContract | null = null; - - @property({ type: Boolean }) - public accessor readonly: boolean = false; - - // ============================================================================ - // STATE - // ============================================================================ - - @state() - private accessor selectedFieldId: string | null = null; - - // Demo signature fields data - @state() - private accessor signatureFields: ISignatureField[] = []; - - // ============================================================================ - // LIFECYCLE - // ============================================================================ - - public async firstUpdated() { - // Generate demo signature fields based on contract parties - if (this.contract && this.contract.involvedParties.length > 0) { - this.signatureFields = this.contract.involvedParties.map((party, index) => ({ - id: `sig-${index + 1}`, - name: `Signature - ${this.getPartyRoleName(party.role)}`, - assignedPartyId: null, - roleId: party.role, - type: 'signature' as const, - required: true, - status: index === 0 ? 'signed' : index === 1 ? 'ready' : 'pending', - signedAt: index === 0 ? Date.now() - 86400000 : undefined, - position: { x: 0, y: 0 }, - })); - } - } - - // ============================================================================ - // EVENT HANDLERS - // ============================================================================ - - private handleFieldChange(path: string, value: unknown) { - this.dispatchEvent( - new CustomEvent('field-change', { - detail: { path, value }, - bubbles: true, - composed: true, - }) - ); - } - - private handleSelectField(fieldId: string) { - this.selectedFieldId = this.selectedFieldId === fieldId ? null : fieldId; - } - - private handleAddField() { - const newField: ISignatureField = { - id: `sig-${Date.now()}`, - name: 'New Signature Field', - assignedPartyId: null, - roleId: '', - type: 'signature', - required: true, - status: 'pending', - position: { x: 0, y: 0 }, - }; - this.signatureFields = [...this.signatureFields, newField]; - } - - private handleDeleteField(fieldId: string) { - this.signatureFields = this.signatureFields.filter((f) => f.id !== fieldId); - if (this.selectedFieldId === fieldId) { - this.selectedFieldId = null; - } - } - - // ============================================================================ - // HELPERS - // ============================================================================ - - private getPartyRoleName(roleId: string): string { - const role = this.contract?.availableRoles.find((r) => r.id === roleId); - return role?.name || roleId; - } - - private getStatusConfig(status: string) { - return SIGNATURE_STATUSES.find((s) => s.value === status) || SIGNATURE_STATUSES[0]; - } - - private getFieldTypeConfig(type: string) { - return FIELD_TYPES.find((t) => t.value === type) || FIELD_TYPES[0]; - } - - private getSignatureStats() { - const total = this.signatureFields.length; - const signed = this.signatureFields.filter((f) => f.status === 'signed').length; - const ready = this.signatureFields.filter((f) => f.status === 'ready').length; - const pending = this.signatureFields.filter((f) => f.status === 'pending').length; - const declined = this.signatureFields.filter((f) => f.status === 'declined').length; - return { total, signed, ready, pending, declined }; - } - - private getPartyColor(index: number): string { - const colors = ['#3b82f6', '#10b981', '#f59e0b', '#ef4444', '#8b5cf6', '#ec4899']; - return colors[index % colors.length]; - } - - private formatDate(timestamp: number): string { - return new Date(timestamp).toLocaleDateString('en-US', { - year: 'numeric', - month: 'short', - day: 'numeric', - hour: '2-digit', - minute: '2-digit', - }); - } - - // ============================================================================ - // RENDER - // ============================================================================ - - public render(): TemplateResult { - if (!this.contract) { - return html`
No contract loaded
`; - } - - const stats = this.getSignatureStats(); - - return html` -
- -
-
-
- -
-
${stats.pending}
-
Pending
-
-
-
- -
-
${stats.ready}
-
Ready to Sign
-
-
-
- -
-
${stats.signed}
-
Signed
-
-
-
- -
-
${stats.declined}
-
Declined
-
-
- - -
-
-
- - Signature Fields -
- ${!this.readonly - ? html` - - ` - : ''} -
-
- ${this.signatureFields.length > 0 - ? html` -
- ${this.signatureFields.map((field, index) => this.renderSignatureField(field, index))} -
- ` - : html` -
- -

No Signature Fields

-

Add signature fields to define where parties should sign the contract

- ${!this.readonly - ? html` - - ` - : ''} -
- `} -
-
- - - ${this.contract.involvedParties.length > 0 - ? html` -
-
-
- - Signers Progress -
-
-
-
- ${this.contract.involvedParties.map((party, index) => this.renderSignerCard(party, index))} -
-
-
- ` - : ''} -
- `; - } - - private renderSignatureField(field: ISignatureField, index: number): TemplateResult { - const isSelected = this.selectedFieldId === field.id; - const statusConfig = this.getStatusConfig(field.status); - const typeConfig = this.getFieldTypeConfig(field.type); - - return html` -
this.handleSelectField(field.id)} - > -
${index + 1}
- -
- -
- -
-
${field.name}
-
- - - ${this.getPartyRoleName(field.roleId)} - - - - ${typeConfig.label} - - ${field.required - ? html` - - - Required - - ` - : ''} - ${field.signedAt - ? html` - - - ${this.formatDate(field.signedAt)} - - ` - : ''} -
-
- -
- - ${statusConfig.label} -
- - ${!this.readonly - ? html` -
- - -
- ` - : ''} -
- `; - } - - private renderSignerCard(party: plugins.sdInterfaces.IInvolvedParty, index: number): TemplateResult { - const partyFields = this.signatureFields.filter((f) => f.roleId === party.role); - const signedFields = partyFields.filter((f) => f.status === 'signed').length; - const totalFields = partyFields.length; - const progress = totalFields > 0 ? Math.round((signedFields / totalFields) * 100) : 0; - const roleName = this.getPartyRoleName(party.role); - - return html` -
-
- ${roleName.charAt(0).toUpperCase()} -
-
-
${roleName}
-
${signedFields} of ${totalFields} signatures
-
-
-
-
- ${progress}% -
-
-
- `; - } -} diff --git a/ts_web/elements/sdig-contract-terms/index.ts b/ts_web/elements/sdig-contract-terms/index.ts deleted file mode 100644 index 66b6808..0000000 --- a/ts_web/elements/sdig-contract-terms/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './sdig-contract-terms.js'; diff --git a/ts_web/elements/sdig-contract-terms/sdig-contract-terms.ts b/ts_web/elements/sdig-contract-terms/sdig-contract-terms.ts deleted file mode 100644 index 30d50dd..0000000 --- a/ts_web/elements/sdig-contract-terms/sdig-contract-terms.ts +++ /dev/null @@ -1,873 +0,0 @@ -/** - * @file sdig-contract-terms.ts - * @description Contract terms editor - tabbed container for financial, time, and obligation terms - */ - -import { - DeesElement, - property, - html, - customElement, - type TemplateResult, - css, - cssManager, - state, -} from '@design.estate/dees-element'; - -import * as plugins from '../../plugins.js'; - -declare global { - interface HTMLElementTagNameMap { - 'sdig-contract-terms': SdigContractTerms; - } -} - -// Term types -type TTermTab = 'financial' | 'time' | 'obligations'; - -interface ITermTabConfig { - id: TTermTab; - label: string; - icon: string; - description: string; -} - -const TERM_TABS: ITermTabConfig[] = [ - { id: 'financial', label: 'Financial Terms', icon: 'lucide:Banknote', description: 'Payment schedules, rates, and penalties' }, - { id: 'time', label: 'Time Terms', icon: 'lucide:Calendar', description: 'Milestones, deadlines, and renewal' }, - { id: 'obligations', label: 'Obligations', icon: 'lucide:CheckSquare', description: 'Deliverables, SLAs, and warranties' }, -]; - -// Extended contract terms interfaces (for future interface updates) -interface IPaymentScheduleItem { - id: string; - description: string; - amount: number; - currency: string; - dueDate: string; - status: 'pending' | 'paid' | 'overdue'; -} - -interface IMilestone { - id: string; - name: string; - description: string; - dueDate: string; - status: 'pending' | 'in_progress' | 'completed' | 'delayed'; - dependencies: string[]; -} - -interface IObligation { - id: string; - description: string; - responsibleParty: string; - deadline: string; - status: 'pending' | 'completed' | 'waived'; -} - -@customElement('sdig-contract-terms') -export class SdigContractTerms extends DeesElement { - // ============================================================================ - // STATIC - // ============================================================================ - - public static demo = () => html` - - `; - - public static styles = [ - cssManager.defaultStyles, - css` - :host { - display: block; - } - - .terms-container { - display: flex; - flex-direction: column; - gap: 16px; - } - - /* Section card */ - .section-card { - background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - border-radius: 12px; - overflow: hidden; - } - - /* Tab navigation */ - .tabs-nav { - display: flex; - border-bottom: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - background: ${cssManager.bdTheme('#f9fafb', '#111111')}; - } - - .tab-btn { - display: flex; - align-items: center; - gap: 8px; - padding: 16px 24px; - font-size: 14px; - font-weight: 500; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - background: transparent; - border: none; - border-bottom: 2px solid transparent; - cursor: pointer; - transition: all 0.15s ease; - } - - .tab-btn:hover { - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - background: ${cssManager.bdTheme('#f3f4f6', '#18181b')}; - } - - .tab-btn.active { - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - border-bottom-color: ${cssManager.bdTheme('#111111', '#fafafa')}; - background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - } - - .tab-btn dees-icon { - font-size: 16px; - } - - /* Tab content */ - .tab-content { - padding: 24px; - } - - /* Sub-sections */ - .sub-section { - margin-bottom: 24px; - } - - .sub-section:last-child { - margin-bottom: 0; - } - - .sub-section-header { - display: flex; - align-items: center; - justify-content: space-between; - margin-bottom: 16px; - } - - .sub-section-title { - font-size: 16px; - font-weight: 600; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - } - - .sub-section-description { - font-size: 13px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - margin-top: 4px; - } - - /* Form groups */ - .form-row { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); - gap: 16px; - margin-bottom: 16px; - } - - .form-group { - display: flex; - flex-direction: column; - gap: 6px; - } - - .form-label { - font-size: 13px; - font-weight: 500; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - } - - .form-input { - padding: 10px 12px; - font-size: 14px; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - border: 1px solid ${cssManager.bdTheme('#d1d5db', '#3f3f46')}; - border-radius: 6px; - outline: none; - transition: border-color 0.15s ease, box-shadow 0.15s ease; - } - - .form-input:focus { - border-color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')}; - box-shadow: 0 0 0 3px ${cssManager.bdTheme('rgba(59, 130, 246, 0.1)', 'rgba(96, 165, 250, 0.1)')}; - } - - .form-input::placeholder { - color: ${cssManager.bdTheme('#9ca3af', '#6b7280')}; - } - - select.form-input { - cursor: pointer; - } - - /* Data table */ - .data-table { - width: 100%; - border-collapse: collapse; - font-size: 14px; - } - - .data-table th { - text-align: left; - padding: 12px 16px; - font-weight: 500; - font-size: 12px; - text-transform: uppercase; - letter-spacing: 0.05em; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - background: ${cssManager.bdTheme('#f9fafb', '#111111')}; - border-bottom: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - } - - .data-table td { - padding: 12px 16px; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - border-bottom: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - } - - .data-table tr:last-child td { - border-bottom: none; - } - - .data-table tr:hover td { - background: ${cssManager.bdTheme('#f9fafb', '#111111')}; - } - - /* Status badges */ - .status-badge { - display: inline-flex; - align-items: center; - padding: 4px 10px; - border-radius: 9999px; - font-size: 12px; - font-weight: 500; - } - - .status-badge.pending { - background: ${cssManager.bdTheme('#fef3c7', '#422006')}; - color: ${cssManager.bdTheme('#92400e', '#fcd34d')}; - } - - .status-badge.paid, - .status-badge.completed { - background: ${cssManager.bdTheme('#d1fae5', '#064e3b')}; - color: ${cssManager.bdTheme('#065f46', '#6ee7b7')}; - } - - .status-badge.overdue, - .status-badge.delayed { - background: ${cssManager.bdTheme('#fee2e2', '#450a0a')}; - color: ${cssManager.bdTheme('#991b1b', '#fca5a5')}; - } - - .status-badge.in_progress { - background: ${cssManager.bdTheme('#dbeafe', '#1e3a5f')}; - color: ${cssManager.bdTheme('#1e40af', '#93c5fd')}; - } - - /* Amount display */ - .amount { - font-weight: 600; - font-family: 'Roboto Mono', monospace; - } - - .amount.positive { - color: ${cssManager.bdTheme('#059669', '#34d399')}; - } - - .amount.negative { - color: ${cssManager.bdTheme('#dc2626', '#f87171')}; - } - - /* Summary card */ - .summary-card { - display: flex; - gap: 32px; - padding: 20px; - background: ${cssManager.bdTheme('#f9fafb', '#111111')}; - border-radius: 8px; - margin-bottom: 24px; - } - - .summary-item { - display: flex; - flex-direction: column; - gap: 4px; - } - - .summary-label { - font-size: 12px; - font-weight: 500; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - text-transform: uppercase; - letter-spacing: 0.05em; - } - - .summary-value { - font-size: 24px; - font-weight: 700; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - } - - .summary-value.currency { - font-family: 'Roboto Mono', monospace; - } - - /* Empty state */ - .empty-state { - display: flex; - flex-direction: column; - align-items: center; - padding: 48px 20px; - text-align: center; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .empty-state dees-icon { - font-size: 48px; - margin-bottom: 16px; - opacity: 0.5; - } - - .empty-state h4 { - margin: 0 0 8px; - font-size: 16px; - font-weight: 600; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - } - - .empty-state p { - margin: 0 0 20px; - font-size: 14px; - } - - /* Buttons */ - .btn { - display: inline-flex; - align-items: center; - gap: 6px; - padding: 8px 14px; - font-size: 13px; - font-weight: 500; - border-radius: 6px; - border: none; - cursor: pointer; - transition: all 0.15s ease; - } - - .btn-sm { - padding: 6px 10px; - font-size: 12px; - } - - .btn-primary { - background: ${cssManager.bdTheme('#111111', '#fafafa')}; - color: ${cssManager.bdTheme('#ffffff', '#09090b')}; - } - - .btn-primary:hover { - background: ${cssManager.bdTheme('#333333', '#e5e5e5')}; - } - - .btn-secondary { - background: ${cssManager.bdTheme('#f3f4f6', '#27272a')}; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - } - - .btn-secondary:hover { - background: ${cssManager.bdTheme('#e5e7eb', '#3f3f46')}; - } - - .btn-ghost { - background: transparent; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .btn-ghost:hover { - background: ${cssManager.bdTheme('#f3f4f6', '#27272a')}; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - } - - /* Add row button */ - .add-row { - display: flex; - justify-content: center; - padding: 16px; - border-top: 1px dashed ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - } - - /* Info banner */ - .info-banner { - display: flex; - align-items: flex-start; - gap: 12px; - padding: 16px; - background: ${cssManager.bdTheme('#eff6ff', '#172554')}; - border: 1px solid ${cssManager.bdTheme('#bfdbfe', '#1e40af')}; - border-radius: 8px; - margin-bottom: 24px; - } - - .info-banner dees-icon { - font-size: 20px; - color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')}; - flex-shrink: 0; - } - - .info-banner-content { - flex: 1; - } - - .info-banner-title { - font-size: 14px; - font-weight: 600; - color: ${cssManager.bdTheme('#1e40af', '#93c5fd')}; - margin-bottom: 4px; - } - - .info-banner-text { - font-size: 13px; - color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')}; - } - `, - ]; - - // ============================================================================ - // PROPERTIES - // ============================================================================ - - @property({ type: Object }) - public accessor contract: plugins.sdInterfaces.IPortableContract | null = null; - - @property({ type: Boolean }) - public accessor readonly: boolean = false; - - // ============================================================================ - // STATE - // ============================================================================ - - @state() - private accessor activeTab: TTermTab = 'financial'; - - // Demo data for terms (will be replaced with actual contract data when interface is extended) - @state() - private accessor paymentSchedule: IPaymentScheduleItem[] = [ - { id: '1', description: 'Initial deposit', amount: 5000, currency: 'EUR', dueDate: '2024-02-01', status: 'paid' }, - { id: '2', description: 'Monthly payment - March', amount: 1000, currency: 'EUR', dueDate: '2024-03-01', status: 'paid' }, - { id: '3', description: 'Monthly payment - April', amount: 1000, currency: 'EUR', dueDate: '2024-04-01', status: 'pending' }, - ]; - - @state() - private accessor milestones: IMilestone[] = [ - { id: '1', name: 'Project Kickoff', description: 'Initial planning and setup', dueDate: '2024-02-15', status: 'completed', dependencies: [] }, - { id: '2', name: 'Phase 1 Delivery', description: 'First deliverable milestone', dueDate: '2024-03-15', status: 'in_progress', dependencies: ['1'] }, - { id: '3', name: 'Final Delivery', description: 'Complete project delivery', dueDate: '2024-05-01', status: 'pending', dependencies: ['2'] }, - ]; - - @state() - private accessor obligations: IObligation[] = [ - { id: '1', description: 'Provide access credentials', responsibleParty: 'employer', deadline: '2024-02-01', status: 'completed' }, - { id: '2', description: 'Submit monthly reports', responsibleParty: 'employee', deadline: '2024-03-01', status: 'pending' }, - { id: '3', description: 'Conduct quarterly review', responsibleParty: 'employer', deadline: '2024-04-01', status: 'pending' }, - ]; - - // ============================================================================ - // EVENT HANDLERS - // ============================================================================ - - private handleFieldChange(path: string, value: unknown) { - this.dispatchEvent( - new CustomEvent('field-change', { - detail: { path, value }, - bubbles: true, - composed: true, - }) - ); - } - - private handleTabChange(tab: TTermTab) { - this.activeTab = tab; - } - - private handleAddPayment() { - const newPayment: IPaymentScheduleItem = { - id: `pay-${Date.now()}`, - description: 'New payment', - amount: 0, - currency: 'EUR', - dueDate: new Date().toISOString().split('T')[0], - status: 'pending', - }; - this.paymentSchedule = [...this.paymentSchedule, newPayment]; - } - - private handleAddMilestone() { - const newMilestone: IMilestone = { - id: `ms-${Date.now()}`, - name: 'New Milestone', - description: '', - dueDate: new Date().toISOString().split('T')[0], - status: 'pending', - dependencies: [], - }; - this.milestones = [...this.milestones, newMilestone]; - } - - private handleAddObligation() { - const newObligation: IObligation = { - id: `obl-${Date.now()}`, - description: 'New obligation', - responsibleParty: '', - deadline: new Date().toISOString().split('T')[0], - status: 'pending', - }; - this.obligations = [...this.obligations, newObligation]; - } - - // ============================================================================ - // HELPERS - // ============================================================================ - - private formatCurrency(amount: number, currency: string): string { - return new Intl.NumberFormat('en-US', { - style: 'currency', - currency: currency, - }).format(amount); - } - - private formatDate(dateStr: string): string { - return new Date(dateStr).toLocaleDateString('en-US', { - year: 'numeric', - month: 'short', - day: 'numeric', - }); - } - - private getTotalAmount(): number { - return this.paymentSchedule.reduce((sum, p) => sum + p.amount, 0); - } - - private getPaidAmount(): number { - return this.paymentSchedule.filter((p) => p.status === 'paid').reduce((sum, p) => sum + p.amount, 0); - } - - private getPartyName(roleId: string): string { - const role = this.contract?.availableRoles.find((r) => r.id === roleId); - return role?.name || roleId; - } - - // ============================================================================ - // RENDER - // ============================================================================ - - public render(): TemplateResult { - if (!this.contract) { - return html`
No contract loaded
`; - } - - return html` -
-
- - - - -
- ${this.activeTab === 'financial' - ? this.renderFinancialTerms() - : this.activeTab === 'time' - ? this.renderTimeTerms() - : this.renderObligations()} -
-
-
- `; - } - - private renderFinancialTerms(): TemplateResult { - const totalAmount = this.getTotalAmount(); - const paidAmount = this.getPaidAmount(); - const pendingAmount = totalAmount - paidAmount; - - return html` - -
-
- Total Value - ${this.formatCurrency(totalAmount, 'EUR')} -
-
- Paid - ${this.formatCurrency(paidAmount, 'EUR')} -
-
- Pending - ${this.formatCurrency(pendingAmount, 'EUR')} -
-
- - -
-
-
-
Payment Schedule
-
Scheduled payments and their status
-
- ${!this.readonly - ? html` - - ` - : ''} -
- - ${this.paymentSchedule.length > 0 - ? html` - - - - - - - - ${!this.readonly ? html`` : ''} - - - - ${this.paymentSchedule.map( - (payment) => html` - - - - - - ${!this.readonly - ? html` - - ` - : ''} - - ` - )} - -
DescriptionAmountDue DateStatus
${payment.description}${this.formatCurrency(payment.amount, payment.currency)}${this.formatDate(payment.dueDate)}${payment.status} - -
- ` - : html` -
- -

No Payment Schedule

-

Add payment terms to track financial obligations

-
- `} -
- `; - } - - private renderTimeTerms(): TemplateResult { - const completedCount = this.milestones.filter((m) => m.status === 'completed').length; - const totalCount = this.milestones.length; - - return html` - -
-
- Total Milestones - ${totalCount} -
-
- Completed - ${completedCount} -
-
- Progress - ${totalCount > 0 ? Math.round((completedCount / totalCount) * 100) : 0}% -
-
- - -
-
-
-
Milestones
-
Key project milestones and deadlines
-
- ${!this.readonly - ? html` - - ` - : ''} -
- - ${this.milestones.length > 0 - ? html` - - - - - - - - ${!this.readonly ? html`` : ''} - - - - ${this.milestones.map( - (milestone) => html` - - - - - - ${!this.readonly - ? html` - - ` - : ''} - - ` - )} - -
MilestoneDescriptionDue DateStatus
${milestone.name}${milestone.description || '—'}${this.formatDate(milestone.dueDate)}${milestone.status.replace('_', ' ')} - -
- ` - : html` -
- -

No Milestones

-

Add milestones to track project progress

-
- `} -
- `; - } - - private renderObligations(): TemplateResult { - const completedCount = this.obligations.filter((o) => o.status === 'completed').length; - - return html` - -
-
- Total Obligations - ${this.obligations.length} -
-
- Completed - ${completedCount} -
-
- Pending - ${this.obligations.length - completedCount} -
-
- - -
- -
-
Contractual Obligations
-
- Track responsibilities assigned to each party. Mark obligations as completed when fulfilled. -
-
-
- - -
-
-
-
Party Obligations
-
Responsibilities and deliverables by party
-
- ${!this.readonly - ? html` - - ` - : ''} -
- - ${this.obligations.length > 0 - ? html` - - - - - - - - ${!this.readonly ? html`` : ''} - - - - ${this.obligations.map( - (obligation) => html` - - - - - - ${!this.readonly - ? html` - - ` - : ''} - - ` - )} - -
ObligationResponsible PartyDeadlineStatus
${obligation.description}${this.getPartyName(obligation.responsibleParty)}${this.formatDate(obligation.deadline)}${obligation.status} - -
- ` - : html` -
- -

No Obligations

-

Add obligations to track party responsibilities

-
- `} -
- `; - } -} diff --git a/ts_web/elements/sdig-contracteditor/index.ts b/ts_web/elements/sdig-contracteditor/index.ts deleted file mode 100644 index 0859570..0000000 --- a/ts_web/elements/sdig-contracteditor/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @file index.ts - * @description Export barrel for sdig-contracteditor module - */ - -export * from './sdig-contracteditor.js'; -export * from './types.js'; -export * from './state.js'; diff --git a/ts_web/elements/sdig-contracteditor/sdig-contracteditor.ts b/ts_web/elements/sdig-contracteditor/sdig-contracteditor.ts deleted file mode 100644 index 46b9073..0000000 --- a/ts_web/elements/sdig-contracteditor/sdig-contracteditor.ts +++ /dev/null @@ -1,891 +0,0 @@ -/** - * @file sdig-contracteditor.ts - * @description Main contract editor orchestrator component - */ - -import { - DeesElement, - property, - state, - html, - customElement, - type TemplateResult, - css, - cssManager, -} from '@design.estate/dees-element'; - -import * as plugins from '../../plugins.js'; -import { createEditorStore, type TEditorStore } from './state.js'; -import { - type TEditorSection, - type IEditorState, - EDITOR_SECTIONS, - type IContractChangeEventDetail, - type ISectionChangeEventDetail, -} from './types.js'; - -// Import sub-components -import '../sdig-contract-header/sdig-contract-header.js'; -import '../sdig-contract-metadata/sdig-contract-metadata.js'; -import '../sdig-contract-parties/sdig-contract-parties.js'; -import '../sdig-contract-content/sdig-contract-content.js'; -import '../sdig-contract-terms/sdig-contract-terms.js'; -import '../sdig-contract-signatures/sdig-contract-signatures.js'; -import '../sdig-contract-attachments/sdig-contract-attachments.js'; -import '../sdig-contract-collaboration/sdig-contract-collaboration.js'; -import '../sdig-contract-audit/sdig-contract-audit.js'; -import '../sdig-collaboration-sidebar/sdig-collaboration-sidebar.js'; - -declare global { - interface HTMLElementTagNameMap { - 'sdig-contracteditor': SdigContracteditor; - } -} - -@customElement('sdig-contracteditor') -export class SdigContracteditor extends DeesElement { - // ============================================================================ - // STATIC - // ============================================================================ - - public static demo = () => html` - - `; - - public static styles = [ - cssManager.defaultStyles, - css` - :host { - display: block; - width: 100%; - height: 100%; - min-height: 600px; - } - - .editor-container { - display: flex; - flex-direction: column; - height: 100%; - background: ${cssManager.bdTheme('#f8f9fa', '#09090b')}; - border-radius: 8px; - overflow: hidden; - border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - } - - /* Header */ - .editor-header { - display: flex; - align-items: center; - justify-content: space-between; - padding: 16px 24px; - background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - border-bottom: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - } - - .header-left { - display: flex; - align-items: center; - gap: 16px; - } - - .contract-title { - font-size: 18px; - font-weight: 600; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - margin: 0; - } - - /* shadcn-style badge */ - .contract-status { - display: inline-flex; - align-items: center; - padding: 2px 10px; - border-radius: 6px; - font-size: 12px; - font-weight: 500; - line-height: 1.4; - border: 1px solid transparent; - background: ${cssManager.bdTheme('hsl(214 95% 93%)', 'hsl(214 95% 15%)')}; - color: ${cssManager.bdTheme('hsl(214 95% 35%)', 'hsl(214 95% 70%)')}; - border-color: ${cssManager.bdTheme('hsl(214 95% 80%)', 'hsl(214 95% 25%)')}; - } - - .contract-status.draft { - background: ${cssManager.bdTheme('hsl(48 96% 89%)', 'hsl(48 96% 15%)')}; - color: ${cssManager.bdTheme('hsl(25 95% 30%)', 'hsl(48 96% 70%)')}; - border-color: ${cssManager.bdTheme('hsl(48 96% 76%)', 'hsl(48 96% 25%)')}; - } - - .contract-status.executed { - background: ${cssManager.bdTheme('hsl(142 76% 90%)', 'hsl(142 76% 15%)')}; - color: ${cssManager.bdTheme('hsl(142 76% 28%)', 'hsl(142 76% 65%)')}; - border-color: ${cssManager.bdTheme('hsl(142 76% 75%)', 'hsl(142 76% 25%)')}; - } - - .header-right { - display: flex; - align-items: center; - gap: 12px; - } - - .dirty-indicator { - display: flex; - align-items: center; - gap: 6px; - font-size: 13px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .dirty-dot { - width: 8px; - height: 8px; - border-radius: 50%; - background: #f59e0b; - } - - .collaborators { - display: flex; - align-items: center; - gap: -8px; - } - - .collaborator-avatar { - width: 32px; - height: 32px; - border-radius: 50%; - border: 2px solid ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - display: flex; - align-items: center; - justify-content: center; - font-size: 12px; - font-weight: 600; - color: white; - margin-left: -8px; - } - - .collaborator-avatar:first-child { - margin-left: 0; - } - - /* Navigation Tabs */ - .editor-nav { - display: flex; - align-items: center; - gap: 4px; - padding: 0 24px; - background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - border-bottom: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - overflow-x: auto; - } - - .nav-tab { - display: flex; - align-items: center; - gap: 8px; - padding: 12px 16px; - font-size: 14px; - font-weight: 500; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - background: transparent; - border: none; - border-bottom: 2px solid transparent; - cursor: pointer; - transition: all 0.15s ease; - white-space: nowrap; - } - - .nav-tab:hover { - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - background: ${cssManager.bdTheme('#f3f4f6', '#18181b')}; - } - - .nav-tab.active { - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - border-bottom-color: ${cssManager.bdTheme('#111111', '#fafafa')}; - } - - .nav-tab dees-icon { - font-size: 16px; - } - - .nav-badge { - display: inline-flex; - align-items: center; - justify-content: center; - min-width: 20px; - height: 20px; - padding: 0 6px; - border-radius: 10px; - font-size: 11px; - font-weight: 600; - background: ${cssManager.bdTheme('#ef4444', '#dc2626')}; - color: white; - } - - /* Main Content Area */ - .editor-main { - display: flex; - flex: 1; - overflow: hidden; - } - - .editor-content { - flex: 1; - overflow-y: auto; - padding: 24px; - } - - .editor-sidebar { - width: 320px; - border-left: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - overflow-y: auto; - } - - /* Section placeholder */ - .section-placeholder { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - height: 400px; - text-align: center; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .section-placeholder dees-icon { - font-size: 48px; - margin-bottom: 16px; - opacity: 0.5; - } - - .section-placeholder h3 { - margin: 0 0 8px; - font-size: 18px; - font-weight: 600; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - } - - .section-placeholder p { - margin: 0; - font-size: 14px; - } - - /* Footer */ - .editor-footer { - display: flex; - align-items: center; - justify-content: space-between; - padding: 12px 24px; - background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')}; - border-top: 1px solid ${cssManager.bdTheme('#e5e5e5', '#27272a')}; - } - - .footer-left { - display: flex; - align-items: center; - gap: 16px; - font-size: 13px; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .footer-right { - display: flex; - align-items: center; - gap: 12px; - } - - /* Buttons */ - .btn { - display: inline-flex; - align-items: center; - gap: 8px; - padding: 8px 16px; - font-size: 14px; - font-weight: 500; - border-radius: 6px; - border: none; - cursor: pointer; - transition: all 0.15s ease; - } - - .btn-primary { - background: ${cssManager.bdTheme('#111111', '#fafafa')}; - color: ${cssManager.bdTheme('#ffffff', '#09090b')}; - } - - .btn-primary:hover { - background: ${cssManager.bdTheme('#333333', '#e5e5e5')}; - } - - .btn-secondary { - background: ${cssManager.bdTheme('#f3f4f6', '#27272a')}; - color: ${cssManager.bdTheme('#374151', '#d1d5db')}; - } - - .btn-secondary:hover { - background: ${cssManager.bdTheme('#e5e7eb', '#3f3f46')}; - } - - .btn-ghost { - background: transparent; - color: ${cssManager.bdTheme('#6b7280', '#9ca3af')}; - } - - .btn-ghost:hover { - background: ${cssManager.bdTheme('#f3f4f6', '#27272a')}; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - } - - .btn-ghost.active { - background: ${cssManager.bdTheme('#e5e7eb', '#3f3f46')}; - color: ${cssManager.bdTheme('#111111', '#fafafa')}; - } - - .btn:disabled { - opacity: 0.5; - cursor: not-allowed; - } - - /* Loading state */ - .loading-overlay { - position: absolute; - inset: 0; - display: flex; - align-items: center; - justify-content: center; - background: ${cssManager.bdTheme('rgba(255,255,255,0.8)', 'rgba(0,0,0,0.8)')}; - z-index: 100; - } - - /* Overview section layout */ - .overview-section { - display: flex; - flex-direction: column; - gap: 24px; - } - `, - ]; - - // ============================================================================ - // PROPERTIES - // ============================================================================ - - @property({ type: Object }) - public accessor contract: plugins.sdInterfaces.IPortableContract | null = null; - - @property({ type: Boolean }) - public accessor showSidebar: boolean = true; - - @property({ type: String }) - public accessor initialSection: TEditorSection = 'overview'; - - // ============================================================================ - // STATE - // ============================================================================ - - @state() - private accessor editorState: IEditorState | null = null; - - // ============================================================================ - // INSTANCE - // ============================================================================ - - private store: TEditorStore | null = null; - private unsubscribe: (() => void) | null = null; - private storeReady: Promise; - private resolveStoreReady!: () => void; - - constructor() { - super(); - this.storeReady = new Promise((resolve) => { - this.resolveStoreReady = resolve; - }); - } - - // ============================================================================ - // LIFECYCLE - // ============================================================================ - - public connectedCallback() { - super.connectedCallback(); - this.initStore(); - } - - private async initStore() { - this.store = await createEditorStore(); - this.unsubscribe = this.store.subscribe((state) => { - this.editorState = state; - }); - - // Set initial section - this.store.setActiveSection(this.initialSection); - this.resolveStoreReady(); - - // If contract was already set, apply it now - if (this.contract) { - this.store.setContract(this.contract); - } - } - - public disconnectedCallback() { - super.disconnectedCallback(); - if (this.unsubscribe) { - this.unsubscribe(); - } - } - - public async updated(changedProperties: Map) { - if (changedProperties.has('contract') && this.contract) { - await this.storeReady; - this.store?.setContract(this.contract); - } - } - - // ============================================================================ - // EVENT HANDLERS - // ============================================================================ - - private handleSectionChange(section: TEditorSection) { - const previousSection = this.editorState?.activeSection || 'overview'; - this.store?.setActiveSection(section); - - this.dispatchEvent( - new CustomEvent('section-change', { - detail: { section, previousSection }, - bubbles: true, - composed: true, - }) - ); - } - - private handleSave() { - if (!this.editorState?.contract) return; - - this.store?.setSaving(true); - - this.dispatchEvent( - new CustomEvent('contract-save', { - detail: { - contract: this.editorState.contract, - isDraft: this.editorState.contract.lifecycle.currentStatus === 'draft', - }, - bubbles: true, - composed: true, - }) - ); - } - - private handleDiscard() { - this.store?.discardChanges(); - this.dispatchEvent( - new CustomEvent('contract-discard', { - bubbles: true, - composed: true, - }) - ); - } - - private handleUndo() { - this.store?.undo(); - } - - private handleRedo() { - this.store?.redo(); - } - - private handleCommentClick(e: CustomEvent) { - // Navigate to collaboration section and highlight comment - this.store?.setActiveSection('collaboration'); - this.dispatchEvent( - new CustomEvent('comment-focus', { - detail: e.detail, - bubbles: true, - composed: true, - }) - ); - } - - private handleSuggestionClick(e: CustomEvent) { - // Navigate to collaboration section and highlight suggestion - this.store?.setActiveSection('collaboration'); - this.dispatchEvent( - new CustomEvent('suggestion-focus', { - detail: e.detail, - bubbles: true, - composed: true, - }) - ); - } - - private handleSidebarAddComment(e: CustomEvent) { - this.dispatchEvent( - new CustomEvent('comment-added', { - detail: e.detail, - bubbles: true, - composed: true, - }) - ); - } - - // ============================================================================ - // PUBLIC API - // ============================================================================ - - /** - * Update a field in the contract - */ - public updateField(path: string, value: unknown, description?: string) { - this.store?.updateContract(path, value, description); - - this.dispatchEvent( - new CustomEvent('contract-change', { - detail: { path, value, source: 'user' }, - bubbles: true, - composed: true, - }) - ); - } - - /** - * Get current contract state - */ - public getContract(): plugins.sdInterfaces.IPortableContract | null { - return this.editorState?.contract || null; - } - - /** - * Mark contract as saved externally - */ - public markSaved() { - this.store?.markSaved(); - } - - // ============================================================================ - // RENDER HELPERS - // ============================================================================ - - private getStatusClass(status: string): string { - if (status === 'draft' || status === 'internal_review') return 'draft'; - if (status === 'executed' || status === 'active') return 'executed'; - return ''; - } - - private formatStatus(status: string): string { - return status.replace(/_/g, ' ').replace(/\b\w/g, (c) => c.toUpperCase()); - } - - private handleFieldChange(e: CustomEvent<{ path: string; value: unknown }>) { - const { path, value } = e.detail; - this.updateField(path, value); - } - - private renderSectionContent(): TemplateResult { - const section = this.editorState?.activeSection || 'overview'; - const contract = this.editorState?.contract; - const sectionConfig = EDITOR_SECTIONS.find((s) => s.id === section); - - // Render section based on active tab - switch (section) { - case 'overview': - return this.renderOverviewSection(); - case 'parties': - return this.renderPartiesSection(); - case 'content': - return this.renderContentSection(); - case 'terms': - return this.renderTermsSection(); - case 'signatures': - return this.renderSignaturesSection(); - case 'attachments': - return this.renderAttachmentsSection(); - case 'collaboration': - return this.renderCollaborationSection(); - case 'audit': - return this.renderAuditSection(); - default: - return this.renderPlaceholder(sectionConfig, 'This section is being implemented...'); - } - } - - private renderOverviewSection(): TemplateResult { - const contract = this.editorState?.contract; - if (!contract) { - return html`
No contract loaded
`; - } - - return html` -
- - - -
- `; - } - - private renderPartiesSection(): TemplateResult { - const contract = this.editorState?.contract; - if (!contract) { - return html`
No contract loaded
`; - } - - return html` - - `; - } - - private renderContentSection(): TemplateResult { - const contract = this.editorState?.contract; - if (!contract) { - return html`
No contract loaded
`; - } - - return html` - - `; - } - - private renderTermsSection(): TemplateResult { - const contract = this.editorState?.contract; - if (!contract) { - return html`
No contract loaded
`; - } - - return html` - - `; - } - - private renderSignaturesSection(): TemplateResult { - const contract = this.editorState?.contract; - if (!contract) { - return html`
No contract loaded
`; - } - - return html` - - `; - } - - private renderAttachmentsSection(): TemplateResult { - const contract = this.editorState?.contract; - if (!contract) { - return html`
No contract loaded
`; - } - - return html` - - `; - } - - private renderCollaborationSection(): TemplateResult { - const contract = this.editorState?.contract; - if (!contract) { - return html`
No contract loaded
`; - } - - return html` - - `; - } - - private renderAuditSection(): TemplateResult { - const contract = this.editorState?.contract; - if (!contract) { - return html`
No contract loaded
`; - } - - return html` - - `; - } - - private renderPlaceholder(sectionConfig: typeof EDITOR_SECTIONS[0] | undefined, message: string): TemplateResult { - return html` -
- -

${sectionConfig?.label || 'Section'}

-

${message}

-
- `; - } - - // ============================================================================ - // RENDER - // ============================================================================ - - public render(): TemplateResult { - const contract = this.editorState?.contract; - const activeSection = this.editorState?.activeSection || 'overview'; - const isDirty = this.editorState?.isDirty || false; - const isSaving = this.editorState?.isSaving || false; - const collaborators = this.editorState?.activeCollaborators || []; - - return html` -
- -
-
-

${contract?.title || 'Untitled Contract'}

- ${contract?.lifecycle?.currentStatus - ? html` - - ${this.formatStatus(contract.lifecycle.currentStatus)} - - ` - : ''} -
-
- ${isDirty - ? html` -
- - Unsaved changes -
- ` - : ''} - ${collaborators.length > 0 - ? html` -
- ${collaborators.slice(0, 3).map( - (c) => html` -
- ${c.displayName.charAt(0).toUpperCase()} -
- ` - )} - ${collaborators.length > 3 - ? html` -
- +${collaborators.length - 3} -
- ` - : ''} -
- ` - : ''} - - - -
-
- - - - - -
-
- ${this.renderSectionContent()} -
- ${this.showSidebar - ? html` - - ` - : ''} -
- - - - - ${this.editorState?.isLoading - ? html` -
- -
- ` - : ''} -
- `; - } -} diff --git a/ts_web/elements/sdig-contracteditor/state.ts b/ts_web/elements/sdig-contracteditor/state.ts deleted file mode 100644 index fe8af9f..0000000 --- a/ts_web/elements/sdig-contracteditor/state.ts +++ /dev/null @@ -1,407 +0,0 @@ -/** - * @file state.ts - * @description Smartstate store for contract editor - */ - -import { domtools } from '@design.estate/dees-element'; -import type * as sdInterfaces from '@signature.digital/tools/interfaces'; -import { - type IEditorState, - type TEditorSection, - type TEditorMode, - type IContractChange, - type IValidationError, - type IEditorUser, - createInitialEditorState, -} from './types.js'; - -// ============================================================================ -// STATE STORE -// ============================================================================ - -/** - * Create a new editor state store instance - */ -export async function createEditorStore() { - const smartstate = new domtools.plugins.smartstate.Smartstate<{ editor: IEditorState }>(); - - // Initialize with default state (getStatePart is now async) - const statePart = await smartstate.getStatePart('editor', createInitialEditorState(), 'soft'); - - // Create actions for state modifications - const setContractAction = statePart.createAction<{ contract: sdInterfaces.IPortableContract }>( - async (statePartArg, payload) => ({ - ...statePartArg.getState(), - contract: structuredClone(payload.contract), - originalContract: structuredClone(payload.contract), - isDirty: false, - undoStack: [], - redoStack: [], - }) - ); - - const updateContractAction = statePart.createAction<{ path: string; value: unknown; description?: string; userId?: string }>( - async (statePartArg, payload) => { - const state = statePartArg.getState(); - if (!state.contract) return state; - - const previousValue = getNestedValue(state.contract, payload.path); - - const change: IContractChange = { - id: crypto.randomUUID(), - timestamp: Date.now(), - path: payload.path, - previousValue, - newValue: payload.value, - description: payload.description || `Updated ${payload.path}`, - userId: payload.userId, - }; - - const updatedContract = setNestedValue( - structuredClone(state.contract), - payload.path, - payload.value - ); - - return { - ...state, - contract: updatedContract, - isDirty: true, - undoStack: [...state.undoStack, change], - redoStack: [], - }; - } - ); - - const setActiveSectionAction = statePart.createAction<{ section: TEditorSection }>( - async (statePartArg, payload) => ({ - ...statePartArg.getState(), - activeSection: payload.section, - }) - ); - - const setEditorModeAction = statePart.createAction<{ mode: TEditorMode }>( - async (statePartArg, payload) => ({ - ...statePartArg.getState(), - editorMode: payload.mode, - }) - ); - - const selectParagraphAction = statePart.createAction<{ paragraphId: string | null }>( - async (statePartArg, payload) => ({ - ...statePartArg.getState(), - selectedParagraphId: payload.paragraphId, - }) - ); - - const selectPartyAction = statePart.createAction<{ partyId: string | null }>( - async (statePartArg, payload) => ({ - ...statePartArg.getState(), - selectedPartyId: payload.partyId, - }) - ); - - const selectSignatureFieldAction = statePart.createAction<{ fieldId: string | null }>( - async (statePartArg, payload) => ({ - ...statePartArg.getState(), - selectedSignatureFieldId: payload.fieldId, - }) - ); - - const undoAction = statePart.createAction( - async (statePartArg) => { - const state = statePartArg.getState(); - if (state.undoStack.length === 0 || !state.contract) return state; - - const change = state.undoStack[state.undoStack.length - 1]; - const updatedContract = setNestedValue( - structuredClone(state.contract), - change.path, - change.previousValue - ); - - return { - ...state, - contract: updatedContract, - undoStack: state.undoStack.slice(0, -1), - redoStack: [...state.redoStack, change], - isDirty: state.undoStack.length > 1, - }; - } - ); - - const redoAction = statePart.createAction( - async (statePartArg) => { - const state = statePartArg.getState(); - if (state.redoStack.length === 0 || !state.contract) return state; - - const change = state.redoStack[state.redoStack.length - 1]; - const updatedContract = setNestedValue( - structuredClone(state.contract), - change.path, - change.newValue - ); - - return { - ...state, - contract: updatedContract, - undoStack: [...state.undoStack, change], - redoStack: state.redoStack.slice(0, -1), - isDirty: true, - }; - } - ); - - const setLoadingAction = statePart.createAction<{ isLoading: boolean }>( - async (statePartArg, payload) => ({ - ...statePartArg.getState(), - isLoading: payload.isLoading, - }) - ); - - const setSavingAction = statePart.createAction<{ isSaving: boolean }>( - async (statePartArg, payload) => ({ - ...statePartArg.getState(), - isSaving: payload.isSaving, - }) - ); - - const markSavedAction = statePart.createAction( - async (statePartArg) => { - const state = statePartArg.getState(); - return { - ...state, - originalContract: state.contract ? structuredClone(state.contract) : null, - isDirty: false, - isSaving: false, - }; - } - ); - - const discardChangesAction = statePart.createAction( - async (statePartArg) => { - const state = statePartArg.getState(); - return { - ...state, - contract: state.originalContract ? structuredClone(state.originalContract) : null, - isDirty: false, - undoStack: [], - redoStack: [], - }; - } - ); - - const setValidationErrorsAction = statePart.createAction<{ errors: IValidationError[] }>( - async (statePartArg, payload) => ({ - ...statePartArg.getState(), - validationErrors: payload.errors, - }) - ); - - const clearValidationErrorsAction = statePart.createAction( - async (statePartArg) => ({ - ...statePartArg.getState(), - validationErrors: [], - }) - ); - - const setCurrentUserAction = statePart.createAction<{ user: IEditorUser }>( - async (statePartArg, payload) => ({ - ...statePartArg.getState(), - currentUser: payload.user, - }) - ); - - const setActiveCollaboratorsAction = statePart.createAction<{ collaborators: sdInterfaces.IUserPresence[] }>( - async (statePartArg, payload) => ({ - ...statePartArg.getState(), - activeCollaborators: payload.collaborators, - }) - ); - - const addCollaboratorAction = statePart.createAction<{ collaborator: sdInterfaces.IUserPresence }>( - async (statePartArg, payload) => { - const state = statePartArg.getState(); - if (state.activeCollaborators.find(c => c.userId === payload.collaborator.userId)) { - return state; - } - return { - ...state, - activeCollaborators: [...state.activeCollaborators, payload.collaborator], - }; - } - ); - - const removeCollaboratorAction = statePart.createAction<{ userId: string }>( - async (statePartArg, payload) => { - const state = statePartArg.getState(); - return { - ...state, - activeCollaborators: state.activeCollaborators.filter(c => c.userId !== payload.userId), - }; - } - ); - - const updateCollaboratorAction = statePart.createAction<{ userId: string; updates: Partial }>( - async (statePartArg, payload) => { - const state = statePartArg.getState(); - return { - ...state, - activeCollaborators: state.activeCollaborators.map(c => - c.userId === payload.userId ? { ...c, ...payload.updates } : c - ), - }; - } - ); - - return { - smartstate, - statePart, - - // Getters - getContract: () => statePart.getState().contract, - getActiveSection: () => statePart.getState().activeSection, - isDirty: () => statePart.getState().isDirty, - isLoading: () => statePart.getState().isLoading, - isSaving: () => statePart.getState().isSaving, - - // Contract operations - setContract: (contract: sdInterfaces.IPortableContract) => setContractAction.trigger({ contract }), - - updateContract: (path: string, value: unknown, description?: string) => { - const state = statePart.getState(); - return updateContractAction.trigger({ path, value, description, userId: state.currentUser?.userId }); - }, - - // Navigation - setActiveSection: (section: TEditorSection) => setActiveSectionAction.trigger({ section }), - setEditorMode: (mode: TEditorMode) => setEditorModeAction.trigger({ mode }), - - // Selection - selectParagraph: (paragraphId: string | null) => selectParagraphAction.trigger({ paragraphId }), - selectParty: (partyId: string | null) => selectPartyAction.trigger({ partyId }), - selectSignatureField: (fieldId: string | null) => selectSignatureFieldAction.trigger({ fieldId }), - - // Undo/Redo - undo: () => undoAction.trigger(), - redo: () => redoAction.trigger(), - canUndo: () => statePart.getState().undoStack.length > 0, - canRedo: () => statePart.getState().redoStack.length > 0, - - // Loading/Saving state - setLoading: (isLoading: boolean) => setLoadingAction.trigger({ isLoading }), - setSaving: (isSaving: boolean) => setSavingAction.trigger({ isSaving }), - markSaved: () => markSavedAction.trigger(), - - // Discard changes - discardChanges: () => discardChangesAction.trigger(), - - // Validation - setValidationErrors: (errors: IValidationError[]) => setValidationErrorsAction.trigger({ errors }), - clearValidationErrors: () => clearValidationErrorsAction.trigger(), - - // User/Collaboration - setCurrentUser: (user: IEditorUser) => setCurrentUserAction.trigger({ user }), - setActiveCollaborators: (collaborators: sdInterfaces.IUserPresence[]) => setActiveCollaboratorsAction.trigger({ collaborators }), - addCollaborator: (collaborator: sdInterfaces.IUserPresence) => addCollaboratorAction.trigger({ collaborator }), - removeCollaborator: (userId: string) => removeCollaboratorAction.trigger({ userId }), - updateCollaborator: (userId: string, updates: Partial) => updateCollaboratorAction.trigger({ userId, updates }), - - // Subscribe to state changes (using new API) - subscribe: (callback: (state: IEditorState) => void) => { - const subscription = statePart.select().subscribe(callback); - return () => subscription.unsubscribe(); - }, - }; -} - -// ============================================================================ -// UTILITY FUNCTIONS -// ============================================================================ - -/** - * Get nested value from object by path - */ -function getNestedValue(obj: Record, path: string): unknown { - const keys = path.split('.'); - let current: unknown = obj; - - for (const key of keys) { - if (current === null || current === undefined) return undefined; - if (typeof current !== 'object') return undefined; - - // Handle array index - const arrayMatch = key.match(/^(\w+)\[(\d+)\]$/); - if (arrayMatch) { - const [, arrayKey, index] = arrayMatch; - current = (current as Record)[arrayKey]; - if (Array.isArray(current)) { - current = current[parseInt(index, 10)]; - } else { - return undefined; - } - } else { - current = (current as Record)[key]; - } - } - - return current; -} - -/** - * Set nested value in object by path (immutably) - */ -function setNestedValue>( - obj: T, - path: string, - value: unknown -): T { - const keys = path.split('.'); - const result = { ...obj } as Record; - let current = result; - - for (let i = 0; i < keys.length - 1; i++) { - const key = keys[i]; - - // Handle array index - const arrayMatch = key.match(/^(\w+)\[(\d+)\]$/); - if (arrayMatch) { - const [, arrayKey, index] = arrayMatch; - const arr = [...((current[arrayKey] as unknown[]) || [])]; - if (i === keys.length - 2) { - arr[parseInt(index, 10)] = value; - current[arrayKey] = arr; - return result as T; - } else { - arr[parseInt(index, 10)] = { ...(arr[parseInt(index, 10)] as Record || {}) }; - current[arrayKey] = arr; - current = arr[parseInt(index, 10)] as Record; - } - } else { - if (typeof current[key] !== 'object' || current[key] === null) { - current[key] = {}; - } else { - current[key] = { ...(current[key] as Record) }; - } - current = current[key] as Record; - } - } - - const lastKey = keys[keys.length - 1]; - const arrayMatch = lastKey.match(/^(\w+)\[(\d+)\]$/); - if (arrayMatch) { - const [, arrayKey, index] = arrayMatch; - const arr = [...((current[arrayKey] as unknown[]) || [])]; - arr[parseInt(index, 10)] = value; - current[arrayKey] = arr; - } else { - current[lastKey] = value; - } - - return result as T; -} - -/** - * Type for editor store - */ -export type TEditorStore = Awaited>; diff --git a/ts_web/elements/sdig-contracteditor/types.ts b/ts_web/elements/sdig-contracteditor/types.ts deleted file mode 100644 index 83b42d8..0000000 --- a/ts_web/elements/sdig-contracteditor/types.ts +++ /dev/null @@ -1,228 +0,0 @@ -/** - * @file types.ts - * @description Editor-specific types and event interfaces - */ - -import type * as sdInterfaces from '@signature.digital/tools/interfaces'; - -// ============================================================================ -// EDITOR NAVIGATION -// ============================================================================ - -/** - * Available editor sections/tabs - */ -export type TEditorSection = - | 'overview' - | 'parties' - | 'content' - | 'terms' - | 'signatures' - | 'attachments' - | 'collaboration' - | 'audit'; - -/** - * Section configuration - */ -export interface IEditorSectionConfig { - id: TEditorSection; - label: string; - icon: string; - badge?: number | string; - disabled?: boolean; -} - -/** - * Default section configurations - */ -export const EDITOR_SECTIONS: IEditorSectionConfig[] = [ - { id: 'overview', label: 'Overview', icon: 'lucide:FileText' }, - { id: 'parties', label: 'Parties & Roles', icon: 'lucide:Users' }, - { id: 'content', label: 'Content', icon: 'lucide:FileEdit' }, - { id: 'terms', label: 'Terms', icon: 'lucide:Calculator' }, - { id: 'signatures', label: 'Signatures', icon: 'lucide:PenTool' }, - { id: 'attachments', label: 'Attachments', icon: 'lucide:Paperclip' }, - { id: 'collaboration', label: 'Collaboration', icon: 'lucide:MessageCircle' }, - { id: 'audit', label: 'Audit & History', icon: 'lucide:History' }, -]; - -// ============================================================================ -// EDITOR STATE -// ============================================================================ - -/** - * Current user in the editor - */ -export interface IEditorUser { - userId: string; - displayName: string; - email: string; - avatarUrl?: string; - color: string; -} - -/** - * Editor mode - */ -export type TEditorMode = 'edit' | 'view' | 'review' | 'sign'; - -/** - * Editor state interface - */ -export interface IEditorState { - // Contract data - contract: sdInterfaces.IPortableContract | null; - originalContract: sdInterfaces.IPortableContract | null; - - // UI state - activeSection: TEditorSection; - editorMode: TEditorMode; - isDirty: boolean; - isSaving: boolean; - isLoading: boolean; - - // Selection state - selectedParagraphId: string | null; - selectedPartyId: string | null; - selectedSignatureFieldId: string | null; - - // Collaboration - currentUser: IEditorUser | null; - activeCollaborators: sdInterfaces.IUserPresence[]; - - // Validation - validationErrors: IValidationError[]; - - // History - undoStack: IContractChange[]; - redoStack: IContractChange[]; -} - -/** - * Initial editor state factory - */ -export function createInitialEditorState(): IEditorState { - return { - contract: null, - originalContract: null, - activeSection: 'overview', - editorMode: 'edit', - isDirty: false, - isSaving: false, - isLoading: false, - selectedParagraphId: null, - selectedPartyId: null, - selectedSignatureFieldId: null, - currentUser: null, - activeCollaborators: [], - validationErrors: [], - undoStack: [], - redoStack: [], - }; -} - -// ============================================================================ -// CHANGE TRACKING -// ============================================================================ - -/** - * Contract change for undo/redo - */ -export interface IContractChange { - id: string; - timestamp: number; - path: string; - previousValue: unknown; - newValue: unknown; - description: string; - userId?: string; -} - -/** - * Validation error - */ -export interface IValidationError { - path: string; - message: string; - severity: 'error' | 'warning' | 'info'; - fieldLabel?: string; -} - -// ============================================================================ -// EVENTS -// ============================================================================ - -/** - * Contract change event detail - */ -export interface IContractChangeEventDetail { - path: string; - value: unknown; - previousValue?: unknown; - source?: 'user' | 'collaboration' | 'system'; -} - -/** - * Section change event detail - */ -export interface ISectionChangeEventDetail { - section: TEditorSection; - previousSection: TEditorSection; -} - -/** - * Save event detail - */ -export interface ISaveEventDetail { - contract: sdInterfaces.IPortableContract; - isDraft: boolean; -} - -/** - * Custom event types - */ -export interface IEditorEvents { - 'contract-change': CustomEvent; - 'section-change': CustomEvent; - 'contract-save': CustomEvent; - 'contract-discard': CustomEvent; - 'validation-error': CustomEvent; -} - -// ============================================================================ -// UTILITY TYPES -// ============================================================================ - -/** - * Deep path type for nested object access - */ -export type TDeepPath = K extends string - ? T[K] extends Record - ? `${K}` | `${K}.${TDeepPath}` - : `${K}` - : never; - -/** - * Contract field path - */ -export type TContractPath = string; // Simplified for runtime use - -/** - * Field metadata for UI rendering - */ -export interface IFieldMetadata { - path: TContractPath; - label: string; - description?: string; - required: boolean; - type: 'text' | 'textarea' | 'number' | 'date' | 'select' | 'multiselect' | 'checkbox' | 'custom'; - options?: Array<{ value: string; label: string }>; - validation?: { - min?: number; - max?: number; - minLength?: number; - maxLength?: number; - pattern?: string; - }; -} diff --git a/ts_web/elements/sdig-contractrenderer.ts b/ts_web/elements/sdig-contractrenderer.ts deleted file mode 100644 index e69de29..0000000 diff --git a/ts_web/elements/sdig-signbox/sdig-signbox.ts b/ts_web/elements/sdig-signbox/sdig-signbox.ts index 2489db0..fb6dfda 100644 --- a/ts_web/elements/sdig-signbox/sdig-signbox.ts +++ b/ts_web/elements/sdig-signbox/sdig-signbox.ts @@ -1,5 +1,4 @@ -import { DeesElement, property, html, customElement, type TemplateResult, css, cssManager } from '@design.estate/dees-element'; -import * as plugins from '../../plugins.js'; +import { DeesElement, html, customElement, type TemplateResult, css, cssManager } from '@design.estate/dees-element'; declare global { interface HTMLElementTagNameMap { @@ -12,6 +11,7 @@ export class SignBox extends DeesElement { public static demo = () => html` `; + public static demoGroups = ['Signature Digital Primitives']; constructor() { super(); @@ -80,17 +80,19 @@ export class SignBox extends DeesElement {
{ - await this.shadowRoot.querySelector('sdig-signpad').clear(); + await this.shadowRoot?.querySelector('sdig-signpad')?.clear(); }}> Clear
{ - await this.shadowRoot.querySelector('sdig-signpad').undo(); + await this.shadowRoot?.querySelector('sdig-signpad')?.undo(); }}> Undo
{ - const signature = await this.shadowRoot.querySelector('sdig-signpad').toData(); + const signaturePad = this.shadowRoot?.querySelector('sdig-signpad'); + if (!signaturePad) return; + const signature = await signaturePad.toData(); this.dispatchEvent(new CustomEvent('signature', { detail: { signature, @@ -104,4 +106,4 @@ export class SignBox extends DeesElement {
`; } -} \ No newline at end of file +} diff --git a/ts_web/elements/sdig-signpad/sdig-signpad.ts b/ts_web/elements/sdig-signpad/sdig-signpad.ts index 5c61f74..9e9db8b 100644 --- a/ts_web/elements/sdig-signpad/sdig-signpad.ts +++ b/ts_web/elements/sdig-signpad/sdig-signpad.ts @@ -1,4 +1,4 @@ -import { DeesElement, property, html, customElement, type TemplateResult, css, cssManager } from '@design.estate/dees-element'; +import { DeesElement, html, customElement, type TemplateResult, css, cssManager } from '@design.estate/dees-element'; import * as plugins from '../../plugins.js'; declare global { @@ -12,6 +12,7 @@ export class SignPad extends DeesElement { public static demo = () => html` `; + public static demoGroups = ['Signature Digital Primitives']; constructor() { @@ -59,11 +60,14 @@ export class SignPad extends DeesElement { `; } - public signaturePad: typeof plugins.signaturePad.prototype; + public signaturePad?: typeof plugins.signaturePad.prototype; + public async firstUpdated() { - const domtools = await this.domtoolsPromise; + await this.domtoolsPromise; + const mainbox = this.shadowRoot?.querySelector('.mainbox'); + if (!mainbox) return; const canvas = document.createElement('canvas'); - this.shadowRoot.querySelector('.mainbox').appendChild(canvas); + mainbox.appendChild(canvas); await this.resizeCanvas(); this.signaturePad = new plugins.signaturePad(canvas, { @@ -72,10 +76,11 @@ export class SignPad extends DeesElement { } public async resizeCanvas() { - const mainbox = this.shadowRoot.querySelector('.mainbox'); + const mainbox = this.shadowRoot?.querySelector('.mainbox'); + const canvas = this.shadowRoot?.querySelector('canvas'); + if (!mainbox || !canvas) return; const mainboxWidth = mainbox.clientWidth; const mainboxHeight = mainbox.clientHeight; - const canvas = this.shadowRoot.querySelector('canvas'); canvas.width = mainboxWidth; canvas.height = mainboxHeight; if (this.signaturePad) { @@ -84,22 +89,22 @@ export class SignPad extends DeesElement { } public async clear() { - this.signaturePad.clear(); + this.signaturePad?.clear(); } public async toData() { - const returnData = this.signaturePad.toData(); + const returnData = this.signaturePad?.toData() || []; return returnData; } public async fromData(dataArrayArg: any[]) { - this.signaturePad.fromData(dataArrayArg); + this.signaturePad?.fromData(dataArrayArg); } public async toSVG() { - return this.signaturePad.toSVG({ + return this.signaturePad?.toSVG({ includeBackgroundColor: false, - }); + }) || ''; } public async undo() { @@ -107,4 +112,4 @@ export class SignPad extends DeesElement { data.pop(); await this.fromData(data); } -} \ No newline at end of file +} diff --git a/ts_web/elements/sdig-workspace/index.ts b/ts_web/elements/sdig-workspace/index.ts new file mode 100644 index 0000000..89b84ad --- /dev/null +++ b/ts_web/elements/sdig-workspace/index.ts @@ -0,0 +1,8 @@ +export * from './sdig-workspace.shared.js'; +export * from './sdig-workspace-inbox.js'; +export * from './sdig-workspace-compose.js'; +export * from './sdig-workspace-sign.js'; +export * from './sdig-workspace-audit.js'; +export * from './sdig-workspace-developers.js'; +export * from './sdig-workspace-placeholder.js'; +export * from './sdig-workspace.js'; diff --git a/ts_web/elements/sdig-workspace/sdig-workspace-audit.ts b/ts_web/elements/sdig-workspace/sdig-workspace-audit.ts new file mode 100644 index 0000000..0b516d3 --- /dev/null +++ b/ts_web/elements/sdig-workspace/sdig-workspace-audit.ts @@ -0,0 +1,37 @@ +import { DeesElement, html, customElement, type TemplateResult, css } from '@design.estate/dees-element'; +import { actionButton, demoRecipients, icon, pill, topBar, workspaceBaseStyles, workspaceDemoFrame } from './sdig-workspace.shared.js'; + +declare global { + interface HTMLElementTagNameMap { + 'sdig-workspace-audit': SdigWorkspaceAudit; + } +} + +@customElement('sdig-workspace-audit') +export class SdigWorkspaceAudit extends DeesElement { + public static demo = () => workspaceDemoFrame(html``); + public static demoGroups = ['Signature Digital Workspace']; + + public static styles = [workspaceBaseStyles, css` + .audit-grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 20px; } + .event-row { display: grid; grid-template-columns: 24px 180px 1fr 200px; gap: 12px; padding: 14px 16px; border-bottom: 1px solid var(--border-subtle); align-items: center; } + @media (max-width: 920px) { .audit-grid { grid-template-columns: 1fr; } .event-row { grid-template-columns: 24px 1fr; } .event-row .hide-mobile { display: none; } } + `]; + + public render(): TemplateResult { + const events = [ + ['2026-05-02 14:32:18 UTC', 'Sarah Chen', 'Document signed', '81.221.4.18 · Brussels, BE', '0x4a7b…f29c', 'success'], + ['2026-05-02 14:31:54 UTC', 'Sarah Chen', 'Signature adopted (typed)', '81.221.4.18 · Brussels, BE', '0x4a7b…f29c', 'info'], + ['2026-05-02 14:28:02 UTC', 'Sarah Chen', 'Document opened', '81.221.4.18 · Brussels, BE', '', 'default'], + ['2026-05-02 11:02:11 UTC', 'Philipp K.', 'Document sent for signature', '92.42.114.7 · Berlin, DE', '0x1c8a…3b6f', 'info'], + ['2026-05-02 10:54:22 UTC', 'Philipp K.', 'Document created', '92.42.114.7 · Berlin, DE', '0x1c8a…3b6f', 'default'], + ]; + return html` + ${topBar({ breadcrumb: ['signature.digital', 'Inbox', 'doc_8mK3pL', 'Audit Trail'], title: 'Audit Trail', subtitle: pill('completed · cryptographically sealed', 'success', true), actions: html`${actionButton('Certificate (PDF)', 'outline', 'download')}${actionButton('Verify on chain', 'outline', 'hash')}` })} +
+
Event log${events.length} events · immutable
${events.map((event) => html`
${event[0]}
${event[2]}
by ${event[1]} ${event[4] ? html`${event[4]}` : ''}
${event[3]}
`)}
+
Document hash
0x4a7b8f29c91e3d2a5b6c8e0f1d3c5a7b9d2e4f6a8c1e3d5f7b9c1e3a5b7d9f0e
Signers
${demoRecipients.map((recipient) => html`
${recipient.name.split(' ').map((part) => part[0]).slice(0, 2).join('')}
${recipient.name}
${recipient.email}
${icon('check', 12)}
`)}
${icon('shield', 13)} eIDAS Qualified · ESIGN Act compliant
Open-source verifier available. Anyone can independently validate this signature against the public ledger.
+
+ `; + } +} diff --git a/ts_web/elements/sdig-workspace/sdig-workspace-compose.ts b/ts_web/elements/sdig-workspace/sdig-workspace-compose.ts new file mode 100644 index 0000000..ca1ff3e --- /dev/null +++ b/ts_web/elements/sdig-workspace/sdig-workspace-compose.ts @@ -0,0 +1,369 @@ +import { DeesElement, state, html, customElement, type TemplateResult, css } from '@design.estate/dees-element'; +import { actionButton, demoFields, demoRecipients, fakeDocument, icon, pill, topBar, workspaceBaseStyles, workspaceDemoFrame, type IFieldPlacement, type IRecipient } from './sdig-workspace.shared.js'; + +declare global { + interface HTMLElementTagNameMap { + 'sdig-workspace-compose': SdigWorkspaceCompose; + } +} + +type TFieldDefinition = { + type: IFieldPlacement['type']; + icon: string; + label: string; + w: number; + h: number; +}; + +type TResizeHandle = 'n' | 'ne' | 'e' | 'se' | 's' | 'sw' | 'w' | 'nw'; + +type TFieldInteraction = { + fieldId: string; + mode: 'move' | 'resize'; + handle?: TResizeHandle; + startClientX: number; + startClientY: number; + startField: IFieldPlacement; + pageWidth: number; + pageHeight: number; +}; + +const fieldDefinitions: TFieldDefinition[] = [ + { type: 'signature', icon: 'sign', label: 'Signature', w: 200, h: 50 }, + { type: 'initials', icon: 'type', label: 'Initials', w: 120, h: 32 }, + { type: 'date', icon: 'calendar', label: 'Date', w: 120, h: 32 }, + { type: 'text', icon: 'type', label: 'Text field', w: 220, h: 32 }, + { type: 'check', icon: 'check', label: 'Checkbox', w: 120, h: 32 }, +]; + +const resizeHandles: TResizeHandle[] = ['n', 'ne', 'e', 'se', 's', 'sw', 'w', 'nw']; + +@customElement('sdig-workspace-compose') +export class SdigWorkspaceCompose extends DeesElement { + public static demo = () => workspaceDemoFrame(html``); + public static demoGroups = ['Signature Digital Workspace']; + + @state() private accessor step: number = 2; + @state() private accessor activeRecipient: number = 0; + @state() private accessor draggedRecipientId: number | null = null; + @state() private accessor selectedFieldId: string | null = null; + @state() private accessor recipients: IRecipient[] = [...demoRecipients]; + @state() private accessor fields: IFieldPlacement[] = [...demoFields]; + private draggedFieldDefinition: TFieldDefinition | null = null; + private draggedFieldGrabOffset: { x: number; y: number } | null = null; + private fieldInteraction: TFieldInteraction | null = null; + + public static styles = [workspaceBaseStyles, css` + .stepper { height: 44px; flex-shrink: 0; border-bottom: 1px solid var(--border-subtle); display: flex; align-items: center; padding: 0 24px; gap: 24px; overflow-x: auto; } + .step { display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--text-muted); white-space: nowrap; background: transparent; } + .step-number { width: 20px; height: 20px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--bg-input); border: 1px solid var(--border); color: var(--text-muted); font-size: 10px; font-weight: 700; } + .step.active { color: var(--text); font-weight: 500; } + .step.active .step-number { background: var(--accent); border-color: var(--accent); color: white; } + .step.done .step-number { background: var(--success); border-color: var(--success); color: white; } + .compose-workspace { flex: 1; display: flex; overflow: hidden; } + .palette { width: 260px; border-right: 1px solid var(--border-subtle); padding: 16px; background: var(--bg-el); overflow-y: auto; flex-shrink: 0; } + .right-panel { width: 280px; border-left: 1px solid var(--border-subtle); padding: 16px; background: var(--bg-el); overflow-y: auto; flex-shrink: 0; } + .field-tool { width: var(--tool-w); height: var(--tool-h); display: flex; align-items: center; gap: 8px; padding: 0 10px; background: color-mix(in srgb, var(--recipient-color) 8%, var(--bg-card)); border: 1.5px dashed var(--recipient-color); border-radius: 4px; font-size: 12px; color: var(--recipient-color); margin-bottom: 8px; cursor: grab; } + .field-tool:active { cursor: grabbing; } + .field-tool span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + .swatch { width: 10px; height: 10px; border-radius: 2px; background: var(--recipient-color, var(--accent)); flex-shrink: 0; } + .document-stage { flex: 1; overflow: auto; background: hsl(0 0% 8%); display: flex; flex-direction: column; align-items: center; padding: 32px; gap: 20px; } + :host-context(sdig-workspace[theme='light']) .document-stage { background: hsl(0 0% 92%); } + .recipient-line { cursor: grab; } + .recipient-line.dragging { opacity: 0.45; border-color: var(--accent); } + .page-drop-target { outline: 1px dashed transparent; outline-offset: 8px; } + .page-drop-target.drag-over { outline-color: var(--accent); } + .field-box { user-select: none; touch-action: none; } + .field-box.selected { z-index: 5; cursor: move; } + .field-content { width: 100%; height: 100%; display: flex; align-items: center; gap: 6px; pointer-events: none; overflow: hidden; } + .field-content span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + .resize-handle { position: absolute; z-index: 2; width: 9px; height: 9px; border-radius: 50%; background: var(--bg-card); border: 1.5px solid var(--field-color); box-shadow: 0 0 0 2px var(--bg-card); touch-action: none; } + .resize-handle.n { top: -6px; left: 50%; transform: translateX(-50%); cursor: ns-resize; } + .resize-handle.ne { top: -6px; right: -6px; cursor: nesw-resize; } + .resize-handle.e { right: -6px; top: 50%; transform: translateY(-50%); cursor: ew-resize; } + .resize-handle.se { right: -6px; bottom: -6px; cursor: nwse-resize; } + .resize-handle.s { bottom: -6px; left: 50%; transform: translateX(-50%); cursor: ns-resize; } + .resize-handle.sw { left: -6px; bottom: -6px; cursor: nesw-resize; } + .resize-handle.w { left: -6px; top: 50%; transform: translateY(-50%); cursor: ew-resize; } + .resize-handle.nw { left: -6px; top: -6px; cursor: nwse-resize; } + .field-editor { margin-top: 16px; padding: 12px; } + .field-editor-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; } + .field-control { display: flex; flex-direction: column; gap: 4px; font-size: 10px; color: var(--text-muted); } + .field-control.full { grid-column: 1 / -1; } + .field-control input, .field-control select { width: 100%; height: 30px; padding: 0 8px; border: 1px solid var(--border); border-radius: 5px; background: var(--bg-input); color: var(--text); font-size: 12px; outline: none; } + .field-control input:focus, .field-control select:focus { border-color: var(--accent); } + @media (max-width: 920px) { .compose-workspace { flex-direction: column; overflow: auto; } .palette, .right-panel { width: 100%; border: 0; border-bottom: 1px solid var(--border-subtle); } .document-page { width: 560px; } } + `]; + + public disconnectedCallback = async () => { + this.stopFieldInteraction(); + await super.disconnectedCallback(); + }; + + private recipientColor(id: number): string { + return this.recipients.find((recipient) => recipient.id === id)?.color || 'var(--accent)'; + } + + private fieldIcon(type: IFieldPlacement['type']): string { + if (type === 'signature') return 'sign'; + if (type === 'date') return 'calendar'; + if (type === 'check') return 'check'; + return 'type'; + } + + private fieldDefinition(type: IFieldPlacement['type']): TFieldDefinition { + return fieldDefinitions.find((definition) => definition.type === type) || fieldDefinitions[0]; + } + + private clamp(value: number, min: number, max: number): number { + return Math.max(min, Math.min(max, value)); + } + + private updateField(fieldId: string, patch: Partial) { + this.fields = this.fields.map((field) => field.id === fieldId ? { ...field, ...patch } : field); + } + + private updateSelectedField(patch: Partial) { + if (!this.selectedFieldId) return; + this.updateField(this.selectedFieldId, patch); + } + + private updateSelectedFieldNumber(property: 'x' | 'y' | 'w' | 'h', event: Event) { + const value = Number((event.target as HTMLInputElement).value); + if (!Number.isFinite(value)) return; + const min = property === 'w' || property === 'h' ? 16 : 0; + this.updateSelectedField({ [property]: Math.max(min, Math.round(value)) } as Partial); + } + + private resetSelectedFieldSize(field: IFieldPlacement) { + const definition = this.fieldDefinition(field.type); + this.updateSelectedField({ w: definition.w, h: definition.h }); + } + + private removeSelectedField() { + if (!this.selectedFieldId) return; + this.fields = this.fields.filter((field) => field.id !== this.selectedFieldId); + this.selectedFieldId = null; + } + + private handleDocumentClick = (event: MouseEvent) => { + const target = event.target as HTMLElement | null; + if (target?.closest('.field-box')) return; + this.selectedFieldId = null; + }; + + private startFieldInteraction(event: PointerEvent, field: IFieldPlacement, mode: TFieldInteraction['mode'], handle?: TResizeHandle) { + if (event.button !== 0) return; + const page = this.shadowRoot?.querySelector('.document-page') as HTMLElement | null; + if (!page) return; + const pageRect = page.getBoundingClientRect(); + this.selectedFieldId = field.id; + this.fieldInteraction = { + fieldId: field.id, + mode, + handle, + startClientX: event.clientX, + startClientY: event.clientY, + startField: { ...field }, + pageWidth: pageRect.width, + pageHeight: pageRect.height, + }; + event.preventDefault(); + event.stopPropagation(); + window.addEventListener('pointermove', this.handleFieldPointerMove, { passive: false }); + window.addEventListener('pointerup', this.stopFieldInteraction); + window.addEventListener('pointercancel', this.stopFieldInteraction); + } + + private startFieldMove(event: PointerEvent, field: IFieldPlacement) { + this.startFieldInteraction(event, field, 'move'); + } + + private startFieldResize(event: PointerEvent, field: IFieldPlacement, handle: TResizeHandle) { + this.startFieldInteraction(event, field, 'resize', handle); + } + + private handleFieldPointerMove = (event: PointerEvent) => { + if (!this.fieldInteraction) return; + event.preventDefault(); + const interaction = this.fieldInteraction; + const dx = event.clientX - interaction.startClientX; + const dy = event.clientY - interaction.startClientY; + const start = interaction.startField; + + if (interaction.mode === 'move') { + this.updateField(interaction.fieldId, { + x: Math.round(this.clamp(start.x + dx, 0, interaction.pageWidth - start.w)), + y: Math.round(this.clamp(start.y + dy, 0, interaction.pageHeight - start.h)), + }); + return; + } + + const minWidth = 32; + const minHeight = 24; + let x = start.x; + let y = start.y; + let w = start.w; + let h = start.h; + const handle = interaction.handle || 'se'; + + if (handle.includes('e')) { + w = this.clamp(start.w + dx, minWidth, interaction.pageWidth - start.x); + } + if (handle.includes('s')) { + h = this.clamp(start.h + dy, minHeight, interaction.pageHeight - start.y); + } + if (handle.includes('w')) { + x = this.clamp(start.x + dx, 0, start.x + start.w - minWidth); + w = start.x + start.w - x; + } + if (handle.includes('n')) { + y = this.clamp(start.y + dy, 0, start.y + start.h - minHeight); + h = start.y + start.h - y; + } + + this.updateField(interaction.fieldId, { + x: Math.round(x), + y: Math.round(y), + w: Math.round(w), + h: Math.round(h), + }); + }; + + private stopFieldInteraction = () => { + this.fieldInteraction = null; + window.removeEventListener('pointermove', this.handleFieldPointerMove); + window.removeEventListener('pointerup', this.stopFieldInteraction); + window.removeEventListener('pointercancel', this.stopFieldInteraction); + }; + + private reorderRecipient(targetId: number) { + if (this.draggedRecipientId === null || this.draggedRecipientId === targetId) return; + const next = [...this.recipients]; + const fromIndex = next.findIndex((recipient) => recipient.id === this.draggedRecipientId); + const toIndex = next.findIndex((recipient) => recipient.id === targetId); + if (fromIndex === -1 || toIndex === -1) return; + const [moved] = next.splice(fromIndex, 1); + next.splice(toIndex, 0, moved); + this.recipients = next.map((recipient, index) => ({ ...recipient, order: index + 1 })); + this.draggedRecipientId = null; + } + + private addFieldFromDrop(event: DragEvent) { + event.preventDefault(); + const page = event.currentTarget as HTMLElement; + page.classList.remove('drag-over'); + const transferredType = event.dataTransfer?.getData('application/x-signature-field') as IFieldPlacement['type']; + if (!this.draggedFieldDefinition && !transferredType) return; + const definition = this.draggedFieldDefinition || this.fieldDefinition(transferredType); + const transferredOffset = event.dataTransfer?.getData('application/x-signature-field-offset'); + const offset = this.draggedFieldGrabOffset || (transferredOffset ? JSON.parse(transferredOffset) as { x: number; y: number } : { x: definition.w / 2, y: definition.h / 2 }); + const rect = page.getBoundingClientRect(); + const x = Math.round(event.clientX - rect.left - offset.x); + const y = Math.round(event.clientY - rect.top - offset.y); + const nextField: IFieldPlacement = { + id: `field_${Date.now()}`, + type: definition.type, + x: Math.max(0, Math.min(Math.max(0, rect.width - definition.w), x)), + y: Math.max(0, Math.min(Math.max(0, rect.height - definition.h), y)), + w: definition.w, + h: definition.h, + page: 1, + recipient: this.activeRecipient, + label: definition.label, + }; + this.fields = [...this.fields, nextField]; + this.selectedFieldId = nextField.id; + this.draggedFieldDefinition = null; + this.draggedFieldGrabOffset = null; + } + + private startFieldToolDrag(event: DragEvent, fieldType: TFieldDefinition) { + const toolRect = (event.currentTarget as HTMLElement).getBoundingClientRect(); + const offset = { + x: Math.round(event.clientX - toolRect.left), + y: Math.round(event.clientY - toolRect.top), + }; + this.draggedFieldDefinition = fieldType; + this.draggedFieldGrabOffset = offset; + event.dataTransfer?.setData('application/x-signature-field', fieldType.type); + event.dataTransfer?.setData('application/x-signature-field-offset', JSON.stringify(offset)); + if (event.dataTransfer) event.dataTransfer.effectAllowed = 'copy'; + } + + private endFieldToolDrag() { + this.draggedFieldDefinition = null; + this.draggedFieldGrabOffset = null; + } + + private renderFieldEditor(field: IFieldPlacement): TemplateResult { + return html` +
+
+
Field editor
+ ${pill(this.fieldDefinition(field.type).label, 'info', true)} +
+
+ + + + + + +
+
+ + +
+
+ `; + } + + private renderResizeHandles(field: IFieldPlacement): TemplateResult { + return html`${resizeHandles.map((handle) => html` this.startFieldResize(event, field, handle)}>`)}`; + } + + private renderStepper(): TemplateResult { + const labels = ['Upload', 'Place fields', 'Recipients & routing', 'Review & send']; + return html` +
+ ${labels.map((label, index) => { + const stepNumber = index + 1; + return html``; + })} +
doc_8mK3pL · 14 pages · 2.4 MB +
+ `; + } + + public render(): TemplateResult { + const selectedField = this.fields.find((field) => field.id === this.selectedFieldId); + + return html` + ${topBar({ breadcrumb: ['signature.digital', 'Inbox', 'Compose'], title: 'Master Services Agreement', subtitle: pill('Draft · auto-saved'), actions: html`${actionButton('Save draft', 'ghost')}${actionButton('Preview', 'outline', 'eye')}${actionButton('Send for signature', 'primary', 'send')}` })} + ${this.renderStepper()} +
+
+
Drag onto document
+ ${fieldDefinitions.map((fieldType) => html`
this.startFieldToolDrag(event, fieldType)} @dragend=${() => this.endFieldToolDrag()}>${icon(fieldType.icon, 14)}${fieldType.label}
`)} +
+
Active for
+ ${this.recipients.map((recipient) => html`
this.activeRecipient = recipient.id}>${recipient.name.split(' ')[0]}${this.fields.filter((field) => field.recipient === recipient.id).length}
`)} +
+
+
{ event.preventDefault(); if (event.dataTransfer) event.dataTransfer.dropEffect = 'copy'; (event.currentTarget as HTMLElement).classList.add('drag-over'); }} @dragleave=${(event: DragEvent) => (event.currentTarget as HTMLElement).classList.remove('drag-over')} @drop=${(event: DragEvent) => this.addFieldFromDrop(event)}> + ${fakeDocument()} + ${this.fields.map((field) => html`
this.selectedFieldId = field.id} @pointerdown=${(event: PointerEvent) => this.startFieldMove(event, field)}>
${icon(this.fieldIcon(field.type), 12)}${field.label}
${this.selectedFieldId === field.id ? this.renderResizeHandles(field) : ''}
`)} +
Page 1 of 14
+
+
${actionButton('Prev', 'outline')}${html`1 / 14`}${actionButton('Next', 'outline')}
+
+
+
Signing order · drag to reorder
+ ${this.recipients.map((recipient) => html`
this.draggedRecipientId = recipient.id} @dragover=${(event: DragEvent) => event.preventDefault()} @drop=${() => this.reorderRecipient(recipient.id)} @dragend=${() => this.draggedRecipientId = null}>${recipient.order}${recipient.name.split(' ').map((part) => part[0]).slice(0, 2).join('')}
${recipient.name}
${recipient.email}
${icon('more', 12)}
`)} + ${selectedField ? this.renderFieldEditor(selectedField) : ''} +
+
+ `; + } +} diff --git a/ts_web/elements/sdig-workspace/sdig-workspace-developers.ts b/ts_web/elements/sdig-workspace/sdig-workspace-developers.ts new file mode 100644 index 0000000..4cfa7d7 --- /dev/null +++ b/ts_web/elements/sdig-workspace/sdig-workspace-developers.ts @@ -0,0 +1,47 @@ +import { DeesElement, html, customElement, type TemplateResult, css } from '@design.estate/dees-element'; +import { actionButton, icon, pill, topBar, workspaceBaseStyles, workspaceDemoFrame } from './sdig-workspace.shared.js'; + +declare global { + interface HTMLElementTagNameMap { + 'sdig-workspace-developers': SdigWorkspaceDevelopers; + } +} + +@customElement('sdig-workspace-developers') +export class SdigWorkspaceDevelopers extends DeesElement { + public static demo = () => workspaceDemoFrame(html``); + public static demoGroups = ['Signature Digital Workspace']; + + public static styles = [workspaceBaseStyles, css` + .developer-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 20px; } + .stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; } + .metric-card { padding: 14px; } + .metric-value { font-family: 'Plus Jakarta Sans', Inter, sans-serif; font-size: 22px; font-weight: 600; letter-spacing: -0.02em; } + pre.code { margin: 0; padding: 16px; background: var(--bg-el); border: 1px solid var(--border-subtle); border-radius: 6px; font-size: 12px; line-height: 1.7; color: var(--text-sec); overflow: auto; } + @media (max-width: 920px) { .developer-grid, .stats-grid { grid-template-columns: 1fr; } } + `]; + + public render(): TemplateResult { + return html` + ${topBar({ breadcrumb: ['signature.digital', 'Developers'], title: 'Developers', subtitle: pill('API · v0.42', 'info', true), actions: html`${actionButton('View on GitHub', 'outline', 'github')}${actionButton('New API key', 'primary', 'plus')}` })} +
+
+
Send a document in 8 linesnode
import { Signature } from '@signature.digital/sdk';
+
+const sig = new Signature(process.env.SIGD_KEY);
+
+await sig.documents.send({
+  file: './msa.pdf',
+  recipients: [{ name: 'Sarah Chen', email: 'sarah@acme.com' }],
+  fields: 'auto',
+});
+
${[['Requests this month', '14,892', '+8.2%'], ['P95 latency', '142ms', '-12ms'], ['Error rate', '0.04%', '✓']].map((metric) => html`
${metric[1]}
${metric[0]}
${metric[2]}
`)}
+
+
+
${icon('github', 14)}signature-digital/core
MIT-licensed. Self-host on your own infra, or use signature.digital cloud.
+
Self-host status
${[['Docker image', 'ghcr.io/signature-digital'], ['Helm chart', 'v0.42.1'], ['Postgres ≥ 14', 'required'], ['S3-compatible', 'optional']].map((row) => html`
${row[0]}${row[1]}
`)}
+
+
+ `; + } +} diff --git a/ts_web/elements/sdig-workspace/sdig-workspace-inbox.ts b/ts_web/elements/sdig-workspace/sdig-workspace-inbox.ts new file mode 100644 index 0000000..e9da5a3 --- /dev/null +++ b/ts_web/elements/sdig-workspace/sdig-workspace-inbox.ts @@ -0,0 +1,117 @@ +import { DeesElement, property, state, html, customElement, type TemplateResult, css } from '@design.estate/dees-element'; +import { actionButton, demoDocuments, icon, pill, requestWorkspaceView, topBar, workspaceBaseStyles, type IDocumentRow, type TDensity } from './sdig-workspace.shared.js'; +import { workspaceDemoFrame } from './sdig-workspace.shared.js'; + +declare global { + interface HTMLElementTagNameMap { + 'sdig-workspace-inbox': SdigWorkspaceInbox; + } +} + +@customElement('sdig-workspace-inbox') +export class SdigWorkspaceInbox extends DeesElement { + public static demo = () => workspaceDemoFrame(html``); + public static demoGroups = ['Signature Digital Workspace']; + + @property({ type: String }) public accessor density: TDensity = 'comfortable'; + @state() private accessor filter: string = 'all'; + @state() private accessor search: string = ''; + + public static styles = [workspaceBaseStyles, css` + .filterbar { padding: 14px 24px; border-bottom: 1px solid var(--border-subtle); display: flex; align-items: center; gap: 8px; } + .searchbox { display: flex; align-items: center; gap: 8px; padding: 0 10px; height: 32px; width: 280px; background: var(--bg-input); border: 1px solid var(--border); border-radius: 6px; } + .searchbox input { flex: 1; min-width: 0; background: transparent; border: none; outline: none; color: var(--text); font-size: 12px; } + .segmented { display: flex; gap: 2px; padding: 2px; background: var(--bg-el); border-radius: 6px; border: 1px solid var(--border-subtle); } + .segmented button { padding: 4px 10px; font-size: 11px; font-weight: 500; border-radius: 4px; background: transparent; color: var(--text-muted); display: inline-flex; align-items: center; gap: 5px; } + .segmented button.active { background: var(--bg-card); color: var(--text); box-shadow: inset 0 0 0 1px var(--border); } + .doc-table { min-width: 880px; } + .doc-head, .doc-row { display: grid; grid-template-columns: 32px minmax(220px,2.4fr) 150px 160px 90px 60px 32px; align-items: center; gap: 14px; padding: 0 16px; } + .doc-head { height: 36px; border-bottom: 1px solid var(--border-subtle); color: var(--text-dim); font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; } + .doc-row { height: 60px; border-bottom: 1px solid var(--border-subtle); cursor: pointer; transition: background 0.1s ease; } + .doc-row.compact { height: 48px; } + .doc-row:last-child { border-bottom: 0; } + .doc-row:hover { background: var(--row-hover); } + .doc-icon { width: 28px; height: 32px; border-radius: 4px; background: var(--bg-input); border: 1px solid var(--border); display: flex; align-items: center; justify-content: center; } + .doc-title { font-size: 13px; color: var(--text); font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + .doc-meta { margin-top: 2px; font-size: 11px; color: var(--text-muted); } + .recipient-stack { display: flex; align-items: center; } + .recipient-dot { width: 22px; height: 22px; border-radius: 50%; background: var(--bg-input); border: 1.5px solid var(--border); margin-left: -6px; font-size: 9px; font-weight: 600; color: var(--text-sec); display: flex; align-items: center; justify-content: center; } + .recipient-dot:first-child { margin-left: 0; } + .recipient-dot.signed { border-color: var(--success); color: var(--success); background: var(--bg-el); } + .stats-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 24px; } + .metric-card { padding: 16px; } + .metric-value { font-family: 'Plus Jakarta Sans', Inter, sans-serif; font-size: 22px; font-weight: 600; letter-spacing: -0.02em; } + @media (max-width: 920px) { .filterbar { padding: 12px 16px; display: block; } .searchbox { width: 100%; margin-bottom: 10px; } .stats-grid { grid-template-columns: 1fr; } } + `]; + + private get filteredDocuments(): IDocumentRow[] { + return demoDocuments + .filter((doc) => this.filter === 'all' || doc.status === this.filter) + .filter((doc) => !this.search || doc.title.toLowerCase().includes(this.search.toLowerCase())); + } + + private statusPill(status: IDocumentRow['status']): TemplateResult { + const map = { + awaiting: ['warning', 'awaiting signature'], + signed: ['success', 'completed'], + draft: ['default', 'draft'], + declined: ['error', 'declined'], + } as const; + const [tone, label] = map[status]; + return pill(label, tone, true); + } + + private openDocument(doc: IDocumentRow) { + requestWorkspaceView(this, doc.status === 'signed' ? 'audit' : 'sign'); + } + + public render(): TemplateResult { + const filters = [ + { id: 'all', label: 'All', count: demoDocuments.length }, + { id: 'awaiting', label: 'Awaiting', count: demoDocuments.filter((doc) => doc.status === 'awaiting').length }, + { id: 'signed', label: 'Completed', count: demoDocuments.filter((doc) => doc.status === 'signed').length }, + { id: 'draft', label: 'Drafts', count: demoDocuments.filter((doc) => doc.status === 'draft').length }, + { id: 'declined', label: 'Declined', count: demoDocuments.filter((doc) => doc.status === 'declined').length }, + ]; + + return html` + ${topBar({ + breadcrumb: ['signature.digital', 'Lossless GmbH', 'Inbox'], + title: 'Inbox', + subtitle: pill(`${demoDocuments.filter((doc) => doc.status === 'awaiting').length} need attention`, 'info'), + actions: html`${actionButton('Import', 'outline', 'upload')}${actionButton('New document', 'primary', 'plus', () => requestWorkspaceView(this, 'compose'))}`, + })} +
+ +
+
${filters.map((filter) => html``)}
+
+
+
+
+
DocumentStatusRecipientsDeadlinePages
+ ${this.filteredDocuments.map((doc) => html` +
this.openDocument(doc)}> +
${icon('file', 14)}
+
${doc.title}
${doc.id} · ${doc.sender} · ${doc.updated}
+
${this.statusPill(doc.status)}
+
${doc.recipients.slice(0, 4).map((recipient) => html`${recipient.initials}`)}
${doc.recipients.filter((recipient) => recipient.signed).length}/${doc.recipients.length}
+
${doc.deadline ? html`${icon('clock', 11)} ${doc.deadline}` : '—'}
+
${doc.pages}
+
${icon('more', 14)}
+
+ `)} +
+
+
+ ${[ + { label: 'Sent this month', value: '127', delta: '+24%', icon: 'send' }, + { label: 'Avg time to sign', value: '4.2h', delta: '-18%', icon: 'clock' }, + { label: 'Completion rate', value: '94.1%', delta: '+2.1%', icon: 'check' }, + { label: 'API signatures', value: '2,481', delta: '+312', icon: 'code' }, + ].map((metric) => html`
${icon(metric.icon, 14)}${metric.delta}
${metric.value}
${metric.label}
`)} +
+
+ `; + } +} diff --git a/ts_web/elements/sdig-workspace/sdig-workspace-placeholder.ts b/ts_web/elements/sdig-workspace/sdig-workspace-placeholder.ts new file mode 100644 index 0000000..6173e34 --- /dev/null +++ b/ts_web/elements/sdig-workspace/sdig-workspace-placeholder.ts @@ -0,0 +1,22 @@ +import { DeesElement, property, html, customElement, type TemplateResult } from '@design.estate/dees-element'; +import { icon, pill, topBar, workspaceBaseStyles, workspaceDemoFrame } from './sdig-workspace.shared.js'; + +declare global { + interface HTMLElementTagNameMap { + 'sdig-workspace-placeholder': SdigWorkspacePlaceholder; + } +} + +@customElement('sdig-workspace-placeholder') +export class SdigWorkspacePlaceholder extends DeesElement { + public static demo = () => workspaceDemoFrame(html``); + public static demoGroups = ['Signature Digital Workspace']; + + @property({ type: String }) public accessor label: string = 'Section'; + @property({ type: String }) public accessor subtitle: string = 'Coming soon'; + public static styles = [workspaceBaseStyles]; + + public render(): TemplateResult { + return html`${topBar({ breadcrumb: ['signature.digital', this.label], title: this.label, subtitle: pill('coming soon') })}
${icon('folder', 32)}
${this.label}
${this.subtitle}
`; + } +} diff --git a/ts_web/elements/sdig-workspace/sdig-workspace-sign.ts b/ts_web/elements/sdig-workspace/sdig-workspace-sign.ts new file mode 100644 index 0000000..5a76e82 --- /dev/null +++ b/ts_web/elements/sdig-workspace/sdig-workspace-sign.ts @@ -0,0 +1,91 @@ +import { DeesElement, state, html, customElement, type TemplateResult, css } from '@design.estate/dees-element'; +import { actionButton, demoFields, fakeDocument, icon, pill, workspaceBaseStyles, workspaceDemoFrame, type IFieldPlacement } from './sdig-workspace.shared.js'; + +declare global { + interface HTMLElementTagNameMap { + 'sdig-workspace-sign': SdigWorkspaceSign; + } +} + +@customElement('sdig-workspace-sign') +export class SdigWorkspaceSign extends DeesElement { + public static demo = () => workspaceDemoFrame(html``); + public static demoGroups = ['Signature Digital Workspace']; + + @state() private accessor activeFieldId: string = 'f1'; + @state() private accessor signedFieldIds: string[] = []; + + public static styles = [workspaceBaseStyles, css` + .recipient-header { height: 56px; flex-shrink: 0; padding: 0 24px; background: var(--bg-card); border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; } + .logomark { width: 28px; height: 28px; border-radius: 6px; background: var(--bg-el); border: 1px solid var(--border-strong); display: inline-flex; align-items: center; justify-content: center; font-family: 'Plus Jakarta Sans', Inter, sans-serif; font-weight: 700; position: relative; } + .logomark::after { content: ''; position: absolute; right: 5px; bottom: 5px; width: 4px; height: 4px; border-radius: 50%; background: var(--accent); } + .sign-layout { flex: 1; display: flex; overflow: hidden; background: hsl(0 0% 96%); color: hsl(0 0% 10%); } + :host-context(sdig-workspace[theme='dark']) .sign-layout { background: hsl(0 0% 6%); color: hsl(0 0% 95%); } + .sign-body { flex: 1; overflow: auto; padding: 32px 32px 80px; display: flex; flex-direction: column; align-items: center; gap: 20px; } + .sign-panel { width: 320px; border-left: 1px solid var(--border); background: var(--bg-card); padding: 20px; overflow: auto; flex-shrink: 0; } + @media (max-width: 920px) { .recipient-header .actions { display: none; } .sign-layout { flex-direction: column; overflow: auto; } .sign-panel { width: 100%; border-left: 0; border-top: 1px solid var(--border); } .document-page { width: 560px; } } + `]; + + private get signFields() { + return demoFields.slice(0, 3); + } + + private fieldIcon(type: IFieldPlacement['type']): string { + if (type === 'signature') return 'sign'; + if (type === 'date') return 'calendar'; + return 'type'; + } + + private signField(fieldId: string) { + if (!this.signedFieldIds.includes(fieldId)) { + this.signedFieldIds = [...this.signedFieldIds, fieldId]; + } + const next = this.signFields.find((field) => !this.signedFieldIds.includes(field.id) && field.id !== fieldId); + if (next) this.activeFieldId = next.id; + } + + private renderSignedValue(field: IFieldPlacement): TemplateResult { + if (field.type === 'signature') return html`Sarah Chen`; + if (field.type === 'date') return html`2026-05-02`; + return html`Sarah Chen`; + } + + public render(): TemplateResult { + const completed = this.signedFieldIds.length; + const progress = Math.round((completed / this.signFields.length) * 100); + const activeField = this.signFields.find((field) => field.id === this.activeFieldId) || this.signFields[0]; + + return html` +
+
s
Master Services Agreement
From Lossless GmbH · doc_8mK3pL · 14 pages
+
${icon('shield', 12)} Verified sender · DKIM ✓${actionButton('Decline', 'outline')}${actionButton('PDF', 'outline', 'download')}
+
+
+
+
+
+ ${fakeDocument()} + ${this.signFields.map((field) => { + const filled = this.signedFieldIds.includes(field.id); + const active = this.activeFieldId === field.id && !filled; + return html`
!filled ? this.signField(field.id) : undefined}>${filled ? this.renderSignedValue(field) : html`${icon(this.fieldIcon(field.type), 12)}${active ? html`` : ''}${field.label}`}
`; + })} +
Page 1 of 14
+
+
+
+
SC
Hi, Sarah
sarah@acme.com
+
Your progress
${completed} / ${this.signFields.length}
${this.signFields.length - completed === 0 ? 'All fields complete' : `${this.signFields.length - completed} fields remaining`}
+
Step by step
+ ${this.signFields.map((field, index) => { + const filled = this.signedFieldIds.includes(field.id); + const active = this.activeFieldId === field.id && !filled; + return html`
!filled ? this.activeFieldId = field.id : undefined}>${filled ? '✓' : index + 1}
${field.label}
${field.type} · page ${field.page}
${active ? icon('chevronRight', 12) : ''}
`; + })} + +
By signing, you agree to the ESIGN Act & eIDAS terms.
IP 81.221.4.18 · Brussels, BE
+
+
+ `; + } +} diff --git a/ts_web/elements/sdig-workspace/sdig-workspace.shared.ts b/ts_web/elements/sdig-workspace/sdig-workspace.shared.ts new file mode 100644 index 0000000..28b5e9d --- /dev/null +++ b/ts_web/elements/sdig-workspace/sdig-workspace.shared.ts @@ -0,0 +1,440 @@ +import { html, css, type TemplateResult } from '@design.estate/dees-element'; +import '@design.estate/dees-catalog/ts_web/elements/00group-utility/dees-icon/dees-icon.js'; + +export type TWorkspaceView = + | 'inbox' + | 'compose' + | 'sign' + | 'audit' + | 'developers' + | 'templates' + | 'team' + | 'settings'; + +export type TWorkspaceTheme = 'dark' | 'light'; +export type TDensity = 'compact' | 'comfortable'; + +export interface IDocumentRow { + id: string; + title: string; + status: 'awaiting' | 'signed' | 'draft' | 'declined'; + recipients: Array<{ name: string; initials: string; signed: boolean }>; + updated: string; + sender: string; + pages: number; + deadline?: string; +} + +export interface IRecipient { + id: number; + name: string; + email: string; + color: string; + order: number; +} + +export interface IFieldPlacement { + id: string; + type: 'signature' | 'date' | 'text' | 'initials' | 'check'; + x: number; + y: number; + w: number; + h: number; + page: number; + recipient: number; + label: string; +} + +export const demoDocuments: IDocumentRow[] = [ + { id: 'doc_8mK3pL', title: 'Master Services Agreement - Acme Corp', status: 'awaiting', recipients: [{ name: 'Sarah Chen', initials: 'SC', signed: true }, { name: 'David Park', initials: 'DP', signed: false }, { name: 'You', initials: 'PK', signed: true }], updated: '2 min ago', sender: 'You', pages: 14, deadline: 'May 5' }, + { id: 'doc_2nQ7vR', title: 'NDA - Helio Robotics', status: 'signed', recipients: [{ name: 'Marcus Tan', initials: 'MT', signed: true }, { name: 'You', initials: 'PK', signed: true }], updated: '1h ago', sender: 'You', pages: 3 }, + { id: 'doc_5tH1zM', title: 'Series B Term Sheet (Lead) v3', status: 'awaiting', recipients: [{ name: 'Anna Lindqvist', initials: 'AL', signed: false }, { name: 'Roy Banerjee', initials: 'RB', signed: true }, { name: 'You', initials: 'PK', signed: false }], updated: '3h ago', sender: 'Sequoia Counsel', pages: 22, deadline: 'May 3' }, + { id: 'doc_9wB4cX', title: 'Employment Offer - Mira Abebe', status: 'declined', recipients: [{ name: 'Mira Abebe', initials: 'MA', signed: false }, { name: 'You', initials: 'PK', signed: true }], updated: 'yesterday', sender: 'You', pages: 6 }, + { id: 'doc_1jF6kY', title: 'Lease - Berlin office Q3', status: 'draft', recipients: [{ name: 'You', initials: 'PK', signed: false }], updated: 'yesterday', sender: 'You', pages: 11 }, + { id: 'doc_4dN8sP', title: 'API Reseller Agreement - Northwind', status: 'signed', recipients: [{ name: 'Lila Brooks', initials: 'LB', signed: true }, { name: 'You', initials: 'PK', signed: true }], updated: '2 days ago', sender: 'You', pages: 8 }, +]; + +export const demoRecipients: IRecipient[] = [ + { id: 0, name: 'Sarah Chen', email: 'sarah@acme.com', color: '#60a5fa', order: 1 }, + { id: 1, name: 'David Park', email: 'd.park@acme.com', color: '#fbbf24', order: 2 }, + { id: 2, name: 'Philipp K.', email: 'philipp@lossless.com', color: '#3b82f6', order: 3 }, +]; + +export const demoFields: IFieldPlacement[] = [ + { id: 'f1', type: 'signature', x: 60, y: 580, w: 200, h: 50, page: 1, recipient: 0, label: 'Signature' }, + { id: 'f2', type: 'date', x: 320, y: 580, w: 120, h: 30, page: 1, recipient: 0, label: 'Date' }, + { id: 'f3', type: 'text', x: 60, y: 460, w: 280, h: 30, page: 1, recipient: 1, label: 'Full legal name' }, + { id: 'f4', type: 'signature', x: 60, y: 700, w: 200, h: 50, page: 1, recipient: 1, label: 'Counter-signature' }, +]; + +export const workspaceBaseStyles = css` + :host { + display: flex; + flex-direction: column; + height: 100%; + min-height: 0; + color: var(--text); + background: var(--bg); + font-family: Geist, Inter, Roboto, -apple-system, BlinkMacSystemFont, sans-serif; + font-feature-settings: 'cv11', 'tnum', 'cv05' 1; + } + + * { box-sizing: border-box; } + button, input, textarea { font: inherit; } + button { border: 0; cursor: pointer; } + dees-icon { flex-shrink: 0; } + + .mono { + font-family: 'Intel One Mono', ui-monospace, SFMono-Regular, Menlo, monospace; + font-variant-numeric: tabular-nums; + } + + .topbar { + height: 56px; + flex-shrink: 0; + padding: 0 24px; + display: flex; + align-items: center; + justify-content: space-between; + border-bottom: 1px solid var(--border-subtle); + background: var(--bg); + gap: 12px; + } + + .breadcrumb { + font-size: 11px; + color: var(--text-muted); + display: flex; + align-items: center; + gap: 5px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + + .top-title { + display: flex; + align-items: center; + gap: 10px; + min-width: 0; + } + + .top-title > span:first-child { + font-family: 'Plus Jakarta Sans', Inter, sans-serif; + font-size: 18px; + font-weight: 600; + letter-spacing: -0.02em; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + + .actions { + display: flex; + align-items: center; + gap: 8px; + flex-shrink: 0; + } + + .btn { + height: 34px; + padding: 0 14px; + border-radius: 6px; + font-size: 13px; + font-weight: 500; + letter-spacing: -0.01em; + display: inline-flex; + align-items: center; + justify-content: center; + gap: 6px; + white-space: nowrap; + transition: all 0.12s ease; + } + + .btn.small { + height: 28px; + padding: 0 10px; + font-size: 12px; + } + + .btn.primary { + background: var(--accent); + color: white; + border: 1px solid var(--accent); + } + + .btn.outline { + background: transparent; + color: var(--text); + border: 1px solid var(--border); + } + + .btn.ghost { + background: transparent; + color: var(--text); + border: 1px solid transparent; + } + + .btn:hover { background-color: var(--hover); } + + .pill { + display: inline-flex; + align-items: center; + gap: 5px; + padding: 2px 8px; + border-radius: 999px; + background: var(--bg-el); + color: var(--text-sec); + font-size: 11px; + font-weight: 500; + white-space: nowrap; + } + + .pill::before { + content: ''; + width: 5px; + height: 5px; + display: none; + border-radius: 50%; + background: currentColor; + } + + .pill.dot::before { display: block; } + .pill.success { background: rgba(34,197,94,0.12); color: #4ade80; } + .pill.warning { background: rgba(245,158,11,0.12); color: #fbbf24; } + .pill.error { background: rgba(239,68,68,0.12); color: #f87171; } + .pill.info { background: rgba(59,130,246,0.12); color: #60a5fa; } + + .content-scroll { + flex: 1; + overflow: auto; + padding: 24px; + } + + .card { + background: var(--bg-card); + border: 1px solid var(--border); + border-radius: 8px; + overflow: hidden; + } + + .label-upper { + font-size: 10px; + font-weight: 600; + color: var(--text-dim); + text-transform: uppercase; + letter-spacing: 0.08em; + margin-bottom: 10px; + } + + .avatar { + width: 26px; + height: 26px; + border-radius: 50%; + background: var(--accent); + color: white; + font-size: 11px; + font-weight: 700; + display: inline-flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + } + + .document-page { + position: relative; + width: 600px; + min-height: 800px; + background: white; + border-radius: 4px; + box-shadow: 0 8px 32px rgba(0,0,0,0.35), 0 0 0 1px rgba(255,255,255,0.05); + color: hsl(0 0% 20%); + } + + .fake-document { + padding: 48px 56px; + font-size: 11px; + line-height: 1.7; + } + + .fake-title { + font-family: 'Plus Jakarta Sans', Inter, sans-serif; + font-size: 18px; + font-weight: 700; + margin-bottom: 4px; + color: hsl(0 0% 10%); + } + + .fake-line { + height: 6px; + background: hsl(0 0% 82%); + margin-bottom: 7px; + border-radius: 1px; + } + + .fake-line.heavy { background: hsl(0 0% 65%); } + .fake-line.short { width: 70%; } + + .field-box { + position: absolute; + left: var(--x); + top: var(--y); + width: var(--w); + height: var(--h); + background: color-mix(in srgb, var(--field-color) 13%, transparent); + border: 1.5px dashed var(--field-color); + border-radius: 3px; + cursor: pointer; + display: flex; + align-items: center; + gap: 6px; + padding: 0 8px; + font-size: 10px; + font-weight: 500; + color: var(--field-color); + } + + .field-box.selected { + border-style: solid; + box-shadow: 0 0 0 4px color-mix(in srgb, var(--field-color) 18%, transparent); + } + + .recipient-line { + display: flex; + align-items: center; + gap: 8px; + padding: 8px 10px; + background: var(--bg-card); + border: 1px solid var(--border); + border-radius: 6px; + font-size: 12px; + color: var(--text-sec); + margin-bottom: 6px; + } + + .recipient-line.active { + background: var(--hover); + border-color: var(--border-strong); + } + + .progress-track { + height: 4px; + background: var(--bg-el); + flex-shrink: 0; + } + + .progress-fill { + height: 100%; + background: var(--accent); + transition: width 0.4s ease; + } + + @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.35; } } + + @media (max-width: 920px) { + .topbar { padding: 0 16px; } + .actions { display: none; } + .content-scroll { padding: 16px; } + } +`; + +export function icon(name: string, size = 14): TemplateResult { + const iconMap: Record = { + inbox: 'lucide:Inbox', plus: 'lucide:Plus', folder: 'lucide:Folder', shield: 'lucide:Shield', code: 'lucide:Code2', + user: 'lucide:User', settings: 'lucide:Settings', upload: 'lucide:Upload', file: 'lucide:FileText', sign: 'lucide:PenTool', + clock: 'lucide:Clock', search: 'lucide:Search', more: 'lucide:MoreHorizontal', send: 'lucide:Send', check: 'lucide:Check', + eye: 'lucide:Eye', calendar: 'lucide:Calendar', type: 'lucide:Type', download: 'lucide:Download', hash: 'lucide:Hash', + github: 'lucide:GitBranch', git: 'lucide:GitBranch', server: 'lucide:Server', star: 'lucide:Star', sparkle: 'lucide:Sparkles', + chevronRight: 'lucide:ChevronRight', chevronDown: 'lucide:ChevronDown', x: 'lucide:X', activity: 'lucide:Activity', + }; + return html``; +} + +export function pill(label: string, tone: 'default' | 'success' | 'warning' | 'error' | 'info' = 'default', dot = false): TemplateResult { + return html`${label}`; +} + +export function actionButton(label: string, variant: 'primary' | 'outline' | 'ghost' = 'outline', iconName?: string, onClick?: () => void): TemplateResult { + return html``; +} + +export function topBar(config: { breadcrumb: string[]; title: string; subtitle?: TemplateResult; actions?: TemplateResult }): TemplateResult { + return html` +
+
+ +
${config.title}${config.subtitle || ''}
+
+
${config.actions || ''}
+
+ `; +} + +export function workspaceDemoFrame(content: TemplateResult, theme: TWorkspaceTheme = 'dark'): TemplateResult { + const darkVars = ` + --accent: #3b82f6; + --bg: hsl(0 0% 3.9%); + --bg-el: hsl(0 0% 6%); + --bg-card: hsl(0 0% 7%); + --bg-input: hsl(0 0% 9%); + --border: hsl(0 0% 14.9%); + --border-subtle: hsl(0 0% 11%); + --border-strong: hsl(0 0% 20%); + --text: hsl(0 0% 98%); + --text-sec: hsl(0 0% 63.9%); + --text-muted: hsl(0 0% 48%); + --text-dim: hsl(0 0% 32%); + --hover: rgba(255,255,255,0.06); + --hover-subtle: rgba(255,255,255,0.03); + --row-hover: rgba(255,255,255,0.025); + --success: #22c55e; + --warning: #f59e0b; + --error: #ef4444; + `; + const lightVars = ` + --accent: #3b82f6; + --bg: hsl(0 0% 99%); + --bg-el: hsl(0 0% 97%); + --bg-card: hsl(0 0% 100%); + --bg-input: hsl(0 0% 98%); + --border: hsl(0 0% 90%); + --border-subtle: hsl(0 0% 93%); + --border-strong: hsl(0 0% 80%); + --text: hsl(0 0% 9%); + --text-sec: hsl(0 0% 32%); + --text-muted: hsl(0 0% 45%); + --text-dim: hsl(0 0% 62%); + --hover: rgba(0,0,0,0.04); + --hover-subtle: rgba(0,0,0,0.02); + --row-hover: rgba(0,0,0,0.02); + --success: #16a34a; + --warning: #d97706; + --error: #dc2626; + `; + + return html`
${content}
`; +} + +export function fakeDocument(): TemplateResult { + return html` +
+
Master Services Agreement
+
Effective: May 2, 2026 · Acme Corp ↔ Lossless GmbH
+ ${Array.from({ length: 18 }).map((_, index) => html`
`)} +
+ ${Array.from({ length: 8 }).map((_, index) => html`
`)} +
SIGNED ON BEHALF OF ACME CORP
+
SIGNED ON BEHALF OF LOSSLESS GMBH
+
+ `; +} + +export function requestWorkspaceView(element: HTMLElement, view: TWorkspaceView) { + element.dispatchEvent(new CustomEvent('workspace-view-request', { + detail: { view }, + bubbles: true, + composed: true, + })); +} diff --git a/ts_web/elements/sdig-workspace/sdig-workspace.ts b/ts_web/elements/sdig-workspace/sdig-workspace.ts new file mode 100644 index 0000000..e89a776 --- /dev/null +++ b/ts_web/elements/sdig-workspace/sdig-workspace.ts @@ -0,0 +1,175 @@ +import { DeesElement, property, state, html, customElement, type TemplateResult, css } from '@design.estate/dees-element'; +import { icon, type TDensity, type TWorkspaceTheme, type TWorkspaceView } from './sdig-workspace.shared.js'; +import './sdig-workspace-inbox.js'; +import './sdig-workspace-compose.js'; +import './sdig-workspace-sign.js'; +import './sdig-workspace-audit.js'; +import './sdig-workspace-developers.js'; +import './sdig-workspace-placeholder.js'; + +declare global { + interface HTMLElementTagNameMap { + 'sdig-workspace': SdigWorkspace; + } +} + +@customElement('sdig-workspace') +export class SdigWorkspace extends DeesElement { + public static demo = () => html``; + public static demoGroups = ['Signature Digital Workspace']; + + @property({ type: String }) public accessor accent: string = '#3b82f6'; + @property({ type: String }) public accessor density: TDensity = 'comfortable'; + @property({ type: String, reflect: true }) public accessor theme: TWorkspaceTheme = 'dark'; + @property({ type: String }) public accessor initialView: TWorkspaceView = 'inbox'; + @state() private accessor view: TWorkspaceView = 'inbox'; + + public connectedCallback = async () => { + await super.connectedCallback(); + this.view = this.initialView || 'inbox'; + this.addEventListener('workspace-view-request', this.handleViewRequest as EventListener); + }; + + public disconnectedCallback = async () => { + this.removeEventListener('workspace-view-request', this.handleViewRequest as EventListener); + await super.disconnectedCallback(); + }; + + public static styles = css` + :host { + display: block; + width: 100%; + height: 100%; + min-height: 720px; + --accent: #3b82f6; + --bg: hsl(0 0% 3.9%); + --bg-el: hsl(0 0% 6%); + --bg-card: hsl(0 0% 7%); + --bg-input: hsl(0 0% 9%); + --border: hsl(0 0% 14.9%); + --border-subtle: hsl(0 0% 11%); + --border-strong: hsl(0 0% 20%); + --text: hsl(0 0% 98%); + --text-sec: hsl(0 0% 63.9%); + --text-muted: hsl(0 0% 48%); + --text-dim: hsl(0 0% 32%); + --hover: rgba(255,255,255,0.06); + --hover-subtle: rgba(255,255,255,0.03); + --row-hover: rgba(255,255,255,0.025); + --success: #22c55e; + --warning: #f59e0b; + --error: #ef4444; + font-family: Geist, Inter, Roboto, -apple-system, BlinkMacSystemFont, sans-serif; + } + + :host([theme='light']) { + --bg: hsl(0 0% 99%); + --bg-el: hsl(0 0% 97%); + --bg-card: hsl(0 0% 100%); + --bg-input: hsl(0 0% 98%); + --border: hsl(0 0% 90%); + --border-subtle: hsl(0 0% 93%); + --border-strong: hsl(0 0% 80%); + --text: hsl(0 0% 9%); + --text-sec: hsl(0 0% 32%); + --text-muted: hsl(0 0% 45%); + --text-dim: hsl(0 0% 62%); + --hover: rgba(0,0,0,0.04); + --hover-subtle: rgba(0,0,0,0.02); + --row-hover: rgba(0,0,0,0.02); + --success: #16a34a; + --warning: #d97706; + --error: #dc2626; + } + + * { box-sizing: border-box; } + button { font: inherit; border: 0; cursor: pointer; } + .workspace { display: flex; height: 100%; min-height: 720px; background: var(--bg); color: var(--text); overflow: hidden; } + .sidebar { width: 220px; background: var(--bg); border-right: 1px solid var(--border-subtle); display: flex; flex-direction: column; flex-shrink: 0; height: 100%; } + .brand { padding: 14px 16px 12px; display: flex; align-items: center; gap: 8px; } + .logomark { width: 26px; height: 26px; border-radius: 6px; background: var(--bg-el); border: 1px solid var(--border-strong); display: inline-flex; align-items: center; justify-content: center; font-family: 'Plus Jakarta Sans', Inter, sans-serif; font-size: 13px; font-weight: 700; position: relative; } + .logomark::after, .wordmark::after { content: ''; display: inline-block; border-radius: 50%; background: var(--accent); } + .logomark::after { width: 4px; height: 4px; position: absolute; right: 5px; bottom: 5px; } + .wordmark { font-size: 13px; font-weight: 500; letter-spacing: -0.02em; white-space: nowrap; } + .wordmark .dot { color: var(--text-muted); } + .wordmark::after { width: 4px; height: 4px; margin-left: 3px; transform: translateY(-1px); } + .workspace-card { margin: 0 12px 8px; padding: 7px 10px; background: var(--bg-el); border: 1px solid var(--border-subtle); border-radius: 6px; display: flex; align-items: center; gap: 8px; } + .workspace-badge { width: 18px; height: 18px; border-radius: 4px; background: linear-gradient(135deg, var(--accent), hsl(280 70% 60%)); color: white; font-size: 10px; font-weight: 700; display: flex; align-items: center; justify-content: center; } + .workspace-name { font-size: 12px; font-weight: 500; line-height: 1.2; } + .workspace-plan { font-size: 10px; color: var(--text-muted); } + .nav-block { padding: 4px 0; } + .nav-item { display: flex; align-items: center; gap: 10px; padding: 7px 10px; margin: 1px 8px; border-radius: 6px; color: var(--text-muted); background: transparent; transition: all 0.1s ease; font-size: 13px; position: relative; width: calc(100% - 16px); text-align: left; } + .compact .nav-item { padding: 5px 10px; } + .nav-item:hover { background: var(--hover-subtle); color: var(--text-sec); } + .nav-item.active { background: var(--hover); color: var(--text); font-weight: 500; } + .nav-item.active::before { content: ''; position: absolute; left: -8px; width: 2px; height: 14px; border-radius: 2px; background: var(--accent); } + .nav-count { margin-left: auto; min-width: 18px; padding: 1px 6px; border-radius: 999px; background: var(--bg-el); color: var(--text-muted); font-size: 10px; text-align: center; } + .github-card { margin: 8px 12px; padding: 10px; border: 1px solid var(--border-subtle); border-radius: 6px; background: var(--bg-el); } + .sparkline { margin-top: 8px; display: flex; gap: 2px; align-items: flex-end; height: 18px; } + .sparkline span { flex: 1; background: var(--border-strong); border-radius: 1px; } + .sparkline span:nth-last-child(-n+4) { background: var(--accent); } + .user-card { padding: 8px 12px; border-top: 1px solid var(--border-subtle); display: flex; align-items: center; gap: 10px; } + .avatar { width: 26px; height: 26px; border-radius: 50%; background: var(--accent); color: white; font-size: 11px; font-weight: 700; display: flex; align-items: center; justify-content: center; } + .main { flex: 1; min-width: 0; display: flex; flex-direction: column; overflow: hidden; } + .view-host { flex: 1; min-height: 0; display: flex; flex-direction: column; } + .statusbar { height: 24px; flex-shrink: 0; border-top: 1px solid var(--border-subtle); background: var(--bg); display: flex; align-items: center; padding: 0 16px; gap: 16px; font-size: 10px; color: var(--text-dim); font-family: 'Intel One Mono', ui-monospace, SFMono-Regular, Menlo, monospace; } + @media (max-width: 920px) { .workspace { flex-direction: column; min-height: 100vh; } .sidebar { width: 100%; height: auto; border-right: 0; border-bottom: 1px solid var(--border-subtle); } .brand, .workspace-card, .github-card, .user-card { display: none; } .nav-block { display: flex; overflow-x: auto; padding: 8px; } .nav-item { width: auto; margin: 0 2px; } .statusbar { display: none; } } + `; + + private handleViewRequest = (event: CustomEvent<{ view: TWorkspaceView }>) => { + this.setView(event.detail.view); + }; + + private setView(viewArg: TWorkspaceView) { + this.view = viewArg; + this.dispatchEvent(new CustomEvent('view-change', { detail: { view: viewArg }, bubbles: true, composed: true })); + } + + private navButton(item: { id: TWorkspaceView; label: string; icon: string; count?: number }): TemplateResult { + return html``; + } + + private renderSidebar(): TemplateResult { + const navItems = [ + { id: 'inbox', label: 'Inbox', icon: 'inbox', count: 4 }, + { id: 'compose', label: 'Compose', icon: 'plus' }, + { id: 'templates', label: 'Templates', icon: 'folder', count: 12 }, + { id: 'audit', label: 'Audit Trail', icon: 'shield' }, + { id: 'developers', label: 'Developers', icon: 'code' }, + ] as Array<{ id: TWorkspaceView; label: string; icon: string; count?: number }>; + const lowerItems = [ + { id: 'team', label: 'Team', icon: 'user' }, + { id: 'settings', label: 'Settings', icon: 'settings' }, + ] as Array<{ id: TWorkspaceView; label: string; icon: string }>; + + return html` + + `; + } + + private renderView(): TemplateResult { + switch (this.view) { + case 'inbox': return html``; + case 'compose': return html``; + case 'sign': return html``; + case 'audit': return html``; + case 'developers': return html``; + case 'templates': return html``; + case 'team': return html``; + case 'settings': return html``; + default: return html``; + } + } + + public render(): TemplateResult { + return html`
${this.renderSidebar()}
${this.renderView()}
api.signature.digitaleu-central-14 sigs queued
Open Source · MITv0.42.1${icon('git', 11)} main
`; + } +} diff --git a/ts_web/plugins.ts b/ts_web/plugins.ts index 352ea13..678ca86 100644 --- a/ts_web/plugins.ts +++ b/ts_web/plugins.ts @@ -1,21 +1,3 @@ -// @signature.digital scope -import * as sdDemodata from '@signature.digital/tools/demodata'; -import * as sdInterfaces from '@signature.digital/tools/interfaces'; -import * as sdTools from '@signature.digital/tools'; - -export { - sdDemodata, - sdInterfaces, - sdTools, -} - -// @design.estate scope -import * as deesCatalog from '@design.estate/dees-catalog'; - -export { - deesCatalog, -} - // third party import signaturePadMod from 'signature_pad'; type signaturePadType = (typeof import('signature_pad'))['default']; @@ -23,4 +5,4 @@ const signaturePad = signaturePadMod as any as signaturePadType; export { signaturePad, -} \ No newline at end of file +} diff --git a/tsconfig.json b/tsconfig.json index 3327c2e..71c1c8f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -5,7 +5,8 @@ "module": "NodeNext", "moduleResolution": "NodeNext", "esModuleInterop": true, - "verbatimModuleSyntax": true + "verbatimModuleSyntax": true, + "types": ["node"] }, "exclude": [ "dist_*/**/*.d.ts"