diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 16604ca..19fe952 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,6 +13,9 @@ concurrency: group: ${{ github.workflow }}-${{ github.event.number || github.ref }} cancel-in-progress: true +permissions: + id-token: write + jobs: test-and-publish: name: Test & Publish @@ -74,4 +77,5 @@ jobs: env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + NPM_CONFIG_PROVENANCE: true TAG: ${{ inputs.tag }} diff --git a/package.json b/package.json index 5bf7253..bbff5ec 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,8 @@ "eslint-plugin-unicorn": "^57.0.0", "globals": "^14.0.0", "prettier": "^3.5.1", - "typescript": "^5.5.3" + "typescript": "^5.5.3", + "typescript-eslint": "^8.29.0" }, "pnpm": { "overrides": { diff --git a/packages/fetch/.prettierrc b/packages/fetch/.prettierrc new file mode 100644 index 0000000..ec2f85d --- /dev/null +++ b/packages/fetch/.prettierrc @@ -0,0 +1,6 @@ +{ + "semi": false, + "singleQuote": true, + "trailingComma": "all", + "tabWidth": 2 +} diff --git a/packages/fetch/README.md b/packages/fetch/README.md new file mode 100644 index 0000000..dd1ea38 --- /dev/null +++ b/packages/fetch/README.md @@ -0,0 +1,41 @@ +# NFDomains Fetch SDK + +> [!CAUTION] +> This module is not intended to be used +> Please see the [@txnlab/nfd-sdk](https://www.npmjs.com/package/@txnlab/nfd-sdk) +> for more information + +Fetch submodule for the NFD SDK + +## Versioning + +This module is for advanced integrators + +Once we reach v1.0.0 with all planned features, breaking changes will only be introduced via major version bumps following semantic versioning. + +## Installation + +```bash +# npm +npm install @txnlab/nfd-fetch + +# yarn +yarn add @txnlab/nfd-fetch + +# pnpm +pnpm add @txnlab/nfd-fetch +``` + +## Quick Start + +```typescript +import { client } from '@txnlab/nfd-fetch' +// TODO: +``` + +## Usage Examples (TODO) + + +## License + +MIT License diff --git a/packages/fetch/eslint.config.js b/packages/fetch/eslint.config.js new file mode 100644 index 0000000..125959d --- /dev/null +++ b/packages/fetch/eslint.config.js @@ -0,0 +1,30 @@ +import tseslint from 'typescript-eslint' +import baseConfig from '../../eslint.config.js' + +export default tseslint.config( + ...baseConfig, + { + // Source files + files: ['src/**/*.ts'], + languageOptions: { + parserOptions: { + project: './tsconfig.lib.json', + }, + }, + plugins: { + '@typescript-eslint': tseslint.plugin, + }, + rules: { + '@typescript-eslint/explicit-function-return-type': 'off', + }, + }, + { + // Config files and scripts + files: ['*.config.ts', 'scripts/**/*.ts'], + languageOptions: { + parserOptions: { + project: './tsconfig.test.json', + }, + }, + }, +) diff --git a/packages/sdk/openapi-ts.config.ts b/packages/fetch/openapi-ts.config.ts similarity index 75% rename from packages/sdk/openapi-ts.config.ts rename to packages/fetch/openapi-ts.config.ts index ada5656..f9e21e6 100644 --- a/packages/sdk/openapi-ts.config.ts +++ b/packages/fetch/openapi-ts.config.ts @@ -1,11 +1,11 @@ import { defineConfig } from '@hey-api/openapi-ts' export default defineConfig({ - input: './src/api/openapi3.yaml', + input: './src/openapi3.yaml', output: { format: 'prettier', lint: 'eslint', - path: './src/api', + path: './src', }, plugins: ['@hey-api/client-fetch'], }) diff --git a/packages/fetch/package.json b/packages/fetch/package.json new file mode 100644 index 0000000..b54a52d --- /dev/null +++ b/packages/fetch/package.json @@ -0,0 +1,92 @@ +{ + "name": "@txnlab/nfd-fetch", + "version": "0.0.1", + "description": "Fetch library for NFDomains (NFD)", + "type": "module", + "main": "./lib/index.js", + "module": "./lib/index.js", + "types": "./lib/index.d.ts", + "exports": { + ".": { + "types": "./lib/index.d.ts", + "default": "./lib/index.js" + }, + "./client": { + "types": "./lib/client.gen.d.ts", + "default": "./lib/client.gen.js" + }, + "./sdk": { + "types": "./lib/sdk.gen.d.ts", + "default": "./lib/sdk.gen.js" + }, + "./package.json": "./package.json" + }, + "files": [ + "lib", + "src", + "README.md" + ], + "keywords": [ + "algorand", + "nfd", + "nfdomains", + "blockchain", + "domains", + "fetch", + "rpc" + ], + "author": "TxnLab Inc.", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/TxnLab/nfd-sdk.git", + "directory": "packages/fetch" + }, + "bugs": { + "url": "https://github.com/TxnLab/nfd-sdk/issues" + }, + "homepage": "https://github.com/TxnLab/nfd-sdk/packages/fetch#readme", + "publishConfig": { + "access": "public", + "provenance": true + }, + "engines": { + "node": ">=22", + "pnpm": ">=9" + }, + "scripts": { + "build": "vite build && tsc-alias -p tsconfig.lib.json && publint --strict", + "test": "vitest run", + "test:watch": "vitest", + "test:ui": "vitest --ui", + "test:coverage": "vitest run --coverage", + "lint": "eslint \"**/*.{js,jsx,ts,tsx}\"", + "format": "prettier --write .", + "typecheck": "tsc --noEmit", + "fetch:openapi": "tsx scripts/fetch-openapi.ts", + "generate": "openapi-ts" + }, + "dependencies": { + "@hey-api/client-fetch": "^0.8.1", + "algosdk": "^3.2.0", + "crypto-js": "^4.2.0" + }, + "devDependencies": { + "@hey-api/openapi-ts": "^0.64.5", + "@types/node": "^22.13.9", + "@types/node-fetch": "^2.6.12", + "@vitest/coverage-v8": "^3.0.7", + "@vitest/ui": "^3.0.7", + "dotenv": "^16.4.7", + "glob": "^11.0.1", + "publint": "^0.3.6", + "tsc-alias": "^1.8.13", + "tsx": "^4.19.3", + "type-fest": "^4.37.0", + "vite": "^6.2.0", + "vite-bundle-analyzer": "^0.18.1", + "vite-plugin-dts": "^4.5.0", + "vite-tsconfig-paths": "^5.1.4", + "vitest": "^3.0.7" + } +} diff --git a/packages/sdk/scripts/fetch-openapi.ts b/packages/fetch/scripts/fetch-openapi.ts similarity index 100% rename from packages/sdk/scripts/fetch-openapi.ts rename to packages/fetch/scripts/fetch-openapi.ts diff --git a/packages/sdk/src/api/client.gen.ts b/packages/fetch/src/client.gen.ts similarity index 100% rename from packages/sdk/src/api/client.gen.ts rename to packages/fetch/src/client.gen.ts diff --git a/packages/fetch/src/index.ts b/packages/fetch/src/index.ts new file mode 100644 index 0000000..3ca5fcb --- /dev/null +++ b/packages/fetch/src/index.ts @@ -0,0 +1,4 @@ +// This file is auto-generated by @hey-api/openapi-ts +export * from './client.gen.js' +export * from './types.gen.js' +export * from './sdk.gen.js' diff --git a/packages/sdk/src/api/sdk.gen.ts b/packages/fetch/src/sdk.gen.ts similarity index 100% rename from packages/sdk/src/api/sdk.gen.ts rename to packages/fetch/src/sdk.gen.ts diff --git a/packages/sdk/src/api/types.gen.ts b/packages/fetch/src/types.gen.ts similarity index 100% rename from packages/sdk/src/api/types.gen.ts rename to packages/fetch/src/types.gen.ts diff --git a/packages/fetch/tests/client.test.ts b/packages/fetch/tests/client.test.ts new file mode 100644 index 0000000..a23504b --- /dev/null +++ b/packages/fetch/tests/client.test.ts @@ -0,0 +1,9 @@ +import { describe, it, expect, vi, beforeEach } from 'vitest' + +import { client } from '../src' + +describe('@txnlab/nfd-fetch', () => { + it('should have a client instance', () => { + expect(client).toBeDefined() + }) +}) diff --git a/packages/fetch/tsconfig.json b/packages/fetch/tsconfig.json new file mode 100644 index 0000000..0c67fcd --- /dev/null +++ b/packages/fetch/tsconfig.json @@ -0,0 +1,7 @@ +{ + "include": ["./src/**/*.ts"], + "references": [ + {"path": "./tsconfig.lib.json"}, + {"path": "./tsconfig.test.json"} + ] +} diff --git a/packages/fetch/tsconfig.lib.json b/packages/fetch/tsconfig.lib.json new file mode 100644 index 0000000..d222b46 --- /dev/null +++ b/packages/fetch/tsconfig.lib.json @@ -0,0 +1,20 @@ +{ + "include": ["src/**/*.ts"], + "exclude": [ + "node_modules", + "lib" + ], + "compilerOptions": { + "strict": true, + "ignoreDeprecations": "5.0", + "allowJs": true, + "skipLibCheck": true, + "isolatedModules": true, + "moduleResolution": "node", + "module": "esnext", + "target": "esnext", + "sourceMap": true, + "declaration": true, + "outDir": "./lib" + }, +} diff --git a/packages/fetch/tsconfig.test.json b/packages/fetch/tsconfig.test.json new file mode 100644 index 0000000..eb76aeb --- /dev/null +++ b/packages/fetch/tsconfig.test.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.lib.json", + "compilerOptions": { + "composite": true, + "paths": { + "@txnlab/nfd-fetch": ["./src/index.ts"] + } + }, + "include": [ + "tests/*", + "scripts/*", + "*.config.ts" + ], +} \ No newline at end of file diff --git a/packages/fetch/vite.config.ts b/packages/fetch/vite.config.ts new file mode 100644 index 0000000..88e9857 --- /dev/null +++ b/packages/fetch/vite.config.ts @@ -0,0 +1,53 @@ +import { dirname, extname, relative, resolve } from 'node:path'; +import { fileURLToPath } from 'node:url'; + +import { glob } from 'glob'; +import { defineConfig } from 'vite' +import { analyzer } from 'vite-bundle-analyzer'; +import dts from 'vite-plugin-dts' + +const __dirname = dirname(fileURLToPath(import.meta.url)); + +export default defineConfig({ + build: { + lib: { + entry: resolve(__dirname, 'src/index.ts'), + formats: ['es'], + }, + outDir: 'lib', + rollupOptions: { + external: [ + 'algosdk', + '@algorandfoundation/algokit-utils', + '@hey-api/client-fetch', + 'crypto-js', + ], + input: Object.fromEntries( + glob + .sync('src/**/*.ts') + .map((file) => { + return [ + relative( + 'src', + file.slice(0, file.length - extname(file).length), + ), + fileURLToPath(new URL(file, import.meta.url)), + ]; + }), + ), + output: { + compact: false, + preserveModules: true, + entryFileNames: '[name].js', + }, + }, + sourcemap: true, + minify: false, + copyPublicDir: false, + emptyOutDir: true, + }, + plugins: [ + process.env.ANALYZE ? analyzer() : undefined, + dts({ tsconfigPath: './tsconfig.lib.json' }), + ], +}) diff --git a/packages/fetch/vitest.config.ts b/packages/fetch/vitest.config.ts new file mode 100644 index 0000000..1664d62 --- /dev/null +++ b/packages/fetch/vitest.config.ts @@ -0,0 +1,28 @@ +import { resolve } from 'path' + +import { defineConfig } from 'vitest/config' + +export default defineConfig({ + test: { + globals: true, + environment: 'node', + include: ['**/*.{test,spec}.{ts,tsx}'], + exclude: ['**/node_modules/**', '**/dist/**'], + coverage: { + provider: 'v8', + reporter: ['text', 'json', 'html'], + exclude: [ + '**/node_modules/**', + '**/dist/**', + '**/*.config.*', + '**/scripts/**', + '**/tests/utils/**', + ], + }, + }, + resolve: { + alias: { + '@': resolve(__dirname, './src'), + }, + }, +}) diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 8701755..1eef761 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -35,7 +35,8 @@ "license": "MIT", "repository": { "type": "git", - "url": "git+https://github.com/TxnLab/nfd-sdk.git" + "url": "git+https://github.com/TxnLab/nfd-sdk.git", + "directory": "packages/sdk" }, "bugs": { "url": "https://github.com/TxnLab/nfd-sdk/issues" @@ -57,17 +58,16 @@ "lint": "eslint \"**/*.{js,jsx,ts,tsx}\"", "format": "prettier --write .", "typecheck": "tsc --noEmit", - "fetch:openapi": "tsx scripts/fetch-openapi.ts", "fetch:arc56": "tsx scripts/fetch-arc56.ts", "postfetch:arc56": "tsx scripts/clean-arc56.ts", - "fetch:specs": "pnpm fetch:openapi && pnpm fetch:arc56", + "fetch:specs": "pnpm fetch:arc56", "generate:clients": "algokit generate client src/contracts/minimal/ --language typescript --output src/contracts/{contract_name}Client.ts", - "generate:openapi": "openapi-ts", - "generate": "pnpm fetch:specs && pnpm generate:clients && pnpm generate:openapi" + "generate": "pnpm fetch:specs && pnpm generate:clients" }, "dependencies": { "@algorandfoundation/algokit-utils": "^8.2.2", "@hey-api/client-fetch": "^0.8.1", + "@txnlab/nfd-fetch": "workspace:*", "algosdk": "^3.2.0", "crypto-js": "^4.2.0" }, diff --git a/packages/sdk/src/api-client.ts b/packages/sdk/src/api-client.ts index 2ead793..ec639ea 100644 --- a/packages/sdk/src/api-client.ts +++ b/packages/sdk/src/api-client.ts @@ -1,5 +1,4 @@ -import { client } from './api/client.gen' -import { nfdGetLookup, nfdGetNfd, nfdSearchV2 } from './api/sdk.gen' +import { client, nfdGetLookup, nfdGetNfd, nfdSearchV2 } from '@txnlab/nfd-fetch' import { NfdApiBaseUrl, NfdRegistryId } from './constants' import { chunkArray } from './utils/internal/array' diff --git a/packages/sdk/src/api/index.ts b/packages/sdk/src/api/index.ts deleted file mode 100644 index 16b44b6..0000000 --- a/packages/sdk/src/api/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -// This file is auto-generated by @hey-api/openapi-ts -export * from './types.gen' -export * from './sdk.gen' diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2523e98..d2c73b7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -56,6 +56,9 @@ importers: typescript: specifier: ^5.5.3 version: 5.7.3 + typescript-eslint: + specifier: ^8.29.0 + version: 8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) examples/api-search: dependencies: @@ -301,6 +304,67 @@ importers: specifier: ^0.23.0 version: 0.23.0(rollup@4.34.8)(vite@4.5.9(@types/node@22.13.9)) + packages/fetch: + dependencies: + '@hey-api/client-fetch': + specifier: ^0.8.1 + version: 0.8.1 + algosdk: + specifier: ^3.2.0 + version: 3.2.0 + crypto-js: + specifier: ^4.2.0 + version: 4.2.0 + devDependencies: + '@hey-api/openapi-ts': + specifier: ^0.64.5 + version: 0.64.5(magicast@0.3.5)(typescript@5.7.3) + '@types/node': + specifier: ^22.13.9 + version: 22.13.9 + '@types/node-fetch': + specifier: ^2.6.12 + version: 2.6.12 + '@vitest/coverage-v8': + specifier: ^3.0.7 + version: 3.0.7(vitest@3.0.7) + '@vitest/ui': + specifier: ^3.0.7 + version: 3.0.7(vitest@3.0.7) + dotenv: + specifier: ^16.4.7 + version: 16.4.7 + glob: + specifier: ^11.0.1 + version: 11.0.1 + publint: + specifier: ^0.3.6 + version: 0.3.6 + tsc-alias: + specifier: ^1.8.13 + version: 1.8.13 + tsx: + specifier: ^4.19.3 + version: 4.19.3 + type-fest: + specifier: ^4.37.0 + version: 4.37.0 + vite: + specifier: ^6.2.0 + version: 6.2.0(@types/node@22.13.9)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0) + vite-bundle-analyzer: + specifier: ^0.18.1 + version: 0.18.1 + vite-plugin-dts: + specifier: ^4.5.0 + version: 4.5.0(@types/node@22.13.9)(rollup@4.34.8)(typescript@5.7.3)(vite@6.2.0(@types/node@22.13.9)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)) + vite-tsconfig-paths: + specifier: ^5.1.4 + version: 5.1.4(typescript@5.7.3)(vite@6.2.0(@types/node@22.13.9)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)) + vitest: + specifier: ^3.0.7 + version: 3.0.7(@types/node@22.13.9)(@vitest/ui@3.0.7)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0) + packages/sdk: dependencies: '@algorandfoundation/algokit-utils': @@ -309,6 +373,9 @@ importers: '@hey-api/client-fetch': specifier: ^0.8.1 version: 0.8.1 + '@txnlab/nfd-fetch': + specifier: workspace:* + version: link:../fetch algosdk: specifier: ^3.2.0 version: 3.2.0 @@ -1214,6 +1281,14 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' + '@typescript-eslint/eslint-plugin@8.29.0': + resolution: {integrity: sha512-PAIpk/U7NIS6H7TEtN45SPGLQaHNgB7wSjsQV/8+KYokAb2T/gloOA/Bee2yd4/yKVhPKe5LlaUGhAZk5zmSaQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/parser@8.25.0': resolution: {integrity: sha512-4gbs64bnbSzu4FpgMiQ1A+D+urxkoJk/kqlDJ2W//5SygaEiAP2B4GoS7TEdxgwol2el03gckFV9lJ4QOMiiHg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1221,10 +1296,21 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' + '@typescript-eslint/parser@8.29.0': + resolution: {integrity: sha512-8C0+jlNJOwQso2GapCVWWfW/rzaq7Lbme+vGUFKE31djwNncIpgXD7Cd4weEsDdkoZDjH0lwwr3QDQFuyrMg9g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/scope-manager@8.25.0': resolution: {integrity: sha512-6PPeiKIGbgStEyt4NNXa2ru5pMzQ8OYKO1hX1z53HMomrmiSB+R5FmChgQAP1ro8jMtNawz+TRQo/cSXrauTpg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/scope-manager@8.29.0': + resolution: {integrity: sha512-aO1PVsq7Gm+tcghabUpzEnVSFMCU4/nYIgC2GOatJcllvWfnhrgW0ZEbnTxm36QsikmCN1K/6ZgM7fok2I7xNw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/type-utils@8.25.0': resolution: {integrity: sha512-d77dHgHWnxmXOPJuDWO4FDWADmGQkN5+tt6SFRZz/RtCWl4pHgFl3+WdYCn16+3teG09DY6XtEpf3gGD0a186g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1232,16 +1318,33 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' + '@typescript-eslint/type-utils@8.29.0': + resolution: {integrity: sha512-ahaWQ42JAOx+NKEf5++WC/ua17q5l+j1GFrbbpVKzFL/tKVc0aYY8rVSYUpUvt2hUP1YBr7mwXzx+E/DfUWI9Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/types@8.25.0': resolution: {integrity: sha512-+vUe0Zb4tkNgznQwicsvLUJgZIRs6ITeWSCclX1q85pR1iOiaj+4uZJIUp//Z27QWu5Cseiw3O3AR8hVpax7Aw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/types@8.29.0': + resolution: {integrity: sha512-wcJL/+cOXV+RE3gjCyl/V2G877+2faqvlgtso/ZRbTCnZazh0gXhe+7gbAnfubzN2bNsBtZjDvlh7ero8uIbzg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@8.25.0': resolution: {integrity: sha512-ZPaiAKEZ6Blt/TPAx5Ot0EIB/yGtLI2EsGoY6F7XKklfMxYQyvtL+gT/UCqkMzO0BVFHLDlzvFqQzurYahxv9Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.8.0' + '@typescript-eslint/typescript-estree@8.29.0': + resolution: {integrity: sha512-yOfen3jE9ISZR/hHpU/bmNvTtBW1NjRbkSFdZOksL1N+ybPEE7UVGMwqvS6CP022Rp00Sb0tdiIkhSCe6NI8ow==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/utils@8.25.0': resolution: {integrity: sha512-syqRbrEv0J1wywiLsK60XzHnQe/kRViI3zwFALrNEgnntn1l24Ra2KvOAWwWbWZ1lBZxZljPDGOq967dsl6fkA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1249,10 +1352,21 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' + '@typescript-eslint/utils@8.29.0': + resolution: {integrity: sha512-gX/A0Mz9Bskm8avSWFcK0gP7cZpbY4AIo6B0hWYFCaIsz750oaiWR4Jr2CI+PQhfW1CpcQr9OlfPS+kMFegjXA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/visitor-keys@8.25.0': resolution: {integrity: sha512-kCYXKAum9CecGVHGij7muybDfTS2sD3t0L4bJsEZLkyrXUImiCTq1M3LG2SRtOhiHFwMR9wAFplpT6XHYjTkwQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/visitor-keys@8.29.0': + resolution: {integrity: sha512-Sne/pVz8ryR03NFK21VpN88dZ2FdQXOlq3VIklbrTYEt8yXtRFr9tvUhqvCeKjqYk5FSim37sHbooT6vzBTZcg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@vitejs/plugin-react@4.3.4': resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==} engines: {node: ^14.18.0 || >=16.0.0} @@ -1405,6 +1519,10 @@ packages: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} @@ -1430,6 +1548,10 @@ packages: resolution: {integrity: sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==} engines: {node: '>=0.10.0'} + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + array.prototype.findlast@1.2.5: resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} engines: {node: '>= 0.4'} @@ -1480,6 +1602,10 @@ packages: bignumber.js@9.1.2: resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==} + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + bn.js@4.12.1: resolution: {integrity: sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==} @@ -1593,6 +1719,10 @@ packages: resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} engines: {node: '>= 16'} + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + chokidar@4.0.3: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} @@ -1639,6 +1769,10 @@ packages: resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==} engines: {node: '>=18'} + commander@9.5.0: + resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} + engines: {node: ^12.20.0 || >=14} + compare-func@2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} @@ -1779,6 +1913,10 @@ packages: diffie-hellman@5.0.3: resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==} + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} @@ -2187,6 +2325,11 @@ packages: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true + glob@11.0.1: + resolution: {integrity: sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==} + engines: {node: 20 || >=22} + hasBin: true + global-modules@1.0.0: resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} engines: {node: '>=0.10.0'} @@ -2215,6 +2358,10 @@ packages: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + globrex@0.1.2: resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} @@ -2352,6 +2499,10 @@ packages: resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} engines: {node: '>= 0.4'} + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + is-boolean-object@1.2.2: resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} engines: {node: '>= 0.4'} @@ -2512,6 +2663,10 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + jackspeak@4.1.0: + resolution: {integrity: sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw==} + engines: {node: 20 || >=22} + jiti@2.4.2: resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} hasBin: true @@ -2623,6 +2778,10 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@11.1.0: + resolution: {integrity: sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==} + engines: {node: 20 || >=22} + lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -2698,6 +2857,10 @@ packages: minimalistic-crypto-utils@1.0.1: resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} + minimatch@10.0.1: + resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} + engines: {node: 20 || >=22} + minimatch@3.0.8: resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==} @@ -2749,6 +2912,10 @@ packages: muggle-string@0.4.1: resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + mylas@2.1.13: + resolution: {integrity: sha512-+MrqnJRtxdF+xngFfUUkIMQrUUL0KsxbADUkn23Z/4ibGg192Q+z+CQyiYwvWTsYjJygmMR8+w3ZDa98Zh6ESg==} + engines: {node: '>=12.0.0'} + nanoid@3.3.8: resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -2782,6 +2949,10 @@ packages: resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==} engines: {node: ^16.14.0 || >=18.0.0} + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + nypm@0.5.4: resolution: {integrity: sha512-X0SNNrZiGU8/e/zAB7sCTtdxWTMSIO73q+xuKgglm2Yvzwlo8UoC5FNySQFCvl84uPaeADkqHUZUkWy4aH4xOA==} engines: {node: ^14.16.0 || >=16.10.0} @@ -2904,6 +3075,14 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} + path-scurry@2.0.0: + resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} + engines: {node: 20 || >=22} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} @@ -2939,6 +3118,10 @@ packages: pkg-types@1.3.1: resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + plimit-lit@1.6.1: + resolution: {integrity: sha512-B7+VDyb8Tl6oMJT9oSO2CW8XC/T4UcJGrwOVoNGwOQsQYhlpfajmrMj5xeejqaASq3V/EqThyOeATEOMuSEXiA==} + engines: {node: '>=12'} + pluralize@8.0.0: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} @@ -3004,6 +3187,10 @@ packages: resolution: {integrity: sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==} engines: {node: '>=0.4.x'} + queue-lit@1.5.2: + resolution: {integrity: sha512-tLc36IOPeMAubu8BkW8YDBV+WyIgKlYU7zUNs0J5Vk9skSZ4JfGlPOqplP0aHdfv7HL0B2Pg6nwiq60Qc6M2Hw==} + engines: {node: '>=12'} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -3047,6 +3234,10 @@ packages: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + readdirp@4.1.2: resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} engines: {node: '>= 14.18.0'} @@ -3216,6 +3407,10 @@ packages: resolution: {integrity: sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==} engines: {node: '>=18'} + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -3386,6 +3581,11 @@ packages: peerDependencies: typescript: '>=4.8.4' + tsc-alias@1.8.13: + resolution: {integrity: sha512-hpuglrm2DoHZE62L8ntYqRNiSQ7J8kvIxEsajzY/QfGOm7EcdhgG5asqoWYi2E2KX0SqUuhOTnV8Ry8D/TnsEA==} + engines: {node: '>=16.20.2'} + hasBin: true + tsconfck@3.1.5: resolution: {integrity: sha512-CLDfGgUp7XPswWnezWwsCRxNmgQjhYq3VXHM0/XIRxhVrKw0M1if9agzryh1QS3nxjCROvV+xWxoJO1YctzzWg==} engines: {node: ^18 || >=20} @@ -3414,10 +3614,6 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - type-fest@4.35.0: - resolution: {integrity: sha512-2/AwEFQDFEy30iOLjrvHDIH7e4HEWH+f1Yl1bI5XMqzuoCUqwYCdxachgsgv0og/JdVZUhbfjcJAoHj5L1753A==} - engines: {node: '>=16'} - type-fest@4.37.0: resolution: {integrity: sha512-S/5/0kFftkq27FPNye0XM1e2NsnoD/3FS+pBmbjmmtLT6I+i344KoOf7pvXreaFsDamWeaJX55nczA1m5PsBDg==} engines: {node: '>=16'} @@ -3456,12 +3652,12 @@ packages: peerDependencies: typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x - typescript-eslint@8.25.0: - resolution: {integrity: sha512-TxRdQQLH4g7JkoFlYG3caW5v1S6kEkz8rqt80iQJZUYPq1zD1Ra7HfQBJJ88ABRaMvHAXnwRvRB4V+6sQ9xN5Q==} + typescript-eslint@8.29.0: + resolution: {integrity: sha512-ep9rVd9B4kQsZ7ZnWCVxUE/xDLUUUsRzE0poAeNu+4CkFErLfuvPt/qtm2EpnSyfvsR0S6QzDFSrPCFBwf64fg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' + typescript: '>=4.8.4 <5.9.0' typescript@5.4.2: resolution: {integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==} @@ -3538,6 +3734,10 @@ packages: validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + vite-bundle-analyzer@0.18.1: + resolution: {integrity: sha512-VQgrvxRuiZuOhM61p85lGpxzWR3TUbgn1LYtCBL09LUVoKy+yoxPwWTq+ihuPqT5L4tp0Jiiaa/dGYIRF8Guag==} + hasBin: true + vite-node@3.0.7: resolution: {integrity: sha512-2fX0QwX4GkkkpULXdT1Pf4q0tC1i1lFOyseKoonavXUNlQ77KpW2XqBGGNIm/J4Ows4KxgGJzDguYVPKwG/n5A==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -4417,7 +4617,7 @@ snapshots: typedoc: 0.27.9(typescript@5.7.3) typedoc-plugin-frontmatter: 1.2.1(typedoc-plugin-markdown@4.4.2(typedoc@0.27.9(typescript@5.7.3))) typedoc-plugin-markdown: 4.4.2(typedoc@0.27.9(typescript@5.7.3)) - typescript-eslint: 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + typescript-eslint: 8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) v8flags: 4.0.1 vite-plugin-dts: 4.2.3(@types/node@22.13.9)(rollup@4.34.8)(typescript@5.7.3)(vite@6.2.0(@types/node@22.13.9)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)) vite-plugin-externalize-deps: 0.9.0(vite@6.2.0(@types/node@22.13.9)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0)) @@ -4540,6 +4740,23 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': + dependencies: + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.29.0 + '@typescript-eslint/type-utils': 8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.29.0 + eslint: 9.21.0(jiti@2.4.2) + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + ts-api-utils: 2.0.1(typescript@5.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/parser@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: '@typescript-eslint/scope-manager': 8.25.0 @@ -4552,11 +4769,28 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/parser@8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.29.0 + '@typescript-eslint/types': 8.29.0 + '@typescript-eslint/typescript-estree': 8.29.0(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.29.0 + debug: 4.4.0 + eslint: 9.21.0(jiti@2.4.2) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/scope-manager@8.25.0': dependencies: '@typescript-eslint/types': 8.25.0 '@typescript-eslint/visitor-keys': 8.25.0 + '@typescript-eslint/scope-manager@8.29.0': + dependencies: + '@typescript-eslint/types': 8.29.0 + '@typescript-eslint/visitor-keys': 8.29.0 + '@typescript-eslint/type-utils@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: '@typescript-eslint/typescript-estree': 8.25.0(typescript@5.7.3) @@ -4568,8 +4802,21 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/type-utils@8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': + dependencies: + '@typescript-eslint/typescript-estree': 8.29.0(typescript@5.7.3) + '@typescript-eslint/utils': 8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + debug: 4.4.0 + eslint: 9.21.0(jiti@2.4.2) + ts-api-utils: 2.0.1(typescript@5.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/types@8.25.0': {} + '@typescript-eslint/types@8.29.0': {} + '@typescript-eslint/typescript-estree@8.25.0(typescript@5.7.3)': dependencies: '@typescript-eslint/types': 8.25.0 @@ -4584,6 +4831,20 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/typescript-estree@8.29.0(typescript@5.7.3)': + dependencies: + '@typescript-eslint/types': 8.29.0 + '@typescript-eslint/visitor-keys': 8.29.0 + debug: 4.4.0 + fast-glob: 3.3.3 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.7.1 + ts-api-utils: 2.0.1(typescript@5.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/utils@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@2.4.2)) @@ -4595,11 +4856,27 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/utils@8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@2.4.2)) + '@typescript-eslint/scope-manager': 8.29.0 + '@typescript-eslint/types': 8.29.0 + '@typescript-eslint/typescript-estree': 8.29.0(typescript@5.7.3) + eslint: 9.21.0(jiti@2.4.2) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/visitor-keys@8.25.0': dependencies: '@typescript-eslint/types': 8.25.0 eslint-visitor-keys: 4.2.0 + '@typescript-eslint/visitor-keys@8.29.0': + dependencies: + '@typescript-eslint/types': 8.29.0 + eslint-visitor-keys: 4.2.0 + '@vitejs/plugin-react@4.3.4(vite@4.5.9(@types/node@22.13.9))': dependencies: '@babel/core': 7.26.9 @@ -4803,6 +5080,11 @@ snapshots: ansi-styles@6.2.1: {} + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + argparse@1.0.10: dependencies: sprintf-js: 1.0.3 @@ -4829,6 +5111,8 @@ snapshots: array-slice@1.1.0: {} + array-union@2.1.0: {} + array.prototype.findlast@1.2.5: dependencies: call-bind: 1.0.8 @@ -4900,6 +5184,8 @@ snapshots: bignumber.js@9.1.2: {} + binary-extensions@2.3.0: {} + bn.js@4.12.1: {} bn.js@5.2.1: {} @@ -5050,6 +5336,18 @@ snapshots: check-error@2.1.1: {} + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + chokidar@4.0.3: dependencies: readdirp: 4.1.2 @@ -5087,6 +5385,8 @@ snapshots: commander@13.1.0: {} + commander@9.5.0: {} + compare-func@2.0.0: dependencies: array-ify: 1.0.0 @@ -5239,6 +5539,10 @@ snapshots: miller-rabin: 4.0.1 randombytes: 2.1.0 + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + doctrine@2.1.0: dependencies: esutils: 2.0.3 @@ -5852,6 +6156,15 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 + glob@11.0.1: + dependencies: + foreground-child: 3.3.1 + jackspeak: 4.1.0 + minimatch: 10.0.1 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 2.0.0 + global-modules@1.0.0: dependencies: global-prefix: 1.0.2 @@ -5879,6 +6192,15 @@ snapshots: define-properties: 1.2.1 gopd: 1.2.0 + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.3 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + globrex@0.1.2: {} gopd@1.2.0: {} @@ -6007,6 +6329,10 @@ snapshots: dependencies: has-bigints: 1.1.0 + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + is-boolean-object@1.2.2: dependencies: call-bound: 1.0.3 @@ -6169,6 +6495,10 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 + jackspeak@4.1.0: + dependencies: + '@isaacs/cliui': 8.0.2 + jiti@2.4.2: {} jju@1.4.0: {} @@ -6270,6 +6600,8 @@ snapshots: lru-cache@10.4.3: {} + lru-cache@11.1.0: {} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -6343,6 +6675,10 @@ snapshots: minimalistic-crypto-utils@1.0.1: {} + minimatch@10.0.1: + dependencies: + brace-expansion: 2.0.1 + minimatch@3.0.8: dependencies: brace-expansion: 1.1.11 @@ -6387,6 +6723,8 @@ snapshots: muggle-string@0.4.1: {} + mylas@2.1.13: {} + nanoid@3.3.8: {} natural-compare@1.4.0: {} @@ -6441,6 +6779,8 @@ snapshots: semver: 7.7.1 validate-npm-package-license: 3.0.4 + normalize-path@3.0.0: {} + nypm@0.5.4: dependencies: citty: 0.1.6 @@ -6559,7 +6899,7 @@ snapshots: dependencies: '@babel/code-frame': 7.26.2 index-to-position: 0.1.2 - type-fest: 4.35.0 + type-fest: 4.37.0 parse-passwd@1.0.0: {} @@ -6582,6 +6922,13 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 + path-scurry@2.0.0: + dependencies: + lru-cache: 11.1.0 + minipass: 7.1.2 + + path-type@4.0.0: {} + pathe@1.1.2: {} pathe@2.0.3: {} @@ -6614,6 +6961,10 @@ snapshots: mlly: 1.7.4 pathe: 2.0.3 + plimit-lit@1.6.1: + dependencies: + queue-lit: 1.5.2 + pluralize@8.0.0: {} possible-typed-array-names@1.1.0: {} @@ -6672,6 +7023,8 @@ snapshots: querystring-es3@0.2.1: {} + queue-lit@1.5.2: {} + queue-microtask@1.2.3: {} randombytes@2.1.0: @@ -6706,14 +7059,14 @@ snapshots: dependencies: find-up-simple: 1.0.0 read-pkg: 9.0.1 - type-fest: 4.35.0 + type-fest: 4.37.0 read-pkg@9.0.1: dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 6.0.2 parse-json: 8.1.0 - type-fest: 4.35.0 + type-fest: 4.37.0 unicorn-magic: 0.1.0 readable-stream@2.3.8: @@ -6732,6 +7085,10 @@ snapshots: string_decoder: 1.3.0 util-deprecate: 1.0.2 + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + readdirp@4.1.2: {} rechoir@0.8.0: @@ -6953,6 +7310,8 @@ snapshots: mrmime: 2.0.1 totalist: 3.0.1 + slash@3.0.0: {} + source-map-js@1.2.1: {} source-map@0.6.1: {} @@ -7138,6 +7497,15 @@ snapshots: dependencies: typescript: 5.7.3 + tsc-alias@1.8.13: + dependencies: + chokidar: 3.6.0 + commander: 9.5.0 + globby: 11.1.0 + mylas: 2.1.13 + normalize-path: 3.0.0 + plimit-lit: 1.6.1 + tsconfck@3.1.5(typescript@5.7.3): optionalDependencies: typescript: 5.7.3 @@ -7159,8 +7527,6 @@ snapshots: dependencies: prelude-ls: 1.2.1 - type-fest@4.35.0: {} - type-fest@4.37.0: {} typed-array-buffer@1.0.3: @@ -7214,11 +7580,11 @@ snapshots: typescript: 5.7.3 yaml: 2.7.0 - typescript-eslint@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3): + typescript-eslint@8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.25.0(@typescript-eslint/parser@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/parser': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/eslint-plugin': 8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/parser': 8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) eslint: 9.21.0(jiti@2.4.2) typescript: 5.7.3 transitivePeerDependencies: @@ -7288,6 +7654,8 @@ snapshots: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 + vite-bundle-analyzer@0.18.1: {} + vite-node@3.0.7(@types/node@22.13.9)(jiti@2.4.2)(tsx@4.19.3)(yaml@2.7.0): dependencies: cac: 6.7.14