diff --git a/.github/ISSUE_TEMPLATE/reward-task.yml b/.github/ISSUE_TEMPLATE/reward-task.yml index b9bc7c2..ed1dd20 100644 --- a/.github/ISSUE_TEMPLATE/reward-task.yml +++ b/.github/ISSUE_TEMPLATE/reward-task.yml @@ -4,6 +4,10 @@ title: '[Reward] ' labels: - reward body: + - type: markdown + attributes: + value: This form is created from https://github.com/idea2app/GitHub-reward + - type: textarea id: description attributes: @@ -11,6 +15,13 @@ body: validations: required: true + - type: input + id: source + attributes: + label: Task source + description: URL from an External System + placeholder: https://example.com/task/123 + - type: dropdown id: currency attributes: diff --git a/.github/scripts/count-reward.ts b/.github/scripts/count-reward.ts index cf2d419..f050092 100644 --- a/.github/scripts/count-reward.ts +++ b/.github/scripts/count-reward.ts @@ -1,3 +1,4 @@ +import { changeMonth, formatDate, makeDateRange } from 'npm:web-utility'; import { $, YAML } from 'npm:zx'; import { Reward } from './type.ts'; @@ -6,13 +7,14 @@ $.verbose = true; const rawTags = await $`git tag --list "reward-*" --format="%(refname:short) %(creatordate:short)"`; -const lastMonth = new Date(); -lastMonth.setMonth(lastMonth.getMonth() - 1); -const lastMonthStr = lastMonth.toJSON().slice(0, 7); - +const [startDate, endDate] = makeDateRange(formatDate(changeMonth(Date.now(), -1), 'YYYY-MM')); const rewardTags = rawTags.stdout .split('\n') - .filter(line => line.split(/\s+/)[1] >= lastMonthStr) + .filter(line => { + const thisDate = new Date(line.split(/\s+/)[1]); + + return startDate <= thisDate && thisDate < endDate; + }) .map(line => line.split(/\s+/)[0]); let rawYAML = ''; @@ -56,7 +58,7 @@ await $`git config user.name "github-actions[bot]"`; await $`git config user.email "github-actions[bot]@users.noreply.github.com"`; await $`git tag -a ${tagName} $(git rev-parse HEAD) -m ${summaryText}`; -await $`git push origin --tags --no-verify`; +await $`git push origin ${tagName} --no-verify`; await $`git config unset user.name`; await $`git config unset user.email`; diff --git a/.github/scripts/share-reward.ts b/.github/scripts/share-reward.ts index a2d919d..c217365 100644 --- a/.github/scripts/share-reward.ts +++ b/.github/scripts/share-reward.ts @@ -13,7 +13,8 @@ const [ issueNumber, payer, // GitHub username of the payer (provided by workflow, defaults to issue creator) currency, - reward + reward, + source ] = argv._; interface PRMeta { @@ -96,17 +97,20 @@ const list: Reward[] = users.map(login => ({ payer: `@${payer}`, payee: `@${login}`, currency, - reward: parseFloat(averageReward) + reward: parseFloat(averageReward), + source })); const listText = YAML.stringify(list); console.log(listText); +const tagName = `reward-${issueNumber}`; + await $`git config user.name "github-actions[bot]"`; await $`git config user.email "github-actions[bot]@users.noreply.github.com"`; -await $`git tag -a "reward-${issueNumber}" ${mergeCommitSha} -m ${listText}`; -await $`git push origin --tags --no-verify`; +await $`git tag -a ${tagName} ${mergeCommitSha} -m ${listText}`; +await $`git push origin ${tagName} --no-verify`; await $`git config unset user.name`; await $`git config unset user.email`; diff --git a/.github/scripts/type.ts b/.github/scripts/type.ts index 6f4e2e7..885743a 100644 --- a/.github/scripts/type.ts +++ b/.github/scripts/type.ts @@ -4,4 +4,5 @@ export interface Reward { payee: string; currency: string; reward: number; + source?: string; } diff --git a/.github/workflows/Lark-notification.yml b/.github/workflows/Lark-notification.yml index 3783f45..90bed75 100644 --- a/.github/workflows/Lark-notification.yml +++ b/.github/workflows/Lark-notification.yml @@ -25,12 +25,10 @@ jobs: - name: Event Message serialization id: message + env: + GITHUB_CONTEXT: ${{ toJSON(github) }} run: | - YAML=$( - cat <=16" @@ -42,31 +42,23 @@ "@parcel/transformer-typescript-tsc": "~2.16.4", "@types/fs-extra": "^11.0.4", "@types/lodash.memoize": "^4.1.9", - "@types/node": "^24.12.2", + "@types/node": "^24.13.2", "@types/react-dom": "^19.2.3", "@types/turndown": "^5.0.6", - "dotenv": "^17.4.0", - "fs-extra": "^11.3.4", + "dotenv": "^17.4.2", + "fs-extra": "^11.3.5", "husky": "^9.1.7", - "lint-staged": "^16.4.0", + "lint-staged": "^17.0.7", "parcel": "~2.16.4", - "prettier": "^3.8.1", - "react": "^19.2.4", - "react-dom": "^19.2.4", + "prettier": "^3.8.4", + "react": "^19.2.7", + "react-dom": "^19.2.7", "ts-node": "^10.9.2", "turndown": "^7.2.4", - "typedoc": "^0.28.18", + "typedoc": "^0.28.19", "typedoc-plugin-mdn-links": "^5.1.1", "typescript": "~5.8.3" }, - "pnpm": { - "onlyBuiltDependencies": [ - "@parcel/watcher", - "@swc/core", - "lmdb", - "msgpackr-extract" - ] - }, "prettier": { "singleQuote": true, "trailingComma": "none", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e70eb2b..af7269a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,11 +9,11 @@ importers: .: dependencies: '@swc/helpers': - specifier: ^0.5.21 - version: 0.5.21 + specifier: ^0.5.23 + version: 0.5.23 '@types/react': - specifier: ^19.2.14 - version: 19.2.14 + specifier: ^19.2.17 + version: 19.2.17 koajax: specifier: ^3.3.0 version: 3.3.0(typescript@5.8.3) @@ -21,24 +21,24 @@ importers: specifier: ^4.1.2 version: 4.1.2 mobx: - specifier: ^6.15.0 - version: 6.15.0 + specifier: ^6.16.1 + version: 6.16.1 mobx-restful: specifier: ^2.1.4 - version: 2.1.4(mobx@6.15.0)(typescript@5.8.3) + version: 2.1.4(mobx@6.16.1)(typescript@5.8.3) regenerator-runtime: specifier: ^0.14.1 version: 0.14.1 web-utility: - specifier: ^4.6.5 - version: 4.6.5(typescript@5.8.3) + specifier: ^4.6.6 + version: 4.6.6(typescript@5.8.3) devDependencies: '@parcel/config-default': specifier: ~2.16.4 - version: 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))(@swc/helpers@0.5.21) + version: 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))(@swc/helpers@0.5.23) '@parcel/transformer-typescript-tsc': specifier: ~2.16.4 - version: 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))(typescript@5.8.3) + version: 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))(typescript@5.8.3) '@types/fs-extra': specifier: ^11.0.4 version: 11.0.4 @@ -46,50 +46,50 @@ importers: specifier: ^4.1.9 version: 4.1.9 '@types/node': - specifier: ^24.12.2 - version: 24.12.2 + specifier: ^24.13.2 + version: 24.13.2 '@types/react-dom': specifier: ^19.2.3 - version: 19.2.3(@types/react@19.2.14) + version: 19.2.3(@types/react@19.2.17) '@types/turndown': specifier: ^5.0.6 version: 5.0.6 dotenv: - specifier: ^17.4.0 - version: 17.4.0 + specifier: ^17.4.2 + version: 17.4.2 fs-extra: - specifier: ^11.3.4 - version: 11.3.4 + specifier: ^11.3.5 + version: 11.3.5 husky: specifier: ^9.1.7 version: 9.1.7 lint-staged: - specifier: ^16.4.0 - version: 16.4.0 + specifier: ^17.0.7 + version: 17.0.7 parcel: specifier: ~2.16.4 - version: 2.16.4(@swc/helpers@0.5.21) + version: 2.16.4(@swc/helpers@0.5.23) prettier: - specifier: ^3.8.1 - version: 3.8.1 + specifier: ^3.8.4 + version: 3.8.4 react: - specifier: ^19.2.4 - version: 19.2.4 + specifier: ^19.2.7 + version: 19.2.7 react-dom: - specifier: ^19.2.4 - version: 19.2.4(react@19.2.4) + specifier: ^19.2.7 + version: 19.2.7(react@19.2.7) ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.21(@swc/helpers@0.5.21))(@types/node@24.12.2)(typescript@5.8.3) + version: 10.9.2(@swc/core@1.15.41(@swc/helpers@0.5.23))(@types/node@24.13.2)(typescript@5.8.3) turndown: specifier: ^7.2.4 version: 7.2.4 typedoc: - specifier: ^0.28.18 - version: 0.28.18(typescript@5.8.3) + specifier: ^0.28.19 + version: 0.28.19(typescript@5.8.3) typedoc-plugin-mdn-links: specifier: ^5.1.1 - version: 5.1.1(typedoc@0.28.18(typescript@5.8.3)) + version: 5.1.1(typedoc@0.28.19(typescript@5.8.3)) typescript: specifier: ~5.8.3 version: 5.8.3 @@ -113,11 +113,11 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - '@lezer/common@1.5.1': - resolution: {integrity: sha512-6YRVG9vBkaY7p1IVxL4s44n5nUnaNnGM2/AckNgYOnxTG2kWh1vR8BMxPseWPjRNpb5VtXnMpeYAEAADoRV1Iw==} + '@lezer/common@1.5.2': + resolution: {integrity: sha512-sxQE460fPZyU3sdc8lafxiPwJHBzZRy/udNFynGQky1SePYBdhkBl1kOagA9uT3pxR8K09bOrmTUqA9wb/PjSQ==} - '@lezer/lr@1.4.8': - resolution: {integrity: sha512-bPWa0Pgx69ylNlMlPvBPryqeLYQjyJjqPx+Aupm5zydLIF3NE+6MMLT8Yi23Bd9cif9VS00aUebn+6fDIGBcDA==} + '@lezer/lr@1.4.10': + resolution: {integrity: sha512-rnCpTIBafOx4mRp43xOxDJbFipJm/c0cia/V5TiGlhmMa+wsSdoGmUN3w5Bqrks/09Q/D4tNAmWaT8p6NRi77A==} '@lmdb/lmdb-darwin-arm64@2.8.5': resolution: {integrity: sha512-KPDeVScZgA1oq0CiPBcOa3kHIqU+pTOwRFDIhxvmf8CTNvqdZQYp5cCKW0bUk69VygB2PuTiINFWbY78aR2pQw==} @@ -156,33 +156,33 @@ packages: '@mixmark-io/domino@2.2.0': resolution: {integrity: sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw==} - '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3': - resolution: {integrity: sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==} + '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.4': + resolution: {integrity: sha512-LCkGo6JDfaBhgST7UpPWgNgLINpcpabaHfyz5OBx75nUYxBsaEPxjnyNjWpeb/xBup/682QnBfRBy2/LvPutZQ==} cpu: [arm64] os: [darwin] - '@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.3': - resolution: {integrity: sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==} + '@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.4': + resolution: {integrity: sha512-zExlW9zUJKZH/tOtVMttwjKa4Xm/3KcNjnE3dPN92uCktwavMxpgCA3MoJK/DOnTWsQgo224OaST27/mPNAf+w==} cpu: [x64] os: [darwin] - '@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.3': - resolution: {integrity: sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==} + '@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.4': + resolution: {integrity: sha512-dgX0P/9wGPJeHFBG+ZmhgE6bmtMt7NP5CRBGyyktpopdk/mW4POnrpQsSLtKI1dwpc+pPLuXHDh6vvskyQE/sw==} cpu: [arm64] os: [linux] - '@msgpackr-extract/msgpackr-extract-linux-arm@3.0.3': - resolution: {integrity: sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==} + '@msgpackr-extract/msgpackr-extract-linux-arm@3.0.4': + resolution: {integrity: sha512-Tg3yX65f5GbtXLkrYEHE5oibZG9epyYWas7FogTTEJeDEF9JlXJzKgXaNhT3UXlTOeA+AfZpYZYZ0uPj7Cfquw==} cpu: [arm] os: [linux] - '@msgpackr-extract/msgpackr-extract-linux-x64@3.0.3': - resolution: {integrity: sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==} + '@msgpackr-extract/msgpackr-extract-linux-x64@3.0.4': + resolution: {integrity: sha512-8TNXMEjJc3QEy7R/x1INhgiU+XakDAFUzBhaz7+Rbrs8NH5UQeHQxxmzsSBJGyV6I1jW79undiQm8tOI+D+8FQ==} cpu: [x64] os: [linux] - '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3': - resolution: {integrity: sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==} + '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.4': + resolution: {integrity: sha512-CmCXPQrkbwExx3j946/PtHWHbYJiCRBRDl4BlkRQcJB/YOwQxJRTpoo7aTsortjgoJ1x7opzTSxn7C+ASSLVjQ==} cpu: [x64] os: [win32] @@ -595,86 +595,86 @@ packages: '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} - '@swc/core-darwin-arm64@1.15.21': - resolution: {integrity: sha512-SA8SFg9dp0qKRH8goWsax6bptFE2EdmPf2YRAQW9WoHGf3XKM1bX0nd5UdwxmC5hXsBUZAYf7xSciCler6/oyA==} + '@swc/core-darwin-arm64@1.15.41': + resolution: {integrity: sha512-kREh6J5paQFvP3i7f/4FbqRNOJREutVFVOkder4GVyCBQ39YmER55cW/y1NNjwrchzFqgYswFn0mMDCqbqKzrw==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.15.21': - resolution: {integrity: sha512-//fOVntgowz9+V90lVsNCtyyrtbHp3jWH6Rch7MXHXbcvbLmbCTmssl5DeedUWLLGiAAW1wksBdqdGYOTjaNLw==} + '@swc/core-darwin-x64@1.15.41': + resolution: {integrity: sha512-N8B56ESFazZAWZyIkecADSPCwlLEinW7QLMEeotCpv4J7VXwfH+OLkmRL8o96UZ+1355fwHxDTS6/wK7yucvkA==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.15.21': - resolution: {integrity: sha512-meNI4Sh6h9h8DvIfEc0l5URabYMSuNvyisLmG6vnoYAS43s8ON3NJR8sDHvdP7NJTrLe0q/x2XCn6yL/BeHcZg==} + '@swc/core-linux-arm-gnueabihf@1.15.41': + resolution: {integrity: sha512-6XrId2fyle0mS5xxON8rU84mPd2Cq1kDJRj+4BnQKTd7u+2kSA6Ww+JkOP0iTNqOqt9OXhPOEAjBHAuonWcdCg==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.15.21': - resolution: {integrity: sha512-QrXlNQnHeXqU2EzLlnsPoWEh8/GtNJLvfMiPsDhk+ht6Xv8+vhvZ5YZ/BokNWSIZiWPKLAqR0M7T92YF5tmD3g==} + '@swc/core-linux-arm64-gnu@1.15.41': + resolution: {integrity: sha512-ynLIarxlkVnqHn1D0fKOVht6mNU5ks6lrH+MY3kkS+XFaGGgDxFZVjWKJlkYTKm3RCvBTfA8Ng5fLufXheMRKQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] libc: [glibc] - '@swc/core-linux-arm64-musl@1.15.21': - resolution: {integrity: sha512-8/yGCMO333ultDaMQivE5CjO6oXDPeeg1IV4sphojPkb0Pv0i6zvcRIkgp60xDB+UxLr6VgHgt+BBgqS959E9g==} + '@swc/core-linux-arm64-musl@1.15.41': + resolution: {integrity: sha512-dXu/5vd4gh8symyhRF+4G7gOPkjmb4pONhh7sl+6GSiW0LOKZlfu5kXmyFbTz9smOT7jgr002qY9b1nujjXt2A==} engines: {node: '>=10'} cpu: [arm64] os: [linux] libc: [musl] - '@swc/core-linux-ppc64-gnu@1.15.21': - resolution: {integrity: sha512-ucW0HzPx0s1dgRvcvuLSPSA/2Kk/VYTv9st8qe1Kc22Gu0Q0rH9+6TcBTmMuNIp0Xs4BPr1uBttmbO1wEGI49Q==} + '@swc/core-linux-ppc64-gnu@1.15.41': + resolution: {integrity: sha512-XGO6zVPXoPE0gf/XnI4jBbafNT13AYgoh6ns0JCSdOetI/kqVf0vhpz7NuNgAzZrMVCsmieqjPoTwViDgh4mOQ==} engines: {node: '>=10'} cpu: [ppc64] os: [linux] libc: [glibc] - '@swc/core-linux-s390x-gnu@1.15.21': - resolution: {integrity: sha512-ulTnOGc5I7YRObE/9NreAhQg94QkiR5qNhhcUZ1iFAYjzg/JGAi1ch+s/Ixe61pMIr8bfVrF0NOaB0f8wjaAfA==} + '@swc/core-linux-s390x-gnu@1.15.41': + resolution: {integrity: sha512-0WUglRwyZtW+iMi7J3iFdrCxreZZIKf4egTwEQfIYRsqFax69A0OrFj+NIoFSE03xBT/IFRrg+S8K6f9Ky+4hA==} engines: {node: '>=10'} cpu: [s390x] os: [linux] libc: [glibc] - '@swc/core-linux-x64-gnu@1.15.21': - resolution: {integrity: sha512-D0RokxtM+cPvSqJIKR6uja4hbD+scI9ezo95mBhfSyLUs9wnPPl26sLp1ZPR/EXRdYm3F3S6RUtVi+8QXhT24Q==} + '@swc/core-linux-x64-gnu@1.15.41': + resolution: {integrity: sha512-VxkuQK59c0tHm6uJZCUrS3cyA2JhGGfdU6e41SZz0x/JS+4Sm7C1mIc97In14vkZJopEt7yXA2TouCqZDSygEA==} engines: {node: '>=10'} cpu: [x64] os: [linux] libc: [glibc] - '@swc/core-linux-x64-musl@1.15.21': - resolution: {integrity: sha512-nER8u7VeRfmU6fMDzl1NQAbbB/G7O2avmvCOwIul1uGkZ2/acbPH+DCL9h5+0yd/coNcxMBTL6NGepIew+7C2w==} + '@swc/core-linux-x64-musl@1.15.41': + resolution: {integrity: sha512-/0qXIu1ZxggLuovLb22vFfKHq2AA4n6Whw5UwmVCHk4pkw7KWnPIQpMCEqUMPsNkFJig7PPp/TSYFu8ZEb2rtQ==} engines: {node: '>=10'} cpu: [x64] os: [linux] libc: [musl] - '@swc/core-win32-arm64-msvc@1.15.21': - resolution: {integrity: sha512-+/AgNBnjYugUA8C0Do4YzymgvnGbztv7j8HKSQLvR/DQgZPoXQ2B3PqB2mTtGh/X5DhlJWiqnunN35JUgWcAeQ==} + '@swc/core-win32-arm64-msvc@1.15.41': + resolution: {integrity: sha512-Y481sMNZM6rECh9VO4+y26N1lWEDAyxnBZskUf37fl90uHE946VHfmiVQWT0uMFOhyJJFovGTRuF4W82dwewUg==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.15.21': - resolution: {integrity: sha512-IkSZj8PX/N4HcaFhMQtzmkV8YSnuNoJ0E6OvMwFiOfejPhiKXvl7CdDsn1f4/emYEIDO3fpgZW9DTaCRMDxaDA==} + '@swc/core-win32-ia32-msvc@1.15.41': + resolution: {integrity: sha512-BAchBD5qeUzy3hiPSLJtaaoSm4blCLyYffOF1bGE4ETcV+OisqjUAwDQMJj++4bTpvMCDzwC+Bj3PmQyBCtscw==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.15.21': - resolution: {integrity: sha512-zUyWso7OOENB6e1N1hNuNn8vbvLsTdKQ5WKLgt/JcBNfJhKy/6jmBmqI3GXk/MyvQKd5SLvP7A0F36p7TeDqvw==} + '@swc/core-win32-x64-msvc@1.15.41': + resolution: {integrity: sha512-WOkA+fJ/ViVBQDsSV9JC52NACTe5PhlurA6viASDZGb7HR3KS01ZG7RZ+Bg6SVQFIoq3gSbTsskQVe6EbHFAYw==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.15.21': - resolution: {integrity: sha512-fkk7NJcBscrR3/F8jiqlMptRHP650NxqDnspBMrRe5d8xOoCy9MLL5kOBLFXjFLfMo3KQQHhk+/jUULOMlR1uQ==} + '@swc/core@1.15.41': + resolution: {integrity: sha512-03nQq/082QRJJiOvp3FGbgxTGyyxMxohPTjhk/W9bD2J0tk4ukITI7goOhOO2WbaHn/lsPmo/zf8+DIXhwpgYQ==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '>=0.5.17' @@ -685,11 +685,11 @@ packages: '@swc/counter@0.1.3': resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - '@swc/helpers@0.5.21': - resolution: {integrity: sha512-jI/VAmtdjB/RnI8GTnokyX7Ug8c+g+ffD6QRLa6XQewtnGyukKkKSk3wLTM3b5cjt1jNh9x0jfVlagdN2gDKQg==} + '@swc/helpers@0.5.23': + resolution: {integrity: sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw==} - '@swc/types@0.1.26': - resolution: {integrity: sha512-lyMwd7WGgG79RS7EERZV3T8wMdmPq3xwyg+1nmAM64kIhx5yl+juO2PYIHb7vTiPgPCj8LYjsNV2T5wiQHUEaw==} + '@swc/types@0.1.27': + resolution: {integrity: sha512-K6h3iUlqeM946U4sXFYeahefR1YBbXJvko+hv8WS8/0BNJ4OHiHRywMnQUJCqkR7Y9+hqQ1TvEpiKqUhz7NEFg==} '@tsconfig/node10@1.0.12': resolution: {integrity: sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==} @@ -718,16 +718,16 @@ packages: '@types/lodash@4.17.24': resolution: {integrity: sha512-gIW7lQLZbue7lRSWEFql49QJJWThrTFFeIMJdp3eH4tKoxm1OvEPg02rm4wCCSHS0cL3/Fizimb35b7k8atwsQ==} - '@types/node@24.12.2': - resolution: {integrity: sha512-A1sre26ke7HDIuY/M23nd9gfB+nrmhtYyMINbjI1zHJxYteKR6qSMX56FsmjMcDb3SMcjJg5BiRRgOCC/yBD0g==} + '@types/node@24.13.2': + resolution: {integrity: sha512-fRa09kZTgu8o71KFcDjUFuc7F+dEbZYZmkI0mg5YBTRs0yMKjYHsq/c0urDKeDb+D5qVgXOdFcuu+DZPKOITwA==} '@types/react-dom@19.2.3': resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} peerDependencies: '@types/react': ^19.2.0 - '@types/react@19.2.14': - resolution: {integrity: sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==} + '@types/react@19.2.17': + resolution: {integrity: sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==} '@types/turndown@5.0.6': resolution: {integrity: sha512-ru00MoyeeouE5BX4gRL+6m/BsDfbRayOskWqUvh7CLGW+UXxHQItqALa38kKnOiZPqJrtzJUgAC2+F0rL1S4Pg==} @@ -739,8 +739,8 @@ packages: resolution: {integrity: sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==} engines: {node: '>=0.4.0'} - acorn@8.16.0: - resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} + acorn@8.17.0: + resolution: {integrity: sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==} engines: {node: '>=0.4.0'} hasBin: true @@ -773,13 +773,13 @@ packages: base-x@3.0.11: resolution: {integrity: sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==} - baseline-browser-mapping@2.10.14: - resolution: {integrity: sha512-fOVLPAsFTsQfuCkvahZkzq6nf8KvGWanlYoTh0SVA0A/PIUxQGU2AOZAoD95n2gFLVDW/jP6sbGLny95nmEuHA==} + baseline-browser-mapping@2.10.38: + resolution: {integrity: sha512-31/02mVB4yuQU6adKk5SlY6m+mxDwUq5KZkyYgnLrrKl7TEm1+3PyDtDBz2kOv/wxZz41GHsvV1A/u6RmiyBvw==} engines: {node: '>=6.0.0'} hasBin: true - brace-expansion@5.0.5: - resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} + brace-expansion@5.0.6: + resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==} engines: {node: 18 || 20 || >=22} browserslist@4.28.2: @@ -787,8 +787,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - caniuse-lite@1.0.30001784: - resolution: {integrity: sha512-WU346nBTklUV9YfUl60fqRbU5ZqyXlqvo1SgigE1OAXK5bFL8LL9q1K7aap3N739l4BvNqnkm3YrGHiY9sfUQw==} + caniuse-lite@1.0.30001799: + resolution: {integrity: sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw==} chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -817,17 +817,10 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - commander@12.1.0: resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} engines: {node: '>=18'} - commander@14.0.3: - resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==} - engines: {node: '>=20'} - create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} @@ -855,12 +848,12 @@ packages: resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} engines: {node: '>=12'} - dotenv@17.4.0: - resolution: {integrity: sha512-kCKF62fwtzwYm0IGBNjRUjtJgMfGapII+FslMHIjMR5KTnwEmBmWLDRSnc3XSNP8bNy34tekgQyDT0hr7pERRQ==} + dotenv@17.4.2: + resolution: {integrity: sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==} engines: {node: '>=12'} - electron-to-chromium@1.5.331: - resolution: {integrity: sha512-IbxXrsTlD3hRodkLnbxAPP4OuJYdWCeM3IOdT+CpcMoIwIoDfCmRpEtSPfwBXxVkg9xmBeY7Lz2Eo2TDn/HC3Q==} + electron-to-chromium@1.5.375: + resolution: {integrity: sha512-ZWP5eB4BVPW/ZYo9252hQZHZ5XavtsTgpbhcmMmRwymavC5AsLWQWBPaKMeNd2LW0KGby5HPXvj7+sr4ta5j/Q==} emoji-regex@10.6.0: resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} @@ -880,12 +873,12 @@ packages: eventemitter3@5.0.4: resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==} - fs-extra@11.3.4: - resolution: {integrity: sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==} + fs-extra@11.3.5: + resolution: {integrity: sha512-eKpRKAovdpZtR1WopLHxlBWvAgPny3c4gX1G5Jhwmmw4XJj0ifSD5qB5TOo8hmA0wlRKDAOAhEE1yVPgs6Fgcg==} engines: {node: '>=14.14'} - get-east-asian-width@1.5.0: - resolution: {integrity: sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==} + get-east-asian-width@1.6.0: + resolution: {integrity: sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==} engines: {node: '>=18'} get-port@4.2.0: @@ -908,8 +901,8 @@ packages: engines: {node: '>=18'} hasBin: true - idb-keyval@6.2.2: - resolution: {integrity: sha512-yjD9nARJ/jb1g+CvD0tlhUHOrJ9Sy0P8T9MF3YaLlHnSRpwPfpTX0XIvpmw3gAJUmEu3FiICLBDPXVwyEvrleg==} + idb-keyval@6.2.5: + resolution: {integrity: sha512-eKQkTnS0relYsSOYomx8ozIbmdsQCKUdhyuIaQ2DZgKuaxtyQQMkyD/wlnQN32pO3yutN1b1L8uqwcDKaJd7/Q==} is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} @@ -928,8 +921,8 @@ packages: engines: {node: '>=6'} hasBin: true - jsonfile@6.2.0: - resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} + jsonfile@6.2.1: + resolution: {integrity: sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==} koajax@3.3.0: resolution: {integrity: sha512-APsQMeOL3D+9NONbQMJmkI6GkSSEAPRBz9mteFI8CLKwRmv5tH+Vcwsu7SdOjPDR+8V6P4cZHq0QFsjr6pE7Pw==} @@ -1011,17 +1004,17 @@ packages: resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==} engines: {node: '>= 12.0.0'} - linkify-it@5.0.0: - resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + linkify-it@5.0.1: + resolution: {integrity: sha512-wVoTjP4Q6R0NW5hiZkVJaFZPWgtXfoGF+6LucL3/FtiNjmcHhYjEr5f1Kqjirc1nBW07J/ZuRFumqr2oqccEWg==} - lint-staged@16.4.0: - resolution: {integrity: sha512-lBWt8hujh/Cjysw5GYVmZpFHXDCgZzhrOm8vbcUdobADZNOK/bRshr2kM3DfgrrtR1DQhfupW9gnIXOfiFi+bw==} - engines: {node: '>=20.17'} + lint-staged@17.0.7: + resolution: {integrity: sha512-JrSobt+tW3rH8IOMi8tDZd3foorM5yPEkLD/V2NxobgHrFfHWGee4MOLVuZeScgxftEwbHrPHIFA/ZL+nUJeuA==} + engines: {node: '>=22.22.1'} hasBin: true - listr2@9.0.5: - resolution: {integrity: sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==} - engines: {node: '>=20.0.0'} + listr2@10.2.1: + resolution: {integrity: sha512-7I5knELsJKTUjXG+A6BkKAiGkW1i25fNa/xlUl9hFtk15WbE9jndA89xu5FzQKrY5llajE1hfZZFMILXkDHk/Q==} + engines: {node: '>=22.13.0'} lmdb@2.8.5: resolution: {integrity: sha512-9bMdFfc80S+vSldBmG3HOuLVHnxRdNTlpzR6QDnzqCQtCzGUEAGTzBKYMeIM+I/sU4oZfgbcbS7X7F65/z/oxQ==} @@ -1040,8 +1033,8 @@ packages: make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - markdown-it@14.1.1: - resolution: {integrity: sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==} + markdown-it@14.2.0: + resolution: {integrity: sha512-1TGiQiJVRQ3NPmZH6sx5Cfnmg6GQm9jvC1ch4TK511NjSJvjzKLzn5pPfZRNZkRPZP0HqCioSndqH8v2nRaWVQ==} hasBin: true mdurl@2.0.0: @@ -1060,15 +1053,15 @@ packages: peerDependencies: mobx: '>=6.11' - mobx@6.15.0: - resolution: {integrity: sha512-UczzB+0nnwGotYSgllfARAqWCJ5e/skuV2K/l+Zyck/H6pJIhLXuBnz+6vn2i211o7DtbE78HQtsYEKICHGI+g==} + mobx@6.16.1: + resolution: {integrity: sha512-syNcDdX3KT+Jq3je6eGjBhuc24Z68td2VG0zNFqRswaE433D9SNH5VRy/xrGbJsUixfppLLccXhAW9JSf6n+SQ==} - msgpackr-extract@3.0.3: - resolution: {integrity: sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==} + msgpackr-extract@3.0.4: + resolution: {integrity: sha512-4kmO/MdyUIkLIvTPr8VHLil4AtoKIoniWPIEk5+CDy0xnWC84azhSFmuJ7PxZdsYtiP5kEeQsORAVIeMgxT+Hw==} hasBin: true - msgpackr@1.11.9: - resolution: {integrity: sha512-FkoAAyyA6HM8wL882EcEyFZ9s7hVADSwG9xrVx3dxxNQAtgADTrJoEWivID82Iv1zWDsv/OtbrrcZAzGzOMdNw==} + msgpackr@1.12.1: + resolution: {integrity: sha512-4EUH9tQHnMmEgzW/MdAP0KIfa1T9AF+htl0ffe2n5vb2EKn9y2co8ccpgWko6S52Jy1PQZKwRnx5/KkYjtd9MQ==} node-addon-api@6.1.0: resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} @@ -1084,8 +1077,9 @@ packages: resolution: {integrity: sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==} hasBin: true - node-releases@2.0.37: - resolution: {integrity: sha512-1h5gKZCF+pO/o3Iqt5Jp7wc9rH3eJJ0+nh/CIoiRwjRxde/hAHyLPXYN4V3CqKAbiZPSeJFSWHmJsbkicta0Eg==} + node-releases@2.0.47: + resolution: {integrity: sha512-Uzmd6LXpouKo8EUK68IjH4+E01w/hXyV3R3g/geCJo+rXLNfh1xucB+LOzYEOQPSiUK3h/xZf0cQGcSsmyL2Og==} + engines: {node: '>=18'} nullthrows@1.1.1: resolution: {integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==} @@ -1112,8 +1106,8 @@ packages: postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - prettier@3.8.1: - resolution: {integrity: sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==} + prettier@3.8.4: + resolution: {integrity: sha512-N2MylSdi48+5N/6S5j+maeHbUSIzzZ5uOcX5Hm4QpV8Dkb1HFjfAKTKX6yNPJQD9AhcT3ifHNB66tWTTJDi11Q==} engines: {node: '>=14'} hasBin: true @@ -1121,17 +1115,17 @@ packages: resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} engines: {node: '>=6'} - react-dom@19.2.4: - resolution: {integrity: sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==} + react-dom@19.2.7: + resolution: {integrity: sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==} peerDependencies: - react: ^19.2.4 + react: ^19.2.7 react-refresh@0.16.0: resolution: {integrity: sha512-FPvF2XxTSikpJxcr+bHut2H4gJ17+18Uy20D5/F+SKzFap62R3cM5wH6b8WN3LyGSYeQilLEcJcR1fjBSI2S1A==} engines: {node: '>=0.10.0'} - react@19.2.4: - resolution: {integrity: sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==} + react@19.2.7: + resolution: {integrity: sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==} engines: {node: '>=0.10.0'} regenerator-runtime@0.14.1: @@ -1150,8 +1144,8 @@ packages: scheduler@0.27.0: resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} - semver@7.7.4: - resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} + semver@7.8.4: + resolution: {integrity: sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==} engines: {node: '>=10'} hasBin: true @@ -1175,8 +1169,8 @@ packages: resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} engines: {node: '>=18'} - string-width@8.2.0: - resolution: {integrity: sha512-6hJPQ8N0V0P3SNmP6h2J99RLuzrWz2gvT7VnK5tKvrNqJoyS9W4/Fb8mo31UiPvy00z7DQXkP2hnKBVav76thw==} + string-width@8.2.1: + resolution: {integrity: sha512-IIaP0g3iy9Cyy18w3M9YcaDudujEAVHKt3a3QJg1+sr/oX96TbaGUubG0hJyCjCBThFH+tFpcIyoUHUn1ogaLA==} engines: {node: '>=20'} strip-ansi@7.2.0: @@ -1191,8 +1185,8 @@ packages: resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} engines: {node: '>=8'} - tinyexec@1.0.4: - resolution: {integrity: sha512-u9r3uZC0bdpGOXtlxUIdwf9pkmvhqJdrVCH9fapQtgy/OeTTMZ1nqH7agtvEfmGui6e1XxjcdrlxvxJvc3sMqw==} + tinyexec@1.2.4: + resolution: {integrity: sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==} engines: {node: '>=18'} ts-node@10.9.2: @@ -1225,8 +1219,8 @@ packages: peerDependencies: typedoc: 0.27.x || 0.28.x - typedoc@0.28.18: - resolution: {integrity: sha512-NTWTUOFRQ9+SGKKTuWKUioUkjxNwtS3JDRPVKZAXGHZy2wCA8bdv2iJiyeePn0xkmK+TCCqZFT0X7+2+FLjngA==} + typedoc@0.28.19: + resolution: {integrity: sha512-wKh+lhdmMFivMlc6vRRcMGXeGEHGU2g8a2CkPTJjJlwRf1iXbimWIPcFolCqe4E0d/FRtGszpIrsp3WLpDB8Pw==} engines: {node: '>= 18', pnpm: '>= 10'} hasBin: true peerDependencies: @@ -1240,8 +1234,8 @@ packages: uc.micro@2.1.0: resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} - undici-types@7.16.0: - resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} + undici-types@7.18.2: + resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} @@ -1263,22 +1257,26 @@ packages: weak-lru-cache@1.2.2: resolution: {integrity: sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==} - web-streams-polyfill@4.2.0: - resolution: {integrity: sha512-0rYDzGOh9EZpig92umN5g5D/9A1Kff7k0/mzPSSCY8jEQeYkgRMoY7LhbXtUCWzLCMX0TUE9aoHkjFNB7D9pfA==} + web-streams-polyfill@4.3.0: + resolution: {integrity: sha512-/Gnggvj9oSrEvJbDyyPtAnxBt5fGQM2iWOKQNu7ie1OxDgK40iZpyV3TKaRiEzVj1oA1UxKnEy9XPXh6PW3eVw==} engines: {node: '>= 8'} - web-utility@4.6.5: - resolution: {integrity: sha512-1XsfSzTHUJB4qa7oiFkfKxUiVwMzZy7c8X4wTqno1ors8w6tFL/2kj+idoeCSXVh3OmCbcXhTldqGG7MbcP7FQ==} + web-utility@4.6.6: + resolution: {integrity: sha512-ia1yi7NC6wF3ScTW9U2nu4VAjuKHbpXuluh3x8b0LSMiM49V5MexA+asaidmURMZ3gTTRD+ymw5+W4MWSaazqg==} peerDependencies: element-internals-polyfill: '>=1' typescript: '>=4.1' + wrap-ansi@10.0.0: + resolution: {integrity: sha512-SGcvg80f0wUy2/fXES19feHMz8E0JoXv2uNgHOu4Dgi2OrCy1lqwFYEJz1BLbDI0exjPMe/ZdzZ/YpGECBG/aQ==} + engines: {node: '>=20'} + wrap-ansi@9.0.2: resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} engines: {node: '>=18'} - yaml@2.8.3: - resolution: {integrity: sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==} + yaml@2.9.0: + resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==} engines: {node: '>= 14.6'} hasBin: true @@ -1309,11 +1307,11 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 - '@lezer/common@1.5.1': {} + '@lezer/common@1.5.2': {} - '@lezer/lr@1.4.8': + '@lezer/lr@1.4.10': dependencies: - '@lezer/common': 1.5.1 + '@lezer/common': 1.5.2 '@lmdb/lmdb-darwin-arm64@2.8.5': optional: true @@ -1335,35 +1333,35 @@ snapshots: '@mischnic/json-sourcemap@0.1.1': dependencies: - '@lezer/common': 1.5.1 - '@lezer/lr': 1.4.8 + '@lezer/common': 1.5.2 + '@lezer/lr': 1.4.10 json5: 2.2.3 '@mixmark-io/domino@2.2.0': {} - '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3': + '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.4': optional: true - '@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.3': + '@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.4': optional: true - '@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.3': + '@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.4': optional: true - '@msgpackr-extract/msgpackr-extract-linux-arm@3.0.3': + '@msgpackr-extract/msgpackr-extract-linux-arm@3.0.4': optional: true - '@msgpackr-extract/msgpackr-extract-linux-x64@3.0.3': + '@msgpackr-extract/msgpackr-extract-linux-x64@3.0.4': optional: true - '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3': + '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.4': optional: true - '@parcel/bundler-default@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/bundler-default@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: '@parcel/diagnostic': 2.16.4 '@parcel/graph': 3.6.4 - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/rust': 2.16.4 '@parcel/utils': 2.16.4 nullthrows: 1.1.1 @@ -1371,10 +1369,10 @@ snapshots: - '@parcel/core' - napi-wasm - '@parcel/cache@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/cache@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: - '@parcel/core': 2.16.4(@swc/helpers@0.5.21) - '@parcel/fs': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/core': 2.16.4(@swc/helpers@0.5.23) + '@parcel/fs': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/logger': 2.16.4 '@parcel/utils': 2.16.4 lmdb: 2.8.5 @@ -1385,79 +1383,79 @@ snapshots: dependencies: chalk: 4.1.2 - '@parcel/compressor-raw@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/compressor-raw@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) transitivePeerDependencies: - '@parcel/core' - napi-wasm - '@parcel/config-default@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))(@swc/helpers@0.5.21)': - dependencies: - '@parcel/bundler-default': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/compressor-raw': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/core': 2.16.4(@swc/helpers@0.5.21) - '@parcel/namer-default': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/optimizer-css': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/optimizer-html': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/optimizer-image': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/optimizer-svg': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/optimizer-swc': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))(@swc/helpers@0.5.21) - '@parcel/packager-css': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/packager-html': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/packager-js': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/packager-raw': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/packager-svg': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/packager-wasm': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/reporter-dev-server': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/resolver-default': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/runtime-browser-hmr': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/runtime-js': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/runtime-rsc': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/runtime-service-worker': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/transformer-babel': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/transformer-css': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/transformer-html': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/transformer-image': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/transformer-js': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/transformer-json': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/transformer-node': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/transformer-postcss': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/transformer-posthtml': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/transformer-raw': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/transformer-react-refresh-wrap': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/transformer-svg': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/config-default@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))(@swc/helpers@0.5.23)': + dependencies: + '@parcel/bundler-default': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/compressor-raw': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/core': 2.16.4(@swc/helpers@0.5.23) + '@parcel/namer-default': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/optimizer-css': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/optimizer-html': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/optimizer-image': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/optimizer-svg': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/optimizer-swc': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))(@swc/helpers@0.5.23) + '@parcel/packager-css': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/packager-html': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/packager-js': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/packager-raw': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/packager-svg': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/packager-wasm': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/reporter-dev-server': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/resolver-default': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/runtime-browser-hmr': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/runtime-js': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/runtime-rsc': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/runtime-service-worker': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/transformer-babel': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/transformer-css': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/transformer-html': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/transformer-image': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/transformer-js': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/transformer-json': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/transformer-node': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/transformer-postcss': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/transformer-posthtml': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/transformer-raw': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/transformer-react-refresh-wrap': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/transformer-svg': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) transitivePeerDependencies: - '@swc/helpers' - napi-wasm - '@parcel/core@2.16.4(@swc/helpers@0.5.21)': + '@parcel/core@2.16.4(@swc/helpers@0.5.23)': dependencies: '@mischnic/json-sourcemap': 0.1.1 - '@parcel/cache': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/cache': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/diagnostic': 2.16.4 '@parcel/events': 2.16.4 '@parcel/feature-flags': 2.16.4 - '@parcel/fs': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/fs': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/graph': 3.6.4 '@parcel/logger': 2.16.4 - '@parcel/package-manager': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))(@swc/helpers@0.5.21) - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/package-manager': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))(@swc/helpers@0.5.23) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/profiler': 2.16.4 '@parcel/rust': 2.16.4 '@parcel/source-map': 2.1.1 - '@parcel/types': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/types': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/utils': 2.16.4 - '@parcel/workers': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/workers': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) base-x: 3.0.11 browserslist: 4.28.2 clone: 2.1.2 dotenv: 16.6.1 dotenv-expand: 11.0.7 json5: 2.2.3 - msgpackr: 1.11.9 + msgpackr: 1.12.1 nullthrows: 1.1.1 - semver: 7.7.4 + semver: 7.8.4 transitivePeerDependencies: - '@swc/helpers' - napi-wasm @@ -1473,15 +1471,15 @@ snapshots: '@parcel/feature-flags@2.16.4': {} - '@parcel/fs@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/fs@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: - '@parcel/core': 2.16.4(@swc/helpers@0.5.21) + '@parcel/core': 2.16.4(@swc/helpers@0.5.23) '@parcel/feature-flags': 2.16.4 '@parcel/rust': 2.16.4 '@parcel/types-internal': 2.16.4 '@parcel/utils': 2.16.4 '@parcel/watcher': 2.5.6 - '@parcel/workers': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/workers': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) transitivePeerDependencies: - napi-wasm @@ -1499,32 +1497,32 @@ snapshots: dependencies: chalk: 4.1.2 - '@parcel/namer-default@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/namer-default@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: '@parcel/diagnostic': 2.16.4 - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) nullthrows: 1.1.1 transitivePeerDependencies: - '@parcel/core' - napi-wasm - '@parcel/node-resolver-core@3.7.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/node-resolver-core@3.7.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: '@mischnic/json-sourcemap': 0.1.1 '@parcel/diagnostic': 2.16.4 - '@parcel/fs': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/fs': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/rust': 2.16.4 '@parcel/utils': 2.16.4 nullthrows: 1.1.1 - semver: 7.7.4 + semver: 7.8.4 transitivePeerDependencies: - '@parcel/core' - napi-wasm - '@parcel/optimizer-css@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/optimizer-css@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: '@parcel/diagnostic': 2.16.4 - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/source-map': 2.1.1 '@parcel/utils': 2.16.4 browserslist: 4.28.2 @@ -1534,68 +1532,68 @@ snapshots: - '@parcel/core' - napi-wasm - '@parcel/optimizer-html@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/optimizer-html@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/rust': 2.16.4 '@parcel/utils': 2.16.4 transitivePeerDependencies: - '@parcel/core' - napi-wasm - '@parcel/optimizer-image@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/optimizer-image@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: - '@parcel/core': 2.16.4(@swc/helpers@0.5.21) + '@parcel/core': 2.16.4(@swc/helpers@0.5.23) '@parcel/diagnostic': 2.16.4 - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/rust': 2.16.4 '@parcel/utils': 2.16.4 - '@parcel/workers': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/workers': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) transitivePeerDependencies: - napi-wasm - '@parcel/optimizer-svg@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/optimizer-svg@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/rust': 2.16.4 '@parcel/utils': 2.16.4 transitivePeerDependencies: - '@parcel/core' - napi-wasm - '@parcel/optimizer-swc@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))(@swc/helpers@0.5.21)': + '@parcel/optimizer-swc@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))(@swc/helpers@0.5.23)': dependencies: '@parcel/diagnostic': 2.16.4 - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/source-map': 2.1.1 '@parcel/utils': 2.16.4 - '@swc/core': 1.15.21(@swc/helpers@0.5.21) + '@swc/core': 1.15.41(@swc/helpers@0.5.23) nullthrows: 1.1.1 transitivePeerDependencies: - '@parcel/core' - '@swc/helpers' - napi-wasm - '@parcel/package-manager@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))(@swc/helpers@0.5.21)': + '@parcel/package-manager@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))(@swc/helpers@0.5.23)': dependencies: - '@parcel/core': 2.16.4(@swc/helpers@0.5.21) + '@parcel/core': 2.16.4(@swc/helpers@0.5.23) '@parcel/diagnostic': 2.16.4 - '@parcel/fs': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/fs': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/logger': 2.16.4 - '@parcel/node-resolver-core': 3.7.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/types': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/node-resolver-core': 3.7.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/types': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/utils': 2.16.4 - '@parcel/workers': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@swc/core': 1.15.21(@swc/helpers@0.5.21) - semver: 7.7.4 + '@parcel/workers': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@swc/core': 1.15.41(@swc/helpers@0.5.23) + semver: 7.8.4 transitivePeerDependencies: - '@swc/helpers' - napi-wasm - '@parcel/packager-css@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/packager-css@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: '@parcel/diagnostic': 2.16.4 - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/source-map': 2.1.1 '@parcel/utils': 2.16.4 lightningcss: 1.32.0 @@ -1604,23 +1602,23 @@ snapshots: - '@parcel/core' - napi-wasm - '@parcel/packager-html@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/packager-html@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/rust': 2.16.4 - '@parcel/types': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/types': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/utils': 2.16.4 transitivePeerDependencies: - '@parcel/core' - napi-wasm - '@parcel/packager-js@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/packager-js@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: '@parcel/diagnostic': 2.16.4 - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/rust': 2.16.4 '@parcel/source-map': 2.1.1 - '@parcel/types': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/types': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/utils': 2.16.4 globals: 13.24.0 nullthrows: 1.1.1 @@ -1628,33 +1626,33 @@ snapshots: - '@parcel/core' - napi-wasm - '@parcel/packager-raw@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/packager-raw@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) transitivePeerDependencies: - '@parcel/core' - napi-wasm - '@parcel/packager-svg@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/packager-svg@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/rust': 2.16.4 - '@parcel/types': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/types': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/utils': 2.16.4 transitivePeerDependencies: - '@parcel/core' - napi-wasm - '@parcel/packager-wasm@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/packager-wasm@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) transitivePeerDependencies: - '@parcel/core' - napi-wasm - '@parcel/plugin@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/plugin@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: - '@parcel/types': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/types': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) transitivePeerDependencies: - '@parcel/core' - napi-wasm @@ -1666,10 +1664,10 @@ snapshots: '@parcel/types-internal': 2.16.4 chrome-trace-event: 1.0.4 - '@parcel/reporter-cli@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/reporter-cli@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/types': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/types': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/utils': 2.16.4 chalk: 4.1.2 term-size: 2.2.1 @@ -1677,19 +1675,19 @@ snapshots: - '@parcel/core' - napi-wasm - '@parcel/reporter-dev-server@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/reporter-dev-server@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: '@parcel/codeframe': 2.16.4 - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/source-map': 2.1.1 '@parcel/utils': 2.16.4 transitivePeerDependencies: - '@parcel/core' - napi-wasm - '@parcel/reporter-tracer@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/reporter-tracer@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/utils': 2.16.4 chrome-trace-event: 1.0.4 nullthrows: 1.1.1 @@ -1697,35 +1695,35 @@ snapshots: - '@parcel/core' - napi-wasm - '@parcel/resolver-default@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/resolver-default@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: - '@parcel/node-resolver-core': 3.7.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/node-resolver-core': 3.7.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) transitivePeerDependencies: - '@parcel/core' - napi-wasm - '@parcel/runtime-browser-hmr@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/runtime-browser-hmr@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/utils': 2.16.4 transitivePeerDependencies: - '@parcel/core' - napi-wasm - '@parcel/runtime-js@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/runtime-js@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: '@parcel/diagnostic': 2.16.4 - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/utils': 2.16.4 nullthrows: 1.1.1 transitivePeerDependencies: - '@parcel/core' - napi-wasm - '@parcel/runtime-rsc@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/runtime-rsc@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/rust': 2.16.4 '@parcel/utils': 2.16.4 nullthrows: 1.1.1 @@ -1733,9 +1731,9 @@ snapshots: - '@parcel/core' - napi-wasm - '@parcel/runtime-service-worker@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/runtime-service-worker@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/utils': 2.16.4 nullthrows: 1.1.1 transitivePeerDependencies: @@ -1781,24 +1779,24 @@ snapshots: dependencies: detect-libc: 1.0.3 - '@parcel/transformer-babel@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/transformer-babel@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: '@parcel/diagnostic': 2.16.4 - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/source-map': 2.1.1 '@parcel/utils': 2.16.4 browserslist: 4.28.2 json5: 2.2.3 nullthrows: 1.1.1 - semver: 7.7.4 + semver: 7.8.4 transitivePeerDependencies: - '@parcel/core' - napi-wasm - '@parcel/transformer-css@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/transformer-css@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: '@parcel/diagnostic': 2.16.4 - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/source-map': 2.1.1 '@parcel/utils': 2.16.4 browserslist: 4.28.2 @@ -1808,108 +1806,108 @@ snapshots: - '@parcel/core' - napi-wasm - '@parcel/transformer-html@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/transformer-html@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: '@parcel/diagnostic': 2.16.4 - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/rust': 2.16.4 transitivePeerDependencies: - '@parcel/core' - napi-wasm - '@parcel/transformer-image@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/transformer-image@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: - '@parcel/core': 2.16.4(@swc/helpers@0.5.21) - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/core': 2.16.4(@swc/helpers@0.5.23) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/utils': 2.16.4 - '@parcel/workers': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/workers': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) nullthrows: 1.1.1 transitivePeerDependencies: - napi-wasm - '@parcel/transformer-js@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/transformer-js@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: - '@parcel/core': 2.16.4(@swc/helpers@0.5.21) + '@parcel/core': 2.16.4(@swc/helpers@0.5.23) '@parcel/diagnostic': 2.16.4 - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/rust': 2.16.4 '@parcel/source-map': 2.1.1 '@parcel/utils': 2.16.4 - '@parcel/workers': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@swc/helpers': 0.5.21 + '@parcel/workers': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@swc/helpers': 0.5.23 browserslist: 4.28.2 nullthrows: 1.1.1 regenerator-runtime: 0.14.1 - semver: 7.7.4 + semver: 7.8.4 transitivePeerDependencies: - napi-wasm - '@parcel/transformer-json@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/transformer-json@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) json5: 2.2.3 transitivePeerDependencies: - '@parcel/core' - napi-wasm - '@parcel/transformer-node@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/transformer-node@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) transitivePeerDependencies: - '@parcel/core' - napi-wasm - '@parcel/transformer-postcss@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/transformer-postcss@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: '@parcel/diagnostic': 2.16.4 - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/rust': 2.16.4 '@parcel/utils': 2.16.4 clone: 2.1.2 nullthrows: 1.1.1 postcss-value-parser: 4.2.0 - semver: 7.7.4 + semver: 7.8.4 transitivePeerDependencies: - '@parcel/core' - napi-wasm - '@parcel/transformer-posthtml@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/transformer-posthtml@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/utils': 2.16.4 transitivePeerDependencies: - '@parcel/core' - napi-wasm - '@parcel/transformer-raw@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/transformer-raw@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) transitivePeerDependencies: - '@parcel/core' - napi-wasm - '@parcel/transformer-react-refresh-wrap@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/transformer-react-refresh-wrap@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: '@parcel/error-overlay': 2.16.4 - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/utils': 2.16.4 react-refresh: 0.16.0 transitivePeerDependencies: - '@parcel/core' - napi-wasm - '@parcel/transformer-svg@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/transformer-svg@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: '@parcel/diagnostic': 2.16.4 - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/rust': 2.16.4 transitivePeerDependencies: - '@parcel/core' - napi-wasm - '@parcel/transformer-typescript-tsc@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))(typescript@5.8.3)': + '@parcel/transformer-typescript-tsc@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))(typescript@5.8.3)': dependencies: - '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/plugin': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/source-map': 2.1.1 '@parcel/ts-utils': 2.16.4(typescript@5.8.3) typescript: 5.8.3 @@ -1929,10 +1927,10 @@ snapshots: '@parcel/source-map': 2.1.1 utility-types: 3.11.0 - '@parcel/types@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/types@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: '@parcel/types-internal': 2.16.4 - '@parcel/workers': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/workers': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) transitivePeerDependencies: - '@parcel/core' - napi-wasm @@ -2010,9 +2008,9 @@ snapshots: '@parcel/watcher-win32-ia32': 2.5.6 '@parcel/watcher-win32-x64': 2.5.6 - '@parcel/workers@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))': + '@parcel/workers@2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))': dependencies: - '@parcel/core': 2.16.4(@swc/helpers@0.5.21) + '@parcel/core': 2.16.4(@swc/helpers@0.5.23) '@parcel/diagnostic': 2.16.4 '@parcel/logger': 2.16.4 '@parcel/profiler': 2.16.4 @@ -2042,68 +2040,68 @@ snapshots: '@shikijs/vscode-textmate@10.0.2': {} - '@swc/core-darwin-arm64@1.15.21': + '@swc/core-darwin-arm64@1.15.41': optional: true - '@swc/core-darwin-x64@1.15.21': + '@swc/core-darwin-x64@1.15.41': optional: true - '@swc/core-linux-arm-gnueabihf@1.15.21': + '@swc/core-linux-arm-gnueabihf@1.15.41': optional: true - '@swc/core-linux-arm64-gnu@1.15.21': + '@swc/core-linux-arm64-gnu@1.15.41': optional: true - '@swc/core-linux-arm64-musl@1.15.21': + '@swc/core-linux-arm64-musl@1.15.41': optional: true - '@swc/core-linux-ppc64-gnu@1.15.21': + '@swc/core-linux-ppc64-gnu@1.15.41': optional: true - '@swc/core-linux-s390x-gnu@1.15.21': + '@swc/core-linux-s390x-gnu@1.15.41': optional: true - '@swc/core-linux-x64-gnu@1.15.21': + '@swc/core-linux-x64-gnu@1.15.41': optional: true - '@swc/core-linux-x64-musl@1.15.21': + '@swc/core-linux-x64-musl@1.15.41': optional: true - '@swc/core-win32-arm64-msvc@1.15.21': + '@swc/core-win32-arm64-msvc@1.15.41': optional: true - '@swc/core-win32-ia32-msvc@1.15.21': + '@swc/core-win32-ia32-msvc@1.15.41': optional: true - '@swc/core-win32-x64-msvc@1.15.21': + '@swc/core-win32-x64-msvc@1.15.41': optional: true - '@swc/core@1.15.21(@swc/helpers@0.5.21)': + '@swc/core@1.15.41(@swc/helpers@0.5.23)': dependencies: '@swc/counter': 0.1.3 - '@swc/types': 0.1.26 + '@swc/types': 0.1.27 optionalDependencies: - '@swc/core-darwin-arm64': 1.15.21 - '@swc/core-darwin-x64': 1.15.21 - '@swc/core-linux-arm-gnueabihf': 1.15.21 - '@swc/core-linux-arm64-gnu': 1.15.21 - '@swc/core-linux-arm64-musl': 1.15.21 - '@swc/core-linux-ppc64-gnu': 1.15.21 - '@swc/core-linux-s390x-gnu': 1.15.21 - '@swc/core-linux-x64-gnu': 1.15.21 - '@swc/core-linux-x64-musl': 1.15.21 - '@swc/core-win32-arm64-msvc': 1.15.21 - '@swc/core-win32-ia32-msvc': 1.15.21 - '@swc/core-win32-x64-msvc': 1.15.21 - '@swc/helpers': 0.5.21 + '@swc/core-darwin-arm64': 1.15.41 + '@swc/core-darwin-x64': 1.15.41 + '@swc/core-linux-arm-gnueabihf': 1.15.41 + '@swc/core-linux-arm64-gnu': 1.15.41 + '@swc/core-linux-arm64-musl': 1.15.41 + '@swc/core-linux-ppc64-gnu': 1.15.41 + '@swc/core-linux-s390x-gnu': 1.15.41 + '@swc/core-linux-x64-gnu': 1.15.41 + '@swc/core-linux-x64-musl': 1.15.41 + '@swc/core-win32-arm64-msvc': 1.15.41 + '@swc/core-win32-ia32-msvc': 1.15.41 + '@swc/core-win32-x64-msvc': 1.15.41 + '@swc/helpers': 0.5.23 '@swc/counter@0.1.3': {} - '@swc/helpers@0.5.21': + '@swc/helpers@0.5.23': dependencies: tslib: 2.8.1 - '@swc/types@0.1.26': + '@swc/types@0.1.27': dependencies: '@swc/counter': 0.1.3 @@ -2118,7 +2116,7 @@ snapshots: '@types/fs-extra@11.0.4': dependencies: '@types/jsonfile': 6.1.4 - '@types/node': 24.12.2 + '@types/node': 24.13.2 '@types/hast@3.0.4': dependencies: @@ -2126,7 +2124,7 @@ snapshots: '@types/jsonfile@6.1.4': dependencies: - '@types/node': 24.12.2 + '@types/node': 24.13.2 '@types/lodash.memoize@4.1.9': dependencies: @@ -2134,15 +2132,15 @@ snapshots: '@types/lodash@4.17.24': {} - '@types/node@24.12.2': + '@types/node@24.13.2': dependencies: - undici-types: 7.16.0 + undici-types: 7.18.2 - '@types/react-dom@19.2.3(@types/react@19.2.14)': + '@types/react-dom@19.2.3(@types/react@19.2.17)': dependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.17 - '@types/react@19.2.14': + '@types/react@19.2.17': dependencies: csstype: 3.2.3 @@ -2152,9 +2150,9 @@ snapshots: acorn-walk@8.3.5: dependencies: - acorn: 8.16.0 + acorn: 8.17.0 - acorn@8.16.0: {} + acorn@8.17.0: {} ansi-escapes@7.3.0: dependencies: @@ -2178,21 +2176,21 @@ snapshots: dependencies: safe-buffer: 5.2.1 - baseline-browser-mapping@2.10.14: {} + baseline-browser-mapping@2.10.38: {} - brace-expansion@5.0.5: + brace-expansion@5.0.6: dependencies: balanced-match: 4.0.4 browserslist@4.28.2: dependencies: - baseline-browser-mapping: 2.10.14 - caniuse-lite: 1.0.30001784 - electron-to-chromium: 1.5.331 - node-releases: 2.0.37 + baseline-browser-mapping: 2.10.38 + caniuse-lite: 1.0.30001799 + electron-to-chromium: 1.5.375 + node-releases: 2.0.47 update-browserslist-db: 1.2.3(browserslist@4.28.2) - caniuse-lite@1.0.30001784: {} + caniuse-lite@1.0.30001799: {} chalk@4.1.2: dependencies: @@ -2208,7 +2206,7 @@ snapshots: cli-truncate@5.2.0: dependencies: slice-ansi: 8.0.0 - string-width: 8.2.0 + string-width: 8.2.1 clone@2.1.2: {} @@ -2218,12 +2216,8 @@ snapshots: color-name@1.1.4: {} - colorette@2.0.20: {} - commander@12.1.0: {} - commander@14.0.3: {} - create-require@1.1.1: {} csstype@3.2.3: {} @@ -2240,9 +2234,9 @@ snapshots: dotenv@16.6.1: {} - dotenv@17.4.0: {} + dotenv@17.4.2: {} - electron-to-chromium@1.5.331: {} + electron-to-chromium@1.5.375: {} emoji-regex@10.6.0: {} @@ -2254,13 +2248,13 @@ snapshots: eventemitter3@5.0.4: {} - fs-extra@11.3.4: + fs-extra@11.3.5: dependencies: graceful-fs: 4.2.11 - jsonfile: 6.2.0 + jsonfile: 6.2.1 universalify: 2.0.1 - get-east-asian-width@1.5.0: {} + get-east-asian-width@1.6.0: {} get-port@4.2.0: {} @@ -2274,13 +2268,13 @@ snapshots: husky@9.1.7: {} - idb-keyval@6.2.2: {} + idb-keyval@6.2.5: {} is-extglob@2.1.1: {} is-fullwidth-code-point@5.1.0: dependencies: - get-east-asian-width: 1.5.0 + get-east-asian-width: 1.6.0 is-glob@4.0.3: dependencies: @@ -2288,7 +2282,7 @@ snapshots: json5@2.2.3: {} - jsonfile@6.2.0: + jsonfile@6.2.1: dependencies: universalify: 2.0.1 optionalDependencies: @@ -2296,10 +2290,10 @@ snapshots: koajax@3.3.0(typescript@5.8.3): dependencies: - '@swc/helpers': 0.5.21 + '@swc/helpers': 0.5.23 regenerator-runtime: 0.14.1 - web-streams-polyfill: 4.2.0 - web-utility: 4.6.5(typescript@5.8.3) + web-streams-polyfill: 4.3.0 + web-utility: 4.6.6(typescript@5.8.3) transitivePeerDependencies: - element-internals-polyfill - typescript @@ -2353,31 +2347,30 @@ snapshots: lightningcss-win32-arm64-msvc: 1.32.0 lightningcss-win32-x64-msvc: 1.32.0 - linkify-it@5.0.0: + linkify-it@5.0.1: dependencies: uc.micro: 2.1.0 - lint-staged@16.4.0: + lint-staged@17.0.7: dependencies: - commander: 14.0.3 - listr2: 9.0.5 + listr2: 10.2.1 picomatch: 4.0.4 string-argv: 0.3.2 - tinyexec: 1.0.4 - yaml: 2.8.3 + tinyexec: 1.2.4 + optionalDependencies: + yaml: 2.9.0 - listr2@9.0.5: + listr2@10.2.1: dependencies: cli-truncate: 5.2.0 - colorette: 2.0.20 eventemitter3: 5.0.4 log-update: 6.1.0 rfdc: 1.4.1 - wrap-ansi: 9.0.2 + wrap-ansi: 10.0.0 lmdb@2.8.5: dependencies: - msgpackr: 1.11.9 + msgpackr: 1.12.1 node-addon-api: 6.1.0 node-gyp-build-optional-packages: 5.1.1 ordered-binary: 1.6.1 @@ -2404,11 +2397,11 @@ snapshots: make-error@1.3.6: {} - markdown-it@14.1.1: + markdown-it@14.2.0: dependencies: argparse: 2.0.1 entities: 4.5.0 - linkify-it: 5.0.0 + linkify-it: 5.0.1 mdurl: 2.0.0 punycode.js: 2.3.1 uc.micro: 2.1.0 @@ -2419,39 +2412,39 @@ snapshots: minimatch@10.2.5: dependencies: - brace-expansion: 5.0.5 + brace-expansion: 5.0.6 - mobx-restful@2.1.4(mobx@6.15.0)(typescript@5.8.3): + mobx-restful@2.1.4(mobx@6.16.1)(typescript@5.8.3): dependencies: - '@swc/helpers': 0.5.21 - idb-keyval: 6.2.2 + '@swc/helpers': 0.5.23 + idb-keyval: 6.2.5 koajax: 3.3.0(typescript@5.8.3) - mobx: 6.15.0 + mobx: 6.16.1 regenerator-runtime: 0.14.1 - web-utility: 4.6.5(typescript@5.8.3) + web-utility: 4.6.6(typescript@5.8.3) transitivePeerDependencies: - core-js - element-internals-polyfill - jsdom - typescript - mobx@6.15.0: {} + mobx@6.16.1: {} - msgpackr-extract@3.0.3: + msgpackr-extract@3.0.4: dependencies: node-gyp-build-optional-packages: 5.2.2 optionalDependencies: - '@msgpackr-extract/msgpackr-extract-darwin-arm64': 3.0.3 - '@msgpackr-extract/msgpackr-extract-darwin-x64': 3.0.3 - '@msgpackr-extract/msgpackr-extract-linux-arm': 3.0.3 - '@msgpackr-extract/msgpackr-extract-linux-arm64': 3.0.3 - '@msgpackr-extract/msgpackr-extract-linux-x64': 3.0.3 - '@msgpackr-extract/msgpackr-extract-win32-x64': 3.0.3 + '@msgpackr-extract/msgpackr-extract-darwin-arm64': 3.0.4 + '@msgpackr-extract/msgpackr-extract-darwin-x64': 3.0.4 + '@msgpackr-extract/msgpackr-extract-linux-arm': 3.0.4 + '@msgpackr-extract/msgpackr-extract-linux-arm64': 3.0.4 + '@msgpackr-extract/msgpackr-extract-linux-x64': 3.0.4 + '@msgpackr-extract/msgpackr-extract-win32-x64': 3.0.4 optional: true - msgpackr@1.11.9: + msgpackr@1.12.1: optionalDependencies: - msgpackr-extract: 3.0.3 + msgpackr-extract: 3.0.4 node-addon-api@6.1.0: {} @@ -2466,7 +2459,7 @@ snapshots: detect-libc: 2.1.2 optional: true - node-releases@2.0.37: {} + node-releases@2.0.47: {} nullthrows@1.1.1: {} @@ -2476,19 +2469,19 @@ snapshots: ordered-binary@1.6.1: {} - parcel@2.16.4(@swc/helpers@0.5.21): + parcel@2.16.4(@swc/helpers@0.5.23): dependencies: - '@parcel/config-default': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))(@swc/helpers@0.5.21) - '@parcel/core': 2.16.4(@swc/helpers@0.5.21) + '@parcel/config-default': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))(@swc/helpers@0.5.23) + '@parcel/core': 2.16.4(@swc/helpers@0.5.23) '@parcel/diagnostic': 2.16.4 '@parcel/events': 2.16.4 '@parcel/feature-flags': 2.16.4 - '@parcel/fs': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/fs': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/logger': 2.16.4 - '@parcel/package-manager': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21))(@swc/helpers@0.5.21) - '@parcel/reporter-cli': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/reporter-dev-server': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) - '@parcel/reporter-tracer': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.21)) + '@parcel/package-manager': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23))(@swc/helpers@0.5.23) + '@parcel/reporter-cli': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/reporter-dev-server': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) + '@parcel/reporter-tracer': 2.16.4(@parcel/core@2.16.4(@swc/helpers@0.5.23)) '@parcel/utils': 2.16.4 chalk: 4.1.2 commander: 12.1.0 @@ -2503,18 +2496,18 @@ snapshots: postcss-value-parser@4.2.0: {} - prettier@3.8.1: {} + prettier@3.8.4: {} punycode.js@2.3.1: {} - react-dom@19.2.4(react@19.2.4): + react-dom@19.2.7(react@19.2.7): dependencies: - react: 19.2.4 + react: 19.2.7 scheduler: 0.27.0 react-refresh@0.16.0: {} - react@19.2.4: {} + react@19.2.7: {} regenerator-runtime@0.14.1: {} @@ -2529,7 +2522,7 @@ snapshots: scheduler@0.27.0: {} - semver@7.7.4: {} + semver@7.8.4: {} signal-exit@4.1.0: {} @@ -2548,12 +2541,12 @@ snapshots: string-width@7.2.0: dependencies: emoji-regex: 10.6.0 - get-east-asian-width: 1.5.0 + get-east-asian-width: 1.6.0 strip-ansi: 7.2.0 - string-width@8.2.0: + string-width@8.2.1: dependencies: - get-east-asian-width: 1.5.0 + get-east-asian-width: 1.6.0 strip-ansi: 7.2.0 strip-ansi@7.2.0: @@ -2566,17 +2559,17 @@ snapshots: term-size@2.2.1: {} - tinyexec@1.0.4: {} + tinyexec@1.2.4: {} - ts-node@10.9.2(@swc/core@1.15.21(@swc/helpers@0.5.21))(@types/node@24.12.2)(typescript@5.8.3): + ts-node@10.9.2(@swc/core@1.15.41(@swc/helpers@0.5.23))(@types/node@24.13.2)(typescript@5.8.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.12 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 24.12.2 - acorn: 8.16.0 + '@types/node': 24.13.2 + acorn: 8.17.0 acorn-walk: 8.3.5 arg: 4.1.3 create-require: 1.1.1 @@ -2586,7 +2579,7 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.15.21(@swc/helpers@0.5.21) + '@swc/core': 1.15.41(@swc/helpers@0.5.23) tslib@2.8.1: {} @@ -2596,24 +2589,24 @@ snapshots: type-fest@0.20.2: {} - typedoc-plugin-mdn-links@5.1.1(typedoc@0.28.18(typescript@5.8.3)): + typedoc-plugin-mdn-links@5.1.1(typedoc@0.28.19(typescript@5.8.3)): dependencies: - typedoc: 0.28.18(typescript@5.8.3) + typedoc: 0.28.19(typescript@5.8.3) - typedoc@0.28.18(typescript@5.8.3): + typedoc@0.28.19(typescript@5.8.3): dependencies: '@gerrit0/mini-shiki': 3.23.0 lunr: 2.3.9 - markdown-it: 14.1.1 + markdown-it: 14.2.0 minimatch: 10.2.5 typescript: 5.8.3 - yaml: 2.8.3 + yaml: 2.9.0 typescript@5.8.3: {} uc.micro@2.1.0: {} - undici-types@7.16.0: {} + undici-types@7.18.2: {} universalify@2.0.1: {} @@ -2629,20 +2622,26 @@ snapshots: weak-lru-cache@1.2.2: {} - web-streams-polyfill@4.2.0: {} + web-streams-polyfill@4.3.0: {} - web-utility@4.6.5(typescript@5.8.3): + web-utility@4.6.6(typescript@5.8.3): dependencies: - '@swc/helpers': 0.5.21 + '@swc/helpers': 0.5.23 regenerator-runtime: 0.14.1 typescript: 5.8.3 + wrap-ansi@10.0.0: + dependencies: + ansi-styles: 6.2.3 + string-width: 8.2.1 + strip-ansi: 7.2.0 + wrap-ansi@9.0.2: dependencies: ansi-styles: 6.2.3 string-width: 7.2.0 strip-ansi: 7.2.0 - yaml@2.8.3: {} + yaml@2.9.0: {} yn@3.1.1: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..3178635 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,9 @@ +packages: + - . +autoInstallPeers: false +allowBuilds: + '@parcel/watcher': true + '@swc/core': true + core-js: true + lmdb: true + msgpackr-extract: true diff --git a/src/Lark.ts b/src/Lark.ts index c44bc64..4014fdb 100644 --- a/src/Lark.ts +++ b/src/Lark.ts @@ -39,7 +39,7 @@ export interface LarkAppClientOption extends LarkAppBaseOption { accessToken: string; } -export interface LarkAppOption extends LarkAppServerOption, LarkAppClientOption {} +export type LarkAppOption = LarkAppServerOption & LarkAppClientOption; export class LarkApp implements LarkAppOption { host = 'https://open.feishu.cn/open-apis/'; diff --git a/src/module/BITable/index.ts b/src/module/BITable/index.ts index f2ad72c..21311b8 100644 --- a/src/module/BITable/index.ts +++ b/src/module/BITable/index.ts @@ -177,10 +177,12 @@ export type BiSearchFilter = Filter & { keywords?: string; }; -export function BiSearch = BiSearchFilter>( - Model: ReturnType> -) { - abstract class BiSearchModel extends Model { +export function BiSearch< + D extends DataObject, + F extends BiSearchFilter = BiSearchFilter, + M extends ReturnType> = ReturnType> +>(Model: M) { + abstract class BiSearchModel extends (Model as ReturnType>) { declare baseURI: string; declare client: RESTClient; diff --git a/src/module/DocumentAI/index.ts b/src/module/DocumentAI/index.ts index 06f68f4..b4ba4c0 100644 --- a/src/module/DocumentAI/index.ts +++ b/src/module/DocumentAI/index.ts @@ -1,8 +1,16 @@ -import { makeFormData } from 'koajax'; +import { makeFormData, readAs } from 'koajax'; import { BaseModel, RESTClient, toggle } from 'mobx-restful'; import { LarkData } from '../../type'; -import { TaxiInvoice, TrainInvoice, VatInvoice, VehicleInvoice } from './type'; +import { + BankCardEntity, + Contract, + Resume, + TaxiInvoice, + TrainInvoice, + VatInvoice, + VehicleInvoice +} from './type'; export * from './type'; @@ -58,4 +66,60 @@ export abstract class DocumentAIModel extends BaseModel { return body!.data!.vehicle_invoice; } + + /** + * @see {@link https://open.feishu.cn/document/server-docs/ai/optical_char_recognition-v1/basic_recognize} + */ + @toggle('uploading') + async recognizeText(image: File) { + const URI = (await readAs(image, 'dataURL').result) as string; + + const [, base64] = URI.split(','); + + const { body } = await this.client.post>( + 'optical_char_recognition/v1/image/basic_recognize', + { image: base64 } + ); + return body!.data!.text_list; + } + + /** + * @see {@link https://open.feishu.cn/document/ai/document_ai-v1/bank_card/recognize} + */ + @toggle('uploading') + async recognizeBankCard(file: File) { + const { body } = await this.client.post< + LarkData<{ bank_card: { entities: BankCardEntity[] } }> + >(`${this.baseURI}/bank_card/recognize`, makeFormData({ file })); + + return body!.data!.bank_card.entities; + } + + /** + * @see {@link https://open.feishu.cn/document/ai/document_ai-v1/resume/parse} + */ + @toggle('uploading') + async parseResume(file: File) { + const { body } = await this.client.post>( + `${this.baseURI}/resume/parse`, + makeFormData({ file }) + ); + return body!.data!.resumes; + } + + /** + * @see {@link https://open.feishu.cn/document/server-docs/ai/document_ai-v1/contract/field_extraction} + */ + @toggle('uploading') + async extractContract( + file: File, + ocr_mode: 'unused' | 'force' | 'auto' = 'auto', + pdf_page_limit = 100 + ) { + const { body } = await this.client.post>( + `${this.baseURI}/contract/field_extraction`, + makeFormData({ file, ocr_mode, pdf_page_limit }) + ); + return body!.data!; + } } diff --git a/src/module/DocumentAI/type.ts b/src/module/DocumentAI/type.ts index fdb682e..8248ead 100644 --- a/src/module/DocumentAI/type.ts +++ b/src/module/DocumentAI/type.ts @@ -1,3 +1,5 @@ +import { Gender } from '../User/type'; + export type InvoiceEntityType = | `invoice_${'code' | 'no' | 'special_seal'}` | `seller_${'name' | 'taxpayer_no'}_in_seal`; @@ -67,3 +69,130 @@ export interface VehicleInvoice { | `total_price${'' | '_little'}`; value: string; } + +export interface BankCardEntity { + type: 'card_number' | 'date_of_expiry'; + value: string; +} + +export type ResumePeriod = Record<`${'start' | 'end'}_${'date' | 'time'}`, string>; + +export enum EducationQualification { + PrimarySchool = 1, + JuniorHighSchool = 2, + VocationalHighSchool = 3, + HighSchool = 4, + AssociateDegree = 5, + BachelorDegree = 6, + MasterDegree = 7, + Doctorate = 8, + Other = 9 +} + +export interface ResumeEducation + extends ResumePeriod, Record<'school' | 'major' | 'degree', string> { + qualification: EducationQualification; +} + +export enum CareerType { + Internship = 1, + FullTime = 2 +} + +export interface ResumeCareer + extends ResumePeriod, Record<'company' | 'title' | 'type_str' | 'job_description', string> { + type: CareerType; +} + +export type ResumeProject = ResumePeriod & Record<'name' | 'title' | 'description', string>; + +export interface ResumeLanguage { + level: number; + description: string; +} + +export type ResumeAward = Record<'award' | 'date' | 'description', string>; + +export type ResumeCertificate = Record<'name' | 'desc', string>; + +export type ResumeCompetition = ResumeCertificate; + +export interface Resume + extends + Record< + | 'file_md5' + | `${'' | 'new_'}content` + | 'name' + | 'email' + | 'mobile' + | 'country_code' + | 'date_of_birth' + | `${'current' | 'home'}_location` + | 'self_evaluation', + string + >, + Record<`willing_${'positions' | 'locations'}` | 'urls' | 'social_links', string[]> { + mobile_is_virtual: boolean; + educations: ResumeEducation[]; + careers: ResumeCareer[]; + projects: ResumeProject[]; + work_year: number | null; + gender: Gender; + languages: ResumeLanguage[]; + awards: ResumeAward[]; + certificates: ResumeCertificate[]; + competitions: ResumeCompetition[]; +} + +export interface ContractPrice { + contract_price: number; + contract_price_original: string; + text: string; +} + +export type ContractInitialTerm = Record<`initial_${'time' | 'unit'}`, string>; + +export interface ContractTime extends Record< + `${'' | 'original_'}time_${'start' | 'end'}` | `text_${'start' | 'end' | 'initial_term'}`, + string +> { + initial_term: ContractInitialTerm; +} + +export interface ContractCopy extends Record<'original_copy' | 'key' | 'text', string> { + copy_num: number; +} + +export type ContractCurrency = Record<`currency_${'name' | 'text'}`, string>; + +export type ContractBodyType = 'buy' | 'sell' | 'third'; + +export type ContractContact = Record< + 'contacts' | 'id_number' | 'phone' | 'email' | 'address', + string +>; +export type ContractBodyEntity = ContractContact & Record<'legal_representative' | 'party', string>; + +export interface ContractBodyInfo { + body_type: ContractBodyType; + value: ContractBodyEntity; +} + +export type ContractBankType = `${'buy' | 'sell' | 'third' | 'uncertain'}_bank`; + +export type ContractBankEntity = ContractContact & + Record<'bank_name' | `account_${'name' | 'number'}` | 'tax_number', string>; + +export interface ContractBankInfo { + bank_type: ContractBankType; + value: ContractBankEntity; +} + +export interface Contract extends Record<'file_id' | 'header', string> { + price: ContractPrice; + time: ContractTime; + copy: ContractCopy; + currency: ContractCurrency; + body_info: ContractBodyInfo[]; + bank_info: ContractBankInfo[]; +}