├── .changeset
├── README.md
└── config.json
├── .github
└── workflows
│ └── publish.yml
├── .gitignore
├── .prettierignore
├── .prettierrc
├── CHANGELOG.md
├── LICENSE
├── README.md
├── package.json
├── pnpm-lock.yaml
├── renovate.json
├── src
├── db
│ ├── client.ts
│ ├── config.ts
│ └── migrations
│ │ ├── run.ts
│ │ └── schema.ts
├── index.ts
└── types
│ └── index.ts
└── tsconfig.json
/.changeset/README.md:
--------------------------------------------------------------------------------
1 | # Changesets
2 |
3 | Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
4 | with multi-package repos, or single-package repos to help you version and publish your code. You can
5 | find the full documentation for it [in our repository](https://github.com/changesets/changesets)
6 |
7 | We have a quick list of common questions to get you started engaging with this project in
8 | [our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)
9 |
--------------------------------------------------------------------------------
/.changeset/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://unpkg.com/@changesets/config@3.0.5/schema.json",
3 | "changelog": "@changesets/cli/changelog",
4 | "commit": false,
5 | "fixed": [],
6 | "linked": [],
7 | "access": "public",
8 | "baseBranch": "main",
9 | "updateInternalDependencies": "patch",
10 | "ignore": []
11 | }
12 |
--------------------------------------------------------------------------------
/.github/workflows/publish.yml:
--------------------------------------------------------------------------------
1 | name: Publish
2 | on:
3 | push:
4 | branches:
5 | - main
6 |
7 | concurrency: ${{ github.workflow }}-${{ github.ref }}
8 |
9 | jobs:
10 | publish:
11 | runs-on: ubuntu-latest
12 | steps:
13 | - uses: actions/checkout@v4
14 |
15 | - uses: pnpm/action-setup@v2
16 | with:
17 | version: 9
18 |
19 | - uses: actions/setup-node@v4
20 | with:
21 | node-version: 20
22 | cache: 'pnpm'
23 |
24 | - run: pnpm install
25 |
26 | - name: Create Release Pull Request or Publish
27 | id: changesets
28 | uses: changesets/action@v1
29 | with:
30 | publish: pnpm run release
31 | env:
32 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
33 | NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
34 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Dependencies
2 | node_modules/
3 | .pnpm-store/
4 |
5 | # Build output
6 | dist/
7 | build/
8 |
9 | # Environment variables
10 | .env
11 | .env.local
12 | .env.*.local
13 |
14 | # IDE
15 | .vscode/
16 | .idea/
17 | *.swp
18 | *.swo
19 |
20 | # Logs
21 | *.log
22 | npm-debug.log*
23 | pnpm-debug.log*
24 |
25 | # Testing
26 | coverage/
27 |
28 | # Database files
29 | *.db
30 | *.db-journal
31 |
32 | # OS
33 | .DS_Store
34 | Thumbs.db
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | # Package Managers
2 | package-lock.json
3 | pnpm-lock.yaml
4 | yarn.lock
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "useTabs": true,
3 | "singleQuote": true,
4 | "trailingComma": "all",
5 | "printWidth": 70,
6 | "proseWrap": "always"
7 | }
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # mcp-memory-libsql
2 |
3 | ## 0.0.14
4 |
5 | ### Patch Changes
6 |
7 | - 1e6b152: Refactor DatabaseManager for improved transaction handling
8 | and batch operations
9 |
10 | ## 0.0.13
11 |
12 | ### Patch Changes
13 |
14 | - c48fb84: feat: Enhance entity processing in DatabaseManager
15 |
16 | ## 0.0.12
17 |
18 | ### Patch Changes
19 |
20 | - feat: Implement delete_entity and delete_relation functionalities
21 |
22 | ## 0.0.11
23 |
24 | ### Patch Changes
25 |
26 | - 82289b4: feat: Enhance DatabaseManager with improved validation and
27 | error handling
28 |
29 | ## 0.0.10
30 |
31 | ### Patch Changes
32 |
33 | - 33d8232: update server info
34 |
35 | ## 0.0.9
36 |
37 | ### Patch Changes
38 |
39 | - 7652e39: - update server config
40 | - snek case
41 | - formatting
42 |
43 | ## 0.0.8
44 |
45 | ### Patch Changes
46 |
47 | - db5b2e8: tags
48 |
49 | ## 0.0.7
50 |
51 | ### Patch Changes
52 |
53 | - readme again!
54 |
55 | ## 0.0.6
56 |
57 | ### Patch Changes
58 |
59 | - readme update manual publish
60 |
61 | ## 0.0.5
62 |
63 | ### Patch Changes
64 |
65 | - 117063f: update readme
66 |
67 | ## 0.0.4
68 |
69 | ### Patch Changes
70 |
71 | - d2adc33: update config
72 |
73 | ## 0.0.2
74 |
75 | ### Patch Changes
76 |
77 | - update pkg.json
78 | - 7bcac90: init from personal project
79 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2025 Scott Spence
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # mcp-memory-libsql
2 |
3 | A high-performance, persistent memory system for the Model Context
4 | Protocol (MCP) powered by libSQL. This server provides vector search
5 | capabilities and efficient knowledge storage using libSQL as the
6 | backing store.
7 |
8 |
9 |
10 |
11 |
12 | ## Features
13 |
14 | - 🚀 High-performance vector search using libSQL
15 | - 💾 Persistent storage of entities and relations
16 | - 🔍 Semantic search capabilities
17 | - 🔄 Knowledge graph management
18 | - 🌐 Compatible with local and remote libSQL databases
19 | - 🔒 Secure token-based authentication for remote databases
20 |
21 | ## Configuration
22 |
23 | This server is designed to be used as part of an MCP configuration.
24 | Here are examples for different environments:
25 |
26 | ### Cline Configuration
27 |
28 | Add this to your Cline MCP settings:
29 |
30 | ```json
31 | {
32 | "mcpServers": {
33 | "mcp-memory-libsql": {
34 | "command": "npx",
35 | "args": ["-y", "mcp-memory-libsql"],
36 | "env": {
37 | "LIBSQL_URL": "file:/path/to/your/database.db"
38 | }
39 | }
40 | }
41 | }
42 | ```
43 |
44 | ### Claude Desktop with WSL Configuration
45 |
46 | For a detailed guide on setting up this server with Claude Desktop in
47 | WSL, see
48 | [Getting MCP Server Working with Claude Desktop in WSL](https://scottspence.com/posts/getting-mcp-server-working-with-claude-desktop-in-wsl).
49 |
50 | Add this to your Claude Desktop configuration for WSL environments:
51 |
52 | ```json
53 | {
54 | "mcpServers": {
55 | "mcp-memory-libsql": {
56 | "command": "wsl.exe",
57 | "args": [
58 | "bash",
59 | "-c",
60 | "source ~/.nvm/nvm.sh && LIBSQL_URL=file:/path/to/database.db /home/username/.nvm/versions/node/v20.12.1/bin/npx mcp-memory-libsql"
61 | ]
62 | }
63 | }
64 | }
65 | ```
66 |
67 | ### Database Configuration
68 |
69 | The server supports both local SQLite and remote libSQL databases
70 | through the LIBSQL_URL environment variable:
71 |
72 | For local SQLite databases:
73 |
74 | ```json
75 | {
76 | "env": {
77 | "LIBSQL_URL": "file:/path/to/database.db"
78 | }
79 | }
80 | ```
81 |
82 | For remote libSQL databases (e.g., Turso):
83 |
84 | ```json
85 | {
86 | "env": {
87 | "LIBSQL_URL": "libsql://your-database.turso.io",
88 | "LIBSQL_AUTH_TOKEN": "your-auth-token"
89 | }
90 | }
91 | ```
92 |
93 | Note: When using WSL, ensure the database path uses the Linux
94 | filesystem format (e.g., `/home/username/...`) rather than Windows
95 | format.
96 |
97 | By default, if no URL is provided, it will use `file:/memory-tool.db`
98 | in the current directory.
99 |
100 | ## API
101 |
102 | The server implements the standard MCP memory interface with
103 | additional vector search capabilities:
104 |
105 | - Entity Management
106 | - Create/Update entities with embeddings
107 | - Delete entities
108 | - Search entities by similarity
109 | - Relation Management
110 | - Create relations between entities
111 | - Delete relations
112 | - Query related entities
113 |
114 | ## Architecture
115 |
116 | The server uses a libSQL database with the following schema:
117 |
118 | - Entities table: Stores entity information and embeddings
119 | - Relations table: Stores relationships between entities
120 | - Vector search capabilities implemented using libSQL's built-in
121 | vector operations
122 |
123 | ## Development
124 |
125 | ### Publishing
126 |
127 | Due to npm 2FA requirements, publishing needs to be done manually:
128 |
129 | 1. Create a changeset (documents your changes):
130 |
131 | ```bash
132 | pnpm changeset
133 | ```
134 |
135 | 2. Version the package (updates version and CHANGELOG):
136 |
137 | ```bash
138 | pnpm changeset version
139 | ```
140 |
141 | 3. Publish to npm (will prompt for 2FA code):
142 |
143 | ```bash
144 | pnpm release
145 | ```
146 |
147 | ## Contributing
148 |
149 | Contributions are welcome! Please read our contributing guidelines
150 | before submitting pull requests.
151 |
152 | ## License
153 |
154 | MIT License - see the [LICENSE](LICENSE) file for details.
155 |
156 | ## Acknowledgments
157 |
158 | - Built on the
159 | [Model Context Protocol](https://github.com/modelcontextprotocol)
160 | - Powered by [libSQL](https://github.com/tursodatabase/libsql)
161 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "mcp-memory-libsql",
3 | "version": "0.0.14",
4 | "description": "LibSQL-based persistent memory tool for MCP",
5 | "license": "MIT",
6 | "type": "module",
7 | "main": "dist/index.js",
8 | "types": "dist/index.d.ts",
9 | "bin": {
10 | "mcp-memory-libsql": "./dist/index.js"
11 | },
12 | "files": [
13 | "dist",
14 | "README.md",
15 | "LICENSE"
16 | ],
17 | "repository": {
18 | "type": "git",
19 | "url": "https://github.com/spences10/mcp-memory-libsql"
20 | },
21 | "bugs": {
22 | "url": "https://github.com/spences10/mcp-memory-libsql/issues"
23 | },
24 | "homepage": "https://github.com/spences10/mcp-memory-libsql#readme",
25 | "keywords": [
26 | "mcp",
27 | "memory",
28 | "vector",
29 | "libsql",
30 | "knowledge-graph",
31 | "database",
32 | "vector-search",
33 | "semantic-search",
34 | "knowledge-management"
35 | ],
36 | "scripts": {
37 | "build": "tsc && chmod +x dist/index.js",
38 | "start": "node dist/index.js",
39 | "dev": "node --loader ts-node/esm src/index.ts",
40 | "test": "jest",
41 | "migrate": "node --loader ts-node/esm src/db/migrations/run.ts",
42 | "prepare": "pnpm run build",
43 | "changeset": "changeset",
44 | "version": "changeset version",
45 | "release": "pnpm run build && changeset publish"
46 | },
47 | "dependencies": {
48 | "@libsql/client": "^0.15.7",
49 | "@modelcontextprotocol/sdk": "1.11.5",
50 | "@types/node": "^22.15.21",
51 | "dotenv": "^16.5.0"
52 | },
53 | "devDependencies": {
54 | "@changesets/cli": "^2.29.4",
55 | "@types/jest": "^29.5.14",
56 | "jest": "^29.7.0",
57 | "ts-jest": "^29.3.4",
58 | "ts-node": "^10.9.2",
59 | "typescript": "^5.8.3"
60 | },
61 | "volta": {
62 | "node": "22.13.1"
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '9.0'
2 |
3 | settings:
4 | autoInstallPeers: true
5 | excludeLinksFromLockfile: false
6 |
7 | importers:
8 |
9 | .:
10 | dependencies:
11 | '@libsql/client':
12 | specifier: ^0.15.7
13 | version: 0.15.7
14 | '@modelcontextprotocol/sdk':
15 | specifier: 1.11.5
16 | version: 1.11.5
17 | '@types/node':
18 | specifier: ^22.15.21
19 | version: 22.15.21
20 | dotenv:
21 | specifier: ^16.5.0
22 | version: 16.5.0
23 | devDependencies:
24 | '@changesets/cli':
25 | specifier: ^2.29.4
26 | version: 2.29.4
27 | '@types/jest':
28 | specifier: ^29.5.14
29 | version: 29.5.14
30 | jest:
31 | specifier: ^29.7.0
32 | version: 29.7.0(@types/node@22.15.21)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3))
33 | ts-jest:
34 | specifier: ^29.3.4
35 | version: 29.3.4(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@22.15.21)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)))(typescript@5.8.3)
36 | ts-node:
37 | specifier: ^10.9.2
38 | version: 10.9.2(@types/node@22.15.21)(typescript@5.8.3)
39 | typescript:
40 | specifier: ^5.8.3
41 | version: 5.8.3
42 |
43 | packages:
44 |
45 | '@ampproject/remapping@2.3.0':
46 | resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
47 | engines: {node: '>=6.0.0'}
48 |
49 | '@babel/code-frame@7.26.2':
50 | resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==}
51 | engines: {node: '>=6.9.0'}
52 |
53 | '@babel/compat-data@7.26.5':
54 | resolution: {integrity: sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==}
55 | engines: {node: '>=6.9.0'}
56 |
57 | '@babel/core@7.26.0':
58 | resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==}
59 | engines: {node: '>=6.9.0'}
60 |
61 | '@babel/generator@7.26.5':
62 | resolution: {integrity: sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==}
63 | engines: {node: '>=6.9.0'}
64 |
65 | '@babel/helper-compilation-targets@7.26.5':
66 | resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==}
67 | engines: {node: '>=6.9.0'}
68 |
69 | '@babel/helper-module-imports@7.25.9':
70 | resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==}
71 | engines: {node: '>=6.9.0'}
72 |
73 | '@babel/helper-module-transforms@7.26.0':
74 | resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==}
75 | engines: {node: '>=6.9.0'}
76 | peerDependencies:
77 | '@babel/core': ^7.0.0
78 |
79 | '@babel/helper-plugin-utils@7.26.5':
80 | resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==}
81 | engines: {node: '>=6.9.0'}
82 |
83 | '@babel/helper-string-parser@7.25.9':
84 | resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
85 | engines: {node: '>=6.9.0'}
86 |
87 | '@babel/helper-validator-identifier@7.25.9':
88 | resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
89 | engines: {node: '>=6.9.0'}
90 |
91 | '@babel/helper-validator-option@7.25.9':
92 | resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==}
93 | engines: {node: '>=6.9.0'}
94 |
95 | '@babel/helpers@7.26.0':
96 | resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==}
97 | engines: {node: '>=6.9.0'}
98 |
99 | '@babel/parser@7.26.5':
100 | resolution: {integrity: sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==}
101 | engines: {node: '>=6.0.0'}
102 | hasBin: true
103 |
104 | '@babel/plugin-syntax-async-generators@7.8.4':
105 | resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
106 | peerDependencies:
107 | '@babel/core': ^7.0.0-0
108 |
109 | '@babel/plugin-syntax-bigint@7.8.3':
110 | resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
111 | peerDependencies:
112 | '@babel/core': ^7.0.0-0
113 |
114 | '@babel/plugin-syntax-class-properties@7.12.13':
115 | resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
116 | peerDependencies:
117 | '@babel/core': ^7.0.0-0
118 |
119 | '@babel/plugin-syntax-class-static-block@7.14.5':
120 | resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
121 | engines: {node: '>=6.9.0'}
122 | peerDependencies:
123 | '@babel/core': ^7.0.0-0
124 |
125 | '@babel/plugin-syntax-import-attributes@7.26.0':
126 | resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==}
127 | engines: {node: '>=6.9.0'}
128 | peerDependencies:
129 | '@babel/core': ^7.0.0-0
130 |
131 | '@babel/plugin-syntax-import-meta@7.10.4':
132 | resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
133 | peerDependencies:
134 | '@babel/core': ^7.0.0-0
135 |
136 | '@babel/plugin-syntax-json-strings@7.8.3':
137 | resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
138 | peerDependencies:
139 | '@babel/core': ^7.0.0-0
140 |
141 | '@babel/plugin-syntax-jsx@7.25.9':
142 | resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==}
143 | engines: {node: '>=6.9.0'}
144 | peerDependencies:
145 | '@babel/core': ^7.0.0-0
146 |
147 | '@babel/plugin-syntax-logical-assignment-operators@7.10.4':
148 | resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
149 | peerDependencies:
150 | '@babel/core': ^7.0.0-0
151 |
152 | '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3':
153 | resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
154 | peerDependencies:
155 | '@babel/core': ^7.0.0-0
156 |
157 | '@babel/plugin-syntax-numeric-separator@7.10.4':
158 | resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
159 | peerDependencies:
160 | '@babel/core': ^7.0.0-0
161 |
162 | '@babel/plugin-syntax-object-rest-spread@7.8.3':
163 | resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
164 | peerDependencies:
165 | '@babel/core': ^7.0.0-0
166 |
167 | '@babel/plugin-syntax-optional-catch-binding@7.8.3':
168 | resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
169 | peerDependencies:
170 | '@babel/core': ^7.0.0-0
171 |
172 | '@babel/plugin-syntax-optional-chaining@7.8.3':
173 | resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
174 | peerDependencies:
175 | '@babel/core': ^7.0.0-0
176 |
177 | '@babel/plugin-syntax-private-property-in-object@7.14.5':
178 | resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
179 | engines: {node: '>=6.9.0'}
180 | peerDependencies:
181 | '@babel/core': ^7.0.0-0
182 |
183 | '@babel/plugin-syntax-top-level-await@7.14.5':
184 | resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
185 | engines: {node: '>=6.9.0'}
186 | peerDependencies:
187 | '@babel/core': ^7.0.0-0
188 |
189 | '@babel/plugin-syntax-typescript@7.25.9':
190 | resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==}
191 | engines: {node: '>=6.9.0'}
192 | peerDependencies:
193 | '@babel/core': ^7.0.0-0
194 |
195 | '@babel/runtime@7.26.0':
196 | resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==}
197 | engines: {node: '>=6.9.0'}
198 |
199 | '@babel/template@7.25.9':
200 | resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==}
201 | engines: {node: '>=6.9.0'}
202 |
203 | '@babel/traverse@7.26.5':
204 | resolution: {integrity: sha512-rkOSPOw+AXbgtwUga3U4u8RpoK9FEFWBNAlTpcnkLFjL5CT+oyHNuUUC/xx6XefEJ16r38r8Bc/lfp6rYuHeJQ==}
205 | engines: {node: '>=6.9.0'}
206 |
207 | '@babel/types@7.26.5':
208 | resolution: {integrity: sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==}
209 | engines: {node: '>=6.9.0'}
210 |
211 | '@bcoe/v8-coverage@0.2.3':
212 | resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
213 |
214 | '@changesets/apply-release-plan@7.0.12':
215 | resolution: {integrity: sha512-EaET7As5CeuhTzvXTQCRZeBUcisoYPDDcXvgTE/2jmmypKp0RC7LxKj/yzqeh/1qFTZI7oDGFcL1PHRuQuketQ==}
216 |
217 | '@changesets/assemble-release-plan@6.0.8':
218 | resolution: {integrity: sha512-y8+8LvZCkKJdbUlpXFuqcavpzJR80PN0OIfn8HZdwK7Sh6MgLXm4hKY5vu6/NDoKp8lAlM4ERZCqRMLxP4m+MQ==}
219 |
220 | '@changesets/changelog-git@0.2.1':
221 | resolution: {integrity: sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q==}
222 |
223 | '@changesets/cli@2.29.4':
224 | resolution: {integrity: sha512-VW30x9oiFp/un/80+5jLeWgEU6Btj8IqOgI+X/zAYu4usVOWXjPIK5jSSlt5jsCU7/6Z7AxEkarxBxGUqkAmNg==}
225 | hasBin: true
226 |
227 | '@changesets/config@3.1.1':
228 | resolution: {integrity: sha512-bd+3Ap2TKXxljCggI0mKPfzCQKeV/TU4yO2h2C6vAihIo8tzseAn2e7klSuiyYYXvgu53zMN1OeYMIQkaQoWnA==}
229 |
230 | '@changesets/errors@0.2.0':
231 | resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==}
232 |
233 | '@changesets/get-dependents-graph@2.1.3':
234 | resolution: {integrity: sha512-gphr+v0mv2I3Oxt19VdWRRUxq3sseyUpX9DaHpTUmLj92Y10AGy+XOtV+kbM6L/fDcpx7/ISDFK6T8A/P3lOdQ==}
235 |
236 | '@changesets/get-release-plan@4.0.12':
237 | resolution: {integrity: sha512-KukdEgaafnyGryUwpHG2kZ7xJquOmWWWk5mmoeQaSvZTWH1DC5D/Sw6ClgGFYtQnOMSQhgoEbDxAbpIIayKH1g==}
238 |
239 | '@changesets/get-version-range-type@0.4.0':
240 | resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==}
241 |
242 | '@changesets/git@3.0.4':
243 | resolution: {integrity: sha512-BXANzRFkX+XcC1q/d27NKvlJ1yf7PSAgi8JG6dt8EfbHFHi4neau7mufcSca5zRhwOL8j9s6EqsxmT+s+/E6Sw==}
244 |
245 | '@changesets/logger@0.1.1':
246 | resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==}
247 |
248 | '@changesets/parse@0.4.1':
249 | resolution: {integrity: sha512-iwksMs5Bf/wUItfcg+OXrEpravm5rEd9Bf4oyIPL4kVTmJQ7PNDSd6MDYkpSJR1pn7tz/k8Zf2DhTCqX08Ou+Q==}
250 |
251 | '@changesets/pre@2.0.2':
252 | resolution: {integrity: sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug==}
253 |
254 | '@changesets/read@0.6.5':
255 | resolution: {integrity: sha512-UPzNGhsSjHD3Veb0xO/MwvasGe8eMyNrR/sT9gR8Q3DhOQZirgKhhXv/8hVsI0QpPjR004Z9iFxoJU6in3uGMg==}
256 |
257 | '@changesets/should-skip-package@0.1.2':
258 | resolution: {integrity: sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw==}
259 |
260 | '@changesets/types@4.1.0':
261 | resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==}
262 |
263 | '@changesets/types@6.1.0':
264 | resolution: {integrity: sha512-rKQcJ+o1nKNgeoYRHKOS07tAMNd3YSN0uHaJOZYjBAgxfV7TUE7JE+z4BzZdQwb5hKaYbayKN5KrYV7ODb2rAA==}
265 |
266 | '@changesets/write@0.4.0':
267 | resolution: {integrity: sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==}
268 |
269 | '@cspotcode/source-map-support@0.8.1':
270 | resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
271 | engines: {node: '>=12'}
272 |
273 | '@istanbuljs/load-nyc-config@1.1.0':
274 | resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==}
275 | engines: {node: '>=8'}
276 |
277 | '@istanbuljs/schema@0.1.3':
278 | resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
279 | engines: {node: '>=8'}
280 |
281 | '@jest/console@29.7.0':
282 | resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==}
283 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
284 |
285 | '@jest/core@29.7.0':
286 | resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==}
287 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
288 | peerDependencies:
289 | node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
290 | peerDependenciesMeta:
291 | node-notifier:
292 | optional: true
293 |
294 | '@jest/environment@29.7.0':
295 | resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==}
296 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
297 |
298 | '@jest/expect-utils@29.7.0':
299 | resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==}
300 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
301 |
302 | '@jest/expect@29.7.0':
303 | resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==}
304 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
305 |
306 | '@jest/fake-timers@29.7.0':
307 | resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==}
308 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
309 |
310 | '@jest/globals@29.7.0':
311 | resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==}
312 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
313 |
314 | '@jest/reporters@29.7.0':
315 | resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==}
316 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
317 | peerDependencies:
318 | node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
319 | peerDependenciesMeta:
320 | node-notifier:
321 | optional: true
322 |
323 | '@jest/schemas@29.6.3':
324 | resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
325 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
326 |
327 | '@jest/source-map@29.6.3':
328 | resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==}
329 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
330 |
331 | '@jest/test-result@29.7.0':
332 | resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==}
333 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
334 |
335 | '@jest/test-sequencer@29.7.0':
336 | resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==}
337 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
338 |
339 | '@jest/transform@29.7.0':
340 | resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==}
341 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
342 |
343 | '@jest/types@29.6.3':
344 | resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==}
345 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
346 |
347 | '@jridgewell/gen-mapping@0.3.8':
348 | resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
349 | engines: {node: '>=6.0.0'}
350 |
351 | '@jridgewell/resolve-uri@3.1.2':
352 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
353 | engines: {node: '>=6.0.0'}
354 |
355 | '@jridgewell/set-array@1.2.1':
356 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
357 | engines: {node: '>=6.0.0'}
358 |
359 | '@jridgewell/sourcemap-codec@1.5.0':
360 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
361 |
362 | '@jridgewell/trace-mapping@0.3.25':
363 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
364 |
365 | '@jridgewell/trace-mapping@0.3.9':
366 | resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
367 |
368 | '@libsql/client@0.15.7':
369 | resolution: {integrity: sha512-2rKekOBINDKXGwB0I5qeTDuom2944hEkWkjN8O41j95/HRKP+3sk/fq6/PoPJSuwY3pgWAS8vyby+FgOyPnIVQ==}
370 |
371 | '@libsql/core@0.15.7':
372 | resolution: {integrity: sha512-hW1++8iKAEnb7Y3EZ2zXRR+1K0MKdRT7SLaNgFkfwz6CmiIBY3sYN7VSftNS7IR6xKRvFBpoz10CC63NoFGkaQ==}
373 |
374 | '@libsql/darwin-arm64@0.5.11':
375 | resolution: {integrity: sha512-Av4+H8VypNZdbRbDKu5ogoCBHOdYh2Vx6iO7+0SACjcgnpqjnGL59lJUuX3fmV48VI6al1xORYJVApo//B5iqA==}
376 | cpu: [arm64]
377 | os: [darwin]
378 |
379 | '@libsql/darwin-x64@0.5.11':
380 | resolution: {integrity: sha512-+BXozvOKhwbye16itymY2YXeHOcIeZGORdJK2prfXA7Q2HR4/dRdUirR1o/koxxxG616uiWlAVj5WJ0j2IWkQA==}
381 | cpu: [x64]
382 | os: [darwin]
383 |
384 | '@libsql/hrana-client@0.7.0':
385 | resolution: {integrity: sha512-OF8fFQSkbL7vJY9rfuegK1R7sPgQ6kFMkDamiEccNUvieQ+3urzfDFI616oPl8V7T9zRmnTkSjMOImYCAVRVuw==}
386 |
387 | '@libsql/isomorphic-fetch@0.3.1':
388 | resolution: {integrity: sha512-6kK3SUK5Uu56zPq/Las620n5aS9xJq+jMBcNSOmjhNf/MUvdyji4vrMTqD7ptY7/4/CAVEAYDeotUz60LNQHtw==}
389 | engines: {node: '>=18.0.0'}
390 |
391 | '@libsql/isomorphic-ws@0.1.5':
392 | resolution: {integrity: sha512-DtLWIH29onUYR00i0GlQ3UdcTRC6EP4u9w/h9LxpUZJWRMARk6dQwZ6Jkd+QdwVpuAOrdxt18v0K2uIYR3fwFg==}
393 |
394 | '@libsql/linux-arm-gnueabihf@0.5.11':
395 | resolution: {integrity: sha512-znsVKbKgOerCNkIY0HjtvkioVGLskmGXZodZn3TMDRTmn1PIUt7/dnxU5moKMdKa1hKDSOC52dqF77nAdkn4UA==}
396 | cpu: [arm]
397 | os: [linux]
398 |
399 | '@libsql/linux-arm-musleabihf@0.5.11':
400 | resolution: {integrity: sha512-l4gJY6AvhQ4fUJRpjph3AW6pbiAUcVxJUH0oM5Pf/GnA9acpaDgLtle2hWMz16BSncg/Jl2jVpaJuyJsJ9E7YA==}
401 | cpu: [arm]
402 | os: [linux]
403 |
404 | '@libsql/linux-arm64-gnu@0.5.11':
405 | resolution: {integrity: sha512-axXEenVUnSKR25g0iqL/OH4z4qrPBNwdBhjTWZr613L9tnboDPAioP1kVEy77nN8C8CL/dyXh5X4vKuIwHrQpQ==}
406 | cpu: [arm64]
407 | os: [linux]
408 |
409 | '@libsql/linux-arm64-musl@0.5.11':
410 | resolution: {integrity: sha512-Pzz9dm2D78PQpy3pYKbvzBBOwdjg9c3yoQSu5QQQCGL4J5e1bZpa/p6Z3BoYBlvmdo1V36ljS6N4hRir/rnCxg==}
411 | cpu: [arm64]
412 | os: [linux]
413 |
414 | '@libsql/linux-x64-gnu@0.5.11':
415 | resolution: {integrity: sha512-DxOU0MqG7soKZFVzOo7Zot5qDajZjjOgjf/sOjeJf/aeRBr3KkKiwgWKnmjDhuhitahqc8Nu2D92/dsAuDHJsA==}
416 | cpu: [x64]
417 | os: [linux]
418 |
419 | '@libsql/linux-x64-musl@0.5.11':
420 | resolution: {integrity: sha512-uRou4r+PiDA616t2USnsjbot88ennTrwKqhVUY7S6LTPI3RiKizZg6YESCwhzofPtk8Ualp/hMQGTGSoW9DUKw==}
421 | cpu: [x64]
422 | os: [linux]
423 |
424 | '@libsql/win32-x64-msvc@0.5.11':
425 | resolution: {integrity: sha512-NES0P2pyx5XjveTYotTG03eoJwx0haJBYWXfqmcPLmbQ5u03Qmd7rxhLfWDdIRj4PrdhVProwdB0FA82ryLcKQ==}
426 | cpu: [x64]
427 | os: [win32]
428 |
429 | '@manypkg/find-root@1.1.0':
430 | resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==}
431 |
432 | '@manypkg/get-packages@1.1.3':
433 | resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==}
434 |
435 | '@modelcontextprotocol/sdk@1.11.5':
436 | resolution: {integrity: sha512-gS7Q7IHpKxjVaNLMUZyTtatZ63ca3h418zPPntAhu/MvG5yfz/8HMcDAOpvpQfx3V3dsw9QQxk8RuFNrQhLlgA==}
437 | engines: {node: '>=18'}
438 |
439 | '@neon-rs/load@0.0.4':
440 | resolution: {integrity: sha512-kTPhdZyTQxB+2wpiRcFWrDcejc4JI6tkPuS7UZCG4l6Zvc5kU/gGQ/ozvHTh1XR5tS+UlfAfGuPajjzQjCiHCw==}
441 |
442 | '@nodelib/fs.scandir@2.1.5':
443 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
444 | engines: {node: '>= 8'}
445 |
446 | '@nodelib/fs.stat@2.0.5':
447 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
448 | engines: {node: '>= 8'}
449 |
450 | '@nodelib/fs.walk@1.2.8':
451 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
452 | engines: {node: '>= 8'}
453 |
454 | '@sinclair/typebox@0.27.8':
455 | resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
456 |
457 | '@sinonjs/commons@3.0.1':
458 | resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==}
459 |
460 | '@sinonjs/fake-timers@10.3.0':
461 | resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==}
462 |
463 | '@tsconfig/node10@1.0.11':
464 | resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==}
465 |
466 | '@tsconfig/node12@1.0.11':
467 | resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
468 |
469 | '@tsconfig/node14@1.0.3':
470 | resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
471 |
472 | '@tsconfig/node16@1.0.4':
473 | resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
474 |
475 | '@types/babel__core@7.20.5':
476 | resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
477 |
478 | '@types/babel__generator@7.6.8':
479 | resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==}
480 |
481 | '@types/babel__template@7.4.4':
482 | resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
483 |
484 | '@types/babel__traverse@7.20.6':
485 | resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==}
486 |
487 | '@types/graceful-fs@4.1.9':
488 | resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==}
489 |
490 | '@types/istanbul-lib-coverage@2.0.6':
491 | resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
492 |
493 | '@types/istanbul-lib-report@3.0.3':
494 | resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==}
495 |
496 | '@types/istanbul-reports@3.0.4':
497 | resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==}
498 |
499 | '@types/jest@29.5.14':
500 | resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==}
501 |
502 | '@types/node@12.20.55':
503 | resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==}
504 |
505 | '@types/node@22.15.21':
506 | resolution: {integrity: sha512-EV/37Td6c+MgKAbkcLG6vqZ2zEYHD7bvSrzqqs2RIhbA6w3x+Dqz8MZM3sP6kGTeLrdoOgKZe+Xja7tUB2DNkQ==}
507 |
508 | '@types/stack-utils@2.0.3':
509 | resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
510 |
511 | '@types/ws@8.5.13':
512 | resolution: {integrity: sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==}
513 |
514 | '@types/yargs-parser@21.0.3':
515 | resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
516 |
517 | '@types/yargs@17.0.33':
518 | resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==}
519 |
520 | accepts@2.0.0:
521 | resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==}
522 | engines: {node: '>= 0.6'}
523 |
524 | acorn-walk@8.3.4:
525 | resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==}
526 | engines: {node: '>=0.4.0'}
527 |
528 | acorn@8.14.0:
529 | resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==}
530 | engines: {node: '>=0.4.0'}
531 | hasBin: true
532 |
533 | ajv@8.17.1:
534 | resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==}
535 |
536 | ansi-colors@4.1.3:
537 | resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
538 | engines: {node: '>=6'}
539 |
540 | ansi-escapes@4.3.2:
541 | resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
542 | engines: {node: '>=8'}
543 |
544 | ansi-regex@5.0.1:
545 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
546 | engines: {node: '>=8'}
547 |
548 | ansi-styles@4.3.0:
549 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
550 | engines: {node: '>=8'}
551 |
552 | ansi-styles@5.2.0:
553 | resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
554 | engines: {node: '>=10'}
555 |
556 | anymatch@3.1.3:
557 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
558 | engines: {node: '>= 8'}
559 |
560 | arg@4.1.3:
561 | resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
562 |
563 | argparse@1.0.10:
564 | resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
565 |
566 | array-union@2.1.0:
567 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
568 | engines: {node: '>=8'}
569 |
570 | async@3.2.6:
571 | resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==}
572 |
573 | babel-jest@29.7.0:
574 | resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==}
575 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
576 | peerDependencies:
577 | '@babel/core': ^7.8.0
578 |
579 | babel-plugin-istanbul@6.1.1:
580 | resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==}
581 | engines: {node: '>=8'}
582 |
583 | babel-plugin-jest-hoist@29.6.3:
584 | resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==}
585 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
586 |
587 | babel-preset-current-node-syntax@1.1.0:
588 | resolution: {integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==}
589 | peerDependencies:
590 | '@babel/core': ^7.0.0
591 |
592 | babel-preset-jest@29.6.3:
593 | resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==}
594 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
595 | peerDependencies:
596 | '@babel/core': ^7.0.0
597 |
598 | balanced-match@1.0.2:
599 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
600 |
601 | better-path-resolve@1.0.0:
602 | resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==}
603 | engines: {node: '>=4'}
604 |
605 | body-parser@2.1.0:
606 | resolution: {integrity: sha512-/hPxh61E+ll0Ujp24Ilm64cykicul1ypfwjVttduAiEdtnJFvLePSrIPk+HMImtNv5270wOGCb1Tns2rybMkoQ==}
607 | engines: {node: '>=18'}
608 |
609 | brace-expansion@1.1.11:
610 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
611 |
612 | brace-expansion@2.0.1:
613 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
614 |
615 | braces@3.0.3:
616 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
617 | engines: {node: '>=8'}
618 |
619 | browserslist@4.24.4:
620 | resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==}
621 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
622 | hasBin: true
623 |
624 | bs-logger@0.2.6:
625 | resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==}
626 | engines: {node: '>= 6'}
627 |
628 | bser@2.1.1:
629 | resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==}
630 |
631 | buffer-from@1.1.2:
632 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
633 |
634 | bytes@3.1.2:
635 | resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
636 | engines: {node: '>= 0.8'}
637 |
638 | call-bind-apply-helpers@1.0.2:
639 | resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
640 | engines: {node: '>= 0.4'}
641 |
642 | call-bound@1.0.3:
643 | resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==}
644 | engines: {node: '>= 0.4'}
645 |
646 | callsites@3.1.0:
647 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
648 | engines: {node: '>=6'}
649 |
650 | camelcase@5.3.1:
651 | resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
652 | engines: {node: '>=6'}
653 |
654 | camelcase@6.3.0:
655 | resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
656 | engines: {node: '>=10'}
657 |
658 | caniuse-lite@1.0.30001692:
659 | resolution: {integrity: sha512-A95VKan0kdtrsnMubMKxEKUKImOPSuCpYgxSQBo036P5YYgVIcOYJEgt/txJWqObiRQeISNCfef9nvlQ0vbV7A==}
660 |
661 | chalk@4.1.2:
662 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
663 | engines: {node: '>=10'}
664 |
665 | char-regex@1.0.2:
666 | resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
667 | engines: {node: '>=10'}
668 |
669 | chardet@0.7.0:
670 | resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
671 |
672 | ci-info@3.9.0:
673 | resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
674 | engines: {node: '>=8'}
675 |
676 | cjs-module-lexer@1.4.1:
677 | resolution: {integrity: sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==}
678 |
679 | cliui@8.0.1:
680 | resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
681 | engines: {node: '>=12'}
682 |
683 | co@4.6.0:
684 | resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
685 | engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
686 |
687 | collect-v8-coverage@1.0.2:
688 | resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==}
689 |
690 | color-convert@2.0.1:
691 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
692 | engines: {node: '>=7.0.0'}
693 |
694 | color-name@1.1.4:
695 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
696 |
697 | concat-map@0.0.1:
698 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
699 |
700 | content-disposition@1.0.0:
701 | resolution: {integrity: sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==}
702 | engines: {node: '>= 0.6'}
703 |
704 | content-type@1.0.5:
705 | resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
706 | engines: {node: '>= 0.6'}
707 |
708 | convert-source-map@2.0.0:
709 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
710 |
711 | cookie-signature@1.2.2:
712 | resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==}
713 | engines: {node: '>=6.6.0'}
714 |
715 | cookie@0.7.1:
716 | resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==}
717 | engines: {node: '>= 0.6'}
718 |
719 | cors@2.8.5:
720 | resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==}
721 | engines: {node: '>= 0.10'}
722 |
723 | create-jest@29.7.0:
724 | resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==}
725 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
726 | hasBin: true
727 |
728 | create-require@1.1.1:
729 | resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
730 |
731 | cross-spawn@7.0.6:
732 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
733 | engines: {node: '>= 8'}
734 |
735 | data-uri-to-buffer@4.0.1:
736 | resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==}
737 | engines: {node: '>= 12'}
738 |
739 | debug@2.6.9:
740 | resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
741 | peerDependencies:
742 | supports-color: '*'
743 | peerDependenciesMeta:
744 | supports-color:
745 | optional: true
746 |
747 | debug@4.3.6:
748 | resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==}
749 | engines: {node: '>=6.0'}
750 | peerDependencies:
751 | supports-color: '*'
752 | peerDependenciesMeta:
753 | supports-color:
754 | optional: true
755 |
756 | debug@4.4.0:
757 | resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
758 | engines: {node: '>=6.0'}
759 | peerDependencies:
760 | supports-color: '*'
761 | peerDependenciesMeta:
762 | supports-color:
763 | optional: true
764 |
765 | dedent@1.5.3:
766 | resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==}
767 | peerDependencies:
768 | babel-plugin-macros: ^3.1.0
769 | peerDependenciesMeta:
770 | babel-plugin-macros:
771 | optional: true
772 |
773 | deepmerge@4.3.1:
774 | resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
775 | engines: {node: '>=0.10.0'}
776 |
777 | depd@2.0.0:
778 | resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
779 | engines: {node: '>= 0.8'}
780 |
781 | destroy@1.2.0:
782 | resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
783 | engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
784 |
785 | detect-indent@6.1.0:
786 | resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==}
787 | engines: {node: '>=8'}
788 |
789 | detect-libc@2.0.2:
790 | resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==}
791 | engines: {node: '>=8'}
792 |
793 | detect-newline@3.1.0:
794 | resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
795 | engines: {node: '>=8'}
796 |
797 | diff-sequences@29.6.3:
798 | resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
799 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
800 |
801 | diff@4.0.2:
802 | resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
803 | engines: {node: '>=0.3.1'}
804 |
805 | dir-glob@3.0.1:
806 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
807 | engines: {node: '>=8'}
808 |
809 | dotenv@16.5.0:
810 | resolution: {integrity: sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==}
811 | engines: {node: '>=12'}
812 |
813 | dunder-proto@1.0.1:
814 | resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
815 | engines: {node: '>= 0.4'}
816 |
817 | ee-first@1.1.1:
818 | resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
819 |
820 | ejs@3.1.10:
821 | resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==}
822 | engines: {node: '>=0.10.0'}
823 | hasBin: true
824 |
825 | electron-to-chromium@1.5.82:
826 | resolution: {integrity: sha512-Zq16uk1hfQhyGx5GpwPAYDwddJuSGhtRhgOA2mCxANYaDT79nAeGnaXogMGng4KqLaJUVnOnuL0+TDop9nLOiA==}
827 |
828 | emittery@0.13.1:
829 | resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
830 | engines: {node: '>=12'}
831 |
832 | emoji-regex@8.0.0:
833 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
834 |
835 | encodeurl@1.0.2:
836 | resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
837 | engines: {node: '>= 0.8'}
838 |
839 | encodeurl@2.0.0:
840 | resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==}
841 | engines: {node: '>= 0.8'}
842 |
843 | enquirer@2.4.1:
844 | resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==}
845 | engines: {node: '>=8.6'}
846 |
847 | error-ex@1.3.2:
848 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
849 |
850 | es-define-property@1.0.1:
851 | resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
852 | engines: {node: '>= 0.4'}
853 |
854 | es-errors@1.3.0:
855 | resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
856 | engines: {node: '>= 0.4'}
857 |
858 | es-object-atoms@1.1.1:
859 | resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
860 | engines: {node: '>= 0.4'}
861 |
862 | escalade@3.2.0:
863 | resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
864 | engines: {node: '>=6'}
865 |
866 | escape-html@1.0.3:
867 | resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
868 |
869 | escape-string-regexp@2.0.0:
870 | resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
871 | engines: {node: '>=8'}
872 |
873 | esprima@4.0.1:
874 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
875 | engines: {node: '>=4'}
876 | hasBin: true
877 |
878 | etag@1.8.1:
879 | resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
880 | engines: {node: '>= 0.6'}
881 |
882 | eventsource-parser@3.0.0:
883 | resolution: {integrity: sha512-T1C0XCUimhxVQzW4zFipdx0SficT651NnkR0ZSH3yQwh+mFMdLfgjABVi4YtMTtaL4s168593DaoaRLMqryavA==}
884 | engines: {node: '>=18.0.0'}
885 |
886 | eventsource@3.0.2:
887 | resolution: {integrity: sha512-YolzkJNxsTL3tCJMWFxpxtG2sCjbZ4LQUBUrkdaJK0ub0p6lmJt+2+1SwhKjLc652lpH9L/79Ptez972H9tphw==}
888 | engines: {node: '>=18.0.0'}
889 |
890 | execa@5.1.1:
891 | resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
892 | engines: {node: '>=10'}
893 |
894 | exit@0.1.2:
895 | resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
896 | engines: {node: '>= 0.8.0'}
897 |
898 | expect@29.7.0:
899 | resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==}
900 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
901 |
902 | express-rate-limit@7.5.0:
903 | resolution: {integrity: sha512-eB5zbQh5h+VenMPM3fh+nw1YExi5nMr6HUCR62ELSP11huvxm/Uir1H1QEyTkk5QX6A58pX6NmaTMceKZ0Eodg==}
904 | engines: {node: '>= 16'}
905 | peerDependencies:
906 | express: ^4.11 || 5 || ^5.0.0-beta.1
907 |
908 | express@5.0.1:
909 | resolution: {integrity: sha512-ORF7g6qGnD+YtUG9yx4DFoqCShNMmUKiXuT5oWMHiOvt/4WFbHC6yCwQMTSBMno7AqntNCAzzcnnjowRkTL9eQ==}
910 | engines: {node: '>= 18'}
911 |
912 | extendable-error@0.1.7:
913 | resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==}
914 |
915 | external-editor@3.1.0:
916 | resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
917 | engines: {node: '>=4'}
918 |
919 | fast-deep-equal@3.1.3:
920 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
921 |
922 | fast-glob@3.3.3:
923 | resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
924 | engines: {node: '>=8.6.0'}
925 |
926 | fast-json-stable-stringify@2.1.0:
927 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
928 |
929 | fast-uri@3.0.6:
930 | resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==}
931 |
932 | fastq@1.18.0:
933 | resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==}
934 |
935 | fb-watchman@2.0.2:
936 | resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
937 |
938 | fetch-blob@3.2.0:
939 | resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==}
940 | engines: {node: ^12.20 || >= 14.13}
941 |
942 | filelist@1.0.4:
943 | resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
944 |
945 | fill-range@7.1.1:
946 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
947 | engines: {node: '>=8'}
948 |
949 | finalhandler@2.0.0:
950 | resolution: {integrity: sha512-MX6Zo2adDViYh+GcxxB1dpO43eypOGUOL12rLCOTMQv/DfIbpSJUy4oQIIZhVZkH9e+bZWKMon0XHFEju16tkQ==}
951 | engines: {node: '>= 0.8'}
952 |
953 | find-up@4.1.0:
954 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
955 | engines: {node: '>=8'}
956 |
957 | formdata-polyfill@4.0.10:
958 | resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==}
959 | engines: {node: '>=12.20.0'}
960 |
961 | forwarded@0.2.0:
962 | resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
963 | engines: {node: '>= 0.6'}
964 |
965 | fresh@0.5.2:
966 | resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
967 | engines: {node: '>= 0.6'}
968 |
969 | fresh@2.0.0:
970 | resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==}
971 | engines: {node: '>= 0.8'}
972 |
973 | fs-extra@7.0.1:
974 | resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==}
975 | engines: {node: '>=6 <7 || >=8'}
976 |
977 | fs-extra@8.1.0:
978 | resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==}
979 | engines: {node: '>=6 <7 || >=8'}
980 |
981 | fs.realpath@1.0.0:
982 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
983 |
984 | fsevents@2.3.3:
985 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
986 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
987 | os: [darwin]
988 |
989 | function-bind@1.1.2:
990 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
991 |
992 | gensync@1.0.0-beta.2:
993 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
994 | engines: {node: '>=6.9.0'}
995 |
996 | get-caller-file@2.0.5:
997 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
998 | engines: {node: 6.* || 8.* || >= 10.*}
999 |
1000 | get-intrinsic@1.3.0:
1001 | resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
1002 | engines: {node: '>= 0.4'}
1003 |
1004 | get-package-type@0.1.0:
1005 | resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==}
1006 | engines: {node: '>=8.0.0'}
1007 |
1008 | get-proto@1.0.1:
1009 | resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
1010 | engines: {node: '>= 0.4'}
1011 |
1012 | get-stream@6.0.1:
1013 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
1014 | engines: {node: '>=10'}
1015 |
1016 | glob-parent@5.1.2:
1017 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
1018 | engines: {node: '>= 6'}
1019 |
1020 | glob@7.2.3:
1021 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
1022 | deprecated: Glob versions prior to v9 are no longer supported
1023 |
1024 | globals@11.12.0:
1025 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
1026 | engines: {node: '>=4'}
1027 |
1028 | globby@11.1.0:
1029 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
1030 | engines: {node: '>=10'}
1031 |
1032 | gopd@1.2.0:
1033 | resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
1034 | engines: {node: '>= 0.4'}
1035 |
1036 | graceful-fs@4.2.11:
1037 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
1038 |
1039 | has-flag@4.0.0:
1040 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
1041 | engines: {node: '>=8'}
1042 |
1043 | has-symbols@1.1.0:
1044 | resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
1045 | engines: {node: '>= 0.4'}
1046 |
1047 | hasown@2.0.2:
1048 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
1049 | engines: {node: '>= 0.4'}
1050 |
1051 | html-escaper@2.0.2:
1052 | resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
1053 |
1054 | http-errors@2.0.0:
1055 | resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
1056 | engines: {node: '>= 0.8'}
1057 |
1058 | human-id@4.1.1:
1059 | resolution: {integrity: sha512-3gKm/gCSUipeLsRYZbbdA1BD83lBoWUkZ7G9VFrhWPAU76KwYo5KR8V28bpoPm/ygy0x5/GCbpRQdY7VLYCoIg==}
1060 | hasBin: true
1061 |
1062 | human-signals@2.1.0:
1063 | resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
1064 | engines: {node: '>=10.17.0'}
1065 |
1066 | iconv-lite@0.4.24:
1067 | resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
1068 | engines: {node: '>=0.10.0'}
1069 |
1070 | iconv-lite@0.5.2:
1071 | resolution: {integrity: sha512-kERHXvpSaB4aU3eANwidg79K8FlrN77m8G9V+0vOR3HYaRifrlwMEpT7ZBJqLSEIHnEgJTHcWK82wwLwwKwtag==}
1072 | engines: {node: '>=0.10.0'}
1073 |
1074 | iconv-lite@0.6.3:
1075 | resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
1076 | engines: {node: '>=0.10.0'}
1077 |
1078 | ignore@5.3.2:
1079 | resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
1080 | engines: {node: '>= 4'}
1081 |
1082 | import-local@3.2.0:
1083 | resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==}
1084 | engines: {node: '>=8'}
1085 | hasBin: true
1086 |
1087 | imurmurhash@0.1.4:
1088 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
1089 | engines: {node: '>=0.8.19'}
1090 |
1091 | inflight@1.0.6:
1092 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
1093 | deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
1094 |
1095 | inherits@2.0.4:
1096 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
1097 |
1098 | ipaddr.js@1.9.1:
1099 | resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
1100 | engines: {node: '>= 0.10'}
1101 |
1102 | is-arrayish@0.2.1:
1103 | resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
1104 |
1105 | is-core-module@2.16.1:
1106 | resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==}
1107 | engines: {node: '>= 0.4'}
1108 |
1109 | is-extglob@2.1.1:
1110 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
1111 | engines: {node: '>=0.10.0'}
1112 |
1113 | is-fullwidth-code-point@3.0.0:
1114 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
1115 | engines: {node: '>=8'}
1116 |
1117 | is-generator-fn@2.1.0:
1118 | resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==}
1119 | engines: {node: '>=6'}
1120 |
1121 | is-glob@4.0.3:
1122 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
1123 | engines: {node: '>=0.10.0'}
1124 |
1125 | is-number@7.0.0:
1126 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
1127 | engines: {node: '>=0.12.0'}
1128 |
1129 | is-promise@4.0.0:
1130 | resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==}
1131 |
1132 | is-stream@2.0.1:
1133 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
1134 | engines: {node: '>=8'}
1135 |
1136 | is-subdir@1.2.0:
1137 | resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==}
1138 | engines: {node: '>=4'}
1139 |
1140 | is-windows@1.0.2:
1141 | resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
1142 | engines: {node: '>=0.10.0'}
1143 |
1144 | isexe@2.0.0:
1145 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
1146 |
1147 | istanbul-lib-coverage@3.2.2:
1148 | resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
1149 | engines: {node: '>=8'}
1150 |
1151 | istanbul-lib-instrument@5.2.1:
1152 | resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
1153 | engines: {node: '>=8'}
1154 |
1155 | istanbul-lib-instrument@6.0.3:
1156 | resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==}
1157 | engines: {node: '>=10'}
1158 |
1159 | istanbul-lib-report@3.0.1:
1160 | resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
1161 | engines: {node: '>=10'}
1162 |
1163 | istanbul-lib-source-maps@4.0.1:
1164 | resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
1165 | engines: {node: '>=10'}
1166 |
1167 | istanbul-reports@3.1.7:
1168 | resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==}
1169 | engines: {node: '>=8'}
1170 |
1171 | jake@10.9.2:
1172 | resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==}
1173 | engines: {node: '>=10'}
1174 | hasBin: true
1175 |
1176 | jest-changed-files@29.7.0:
1177 | resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==}
1178 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1179 |
1180 | jest-circus@29.7.0:
1181 | resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==}
1182 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1183 |
1184 | jest-cli@29.7.0:
1185 | resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==}
1186 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1187 | hasBin: true
1188 | peerDependencies:
1189 | node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
1190 | peerDependenciesMeta:
1191 | node-notifier:
1192 | optional: true
1193 |
1194 | jest-config@29.7.0:
1195 | resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==}
1196 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1197 | peerDependencies:
1198 | '@types/node': '*'
1199 | ts-node: '>=9.0.0'
1200 | peerDependenciesMeta:
1201 | '@types/node':
1202 | optional: true
1203 | ts-node:
1204 | optional: true
1205 |
1206 | jest-diff@29.7.0:
1207 | resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==}
1208 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1209 |
1210 | jest-docblock@29.7.0:
1211 | resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==}
1212 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1213 |
1214 | jest-each@29.7.0:
1215 | resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==}
1216 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1217 |
1218 | jest-environment-node@29.7.0:
1219 | resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==}
1220 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1221 |
1222 | jest-get-type@29.6.3:
1223 | resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==}
1224 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1225 |
1226 | jest-haste-map@29.7.0:
1227 | resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==}
1228 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1229 |
1230 | jest-leak-detector@29.7.0:
1231 | resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==}
1232 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1233 |
1234 | jest-matcher-utils@29.7.0:
1235 | resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==}
1236 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1237 |
1238 | jest-message-util@29.7.0:
1239 | resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==}
1240 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1241 |
1242 | jest-mock@29.7.0:
1243 | resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==}
1244 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1245 |
1246 | jest-pnp-resolver@1.2.3:
1247 | resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==}
1248 | engines: {node: '>=6'}
1249 | peerDependencies:
1250 | jest-resolve: '*'
1251 | peerDependenciesMeta:
1252 | jest-resolve:
1253 | optional: true
1254 |
1255 | jest-regex-util@29.6.3:
1256 | resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==}
1257 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1258 |
1259 | jest-resolve-dependencies@29.7.0:
1260 | resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==}
1261 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1262 |
1263 | jest-resolve@29.7.0:
1264 | resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==}
1265 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1266 |
1267 | jest-runner@29.7.0:
1268 | resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==}
1269 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1270 |
1271 | jest-runtime@29.7.0:
1272 | resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==}
1273 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1274 |
1275 | jest-snapshot@29.7.0:
1276 | resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==}
1277 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1278 |
1279 | jest-util@29.7.0:
1280 | resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==}
1281 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1282 |
1283 | jest-validate@29.7.0:
1284 | resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==}
1285 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1286 |
1287 | jest-watcher@29.7.0:
1288 | resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==}
1289 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1290 |
1291 | jest-worker@29.7.0:
1292 | resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==}
1293 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1294 |
1295 | jest@29.7.0:
1296 | resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==}
1297 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1298 | hasBin: true
1299 | peerDependencies:
1300 | node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
1301 | peerDependenciesMeta:
1302 | node-notifier:
1303 | optional: true
1304 |
1305 | js-base64@3.7.7:
1306 | resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==}
1307 |
1308 | js-tokens@4.0.0:
1309 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
1310 |
1311 | js-yaml@3.14.1:
1312 | resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
1313 | hasBin: true
1314 |
1315 | jsesc@3.1.0:
1316 | resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
1317 | engines: {node: '>=6'}
1318 | hasBin: true
1319 |
1320 | json-parse-even-better-errors@2.3.1:
1321 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
1322 |
1323 | json-schema-traverse@1.0.0:
1324 | resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
1325 |
1326 | json5@2.2.3:
1327 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
1328 | engines: {node: '>=6'}
1329 | hasBin: true
1330 |
1331 | jsonfile@4.0.0:
1332 | resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==}
1333 |
1334 | kleur@3.0.3:
1335 | resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
1336 | engines: {node: '>=6'}
1337 |
1338 | leven@3.1.0:
1339 | resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
1340 | engines: {node: '>=6'}
1341 |
1342 | libsql@0.5.11:
1343 | resolution: {integrity: sha512-P2xY1nL2Jl7oM75LcguAEYqouVcevWhLWT8RU/p9ldaqQx5s/chF9t5ZFXPWP0x9myQQ4SguRqPO+FqdnCzKQg==}
1344 | cpu: [x64, arm64, wasm32, arm]
1345 | os: [darwin, linux, win32]
1346 |
1347 | lines-and-columns@1.2.4:
1348 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
1349 |
1350 | locate-path@5.0.0:
1351 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
1352 | engines: {node: '>=8'}
1353 |
1354 | lodash.memoize@4.1.2:
1355 | resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
1356 |
1357 | lodash.startcase@4.4.0:
1358 | resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==}
1359 |
1360 | lru-cache@5.1.1:
1361 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
1362 |
1363 | make-dir@4.0.0:
1364 | resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
1365 | engines: {node: '>=10'}
1366 |
1367 | make-error@1.3.6:
1368 | resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
1369 |
1370 | makeerror@1.0.12:
1371 | resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
1372 |
1373 | math-intrinsics@1.1.0:
1374 | resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
1375 | engines: {node: '>= 0.4'}
1376 |
1377 | media-typer@1.1.0:
1378 | resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==}
1379 | engines: {node: '>= 0.8'}
1380 |
1381 | merge-descriptors@2.0.0:
1382 | resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==}
1383 | engines: {node: '>=18'}
1384 |
1385 | merge-stream@2.0.0:
1386 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
1387 |
1388 | merge2@1.4.1:
1389 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
1390 | engines: {node: '>= 8'}
1391 |
1392 | methods@1.1.2:
1393 | resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
1394 | engines: {node: '>= 0.6'}
1395 |
1396 | micromatch@4.0.8:
1397 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
1398 | engines: {node: '>=8.6'}
1399 |
1400 | mime-db@1.52.0:
1401 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
1402 | engines: {node: '>= 0.6'}
1403 |
1404 | mime-db@1.53.0:
1405 | resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==}
1406 | engines: {node: '>= 0.6'}
1407 |
1408 | mime-types@2.1.35:
1409 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
1410 | engines: {node: '>= 0.6'}
1411 |
1412 | mime-types@3.0.0:
1413 | resolution: {integrity: sha512-XqoSHeCGjVClAmoGFG3lVFqQFRIrTVw2OH3axRqAcfaw+gHWIfnASS92AV+Rl/mk0MupgZTRHQOjxY6YVnzK5w==}
1414 | engines: {node: '>= 0.6'}
1415 |
1416 | mimic-fn@2.1.0:
1417 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
1418 | engines: {node: '>=6'}
1419 |
1420 | minimatch@3.1.2:
1421 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
1422 |
1423 | minimatch@5.1.6:
1424 | resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
1425 | engines: {node: '>=10'}
1426 |
1427 | mri@1.2.0:
1428 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
1429 | engines: {node: '>=4'}
1430 |
1431 | ms@2.0.0:
1432 | resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
1433 |
1434 | ms@2.1.2:
1435 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
1436 |
1437 | ms@2.1.3:
1438 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
1439 |
1440 | natural-compare@1.4.0:
1441 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
1442 |
1443 | negotiator@1.0.0:
1444 | resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==}
1445 | engines: {node: '>= 0.6'}
1446 |
1447 | node-domexception@1.0.0:
1448 | resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
1449 | engines: {node: '>=10.5.0'}
1450 | deprecated: Use your platform's native DOMException instead
1451 |
1452 | node-fetch@3.3.2:
1453 | resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==}
1454 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
1455 |
1456 | node-int64@0.4.0:
1457 | resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
1458 |
1459 | node-releases@2.0.19:
1460 | resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
1461 |
1462 | normalize-path@3.0.0:
1463 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
1464 | engines: {node: '>=0.10.0'}
1465 |
1466 | npm-run-path@4.0.1:
1467 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
1468 | engines: {node: '>=8'}
1469 |
1470 | object-assign@4.1.1:
1471 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
1472 | engines: {node: '>=0.10.0'}
1473 |
1474 | object-inspect@1.13.4:
1475 | resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
1476 | engines: {node: '>= 0.4'}
1477 |
1478 | on-finished@2.4.1:
1479 | resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
1480 | engines: {node: '>= 0.8'}
1481 |
1482 | once@1.4.0:
1483 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
1484 |
1485 | onetime@5.1.2:
1486 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
1487 | engines: {node: '>=6'}
1488 |
1489 | os-tmpdir@1.0.2:
1490 | resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
1491 | engines: {node: '>=0.10.0'}
1492 |
1493 | outdent@0.5.0:
1494 | resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==}
1495 |
1496 | p-filter@2.1.0:
1497 | resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==}
1498 | engines: {node: '>=8'}
1499 |
1500 | p-limit@2.3.0:
1501 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
1502 | engines: {node: '>=6'}
1503 |
1504 | p-limit@3.1.0:
1505 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
1506 | engines: {node: '>=10'}
1507 |
1508 | p-locate@4.1.0:
1509 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
1510 | engines: {node: '>=8'}
1511 |
1512 | p-map@2.1.0:
1513 | resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==}
1514 | engines: {node: '>=6'}
1515 |
1516 | p-try@2.2.0:
1517 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
1518 | engines: {node: '>=6'}
1519 |
1520 | package-manager-detector@0.2.8:
1521 | resolution: {integrity: sha512-ts9KSdroZisdvKMWVAVCXiKqnqNfXz4+IbrBG8/BWx/TR5le+jfenvoBuIZ6UWM9nz47W7AbD9qYfAwfWMIwzA==}
1522 |
1523 | parse-json@5.2.0:
1524 | resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
1525 | engines: {node: '>=8'}
1526 |
1527 | parseurl@1.3.3:
1528 | resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
1529 | engines: {node: '>= 0.8'}
1530 |
1531 | path-exists@4.0.0:
1532 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
1533 | engines: {node: '>=8'}
1534 |
1535 | path-is-absolute@1.0.1:
1536 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
1537 | engines: {node: '>=0.10.0'}
1538 |
1539 | path-key@3.1.1:
1540 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
1541 | engines: {node: '>=8'}
1542 |
1543 | path-parse@1.0.7:
1544 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
1545 |
1546 | path-to-regexp@8.2.0:
1547 | resolution: {integrity: sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==}
1548 | engines: {node: '>=16'}
1549 |
1550 | path-type@4.0.0:
1551 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
1552 | engines: {node: '>=8'}
1553 |
1554 | picocolors@1.1.1:
1555 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
1556 |
1557 | picomatch@2.3.1:
1558 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
1559 | engines: {node: '>=8.6'}
1560 |
1561 | pify@4.0.1:
1562 | resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
1563 | engines: {node: '>=6'}
1564 |
1565 | pirates@4.0.6:
1566 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
1567 | engines: {node: '>= 6'}
1568 |
1569 | pkce-challenge@5.0.0:
1570 | resolution: {integrity: sha512-ueGLflrrnvwB3xuo/uGob5pd5FN7l0MsLf0Z87o/UQmRtwjvfylfc9MurIxRAWywCYTgrvpXBcqjV4OfCYGCIQ==}
1571 | engines: {node: '>=16.20.0'}
1572 |
1573 | pkg-dir@4.2.0:
1574 | resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
1575 | engines: {node: '>=8'}
1576 |
1577 | prettier@2.8.8:
1578 | resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==}
1579 | engines: {node: '>=10.13.0'}
1580 | hasBin: true
1581 |
1582 | pretty-format@29.7.0:
1583 | resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
1584 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1585 |
1586 | promise-limit@2.7.0:
1587 | resolution: {integrity: sha512-7nJ6v5lnJsXwGprnGXga4wx6d1POjvi5Qmf1ivTRxTjH4Z/9Czja/UCMLVmB9N93GeWOU93XaFaEt6jbuoagNw==}
1588 |
1589 | prompts@2.4.2:
1590 | resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
1591 | engines: {node: '>= 6'}
1592 |
1593 | proxy-addr@2.0.7:
1594 | resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
1595 | engines: {node: '>= 0.10'}
1596 |
1597 | pure-rand@6.1.0:
1598 | resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==}
1599 |
1600 | qs@6.13.0:
1601 | resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==}
1602 | engines: {node: '>=0.6'}
1603 |
1604 | qs@6.14.0:
1605 | resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==}
1606 | engines: {node: '>=0.6'}
1607 |
1608 | queue-microtask@1.2.3:
1609 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
1610 |
1611 | range-parser@1.2.1:
1612 | resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
1613 | engines: {node: '>= 0.6'}
1614 |
1615 | raw-body@3.0.0:
1616 | resolution: {integrity: sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==}
1617 | engines: {node: '>= 0.8'}
1618 |
1619 | react-is@18.3.1:
1620 | resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==}
1621 |
1622 | read-yaml-file@1.1.0:
1623 | resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==}
1624 | engines: {node: '>=6'}
1625 |
1626 | regenerator-runtime@0.14.1:
1627 | resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
1628 |
1629 | require-directory@2.1.1:
1630 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
1631 | engines: {node: '>=0.10.0'}
1632 |
1633 | require-from-string@2.0.2:
1634 | resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
1635 | engines: {node: '>=0.10.0'}
1636 |
1637 | resolve-cwd@3.0.0:
1638 | resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
1639 | engines: {node: '>=8'}
1640 |
1641 | resolve-from@5.0.0:
1642 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
1643 | engines: {node: '>=8'}
1644 |
1645 | resolve.exports@2.0.3:
1646 | resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==}
1647 | engines: {node: '>=10'}
1648 |
1649 | resolve@1.22.10:
1650 | resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==}
1651 | engines: {node: '>= 0.4'}
1652 | hasBin: true
1653 |
1654 | reusify@1.0.4:
1655 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
1656 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
1657 |
1658 | router@2.1.0:
1659 | resolution: {integrity: sha512-/m/NSLxeYEgWNtyC+WtNHCF7jbGxOibVWKnn+1Psff4dJGOfoXP+MuC/f2CwSmyiHdOIzYnYFp4W6GxWfekaLA==}
1660 | engines: {node: '>= 18'}
1661 |
1662 | run-parallel@1.2.0:
1663 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
1664 |
1665 | safe-buffer@5.2.1:
1666 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
1667 |
1668 | safer-buffer@2.1.2:
1669 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
1670 |
1671 | semver@6.3.1:
1672 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
1673 | hasBin: true
1674 |
1675 | semver@7.7.1:
1676 | resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==}
1677 | engines: {node: '>=10'}
1678 | hasBin: true
1679 |
1680 | semver@7.7.2:
1681 | resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==}
1682 | engines: {node: '>=10'}
1683 | hasBin: true
1684 |
1685 | send@1.1.0:
1686 | resolution: {integrity: sha512-v67WcEouB5GxbTWL/4NeToqcZiAWEq90N888fczVArY8A79J0L4FD7vj5hm3eUMua5EpoQ59wa/oovY6TLvRUA==}
1687 | engines: {node: '>= 18'}
1688 |
1689 | serve-static@2.1.0:
1690 | resolution: {integrity: sha512-A3We5UfEjG8Z7VkDv6uItWw6HY2bBSBJT1KtVESn6EOoOr2jAxNhxWCLY3jDE2WcuHXByWju74ck3ZgLwL8xmA==}
1691 | engines: {node: '>= 18'}
1692 |
1693 | setprototypeof@1.2.0:
1694 | resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
1695 |
1696 | shebang-command@2.0.0:
1697 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
1698 | engines: {node: '>=8'}
1699 |
1700 | shebang-regex@3.0.0:
1701 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
1702 | engines: {node: '>=8'}
1703 |
1704 | side-channel-list@1.0.0:
1705 | resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
1706 | engines: {node: '>= 0.4'}
1707 |
1708 | side-channel-map@1.0.1:
1709 | resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==}
1710 | engines: {node: '>= 0.4'}
1711 |
1712 | side-channel-weakmap@1.0.2:
1713 | resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==}
1714 | engines: {node: '>= 0.4'}
1715 |
1716 | side-channel@1.1.0:
1717 | resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
1718 | engines: {node: '>= 0.4'}
1719 |
1720 | signal-exit@3.0.7:
1721 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
1722 |
1723 | signal-exit@4.1.0:
1724 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
1725 | engines: {node: '>=14'}
1726 |
1727 | sisteransi@1.0.5:
1728 | resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
1729 |
1730 | slash@3.0.0:
1731 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
1732 | engines: {node: '>=8'}
1733 |
1734 | source-map-support@0.5.13:
1735 | resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==}
1736 |
1737 | source-map@0.6.1:
1738 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
1739 | engines: {node: '>=0.10.0'}
1740 |
1741 | spawndamnit@3.0.1:
1742 | resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==}
1743 |
1744 | sprintf-js@1.0.3:
1745 | resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
1746 |
1747 | stack-utils@2.0.6:
1748 | resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
1749 | engines: {node: '>=10'}
1750 |
1751 | statuses@2.0.1:
1752 | resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
1753 | engines: {node: '>= 0.8'}
1754 |
1755 | string-length@4.0.2:
1756 | resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==}
1757 | engines: {node: '>=10'}
1758 |
1759 | string-width@4.2.3:
1760 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
1761 | engines: {node: '>=8'}
1762 |
1763 | strip-ansi@6.0.1:
1764 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
1765 | engines: {node: '>=8'}
1766 |
1767 | strip-bom@3.0.0:
1768 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
1769 | engines: {node: '>=4'}
1770 |
1771 | strip-bom@4.0.0:
1772 | resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
1773 | engines: {node: '>=8'}
1774 |
1775 | strip-final-newline@2.0.0:
1776 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
1777 | engines: {node: '>=6'}
1778 |
1779 | strip-json-comments@3.1.1:
1780 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
1781 | engines: {node: '>=8'}
1782 |
1783 | supports-color@7.2.0:
1784 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
1785 | engines: {node: '>=8'}
1786 |
1787 | supports-color@8.1.1:
1788 | resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
1789 | engines: {node: '>=10'}
1790 |
1791 | supports-preserve-symlinks-flag@1.0.0:
1792 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
1793 | engines: {node: '>= 0.4'}
1794 |
1795 | term-size@2.2.1:
1796 | resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==}
1797 | engines: {node: '>=8'}
1798 |
1799 | test-exclude@6.0.0:
1800 | resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
1801 | engines: {node: '>=8'}
1802 |
1803 | tmp@0.0.33:
1804 | resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
1805 | engines: {node: '>=0.6.0'}
1806 |
1807 | tmpl@1.0.5:
1808 | resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
1809 |
1810 | to-regex-range@5.0.1:
1811 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
1812 | engines: {node: '>=8.0'}
1813 |
1814 | toidentifier@1.0.1:
1815 | resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
1816 | engines: {node: '>=0.6'}
1817 |
1818 | ts-jest@29.3.4:
1819 | resolution: {integrity: sha512-Iqbrm8IXOmV+ggWHOTEbjwyCf2xZlUMv5npExksXohL+tk8va4Fjhb+X2+Rt9NBmgO7bJ8WpnMLOwih/DnMlFA==}
1820 | engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0}
1821 | hasBin: true
1822 | peerDependencies:
1823 | '@babel/core': '>=7.0.0-beta.0 <8'
1824 | '@jest/transform': ^29.0.0
1825 | '@jest/types': ^29.0.0
1826 | babel-jest: ^29.0.0
1827 | esbuild: '*'
1828 | jest: ^29.0.0
1829 | typescript: '>=4.3 <6'
1830 | peerDependenciesMeta:
1831 | '@babel/core':
1832 | optional: true
1833 | '@jest/transform':
1834 | optional: true
1835 | '@jest/types':
1836 | optional: true
1837 | babel-jest:
1838 | optional: true
1839 | esbuild:
1840 | optional: true
1841 |
1842 | ts-node@10.9.2:
1843 | resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
1844 | hasBin: true
1845 | peerDependencies:
1846 | '@swc/core': '>=1.2.50'
1847 | '@swc/wasm': '>=1.2.50'
1848 | '@types/node': '*'
1849 | typescript: '>=2.7'
1850 | peerDependenciesMeta:
1851 | '@swc/core':
1852 | optional: true
1853 | '@swc/wasm':
1854 | optional: true
1855 |
1856 | type-detect@4.0.8:
1857 | resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
1858 | engines: {node: '>=4'}
1859 |
1860 | type-fest@0.21.3:
1861 | resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
1862 | engines: {node: '>=10'}
1863 |
1864 | type-fest@4.41.0:
1865 | resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==}
1866 | engines: {node: '>=16'}
1867 |
1868 | type-is@2.0.0:
1869 | resolution: {integrity: sha512-gd0sGezQYCbWSbkZr75mln4YBidWUN60+devscpLF5mtRDUpiaTvKpBNrdaCvel1NdR2k6vclXybU5fBd2i+nw==}
1870 | engines: {node: '>= 0.6'}
1871 |
1872 | typescript@5.8.3:
1873 | resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==}
1874 | engines: {node: '>=14.17'}
1875 | hasBin: true
1876 |
1877 | undici-types@6.21.0:
1878 | resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
1879 |
1880 | universalify@0.1.2:
1881 | resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
1882 | engines: {node: '>= 4.0.0'}
1883 |
1884 | unpipe@1.0.0:
1885 | resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
1886 | engines: {node: '>= 0.8'}
1887 |
1888 | update-browserslist-db@1.1.2:
1889 | resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==}
1890 | hasBin: true
1891 | peerDependencies:
1892 | browserslist: '>= 4.21.0'
1893 |
1894 | utils-merge@1.0.1:
1895 | resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
1896 | engines: {node: '>= 0.4.0'}
1897 |
1898 | v8-compile-cache-lib@3.0.1:
1899 | resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
1900 |
1901 | v8-to-istanbul@9.3.0:
1902 | resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==}
1903 | engines: {node: '>=10.12.0'}
1904 |
1905 | vary@1.1.2:
1906 | resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
1907 | engines: {node: '>= 0.8'}
1908 |
1909 | walker@1.0.8:
1910 | resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
1911 |
1912 | web-streams-polyfill@3.3.3:
1913 | resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==}
1914 | engines: {node: '>= 8'}
1915 |
1916 | which@2.0.2:
1917 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
1918 | engines: {node: '>= 8'}
1919 | hasBin: true
1920 |
1921 | wrap-ansi@7.0.0:
1922 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
1923 | engines: {node: '>=10'}
1924 |
1925 | wrappy@1.0.2:
1926 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
1927 |
1928 | write-file-atomic@4.0.2:
1929 | resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==}
1930 | engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
1931 |
1932 | ws@8.18.0:
1933 | resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==}
1934 | engines: {node: '>=10.0.0'}
1935 | peerDependencies:
1936 | bufferutil: ^4.0.1
1937 | utf-8-validate: '>=5.0.2'
1938 | peerDependenciesMeta:
1939 | bufferutil:
1940 | optional: true
1941 | utf-8-validate:
1942 | optional: true
1943 |
1944 | y18n@5.0.8:
1945 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
1946 | engines: {node: '>=10'}
1947 |
1948 | yallist@3.1.1:
1949 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
1950 |
1951 | yargs-parser@21.1.1:
1952 | resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
1953 | engines: {node: '>=12'}
1954 |
1955 | yargs@17.7.2:
1956 | resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
1957 | engines: {node: '>=12'}
1958 |
1959 | yn@3.1.1:
1960 | resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
1961 | engines: {node: '>=6'}
1962 |
1963 | yocto-queue@0.1.0:
1964 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
1965 | engines: {node: '>=10'}
1966 |
1967 | zod-to-json-schema@3.24.1:
1968 | resolution: {integrity: sha512-3h08nf3Vw3Wl3PK+q3ow/lIil81IT2Oa7YpQyUUDsEWbXveMesdfK1xBd2RhCkynwZndAxixji/7SYJJowr62w==}
1969 | peerDependencies:
1970 | zod: ^3.24.1
1971 |
1972 | zod@3.24.1:
1973 | resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==}
1974 |
1975 | snapshots:
1976 |
1977 | '@ampproject/remapping@2.3.0':
1978 | dependencies:
1979 | '@jridgewell/gen-mapping': 0.3.8
1980 | '@jridgewell/trace-mapping': 0.3.25
1981 |
1982 | '@babel/code-frame@7.26.2':
1983 | dependencies:
1984 | '@babel/helper-validator-identifier': 7.25.9
1985 | js-tokens: 4.0.0
1986 | picocolors: 1.1.1
1987 |
1988 | '@babel/compat-data@7.26.5': {}
1989 |
1990 | '@babel/core@7.26.0':
1991 | dependencies:
1992 | '@ampproject/remapping': 2.3.0
1993 | '@babel/code-frame': 7.26.2
1994 | '@babel/generator': 7.26.5
1995 | '@babel/helper-compilation-targets': 7.26.5
1996 | '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0)
1997 | '@babel/helpers': 7.26.0
1998 | '@babel/parser': 7.26.5
1999 | '@babel/template': 7.25.9
2000 | '@babel/traverse': 7.26.5
2001 | '@babel/types': 7.26.5
2002 | convert-source-map: 2.0.0
2003 | debug: 4.4.0
2004 | gensync: 1.0.0-beta.2
2005 | json5: 2.2.3
2006 | semver: 6.3.1
2007 | transitivePeerDependencies:
2008 | - supports-color
2009 |
2010 | '@babel/generator@7.26.5':
2011 | dependencies:
2012 | '@babel/parser': 7.26.5
2013 | '@babel/types': 7.26.5
2014 | '@jridgewell/gen-mapping': 0.3.8
2015 | '@jridgewell/trace-mapping': 0.3.25
2016 | jsesc: 3.1.0
2017 |
2018 | '@babel/helper-compilation-targets@7.26.5':
2019 | dependencies:
2020 | '@babel/compat-data': 7.26.5
2021 | '@babel/helper-validator-option': 7.25.9
2022 | browserslist: 4.24.4
2023 | lru-cache: 5.1.1
2024 | semver: 6.3.1
2025 |
2026 | '@babel/helper-module-imports@7.25.9':
2027 | dependencies:
2028 | '@babel/traverse': 7.26.5
2029 | '@babel/types': 7.26.5
2030 | transitivePeerDependencies:
2031 | - supports-color
2032 |
2033 | '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)':
2034 | dependencies:
2035 | '@babel/core': 7.26.0
2036 | '@babel/helper-module-imports': 7.25.9
2037 | '@babel/helper-validator-identifier': 7.25.9
2038 | '@babel/traverse': 7.26.5
2039 | transitivePeerDependencies:
2040 | - supports-color
2041 |
2042 | '@babel/helper-plugin-utils@7.26.5': {}
2043 |
2044 | '@babel/helper-string-parser@7.25.9': {}
2045 |
2046 | '@babel/helper-validator-identifier@7.25.9': {}
2047 |
2048 | '@babel/helper-validator-option@7.25.9': {}
2049 |
2050 | '@babel/helpers@7.26.0':
2051 | dependencies:
2052 | '@babel/template': 7.25.9
2053 | '@babel/types': 7.26.5
2054 |
2055 | '@babel/parser@7.26.5':
2056 | dependencies:
2057 | '@babel/types': 7.26.5
2058 |
2059 | '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.26.0)':
2060 | dependencies:
2061 | '@babel/core': 7.26.0
2062 | '@babel/helper-plugin-utils': 7.26.5
2063 |
2064 | '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.26.0)':
2065 | dependencies:
2066 | '@babel/core': 7.26.0
2067 | '@babel/helper-plugin-utils': 7.26.5
2068 |
2069 | '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.0)':
2070 | dependencies:
2071 | '@babel/core': 7.26.0
2072 | '@babel/helper-plugin-utils': 7.26.5
2073 |
2074 | '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.26.0)':
2075 | dependencies:
2076 | '@babel/core': 7.26.0
2077 | '@babel/helper-plugin-utils': 7.26.5
2078 |
2079 | '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.0)':
2080 | dependencies:
2081 | '@babel/core': 7.26.0
2082 | '@babel/helper-plugin-utils': 7.26.5
2083 |
2084 | '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.26.0)':
2085 | dependencies:
2086 | '@babel/core': 7.26.0
2087 | '@babel/helper-plugin-utils': 7.26.5
2088 |
2089 | '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.26.0)':
2090 | dependencies:
2091 | '@babel/core': 7.26.0
2092 | '@babel/helper-plugin-utils': 7.26.5
2093 |
2094 | '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.0)':
2095 | dependencies:
2096 | '@babel/core': 7.26.0
2097 | '@babel/helper-plugin-utils': 7.26.5
2098 |
2099 | '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.26.0)':
2100 | dependencies:
2101 | '@babel/core': 7.26.0
2102 | '@babel/helper-plugin-utils': 7.26.5
2103 |
2104 | '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.26.0)':
2105 | dependencies:
2106 | '@babel/core': 7.26.0
2107 | '@babel/helper-plugin-utils': 7.26.5
2108 |
2109 | '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.26.0)':
2110 | dependencies:
2111 | '@babel/core': 7.26.0
2112 | '@babel/helper-plugin-utils': 7.26.5
2113 |
2114 | '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.0)':
2115 | dependencies:
2116 | '@babel/core': 7.26.0
2117 | '@babel/helper-plugin-utils': 7.26.5
2118 |
2119 | '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.26.0)':
2120 | dependencies:
2121 | '@babel/core': 7.26.0
2122 | '@babel/helper-plugin-utils': 7.26.5
2123 |
2124 | '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.26.0)':
2125 | dependencies:
2126 | '@babel/core': 7.26.0
2127 | '@babel/helper-plugin-utils': 7.26.5
2128 |
2129 | '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.26.0)':
2130 | dependencies:
2131 | '@babel/core': 7.26.0
2132 | '@babel/helper-plugin-utils': 7.26.5
2133 |
2134 | '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.26.0)':
2135 | dependencies:
2136 | '@babel/core': 7.26.0
2137 | '@babel/helper-plugin-utils': 7.26.5
2138 |
2139 | '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.0)':
2140 | dependencies:
2141 | '@babel/core': 7.26.0
2142 | '@babel/helper-plugin-utils': 7.26.5
2143 |
2144 | '@babel/runtime@7.26.0':
2145 | dependencies:
2146 | regenerator-runtime: 0.14.1
2147 |
2148 | '@babel/template@7.25.9':
2149 | dependencies:
2150 | '@babel/code-frame': 7.26.2
2151 | '@babel/parser': 7.26.5
2152 | '@babel/types': 7.26.5
2153 |
2154 | '@babel/traverse@7.26.5':
2155 | dependencies:
2156 | '@babel/code-frame': 7.26.2
2157 | '@babel/generator': 7.26.5
2158 | '@babel/parser': 7.26.5
2159 | '@babel/template': 7.25.9
2160 | '@babel/types': 7.26.5
2161 | debug: 4.4.0
2162 | globals: 11.12.0
2163 | transitivePeerDependencies:
2164 | - supports-color
2165 |
2166 | '@babel/types@7.26.5':
2167 | dependencies:
2168 | '@babel/helper-string-parser': 7.25.9
2169 | '@babel/helper-validator-identifier': 7.25.9
2170 |
2171 | '@bcoe/v8-coverage@0.2.3': {}
2172 |
2173 | '@changesets/apply-release-plan@7.0.12':
2174 | dependencies:
2175 | '@changesets/config': 3.1.1
2176 | '@changesets/get-version-range-type': 0.4.0
2177 | '@changesets/git': 3.0.4
2178 | '@changesets/should-skip-package': 0.1.2
2179 | '@changesets/types': 6.1.0
2180 | '@manypkg/get-packages': 1.1.3
2181 | detect-indent: 6.1.0
2182 | fs-extra: 7.0.1
2183 | lodash.startcase: 4.4.0
2184 | outdent: 0.5.0
2185 | prettier: 2.8.8
2186 | resolve-from: 5.0.0
2187 | semver: 7.7.1
2188 |
2189 | '@changesets/assemble-release-plan@6.0.8':
2190 | dependencies:
2191 | '@changesets/errors': 0.2.0
2192 | '@changesets/get-dependents-graph': 2.1.3
2193 | '@changesets/should-skip-package': 0.1.2
2194 | '@changesets/types': 6.1.0
2195 | '@manypkg/get-packages': 1.1.3
2196 | semver: 7.7.1
2197 |
2198 | '@changesets/changelog-git@0.2.1':
2199 | dependencies:
2200 | '@changesets/types': 6.1.0
2201 |
2202 | '@changesets/cli@2.29.4':
2203 | dependencies:
2204 | '@changesets/apply-release-plan': 7.0.12
2205 | '@changesets/assemble-release-plan': 6.0.8
2206 | '@changesets/changelog-git': 0.2.1
2207 | '@changesets/config': 3.1.1
2208 | '@changesets/errors': 0.2.0
2209 | '@changesets/get-dependents-graph': 2.1.3
2210 | '@changesets/get-release-plan': 4.0.12
2211 | '@changesets/git': 3.0.4
2212 | '@changesets/logger': 0.1.1
2213 | '@changesets/pre': 2.0.2
2214 | '@changesets/read': 0.6.5
2215 | '@changesets/should-skip-package': 0.1.2
2216 | '@changesets/types': 6.1.0
2217 | '@changesets/write': 0.4.0
2218 | '@manypkg/get-packages': 1.1.3
2219 | ansi-colors: 4.1.3
2220 | ci-info: 3.9.0
2221 | enquirer: 2.4.1
2222 | external-editor: 3.1.0
2223 | fs-extra: 7.0.1
2224 | mri: 1.2.0
2225 | p-limit: 2.3.0
2226 | package-manager-detector: 0.2.8
2227 | picocolors: 1.1.1
2228 | resolve-from: 5.0.0
2229 | semver: 7.7.1
2230 | spawndamnit: 3.0.1
2231 | term-size: 2.2.1
2232 |
2233 | '@changesets/config@3.1.1':
2234 | dependencies:
2235 | '@changesets/errors': 0.2.0
2236 | '@changesets/get-dependents-graph': 2.1.3
2237 | '@changesets/logger': 0.1.1
2238 | '@changesets/types': 6.1.0
2239 | '@manypkg/get-packages': 1.1.3
2240 | fs-extra: 7.0.1
2241 | micromatch: 4.0.8
2242 |
2243 | '@changesets/errors@0.2.0':
2244 | dependencies:
2245 | extendable-error: 0.1.7
2246 |
2247 | '@changesets/get-dependents-graph@2.1.3':
2248 | dependencies:
2249 | '@changesets/types': 6.1.0
2250 | '@manypkg/get-packages': 1.1.3
2251 | picocolors: 1.1.1
2252 | semver: 7.7.1
2253 |
2254 | '@changesets/get-release-plan@4.0.12':
2255 | dependencies:
2256 | '@changesets/assemble-release-plan': 6.0.8
2257 | '@changesets/config': 3.1.1
2258 | '@changesets/pre': 2.0.2
2259 | '@changesets/read': 0.6.5
2260 | '@changesets/types': 6.1.0
2261 | '@manypkg/get-packages': 1.1.3
2262 |
2263 | '@changesets/get-version-range-type@0.4.0': {}
2264 |
2265 | '@changesets/git@3.0.4':
2266 | dependencies:
2267 | '@changesets/errors': 0.2.0
2268 | '@manypkg/get-packages': 1.1.3
2269 | is-subdir: 1.2.0
2270 | micromatch: 4.0.8
2271 | spawndamnit: 3.0.1
2272 |
2273 | '@changesets/logger@0.1.1':
2274 | dependencies:
2275 | picocolors: 1.1.1
2276 |
2277 | '@changesets/parse@0.4.1':
2278 | dependencies:
2279 | '@changesets/types': 6.1.0
2280 | js-yaml: 3.14.1
2281 |
2282 | '@changesets/pre@2.0.2':
2283 | dependencies:
2284 | '@changesets/errors': 0.2.0
2285 | '@changesets/types': 6.1.0
2286 | '@manypkg/get-packages': 1.1.3
2287 | fs-extra: 7.0.1
2288 |
2289 | '@changesets/read@0.6.5':
2290 | dependencies:
2291 | '@changesets/git': 3.0.4
2292 | '@changesets/logger': 0.1.1
2293 | '@changesets/parse': 0.4.1
2294 | '@changesets/types': 6.1.0
2295 | fs-extra: 7.0.1
2296 | p-filter: 2.1.0
2297 | picocolors: 1.1.1
2298 |
2299 | '@changesets/should-skip-package@0.1.2':
2300 | dependencies:
2301 | '@changesets/types': 6.1.0
2302 | '@manypkg/get-packages': 1.1.3
2303 |
2304 | '@changesets/types@4.1.0': {}
2305 |
2306 | '@changesets/types@6.1.0': {}
2307 |
2308 | '@changesets/write@0.4.0':
2309 | dependencies:
2310 | '@changesets/types': 6.1.0
2311 | fs-extra: 7.0.1
2312 | human-id: 4.1.1
2313 | prettier: 2.8.8
2314 |
2315 | '@cspotcode/source-map-support@0.8.1':
2316 | dependencies:
2317 | '@jridgewell/trace-mapping': 0.3.9
2318 |
2319 | '@istanbuljs/load-nyc-config@1.1.0':
2320 | dependencies:
2321 | camelcase: 5.3.1
2322 | find-up: 4.1.0
2323 | get-package-type: 0.1.0
2324 | js-yaml: 3.14.1
2325 | resolve-from: 5.0.0
2326 |
2327 | '@istanbuljs/schema@0.1.3': {}
2328 |
2329 | '@jest/console@29.7.0':
2330 | dependencies:
2331 | '@jest/types': 29.6.3
2332 | '@types/node': 22.15.21
2333 | chalk: 4.1.2
2334 | jest-message-util: 29.7.0
2335 | jest-util: 29.7.0
2336 | slash: 3.0.0
2337 |
2338 | '@jest/core@29.7.0(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3))':
2339 | dependencies:
2340 | '@jest/console': 29.7.0
2341 | '@jest/reporters': 29.7.0
2342 | '@jest/test-result': 29.7.0
2343 | '@jest/transform': 29.7.0
2344 | '@jest/types': 29.6.3
2345 | '@types/node': 22.15.21
2346 | ansi-escapes: 4.3.2
2347 | chalk: 4.1.2
2348 | ci-info: 3.9.0
2349 | exit: 0.1.2
2350 | graceful-fs: 4.2.11
2351 | jest-changed-files: 29.7.0
2352 | jest-config: 29.7.0(@types/node@22.15.21)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3))
2353 | jest-haste-map: 29.7.0
2354 | jest-message-util: 29.7.0
2355 | jest-regex-util: 29.6.3
2356 | jest-resolve: 29.7.0
2357 | jest-resolve-dependencies: 29.7.0
2358 | jest-runner: 29.7.0
2359 | jest-runtime: 29.7.0
2360 | jest-snapshot: 29.7.0
2361 | jest-util: 29.7.0
2362 | jest-validate: 29.7.0
2363 | jest-watcher: 29.7.0
2364 | micromatch: 4.0.8
2365 | pretty-format: 29.7.0
2366 | slash: 3.0.0
2367 | strip-ansi: 6.0.1
2368 | transitivePeerDependencies:
2369 | - babel-plugin-macros
2370 | - supports-color
2371 | - ts-node
2372 |
2373 | '@jest/environment@29.7.0':
2374 | dependencies:
2375 | '@jest/fake-timers': 29.7.0
2376 | '@jest/types': 29.6.3
2377 | '@types/node': 22.15.21
2378 | jest-mock: 29.7.0
2379 |
2380 | '@jest/expect-utils@29.7.0':
2381 | dependencies:
2382 | jest-get-type: 29.6.3
2383 |
2384 | '@jest/expect@29.7.0':
2385 | dependencies:
2386 | expect: 29.7.0
2387 | jest-snapshot: 29.7.0
2388 | transitivePeerDependencies:
2389 | - supports-color
2390 |
2391 | '@jest/fake-timers@29.7.0':
2392 | dependencies:
2393 | '@jest/types': 29.6.3
2394 | '@sinonjs/fake-timers': 10.3.0
2395 | '@types/node': 22.15.21
2396 | jest-message-util: 29.7.0
2397 | jest-mock: 29.7.0
2398 | jest-util: 29.7.0
2399 |
2400 | '@jest/globals@29.7.0':
2401 | dependencies:
2402 | '@jest/environment': 29.7.0
2403 | '@jest/expect': 29.7.0
2404 | '@jest/types': 29.6.3
2405 | jest-mock: 29.7.0
2406 | transitivePeerDependencies:
2407 | - supports-color
2408 |
2409 | '@jest/reporters@29.7.0':
2410 | dependencies:
2411 | '@bcoe/v8-coverage': 0.2.3
2412 | '@jest/console': 29.7.0
2413 | '@jest/test-result': 29.7.0
2414 | '@jest/transform': 29.7.0
2415 | '@jest/types': 29.6.3
2416 | '@jridgewell/trace-mapping': 0.3.25
2417 | '@types/node': 22.15.21
2418 | chalk: 4.1.2
2419 | collect-v8-coverage: 1.0.2
2420 | exit: 0.1.2
2421 | glob: 7.2.3
2422 | graceful-fs: 4.2.11
2423 | istanbul-lib-coverage: 3.2.2
2424 | istanbul-lib-instrument: 6.0.3
2425 | istanbul-lib-report: 3.0.1
2426 | istanbul-lib-source-maps: 4.0.1
2427 | istanbul-reports: 3.1.7
2428 | jest-message-util: 29.7.0
2429 | jest-util: 29.7.0
2430 | jest-worker: 29.7.0
2431 | slash: 3.0.0
2432 | string-length: 4.0.2
2433 | strip-ansi: 6.0.1
2434 | v8-to-istanbul: 9.3.0
2435 | transitivePeerDependencies:
2436 | - supports-color
2437 |
2438 | '@jest/schemas@29.6.3':
2439 | dependencies:
2440 | '@sinclair/typebox': 0.27.8
2441 |
2442 | '@jest/source-map@29.6.3':
2443 | dependencies:
2444 | '@jridgewell/trace-mapping': 0.3.25
2445 | callsites: 3.1.0
2446 | graceful-fs: 4.2.11
2447 |
2448 | '@jest/test-result@29.7.0':
2449 | dependencies:
2450 | '@jest/console': 29.7.0
2451 | '@jest/types': 29.6.3
2452 | '@types/istanbul-lib-coverage': 2.0.6
2453 | collect-v8-coverage: 1.0.2
2454 |
2455 | '@jest/test-sequencer@29.7.0':
2456 | dependencies:
2457 | '@jest/test-result': 29.7.0
2458 | graceful-fs: 4.2.11
2459 | jest-haste-map: 29.7.0
2460 | slash: 3.0.0
2461 |
2462 | '@jest/transform@29.7.0':
2463 | dependencies:
2464 | '@babel/core': 7.26.0
2465 | '@jest/types': 29.6.3
2466 | '@jridgewell/trace-mapping': 0.3.25
2467 | babel-plugin-istanbul: 6.1.1
2468 | chalk: 4.1.2
2469 | convert-source-map: 2.0.0
2470 | fast-json-stable-stringify: 2.1.0
2471 | graceful-fs: 4.2.11
2472 | jest-haste-map: 29.7.0
2473 | jest-regex-util: 29.6.3
2474 | jest-util: 29.7.0
2475 | micromatch: 4.0.8
2476 | pirates: 4.0.6
2477 | slash: 3.0.0
2478 | write-file-atomic: 4.0.2
2479 | transitivePeerDependencies:
2480 | - supports-color
2481 |
2482 | '@jest/types@29.6.3':
2483 | dependencies:
2484 | '@jest/schemas': 29.6.3
2485 | '@types/istanbul-lib-coverage': 2.0.6
2486 | '@types/istanbul-reports': 3.0.4
2487 | '@types/node': 22.15.21
2488 | '@types/yargs': 17.0.33
2489 | chalk: 4.1.2
2490 |
2491 | '@jridgewell/gen-mapping@0.3.8':
2492 | dependencies:
2493 | '@jridgewell/set-array': 1.2.1
2494 | '@jridgewell/sourcemap-codec': 1.5.0
2495 | '@jridgewell/trace-mapping': 0.3.25
2496 |
2497 | '@jridgewell/resolve-uri@3.1.2': {}
2498 |
2499 | '@jridgewell/set-array@1.2.1': {}
2500 |
2501 | '@jridgewell/sourcemap-codec@1.5.0': {}
2502 |
2503 | '@jridgewell/trace-mapping@0.3.25':
2504 | dependencies:
2505 | '@jridgewell/resolve-uri': 3.1.2
2506 | '@jridgewell/sourcemap-codec': 1.5.0
2507 |
2508 | '@jridgewell/trace-mapping@0.3.9':
2509 | dependencies:
2510 | '@jridgewell/resolve-uri': 3.1.2
2511 | '@jridgewell/sourcemap-codec': 1.5.0
2512 |
2513 | '@libsql/client@0.15.7':
2514 | dependencies:
2515 | '@libsql/core': 0.15.7
2516 | '@libsql/hrana-client': 0.7.0
2517 | js-base64: 3.7.7
2518 | libsql: 0.5.11
2519 | promise-limit: 2.7.0
2520 | transitivePeerDependencies:
2521 | - bufferutil
2522 | - utf-8-validate
2523 |
2524 | '@libsql/core@0.15.7':
2525 | dependencies:
2526 | js-base64: 3.7.7
2527 |
2528 | '@libsql/darwin-arm64@0.5.11':
2529 | optional: true
2530 |
2531 | '@libsql/darwin-x64@0.5.11':
2532 | optional: true
2533 |
2534 | '@libsql/hrana-client@0.7.0':
2535 | dependencies:
2536 | '@libsql/isomorphic-fetch': 0.3.1
2537 | '@libsql/isomorphic-ws': 0.1.5
2538 | js-base64: 3.7.7
2539 | node-fetch: 3.3.2
2540 | transitivePeerDependencies:
2541 | - bufferutil
2542 | - utf-8-validate
2543 |
2544 | '@libsql/isomorphic-fetch@0.3.1': {}
2545 |
2546 | '@libsql/isomorphic-ws@0.1.5':
2547 | dependencies:
2548 | '@types/ws': 8.5.13
2549 | ws: 8.18.0
2550 | transitivePeerDependencies:
2551 | - bufferutil
2552 | - utf-8-validate
2553 |
2554 | '@libsql/linux-arm-gnueabihf@0.5.11':
2555 | optional: true
2556 |
2557 | '@libsql/linux-arm-musleabihf@0.5.11':
2558 | optional: true
2559 |
2560 | '@libsql/linux-arm64-gnu@0.5.11':
2561 | optional: true
2562 |
2563 | '@libsql/linux-arm64-musl@0.5.11':
2564 | optional: true
2565 |
2566 | '@libsql/linux-x64-gnu@0.5.11':
2567 | optional: true
2568 |
2569 | '@libsql/linux-x64-musl@0.5.11':
2570 | optional: true
2571 |
2572 | '@libsql/win32-x64-msvc@0.5.11':
2573 | optional: true
2574 |
2575 | '@manypkg/find-root@1.1.0':
2576 | dependencies:
2577 | '@babel/runtime': 7.26.0
2578 | '@types/node': 12.20.55
2579 | find-up: 4.1.0
2580 | fs-extra: 8.1.0
2581 |
2582 | '@manypkg/get-packages@1.1.3':
2583 | dependencies:
2584 | '@babel/runtime': 7.26.0
2585 | '@changesets/types': 4.1.0
2586 | '@manypkg/find-root': 1.1.0
2587 | fs-extra: 8.1.0
2588 | globby: 11.1.0
2589 | read-yaml-file: 1.1.0
2590 |
2591 | '@modelcontextprotocol/sdk@1.11.5':
2592 | dependencies:
2593 | ajv: 8.17.1
2594 | content-type: 1.0.5
2595 | cors: 2.8.5
2596 | cross-spawn: 7.0.6
2597 | eventsource: 3.0.2
2598 | express: 5.0.1
2599 | express-rate-limit: 7.5.0(express@5.0.1)
2600 | pkce-challenge: 5.0.0
2601 | raw-body: 3.0.0
2602 | zod: 3.24.1
2603 | zod-to-json-schema: 3.24.1(zod@3.24.1)
2604 | transitivePeerDependencies:
2605 | - supports-color
2606 |
2607 | '@neon-rs/load@0.0.4': {}
2608 |
2609 | '@nodelib/fs.scandir@2.1.5':
2610 | dependencies:
2611 | '@nodelib/fs.stat': 2.0.5
2612 | run-parallel: 1.2.0
2613 |
2614 | '@nodelib/fs.stat@2.0.5': {}
2615 |
2616 | '@nodelib/fs.walk@1.2.8':
2617 | dependencies:
2618 | '@nodelib/fs.scandir': 2.1.5
2619 | fastq: 1.18.0
2620 |
2621 | '@sinclair/typebox@0.27.8': {}
2622 |
2623 | '@sinonjs/commons@3.0.1':
2624 | dependencies:
2625 | type-detect: 4.0.8
2626 |
2627 | '@sinonjs/fake-timers@10.3.0':
2628 | dependencies:
2629 | '@sinonjs/commons': 3.0.1
2630 |
2631 | '@tsconfig/node10@1.0.11': {}
2632 |
2633 | '@tsconfig/node12@1.0.11': {}
2634 |
2635 | '@tsconfig/node14@1.0.3': {}
2636 |
2637 | '@tsconfig/node16@1.0.4': {}
2638 |
2639 | '@types/babel__core@7.20.5':
2640 | dependencies:
2641 | '@babel/parser': 7.26.5
2642 | '@babel/types': 7.26.5
2643 | '@types/babel__generator': 7.6.8
2644 | '@types/babel__template': 7.4.4
2645 | '@types/babel__traverse': 7.20.6
2646 |
2647 | '@types/babel__generator@7.6.8':
2648 | dependencies:
2649 | '@babel/types': 7.26.5
2650 |
2651 | '@types/babel__template@7.4.4':
2652 | dependencies:
2653 | '@babel/parser': 7.26.5
2654 | '@babel/types': 7.26.5
2655 |
2656 | '@types/babel__traverse@7.20.6':
2657 | dependencies:
2658 | '@babel/types': 7.26.5
2659 |
2660 | '@types/graceful-fs@4.1.9':
2661 | dependencies:
2662 | '@types/node': 22.15.21
2663 |
2664 | '@types/istanbul-lib-coverage@2.0.6': {}
2665 |
2666 | '@types/istanbul-lib-report@3.0.3':
2667 | dependencies:
2668 | '@types/istanbul-lib-coverage': 2.0.6
2669 |
2670 | '@types/istanbul-reports@3.0.4':
2671 | dependencies:
2672 | '@types/istanbul-lib-report': 3.0.3
2673 |
2674 | '@types/jest@29.5.14':
2675 | dependencies:
2676 | expect: 29.7.0
2677 | pretty-format: 29.7.0
2678 |
2679 | '@types/node@12.20.55': {}
2680 |
2681 | '@types/node@22.15.21':
2682 | dependencies:
2683 | undici-types: 6.21.0
2684 |
2685 | '@types/stack-utils@2.0.3': {}
2686 |
2687 | '@types/ws@8.5.13':
2688 | dependencies:
2689 | '@types/node': 22.15.21
2690 |
2691 | '@types/yargs-parser@21.0.3': {}
2692 |
2693 | '@types/yargs@17.0.33':
2694 | dependencies:
2695 | '@types/yargs-parser': 21.0.3
2696 |
2697 | accepts@2.0.0:
2698 | dependencies:
2699 | mime-types: 3.0.0
2700 | negotiator: 1.0.0
2701 |
2702 | acorn-walk@8.3.4:
2703 | dependencies:
2704 | acorn: 8.14.0
2705 |
2706 | acorn@8.14.0: {}
2707 |
2708 | ajv@8.17.1:
2709 | dependencies:
2710 | fast-deep-equal: 3.1.3
2711 | fast-uri: 3.0.6
2712 | json-schema-traverse: 1.0.0
2713 | require-from-string: 2.0.2
2714 |
2715 | ansi-colors@4.1.3: {}
2716 |
2717 | ansi-escapes@4.3.2:
2718 | dependencies:
2719 | type-fest: 0.21.3
2720 |
2721 | ansi-regex@5.0.1: {}
2722 |
2723 | ansi-styles@4.3.0:
2724 | dependencies:
2725 | color-convert: 2.0.1
2726 |
2727 | ansi-styles@5.2.0: {}
2728 |
2729 | anymatch@3.1.3:
2730 | dependencies:
2731 | normalize-path: 3.0.0
2732 | picomatch: 2.3.1
2733 |
2734 | arg@4.1.3: {}
2735 |
2736 | argparse@1.0.10:
2737 | dependencies:
2738 | sprintf-js: 1.0.3
2739 |
2740 | array-union@2.1.0: {}
2741 |
2742 | async@3.2.6: {}
2743 |
2744 | babel-jest@29.7.0(@babel/core@7.26.0):
2745 | dependencies:
2746 | '@babel/core': 7.26.0
2747 | '@jest/transform': 29.7.0
2748 | '@types/babel__core': 7.20.5
2749 | babel-plugin-istanbul: 6.1.1
2750 | babel-preset-jest: 29.6.3(@babel/core@7.26.0)
2751 | chalk: 4.1.2
2752 | graceful-fs: 4.2.11
2753 | slash: 3.0.0
2754 | transitivePeerDependencies:
2755 | - supports-color
2756 |
2757 | babel-plugin-istanbul@6.1.1:
2758 | dependencies:
2759 | '@babel/helper-plugin-utils': 7.26.5
2760 | '@istanbuljs/load-nyc-config': 1.1.0
2761 | '@istanbuljs/schema': 0.1.3
2762 | istanbul-lib-instrument: 5.2.1
2763 | test-exclude: 6.0.0
2764 | transitivePeerDependencies:
2765 | - supports-color
2766 |
2767 | babel-plugin-jest-hoist@29.6.3:
2768 | dependencies:
2769 | '@babel/template': 7.25.9
2770 | '@babel/types': 7.26.5
2771 | '@types/babel__core': 7.20.5
2772 | '@types/babel__traverse': 7.20.6
2773 |
2774 | babel-preset-current-node-syntax@1.1.0(@babel/core@7.26.0):
2775 | dependencies:
2776 | '@babel/core': 7.26.0
2777 | '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.26.0)
2778 | '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.26.0)
2779 | '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.26.0)
2780 | '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.26.0)
2781 | '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.0)
2782 | '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.0)
2783 | '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.26.0)
2784 | '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.26.0)
2785 | '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.0)
2786 | '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.26.0)
2787 | '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.0)
2788 | '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.26.0)
2789 | '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.0)
2790 | '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.26.0)
2791 | '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.26.0)
2792 |
2793 | babel-preset-jest@29.6.3(@babel/core@7.26.0):
2794 | dependencies:
2795 | '@babel/core': 7.26.0
2796 | babel-plugin-jest-hoist: 29.6.3
2797 | babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.0)
2798 |
2799 | balanced-match@1.0.2: {}
2800 |
2801 | better-path-resolve@1.0.0:
2802 | dependencies:
2803 | is-windows: 1.0.2
2804 |
2805 | body-parser@2.1.0:
2806 | dependencies:
2807 | bytes: 3.1.2
2808 | content-type: 1.0.5
2809 | debug: 4.4.0
2810 | http-errors: 2.0.0
2811 | iconv-lite: 0.5.2
2812 | on-finished: 2.4.1
2813 | qs: 6.14.0
2814 | raw-body: 3.0.0
2815 | type-is: 2.0.0
2816 | transitivePeerDependencies:
2817 | - supports-color
2818 |
2819 | brace-expansion@1.1.11:
2820 | dependencies:
2821 | balanced-match: 1.0.2
2822 | concat-map: 0.0.1
2823 |
2824 | brace-expansion@2.0.1:
2825 | dependencies:
2826 | balanced-match: 1.0.2
2827 |
2828 | braces@3.0.3:
2829 | dependencies:
2830 | fill-range: 7.1.1
2831 |
2832 | browserslist@4.24.4:
2833 | dependencies:
2834 | caniuse-lite: 1.0.30001692
2835 | electron-to-chromium: 1.5.82
2836 | node-releases: 2.0.19
2837 | update-browserslist-db: 1.1.2(browserslist@4.24.4)
2838 |
2839 | bs-logger@0.2.6:
2840 | dependencies:
2841 | fast-json-stable-stringify: 2.1.0
2842 |
2843 | bser@2.1.1:
2844 | dependencies:
2845 | node-int64: 0.4.0
2846 |
2847 | buffer-from@1.1.2: {}
2848 |
2849 | bytes@3.1.2: {}
2850 |
2851 | call-bind-apply-helpers@1.0.2:
2852 | dependencies:
2853 | es-errors: 1.3.0
2854 | function-bind: 1.1.2
2855 |
2856 | call-bound@1.0.3:
2857 | dependencies:
2858 | call-bind-apply-helpers: 1.0.2
2859 | get-intrinsic: 1.3.0
2860 |
2861 | callsites@3.1.0: {}
2862 |
2863 | camelcase@5.3.1: {}
2864 |
2865 | camelcase@6.3.0: {}
2866 |
2867 | caniuse-lite@1.0.30001692: {}
2868 |
2869 | chalk@4.1.2:
2870 | dependencies:
2871 | ansi-styles: 4.3.0
2872 | supports-color: 7.2.0
2873 |
2874 | char-regex@1.0.2: {}
2875 |
2876 | chardet@0.7.0: {}
2877 |
2878 | ci-info@3.9.0: {}
2879 |
2880 | cjs-module-lexer@1.4.1: {}
2881 |
2882 | cliui@8.0.1:
2883 | dependencies:
2884 | string-width: 4.2.3
2885 | strip-ansi: 6.0.1
2886 | wrap-ansi: 7.0.0
2887 |
2888 | co@4.6.0: {}
2889 |
2890 | collect-v8-coverage@1.0.2: {}
2891 |
2892 | color-convert@2.0.1:
2893 | dependencies:
2894 | color-name: 1.1.4
2895 |
2896 | color-name@1.1.4: {}
2897 |
2898 | concat-map@0.0.1: {}
2899 |
2900 | content-disposition@1.0.0:
2901 | dependencies:
2902 | safe-buffer: 5.2.1
2903 |
2904 | content-type@1.0.5: {}
2905 |
2906 | convert-source-map@2.0.0: {}
2907 |
2908 | cookie-signature@1.2.2: {}
2909 |
2910 | cookie@0.7.1: {}
2911 |
2912 | cors@2.8.5:
2913 | dependencies:
2914 | object-assign: 4.1.1
2915 | vary: 1.1.2
2916 |
2917 | create-jest@29.7.0(@types/node@22.15.21)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)):
2918 | dependencies:
2919 | '@jest/types': 29.6.3
2920 | chalk: 4.1.2
2921 | exit: 0.1.2
2922 | graceful-fs: 4.2.11
2923 | jest-config: 29.7.0(@types/node@22.15.21)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3))
2924 | jest-util: 29.7.0
2925 | prompts: 2.4.2
2926 | transitivePeerDependencies:
2927 | - '@types/node'
2928 | - babel-plugin-macros
2929 | - supports-color
2930 | - ts-node
2931 |
2932 | create-require@1.1.1: {}
2933 |
2934 | cross-spawn@7.0.6:
2935 | dependencies:
2936 | path-key: 3.1.1
2937 | shebang-command: 2.0.0
2938 | which: 2.0.2
2939 |
2940 | data-uri-to-buffer@4.0.1: {}
2941 |
2942 | debug@2.6.9:
2943 | dependencies:
2944 | ms: 2.0.0
2945 |
2946 | debug@4.3.6:
2947 | dependencies:
2948 | ms: 2.1.2
2949 |
2950 | debug@4.4.0:
2951 | dependencies:
2952 | ms: 2.1.3
2953 |
2954 | dedent@1.5.3: {}
2955 |
2956 | deepmerge@4.3.1: {}
2957 |
2958 | depd@2.0.0: {}
2959 |
2960 | destroy@1.2.0: {}
2961 |
2962 | detect-indent@6.1.0: {}
2963 |
2964 | detect-libc@2.0.2: {}
2965 |
2966 | detect-newline@3.1.0: {}
2967 |
2968 | diff-sequences@29.6.3: {}
2969 |
2970 | diff@4.0.2: {}
2971 |
2972 | dir-glob@3.0.1:
2973 | dependencies:
2974 | path-type: 4.0.0
2975 |
2976 | dotenv@16.5.0: {}
2977 |
2978 | dunder-proto@1.0.1:
2979 | dependencies:
2980 | call-bind-apply-helpers: 1.0.2
2981 | es-errors: 1.3.0
2982 | gopd: 1.2.0
2983 |
2984 | ee-first@1.1.1: {}
2985 |
2986 | ejs@3.1.10:
2987 | dependencies:
2988 | jake: 10.9.2
2989 |
2990 | electron-to-chromium@1.5.82: {}
2991 |
2992 | emittery@0.13.1: {}
2993 |
2994 | emoji-regex@8.0.0: {}
2995 |
2996 | encodeurl@1.0.2: {}
2997 |
2998 | encodeurl@2.0.0: {}
2999 |
3000 | enquirer@2.4.1:
3001 | dependencies:
3002 | ansi-colors: 4.1.3
3003 | strip-ansi: 6.0.1
3004 |
3005 | error-ex@1.3.2:
3006 | dependencies:
3007 | is-arrayish: 0.2.1
3008 |
3009 | es-define-property@1.0.1: {}
3010 |
3011 | es-errors@1.3.0: {}
3012 |
3013 | es-object-atoms@1.1.1:
3014 | dependencies:
3015 | es-errors: 1.3.0
3016 |
3017 | escalade@3.2.0: {}
3018 |
3019 | escape-html@1.0.3: {}
3020 |
3021 | escape-string-regexp@2.0.0: {}
3022 |
3023 | esprima@4.0.1: {}
3024 |
3025 | etag@1.8.1: {}
3026 |
3027 | eventsource-parser@3.0.0: {}
3028 |
3029 | eventsource@3.0.2:
3030 | dependencies:
3031 | eventsource-parser: 3.0.0
3032 |
3033 | execa@5.1.1:
3034 | dependencies:
3035 | cross-spawn: 7.0.6
3036 | get-stream: 6.0.1
3037 | human-signals: 2.1.0
3038 | is-stream: 2.0.1
3039 | merge-stream: 2.0.0
3040 | npm-run-path: 4.0.1
3041 | onetime: 5.1.2
3042 | signal-exit: 3.0.7
3043 | strip-final-newline: 2.0.0
3044 |
3045 | exit@0.1.2: {}
3046 |
3047 | expect@29.7.0:
3048 | dependencies:
3049 | '@jest/expect-utils': 29.7.0
3050 | jest-get-type: 29.6.3
3051 | jest-matcher-utils: 29.7.0
3052 | jest-message-util: 29.7.0
3053 | jest-util: 29.7.0
3054 |
3055 | express-rate-limit@7.5.0(express@5.0.1):
3056 | dependencies:
3057 | express: 5.0.1
3058 |
3059 | express@5.0.1:
3060 | dependencies:
3061 | accepts: 2.0.0
3062 | body-parser: 2.1.0
3063 | content-disposition: 1.0.0
3064 | content-type: 1.0.5
3065 | cookie: 0.7.1
3066 | cookie-signature: 1.2.2
3067 | debug: 4.3.6
3068 | depd: 2.0.0
3069 | encodeurl: 2.0.0
3070 | escape-html: 1.0.3
3071 | etag: 1.8.1
3072 | finalhandler: 2.0.0
3073 | fresh: 2.0.0
3074 | http-errors: 2.0.0
3075 | merge-descriptors: 2.0.0
3076 | methods: 1.1.2
3077 | mime-types: 3.0.0
3078 | on-finished: 2.4.1
3079 | once: 1.4.0
3080 | parseurl: 1.3.3
3081 | proxy-addr: 2.0.7
3082 | qs: 6.13.0
3083 | range-parser: 1.2.1
3084 | router: 2.1.0
3085 | safe-buffer: 5.2.1
3086 | send: 1.1.0
3087 | serve-static: 2.1.0
3088 | setprototypeof: 1.2.0
3089 | statuses: 2.0.1
3090 | type-is: 2.0.0
3091 | utils-merge: 1.0.1
3092 | vary: 1.1.2
3093 | transitivePeerDependencies:
3094 | - supports-color
3095 |
3096 | extendable-error@0.1.7: {}
3097 |
3098 | external-editor@3.1.0:
3099 | dependencies:
3100 | chardet: 0.7.0
3101 | iconv-lite: 0.4.24
3102 | tmp: 0.0.33
3103 |
3104 | fast-deep-equal@3.1.3: {}
3105 |
3106 | fast-glob@3.3.3:
3107 | dependencies:
3108 | '@nodelib/fs.stat': 2.0.5
3109 | '@nodelib/fs.walk': 1.2.8
3110 | glob-parent: 5.1.2
3111 | merge2: 1.4.1
3112 | micromatch: 4.0.8
3113 |
3114 | fast-json-stable-stringify@2.1.0: {}
3115 |
3116 | fast-uri@3.0.6: {}
3117 |
3118 | fastq@1.18.0:
3119 | dependencies:
3120 | reusify: 1.0.4
3121 |
3122 | fb-watchman@2.0.2:
3123 | dependencies:
3124 | bser: 2.1.1
3125 |
3126 | fetch-blob@3.2.0:
3127 | dependencies:
3128 | node-domexception: 1.0.0
3129 | web-streams-polyfill: 3.3.3
3130 |
3131 | filelist@1.0.4:
3132 | dependencies:
3133 | minimatch: 5.1.6
3134 |
3135 | fill-range@7.1.1:
3136 | dependencies:
3137 | to-regex-range: 5.0.1
3138 |
3139 | finalhandler@2.0.0:
3140 | dependencies:
3141 | debug: 2.6.9
3142 | encodeurl: 1.0.2
3143 | escape-html: 1.0.3
3144 | on-finished: 2.4.1
3145 | parseurl: 1.3.3
3146 | statuses: 2.0.1
3147 | unpipe: 1.0.0
3148 | transitivePeerDependencies:
3149 | - supports-color
3150 |
3151 | find-up@4.1.0:
3152 | dependencies:
3153 | locate-path: 5.0.0
3154 | path-exists: 4.0.0
3155 |
3156 | formdata-polyfill@4.0.10:
3157 | dependencies:
3158 | fetch-blob: 3.2.0
3159 |
3160 | forwarded@0.2.0: {}
3161 |
3162 | fresh@0.5.2: {}
3163 |
3164 | fresh@2.0.0: {}
3165 |
3166 | fs-extra@7.0.1:
3167 | dependencies:
3168 | graceful-fs: 4.2.11
3169 | jsonfile: 4.0.0
3170 | universalify: 0.1.2
3171 |
3172 | fs-extra@8.1.0:
3173 | dependencies:
3174 | graceful-fs: 4.2.11
3175 | jsonfile: 4.0.0
3176 | universalify: 0.1.2
3177 |
3178 | fs.realpath@1.0.0: {}
3179 |
3180 | fsevents@2.3.3:
3181 | optional: true
3182 |
3183 | function-bind@1.1.2: {}
3184 |
3185 | gensync@1.0.0-beta.2: {}
3186 |
3187 | get-caller-file@2.0.5: {}
3188 |
3189 | get-intrinsic@1.3.0:
3190 | dependencies:
3191 | call-bind-apply-helpers: 1.0.2
3192 | es-define-property: 1.0.1
3193 | es-errors: 1.3.0
3194 | es-object-atoms: 1.1.1
3195 | function-bind: 1.1.2
3196 | get-proto: 1.0.1
3197 | gopd: 1.2.0
3198 | has-symbols: 1.1.0
3199 | hasown: 2.0.2
3200 | math-intrinsics: 1.1.0
3201 |
3202 | get-package-type@0.1.0: {}
3203 |
3204 | get-proto@1.0.1:
3205 | dependencies:
3206 | dunder-proto: 1.0.1
3207 | es-object-atoms: 1.1.1
3208 |
3209 | get-stream@6.0.1: {}
3210 |
3211 | glob-parent@5.1.2:
3212 | dependencies:
3213 | is-glob: 4.0.3
3214 |
3215 | glob@7.2.3:
3216 | dependencies:
3217 | fs.realpath: 1.0.0
3218 | inflight: 1.0.6
3219 | inherits: 2.0.4
3220 | minimatch: 3.1.2
3221 | once: 1.4.0
3222 | path-is-absolute: 1.0.1
3223 |
3224 | globals@11.12.0: {}
3225 |
3226 | globby@11.1.0:
3227 | dependencies:
3228 | array-union: 2.1.0
3229 | dir-glob: 3.0.1
3230 | fast-glob: 3.3.3
3231 | ignore: 5.3.2
3232 | merge2: 1.4.1
3233 | slash: 3.0.0
3234 |
3235 | gopd@1.2.0: {}
3236 |
3237 | graceful-fs@4.2.11: {}
3238 |
3239 | has-flag@4.0.0: {}
3240 |
3241 | has-symbols@1.1.0: {}
3242 |
3243 | hasown@2.0.2:
3244 | dependencies:
3245 | function-bind: 1.1.2
3246 |
3247 | html-escaper@2.0.2: {}
3248 |
3249 | http-errors@2.0.0:
3250 | dependencies:
3251 | depd: 2.0.0
3252 | inherits: 2.0.4
3253 | setprototypeof: 1.2.0
3254 | statuses: 2.0.1
3255 | toidentifier: 1.0.1
3256 |
3257 | human-id@4.1.1: {}
3258 |
3259 | human-signals@2.1.0: {}
3260 |
3261 | iconv-lite@0.4.24:
3262 | dependencies:
3263 | safer-buffer: 2.1.2
3264 |
3265 | iconv-lite@0.5.2:
3266 | dependencies:
3267 | safer-buffer: 2.1.2
3268 |
3269 | iconv-lite@0.6.3:
3270 | dependencies:
3271 | safer-buffer: 2.1.2
3272 |
3273 | ignore@5.3.2: {}
3274 |
3275 | import-local@3.2.0:
3276 | dependencies:
3277 | pkg-dir: 4.2.0
3278 | resolve-cwd: 3.0.0
3279 |
3280 | imurmurhash@0.1.4: {}
3281 |
3282 | inflight@1.0.6:
3283 | dependencies:
3284 | once: 1.4.0
3285 | wrappy: 1.0.2
3286 |
3287 | inherits@2.0.4: {}
3288 |
3289 | ipaddr.js@1.9.1: {}
3290 |
3291 | is-arrayish@0.2.1: {}
3292 |
3293 | is-core-module@2.16.1:
3294 | dependencies:
3295 | hasown: 2.0.2
3296 |
3297 | is-extglob@2.1.1: {}
3298 |
3299 | is-fullwidth-code-point@3.0.0: {}
3300 |
3301 | is-generator-fn@2.1.0: {}
3302 |
3303 | is-glob@4.0.3:
3304 | dependencies:
3305 | is-extglob: 2.1.1
3306 |
3307 | is-number@7.0.0: {}
3308 |
3309 | is-promise@4.0.0: {}
3310 |
3311 | is-stream@2.0.1: {}
3312 |
3313 | is-subdir@1.2.0:
3314 | dependencies:
3315 | better-path-resolve: 1.0.0
3316 |
3317 | is-windows@1.0.2: {}
3318 |
3319 | isexe@2.0.0: {}
3320 |
3321 | istanbul-lib-coverage@3.2.2: {}
3322 |
3323 | istanbul-lib-instrument@5.2.1:
3324 | dependencies:
3325 | '@babel/core': 7.26.0
3326 | '@babel/parser': 7.26.5
3327 | '@istanbuljs/schema': 0.1.3
3328 | istanbul-lib-coverage: 3.2.2
3329 | semver: 6.3.1
3330 | transitivePeerDependencies:
3331 | - supports-color
3332 |
3333 | istanbul-lib-instrument@6.0.3:
3334 | dependencies:
3335 | '@babel/core': 7.26.0
3336 | '@babel/parser': 7.26.5
3337 | '@istanbuljs/schema': 0.1.3
3338 | istanbul-lib-coverage: 3.2.2
3339 | semver: 7.7.1
3340 | transitivePeerDependencies:
3341 | - supports-color
3342 |
3343 | istanbul-lib-report@3.0.1:
3344 | dependencies:
3345 | istanbul-lib-coverage: 3.2.2
3346 | make-dir: 4.0.0
3347 | supports-color: 7.2.0
3348 |
3349 | istanbul-lib-source-maps@4.0.1:
3350 | dependencies:
3351 | debug: 4.4.0
3352 | istanbul-lib-coverage: 3.2.2
3353 | source-map: 0.6.1
3354 | transitivePeerDependencies:
3355 | - supports-color
3356 |
3357 | istanbul-reports@3.1.7:
3358 | dependencies:
3359 | html-escaper: 2.0.2
3360 | istanbul-lib-report: 3.0.1
3361 |
3362 | jake@10.9.2:
3363 | dependencies:
3364 | async: 3.2.6
3365 | chalk: 4.1.2
3366 | filelist: 1.0.4
3367 | minimatch: 3.1.2
3368 |
3369 | jest-changed-files@29.7.0:
3370 | dependencies:
3371 | execa: 5.1.1
3372 | jest-util: 29.7.0
3373 | p-limit: 3.1.0
3374 |
3375 | jest-circus@29.7.0:
3376 | dependencies:
3377 | '@jest/environment': 29.7.0
3378 | '@jest/expect': 29.7.0
3379 | '@jest/test-result': 29.7.0
3380 | '@jest/types': 29.6.3
3381 | '@types/node': 22.15.21
3382 | chalk: 4.1.2
3383 | co: 4.6.0
3384 | dedent: 1.5.3
3385 | is-generator-fn: 2.1.0
3386 | jest-each: 29.7.0
3387 | jest-matcher-utils: 29.7.0
3388 | jest-message-util: 29.7.0
3389 | jest-runtime: 29.7.0
3390 | jest-snapshot: 29.7.0
3391 | jest-util: 29.7.0
3392 | p-limit: 3.1.0
3393 | pretty-format: 29.7.0
3394 | pure-rand: 6.1.0
3395 | slash: 3.0.0
3396 | stack-utils: 2.0.6
3397 | transitivePeerDependencies:
3398 | - babel-plugin-macros
3399 | - supports-color
3400 |
3401 | jest-cli@29.7.0(@types/node@22.15.21)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)):
3402 | dependencies:
3403 | '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3))
3404 | '@jest/test-result': 29.7.0
3405 | '@jest/types': 29.6.3
3406 | chalk: 4.1.2
3407 | create-jest: 29.7.0(@types/node@22.15.21)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3))
3408 | exit: 0.1.2
3409 | import-local: 3.2.0
3410 | jest-config: 29.7.0(@types/node@22.15.21)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3))
3411 | jest-util: 29.7.0
3412 | jest-validate: 29.7.0
3413 | yargs: 17.7.2
3414 | transitivePeerDependencies:
3415 | - '@types/node'
3416 | - babel-plugin-macros
3417 | - supports-color
3418 | - ts-node
3419 |
3420 | jest-config@29.7.0(@types/node@22.15.21)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)):
3421 | dependencies:
3422 | '@babel/core': 7.26.0
3423 | '@jest/test-sequencer': 29.7.0
3424 | '@jest/types': 29.6.3
3425 | babel-jest: 29.7.0(@babel/core@7.26.0)
3426 | chalk: 4.1.2
3427 | ci-info: 3.9.0
3428 | deepmerge: 4.3.1
3429 | glob: 7.2.3
3430 | graceful-fs: 4.2.11
3431 | jest-circus: 29.7.0
3432 | jest-environment-node: 29.7.0
3433 | jest-get-type: 29.6.3
3434 | jest-regex-util: 29.6.3
3435 | jest-resolve: 29.7.0
3436 | jest-runner: 29.7.0
3437 | jest-util: 29.7.0
3438 | jest-validate: 29.7.0
3439 | micromatch: 4.0.8
3440 | parse-json: 5.2.0
3441 | pretty-format: 29.7.0
3442 | slash: 3.0.0
3443 | strip-json-comments: 3.1.1
3444 | optionalDependencies:
3445 | '@types/node': 22.15.21
3446 | ts-node: 10.9.2(@types/node@22.15.21)(typescript@5.8.3)
3447 | transitivePeerDependencies:
3448 | - babel-plugin-macros
3449 | - supports-color
3450 |
3451 | jest-diff@29.7.0:
3452 | dependencies:
3453 | chalk: 4.1.2
3454 | diff-sequences: 29.6.3
3455 | jest-get-type: 29.6.3
3456 | pretty-format: 29.7.0
3457 |
3458 | jest-docblock@29.7.0:
3459 | dependencies:
3460 | detect-newline: 3.1.0
3461 |
3462 | jest-each@29.7.0:
3463 | dependencies:
3464 | '@jest/types': 29.6.3
3465 | chalk: 4.1.2
3466 | jest-get-type: 29.6.3
3467 | jest-util: 29.7.0
3468 | pretty-format: 29.7.0
3469 |
3470 | jest-environment-node@29.7.0:
3471 | dependencies:
3472 | '@jest/environment': 29.7.0
3473 | '@jest/fake-timers': 29.7.0
3474 | '@jest/types': 29.6.3
3475 | '@types/node': 22.15.21
3476 | jest-mock: 29.7.0
3477 | jest-util: 29.7.0
3478 |
3479 | jest-get-type@29.6.3: {}
3480 |
3481 | jest-haste-map@29.7.0:
3482 | dependencies:
3483 | '@jest/types': 29.6.3
3484 | '@types/graceful-fs': 4.1.9
3485 | '@types/node': 22.15.21
3486 | anymatch: 3.1.3
3487 | fb-watchman: 2.0.2
3488 | graceful-fs: 4.2.11
3489 | jest-regex-util: 29.6.3
3490 | jest-util: 29.7.0
3491 | jest-worker: 29.7.0
3492 | micromatch: 4.0.8
3493 | walker: 1.0.8
3494 | optionalDependencies:
3495 | fsevents: 2.3.3
3496 |
3497 | jest-leak-detector@29.7.0:
3498 | dependencies:
3499 | jest-get-type: 29.6.3
3500 | pretty-format: 29.7.0
3501 |
3502 | jest-matcher-utils@29.7.0:
3503 | dependencies:
3504 | chalk: 4.1.2
3505 | jest-diff: 29.7.0
3506 | jest-get-type: 29.6.3
3507 | pretty-format: 29.7.0
3508 |
3509 | jest-message-util@29.7.0:
3510 | dependencies:
3511 | '@babel/code-frame': 7.26.2
3512 | '@jest/types': 29.6.3
3513 | '@types/stack-utils': 2.0.3
3514 | chalk: 4.1.2
3515 | graceful-fs: 4.2.11
3516 | micromatch: 4.0.8
3517 | pretty-format: 29.7.0
3518 | slash: 3.0.0
3519 | stack-utils: 2.0.6
3520 |
3521 | jest-mock@29.7.0:
3522 | dependencies:
3523 | '@jest/types': 29.6.3
3524 | '@types/node': 22.15.21
3525 | jest-util: 29.7.0
3526 |
3527 | jest-pnp-resolver@1.2.3(jest-resolve@29.7.0):
3528 | optionalDependencies:
3529 | jest-resolve: 29.7.0
3530 |
3531 | jest-regex-util@29.6.3: {}
3532 |
3533 | jest-resolve-dependencies@29.7.0:
3534 | dependencies:
3535 | jest-regex-util: 29.6.3
3536 | jest-snapshot: 29.7.0
3537 | transitivePeerDependencies:
3538 | - supports-color
3539 |
3540 | jest-resolve@29.7.0:
3541 | dependencies:
3542 | chalk: 4.1.2
3543 | graceful-fs: 4.2.11
3544 | jest-haste-map: 29.7.0
3545 | jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0)
3546 | jest-util: 29.7.0
3547 | jest-validate: 29.7.0
3548 | resolve: 1.22.10
3549 | resolve.exports: 2.0.3
3550 | slash: 3.0.0
3551 |
3552 | jest-runner@29.7.0:
3553 | dependencies:
3554 | '@jest/console': 29.7.0
3555 | '@jest/environment': 29.7.0
3556 | '@jest/test-result': 29.7.0
3557 | '@jest/transform': 29.7.0
3558 | '@jest/types': 29.6.3
3559 | '@types/node': 22.15.21
3560 | chalk: 4.1.2
3561 | emittery: 0.13.1
3562 | graceful-fs: 4.2.11
3563 | jest-docblock: 29.7.0
3564 | jest-environment-node: 29.7.0
3565 | jest-haste-map: 29.7.0
3566 | jest-leak-detector: 29.7.0
3567 | jest-message-util: 29.7.0
3568 | jest-resolve: 29.7.0
3569 | jest-runtime: 29.7.0
3570 | jest-util: 29.7.0
3571 | jest-watcher: 29.7.0
3572 | jest-worker: 29.7.0
3573 | p-limit: 3.1.0
3574 | source-map-support: 0.5.13
3575 | transitivePeerDependencies:
3576 | - supports-color
3577 |
3578 | jest-runtime@29.7.0:
3579 | dependencies:
3580 | '@jest/environment': 29.7.0
3581 | '@jest/fake-timers': 29.7.0
3582 | '@jest/globals': 29.7.0
3583 | '@jest/source-map': 29.6.3
3584 | '@jest/test-result': 29.7.0
3585 | '@jest/transform': 29.7.0
3586 | '@jest/types': 29.6.3
3587 | '@types/node': 22.15.21
3588 | chalk: 4.1.2
3589 | cjs-module-lexer: 1.4.1
3590 | collect-v8-coverage: 1.0.2
3591 | glob: 7.2.3
3592 | graceful-fs: 4.2.11
3593 | jest-haste-map: 29.7.0
3594 | jest-message-util: 29.7.0
3595 | jest-mock: 29.7.0
3596 | jest-regex-util: 29.6.3
3597 | jest-resolve: 29.7.0
3598 | jest-snapshot: 29.7.0
3599 | jest-util: 29.7.0
3600 | slash: 3.0.0
3601 | strip-bom: 4.0.0
3602 | transitivePeerDependencies:
3603 | - supports-color
3604 |
3605 | jest-snapshot@29.7.0:
3606 | dependencies:
3607 | '@babel/core': 7.26.0
3608 | '@babel/generator': 7.26.5
3609 | '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0)
3610 | '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0)
3611 | '@babel/types': 7.26.5
3612 | '@jest/expect-utils': 29.7.0
3613 | '@jest/transform': 29.7.0
3614 | '@jest/types': 29.6.3
3615 | babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.0)
3616 | chalk: 4.1.2
3617 | expect: 29.7.0
3618 | graceful-fs: 4.2.11
3619 | jest-diff: 29.7.0
3620 | jest-get-type: 29.6.3
3621 | jest-matcher-utils: 29.7.0
3622 | jest-message-util: 29.7.0
3623 | jest-util: 29.7.0
3624 | natural-compare: 1.4.0
3625 | pretty-format: 29.7.0
3626 | semver: 7.7.1
3627 | transitivePeerDependencies:
3628 | - supports-color
3629 |
3630 | jest-util@29.7.0:
3631 | dependencies:
3632 | '@jest/types': 29.6.3
3633 | '@types/node': 22.15.21
3634 | chalk: 4.1.2
3635 | ci-info: 3.9.0
3636 | graceful-fs: 4.2.11
3637 | picomatch: 2.3.1
3638 |
3639 | jest-validate@29.7.0:
3640 | dependencies:
3641 | '@jest/types': 29.6.3
3642 | camelcase: 6.3.0
3643 | chalk: 4.1.2
3644 | jest-get-type: 29.6.3
3645 | leven: 3.1.0
3646 | pretty-format: 29.7.0
3647 |
3648 | jest-watcher@29.7.0:
3649 | dependencies:
3650 | '@jest/test-result': 29.7.0
3651 | '@jest/types': 29.6.3
3652 | '@types/node': 22.15.21
3653 | ansi-escapes: 4.3.2
3654 | chalk: 4.1.2
3655 | emittery: 0.13.1
3656 | jest-util: 29.7.0
3657 | string-length: 4.0.2
3658 |
3659 | jest-worker@29.7.0:
3660 | dependencies:
3661 | '@types/node': 22.15.21
3662 | jest-util: 29.7.0
3663 | merge-stream: 2.0.0
3664 | supports-color: 8.1.1
3665 |
3666 | jest@29.7.0(@types/node@22.15.21)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)):
3667 | dependencies:
3668 | '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3))
3669 | '@jest/types': 29.6.3
3670 | import-local: 3.2.0
3671 | jest-cli: 29.7.0(@types/node@22.15.21)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3))
3672 | transitivePeerDependencies:
3673 | - '@types/node'
3674 | - babel-plugin-macros
3675 | - supports-color
3676 | - ts-node
3677 |
3678 | js-base64@3.7.7: {}
3679 |
3680 | js-tokens@4.0.0: {}
3681 |
3682 | js-yaml@3.14.1:
3683 | dependencies:
3684 | argparse: 1.0.10
3685 | esprima: 4.0.1
3686 |
3687 | jsesc@3.1.0: {}
3688 |
3689 | json-parse-even-better-errors@2.3.1: {}
3690 |
3691 | json-schema-traverse@1.0.0: {}
3692 |
3693 | json5@2.2.3: {}
3694 |
3695 | jsonfile@4.0.0:
3696 | optionalDependencies:
3697 | graceful-fs: 4.2.11
3698 |
3699 | kleur@3.0.3: {}
3700 |
3701 | leven@3.1.0: {}
3702 |
3703 | libsql@0.5.11:
3704 | dependencies:
3705 | '@neon-rs/load': 0.0.4
3706 | detect-libc: 2.0.2
3707 | optionalDependencies:
3708 | '@libsql/darwin-arm64': 0.5.11
3709 | '@libsql/darwin-x64': 0.5.11
3710 | '@libsql/linux-arm-gnueabihf': 0.5.11
3711 | '@libsql/linux-arm-musleabihf': 0.5.11
3712 | '@libsql/linux-arm64-gnu': 0.5.11
3713 | '@libsql/linux-arm64-musl': 0.5.11
3714 | '@libsql/linux-x64-gnu': 0.5.11
3715 | '@libsql/linux-x64-musl': 0.5.11
3716 | '@libsql/win32-x64-msvc': 0.5.11
3717 |
3718 | lines-and-columns@1.2.4: {}
3719 |
3720 | locate-path@5.0.0:
3721 | dependencies:
3722 | p-locate: 4.1.0
3723 |
3724 | lodash.memoize@4.1.2: {}
3725 |
3726 | lodash.startcase@4.4.0: {}
3727 |
3728 | lru-cache@5.1.1:
3729 | dependencies:
3730 | yallist: 3.1.1
3731 |
3732 | make-dir@4.0.0:
3733 | dependencies:
3734 | semver: 7.7.1
3735 |
3736 | make-error@1.3.6: {}
3737 |
3738 | makeerror@1.0.12:
3739 | dependencies:
3740 | tmpl: 1.0.5
3741 |
3742 | math-intrinsics@1.1.0: {}
3743 |
3744 | media-typer@1.1.0: {}
3745 |
3746 | merge-descriptors@2.0.0: {}
3747 |
3748 | merge-stream@2.0.0: {}
3749 |
3750 | merge2@1.4.1: {}
3751 |
3752 | methods@1.1.2: {}
3753 |
3754 | micromatch@4.0.8:
3755 | dependencies:
3756 | braces: 3.0.3
3757 | picomatch: 2.3.1
3758 |
3759 | mime-db@1.52.0: {}
3760 |
3761 | mime-db@1.53.0: {}
3762 |
3763 | mime-types@2.1.35:
3764 | dependencies:
3765 | mime-db: 1.52.0
3766 |
3767 | mime-types@3.0.0:
3768 | dependencies:
3769 | mime-db: 1.53.0
3770 |
3771 | mimic-fn@2.1.0: {}
3772 |
3773 | minimatch@3.1.2:
3774 | dependencies:
3775 | brace-expansion: 1.1.11
3776 |
3777 | minimatch@5.1.6:
3778 | dependencies:
3779 | brace-expansion: 2.0.1
3780 |
3781 | mri@1.2.0: {}
3782 |
3783 | ms@2.0.0: {}
3784 |
3785 | ms@2.1.2: {}
3786 |
3787 | ms@2.1.3: {}
3788 |
3789 | natural-compare@1.4.0: {}
3790 |
3791 | negotiator@1.0.0: {}
3792 |
3793 | node-domexception@1.0.0: {}
3794 |
3795 | node-fetch@3.3.2:
3796 | dependencies:
3797 | data-uri-to-buffer: 4.0.1
3798 | fetch-blob: 3.2.0
3799 | formdata-polyfill: 4.0.10
3800 |
3801 | node-int64@0.4.0: {}
3802 |
3803 | node-releases@2.0.19: {}
3804 |
3805 | normalize-path@3.0.0: {}
3806 |
3807 | npm-run-path@4.0.1:
3808 | dependencies:
3809 | path-key: 3.1.1
3810 |
3811 | object-assign@4.1.1: {}
3812 |
3813 | object-inspect@1.13.4: {}
3814 |
3815 | on-finished@2.4.1:
3816 | dependencies:
3817 | ee-first: 1.1.1
3818 |
3819 | once@1.4.0:
3820 | dependencies:
3821 | wrappy: 1.0.2
3822 |
3823 | onetime@5.1.2:
3824 | dependencies:
3825 | mimic-fn: 2.1.0
3826 |
3827 | os-tmpdir@1.0.2: {}
3828 |
3829 | outdent@0.5.0: {}
3830 |
3831 | p-filter@2.1.0:
3832 | dependencies:
3833 | p-map: 2.1.0
3834 |
3835 | p-limit@2.3.0:
3836 | dependencies:
3837 | p-try: 2.2.0
3838 |
3839 | p-limit@3.1.0:
3840 | dependencies:
3841 | yocto-queue: 0.1.0
3842 |
3843 | p-locate@4.1.0:
3844 | dependencies:
3845 | p-limit: 2.3.0
3846 |
3847 | p-map@2.1.0: {}
3848 |
3849 | p-try@2.2.0: {}
3850 |
3851 | package-manager-detector@0.2.8: {}
3852 |
3853 | parse-json@5.2.0:
3854 | dependencies:
3855 | '@babel/code-frame': 7.26.2
3856 | error-ex: 1.3.2
3857 | json-parse-even-better-errors: 2.3.1
3858 | lines-and-columns: 1.2.4
3859 |
3860 | parseurl@1.3.3: {}
3861 |
3862 | path-exists@4.0.0: {}
3863 |
3864 | path-is-absolute@1.0.1: {}
3865 |
3866 | path-key@3.1.1: {}
3867 |
3868 | path-parse@1.0.7: {}
3869 |
3870 | path-to-regexp@8.2.0: {}
3871 |
3872 | path-type@4.0.0: {}
3873 |
3874 | picocolors@1.1.1: {}
3875 |
3876 | picomatch@2.3.1: {}
3877 |
3878 | pify@4.0.1: {}
3879 |
3880 | pirates@4.0.6: {}
3881 |
3882 | pkce-challenge@5.0.0: {}
3883 |
3884 | pkg-dir@4.2.0:
3885 | dependencies:
3886 | find-up: 4.1.0
3887 |
3888 | prettier@2.8.8: {}
3889 |
3890 | pretty-format@29.7.0:
3891 | dependencies:
3892 | '@jest/schemas': 29.6.3
3893 | ansi-styles: 5.2.0
3894 | react-is: 18.3.1
3895 |
3896 | promise-limit@2.7.0: {}
3897 |
3898 | prompts@2.4.2:
3899 | dependencies:
3900 | kleur: 3.0.3
3901 | sisteransi: 1.0.5
3902 |
3903 | proxy-addr@2.0.7:
3904 | dependencies:
3905 | forwarded: 0.2.0
3906 | ipaddr.js: 1.9.1
3907 |
3908 | pure-rand@6.1.0: {}
3909 |
3910 | qs@6.13.0:
3911 | dependencies:
3912 | side-channel: 1.1.0
3913 |
3914 | qs@6.14.0:
3915 | dependencies:
3916 | side-channel: 1.1.0
3917 |
3918 | queue-microtask@1.2.3: {}
3919 |
3920 | range-parser@1.2.1: {}
3921 |
3922 | raw-body@3.0.0:
3923 | dependencies:
3924 | bytes: 3.1.2
3925 | http-errors: 2.0.0
3926 | iconv-lite: 0.6.3
3927 | unpipe: 1.0.0
3928 |
3929 | react-is@18.3.1: {}
3930 |
3931 | read-yaml-file@1.1.0:
3932 | dependencies:
3933 | graceful-fs: 4.2.11
3934 | js-yaml: 3.14.1
3935 | pify: 4.0.1
3936 | strip-bom: 3.0.0
3937 |
3938 | regenerator-runtime@0.14.1: {}
3939 |
3940 | require-directory@2.1.1: {}
3941 |
3942 | require-from-string@2.0.2: {}
3943 |
3944 | resolve-cwd@3.0.0:
3945 | dependencies:
3946 | resolve-from: 5.0.0
3947 |
3948 | resolve-from@5.0.0: {}
3949 |
3950 | resolve.exports@2.0.3: {}
3951 |
3952 | resolve@1.22.10:
3953 | dependencies:
3954 | is-core-module: 2.16.1
3955 | path-parse: 1.0.7
3956 | supports-preserve-symlinks-flag: 1.0.0
3957 |
3958 | reusify@1.0.4: {}
3959 |
3960 | router@2.1.0:
3961 | dependencies:
3962 | is-promise: 4.0.0
3963 | parseurl: 1.3.3
3964 | path-to-regexp: 8.2.0
3965 |
3966 | run-parallel@1.2.0:
3967 | dependencies:
3968 | queue-microtask: 1.2.3
3969 |
3970 | safe-buffer@5.2.1: {}
3971 |
3972 | safer-buffer@2.1.2: {}
3973 |
3974 | semver@6.3.1: {}
3975 |
3976 | semver@7.7.1: {}
3977 |
3978 | semver@7.7.2: {}
3979 |
3980 | send@1.1.0:
3981 | dependencies:
3982 | debug: 4.4.0
3983 | destroy: 1.2.0
3984 | encodeurl: 2.0.0
3985 | escape-html: 1.0.3
3986 | etag: 1.8.1
3987 | fresh: 0.5.2
3988 | http-errors: 2.0.0
3989 | mime-types: 2.1.35
3990 | ms: 2.1.3
3991 | on-finished: 2.4.1
3992 | range-parser: 1.2.1
3993 | statuses: 2.0.1
3994 | transitivePeerDependencies:
3995 | - supports-color
3996 |
3997 | serve-static@2.1.0:
3998 | dependencies:
3999 | encodeurl: 2.0.0
4000 | escape-html: 1.0.3
4001 | parseurl: 1.3.3
4002 | send: 1.1.0
4003 | transitivePeerDependencies:
4004 | - supports-color
4005 |
4006 | setprototypeof@1.2.0: {}
4007 |
4008 | shebang-command@2.0.0:
4009 | dependencies:
4010 | shebang-regex: 3.0.0
4011 |
4012 | shebang-regex@3.0.0: {}
4013 |
4014 | side-channel-list@1.0.0:
4015 | dependencies:
4016 | es-errors: 1.3.0
4017 | object-inspect: 1.13.4
4018 |
4019 | side-channel-map@1.0.1:
4020 | dependencies:
4021 | call-bound: 1.0.3
4022 | es-errors: 1.3.0
4023 | get-intrinsic: 1.3.0
4024 | object-inspect: 1.13.4
4025 |
4026 | side-channel-weakmap@1.0.2:
4027 | dependencies:
4028 | call-bound: 1.0.3
4029 | es-errors: 1.3.0
4030 | get-intrinsic: 1.3.0
4031 | object-inspect: 1.13.4
4032 | side-channel-map: 1.0.1
4033 |
4034 | side-channel@1.1.0:
4035 | dependencies:
4036 | es-errors: 1.3.0
4037 | object-inspect: 1.13.4
4038 | side-channel-list: 1.0.0
4039 | side-channel-map: 1.0.1
4040 | side-channel-weakmap: 1.0.2
4041 |
4042 | signal-exit@3.0.7: {}
4043 |
4044 | signal-exit@4.1.0: {}
4045 |
4046 | sisteransi@1.0.5: {}
4047 |
4048 | slash@3.0.0: {}
4049 |
4050 | source-map-support@0.5.13:
4051 | dependencies:
4052 | buffer-from: 1.1.2
4053 | source-map: 0.6.1
4054 |
4055 | source-map@0.6.1: {}
4056 |
4057 | spawndamnit@3.0.1:
4058 | dependencies:
4059 | cross-spawn: 7.0.6
4060 | signal-exit: 4.1.0
4061 |
4062 | sprintf-js@1.0.3: {}
4063 |
4064 | stack-utils@2.0.6:
4065 | dependencies:
4066 | escape-string-regexp: 2.0.0
4067 |
4068 | statuses@2.0.1: {}
4069 |
4070 | string-length@4.0.2:
4071 | dependencies:
4072 | char-regex: 1.0.2
4073 | strip-ansi: 6.0.1
4074 |
4075 | string-width@4.2.3:
4076 | dependencies:
4077 | emoji-regex: 8.0.0
4078 | is-fullwidth-code-point: 3.0.0
4079 | strip-ansi: 6.0.1
4080 |
4081 | strip-ansi@6.0.1:
4082 | dependencies:
4083 | ansi-regex: 5.0.1
4084 |
4085 | strip-bom@3.0.0: {}
4086 |
4087 | strip-bom@4.0.0: {}
4088 |
4089 | strip-final-newline@2.0.0: {}
4090 |
4091 | strip-json-comments@3.1.1: {}
4092 |
4093 | supports-color@7.2.0:
4094 | dependencies:
4095 | has-flag: 4.0.0
4096 |
4097 | supports-color@8.1.1:
4098 | dependencies:
4099 | has-flag: 4.0.0
4100 |
4101 | supports-preserve-symlinks-flag@1.0.0: {}
4102 |
4103 | term-size@2.2.1: {}
4104 |
4105 | test-exclude@6.0.0:
4106 | dependencies:
4107 | '@istanbuljs/schema': 0.1.3
4108 | glob: 7.2.3
4109 | minimatch: 3.1.2
4110 |
4111 | tmp@0.0.33:
4112 | dependencies:
4113 | os-tmpdir: 1.0.2
4114 |
4115 | tmpl@1.0.5: {}
4116 |
4117 | to-regex-range@5.0.1:
4118 | dependencies:
4119 | is-number: 7.0.0
4120 |
4121 | toidentifier@1.0.1: {}
4122 |
4123 | ts-jest@29.3.4(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@22.15.21)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)))(typescript@5.8.3):
4124 | dependencies:
4125 | bs-logger: 0.2.6
4126 | ejs: 3.1.10
4127 | fast-json-stable-stringify: 2.1.0
4128 | jest: 29.7.0(@types/node@22.15.21)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3))
4129 | jest-util: 29.7.0
4130 | json5: 2.2.3
4131 | lodash.memoize: 4.1.2
4132 | make-error: 1.3.6
4133 | semver: 7.7.2
4134 | type-fest: 4.41.0
4135 | typescript: 5.8.3
4136 | yargs-parser: 21.1.1
4137 | optionalDependencies:
4138 | '@babel/core': 7.26.0
4139 | '@jest/transform': 29.7.0
4140 | '@jest/types': 29.6.3
4141 | babel-jest: 29.7.0(@babel/core@7.26.0)
4142 |
4143 | ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3):
4144 | dependencies:
4145 | '@cspotcode/source-map-support': 0.8.1
4146 | '@tsconfig/node10': 1.0.11
4147 | '@tsconfig/node12': 1.0.11
4148 | '@tsconfig/node14': 1.0.3
4149 | '@tsconfig/node16': 1.0.4
4150 | '@types/node': 22.15.21
4151 | acorn: 8.14.0
4152 | acorn-walk: 8.3.4
4153 | arg: 4.1.3
4154 | create-require: 1.1.1
4155 | diff: 4.0.2
4156 | make-error: 1.3.6
4157 | typescript: 5.8.3
4158 | v8-compile-cache-lib: 3.0.1
4159 | yn: 3.1.1
4160 |
4161 | type-detect@4.0.8: {}
4162 |
4163 | type-fest@0.21.3: {}
4164 |
4165 | type-fest@4.41.0: {}
4166 |
4167 | type-is@2.0.0:
4168 | dependencies:
4169 | content-type: 1.0.5
4170 | media-typer: 1.1.0
4171 | mime-types: 3.0.0
4172 |
4173 | typescript@5.8.3: {}
4174 |
4175 | undici-types@6.21.0: {}
4176 |
4177 | universalify@0.1.2: {}
4178 |
4179 | unpipe@1.0.0: {}
4180 |
4181 | update-browserslist-db@1.1.2(browserslist@4.24.4):
4182 | dependencies:
4183 | browserslist: 4.24.4
4184 | escalade: 3.2.0
4185 | picocolors: 1.1.1
4186 |
4187 | utils-merge@1.0.1: {}
4188 |
4189 | v8-compile-cache-lib@3.0.1: {}
4190 |
4191 | v8-to-istanbul@9.3.0:
4192 | dependencies:
4193 | '@jridgewell/trace-mapping': 0.3.25
4194 | '@types/istanbul-lib-coverage': 2.0.6
4195 | convert-source-map: 2.0.0
4196 |
4197 | vary@1.1.2: {}
4198 |
4199 | walker@1.0.8:
4200 | dependencies:
4201 | makeerror: 1.0.12
4202 |
4203 | web-streams-polyfill@3.3.3: {}
4204 |
4205 | which@2.0.2:
4206 | dependencies:
4207 | isexe: 2.0.0
4208 |
4209 | wrap-ansi@7.0.0:
4210 | dependencies:
4211 | ansi-styles: 4.3.0
4212 | string-width: 4.2.3
4213 | strip-ansi: 6.0.1
4214 |
4215 | wrappy@1.0.2: {}
4216 |
4217 | write-file-atomic@4.0.2:
4218 | dependencies:
4219 | imurmurhash: 0.1.4
4220 | signal-exit: 3.0.7
4221 |
4222 | ws@8.18.0: {}
4223 |
4224 | y18n@5.0.8: {}
4225 |
4226 | yallist@3.1.1: {}
4227 |
4228 | yargs-parser@21.1.1: {}
4229 |
4230 | yargs@17.7.2:
4231 | dependencies:
4232 | cliui: 8.0.1
4233 | escalade: 3.2.0
4234 | get-caller-file: 2.0.5
4235 | require-directory: 2.1.1
4236 | string-width: 4.2.3
4237 | y18n: 5.0.8
4238 | yargs-parser: 21.1.1
4239 |
4240 | yn@3.1.1: {}
4241 |
4242 | yocto-queue@0.1.0: {}
4243 |
4244 | zod-to-json-schema@3.24.1(zod@3.24.1):
4245 | dependencies:
4246 | zod: 3.24.1
4247 |
4248 | zod@3.24.1: {}
4249 |
--------------------------------------------------------------------------------
/renovate.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3 | "extends": [
4 | "config:recommended"
5 | ]
6 | }
--------------------------------------------------------------------------------
/src/db/client.ts:
--------------------------------------------------------------------------------
1 | import { createClient } from '@libsql/client';
2 | import { Entity, Relation, SearchResult } from '../types/index.js';
3 |
4 | // Types for configuration
5 | interface DatabaseConfig {
6 | url: string;
7 | authToken?: string;
8 | }
9 |
10 | export class DatabaseManager {
11 | private static instance: DatabaseManager;
12 | private client;
13 |
14 | private constructor(config: DatabaseConfig) {
15 | if (!config.url) {
16 | throw new Error('Database URL is required');
17 | }
18 | this.client = createClient({
19 | url: config.url,
20 | authToken: config.authToken,
21 | });
22 | }
23 |
24 | public static async get_instance(
25 | config: DatabaseConfig,
26 | ): Promise {
27 | if (!DatabaseManager.instance) {
28 | DatabaseManager.instance = new DatabaseManager(config);
29 | await DatabaseManager.instance.initialize();
30 | }
31 | return DatabaseManager.instance;
32 | }
33 |
34 | // Convert array to vector string representation with validation
35 | private array_to_vector_string(
36 | numbers: number[] | undefined,
37 | ): string {
38 | // If no embedding provided, create a default zero vector
39 | if (!numbers || !Array.isArray(numbers)) {
40 | return '[0.0, 0.0, 0.0, 0.0]';
41 | }
42 |
43 | // Validate vector dimensions match schema (4 dimensions for testing)
44 | if (numbers.length !== 4) {
45 | throw new Error(
46 | `Vector must have exactly 4 dimensions, got ${numbers.length}. Please provide a 4D vector or omit for default zero vector.`,
47 | );
48 | }
49 |
50 | // Validate all elements are numbers and convert NaN/Infinity to 0
51 | const sanitized_numbers = numbers.map((n) => {
52 | if (typeof n !== 'number' || isNaN(n) || !isFinite(n)) {
53 | console.warn(
54 | `Invalid vector value detected, using 0.0 instead of: ${n}`,
55 | );
56 | return 0.0;
57 | }
58 | return n;
59 | });
60 |
61 | return `[${sanitized_numbers.join(', ')}]`;
62 | }
63 |
64 | // Extract vector from binary format
65 | private async extract_vector(
66 | embedding: Uint8Array,
67 | ): Promise {
68 | const result = await this.client.execute({
69 | sql: 'SELECT vector_extract(?) as vec',
70 | args: [embedding],
71 | });
72 | const vecStr = result.rows[0].vec as string;
73 | return JSON.parse(vecStr);
74 | }
75 |
76 | // Entity operations
77 | async create_entities(
78 | entities: Array<{
79 | name: string;
80 | entityType: string;
81 | observations: string[];
82 | embedding?: number[];
83 | }>,
84 | ): Promise {
85 | try {
86 | for (const entity of entities) {
87 | // Validate entity name
88 | if (
89 | !entity.name ||
90 | typeof entity.name !== 'string' ||
91 | entity.name.trim() === ''
92 | ) {
93 | throw new Error('Entity name must be a non-empty string');
94 | }
95 |
96 | // Validate entity type
97 | if (
98 | !entity.entityType ||
99 | typeof entity.entityType !== 'string' ||
100 | entity.entityType.trim() === ''
101 | ) {
102 | throw new Error(
103 | `Invalid entity type for entity "${entity.name}"`,
104 | );
105 | }
106 |
107 | // Validate observations
108 | if (
109 | !Array.isArray(entity.observations) ||
110 | entity.observations.length === 0
111 | ) {
112 | throw new Error(
113 | `Entity "${entity.name}" must have at least one observation`,
114 | );
115 | }
116 |
117 | if (
118 | !entity.observations.every(
119 | (obs) => typeof obs === 'string' && obs.trim() !== '',
120 | )
121 | ) {
122 | throw new Error(
123 | `Entity "${entity.name}" has invalid observations. All observations must be non-empty strings`,
124 | );
125 | }
126 |
127 | // Start a transaction
128 | const txn = await this.client.transaction('write');
129 |
130 | try {
131 | const vector_string = this.array_to_vector_string(
132 | entity.embedding,
133 | );
134 |
135 | // First try to update
136 | const result = await txn.execute({
137 | sql: 'UPDATE entities SET entity_type = ?, embedding = vector32(?) WHERE name = ?',
138 | args: [entity.entityType, vector_string, entity.name],
139 | });
140 |
141 | // If no rows affected, do insert
142 | if (result.rowsAffected === 0) {
143 | await txn.execute({
144 | sql: 'INSERT INTO entities (name, entity_type, embedding) VALUES (?, ?, vector32(?))',
145 | args: [entity.name, entity.entityType, vector_string],
146 | });
147 | }
148 |
149 | // Clear old observations
150 | await txn.execute({
151 | sql: 'DELETE FROM observations WHERE entity_name = ?',
152 | args: [entity.name],
153 | });
154 |
155 | // Add new observations
156 | for (const observation of entity.observations) {
157 | await txn.execute({
158 | sql: 'INSERT INTO observations (entity_name, content) VALUES (?, ?)',
159 | args: [entity.name, observation],
160 | });
161 | }
162 |
163 | await txn.commit();
164 | } catch (error) {
165 | await txn.rollback();
166 | throw error;
167 | }
168 | }
169 | } catch (error) {
170 | // Wrap all errors with context
171 | throw new Error(
172 | `Entity operation failed: ${
173 | error instanceof Error ? error.message : String(error)
174 | }`,
175 | );
176 | }
177 | }
178 |
179 | async search_similar(
180 | embedding: number[],
181 | limit: number = 5,
182 | ): Promise {
183 | try {
184 | // Validate input vector
185 | if (!Array.isArray(embedding)) {
186 | throw new Error('Search embedding must be an array');
187 | }
188 |
189 | const vector_string = this.array_to_vector_string(embedding);
190 |
191 | // Use vector_top_k to find similar entities, excluding zero vectors
192 | const results = await this.client.execute({
193 | sql: `
194 | SELECT e.name, e.entity_type, e.embedding,
195 | vector_distance_cos(e.embedding, vector32(?)) as distance
196 | FROM entities e
197 | WHERE e.embedding IS NOT NULL
198 | AND e.embedding != vector32('[0.0, 0.0, 0.0, 0.0]')
199 | ORDER BY distance ASC
200 | LIMIT ?
201 | `,
202 | args: [vector_string, limit],
203 | });
204 |
205 | // Get observations for each entity
206 | const search_results: SearchResult[] = [];
207 | for (const row of results.rows) {
208 | try {
209 | const observations = await this.client.execute({
210 | sql: 'SELECT content FROM observations WHERE entity_name = ?',
211 | args: [row.name],
212 | });
213 |
214 | const entity_embedding = await this.extract_vector(
215 | row.embedding as Uint8Array,
216 | );
217 |
218 | search_results.push({
219 | entity: {
220 | name: row.name as string,
221 | entityType: row.entity_type as string,
222 | observations: observations.rows.map(
223 | (obs) => obs.content as string,
224 | ),
225 | embedding: entity_embedding,
226 | },
227 | distance: row.distance as number,
228 | });
229 | } catch (error) {
230 | console.warn(
231 | `Failed to process search result for entity "${
232 | row.name
233 | }": ${
234 | error instanceof Error ? error.message : String(error)
235 | }`,
236 | );
237 | // Continue processing other results
238 | continue;
239 | }
240 | }
241 |
242 | return search_results;
243 | } catch (error) {
244 | throw new Error(
245 | `Similarity search failed: ${
246 | error instanceof Error ? error.message : String(error)
247 | }`,
248 | );
249 | }
250 | }
251 |
252 | async get_entity(name: string): Promise {
253 | const entity_result = await this.client.execute({
254 | sql: 'SELECT name, entity_type, embedding FROM entities WHERE name = ?',
255 | args: [name],
256 | });
257 |
258 | if (entity_result.rows.length === 0) {
259 | throw new Error(`Entity not found: ${name}`);
260 | }
261 |
262 | const observations_result = await this.client.execute({
263 | sql: 'SELECT content FROM observations WHERE entity_name = ?',
264 | args: [name],
265 | });
266 |
267 | const embedding = entity_result.rows[0].embedding
268 | ? await this.extract_vector(
269 | entity_result.rows[0].embedding as Uint8Array,
270 | )
271 | : undefined;
272 |
273 | return {
274 | name: entity_result.rows[0].name as string,
275 | entityType: entity_result.rows[0].entity_type as string,
276 | observations: observations_result.rows.map(
277 | (row) => row.content as string,
278 | ),
279 | embedding,
280 | };
281 | }
282 |
283 | async search_entities(query: string): Promise {
284 | const results = await this.client.execute({
285 | sql: `
286 | SELECT DISTINCT e.name, e.entity_type, e.embedding
287 | FROM entities e
288 | LEFT JOIN observations o ON e.name = o.entity_name
289 | WHERE e.name LIKE ? OR e.entity_type LIKE ? OR o.content LIKE ?
290 | `,
291 | args: [`%${query}%`, `%${query}%`, `%${query}%`],
292 | });
293 |
294 | const entities: Entity[] = [];
295 | for (const row of results.rows) {
296 | const name = row.name as string;
297 | const observations = await this.client.execute({
298 | sql: 'SELECT content FROM observations WHERE entity_name = ?',
299 | args: [name],
300 | });
301 |
302 | const embedding = row.embedding
303 | ? await this.extract_vector(row.embedding as Uint8Array)
304 | : undefined;
305 |
306 | entities.push({
307 | name,
308 | entityType: row.entity_type as string,
309 | observations: observations.rows.map(
310 | (obs) => obs.content as string,
311 | ),
312 | embedding,
313 | });
314 | }
315 |
316 | return entities;
317 | }
318 |
319 | async get_recent_entities(limit = 10): Promise {
320 | const results = await this.client.execute({
321 | sql: 'SELECT name, entity_type, embedding FROM entities ORDER BY created_at DESC LIMIT ?',
322 | args: [limit],
323 | });
324 |
325 | const entities: Entity[] = [];
326 | for (const row of results.rows) {
327 | const name = row.name as string;
328 | const observations = await this.client.execute({
329 | sql: 'SELECT content FROM observations WHERE entity_name = ?',
330 | args: [name],
331 | });
332 |
333 | const embedding = row.embedding
334 | ? await this.extract_vector(row.embedding as Uint8Array)
335 | : undefined;
336 |
337 | entities.push({
338 | name,
339 | entityType: row.entity_type as string,
340 | observations: observations.rows.map(
341 | (obs) => obs.content as string,
342 | ),
343 | embedding,
344 | });
345 | }
346 |
347 | return entities;
348 | }
349 |
350 | // Relation operations
351 | async create_relations(relations: Relation[]): Promise {
352 | try {
353 | if (relations.length === 0) return;
354 |
355 | // Prepare batch statements for all relations
356 | const batch_statements = relations.map((relation) => ({
357 | sql: 'INSERT INTO relations (source, target, relation_type) VALUES (?, ?, ?)',
358 | args: [relation.from, relation.to, relation.relationType],
359 | }));
360 |
361 | // Execute all inserts in a single batch transaction
362 | await this.client.batch(batch_statements, 'write');
363 | } catch (error) {
364 | throw new Error(
365 | `Failed to create relations: ${
366 | error instanceof Error ? error.message : String(error)
367 | }`,
368 | );
369 | }
370 | }
371 |
372 | async delete_entity(name: string): Promise {
373 | try {
374 | // Check if entity exists first
375 | const existing = await this.client.execute({
376 | sql: 'SELECT name FROM entities WHERE name = ?',
377 | args: [name],
378 | });
379 |
380 | if (existing.rows.length === 0) {
381 | throw new Error(`Entity not found: ${name}`);
382 | }
383 |
384 | // Prepare batch statements for deletion
385 | const batch_statements = [
386 | {
387 | // Delete associated observations first (due to foreign key)
388 | sql: 'DELETE FROM observations WHERE entity_name = ?',
389 | args: [name],
390 | },
391 | {
392 | // Delete associated relations (due to foreign key)
393 | sql: 'DELETE FROM relations WHERE source = ? OR target = ?',
394 | args: [name, name],
395 | },
396 | {
397 | // Delete the entity
398 | sql: 'DELETE FROM entities WHERE name = ?',
399 | args: [name],
400 | },
401 | ];
402 |
403 | // Execute all deletions in a single batch transaction
404 | await this.client.batch(batch_statements, 'write');
405 | } catch (error) {
406 | throw new Error(
407 | `Failed to delete entity "${name}": ${
408 | error instanceof Error ? error.message : String(error)
409 | }`,
410 | );
411 | }
412 | }
413 |
414 | async delete_relation(
415 | source: string,
416 | target: string,
417 | type: string,
418 | ): Promise {
419 | try {
420 | const result = await this.client.execute({
421 | sql: 'DELETE FROM relations WHERE source = ? AND target = ? AND relation_type = ?',
422 | args: [source, target, type],
423 | });
424 |
425 | if (result.rowsAffected === 0) {
426 | throw new Error(
427 | `Relation not found: ${source} -> ${target} (${type})`,
428 | );
429 | }
430 | } catch (error) {
431 | throw new Error(
432 | `Failed to delete relation: ${
433 | error instanceof Error ? error.message : String(error)
434 | }`,
435 | );
436 | }
437 | }
438 |
439 | async get_relations_for_entities(
440 | entities: Entity[],
441 | ): Promise {
442 | if (entities.length === 0) return [];
443 |
444 | const entity_names = entities.map((e) => e.name);
445 | const placeholders = entity_names.map(() => '?').join(',');
446 |
447 | const results = await this.client.execute({
448 | sql: `
449 | SELECT source as from_entity, target as to_entity, relation_type
450 | FROM relations
451 | WHERE source IN (${placeholders})
452 | OR target IN (${placeholders})
453 | `,
454 | args: [...entity_names, ...entity_names],
455 | });
456 |
457 | return results.rows.map((row) => ({
458 | from: row.from_entity as string,
459 | to: row.to_entity as string,
460 | relationType: row.relation_type as string,
461 | }));
462 | }
463 |
464 | // Graph operations
465 | async read_graph(): Promise<{
466 | entities: Entity[];
467 | relations: Relation[];
468 | }> {
469 | const recent_entities = await this.get_recent_entities();
470 | const relations = await this.get_relations_for_entities(
471 | recent_entities,
472 | );
473 | return { entities: recent_entities, relations };
474 | }
475 |
476 | async search_nodes(
477 | query: string | number[],
478 | ): Promise<{ entities: Entity[]; relations: Relation[] }> {
479 | try {
480 | let entities: Entity[];
481 |
482 | if (Array.isArray(query)) {
483 | // Validate vector query
484 | if (!query.every((n) => typeof n === 'number')) {
485 | throw new Error('Vector query must contain only numbers');
486 | }
487 | // Vector similarity search
488 | const results = await this.search_similar(query);
489 | entities = results.map((r) => r.entity);
490 | } else {
491 | // Validate text query
492 | if (typeof query !== 'string') {
493 | throw new Error('Text query must be a string');
494 | }
495 | if (query.trim() === '') {
496 | throw new Error('Text query cannot be empty');
497 | }
498 | // Text-based search
499 | entities = await this.search_entities(query);
500 | }
501 |
502 | // If no entities found, return empty result
503 | if (entities.length === 0) {
504 | return { entities: [], relations: [] };
505 | }
506 |
507 | const relations = await this.get_relations_for_entities(
508 | entities,
509 | );
510 | return { entities, relations };
511 | } catch (error) {
512 | throw new Error(
513 | `Node search failed: ${
514 | error instanceof Error ? error.message : String(error)
515 | }`,
516 | );
517 | }
518 | }
519 |
520 | // Database operations
521 | public get_client() {
522 | return this.client;
523 | }
524 |
525 | public async initialize() {
526 | try {
527 | // Create tables if they don't exist - each as a single statement
528 | await this.client.execute(`
529 | CREATE TABLE IF NOT EXISTS entities (
530 | name TEXT PRIMARY KEY,
531 | entity_type TEXT NOT NULL,
532 | embedding F32_BLOB(4), -- 4-dimension vector for testing
533 | created_at DATETIME DEFAULT CURRENT_TIMESTAMP
534 | )
535 | `);
536 |
537 | await this.client.execute(`
538 | CREATE TABLE IF NOT EXISTS observations (
539 | id INTEGER PRIMARY KEY AUTOINCREMENT,
540 | entity_name TEXT NOT NULL,
541 | content TEXT NOT NULL,
542 | created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
543 | FOREIGN KEY (entity_name) REFERENCES entities(name)
544 | )
545 | `);
546 |
547 | await this.client.execute(`
548 | CREATE TABLE IF NOT EXISTS relations (
549 | id INTEGER PRIMARY KEY AUTOINCREMENT,
550 | source TEXT NOT NULL,
551 | target TEXT NOT NULL,
552 | relation_type TEXT NOT NULL,
553 | created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
554 | FOREIGN KEY (source) REFERENCES entities(name),
555 | FOREIGN KEY (target) REFERENCES entities(name)
556 | )
557 | `);
558 |
559 | // Create all indexes in a single batch transaction
560 | await this.client.batch(
561 | [
562 | {
563 | sql: 'CREATE INDEX IF NOT EXISTS idx_entities_name ON entities(name)',
564 | args: [],
565 | },
566 | {
567 | sql: 'CREATE INDEX IF NOT EXISTS idx_observations_entity ON observations(entity_name)',
568 | args: [],
569 | },
570 | {
571 | sql: 'CREATE INDEX IF NOT EXISTS idx_relations_source ON relations(source)',
572 | args: [],
573 | },
574 | {
575 | sql: 'CREATE INDEX IF NOT EXISTS idx_relations_target ON relations(target)',
576 | args: [],
577 | },
578 | {
579 | sql: 'CREATE INDEX IF NOT EXISTS idx_entities_embedding ON entities(libsql_vector_idx(embedding))',
580 | args: [],
581 | },
582 | ],
583 | 'write',
584 | );
585 | } catch (error) {
586 | throw new Error(
587 | `Database initialization failed: ${
588 | error instanceof Error ? error.message : String(error)
589 | }`,
590 | );
591 | }
592 | }
593 |
594 | public async close() {
595 | try {
596 | await this.client.close();
597 | } catch (error) {
598 | console.error('Error closing database connection:', error);
599 | }
600 | }
601 | }
602 |
603 | export type { DatabaseConfig };
604 |
--------------------------------------------------------------------------------
/src/db/config.ts:
--------------------------------------------------------------------------------
1 | import { DatabaseConfig } from './client.js';
2 |
3 | export function get_database_config(): DatabaseConfig {
4 | const url = process.env.LIBSQL_URL || 'file:./memory-tool.db';
5 | const auth_token = process.env.LIBSQL_AUTH_TOKEN;
6 |
7 | return {
8 | url,
9 | authToken: auth_token,
10 | };
11 | }
12 |
--------------------------------------------------------------------------------
/src/db/migrations/run.ts:
--------------------------------------------------------------------------------
1 | import { DatabaseManager } from '../client.js';
2 | import { get_database_config } from '../config.js';
3 | import { schema } from './schema.js';
4 |
5 | async function run_migrations() {
6 | const config = get_database_config();
7 | const db_manager = await DatabaseManager.get_instance(config);
8 | const db = db_manager.get_client();
9 |
10 | try {
11 | console.log('Starting migrations...');
12 |
13 | for (const migration of schema) {
14 | console.log(`Executing: ${migration.slice(0, 50)}...`);
15 | await db.execute(migration);
16 | }
17 |
18 | console.log('Migrations completed successfully');
19 | } catch (error) {
20 | console.error('Error running migrations:', error);
21 | throw error;
22 | }
23 | }
24 |
25 | // Run migrations if this file is executed directly
26 | if (require.main === module) {
27 | run_migrations()
28 | .then(() => process.exit(0))
29 | .catch((error) => {
30 | console.error(error);
31 | process.exit(1);
32 | });
33 | }
34 |
35 | export { run_migrations };
36 |
--------------------------------------------------------------------------------
/src/db/migrations/schema.ts:
--------------------------------------------------------------------------------
1 | export const schema = [
2 | // Create entities table
3 | `CREATE TABLE IF NOT EXISTS entities (
4 | name TEXT PRIMARY KEY,
5 | entity_type TEXT NOT NULL,
6 | embedding F32_BLOB(4), -- 4 dimensions for testing
7 | created_at DATETIME DEFAULT CURRENT_TIMESTAMP
8 | )`,
9 |
10 | // Create observations table
11 | `CREATE TABLE IF NOT EXISTS observations (
12 | id INTEGER PRIMARY KEY AUTOINCREMENT,
13 | entity_name TEXT NOT NULL,
14 | content TEXT NOT NULL,
15 | created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
16 | FOREIGN KEY (entity_name) REFERENCES entities(name)
17 | )`,
18 |
19 | // Create relations table
20 | `CREATE TABLE IF NOT EXISTS relations (
21 | id INTEGER PRIMARY KEY AUTOINCREMENT,
22 | source TEXT NOT NULL,
23 | target TEXT NOT NULL,
24 | relation_type TEXT NOT NULL,
25 | created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
26 | FOREIGN KEY (source) REFERENCES entities(name),
27 | FOREIGN KEY (target) REFERENCES entities(name)
28 | )`,
29 |
30 | // Create indexes
31 | `CREATE INDEX IF NOT EXISTS idx_entities_name ON entities(name)`,
32 | `CREATE INDEX IF NOT EXISTS idx_observations_entity ON observations(entity_name)`,
33 | `CREATE INDEX IF NOT EXISTS idx_relations_source ON relations(source)`,
34 | `CREATE INDEX IF NOT EXISTS idx_relations_target ON relations(target)`,
35 |
36 | // Create vector index for similarity search
37 | `CREATE INDEX IF NOT EXISTS idx_entities_embedding ON entities(libsql_vector_idx(embedding))`,
38 | ];
39 |
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 | import { Server } from '@modelcontextprotocol/sdk/server/index.js';
3 | import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4 | import {
5 | CallToolRequest,
6 | CallToolRequestSchema,
7 | ErrorCode,
8 | ListToolsRequestSchema,
9 | McpError,
10 | } from '@modelcontextprotocol/sdk/types.js';
11 | import { readFileSync } from 'fs';
12 | import { dirname, join } from 'path';
13 | import { fileURLToPath } from 'url';
14 | import { DatabaseManager } from './db/client.js';
15 | import { get_database_config } from './db/config.js';
16 | import { Relation } from './types/index.js';
17 |
18 | const __filename = fileURLToPath(import.meta.url);
19 | const __dirname = dirname(__filename);
20 | const pkg = JSON.parse(
21 | readFileSync(join(__dirname, '..', 'package.json'), 'utf8'),
22 | );
23 | const { name, version } = pkg;
24 |
25 | class LibSqlMemoryServer {
26 | private server: Server;
27 | private db!: DatabaseManager;
28 |
29 | private constructor() {
30 | this.server = new Server(
31 | { name, version },
32 | {
33 | capabilities: {
34 | tools: {
35 | create_entities: {},
36 | search_nodes: {},
37 | read_graph: {},
38 | create_relations: {},
39 | delete_entity: {},
40 | delete_relation: {},
41 | },
42 | },
43 | },
44 | );
45 |
46 | // Error handling
47 | this.server.onerror = (error: Error) =>
48 | console.error('[MCP Error]', error);
49 | process.on('SIGINT', async () => {
50 | await this.db?.close();
51 | await this.server.close();
52 | process.exit(0);
53 | });
54 | }
55 |
56 | public static async create(): Promise {
57 | const instance = new LibSqlMemoryServer();
58 | const config = get_database_config();
59 | instance.db = await DatabaseManager.get_instance(config);
60 | instance.setup_tool_handlers();
61 | return instance;
62 | }
63 |
64 | private setup_tool_handlers() {
65 | this.server.setRequestHandler(
66 | ListToolsRequestSchema,
67 | async () => ({
68 | tools: [
69 | {
70 | name: 'create_entities',
71 | description:
72 | 'Create new entities with observations and optional embeddings',
73 | inputSchema: {
74 | type: 'object',
75 | properties: {
76 | entities: {
77 | type: 'array',
78 | items: {
79 | type: 'object',
80 | properties: {
81 | name: { type: 'string' },
82 | entityType: { type: 'string' },
83 | observations: {
84 | type: 'array',
85 | items: { type: 'string' },
86 | },
87 | embedding: {
88 | type: 'array',
89 | items: { type: 'number' },
90 | description:
91 | 'Optional vector embedding for similarity search',
92 | },
93 | },
94 | required: ['name', 'entityType', 'observations'],
95 | },
96 | },
97 | },
98 | required: ['entities'],
99 | },
100 | },
101 | {
102 | name: 'search_nodes',
103 | description:
104 | 'Search for entities and their relations using text or vector similarity',
105 | inputSchema: {
106 | type: 'object',
107 | properties: {
108 | query: {
109 | oneOf: [
110 | {
111 | type: 'string',
112 | description: 'Text search query',
113 | },
114 | {
115 | type: 'array',
116 | items: { type: 'number' },
117 | description: 'Vector for similarity search',
118 | },
119 | ],
120 | },
121 | },
122 | required: ['query'],
123 | },
124 | },
125 | {
126 | name: 'read_graph',
127 | description: 'Get recent entities and their relations',
128 | inputSchema: {
129 | type: 'object',
130 | properties: {},
131 | required: [],
132 | },
133 | },
134 | {
135 | name: 'create_relations',
136 | description: 'Create relations between entities',
137 | inputSchema: {
138 | type: 'object',
139 | properties: {
140 | relations: {
141 | type: 'array',
142 | items: {
143 | type: 'object',
144 | properties: {
145 | source: { type: 'string' },
146 | target: { type: 'string' },
147 | type: { type: 'string' },
148 | },
149 | required: ['source', 'target', 'type'],
150 | },
151 | },
152 | },
153 | required: ['relations'],
154 | },
155 | },
156 | {
157 | name: 'delete_entity',
158 | description:
159 | 'Delete an entity and all its associated data (observations and relations)',
160 | inputSchema: {
161 | type: 'object',
162 | properties: {
163 | name: {
164 | type: 'string',
165 | description: 'Name of the entity to delete',
166 | },
167 | },
168 | required: ['name'],
169 | },
170 | },
171 | {
172 | name: 'delete_relation',
173 | description:
174 | 'Delete a specific relation between entities',
175 | inputSchema: {
176 | type: 'object',
177 | properties: {
178 | source: {
179 | type: 'string',
180 | description: 'Source entity name',
181 | },
182 | target: {
183 | type: 'string',
184 | description: 'Target entity name',
185 | },
186 | type: {
187 | type: 'string',
188 | description: 'Type of relation',
189 | },
190 | },
191 | required: ['source', 'target', 'type'],
192 | },
193 | },
194 | ],
195 | }),
196 | );
197 |
198 | this.server.setRequestHandler(
199 | CallToolRequestSchema,
200 | async (request: CallToolRequest) => {
201 | try {
202 | switch (request.params.name) {
203 | case 'create_entities': {
204 | const entities = request.params.arguments
205 | ?.entities as Array<{
206 | name: string;
207 | entityType: string;
208 | observations: string[];
209 | embedding?: number[];
210 | }>;
211 | if (!entities) {
212 | throw new McpError(
213 | ErrorCode.InvalidParams,
214 | 'Missing entities parameter',
215 | );
216 | }
217 | await this.db.create_entities(entities);
218 | return {
219 | content: [
220 | {
221 | type: 'text',
222 | text: `Successfully processed ${entities.length} entities (created new or updated existing)`,
223 | },
224 | ],
225 | };
226 | }
227 |
228 | case 'search_nodes': {
229 | const query = request.params.arguments?.query;
230 | if (query === undefined || query === null) {
231 | throw new McpError(
232 | ErrorCode.InvalidParams,
233 | 'Missing query parameter',
234 | );
235 | }
236 | // Validate query type
237 | if (
238 | !(typeof query === 'string' || Array.isArray(query))
239 | ) {
240 | throw new McpError(
241 | ErrorCode.InvalidParams,
242 | 'Query must be either a string or number array',
243 | );
244 | }
245 | const result = await this.db.search_nodes(query);
246 | return {
247 | content: [
248 | {
249 | type: 'text',
250 | text: JSON.stringify(result, null, 2),
251 | },
252 | ],
253 | };
254 | }
255 |
256 | case 'read_graph': {
257 | const result = await this.db.read_graph();
258 | return {
259 | content: [
260 | {
261 | type: 'text',
262 | text: JSON.stringify(result, null, 2),
263 | },
264 | ],
265 | };
266 | }
267 |
268 | case 'create_relations': {
269 | const relations = request.params.arguments
270 | ?.relations as Array<{
271 | source: string;
272 | target: string;
273 | type: string;
274 | }>;
275 | if (!relations) {
276 | throw new McpError(
277 | ErrorCode.InvalidParams,
278 | 'Missing relations parameter',
279 | );
280 | }
281 | // Convert to internal Relation type
282 | const internalRelations: Relation[] = relations.map(
283 | (r) => ({
284 | from: r.source,
285 | to: r.target,
286 | relationType: r.type,
287 | }),
288 | );
289 | await this.db.create_relations(internalRelations);
290 | return {
291 | content: [
292 | {
293 | type: 'text',
294 | text: `Created ${relations.length} relations`,
295 | },
296 | ],
297 | };
298 | }
299 |
300 | case 'delete_entity': {
301 | const name = request.params.arguments?.name;
302 | if (!name || typeof name !== 'string') {
303 | throw new McpError(
304 | ErrorCode.InvalidParams,
305 | 'Missing or invalid entity name',
306 | );
307 | }
308 | await this.db.delete_entity(name);
309 | return {
310 | content: [
311 | {
312 | type: 'text',
313 | text: `Successfully deleted entity "${name}" and its associated data`,
314 | },
315 | ],
316 | };
317 | }
318 |
319 | case 'delete_relation': {
320 | const { source, target, type } =
321 | request.params.arguments || {};
322 | if (
323 | !source ||
324 | !target ||
325 | !type ||
326 | typeof source !== 'string' ||
327 | typeof target !== 'string' ||
328 | typeof type !== 'string'
329 | ) {
330 | throw new McpError(
331 | ErrorCode.InvalidParams,
332 | 'Missing or invalid relation parameters',
333 | );
334 | }
335 | await this.db.delete_relation(source, target, type);
336 | return {
337 | content: [
338 | {
339 | type: 'text',
340 | text: `Successfully deleted relation: ${source} -> ${target} (${type})`,
341 | },
342 | ],
343 | };
344 | }
345 |
346 | default:
347 | throw new McpError(
348 | ErrorCode.MethodNotFound,
349 | `Unknown tool: ${request.params.name}`,
350 | );
351 | }
352 | } catch (error) {
353 | if (error instanceof McpError) throw error;
354 | throw new McpError(
355 | ErrorCode.InternalError,
356 | error instanceof Error ? error.message : String(error),
357 | );
358 | }
359 | },
360 | );
361 | }
362 |
363 | async run() {
364 | const transport = new StdioServerTransport();
365 | await this.server.connect(transport);
366 | console.error('LibSQL Memory MCP server running on stdio');
367 | }
368 | }
369 |
370 | LibSqlMemoryServer.create()
371 | .then((server) => server.run())
372 | .catch(console.error);
373 |
--------------------------------------------------------------------------------
/src/types/index.ts:
--------------------------------------------------------------------------------
1 | export interface Entity {
2 | name: string;
3 | entityType: string;
4 | observations: string[];
5 | embedding?: number[];
6 | }
7 |
8 | export interface Relation {
9 | from: string;
10 | to: string;
11 | relationType: string;
12 | embedding?: number[];
13 | }
14 |
15 | export interface SearchResult {
16 | entity: Entity;
17 | distance: number;
18 | }
19 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ES2020",
4 | "module": "ES2020",
5 | "moduleResolution": "node",
6 | "esModuleInterop": true,
7 | "strict": true,
8 | "outDir": "dist",
9 | "rootDir": "src",
10 | "skipLibCheck": true,
11 | "forceConsistentCasingInFileNames": true,
12 | "resolveJsonModule": true
13 | },
14 | "include": ["src/**/*"],
15 | "exclude": ["node_modules", "dist"]
16 | }
17 |
--------------------------------------------------------------------------------