From 57a451fd27c135d21252429b9a60058eb5ef1450 Mon Sep 17 00:00:00 2001 From: ogzhanolguncu Date: Thu, 23 May 2024 18:05:35 +0300 Subject: [PATCH 1/6] feat: add file loader support --- bun.lockb | Bin 224380 -> 231775 bytes data/list_of_user_info.csv | 7 + data/the_wonderful_wizard_of_oz_summary.html | 47 + data/the_wonderful_wizard_of_oz_summary.txt | 8 + package.json | 7 +- pnpm-lock.yaml | 5572 ++++++++++++++++++ src/constants.ts | 3 - src/file-loader.ts | 91 + src/rag-chat.test.ts | 121 + src/services/retrieval.ts | 83 +- src/types.ts | 4 +- 11 files changed, 5933 insertions(+), 10 deletions(-) create mode 100644 data/list_of_user_info.csv create mode 100644 data/the_wonderful_wizard_of_oz_summary.html create mode 100644 data/the_wonderful_wizard_of_oz_summary.txt create mode 100644 pnpm-lock.yaml create mode 100644 src/file-loader.ts diff --git a/bun.lockb b/bun.lockb index 3f1cc924365ee729282570ab0d9364696f6e2657..4f905a6e16eef4d56d5bec093b53542b242e904f 100755 GIT binary patch delta 42869 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 delta 38143 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 BZs-62 diff --git a/data/list_of_user_info.csv b/data/list_of_user_info.csv new file mode 100644 index 0000000..006ac8e --- /dev/null +++ b/data/list_of_user_info.csv @@ -0,0 +1,7 @@ +Username; Identifier;First name;Last name +booker12;9012;Rachel;Booker +grey07;2070;Laura;Grey +johnson81;4081;Craig;Johnson +jenkins46;9346;Mary;Jenkins +smith79;5079;Jamie;Smith + diff --git a/data/the_wonderful_wizard_of_oz_summary.html b/data/the_wonderful_wizard_of_oz_summary.html new file mode 100644 index 0000000..2aefeca --- /dev/null +++ b/data/the_wonderful_wizard_of_oz_summary.html @@ -0,0 +1,47 @@ + + + + + + The Wonderful Wizard of Oz - Summary + + +
+

The Wonderful Wizard of Oz

+

By L. Frank Baum

+
+
+
+

Summary

+

+ The Wonderful Wizard of Oz is a children's novel written by L. Frank Baum. The story + follows a young girl named Dorothy who lives on a Kansas farm with her Aunt Em, Uncle + Henry, and her little dog Toto. A cyclone hits, and Dorothy and Toto are swept away to the + magical land of Oz. +

+

+ In Oz, Dorothy meets the Good Witch of the North and is given silver shoes and a + protective kiss. She is advised to follow the Yellow Brick Road to the Emerald City to + seek the help of the Wizard of Oz to return home. Along her journey, she befriends the + Scarecrow, who desires a brain, the Tin Woodman, who longs for a heart, and the Cowardly + Lion, who seeks courage. +

+

+ The group faces various challenges but eventually reaches the Emerald City. The Wizard + appears in different forms to each of them and agrees to grant their wishes if they kill + the Wicked Witch of the West. They manage to defeat the Witch by melting her with water. +

+

+ Upon their return to the Emerald City, they discover the Wizard is an ordinary man from + Omaha. He grants their wishes through symbolic means: the Scarecrow gets a brain made of + bran, the Tin Woodman gets a silk heart, and the Lion receives a potion for courage. + Dorothy learns that the silver shoes can take her home. She clicks her heels together and + returns to Kansas, where she is joyfully reunited with her family. +

+
+
+
+

© 2024 The Wonderful Wizard of Oz Summary

+
+ + diff --git a/data/the_wonderful_wizard_of_oz_summary.txt b/data/the_wonderful_wizard_of_oz_summary.txt new file mode 100644 index 0000000..6f42306 --- /dev/null +++ b/data/the_wonderful_wizard_of_oz_summary.txt @@ -0,0 +1,8 @@ + +The Wonderful Wizard of Oz is a children's novel written by L. Frank Baum. The story follows a young girl named Dorothy who lives on a Kansas farm with her Aunt Em, Uncle Henry, and her little dog Toto. A cyclone hits, and Dorothy and Toto are swept away to the magical land of Oz. + +In Oz, Dorothy meets the Good Witch of the North and is given silver shoes and a protective kiss. She is advised to follow the Yellow Brick Road to the Emerald City to seek the help of the Wizard of Oz to return home. Along her journey, she befriends the Scarecrow, who desires a brain, the Tin Woodman, who longs for a heart, and the Cowardly Lion, who seeks courage. + +The group faces various challenges but eventually reaches the Emerald City. The Wizard appears in different forms to each of them and agrees to grant their wishes if they kill the Wicked Witch of the West. They manage to defeat the Witch by melting her with water. + +Upon their return to the Emerald City, they discover the Wizard is an ordinary man from Omaha. He grants their wishes through symbolic means: the Scarecrow gets a brain made of bran, the Tin Woodman gets a silk heart, and the Lion receives a potion for courage. Dorothy learns that the silver shoes can take her home. She clicks her heels together and returns to Kansas, where she is joyfully reunited with her family. diff --git a/package.json b/package.json index a146c91..44eb9f8 100644 --- a/package.json +++ b/package.json @@ -37,10 +37,10 @@ "@commitlint/config-conventional": "^19.2.2", "@typescript-eslint/eslint-plugin": "^7.0.1", "@typescript-eslint/parser": "^7.0.1", - "eslint-plugin-unicorn": "^51.0.1", "bun-types": "latest", - "husky": "^9.0.10", "eslint": "^8", + "eslint-plugin-unicorn": "^51.0.1", + "husky": "^9.0.10", "prettier": "^3.2.5", "tsup": "latest", "typescript": "^5.4.5", @@ -54,6 +54,9 @@ "@upstash/redis": "^1.31.1", "@upstash/vector": "^1.1.1", "ai": "^3.1.1", + "cheerio": "^1.0.0-rc.12", + "d3-dsv": "^3.0.1", + "html-to-text": "^9.0.5", "langchain": "^0.2.0", "nanoid": "^5.0.7", "pdf-parse": "^1.1.1" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..d8571f4 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,5572 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@langchain/community': + specifier: ^0.2.1 + version: 0.2.1(@upstash/redis@1.31.2)(@upstash/vector@1.1.1)(cheerio@1.0.0-rc.12)(d3-dsv@3.0.1)(html-to-text@9.0.5)(ignore@5.3.1)(openai@4.47.1)(pdf-parse@1.1.1) + '@langchain/core': + specifier: ^0.1.58 + version: 0.1.63(openai@4.47.1) + '@langchain/openai': + specifier: ^0.0.28 + version: 0.0.28 + '@upstash/ratelimit': + specifier: ^1.1.3 + version: 1.1.3 + '@upstash/redis': + specifier: ^1.31.1 + version: 1.31.2 + '@upstash/vector': + specifier: ^1.1.1 + version: 1.1.1 + ai: + specifier: ^3.1.1 + version: 3.1.12(openai@4.47.1)(react@18.3.1)(solid-js@1.8.17)(svelte@4.2.17)(vue@3.4.27(typescript@5.4.5))(zod@3.23.8) + cheerio: + specifier: ^1.0.0-rc.12 + version: 1.0.0-rc.12 + d3-dsv: + specifier: ^3.0.1 + version: 3.0.1 + html-to-text: + specifier: ^9.0.5 + version: 9.0.5 + langchain: + specifier: ^0.2.0 + version: 0.2.1(cheerio@1.0.0-rc.12)(d3-dsv@3.0.1)(html-to-text@9.0.5)(ignore@5.3.1)(openai@4.47.1)(pdf-parse@1.1.1) + nanoid: + specifier: ^5.0.7 + version: 5.0.7 + pdf-parse: + specifier: ^1.1.1 + version: 1.1.1 + devDependencies: + '@commitlint/cli': + specifier: ^19.2.2 + version: 19.3.0(@types/node@20.12.12)(typescript@5.4.5) + '@commitlint/config-conventional': + specifier: ^19.2.2 + version: 19.2.2 + '@typescript-eslint/eslint-plugin': + specifier: ^7.0.1 + version: 7.10.0(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': + specifier: ^7.0.1 + version: 7.10.0(eslint@8.57.0)(typescript@5.4.5) + bun-types: + specifier: latest + version: 1.1.9 + eslint: + specifier: ^8 + version: 8.57.0 + eslint-plugin-unicorn: + specifier: ^51.0.1 + version: 51.0.1(eslint@8.57.0) + husky: + specifier: ^9.0.10 + version: 9.0.11 + prettier: + specifier: ^3.2.5 + version: 3.2.5 + tsup: + specifier: latest + version: 8.0.2(postcss@8.4.38)(typescript@5.4.5) + typescript: + specifier: ^5.4.5 + version: 5.4.5 + vitest: + specifier: latest + version: 1.6.0(@types/node@20.12.12) + +packages: + + '@ai-sdk/provider-utils@0.0.8': + resolution: {integrity: sha512-J/ZNvFhORd3gCeK3jFvNrxp1Dnvy6PvPq21RJ+OsIEjsoHeKQaHALCWG0aJunXDuzd+Mck/lCg7LqA0qmIbHIg==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.0.0 + peerDependenciesMeta: + zod: + optional: true + + '@ai-sdk/provider@0.0.5': + resolution: {integrity: sha512-TZDldBZ5clAsNwJ2PSeo/b1uILj9a2lvi0rnOj2RCNZDgaVqFRVIAnKyeHusCRv2lzhPIw03B3fiGI6VoLzOAA==} + engines: {node: '>=18'} + + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + + '@babel/code-frame@7.24.2': + resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.24.1': + resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.24.5': + resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==} + engines: {node: '>=6.9.0'} + + '@babel/highlight@7.24.5': + resolution: {integrity: sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.24.5': + resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/types@7.24.5': + resolution: {integrity: sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==} + engines: {node: '>=6.9.0'} + + '@commitlint/cli@19.3.0': + resolution: {integrity: sha512-LgYWOwuDR7BSTQ9OLZ12m7F/qhNY+NpAyPBgo4YNMkACE7lGuUnuQq1yi9hz1KA4+3VqpOYl8H1rY/LYK43v7g==} + engines: {node: '>=v18'} + hasBin: true + + '@commitlint/config-conventional@19.2.2': + resolution: {integrity: sha512-mLXjsxUVLYEGgzbxbxicGPggDuyWNkf25Ht23owXIH+zV2pv1eJuzLK3t1gDY5Gp6pxdE60jZnWUY5cvgL3ufw==} + engines: {node: '>=v18'} + + '@commitlint/config-validator@19.0.3': + resolution: {integrity: sha512-2D3r4PKjoo59zBc2auodrSCaUnCSALCx54yveOFwwP/i2kfEAQrygwOleFWswLqK0UL/F9r07MFi5ev2ohyM4Q==} + engines: {node: '>=v18'} + + '@commitlint/ensure@19.0.3': + resolution: {integrity: sha512-SZEpa/VvBLoT+EFZVb91YWbmaZ/9rPH3ESrINOl0HD2kMYsjvl0tF7nMHh0EpTcv4+gTtZBAe1y/SS6/OhfZzQ==} + engines: {node: '>=v18'} + + '@commitlint/execute-rule@19.0.0': + resolution: {integrity: sha512-mtsdpY1qyWgAO/iOK0L6gSGeR7GFcdW7tIjcNFxcWkfLDF5qVbPHKuGATFqRMsxcO8OUKNj0+3WOHB7EHm4Jdw==} + engines: {node: '>=v18'} + + '@commitlint/format@19.3.0': + resolution: {integrity: sha512-luguk5/aF68HiF4H23ACAfk8qS8AHxl4LLN5oxPc24H+2+JRPsNr1OS3Gaea0CrH7PKhArBMKBz5RX9sA5NtTg==} + engines: {node: '>=v18'} + + '@commitlint/is-ignored@19.2.2': + resolution: {integrity: sha512-eNX54oXMVxncORywF4ZPFtJoBm3Tvp111tg1xf4zWXGfhBPKpfKG6R+G3G4v5CPlRROXpAOpQ3HMhA9n1Tck1g==} + engines: {node: '>=v18'} + + '@commitlint/lint@19.2.2': + resolution: {integrity: sha512-xrzMmz4JqwGyKQKTpFzlN0dx0TAiT7Ran1fqEBgEmEj+PU98crOFtysJgY+QdeSagx6EDRigQIXJVnfrI0ratA==} + engines: {node: '>=v18'} + + '@commitlint/load@19.2.0': + resolution: {integrity: sha512-XvxxLJTKqZojCxaBQ7u92qQLFMMZc4+p9qrIq/9kJDy8DOrEa7P1yx7Tjdc2u2JxIalqT4KOGraVgCE7eCYJyQ==} + engines: {node: '>=v18'} + + '@commitlint/message@19.0.0': + resolution: {integrity: sha512-c9czf6lU+9oF9gVVa2lmKaOARJvt4soRsVmbR7Njwp9FpbBgste5i7l/2l5o8MmbwGh4yE1snfnsy2qyA2r/Fw==} + engines: {node: '>=v18'} + + '@commitlint/parse@19.0.3': + resolution: {integrity: sha512-Il+tNyOb8VDxN3P6XoBBwWJtKKGzHlitEuXA5BP6ir/3loWlsSqDr5aecl6hZcC/spjq4pHqNh0qPlfeWu38QA==} + engines: {node: '>=v18'} + + '@commitlint/read@19.2.1': + resolution: {integrity: sha512-qETc4+PL0EUv7Q36lJbPG+NJiBOGg7SSC7B5BsPWOmei+Dyif80ErfWQ0qXoW9oCh7GTpTNRoaVhiI8RbhuaNw==} + engines: {node: '>=v18'} + + '@commitlint/resolve-extends@19.1.0': + resolution: {integrity: sha512-z2riI+8G3CET5CPgXJPlzftH+RiWYLMYv4C9tSLdLXdr6pBNimSKukYP9MS27ejmscqCTVA4almdLh0ODD2KYg==} + engines: {node: '>=v18'} + + '@commitlint/rules@19.0.3': + resolution: {integrity: sha512-TspKb9VB6svklxNCKKwxhELn7qhtY1rFF8ls58DcFd0F97XoG07xugPjjbVnLqmMkRjZDbDIwBKt9bddOfLaPw==} + engines: {node: '>=v18'} + + '@commitlint/to-lines@19.0.0': + resolution: {integrity: sha512-vkxWo+VQU5wFhiP9Ub9Sre0FYe019JxFikrALVoD5UGa8/t3yOJEpEhxC5xKiENKKhUkTpEItMTRAjHw2SCpZw==} + engines: {node: '>=v18'} + + '@commitlint/top-level@19.0.0': + resolution: {integrity: sha512-KKjShd6u1aMGNkCkaX4aG1jOGdn7f8ZI8TR1VEuNqUOjWTOdcDSsmglinglJ18JTjuBX5I1PtjrhQCRcixRVFQ==} + engines: {node: '>=v18'} + + '@commitlint/types@19.0.3': + resolution: {integrity: sha512-tpyc+7i6bPG9mvaBbtKUeghfyZSDgWquIDfMgqYtTbmZ9Y9VzEm2je9EYcQ0aoz5o7NvGS+rcDec93yO08MHYA==} + engines: {node: '>=v18'} + + '@esbuild/aix-ppc64@0.19.12': + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/aix-ppc64@0.20.2': + resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.19.12': + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.20.2': + resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.19.12': + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.20.2': + resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.19.12': + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.20.2': + resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.19.12': + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.20.2': + resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.19.12': + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.20.2': + resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.19.12': + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.20.2': + resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.19.12': + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.20.2': + resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.19.12': + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.20.2': + resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.19.12': + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.20.2': + resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.19.12': + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.20.2': + resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.19.12': + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.20.2': + resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.19.12': + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.20.2': + resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.19.12': + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.20.2': + resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.19.12': + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.20.2': + resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.19.12': + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.20.2': + resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.19.12': + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.20.2': + resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.19.12': + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.20.2': + resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-x64@0.19.12': + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.20.2': + resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.19.12': + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.20.2': + resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.19.12': + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.20.2': + resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.19.12': + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.20.2': + resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.19.12': + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.20.2': + resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@eslint-community/eslint-utils@4.4.0': + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.10.0': + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/eslintrc@2.1.4': + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@eslint/js@8.57.0': + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@humanwhocodes/config-array@0.11.14': + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + engines: {node: '>=10.10.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/object-schema@2.0.3': + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@jest/schemas@29.6.3': + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.4.15': + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@langchain/community@0.2.1': + resolution: {integrity: sha512-kvCk6cSQ1tSnYOV4iaDbkvKNUVS29ehjRFAsUYMPrEybOMfr4V/yrr14xsd7bpIf2mYSmoTE86y4cVcAcki95A==} + engines: {node: '>=18'} + peerDependencies: + '@aws-crypto/sha256-js': ^5.0.0 + '@aws-sdk/client-bedrock-agent-runtime': ^3.485.0 + '@aws-sdk/client-bedrock-runtime': ^3.422.0 + '@aws-sdk/client-dynamodb': ^3.310.0 + '@aws-sdk/client-kendra': ^3.352.0 + '@aws-sdk/client-lambda': ^3.310.0 + '@aws-sdk/client-s3': ^3.310.0 + '@aws-sdk/client-sagemaker-runtime': ^3.310.0 + '@aws-sdk/client-sfn': ^3.310.0 + '@aws-sdk/credential-provider-node': ^3.388.0 + '@azure/search-documents': ^12.0.0 + '@azure/storage-blob': ^12.15.0 + '@browserbasehq/sdk': '*' + '@clickhouse/client': ^0.2.5 + '@cloudflare/ai': '*' + '@datastax/astra-db-ts': ^1.0.0 + '@elastic/elasticsearch': ^8.4.0 + '@getmetal/metal-sdk': '*' + '@getzep/zep-js': ^0.9.0 + '@gomomento/sdk': ^1.51.1 + '@gomomento/sdk-core': ^1.51.1 + '@google-ai/generativelanguage': ^0.2.1 + '@google-cloud/storage': ^6.10.1 || ^7.7.0 + '@gradientai/nodejs-sdk': ^1.2.0 + '@huggingface/inference': ^2.6.4 + '@layerup/layerup-security': ^1.5.12 + '@mendable/firecrawl-js': ^0.0.13 + '@mlc-ai/web-llm': ^0.2.35 + '@mozilla/readability': '*' + '@neondatabase/serverless': '*' + '@notionhq/client': ^2.2.10 + '@opensearch-project/opensearch': '*' + '@pinecone-database/pinecone': '*' + '@planetscale/database': ^1.8.0 + '@premai/prem-sdk': ^0.3.25 + '@qdrant/js-client-rest': ^1.8.2 + '@raycast/api': ^1.55.2 + '@rockset/client': ^0.9.1 + '@smithy/eventstream-codec': ^2.0.5 + '@smithy/protocol-http': ^3.0.6 + '@smithy/signature-v4': ^2.0.10 + '@smithy/util-utf8': ^2.0.0 + '@spider-cloud/spider-client': ^0.0.21 + '@supabase/postgrest-js': ^1.1.1 + '@supabase/supabase-js': ^2.10.0 + '@tensorflow-models/universal-sentence-encoder': '*' + '@tensorflow/tfjs-converter': '*' + '@tensorflow/tfjs-core': '*' + '@upstash/redis': ^1.20.6 + '@upstash/vector': ^1.0.7 + '@vercel/kv': ^0.2.3 + '@vercel/postgres': ^0.5.0 + '@writerai/writer-sdk': ^0.40.2 + '@xata.io/client': ^0.28.0 + '@xenova/transformers': ^2.5.4 + '@zilliz/milvus2-sdk-node': '>=2.2.7' + apify-client: ^2.7.1 + assemblyai: ^4.0.0 + better-sqlite3: ^9.4.0 + cassandra-driver: ^4.7.2 + cborg: ^4.1.1 + cheerio: ^1.0.0-rc.12 + chromadb: '*' + closevector-common: 0.1.3 + closevector-node: 0.1.6 + closevector-web: 0.1.6 + cohere-ai: '*' + convex: ^1.3.1 + couchbase: ^4.3.0 + d3-dsv: ^2.0.0 + discord.js: ^14.14.1 + dria: ^0.0.3 + duck-duck-scrape: ^2.2.5 + epub2: ^3.0.1 + faiss-node: ^0.5.1 + firebase-admin: ^11.9.0 || ^12.0.0 + google-auth-library: ^8.9.0 + googleapis: ^126.0.1 + hnswlib-node: ^3.0.0 + html-to-text: ^9.0.5 + ignore: ^5.2.0 + interface-datastore: ^8.2.11 + ioredis: ^5.3.2 + it-all: ^3.0.4 + jsdom: '*' + jsonwebtoken: ^9.0.2 + llmonitor: ^0.5.9 + lodash: ^4.17.21 + lunary: ^0.6.11 + mammoth: ^1.6.0 + mongodb: '>=5.2.0' + mysql2: ^3.3.3 + neo4j-driver: '*' + node-llama-cpp: '*' + notion-to-md: ^3.1.0 + officeparser: ^4.0.4 + pdf-parse: 1.1.1 + pg: ^8.11.0 + pg-copy-streams: ^6.0.5 + pickleparser: ^0.2.1 + playwright: ^1.32.1 + portkey-ai: ^0.1.11 + puppeteer: ^19.7.2 + redis: '*' + replicate: ^0.18.0 + sonix-speech-recognition: ^2.1.1 + srt-parser-2: ^1.2.3 + typeorm: ^0.3.12 + typesense: ^1.5.3 + usearch: ^1.1.1 + vectordb: ^0.1.4 + voy-search: 0.6.2 + weaviate-ts-client: '*' + web-auth-library: ^1.0.3 + ws: ^8.14.2 + youtube-transcript: ^1.0.6 + youtubei.js: ^9.1.0 + peerDependenciesMeta: + '@aws-crypto/sha256-js': + optional: true + '@aws-sdk/client-bedrock-agent-runtime': + optional: true + '@aws-sdk/client-bedrock-runtime': + optional: true + '@aws-sdk/client-dynamodb': + optional: true + '@aws-sdk/client-kendra': + optional: true + '@aws-sdk/client-lambda': + optional: true + '@aws-sdk/client-s3': + optional: true + '@aws-sdk/client-sagemaker-runtime': + optional: true + '@aws-sdk/client-sfn': + optional: true + '@aws-sdk/credential-provider-node': + optional: true + '@azure/search-documents': + optional: true + '@azure/storage-blob': + optional: true + '@browserbasehq/sdk': + optional: true + '@clickhouse/client': + optional: true + '@cloudflare/ai': + optional: true + '@datastax/astra-db-ts': + optional: true + '@elastic/elasticsearch': + optional: true + '@getmetal/metal-sdk': + optional: true + '@getzep/zep-js': + optional: true + '@gomomento/sdk': + optional: true + '@gomomento/sdk-core': + optional: true + '@google-ai/generativelanguage': + optional: true + '@google-cloud/storage': + optional: true + '@gradientai/nodejs-sdk': + optional: true + '@huggingface/inference': + optional: true + '@layerup/layerup-security': + optional: true + '@mendable/firecrawl-js': + optional: true + '@mlc-ai/web-llm': + optional: true + '@mozilla/readability': + optional: true + '@neondatabase/serverless': + optional: true + '@notionhq/client': + optional: true + '@opensearch-project/opensearch': + optional: true + '@pinecone-database/pinecone': + optional: true + '@planetscale/database': + optional: true + '@premai/prem-sdk': + optional: true + '@qdrant/js-client-rest': + optional: true + '@raycast/api': + optional: true + '@rockset/client': + optional: true + '@smithy/eventstream-codec': + optional: true + '@smithy/protocol-http': + optional: true + '@smithy/signature-v4': + optional: true + '@smithy/util-utf8': + optional: true + '@spider-cloud/spider-client': + optional: true + '@supabase/postgrest-js': + optional: true + '@supabase/supabase-js': + optional: true + '@tensorflow-models/universal-sentence-encoder': + optional: true + '@tensorflow/tfjs-converter': + optional: true + '@tensorflow/tfjs-core': + optional: true + '@upstash/redis': + optional: true + '@upstash/vector': + optional: true + '@vercel/kv': + optional: true + '@vercel/postgres': + optional: true + '@writerai/writer-sdk': + optional: true + '@xata.io/client': + optional: true + '@xenova/transformers': + optional: true + '@zilliz/milvus2-sdk-node': + optional: true + apify-client: + optional: true + assemblyai: + optional: true + better-sqlite3: + optional: true + cassandra-driver: + optional: true + cborg: + optional: true + cheerio: + optional: true + chromadb: + optional: true + closevector-common: + optional: true + closevector-node: + optional: true + closevector-web: + optional: true + cohere-ai: + optional: true + convex: + optional: true + couchbase: + optional: true + d3-dsv: + optional: true + discord.js: + optional: true + dria: + optional: true + duck-duck-scrape: + optional: true + epub2: + optional: true + faiss-node: + optional: true + firebase-admin: + optional: true + google-auth-library: + optional: true + googleapis: + optional: true + hnswlib-node: + optional: true + html-to-text: + optional: true + ignore: + optional: true + interface-datastore: + optional: true + ioredis: + optional: true + it-all: + optional: true + jsdom: + optional: true + jsonwebtoken: + optional: true + llmonitor: + optional: true + lodash: + optional: true + lunary: + optional: true + mammoth: + optional: true + mongodb: + optional: true + mysql2: + optional: true + neo4j-driver: + optional: true + node-llama-cpp: + optional: true + notion-to-md: + optional: true + officeparser: + optional: true + pdf-parse: + optional: true + pg: + optional: true + pg-copy-streams: + optional: true + pickleparser: + optional: true + playwright: + optional: true + portkey-ai: + optional: true + puppeteer: + optional: true + redis: + optional: true + replicate: + optional: true + sonix-speech-recognition: + optional: true + srt-parser-2: + optional: true + typeorm: + optional: true + typesense: + optional: true + usearch: + optional: true + vectordb: + optional: true + voy-search: + optional: true + weaviate-ts-client: + optional: true + web-auth-library: + optional: true + ws: + optional: true + youtube-transcript: + optional: true + youtubei.js: + optional: true + + '@langchain/core@0.1.63': + resolution: {integrity: sha512-+fjyYi8wy6x1P+Ee1RWfIIEyxd9Ee9jksEwvrggPwwI/p45kIDTdYTblXsM13y4mNWTiACyLSdbwnPaxxdoz+w==} + engines: {node: '>=18'} + + '@langchain/core@0.2.0': + resolution: {integrity: sha512-UbCJUp9eh2JXd9AW/vhPbTgtZoMgTqJgSan5Wf/EP27X8JM65lWdCOpJW+gHyBXvabbyrZz3/EGaptTUL5gutw==} + engines: {node: '>=18'} + + '@langchain/openai@0.0.28': + resolution: {integrity: sha512-2s1RA3/eAnz4ahdzsMPBna9hfAqpFNlWdHiPxVGZ5yrhXsbLWWoPcF+22LCk9t0HJKtazi2GCIWc0HVXH9Abig==} + engines: {node: '>=18'} + + '@langchain/textsplitters@0.0.2': + resolution: {integrity: sha512-6bQOuYHTGYlkgPY/8M5WPq4nnXZpEysGzRopQCYjg2WLcEoIPUMMrXsAaNNdvU3BOeMrhin8izvpDPD165hX6Q==} + engines: {node: '>=18'} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@rollup/rollup-android-arm-eabi@4.18.0': + resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.18.0': + resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.18.0': + resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.18.0': + resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-linux-arm-gnueabihf@4.18.0': + resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.18.0': + resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.18.0': + resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.18.0': + resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': + resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.18.0': + resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.18.0': + resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.18.0': + resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.18.0': + resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.18.0': + resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.18.0': + resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.18.0': + resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==} + cpu: [x64] + os: [win32] + + '@selderee/plugin-htmlparser2@0.11.0': + resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} + + '@sinclair/typebox@0.27.8': + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + + '@types/conventional-commits-parser@5.0.0': + resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==} + + '@types/diff-match-patch@1.0.36': + resolution: {integrity: sha512-xFdR6tkm0MWvBfO8xXCSsinYxHcqkQUlcHeSpMC2ukzOb6lwQAfDmW+Qt0AvlGd8HpsS28qKsB+oPeJn9I39jg==} + + '@types/estree@1.0.5': + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + + '@types/node-fetch@2.6.11': + resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} + + '@types/node@18.19.33': + resolution: {integrity: sha512-NR9+KrpSajr2qBVp/Yt5TU/rp+b5Mayi3+OlMlcg2cVCfRmcG5PWZ7S4+MG9PZ5gWBoc9Pd0BKSRViuBCRPu0A==} + + '@types/node@20.12.12': + resolution: {integrity: sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==} + + '@types/normalize-package-data@2.4.4': + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + + '@types/retry@0.12.0': + resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} + + '@types/uuid@9.0.8': + resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} + + '@types/ws@8.5.10': + resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} + + '@typescript-eslint/eslint-plugin@7.10.0': + resolution: {integrity: sha512-PzCr+a/KAef5ZawX7nbyNwBDtM1HdLIT53aSA2DDlxmxMngZ43O8SIePOeX8H5S+FHXeI6t97mTt/dDdzY4Fyw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@7.10.0': + resolution: {integrity: sha512-2EjZMA0LUW5V5tGQiaa2Gys+nKdfrn2xiTIBLR4fxmPmVSvgPcKNW+AE/ln9k0A4zDUti0J/GZXMDupQoI+e1w==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/scope-manager@7.10.0': + resolution: {integrity: sha512-7L01/K8W/VGl7noe2mgH0K7BE29Sq6KAbVmxurj8GGaPDZXPr8EEQ2seOeAS+mEV9DnzxBQB6ax6qQQ5C6P4xg==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/type-utils@7.10.0': + resolution: {integrity: sha512-D7tS4WDkJWrVkuzgm90qYw9RdgBcrWmbbRkrLA4d7Pg3w0ttVGDsvYGV19SH8gPR5L7OtcN5J1hTtyenO9xE9g==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/types@7.10.0': + resolution: {integrity: sha512-7fNj+Ya35aNyhuqrA1E/VayQX9Elwr8NKZ4WueClR3KwJ7Xx9jcCdOrLW04h51de/+gNbyFMs+IDxh5xIwfbNg==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/typescript-estree@7.10.0': + resolution: {integrity: sha512-LXFnQJjL9XIcxeVfqmNj60YhatpRLt6UhdlFwAkjNc6jSUlK8zQOl1oktAP8PlWFzPQC1jny/8Bai3/HPuvN5g==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/utils@7.10.0': + resolution: {integrity: sha512-olzif1Fuo8R8m/qKkzJqT7qwy16CzPRWBvERS0uvyc+DHd8AKbO4Jb7kpAvVzMmZm8TrHnI7hvjN4I05zow+tg==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + + '@typescript-eslint/visitor-keys@7.10.0': + resolution: {integrity: sha512-9ntIVgsi6gg6FIq9xjEO4VQJvwOqA3jaBFQJ/6TK5AvEup2+cECI6Fh7QiBxmfMHXU0V0J4RyPeOU1VDNzl9cg==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@ungap/structured-clone@1.2.0': + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + + '@upstash/core-analytics@0.0.8': + resolution: {integrity: sha512-MCJoF+Y8fkzq4NRLG7kEHjtGyMsZ2DICBdmEdwoK9umoSrfkzgBlYdZiHTIaewyt9PGaMZCHOasz0LAuMpxwxQ==} + engines: {node: '>=16.0.0'} + + '@upstash/ratelimit@1.1.3': + resolution: {integrity: sha512-rl+GMvPdZJ9xPDIvIrqRl/g0nzAEaH75hwR5lXAKW8zPPplD/AeliDCHwuwcFCPIjg49FKyA1oc5H473WkVFrQ==} + + '@upstash/redis@1.31.2': + resolution: {integrity: sha512-2u7LBzHHMVE8Ou+ZE3hZJKkvlbYv1pAlZ1NSDIS1fF77bT0CdozouzCS/fCVfOnz1orxPY4v+9swZ+ZKDGtNhA==} + + '@upstash/vector@1.1.1': + resolution: {integrity: sha512-40pRY6BYpNElZ0/BFiDk9p1Pn4D+WUM4qm528yYlJm6ifjcg4xQthwiE8+6j2t9rqr3FtWaNhdpLXTyj1ptNLA==} + + '@vitest/expect@1.6.0': + resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==} + + '@vitest/runner@1.6.0': + resolution: {integrity: sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==} + + '@vitest/snapshot@1.6.0': + resolution: {integrity: sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==} + + '@vitest/spy@1.6.0': + resolution: {integrity: sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==} + + '@vitest/utils@1.6.0': + resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==} + + '@vue/compiler-core@3.4.27': + resolution: {integrity: sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==} + + '@vue/compiler-dom@3.4.27': + resolution: {integrity: sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==} + + '@vue/compiler-sfc@3.4.27': + resolution: {integrity: sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==} + + '@vue/compiler-ssr@3.4.27': + resolution: {integrity: sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==} + + '@vue/reactivity@3.4.27': + resolution: {integrity: sha512-kK0g4NknW6JX2yySLpsm2jlunZJl2/RJGZ0H9ddHdfBVHcNzxmQ0sS0b09ipmBoQpY8JM2KmUw+a6sO8Zo+zIA==} + + '@vue/runtime-core@3.4.27': + resolution: {integrity: sha512-7aYA9GEbOOdviqVvcuweTLe5Za4qBZkUY7SvET6vE8kyypxVgaT1ixHLg4urtOlrApdgcdgHoTZCUuTGap/5WA==} + + '@vue/runtime-dom@3.4.27': + resolution: {integrity: sha512-ScOmP70/3NPM+TW9hvVAz6VWWtZJqkbdf7w6ySsws+EsqtHvkhxaWLecrTorFxsawelM5Ys9FnDEMt6BPBDS0Q==} + + '@vue/server-renderer@3.4.27': + resolution: {integrity: sha512-dlAMEuvmeA3rJsOMJ2J1kXU7o7pOxgsNHVr9K8hB3ImIkSuBrIdy0vF66h8gf8Tuinf1TK3mPAz2+2sqyf3KzA==} + peerDependencies: + vue: 3.4.27 + + '@vue/shared@3.4.27': + resolution: {integrity: sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==} + + JSONStream@1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true + + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + engines: {node: '>=0.4.0'} + + acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + engines: {node: '>=0.4.0'} + hasBin: true + + agentkeepalive@4.5.0: + resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} + engines: {node: '>= 8.0.0'} + + ai@3.1.12: + resolution: {integrity: sha512-XlurBw1sdgQCFmCTPYjKjpm+fPS6iY+tLb/PYNUEjZn3bhqosAkcqUkGJTsFP49OMAWO1Lm2oPthCakKcn6Lzw==} + engines: {node: '>=18'} + peerDependencies: + openai: ^4.42.0 + react: ^18.2.0 + solid-js: ^1.7.7 + svelte: ^3.0.0 || ^4.0.0 + vue: ^3.3.4 + zod: ^3.0.0 + peerDependenciesMeta: + openai: + optional: true + react: + optional: true + solid-js: + optional: true + svelte: + optional: true + vue: + optional: true + zod: + optional: true + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ajv@8.13.0: + resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + + array-ify@1.0.0: + resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + assertion-error@1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + axobject-query@4.0.0: + resolution: {integrity: sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + binary-search@1.3.6: + resolution: {integrity: sha512-nbE1WxOTTrUWIfsfZ4aHGYu5DOuNkbxGokjV6Z2kxfJK3uaAb8zNK1muzOeipoLHZjInT4Br88BHpzevc681xA==} + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.23.0: + resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + + bun-types@1.1.9: + resolution: {integrity: sha512-3YuLiH4Ne/ghk7K6mHiaqCqKOMrtB0Z5p1WAskHSVgi0iMZgsARV4yGkbfi565YsStvUq6GXTWB3ga7M8cznkA==} + + bundle-require@4.1.0: + resolution: {integrity: sha512-FeArRFM+ziGkRViKRnSTbHZc35dgmR9yNog05Kn0+ItI59pOAISGvnnIwW1WgFZQW59IxD9QpJnUPkdIPfZuXg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.17' + + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + caniuse-lite@1.0.30001621: + resolution: {integrity: sha512-+NLXZiviFFKX0fk8Piwv3PfLPGtRqJeq2TiNoUff/qB5KJgwecJTvCXDpmlyP/eCI/GUEmp/h/y5j0yckiiZrA==} + + chai@4.4.1: + resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} + engines: {node: '>=4'} + + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + + cheerio-select@2.1.0: + resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} + + cheerio@1.0.0-rc.12: + resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} + engines: {node: '>= 6'} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + ci-info@4.0.0: + resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} + engines: {node: '>=8'} + + clean-regexp@1.0.0: + resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} + engines: {node: '>=4'} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + code-red@1.0.4: + resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + + compare-func@2.0.0: + resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + confbox@0.1.7: + resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} + + conventional-changelog-angular@7.0.0: + resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} + engines: {node: '>=16'} + + conventional-changelog-conventionalcommits@7.0.2: + resolution: {integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==} + engines: {node: '>=16'} + + conventional-commits-parser@5.0.0: + resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==} + engines: {node: '>=16'} + hasBin: true + + core-js-compat@3.37.1: + resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==} + + cosmiconfig-typescript-loader@5.0.0: + resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==} + engines: {node: '>=v16'} + peerDependencies: + '@types/node': '*' + cosmiconfig: '>=8.2' + typescript: '>=4' + + cosmiconfig@9.0.0: + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + + crypto-js@4.2.0: + resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} + + css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + + css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + + css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + d3-dsv@3.0.1: + resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} + engines: {node: '>=12'} + hasBin: true + + dargs@8.1.0: + resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==} + engines: {node: '>=12'} + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + + deep-eql@4.1.3: + resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + engines: {node: '>=6'} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + diff-match-patch@1.0.5: + resolution: {integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==} + + diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + + dot-prop@5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} + engines: {node: '>=8'} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + electron-to-chromium@1.4.779: + resolution: {integrity: sha512-oaTiIcszNfySXVJzKcjxd2YjPxziAd+GmXyb2HbidCeFo6Z88ygOT7EimlrEQhM2U08VhSrbKhLOXP0kKUCZ6g==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + + esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} + engines: {node: '>=12'} + hasBin: true + + esbuild@0.20.2: + resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} + engines: {node: '>=12'} + hasBin: true + + escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + eslint-plugin-unicorn@51.0.1: + resolution: {integrity: sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==} + engines: {node: '>=16'} + peerDependencies: + eslint: '>=8.56.0' + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + + eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + + eventsource-parser@1.1.2: + resolution: {integrity: sha512-v0eOBUbiaFojBu2s2NPBfYUoRR9GjcDNvCXVaqEf5vVfpIAh9f8RCo4vXTP8c63QRKCFwoLpMpTdPwwhEKVgzA==} + engines: {node: '>=14.18'} + + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + + expr-eval@2.0.2: + resolution: {integrity: sha512-4EMSHGOPSwAfBiibw3ndnP0AvjDWLsMvGOvWEZ2F96IGk0bIVdjQisOHxReSkE13mHcfbuCiXw+G4y0zv6N8Eg==} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + + file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + find-up@7.0.0: + resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==} + engines: {node: '>=18'} + + flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + + flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + + flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + + foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} + + form-data-encoder@1.7.2: + resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==} + + form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + + formdata-node@4.4.1: + resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} + engines: {node: '>= 12.20'} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + + git-raw-commits@4.0.0: + resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==} + engines: {node: '>=16'} + hasBin: true + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob@10.3.16: + resolution: {integrity: sha512-JDKXl1DiuuHJ6fVS2FXjownaavciiHNUU4mOvV/B793RLh05vZL1rcPnCSaOgv1hDT6RDlY7AB7ZUvFYAtPgAw==} + engines: {node: '>=16 || 14 >=14.18'} + hasBin: true + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + + global-directory@4.0.1: + resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} + engines: {node: '>=18'} + + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + + html-to-text@9.0.5: + resolution: {integrity: sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==} + engines: {node: '>=14'} + + htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + + humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + + husky@9.0.11: + resolution: {integrity: sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==} + engines: {node: '>=18'} + hasBin: true + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + + import-meta-resolve@4.1.0: + resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + 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. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ini@4.1.1: + resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + is-any-array@2.0.1: + resolution: {integrity: sha512-UtilS7hLRu++wb/WBAw9bNuP1Eg04Ivn1vERJck8zJthEvXCBEBpGR/33u/xLKWEQf95803oalHrVDptcAvFdQ==} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} + + is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-obj@2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + is-reference@3.0.2: + resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + is-text-path@2.0.0: + resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} + engines: {node: '>=8'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + jackspeak@3.1.2: + resolution: {integrity: sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==} + engines: {node: '>=14'} + + jiti@1.21.0: + resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + hasBin: true + + joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + + js-tiktoken@1.0.12: + resolution: {integrity: sha512-L7wURW1fH9Qaext0VzaUDpFGVQgjkdE3Dgsy9/+yXyGEpBKnylTd0mU0bfbNkKDlXRb6TEsZkwuflu1B8uQbJQ==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-tokens@9.0.0: + resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + + jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + jsondiffpatch@0.6.0: + resolution: {integrity: sha512-3QItJOXp2AP1uv7waBkao5nCvhEv+QmJAd38Ybq7wNI74Q+BBmnLn4EDKz6yI9xGAIQoUF87qHt+kc1IVxB4zQ==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + + jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + + jsonpointer@5.0.1: + resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} + engines: {node: '>=0.10.0'} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + langchain@0.2.1: + resolution: {integrity: sha512-aCAsUwcmXjvhVsbAbR7NnzQ8jIjJPOx1EW4CmHX9Ggxp150EZYbLv7RJ5uBfj47hYUEFMfAqsCt524BwGnelng==} + engines: {node: '>=18'} + peerDependencies: + '@aws-sdk/client-s3': ^3.310.0 + '@aws-sdk/client-sagemaker-runtime': ^3.310.0 + '@aws-sdk/client-sfn': ^3.310.0 + '@aws-sdk/credential-provider-node': ^3.388.0 + '@azure/storage-blob': ^12.15.0 + '@browserbasehq/sdk': '*' + '@gomomento/sdk': ^1.51.1 + '@gomomento/sdk-core': ^1.51.1 + '@gomomento/sdk-web': ^1.51.1 + '@google-ai/generativelanguage': ^0.2.1 + '@mendable/firecrawl-js': ^0.0.13 + '@notionhq/client': ^2.2.10 + '@pinecone-database/pinecone': '*' + '@supabase/supabase-js': ^2.10.0 + '@vercel/kv': ^0.2.3 + '@xata.io/client': ^0.28.0 + apify-client: ^2.7.1 + assemblyai: ^4.0.0 + axios: '*' + cheerio: ^1.0.0-rc.12 + chromadb: '*' + convex: ^1.3.1 + couchbase: ^4.3.0 + d3-dsv: ^2.0.0 + epub2: ^3.0.1 + faiss-node: '*' + fast-xml-parser: '*' + handlebars: ^4.7.8 + html-to-text: ^9.0.5 + ignore: ^5.2.0 + ioredis: ^5.3.2 + jsdom: '*' + mammoth: ^1.6.0 + mongodb: '>=5.2.0' + node-llama-cpp: '*' + notion-to-md: ^3.1.0 + officeparser: ^4.0.4 + pdf-parse: 1.1.1 + peggy: ^3.0.2 + playwright: ^1.32.1 + puppeteer: ^19.7.2 + pyodide: ^0.24.1 + redis: ^4.6.4 + sonix-speech-recognition: ^2.1.1 + srt-parser-2: ^1.2.3 + typeorm: ^0.3.12 + weaviate-ts-client: '*' + web-auth-library: ^1.0.3 + ws: ^8.14.2 + youtube-transcript: ^1.0.6 + youtubei.js: ^9.1.0 + peerDependenciesMeta: + '@aws-sdk/client-s3': + optional: true + '@aws-sdk/client-sagemaker-runtime': + optional: true + '@aws-sdk/client-sfn': + optional: true + '@aws-sdk/credential-provider-node': + optional: true + '@azure/storage-blob': + optional: true + '@browserbasehq/sdk': + optional: true + '@gomomento/sdk': + optional: true + '@gomomento/sdk-core': + optional: true + '@gomomento/sdk-web': + optional: true + '@google-ai/generativelanguage': + optional: true + '@mendable/firecrawl-js': + optional: true + '@notionhq/client': + optional: true + '@pinecone-database/pinecone': + optional: true + '@supabase/supabase-js': + optional: true + '@vercel/kv': + optional: true + '@xata.io/client': + optional: true + apify-client: + optional: true + assemblyai: + optional: true + axios: + optional: true + cheerio: + optional: true + chromadb: + optional: true + convex: + optional: true + couchbase: + optional: true + d3-dsv: + optional: true + epub2: + optional: true + faiss-node: + optional: true + fast-xml-parser: + optional: true + handlebars: + optional: true + html-to-text: + optional: true + ignore: + optional: true + ioredis: + optional: true + jsdom: + optional: true + mammoth: + optional: true + mongodb: + optional: true + node-llama-cpp: + optional: true + notion-to-md: + optional: true + officeparser: + optional: true + pdf-parse: + optional: true + peggy: + optional: true + playwright: + optional: true + puppeteer: + optional: true + pyodide: + optional: true + redis: + optional: true + sonix-speech-recognition: + optional: true + srt-parser-2: + optional: true + typeorm: + optional: true + weaviate-ts-client: + optional: true + web-auth-library: + optional: true + ws: + optional: true + youtube-transcript: + optional: true + youtubei.js: + optional: true + + langchainhub@0.0.10: + resolution: {integrity: sha512-mOVso7TGTMSlvTTUR1b4zUIMtu8zgie/pcwRm1SeooWwuHYMQovoNXjT6gEjvWEZ6cjt4gVH+1lu2tp1/phyIQ==} + + langsmith@0.1.25: + resolution: {integrity: sha512-Hft4Y1yoMgFgCUXVQklRZ7ndmLQ/6FmRZE9P3u5BRdMq5Fa0hpg8R7jd7bLLBXkAjqcFvWo0AGhpb8MMY5FAiA==} + peerDependencies: + openai: '*' + peerDependenciesMeta: + openai: + optional: true + + leac@0.6.0: + resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lilconfig@3.1.1: + resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} + engines: {node: '>=14'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} + + locate-character@3.0.0: + resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + locate-path@7.2.0: + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + + lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + + lodash.kebabcase@4.1.1: + resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash.mergewith@4.6.2: + resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + + lodash.snakecase@4.1.1: + resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} + + lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + + lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + + lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + + lodash.upperfirst@4.3.1: + resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + + lru-cache@10.2.2: + resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} + engines: {node: 14 || >=16.14} + + magic-string@0.30.10: + resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} + + mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + + meow@12.1.1: + resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} + engines: {node: '>=16.10'} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromatch@4.0.7: + resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + + min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@9.0.4: + resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass@7.1.1: + resolution: {integrity: sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==} + engines: {node: '>=16 || 14 >=14.17'} + + ml-array-mean@1.1.6: + resolution: {integrity: sha512-MIdf7Zc8HznwIisyiJGRH9tRigg3Yf4FldW8DxKxpCCv/g5CafTw0RRu51nojVEOXuCQC7DRVVu5c7XXO/5joQ==} + + ml-array-sum@1.1.6: + resolution: {integrity: sha512-29mAh2GwH7ZmiRnup4UyibQZB9+ZLyMShvt4cH4eTK+cL2oEMIZFnSyB3SS8MlsTh6q/w/yh48KmqLxmovN4Dw==} + + ml-distance-euclidean@2.0.0: + resolution: {integrity: sha512-yC9/2o8QF0A3m/0IXqCTXCzz2pNEzvmcE/9HFKOZGnTjatvBbsn4lWYJkxENkA4Ug2fnYl7PXQxnPi21sgMy/Q==} + + ml-distance@4.0.1: + resolution: {integrity: sha512-feZ5ziXs01zhyFUUUeZV5hwc0f5JW0Sh0ckU1koZe/wdVkJdGxcP06KNQuF0WBTj8FttQUzcvQcpcrOp/XrlEw==} + + ml-tree-similarity@1.0.0: + resolution: {integrity: sha512-XJUyYqjSuUQkNQHMscr6tcjldsOoAekxADTplt40QKfwW6nd++1wHWV9AArl0Zvw/TIHgNaZZNvr8QGvE8wLRg==} + + mlly@1.7.0: + resolution: {integrity: sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==} + + ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + mustache@4.2.0: + resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} + hasBin: true + + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + + nanoid@3.3.6: + resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + nanoid@5.0.7: + resolution: {integrity: sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==} + engines: {node: ^18 || >=20} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + + node-ensure@0.0.0: + resolution: {integrity: sha512-DRI60hzo2oKN1ma0ckc6nQWlHU69RH6xN0sjQTjMpChPfTYvKZdcQFfdYK2RWbJcKyUizSIy/l8OTGxMAM1QDw==} + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + + normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + num-sort@2.1.0: + resolution: {integrity: sha512-1MQz1Ed8z2yckoBeSfkQHHO9K1yDRxxtotKSJ9yvcTUUxSvfvzEq5GwBrjjHEpMlq/k5gvXdmJ1SbYxWtpNoVg==} + engines: {node: '>=8'} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + + openai@4.47.1: + resolution: {integrity: sha512-WWSxhC/69ZhYWxH/OBsLEirIjUcfpQ5+ihkXKp06hmeYXgBBIUCa9IptMzYx6NdkiOCsSGYCnTIsxaic3AjRCQ==} + hasBin: true + + openapi-types@12.1.3: + resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + p-limit@5.0.0: + resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} + engines: {node: '>=18'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-locate@6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + p-queue@6.6.2: + resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} + engines: {node: '>=8'} + + p-retry@4.6.2: + resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} + engines: {node: '>=8'} + + p-timeout@3.2.0: + resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} + engines: {node: '>=8'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parse5-htmlparser2-tree-adapter@7.0.0: + resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} + + parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + + parseley@0.12.1: + resolution: {integrity: sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-exists@5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + + pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + + pdf-parse@1.1.1: + resolution: {integrity: sha512-v6ZJ/efsBpGrGGknjtq9J/oC8tZWq0KWL5vQrk2GlzLEQPUDB1ex+13Rmidl1neNN358Jn9EHZw5y07FFtaC7A==} + engines: {node: '>=6.8.1'} + + peberminta@0.9.0: + resolution: {integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==} + + periscopic@3.1.0: + resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} + + picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + + pkg-types@1.1.1: + resolution: {integrity: sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==} + + pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + + postcss-load-config@4.0.2: + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + + postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + engines: {node: ^10 || ^12 || >=14} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier@3.2.5: + resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} + engines: {node: '>=14'} + hasBin: true + + pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + + read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + + read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + regexp-tree@0.1.27: + resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} + hasBin: true + + regjsparser@0.10.0: + resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} + hasBin: true + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + + retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + + rollup@4.18.0: + resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + rw@1.3.3: + resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + secure-json-parse@2.7.0: + resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} + + selderee@0.11.0: + resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==} + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + semver@7.6.2: + resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + engines: {node: '>=10'} + hasBin: true + + seroval-plugins@1.0.7: + resolution: {integrity: sha512-GO7TkWvodGp6buMEX9p7tNyIkbwlyuAWbI6G9Ec5bhcm7mQdu3JOK1IXbEUwb3FVzSc363GraG/wLW23NSavIw==} + engines: {node: '>=10'} + peerDependencies: + seroval: ^1.0 + + seroval@1.0.7: + resolution: {integrity: sha512-n6ZMQX5q0Vn19Zq7CIKNIo7E75gPkGCFUEqDpa8jgwpYr/vScjqnQ6H09t1uIiZ0ZSK0ypEGvrYK2bhBGWsGdw==} + engines: {node: '>=10'} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + solid-js@1.8.17: + resolution: {integrity: sha512-E0FkUgv9sG/gEBWkHr/2XkBluHb1fkrHywUgA6o6XolPDCJ4g1HaLmQufcBBhiF36ee40q+HpG/vCZu7fLpI3Q==} + + solid-swr-store@0.10.7: + resolution: {integrity: sha512-A6d68aJmRP471aWqKKPE2tpgOiR5fH4qXQNfKIec+Vap+MGQm3tvXlT8n0I8UgJSlNAsSAUuw2VTviH2h3Vv5g==} + engines: {node: '>=10'} + peerDependencies: + solid-js: ^1.2 + swr-store: ^0.10 + + source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + + source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-license-ids@3.0.17: + resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} + + split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + + sswr@2.0.0: + resolution: {integrity: sha512-mV0kkeBHcjcb0M5NqKtKVg/uTIYNlIIniyDfSGrSfxpEdM9C365jK0z55pl9K0xAkNTJi2OAOVFQpgMPUk+V0w==} + peerDependencies: + svelte: ^4.0.0 + + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + + std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + + strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + strip-literal@2.1.0: + resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} + + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + svelte@4.2.17: + resolution: {integrity: sha512-N7m1YnoXtRf5wya5Gyx3TWuTddI4nAyayyIWFojiWV5IayDYNV5i2mRp/7qNGol4DtxEYxljmrbgp1HM6hUbmQ==} + engines: {node: '>=16'} + + swr-store@0.10.6: + resolution: {integrity: sha512-xPjB1hARSiRaNNlUQvWSVrG5SirCjk2TmaUyzzvk69SZQan9hCJqw/5rG9iL7xElHU784GxRPISClq4488/XVw==} + engines: {node: '>=10'} + + swr@2.2.0: + resolution: {integrity: sha512-AjqHOv2lAhkuUdIiBu9xbuettzAzWXmCEcLONNKJRba87WAefz8Ca9d6ds/SzrPc235n1IxWYdhJ2zF3MNUaoQ==} + peerDependencies: + react: ^16.11.0 || ^17.0.0 || ^18.0.0 + + swrev@4.0.0: + resolution: {integrity: sha512-LqVcOHSB4cPGgitD1riJ1Hh4vdmITOp+BkmfmXRh4hSF/t7EnS4iD+SOTmq7w5pPm/SiPeto4ADbKS6dHUDWFA==} + + swrv@1.0.4: + resolution: {integrity: sha512-zjEkcP8Ywmj+xOJW3lIT65ciY/4AL4e/Or7Gj0MzU3zBJNMdJiT8geVZhINavnlHRMMCcJLHhraLTAiDOTmQ9g==} + peerDependencies: + vue: '>=3.2.26 < 4' + + text-extensions@2.4.0: + resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} + engines: {node: '>=8'} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + + through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + + tinybench@2.8.0: + resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} + + tinypool@0.8.4: + resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} + engines: {node: '>=14.0.0'} + + tinyspy@2.2.1: + resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} + engines: {node: '>=14.0.0'} + + to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + + ts-api-utils@1.3.0: + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + + tsup@8.0.2: + resolution: {integrity: sha512-NY8xtQXdH7hDUAZwcQdY/Vzlw9johQsaqf7iwZ6g1DOUlFYQ5/AtVAjTvihhEyeRlGo4dLRVHtrRaL35M1daqQ==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + '@microsoft/api-extractor': ^7.36.0 + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.5.0' + peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + + type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + + typescript@5.4.5: + resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} + engines: {node: '>=14.17'} + hasBin: true + + ufo@1.5.3: + resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} + + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + + update-browserslist-db@1.0.16: + resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + use-sync-external-store@1.2.2: + resolution: {integrity: sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + + vite-node@1.6.0: + resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + + vite@5.2.11: + resolution: {integrity: sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + + vitest@1.6.0: + resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 1.6.0 + '@vitest/ui': 1.6.0 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + + vue@3.4.27: + resolution: {integrity: sha512-8s/56uK6r01r1icG/aEOHqyMVxd1bkYcSe9j8HcKtr/xTOFWvnzIVTehNW+5Yt89f+DLBe4A569pnZLS5HzAMA==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + web-streams-polyfill@3.3.3: + resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} + engines: {node: '>= 8'} + + web-streams-polyfill@4.0.0-beta.3: + resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} + engines: {node: '>= 14'} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + why-is-node-running@2.2.2: + resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} + engines: {node: '>=8'} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yaml@2.4.2: + resolution: {integrity: sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==} + engines: {node: '>= 14'} + hasBin: true + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + + zod-to-json-schema@3.22.5: + resolution: {integrity: sha512-+akaPo6a0zpVCCseDed504KBJUQpEW5QZw7RMneNmKw+fGaML1Z9tUNLnHHAC8x6dzVRO1eB2oEMyZRnuBZg7Q==} + peerDependencies: + zod: ^3.22.4 + + zod-to-json-schema@3.23.0: + resolution: {integrity: sha512-az0uJ243PxsRIa2x1WmNE/pnuA05gUq/JB8Lwe1EDCCL/Fz9MgjYQ0fPlyc2Tcv6aF2ZA7WM5TWaRZVEFaAIag==} + peerDependencies: + zod: ^3.23.3 + + zod@3.23.8: + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + +snapshots: + + '@ai-sdk/provider-utils@0.0.8(zod@3.23.8)': + dependencies: + '@ai-sdk/provider': 0.0.5 + eventsource-parser: 1.1.2 + nanoid: 3.3.6 + secure-json-parse: 2.7.0 + optionalDependencies: + zod: 3.23.8 + + '@ai-sdk/provider@0.0.5': + dependencies: + json-schema: 0.4.0 + + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + '@babel/code-frame@7.24.2': + dependencies: + '@babel/highlight': 7.24.5 + picocolors: 1.0.1 + + '@babel/helper-string-parser@7.24.1': {} + + '@babel/helper-validator-identifier@7.24.5': {} + + '@babel/highlight@7.24.5': + dependencies: + '@babel/helper-validator-identifier': 7.24.5 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.1 + + '@babel/parser@7.24.5': + dependencies: + '@babel/types': 7.24.5 + + '@babel/types@7.24.5': + dependencies: + '@babel/helper-string-parser': 7.24.1 + '@babel/helper-validator-identifier': 7.24.5 + to-fast-properties: 2.0.0 + + '@commitlint/cli@19.3.0(@types/node@20.12.12)(typescript@5.4.5)': + dependencies: + '@commitlint/format': 19.3.0 + '@commitlint/lint': 19.2.2 + '@commitlint/load': 19.2.0(@types/node@20.12.12)(typescript@5.4.5) + '@commitlint/read': 19.2.1 + '@commitlint/types': 19.0.3 + execa: 8.0.1 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - typescript + + '@commitlint/config-conventional@19.2.2': + dependencies: + '@commitlint/types': 19.0.3 + conventional-changelog-conventionalcommits: 7.0.2 + + '@commitlint/config-validator@19.0.3': + dependencies: + '@commitlint/types': 19.0.3 + ajv: 8.13.0 + + '@commitlint/ensure@19.0.3': + dependencies: + '@commitlint/types': 19.0.3 + lodash.camelcase: 4.3.0 + lodash.kebabcase: 4.1.1 + lodash.snakecase: 4.1.1 + lodash.startcase: 4.4.0 + lodash.upperfirst: 4.3.1 + + '@commitlint/execute-rule@19.0.0': {} + + '@commitlint/format@19.3.0': + dependencies: + '@commitlint/types': 19.0.3 + chalk: 5.3.0 + + '@commitlint/is-ignored@19.2.2': + dependencies: + '@commitlint/types': 19.0.3 + semver: 7.6.2 + + '@commitlint/lint@19.2.2': + dependencies: + '@commitlint/is-ignored': 19.2.2 + '@commitlint/parse': 19.0.3 + '@commitlint/rules': 19.0.3 + '@commitlint/types': 19.0.3 + + '@commitlint/load@19.2.0(@types/node@20.12.12)(typescript@5.4.5)': + dependencies: + '@commitlint/config-validator': 19.0.3 + '@commitlint/execute-rule': 19.0.0 + '@commitlint/resolve-extends': 19.1.0 + '@commitlint/types': 19.0.3 + chalk: 5.3.0 + cosmiconfig: 9.0.0(typescript@5.4.5) + cosmiconfig-typescript-loader: 5.0.0(@types/node@20.12.12)(cosmiconfig@9.0.0(typescript@5.4.5))(typescript@5.4.5) + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + lodash.uniq: 4.5.0 + transitivePeerDependencies: + - '@types/node' + - typescript + + '@commitlint/message@19.0.0': {} + + '@commitlint/parse@19.0.3': + dependencies: + '@commitlint/types': 19.0.3 + conventional-changelog-angular: 7.0.0 + conventional-commits-parser: 5.0.0 + + '@commitlint/read@19.2.1': + dependencies: + '@commitlint/top-level': 19.0.0 + '@commitlint/types': 19.0.3 + execa: 8.0.1 + git-raw-commits: 4.0.0 + minimist: 1.2.8 + + '@commitlint/resolve-extends@19.1.0': + dependencies: + '@commitlint/config-validator': 19.0.3 + '@commitlint/types': 19.0.3 + global-directory: 4.0.1 + import-meta-resolve: 4.1.0 + lodash.mergewith: 4.6.2 + resolve-from: 5.0.0 + + '@commitlint/rules@19.0.3': + dependencies: + '@commitlint/ensure': 19.0.3 + '@commitlint/message': 19.0.0 + '@commitlint/to-lines': 19.0.0 + '@commitlint/types': 19.0.3 + execa: 8.0.1 + + '@commitlint/to-lines@19.0.0': {} + + '@commitlint/top-level@19.0.0': + dependencies: + find-up: 7.0.0 + + '@commitlint/types@19.0.3': + dependencies: + '@types/conventional-commits-parser': 5.0.0 + chalk: 5.3.0 + + '@esbuild/aix-ppc64@0.19.12': + optional: true + + '@esbuild/aix-ppc64@0.20.2': + optional: true + + '@esbuild/android-arm64@0.19.12': + optional: true + + '@esbuild/android-arm64@0.20.2': + optional: true + + '@esbuild/android-arm@0.19.12': + optional: true + + '@esbuild/android-arm@0.20.2': + optional: true + + '@esbuild/android-x64@0.19.12': + optional: true + + '@esbuild/android-x64@0.20.2': + optional: true + + '@esbuild/darwin-arm64@0.19.12': + optional: true + + '@esbuild/darwin-arm64@0.20.2': + optional: true + + '@esbuild/darwin-x64@0.19.12': + optional: true + + '@esbuild/darwin-x64@0.20.2': + optional: true + + '@esbuild/freebsd-arm64@0.19.12': + optional: true + + '@esbuild/freebsd-arm64@0.20.2': + optional: true + + '@esbuild/freebsd-x64@0.19.12': + optional: true + + '@esbuild/freebsd-x64@0.20.2': + optional: true + + '@esbuild/linux-arm64@0.19.12': + optional: true + + '@esbuild/linux-arm64@0.20.2': + optional: true + + '@esbuild/linux-arm@0.19.12': + optional: true + + '@esbuild/linux-arm@0.20.2': + optional: true + + '@esbuild/linux-ia32@0.19.12': + optional: true + + '@esbuild/linux-ia32@0.20.2': + optional: true + + '@esbuild/linux-loong64@0.19.12': + optional: true + + '@esbuild/linux-loong64@0.20.2': + optional: true + + '@esbuild/linux-mips64el@0.19.12': + optional: true + + '@esbuild/linux-mips64el@0.20.2': + optional: true + + '@esbuild/linux-ppc64@0.19.12': + optional: true + + '@esbuild/linux-ppc64@0.20.2': + optional: true + + '@esbuild/linux-riscv64@0.19.12': + optional: true + + '@esbuild/linux-riscv64@0.20.2': + optional: true + + '@esbuild/linux-s390x@0.19.12': + optional: true + + '@esbuild/linux-s390x@0.20.2': + optional: true + + '@esbuild/linux-x64@0.19.12': + optional: true + + '@esbuild/linux-x64@0.20.2': + optional: true + + '@esbuild/netbsd-x64@0.19.12': + optional: true + + '@esbuild/netbsd-x64@0.20.2': + optional: true + + '@esbuild/openbsd-x64@0.19.12': + optional: true + + '@esbuild/openbsd-x64@0.20.2': + optional: true + + '@esbuild/sunos-x64@0.19.12': + optional: true + + '@esbuild/sunos-x64@0.20.2': + optional: true + + '@esbuild/win32-arm64@0.19.12': + optional: true + + '@esbuild/win32-arm64@0.20.2': + optional: true + + '@esbuild/win32-ia32@0.19.12': + optional: true + + '@esbuild/win32-ia32@0.20.2': + optional: true + + '@esbuild/win32-x64@0.19.12': + optional: true + + '@esbuild/win32-x64@0.20.2': + optional: true + + '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': + dependencies: + eslint: 8.57.0 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.10.0': {} + + '@eslint/eslintrc@2.1.4': + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@8.57.0': {} + + '@humanwhocodes/config-array@0.11.14': + dependencies: + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/object-schema@2.0.3': {} + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@jest/schemas@29.6.3': + dependencies: + '@sinclair/typebox': 0.27.8 + + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/sourcemap-codec@1.4.15': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + + '@langchain/community@0.2.1(@upstash/redis@1.31.2)(@upstash/vector@1.1.1)(cheerio@1.0.0-rc.12)(d3-dsv@3.0.1)(html-to-text@9.0.5)(ignore@5.3.1)(openai@4.47.1)(pdf-parse@1.1.1)': + dependencies: + '@langchain/core': 0.2.0(openai@4.47.1) + '@langchain/openai': 0.0.28 + binary-extensions: 2.3.0 + expr-eval: 2.0.2 + flat: 5.0.2 + js-yaml: 4.1.0 + langchain: 0.2.1(cheerio@1.0.0-rc.12)(d3-dsv@3.0.1)(html-to-text@9.0.5)(ignore@5.3.1)(openai@4.47.1)(pdf-parse@1.1.1) + langsmith: 0.1.25(openai@4.47.1) + uuid: 9.0.1 + zod: 3.23.8 + zod-to-json-schema: 3.23.0(zod@3.23.8) + optionalDependencies: + '@upstash/redis': 1.31.2 + '@upstash/vector': 1.1.1 + cheerio: 1.0.0-rc.12 + d3-dsv: 3.0.1 + html-to-text: 9.0.5 + ignore: 5.3.1 + pdf-parse: 1.1.1 + transitivePeerDependencies: + - '@gomomento/sdk-web' + - axios + - encoding + - fast-xml-parser + - handlebars + - openai + - peggy + - pyodide + + '@langchain/core@0.1.63(openai@4.47.1)': + dependencies: + ansi-styles: 5.2.0 + camelcase: 6.3.0 + decamelize: 1.2.0 + js-tiktoken: 1.0.12 + langsmith: 0.1.25(openai@4.47.1) + ml-distance: 4.0.1 + mustache: 4.2.0 + p-queue: 6.6.2 + p-retry: 4.6.2 + uuid: 9.0.1 + zod: 3.23.8 + zod-to-json-schema: 3.23.0(zod@3.23.8) + transitivePeerDependencies: + - openai + + '@langchain/core@0.2.0(openai@4.47.1)': + dependencies: + ansi-styles: 5.2.0 + camelcase: 6.3.0 + decamelize: 1.2.0 + js-tiktoken: 1.0.12 + langsmith: 0.1.25(openai@4.47.1) + ml-distance: 4.0.1 + mustache: 4.2.0 + p-queue: 6.6.2 + p-retry: 4.6.2 + uuid: 9.0.1 + zod: 3.23.8 + zod-to-json-schema: 3.23.0(zod@3.23.8) + transitivePeerDependencies: + - openai + + '@langchain/openai@0.0.28': + dependencies: + '@langchain/core': 0.1.63(openai@4.47.1) + js-tiktoken: 1.0.12 + openai: 4.47.1 + zod: 3.23.8 + zod-to-json-schema: 3.23.0(zod@3.23.8) + transitivePeerDependencies: + - encoding + + '@langchain/textsplitters@0.0.2(openai@4.47.1)': + dependencies: + '@langchain/core': 0.1.63(openai@4.47.1) + js-tiktoken: 1.0.12 + transitivePeerDependencies: + - openai + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@rollup/rollup-android-arm-eabi@4.18.0': + optional: true + + '@rollup/rollup-android-arm64@4.18.0': + optional: true + + '@rollup/rollup-darwin-arm64@4.18.0': + optional: true + + '@rollup/rollup-darwin-x64@4.18.0': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.18.0': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.18.0': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.18.0': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.18.0': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.18.0': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.18.0': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.18.0': + optional: true + + '@rollup/rollup-linux-x64-musl@4.18.0': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.18.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.18.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.18.0': + optional: true + + '@selderee/plugin-htmlparser2@0.11.0': + dependencies: + domhandler: 5.0.3 + selderee: 0.11.0 + + '@sinclair/typebox@0.27.8': {} + + '@types/conventional-commits-parser@5.0.0': + dependencies: + '@types/node': 20.12.12 + + '@types/diff-match-patch@1.0.36': {} + + '@types/estree@1.0.5': {} + + '@types/node-fetch@2.6.11': + dependencies: + '@types/node': 18.19.33 + form-data: 4.0.0 + + '@types/node@18.19.33': + dependencies: + undici-types: 5.26.5 + + '@types/node@20.12.12': + dependencies: + undici-types: 5.26.5 + + '@types/normalize-package-data@2.4.4': {} + + '@types/retry@0.12.0': {} + + '@types/uuid@9.0.8': {} + + '@types/ws@8.5.10': + dependencies: + '@types/node': 20.12.12 + + '@typescript-eslint/eslint-plugin@7.10.0(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)': + dependencies: + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 7.10.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/scope-manager': 7.10.0 + '@typescript-eslint/type-utils': 7.10.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.10.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.10.0 + eslint: 8.57.0 + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare: 1.4.0 + ts-api-utils: 1.3.0(typescript@5.4.5) + optionalDependencies: + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5)': + dependencies: + '@typescript-eslint/scope-manager': 7.10.0 + '@typescript-eslint/types': 7.10.0 + '@typescript-eslint/typescript-estree': 7.10.0(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.10.0 + debug: 4.3.4 + eslint: 8.57.0 + optionalDependencies: + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@7.10.0': + dependencies: + '@typescript-eslint/types': 7.10.0 + '@typescript-eslint/visitor-keys': 7.10.0 + + '@typescript-eslint/type-utils@7.10.0(eslint@8.57.0)(typescript@5.4.5)': + dependencies: + '@typescript-eslint/typescript-estree': 7.10.0(typescript@5.4.5) + '@typescript-eslint/utils': 7.10.0(eslint@8.57.0)(typescript@5.4.5) + debug: 4.3.4 + eslint: 8.57.0 + ts-api-utils: 1.3.0(typescript@5.4.5) + optionalDependencies: + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@7.10.0': {} + + '@typescript-eslint/typescript-estree@7.10.0(typescript@5.4.5)': + dependencies: + '@typescript-eslint/types': 7.10.0 + '@typescript-eslint/visitor-keys': 7.10.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.4 + semver: 7.6.2 + ts-api-utils: 1.3.0(typescript@5.4.5) + optionalDependencies: + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@7.10.0(eslint@8.57.0)(typescript@5.4.5)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@typescript-eslint/scope-manager': 7.10.0 + '@typescript-eslint/types': 7.10.0 + '@typescript-eslint/typescript-estree': 7.10.0(typescript@5.4.5) + eslint: 8.57.0 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/visitor-keys@7.10.0': + dependencies: + '@typescript-eslint/types': 7.10.0 + eslint-visitor-keys: 3.4.3 + + '@ungap/structured-clone@1.2.0': {} + + '@upstash/core-analytics@0.0.8': + dependencies: + '@upstash/redis': 1.31.2 + + '@upstash/ratelimit@1.1.3': + dependencies: + '@upstash/core-analytics': 0.0.8 + + '@upstash/redis@1.31.2': + dependencies: + crypto-js: 4.2.0 + + '@upstash/vector@1.1.1': {} + + '@vitest/expect@1.6.0': + dependencies: + '@vitest/spy': 1.6.0 + '@vitest/utils': 1.6.0 + chai: 4.4.1 + + '@vitest/runner@1.6.0': + dependencies: + '@vitest/utils': 1.6.0 + p-limit: 5.0.0 + pathe: 1.1.2 + + '@vitest/snapshot@1.6.0': + dependencies: + magic-string: 0.30.10 + pathe: 1.1.2 + pretty-format: 29.7.0 + + '@vitest/spy@1.6.0': + dependencies: + tinyspy: 2.2.1 + + '@vitest/utils@1.6.0': + dependencies: + diff-sequences: 29.6.3 + estree-walker: 3.0.3 + loupe: 2.3.7 + pretty-format: 29.7.0 + + '@vue/compiler-core@3.4.27': + dependencies: + '@babel/parser': 7.24.5 + '@vue/shared': 3.4.27 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.0 + + '@vue/compiler-dom@3.4.27': + dependencies: + '@vue/compiler-core': 3.4.27 + '@vue/shared': 3.4.27 + + '@vue/compiler-sfc@3.4.27': + dependencies: + '@babel/parser': 7.24.5 + '@vue/compiler-core': 3.4.27 + '@vue/compiler-dom': 3.4.27 + '@vue/compiler-ssr': 3.4.27 + '@vue/shared': 3.4.27 + estree-walker: 2.0.2 + magic-string: 0.30.10 + postcss: 8.4.38 + source-map-js: 1.2.0 + + '@vue/compiler-ssr@3.4.27': + dependencies: + '@vue/compiler-dom': 3.4.27 + '@vue/shared': 3.4.27 + + '@vue/reactivity@3.4.27': + dependencies: + '@vue/shared': 3.4.27 + + '@vue/runtime-core@3.4.27': + dependencies: + '@vue/reactivity': 3.4.27 + '@vue/shared': 3.4.27 + + '@vue/runtime-dom@3.4.27': + dependencies: + '@vue/runtime-core': 3.4.27 + '@vue/shared': 3.4.27 + csstype: 3.1.3 + + '@vue/server-renderer@3.4.27(vue@3.4.27(typescript@5.4.5))': + dependencies: + '@vue/compiler-ssr': 3.4.27 + '@vue/shared': 3.4.27 + vue: 3.4.27(typescript@5.4.5) + + '@vue/shared@3.4.27': {} + + JSONStream@1.3.5: + dependencies: + jsonparse: 1.3.1 + through: 2.3.8 + + abort-controller@3.0.0: + dependencies: + event-target-shim: 5.0.1 + + acorn-jsx@5.3.2(acorn@8.11.3): + dependencies: + acorn: 8.11.3 + + acorn-walk@8.3.2: {} + + acorn@8.11.3: {} + + agentkeepalive@4.5.0: + dependencies: + humanize-ms: 1.2.1 + + ai@3.1.12(openai@4.47.1)(react@18.3.1)(solid-js@1.8.17)(svelte@4.2.17)(vue@3.4.27(typescript@5.4.5))(zod@3.23.8): + dependencies: + '@ai-sdk/provider': 0.0.5 + '@ai-sdk/provider-utils': 0.0.8(zod@3.23.8) + eventsource-parser: 1.1.2 + json-schema: 0.4.0 + jsondiffpatch: 0.6.0 + nanoid: 3.3.6 + secure-json-parse: 2.7.0 + solid-swr-store: 0.10.7(solid-js@1.8.17)(swr-store@0.10.6) + sswr: 2.0.0(svelte@4.2.17) + swr: 2.2.0(react@18.3.1) + swr-store: 0.10.6 + swrv: 1.0.4(vue@3.4.27(typescript@5.4.5)) + zod-to-json-schema: 3.22.5(zod@3.23.8) + optionalDependencies: + openai: 4.47.1 + react: 18.3.1 + solid-js: 1.8.17 + svelte: 4.2.17 + vue: 3.4.27(typescript@5.4.5) + zod: 3.23.8 + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ajv@8.13.0: + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + + ansi-regex@5.0.1: {} + + ansi-regex@6.0.1: {} + + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@5.2.0: {} + + ansi-styles@6.2.1: {} + + any-promise@1.3.0: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + argparse@2.0.1: {} + + aria-query@5.3.0: + dependencies: + dequal: 2.0.3 + + array-ify@1.0.0: {} + + array-union@2.1.0: {} + + assertion-error@1.1.0: {} + + asynckit@0.4.0: {} + + axobject-query@4.0.0: + dependencies: + dequal: 2.0.3 + + balanced-match@1.0.2: {} + + base64-js@1.5.1: {} + + binary-extensions@2.3.0: {} + + binary-search@1.3.6: {} + + boolbase@1.0.0: {} + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.23.0: + dependencies: + caniuse-lite: 1.0.30001621 + electron-to-chromium: 1.4.779 + node-releases: 2.0.14 + update-browserslist-db: 1.0.16(browserslist@4.23.0) + + builtin-modules@3.3.0: {} + + bun-types@1.1.9: + dependencies: + '@types/node': 20.12.12 + '@types/ws': 8.5.10 + + bundle-require@4.1.0(esbuild@0.19.12): + dependencies: + esbuild: 0.19.12 + load-tsconfig: 0.2.5 + + cac@6.7.14: {} + + callsites@3.1.0: {} + + camelcase@6.3.0: {} + + caniuse-lite@1.0.30001621: {} + + chai@4.4.1: + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.3 + deep-eql: 4.1.3 + get-func-name: 2.0.2 + loupe: 2.3.7 + pathval: 1.1.1 + type-detect: 4.0.8 + + chalk@2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chalk@5.3.0: {} + + check-error@1.0.3: + dependencies: + get-func-name: 2.0.2 + + cheerio-select@2.1.0: + dependencies: + boolbase: 1.0.0 + css-select: 5.1.0 + css-what: 6.1.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + + cheerio@1.0.0-rc.12: + dependencies: + cheerio-select: 2.1.0 + dom-serializer: 2.0.0 + domhandler: 5.0.3 + domutils: 3.1.0 + htmlparser2: 8.0.2 + parse5: 7.1.2 + parse5-htmlparser2-tree-adapter: 7.0.0 + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + ci-info@4.0.0: {} + + clean-regexp@1.0.0: + dependencies: + escape-string-regexp: 1.0.5 + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + code-red@1.0.4: + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + '@types/estree': 1.0.5 + acorn: 8.11.3 + estree-walker: 3.0.3 + periscopic: 3.1.0 + + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.3: {} + + color-name@1.1.4: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + commander@10.0.1: {} + + commander@4.1.1: {} + + commander@7.2.0: {} + + compare-func@2.0.0: + dependencies: + array-ify: 1.0.0 + dot-prop: 5.3.0 + + concat-map@0.0.1: {} + + confbox@0.1.7: {} + + conventional-changelog-angular@7.0.0: + dependencies: + compare-func: 2.0.0 + + conventional-changelog-conventionalcommits@7.0.2: + dependencies: + compare-func: 2.0.0 + + conventional-commits-parser@5.0.0: + dependencies: + JSONStream: 1.3.5 + is-text-path: 2.0.0 + meow: 12.1.1 + split2: 4.2.0 + + core-js-compat@3.37.1: + dependencies: + browserslist: 4.23.0 + + cosmiconfig-typescript-loader@5.0.0(@types/node@20.12.12)(cosmiconfig@9.0.0(typescript@5.4.5))(typescript@5.4.5): + dependencies: + '@types/node': 20.12.12 + cosmiconfig: 9.0.0(typescript@5.4.5) + jiti: 1.21.0 + typescript: 5.4.5 + + cosmiconfig@9.0.0(typescript@5.4.5): + dependencies: + env-paths: 2.2.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + optionalDependencies: + typescript: 5.4.5 + + cross-spawn@7.0.3: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + crypto-js@4.2.0: {} + + css-select@5.1.0: + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.3 + domutils: 3.1.0 + nth-check: 2.1.1 + + css-tree@2.3.1: + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.2.0 + + css-what@6.1.0: {} + + csstype@3.1.3: {} + + d3-dsv@3.0.1: + dependencies: + commander: 7.2.0 + iconv-lite: 0.6.3 + rw: 1.3.3 + + dargs@8.1.0: {} + + debug@3.2.7: + dependencies: + ms: 2.1.3 + + debug@4.3.4: + dependencies: + ms: 2.1.2 + + decamelize@1.2.0: {} + + deep-eql@4.1.3: + dependencies: + type-detect: 4.0.8 + + deep-is@0.1.4: {} + + deepmerge@4.3.1: {} + + delayed-stream@1.0.0: {} + + dequal@2.0.3: {} + + diff-match-patch@1.0.5: {} + + diff-sequences@29.6.3: {} + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + doctrine@3.0.0: + dependencies: + esutils: 2.0.3 + + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + + domelementtype@2.3.0: {} + + domhandler@5.0.3: + dependencies: + domelementtype: 2.3.0 + + domutils@3.1.0: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + + dot-prop@5.3.0: + dependencies: + is-obj: 2.0.0 + + eastasianwidth@0.2.0: {} + + electron-to-chromium@1.4.779: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + entities@4.5.0: {} + + env-paths@2.2.1: {} + + error-ex@1.3.2: + dependencies: + is-arrayish: 0.2.1 + + esbuild@0.19.12: + optionalDependencies: + '@esbuild/aix-ppc64': 0.19.12 + '@esbuild/android-arm': 0.19.12 + '@esbuild/android-arm64': 0.19.12 + '@esbuild/android-x64': 0.19.12 + '@esbuild/darwin-arm64': 0.19.12 + '@esbuild/darwin-x64': 0.19.12 + '@esbuild/freebsd-arm64': 0.19.12 + '@esbuild/freebsd-x64': 0.19.12 + '@esbuild/linux-arm': 0.19.12 + '@esbuild/linux-arm64': 0.19.12 + '@esbuild/linux-ia32': 0.19.12 + '@esbuild/linux-loong64': 0.19.12 + '@esbuild/linux-mips64el': 0.19.12 + '@esbuild/linux-ppc64': 0.19.12 + '@esbuild/linux-riscv64': 0.19.12 + '@esbuild/linux-s390x': 0.19.12 + '@esbuild/linux-x64': 0.19.12 + '@esbuild/netbsd-x64': 0.19.12 + '@esbuild/openbsd-x64': 0.19.12 + '@esbuild/sunos-x64': 0.19.12 + '@esbuild/win32-arm64': 0.19.12 + '@esbuild/win32-ia32': 0.19.12 + '@esbuild/win32-x64': 0.19.12 + + esbuild@0.20.2: + optionalDependencies: + '@esbuild/aix-ppc64': 0.20.2 + '@esbuild/android-arm': 0.20.2 + '@esbuild/android-arm64': 0.20.2 + '@esbuild/android-x64': 0.20.2 + '@esbuild/darwin-arm64': 0.20.2 + '@esbuild/darwin-x64': 0.20.2 + '@esbuild/freebsd-arm64': 0.20.2 + '@esbuild/freebsd-x64': 0.20.2 + '@esbuild/linux-arm': 0.20.2 + '@esbuild/linux-arm64': 0.20.2 + '@esbuild/linux-ia32': 0.20.2 + '@esbuild/linux-loong64': 0.20.2 + '@esbuild/linux-mips64el': 0.20.2 + '@esbuild/linux-ppc64': 0.20.2 + '@esbuild/linux-riscv64': 0.20.2 + '@esbuild/linux-s390x': 0.20.2 + '@esbuild/linux-x64': 0.20.2 + '@esbuild/netbsd-x64': 0.20.2 + '@esbuild/openbsd-x64': 0.20.2 + '@esbuild/sunos-x64': 0.20.2 + '@esbuild/win32-arm64': 0.20.2 + '@esbuild/win32-ia32': 0.20.2 + '@esbuild/win32-x64': 0.20.2 + + escalade@3.1.2: {} + + escape-string-regexp@1.0.5: {} + + escape-string-regexp@4.0.0: {} + + eslint-plugin-unicorn@51.0.1(eslint@8.57.0): + dependencies: + '@babel/helper-validator-identifier': 7.24.5 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint/eslintrc': 2.1.4 + ci-info: 4.0.0 + clean-regexp: 1.0.0 + core-js-compat: 3.37.1 + eslint: 8.57.0 + esquery: 1.5.0 + indent-string: 4.0.0 + is-builtin-module: 3.2.1 + jsesc: 3.0.2 + pluralize: 8.0.0 + read-pkg-up: 7.0.1 + regexp-tree: 0.1.27 + regjsparser: 0.10.0 + semver: 7.6.2 + strip-indent: 3.0.0 + transitivePeerDependencies: + - supports-color + + eslint-scope@7.2.2: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint@8.57.0: + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/regexpp': 4.10.0 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.0 + '@humanwhocodes/config-array': 0.11.14 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.1 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + + espree@9.6.1: + dependencies: + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) + eslint-visitor-keys: 3.4.3 + + esquery@1.5.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + estree-walker@2.0.2: {} + + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.5 + + esutils@2.0.3: {} + + event-target-shim@5.0.1: {} + + eventemitter3@4.0.7: {} + + eventsource-parser@1.1.2: {} + + execa@5.1.1: + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + execa@8.0.1: + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + + expr-eval@2.0.2: {} + + fast-deep-equal@3.1.3: {} + + fast-glob@3.3.2: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.7 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fastq@1.17.1: + dependencies: + reusify: 1.0.4 + + file-entry-cache@6.0.1: + dependencies: + flat-cache: 3.2.0 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + find-up@7.0.0: + dependencies: + locate-path: 7.2.0 + path-exists: 5.0.0 + unicorn-magic: 0.1.0 + + flat-cache@3.2.0: + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 + rimraf: 3.0.2 + + flat@5.0.2: {} + + flatted@3.3.1: {} + + foreground-child@3.1.1: + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + + form-data-encoder@1.7.2: {} + + form-data@4.0.0: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + formdata-node@4.4.1: + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 4.0.0-beta.3 + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + get-caller-file@2.0.5: {} + + get-func-name@2.0.2: {} + + get-stream@6.0.1: {} + + get-stream@8.0.1: {} + + git-raw-commits@4.0.0: + dependencies: + dargs: 8.1.0 + meow: 12.1.1 + split2: 4.2.0 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@10.3.16: + dependencies: + foreground-child: 3.1.1 + jackspeak: 3.1.2 + minimatch: 9.0.4 + minipass: 7.1.1 + path-scurry: 1.11.1 + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + global-directory@4.0.1: + dependencies: + ini: 4.1.1 + + globals@13.24.0: + dependencies: + type-fest: 0.20.2 + + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.1 + merge2: 1.4.1 + slash: 3.0.0 + + graphemer@1.4.0: {} + + has-flag@3.0.0: {} + + has-flag@4.0.0: {} + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + hosted-git-info@2.8.9: {} + + html-to-text@9.0.5: + dependencies: + '@selderee/plugin-htmlparser2': 0.11.0 + deepmerge: 4.3.1 + dom-serializer: 2.0.0 + htmlparser2: 8.0.2 + selderee: 0.11.0 + + htmlparser2@8.0.2: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + entities: 4.5.0 + + human-signals@2.1.0: {} + + human-signals@5.0.0: {} + + humanize-ms@1.2.1: + dependencies: + ms: 2.1.3 + + husky@9.0.11: {} + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + + ignore@5.3.1: {} + + import-fresh@3.3.0: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + import-meta-resolve@4.1.0: {} + + imurmurhash@0.1.4: {} + + indent-string@4.0.0: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + ini@4.1.1: {} + + is-any-array@2.0.1: {} + + is-arrayish@0.2.1: {} + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-builtin-module@3.2.1: + dependencies: + builtin-modules: 3.3.0 + + is-core-module@2.13.1: + dependencies: + hasown: 2.0.2 + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-number@7.0.0: {} + + is-obj@2.0.0: {} + + is-path-inside@3.0.3: {} + + is-reference@3.0.2: + dependencies: + '@types/estree': 1.0.5 + + is-stream@2.0.1: {} + + is-stream@3.0.0: {} + + is-text-path@2.0.0: + dependencies: + text-extensions: 2.4.0 + + isexe@2.0.0: {} + + jackspeak@3.1.2: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jiti@1.21.0: {} + + joycon@3.1.1: {} + + js-tiktoken@1.0.12: + dependencies: + base64-js: 1.5.1 + + js-tokens@4.0.0: {} + + js-tokens@9.0.0: {} + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + jsesc@0.5.0: {} + + jsesc@3.0.2: {} + + json-buffer@3.0.1: {} + + json-parse-even-better-errors@2.3.1: {} + + json-schema-traverse@0.4.1: {} + + json-schema-traverse@1.0.0: {} + + json-schema@0.4.0: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + jsondiffpatch@0.6.0: + dependencies: + '@types/diff-match-patch': 1.0.36 + chalk: 5.3.0 + diff-match-patch: 1.0.5 + + jsonparse@1.3.1: {} + + jsonpointer@5.0.1: {} + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + langchain@0.2.1(cheerio@1.0.0-rc.12)(d3-dsv@3.0.1)(html-to-text@9.0.5)(ignore@5.3.1)(openai@4.47.1)(pdf-parse@1.1.1): + dependencies: + '@langchain/core': 0.2.0(openai@4.47.1) + '@langchain/openai': 0.0.28 + '@langchain/textsplitters': 0.0.2(openai@4.47.1) + binary-extensions: 2.3.0 + js-tiktoken: 1.0.12 + js-yaml: 4.1.0 + jsonpointer: 5.0.1 + langchainhub: 0.0.10 + langsmith: 0.1.25(openai@4.47.1) + ml-distance: 4.0.1 + openapi-types: 12.1.3 + p-retry: 4.6.2 + uuid: 9.0.1 + yaml: 2.4.2 + zod: 3.23.8 + zod-to-json-schema: 3.23.0(zod@3.23.8) + optionalDependencies: + cheerio: 1.0.0-rc.12 + d3-dsv: 3.0.1 + html-to-text: 9.0.5 + ignore: 5.3.1 + pdf-parse: 1.1.1 + transitivePeerDependencies: + - encoding + - openai + + langchainhub@0.0.10: {} + + langsmith@0.1.25(openai@4.47.1): + dependencies: + '@types/uuid': 9.0.8 + commander: 10.0.1 + p-queue: 6.6.2 + p-retry: 4.6.2 + uuid: 9.0.1 + optionalDependencies: + openai: 4.47.1 + + leac@0.6.0: {} + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lilconfig@3.1.1: {} + + lines-and-columns@1.2.4: {} + + load-tsconfig@0.2.5: {} + + local-pkg@0.5.0: + dependencies: + mlly: 1.7.0 + pkg-types: 1.1.1 + + locate-character@3.0.0: {} + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + locate-path@7.2.0: + dependencies: + p-locate: 6.0.0 + + lodash.camelcase@4.3.0: {} + + lodash.isplainobject@4.0.6: {} + + lodash.kebabcase@4.1.1: {} + + lodash.merge@4.6.2: {} + + lodash.mergewith@4.6.2: {} + + lodash.snakecase@4.1.1: {} + + lodash.sortby@4.7.0: {} + + lodash.startcase@4.4.0: {} + + lodash.uniq@4.5.0: {} + + lodash.upperfirst@4.3.1: {} + + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + + loupe@2.3.7: + dependencies: + get-func-name: 2.0.2 + + lru-cache@10.2.2: {} + + magic-string@0.30.10: + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + + mdn-data@2.0.30: {} + + meow@12.1.1: {} + + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + micromatch@4.0.7: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mimic-fn@2.1.0: {} + + mimic-fn@4.0.0: {} + + min-indent@1.0.1: {} + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@9.0.4: + dependencies: + brace-expansion: 2.0.1 + + minimist@1.2.8: {} + + minipass@7.1.1: {} + + ml-array-mean@1.1.6: + dependencies: + ml-array-sum: 1.1.6 + + ml-array-sum@1.1.6: + dependencies: + is-any-array: 2.0.1 + + ml-distance-euclidean@2.0.0: {} + + ml-distance@4.0.1: + dependencies: + ml-array-mean: 1.1.6 + ml-distance-euclidean: 2.0.0 + ml-tree-similarity: 1.0.0 + + ml-tree-similarity@1.0.0: + dependencies: + binary-search: 1.3.6 + num-sort: 2.1.0 + + mlly@1.7.0: + dependencies: + acorn: 8.11.3 + pathe: 1.1.2 + pkg-types: 1.1.1 + ufo: 1.5.3 + + ms@2.1.2: {} + + ms@2.1.3: {} + + mustache@4.2.0: {} + + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + + nanoid@3.3.6: {} + + nanoid@3.3.7: {} + + nanoid@5.0.7: {} + + natural-compare@1.4.0: {} + + node-domexception@1.0.0: {} + + node-ensure@0.0.0: {} + + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + + node-releases@2.0.14: {} + + normalize-package-data@2.5.0: + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.8 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 + + normalize-path@3.0.0: {} + + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + + npm-run-path@5.3.0: + dependencies: + path-key: 4.0.0 + + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + + num-sort@2.1.0: {} + + object-assign@4.1.1: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + onetime@6.0.0: + dependencies: + mimic-fn: 4.0.0 + + openai@4.47.1: + dependencies: + '@types/node': 18.19.33 + '@types/node-fetch': 2.6.11 + abort-controller: 3.0.0 + agentkeepalive: 4.5.0 + form-data-encoder: 1.7.2 + formdata-node: 4.4.1 + node-fetch: 2.7.0 + web-streams-polyfill: 3.3.3 + transitivePeerDependencies: + - encoding + + openapi-types@12.1.3: {} + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + p-finally@1.0.0: {} + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-limit@4.0.0: + dependencies: + yocto-queue: 1.0.0 + + p-limit@5.0.0: + dependencies: + yocto-queue: 1.0.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + p-locate@6.0.0: + dependencies: + p-limit: 4.0.0 + + p-queue@6.6.2: + dependencies: + eventemitter3: 4.0.7 + p-timeout: 3.2.0 + + p-retry@4.6.2: + dependencies: + '@types/retry': 0.12.0 + retry: 0.13.1 + + p-timeout@3.2.0: + dependencies: + p-finally: 1.0.0 + + p-try@2.2.0: {} + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.24.2 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + parse5-htmlparser2-tree-adapter@7.0.0: + dependencies: + domhandler: 5.0.3 + parse5: 7.1.2 + + parse5@7.1.2: + dependencies: + entities: 4.5.0 + + parseley@0.12.1: + dependencies: + leac: 0.6.0 + peberminta: 0.9.0 + + path-exists@4.0.0: {} + + path-exists@5.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-key@4.0.0: {} + + path-parse@1.0.7: {} + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.2.2 + minipass: 7.1.1 + + path-type@4.0.0: {} + + pathe@1.1.2: {} + + pathval@1.1.1: {} + + pdf-parse@1.1.1: + dependencies: + debug: 3.2.7 + node-ensure: 0.0.0 + transitivePeerDependencies: + - supports-color + + peberminta@0.9.0: {} + + periscopic@3.1.0: + dependencies: + '@types/estree': 1.0.5 + estree-walker: 3.0.3 + is-reference: 3.0.2 + + picocolors@1.0.1: {} + + picomatch@2.3.1: {} + + pirates@4.0.6: {} + + pkg-types@1.1.1: + dependencies: + confbox: 0.1.7 + mlly: 1.7.0 + pathe: 1.1.2 + + pluralize@8.0.0: {} + + postcss-load-config@4.0.2(postcss@8.4.38): + dependencies: + lilconfig: 3.1.1 + yaml: 2.4.2 + optionalDependencies: + postcss: 8.4.38 + + postcss@8.4.38: + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.1 + source-map-js: 1.2.0 + + prelude-ls@1.2.1: {} + + prettier@3.2.5: {} + + pretty-format@29.7.0: + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.3.1 + + punycode@2.3.1: {} + + queue-microtask@1.2.3: {} + + react-is@18.3.1: {} + + react@18.3.1: + dependencies: + loose-envify: 1.4.0 + + read-pkg-up@7.0.1: + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + + read-pkg@5.2.0: + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + regexp-tree@0.1.27: {} + + regjsparser@0.10.0: + dependencies: + jsesc: 0.5.0 + + require-directory@2.1.1: {} + + require-from-string@2.0.2: {} + + resolve-from@4.0.0: {} + + resolve-from@5.0.0: {} + + resolve@1.22.8: + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + retry@0.13.1: {} + + reusify@1.0.4: {} + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + rollup@4.18.0: + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.18.0 + '@rollup/rollup-android-arm64': 4.18.0 + '@rollup/rollup-darwin-arm64': 4.18.0 + '@rollup/rollup-darwin-x64': 4.18.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.18.0 + '@rollup/rollup-linux-arm-musleabihf': 4.18.0 + '@rollup/rollup-linux-arm64-gnu': 4.18.0 + '@rollup/rollup-linux-arm64-musl': 4.18.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0 + '@rollup/rollup-linux-riscv64-gnu': 4.18.0 + '@rollup/rollup-linux-s390x-gnu': 4.18.0 + '@rollup/rollup-linux-x64-gnu': 4.18.0 + '@rollup/rollup-linux-x64-musl': 4.18.0 + '@rollup/rollup-win32-arm64-msvc': 4.18.0 + '@rollup/rollup-win32-ia32-msvc': 4.18.0 + '@rollup/rollup-win32-x64-msvc': 4.18.0 + fsevents: 2.3.3 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + rw@1.3.3: {} + + safer-buffer@2.1.2: {} + + secure-json-parse@2.7.0: {} + + selderee@0.11.0: + dependencies: + parseley: 0.12.1 + + semver@5.7.2: {} + + semver@7.6.2: {} + + seroval-plugins@1.0.7(seroval@1.0.7): + dependencies: + seroval: 1.0.7 + + seroval@1.0.7: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + siginfo@2.0.0: {} + + signal-exit@3.0.7: {} + + signal-exit@4.1.0: {} + + slash@3.0.0: {} + + solid-js@1.8.17: + dependencies: + csstype: 3.1.3 + seroval: 1.0.7 + seroval-plugins: 1.0.7(seroval@1.0.7) + + solid-swr-store@0.10.7(solid-js@1.8.17)(swr-store@0.10.6): + dependencies: + solid-js: 1.8.17 + swr-store: 0.10.6 + + source-map-js@1.2.0: {} + + source-map@0.8.0-beta.0: + dependencies: + whatwg-url: 7.1.0 + + spdx-correct@3.2.0: + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.17 + + spdx-exceptions@2.5.0: {} + + spdx-expression-parse@3.0.1: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.17 + + spdx-license-ids@3.0.17: {} + + split2@4.2.0: {} + + sswr@2.0.0(svelte@4.2.17): + dependencies: + svelte: 4.2.17 + swrev: 4.0.0 + + stackback@0.0.2: {} + + std-env@3.7.0: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.0.1 + + strip-final-newline@2.0.0: {} + + strip-final-newline@3.0.0: {} + + strip-indent@3.0.0: + dependencies: + min-indent: 1.0.1 + + strip-json-comments@3.1.1: {} + + strip-literal@2.1.0: + dependencies: + js-tokens: 9.0.0 + + sucrase@3.35.0: + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + commander: 4.1.1 + glob: 10.3.16 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + svelte@4.2.17: + dependencies: + '@ampproject/remapping': 2.3.0 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.25 + '@types/estree': 1.0.5 + acorn: 8.11.3 + aria-query: 5.3.0 + axobject-query: 4.0.0 + code-red: 1.0.4 + css-tree: 2.3.1 + estree-walker: 3.0.3 + is-reference: 3.0.2 + locate-character: 3.0.0 + magic-string: 0.30.10 + periscopic: 3.1.0 + + swr-store@0.10.6: + dependencies: + dequal: 2.0.3 + + swr@2.2.0(react@18.3.1): + dependencies: + react: 18.3.1 + use-sync-external-store: 1.2.2(react@18.3.1) + + swrev@4.0.0: {} + + swrv@1.0.4(vue@3.4.27(typescript@5.4.5)): + dependencies: + vue: 3.4.27(typescript@5.4.5) + + text-extensions@2.4.0: {} + + text-table@0.2.0: {} + + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + + through@2.3.8: {} + + tinybench@2.8.0: {} + + tinypool@0.8.4: {} + + tinyspy@2.2.1: {} + + to-fast-properties@2.0.0: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + tr46@0.0.3: {} + + tr46@1.0.1: + dependencies: + punycode: 2.3.1 + + tree-kill@1.2.2: {} + + ts-api-utils@1.3.0(typescript@5.4.5): + dependencies: + typescript: 5.4.5 + + ts-interface-checker@0.1.13: {} + + tsup@8.0.2(postcss@8.4.38)(typescript@5.4.5): + dependencies: + bundle-require: 4.1.0(esbuild@0.19.12) + cac: 6.7.14 + chokidar: 3.6.0 + debug: 4.3.4 + esbuild: 0.19.12 + execa: 5.1.1 + globby: 11.1.0 + joycon: 3.1.1 + postcss-load-config: 4.0.2(postcss@8.4.38) + resolve-from: 5.0.0 + rollup: 4.18.0 + source-map: 0.8.0-beta.0 + sucrase: 3.35.0 + tree-kill: 1.2.2 + optionalDependencies: + postcss: 8.4.38 + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + - ts-node + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-detect@4.0.8: {} + + type-fest@0.20.2: {} + + type-fest@0.6.0: {} + + type-fest@0.8.1: {} + + typescript@5.4.5: {} + + ufo@1.5.3: {} + + undici-types@5.26.5: {} + + unicorn-magic@0.1.0: {} + + update-browserslist-db@1.0.16(browserslist@4.23.0): + dependencies: + browserslist: 4.23.0 + escalade: 3.1.2 + picocolors: 1.0.1 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + use-sync-external-store@1.2.2(react@18.3.1): + dependencies: + react: 18.3.1 + + uuid@9.0.1: {} + + validate-npm-package-license@3.0.4: + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + + vite-node@1.6.0(@types/node@20.12.12): + dependencies: + cac: 6.7.14 + debug: 4.3.4 + pathe: 1.1.2 + picocolors: 1.0.1 + vite: 5.2.11(@types/node@20.12.12) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + + vite@5.2.11(@types/node@20.12.12): + dependencies: + esbuild: 0.20.2 + postcss: 8.4.38 + rollup: 4.18.0 + optionalDependencies: + '@types/node': 20.12.12 + fsevents: 2.3.3 + + vitest@1.6.0(@types/node@20.12.12): + dependencies: + '@vitest/expect': 1.6.0 + '@vitest/runner': 1.6.0 + '@vitest/snapshot': 1.6.0 + '@vitest/spy': 1.6.0 + '@vitest/utils': 1.6.0 + acorn-walk: 8.3.2 + chai: 4.4.1 + debug: 4.3.4 + execa: 8.0.1 + local-pkg: 0.5.0 + magic-string: 0.30.10 + pathe: 1.1.2 + picocolors: 1.0.1 + std-env: 3.7.0 + strip-literal: 2.1.0 + tinybench: 2.8.0 + tinypool: 0.8.4 + vite: 5.2.11(@types/node@20.12.12) + vite-node: 1.6.0(@types/node@20.12.12) + why-is-node-running: 2.2.2 + optionalDependencies: + '@types/node': 20.12.12 + transitivePeerDependencies: + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + + vue@3.4.27(typescript@5.4.5): + dependencies: + '@vue/compiler-dom': 3.4.27 + '@vue/compiler-sfc': 3.4.27 + '@vue/runtime-dom': 3.4.27 + '@vue/server-renderer': 3.4.27(vue@3.4.27(typescript@5.4.5)) + '@vue/shared': 3.4.27 + optionalDependencies: + typescript: 5.4.5 + + web-streams-polyfill@3.3.3: {} + + web-streams-polyfill@4.0.0-beta.3: {} + + webidl-conversions@3.0.1: {} + + webidl-conversions@4.0.2: {} + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + whatwg-url@7.1.0: + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + why-is-node-running@2.2.2: + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + + word-wrap@1.2.5: {} + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + + wrappy@1.0.2: {} + + y18n@5.0.8: {} + + yaml@2.4.2: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.1.2 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yocto-queue@0.1.0: {} + + yocto-queue@1.0.0: {} + + zod-to-json-schema@3.22.5(zod@3.23.8): + dependencies: + zod: 3.23.8 + + zod-to-json-schema@3.23.0(zod@3.23.8): + dependencies: + zod: 3.23.8 + + zod@3.23.8: {} diff --git a/src/constants.ts b/src/constants.ts index 7b2180e..1ae7f91 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -1,5 +1,3 @@ -import type { PreferredRegions } from "./types"; - export const DEFAULT_CHAT_SESSION_ID = "upstash-rag-chat-session"; export const DEFAULT_CHAT_RATELIMIT_SESSION_ID = "upstash-rag-chat-ratelimit-session"; @@ -7,7 +5,6 @@ export const RATELIMIT_ERROR_MESSAGE = "ERR:USER_RATELIMITED"; export const DEFAULT_VECTOR_DB_NAME = "upstash-rag-chat-vector"; export const DEFAULT_REDIS_DB_NAME = "upstash-rag-chat-redis"; -export const PREFERRED_REGION: PreferredRegions = "us-east-1"; //Retrieval related default options export const DEFAULT_SIMILARITY_THRESHOLD = 0.5; diff --git a/src/file-loader.ts b/src/file-loader.ts new file mode 100644 index 0000000..ea88290 --- /dev/null +++ b/src/file-loader.ts @@ -0,0 +1,91 @@ +/* eslint-disable @typescript-eslint/no-unsafe-argument */ +import { + CheerioWebBaseLoader, + type WebBaseLoaderParams, +} from "@langchain/community/document_loaders/web/cheerio"; +import type { RecursiveCharacterTextSplitterParams } from "langchain/text_splitter"; +import { PDFLoader } from "@langchain/community/document_loaders/fs/pdf"; +import type { Branded } from "./types"; +import { CSVLoader } from "@langchain/community/document_loaders/fs/csv"; +import { TextLoader } from "langchain/document_loaders/fs/text"; + +type IndexUpsertPayload = { input: number[]; id?: string | number; metadata?: string }; +type FilePath = Branded; +type URL = Branded; + +type DatasWithFileSource = + | { + dataType: "pdf"; + fileSource: FilePath | Blob; + opts?: Partial; + pdfOpts?: { parsedItemSeparator?: string; splitPages?: boolean }; + } + | { + dataType: "csv"; + fileSource: FilePath | Blob; + csvOpts?: { column?: string; separator?: string }; + } + | { + dataType: "text-file"; + fileSource: FilePath | Blob; + opts?: Partial; + } + | ( + | { + dataType: "html"; + fileSource: URL; + htmlOpts?: WebBaseLoaderParams; + opts: Partial; + } + | { + dataType: "html"; + fileSource: FilePath | Blob; + opts?: Partial; + } + ); + +export type AddContextPayload = + | { dataType: "text"; data: string; id?: string | number } + | { dataType: "embedding"; data: IndexUpsertPayload[] } + | DatasWithFileSource; + +export class FileLoader { + private config: Pick; + + constructor(config: Pick) { + this.config = config; + } + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + async loadFile(args: any) { + const loader = this.createLoader(args); + return loader.load(); + } + //TODO: Add transforming methods here + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + private createLoader(args: any) { + switch (this.config.dataType) { + case "pdf": { + return new PDFLoader(this.config.fileSource, args); + } + case "csv": { + return new CSVLoader(this.config.fileSource, args); + } + case "text-file": { + return new TextLoader(this.config.fileSource); + } + case "html": { + return this.isURL(this.config.fileSource) + ? new CheerioWebBaseLoader(this.config.fileSource) + : new TextLoader(this.config.fileSource); + } + default: { + throw new Error(`Unsupported data type: ${this.config.dataType}`); + } + } + } + private isURL(source: FilePath | Blob | URL): source is URL { + return typeof source === "string" && source.startsWith("http"); + } +} diff --git a/src/rag-chat.test.ts b/src/rag-chat.test.ts index c127a46..421a12a 100644 --- a/src/rag-chat.test.ts +++ b/src/rag-chat.test.ts @@ -252,3 +252,124 @@ describe("RAG Chat without Redis, but In-memory chat history", () => { { timeout: 10_000 } ); }); + +describe("RAG Chat addContext using CSV", () => { + const vector = new Index({ + token: process.env.UPSTASH_VECTOR_REST_TOKEN!, + url: process.env.UPSTASH_VECTOR_REST_URL!, + }); + + const ragChat = new RAGChat({ + vector, + model: new ChatOpenAI({ + modelName: "gpt-3.5-turbo", + streaming: false, + verbose: false, + temperature: 0, + apiKey: process.env.OPENAI_API_KEY, + }), + }); + + afterAll(async () => { + await vector.reset(); + }); + + test( + "should be able to successfully query csv", + async () => { + await ragChat.addContext({ + dataType: "csv", + fileSource: "./data/list_of_user_info.csv", + }); + await awaitUntilIndexed(vector); + const result = (await ragChat.chat("Whats username of Rachel Booker?", { + stream: false, + })) as AIMessage; + expect(result.content).toContain("booker12"); + }, + { timeout: 30_000 } + ); +}); + +describe("RAG Chat addContext using text-file", () => { + const vector = new Index({ + token: process.env.UPSTASH_VECTOR_REST_TOKEN!, + url: process.env.UPSTASH_VECTOR_REST_URL!, + }); + + const ragChat = new RAGChat({ + vector, + model: new ChatOpenAI({ + modelName: "gpt-3.5-turbo", + streaming: false, + verbose: false, + temperature: 0, + apiKey: process.env.OPENAI_API_KEY, + }), + }); + + afterAll(async () => { + await vector.reset(); + }); + + test( + "should be able to successfully query txt file", + async () => { + await ragChat.addContext({ + dataType: "text-file", + fileSource: "./data/the_wonderful_wizard_of_oz_summary.txt", + opts: { chunkSize: 500, chunkOverlap: 50 }, + }); + await awaitUntilIndexed(vector); + + const result = (await ragChat.chat("Whats the author of The Wonderful Wizard of Oz?", { + stream: false, + metadataKey: "text", + })) as AIMessage; + + expect(result.content).toContain("Frank"); + }, + { timeout: 30_000 } + ); +}); + +describe("RAG Chat addContext using HTML", () => { + const vector = new Index({ + token: process.env.UPSTASH_VECTOR_REST_TOKEN!, + url: process.env.UPSTASH_VECTOR_REST_URL!, + }); + + const ragChat = new RAGChat({ + vector, + model: new ChatOpenAI({ + modelName: "gpt-3.5-turbo", + streaming: false, + verbose: false, + temperature: 0, + apiKey: process.env.OPENAI_API_KEY, + }), + }); + + afterAll(async () => { + await vector.reset(); + }); + + test( + "should be able to successfully query html file", + async () => { + await ragChat.addContext({ + dataType: "html", + fileSource: "./data/the_wonderful_wizard_of_oz_summary.html", + }); + await awaitUntilIndexed(vector); + + // const result = (await ragChat.chat("Wwhats the author of The Wonderful Wizard of Oz?", { + // stream: false, + // metadataKey: "text", + // })) as AIMessage; + + // expect(result.content).toContain("Frank"); + }, + { timeout: 30_000 } + ); +}); diff --git a/src/services/retrieval.ts b/src/services/retrieval.ts index e6feb2e..4304dde 100644 --- a/src/services/retrieval.ts +++ b/src/services/retrieval.ts @@ -4,10 +4,15 @@ import { formatFacts } from "../utils"; import type { Index } from "@upstash/vector"; import { PDFLoader } from "@langchain/community/document_loaders/fs/pdf"; import type { RecursiveCharacterTextSplitterParams } from "langchain/text_splitter"; +import { CSVLoader } from "@langchain/community/document_loaders/fs/csv"; +import { TextLoader } from "langchain/document_loaders/fs/text"; import { RecursiveCharacterTextSplitter } from "langchain/text_splitter"; +import { HtmlToTextTransformer } from "@langchain/community/document_transformers/html_to_text"; +import type { WebBaseLoaderParams } from "@langchain/community/document_loaders/web/cheerio"; type IndexUpsertPayload = { input: number[]; id?: string | number; metadata?: string }; type FilePath = string; +type URL = string; export type AddContextPayload = | { dataType: "text"; data: string; id?: string | number } @@ -16,8 +21,31 @@ export type AddContextPayload = dataType: "pdf"; fileSource: FilePath | Blob; opts?: Partial; + pdfOpts?: { parsedItemSeparator?: string; splitPages?: boolean }; } - | { dataType: "csv"; fileSource: FilePath | Blob }; + | { + dataType: "csv"; + fileSource: FilePath | Blob; + csvOpts?: { column?: string; separator?: string }; + } + | { + dataType: "text-file"; + fileSource: FilePath | Blob; + opts?: Partial; + } + | ( + | { + dataType: "html"; + fileSource: URL; + htmlOpts?: WebBaseLoaderParams; + opts: Partial; + } + | { + dataType: "html"; + fileSource: FilePath | Blob; + opts?: Partial; + } + ); export type AddContextOptions = { metadataKey?: string; @@ -92,6 +120,7 @@ export class RetrievalService { metadata: { [metadataKey]: input.data }, }); } + case "embedding": { const items = input.data.map((context) => { return { @@ -103,21 +132,67 @@ export class RetrievalService { return this.index.upsert(items); } + case "pdf": { - const loader = new PDFLoader(input.fileSource); + const { parsedItemSeparator, splitPages } = input.pdfOpts ?? {}; + + const loader = new PDFLoader(input.fileSource, { parsedItemSeparator, splitPages }); const documents = await loader.load(); // Users will be able to pass options like chunkSize,chunkOverlap when calling addContext from RAGChat instance directly. const splitter = new RecursiveCharacterTextSplitter(input.opts); const splittedDocuments = await splitter.splitDocuments(documents); - const upsertPayload = splittedDocuments.map((document) => ({ + const formattedDocuments = splittedDocuments.map((document) => ({ + data: document.pageContent, + metadata: { [metadataKey]: document.pageContent }, + id: nanoid(), + })); + + return this.index.upsert(formattedDocuments); + } + + case "csv": { + const { column, separator } = input.csvOpts ?? {}; + + const loader = new CSVLoader(input.fileSource, { column, separator }); + const documents = await loader.load(); + const formattedDocuments = documents.map((document) => ({ + data: document.pageContent, + id: nanoid(), + metadata: { [metadataKey]: document.pageContent }, + })); + return this.index.upsert(formattedDocuments); + } + + case "text-file": { + const loader = new TextLoader(input.fileSource); + const documents = await loader.load(); + const splitter = new RecursiveCharacterTextSplitter(input.opts); + + const splittedDocuments = await splitter.splitDocuments(documents); + const formattedDocuments = splittedDocuments.map((document) => ({ data: document.pageContent, metadata: { [metadataKey]: document.pageContent }, id: nanoid(), })); - return this.index.upsert(upsertPayload); + return this.index.upsert(formattedDocuments); + } + + case "html": { + const loader = new TextLoader(input.fileSource); + const documents = await loader.load(); + const splitter = RecursiveCharacterTextSplitter.fromLanguage("html", input.opts ?? {}); + + const transformer = new HtmlToTextTransformer(); + //@ts-expect-error langchain type issue + const sequence = splitter.pipe(transformer); + + const newDocuments = await sequence.invoke(documents); + + // eslint-disable-next-line no-console + console.log(newDocuments); } } } diff --git a/src/types.ts b/src/types.ts index e840646..2435ea8 100644 --- a/src/types.ts +++ b/src/types.ts @@ -4,7 +4,9 @@ import type { Ratelimit } from "@upstash/ratelimit"; import type { Redis } from "@upstash/redis"; import type { Index } from "@upstash/vector"; -export type PreferredRegions = "eu-west-1" | "us-east-1"; +declare const __brand: unique symbol; +type Brand = { [__brand]: B }; +export type Branded = T & Brand; export type ChatOptions = { /** Set to `true` if working with web apps and you want to be interactive without stalling users. From 7c957c13b0b7550f8de892df0b8dd68c0d2c349c Mon Sep 17 00:00:00 2001 From: ogzhanolguncu Date: Thu, 23 May 2024 18:08:28 +0300 Subject: [PATCH 2/6] chore: update deps --- bun.lockb | Bin 231775 -> 232166 bytes pnpm-lock.yaml | 5572 ------------------------------------- src/services/retrieval.ts | 1 - 3 files changed, 5573 deletions(-) delete mode 100644 pnpm-lock.yaml diff --git a/bun.lockb b/bun.lockb index 4f905a6e16eef4d56d5bec093b53542b242e904f..7126c401bfaf2ff8e4c2d2618855b0fa80db6776 100755 GIT binary patch delta 52337 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 a$1BaH2M+j&WsKIfGonV}mU!hV)Bgih&NKP| delta 52175 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 diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml deleted file mode 100644 index d8571f4..0000000 --- a/pnpm-lock.yaml +++ /dev/null @@ -1,5572 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - '@langchain/community': - specifier: ^0.2.1 - version: 0.2.1(@upstash/redis@1.31.2)(@upstash/vector@1.1.1)(cheerio@1.0.0-rc.12)(d3-dsv@3.0.1)(html-to-text@9.0.5)(ignore@5.3.1)(openai@4.47.1)(pdf-parse@1.1.1) - '@langchain/core': - specifier: ^0.1.58 - version: 0.1.63(openai@4.47.1) - '@langchain/openai': - specifier: ^0.0.28 - version: 0.0.28 - '@upstash/ratelimit': - specifier: ^1.1.3 - version: 1.1.3 - '@upstash/redis': - specifier: ^1.31.1 - version: 1.31.2 - '@upstash/vector': - specifier: ^1.1.1 - version: 1.1.1 - ai: - specifier: ^3.1.1 - version: 3.1.12(openai@4.47.1)(react@18.3.1)(solid-js@1.8.17)(svelte@4.2.17)(vue@3.4.27(typescript@5.4.5))(zod@3.23.8) - cheerio: - specifier: ^1.0.0-rc.12 - version: 1.0.0-rc.12 - d3-dsv: - specifier: ^3.0.1 - version: 3.0.1 - html-to-text: - specifier: ^9.0.5 - version: 9.0.5 - langchain: - specifier: ^0.2.0 - version: 0.2.1(cheerio@1.0.0-rc.12)(d3-dsv@3.0.1)(html-to-text@9.0.5)(ignore@5.3.1)(openai@4.47.1)(pdf-parse@1.1.1) - nanoid: - specifier: ^5.0.7 - version: 5.0.7 - pdf-parse: - specifier: ^1.1.1 - version: 1.1.1 - devDependencies: - '@commitlint/cli': - specifier: ^19.2.2 - version: 19.3.0(@types/node@20.12.12)(typescript@5.4.5) - '@commitlint/config-conventional': - specifier: ^19.2.2 - version: 19.2.2 - '@typescript-eslint/eslint-plugin': - specifier: ^7.0.1 - version: 7.10.0(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/parser': - specifier: ^7.0.1 - version: 7.10.0(eslint@8.57.0)(typescript@5.4.5) - bun-types: - specifier: latest - version: 1.1.9 - eslint: - specifier: ^8 - version: 8.57.0 - eslint-plugin-unicorn: - specifier: ^51.0.1 - version: 51.0.1(eslint@8.57.0) - husky: - specifier: ^9.0.10 - version: 9.0.11 - prettier: - specifier: ^3.2.5 - version: 3.2.5 - tsup: - specifier: latest - version: 8.0.2(postcss@8.4.38)(typescript@5.4.5) - typescript: - specifier: ^5.4.5 - version: 5.4.5 - vitest: - specifier: latest - version: 1.6.0(@types/node@20.12.12) - -packages: - - '@ai-sdk/provider-utils@0.0.8': - resolution: {integrity: sha512-J/ZNvFhORd3gCeK3jFvNrxp1Dnvy6PvPq21RJ+OsIEjsoHeKQaHALCWG0aJunXDuzd+Mck/lCg7LqA0qmIbHIg==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.0.0 - peerDependenciesMeta: - zod: - optional: true - - '@ai-sdk/provider@0.0.5': - resolution: {integrity: sha512-TZDldBZ5clAsNwJ2PSeo/b1uILj9a2lvi0rnOj2RCNZDgaVqFRVIAnKyeHusCRv2lzhPIw03B3fiGI6VoLzOAA==} - engines: {node: '>=18'} - - '@ampproject/remapping@2.3.0': - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} - - '@babel/code-frame@7.24.2': - resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.24.1': - resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.24.5': - resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==} - engines: {node: '>=6.9.0'} - - '@babel/highlight@7.24.5': - resolution: {integrity: sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.24.5': - resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/types@7.24.5': - resolution: {integrity: sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==} - engines: {node: '>=6.9.0'} - - '@commitlint/cli@19.3.0': - resolution: {integrity: sha512-LgYWOwuDR7BSTQ9OLZ12m7F/qhNY+NpAyPBgo4YNMkACE7lGuUnuQq1yi9hz1KA4+3VqpOYl8H1rY/LYK43v7g==} - engines: {node: '>=v18'} - hasBin: true - - '@commitlint/config-conventional@19.2.2': - resolution: {integrity: sha512-mLXjsxUVLYEGgzbxbxicGPggDuyWNkf25Ht23owXIH+zV2pv1eJuzLK3t1gDY5Gp6pxdE60jZnWUY5cvgL3ufw==} - engines: {node: '>=v18'} - - '@commitlint/config-validator@19.0.3': - resolution: {integrity: sha512-2D3r4PKjoo59zBc2auodrSCaUnCSALCx54yveOFwwP/i2kfEAQrygwOleFWswLqK0UL/F9r07MFi5ev2ohyM4Q==} - engines: {node: '>=v18'} - - '@commitlint/ensure@19.0.3': - resolution: {integrity: sha512-SZEpa/VvBLoT+EFZVb91YWbmaZ/9rPH3ESrINOl0HD2kMYsjvl0tF7nMHh0EpTcv4+gTtZBAe1y/SS6/OhfZzQ==} - engines: {node: '>=v18'} - - '@commitlint/execute-rule@19.0.0': - resolution: {integrity: sha512-mtsdpY1qyWgAO/iOK0L6gSGeR7GFcdW7tIjcNFxcWkfLDF5qVbPHKuGATFqRMsxcO8OUKNj0+3WOHB7EHm4Jdw==} - engines: {node: '>=v18'} - - '@commitlint/format@19.3.0': - resolution: {integrity: sha512-luguk5/aF68HiF4H23ACAfk8qS8AHxl4LLN5oxPc24H+2+JRPsNr1OS3Gaea0CrH7PKhArBMKBz5RX9sA5NtTg==} - engines: {node: '>=v18'} - - '@commitlint/is-ignored@19.2.2': - resolution: {integrity: sha512-eNX54oXMVxncORywF4ZPFtJoBm3Tvp111tg1xf4zWXGfhBPKpfKG6R+G3G4v5CPlRROXpAOpQ3HMhA9n1Tck1g==} - engines: {node: '>=v18'} - - '@commitlint/lint@19.2.2': - resolution: {integrity: sha512-xrzMmz4JqwGyKQKTpFzlN0dx0TAiT7Ran1fqEBgEmEj+PU98crOFtysJgY+QdeSagx6EDRigQIXJVnfrI0ratA==} - engines: {node: '>=v18'} - - '@commitlint/load@19.2.0': - resolution: {integrity: sha512-XvxxLJTKqZojCxaBQ7u92qQLFMMZc4+p9qrIq/9kJDy8DOrEa7P1yx7Tjdc2u2JxIalqT4KOGraVgCE7eCYJyQ==} - engines: {node: '>=v18'} - - '@commitlint/message@19.0.0': - resolution: {integrity: sha512-c9czf6lU+9oF9gVVa2lmKaOARJvt4soRsVmbR7Njwp9FpbBgste5i7l/2l5o8MmbwGh4yE1snfnsy2qyA2r/Fw==} - engines: {node: '>=v18'} - - '@commitlint/parse@19.0.3': - resolution: {integrity: sha512-Il+tNyOb8VDxN3P6XoBBwWJtKKGzHlitEuXA5BP6ir/3loWlsSqDr5aecl6hZcC/spjq4pHqNh0qPlfeWu38QA==} - engines: {node: '>=v18'} - - '@commitlint/read@19.2.1': - resolution: {integrity: sha512-qETc4+PL0EUv7Q36lJbPG+NJiBOGg7SSC7B5BsPWOmei+Dyif80ErfWQ0qXoW9oCh7GTpTNRoaVhiI8RbhuaNw==} - engines: {node: '>=v18'} - - '@commitlint/resolve-extends@19.1.0': - resolution: {integrity: sha512-z2riI+8G3CET5CPgXJPlzftH+RiWYLMYv4C9tSLdLXdr6pBNimSKukYP9MS27ejmscqCTVA4almdLh0ODD2KYg==} - engines: {node: '>=v18'} - - '@commitlint/rules@19.0.3': - resolution: {integrity: sha512-TspKb9VB6svklxNCKKwxhELn7qhtY1rFF8ls58DcFd0F97XoG07xugPjjbVnLqmMkRjZDbDIwBKt9bddOfLaPw==} - engines: {node: '>=v18'} - - '@commitlint/to-lines@19.0.0': - resolution: {integrity: sha512-vkxWo+VQU5wFhiP9Ub9Sre0FYe019JxFikrALVoD5UGa8/t3yOJEpEhxC5xKiENKKhUkTpEItMTRAjHw2SCpZw==} - engines: {node: '>=v18'} - - '@commitlint/top-level@19.0.0': - resolution: {integrity: sha512-KKjShd6u1aMGNkCkaX4aG1jOGdn7f8ZI8TR1VEuNqUOjWTOdcDSsmglinglJ18JTjuBX5I1PtjrhQCRcixRVFQ==} - engines: {node: '>=v18'} - - '@commitlint/types@19.0.3': - resolution: {integrity: sha512-tpyc+7i6bPG9mvaBbtKUeghfyZSDgWquIDfMgqYtTbmZ9Y9VzEm2je9EYcQ0aoz5o7NvGS+rcDec93yO08MHYA==} - engines: {node: '>=v18'} - - '@esbuild/aix-ppc64@0.19.12': - resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - - '@esbuild/aix-ppc64@0.20.2': - resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.19.12': - resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm64@0.20.2': - resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.19.12': - resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-arm@0.20.2': - resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.19.12': - resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/android-x64@0.20.2': - resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.19.12': - resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-arm64@0.20.2': - resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.19.12': - resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/darwin-x64@0.20.2': - resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.19.12': - resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-arm64@0.20.2': - resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.19.12': - resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.20.2': - resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.19.12': - resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm64@0.20.2': - resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.19.12': - resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-arm@0.20.2': - resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.19.12': - resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-ia32@0.20.2': - resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.19.12': - resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-loong64@0.20.2': - resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.19.12': - resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-mips64el@0.20.2': - resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.19.12': - resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-ppc64@0.20.2': - resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.19.12': - resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-riscv64@0.20.2': - resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.19.12': - resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-s390x@0.20.2': - resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.19.12': - resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/linux-x64@0.20.2': - resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-x64@0.19.12': - resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.20.2': - resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-x64@0.19.12': - resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.20.2': - resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/sunos-x64@0.19.12': - resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/sunos-x64@0.20.2': - resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.19.12': - resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-arm64@0.20.2': - resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.19.12': - resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-ia32@0.20.2': - resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.19.12': - resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@esbuild/win32-x64@0.20.2': - resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@eslint-community/eslint-utils@4.4.0': - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/regexpp@4.10.0': - resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@eslint/js@8.57.0': - resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@humanwhocodes/config-array@0.11.14': - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} - engines: {node: '>=10.10.0'} - - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - - '@humanwhocodes/object-schema@2.0.3': - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - - '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jridgewell/gen-mapping@0.3.5': - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} - engines: {node: '>=6.0.0'} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - - '@jridgewell/sourcemap-codec@1.4.15': - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - - '@langchain/community@0.2.1': - resolution: {integrity: sha512-kvCk6cSQ1tSnYOV4iaDbkvKNUVS29ehjRFAsUYMPrEybOMfr4V/yrr14xsd7bpIf2mYSmoTE86y4cVcAcki95A==} - engines: {node: '>=18'} - peerDependencies: - '@aws-crypto/sha256-js': ^5.0.0 - '@aws-sdk/client-bedrock-agent-runtime': ^3.485.0 - '@aws-sdk/client-bedrock-runtime': ^3.422.0 - '@aws-sdk/client-dynamodb': ^3.310.0 - '@aws-sdk/client-kendra': ^3.352.0 - '@aws-sdk/client-lambda': ^3.310.0 - '@aws-sdk/client-s3': ^3.310.0 - '@aws-sdk/client-sagemaker-runtime': ^3.310.0 - '@aws-sdk/client-sfn': ^3.310.0 - '@aws-sdk/credential-provider-node': ^3.388.0 - '@azure/search-documents': ^12.0.0 - '@azure/storage-blob': ^12.15.0 - '@browserbasehq/sdk': '*' - '@clickhouse/client': ^0.2.5 - '@cloudflare/ai': '*' - '@datastax/astra-db-ts': ^1.0.0 - '@elastic/elasticsearch': ^8.4.0 - '@getmetal/metal-sdk': '*' - '@getzep/zep-js': ^0.9.0 - '@gomomento/sdk': ^1.51.1 - '@gomomento/sdk-core': ^1.51.1 - '@google-ai/generativelanguage': ^0.2.1 - '@google-cloud/storage': ^6.10.1 || ^7.7.0 - '@gradientai/nodejs-sdk': ^1.2.0 - '@huggingface/inference': ^2.6.4 - '@layerup/layerup-security': ^1.5.12 - '@mendable/firecrawl-js': ^0.0.13 - '@mlc-ai/web-llm': ^0.2.35 - '@mozilla/readability': '*' - '@neondatabase/serverless': '*' - '@notionhq/client': ^2.2.10 - '@opensearch-project/opensearch': '*' - '@pinecone-database/pinecone': '*' - '@planetscale/database': ^1.8.0 - '@premai/prem-sdk': ^0.3.25 - '@qdrant/js-client-rest': ^1.8.2 - '@raycast/api': ^1.55.2 - '@rockset/client': ^0.9.1 - '@smithy/eventstream-codec': ^2.0.5 - '@smithy/protocol-http': ^3.0.6 - '@smithy/signature-v4': ^2.0.10 - '@smithy/util-utf8': ^2.0.0 - '@spider-cloud/spider-client': ^0.0.21 - '@supabase/postgrest-js': ^1.1.1 - '@supabase/supabase-js': ^2.10.0 - '@tensorflow-models/universal-sentence-encoder': '*' - '@tensorflow/tfjs-converter': '*' - '@tensorflow/tfjs-core': '*' - '@upstash/redis': ^1.20.6 - '@upstash/vector': ^1.0.7 - '@vercel/kv': ^0.2.3 - '@vercel/postgres': ^0.5.0 - '@writerai/writer-sdk': ^0.40.2 - '@xata.io/client': ^0.28.0 - '@xenova/transformers': ^2.5.4 - '@zilliz/milvus2-sdk-node': '>=2.2.7' - apify-client: ^2.7.1 - assemblyai: ^4.0.0 - better-sqlite3: ^9.4.0 - cassandra-driver: ^4.7.2 - cborg: ^4.1.1 - cheerio: ^1.0.0-rc.12 - chromadb: '*' - closevector-common: 0.1.3 - closevector-node: 0.1.6 - closevector-web: 0.1.6 - cohere-ai: '*' - convex: ^1.3.1 - couchbase: ^4.3.0 - d3-dsv: ^2.0.0 - discord.js: ^14.14.1 - dria: ^0.0.3 - duck-duck-scrape: ^2.2.5 - epub2: ^3.0.1 - faiss-node: ^0.5.1 - firebase-admin: ^11.9.0 || ^12.0.0 - google-auth-library: ^8.9.0 - googleapis: ^126.0.1 - hnswlib-node: ^3.0.0 - html-to-text: ^9.0.5 - ignore: ^5.2.0 - interface-datastore: ^8.2.11 - ioredis: ^5.3.2 - it-all: ^3.0.4 - jsdom: '*' - jsonwebtoken: ^9.0.2 - llmonitor: ^0.5.9 - lodash: ^4.17.21 - lunary: ^0.6.11 - mammoth: ^1.6.0 - mongodb: '>=5.2.0' - mysql2: ^3.3.3 - neo4j-driver: '*' - node-llama-cpp: '*' - notion-to-md: ^3.1.0 - officeparser: ^4.0.4 - pdf-parse: 1.1.1 - pg: ^8.11.0 - pg-copy-streams: ^6.0.5 - pickleparser: ^0.2.1 - playwright: ^1.32.1 - portkey-ai: ^0.1.11 - puppeteer: ^19.7.2 - redis: '*' - replicate: ^0.18.0 - sonix-speech-recognition: ^2.1.1 - srt-parser-2: ^1.2.3 - typeorm: ^0.3.12 - typesense: ^1.5.3 - usearch: ^1.1.1 - vectordb: ^0.1.4 - voy-search: 0.6.2 - weaviate-ts-client: '*' - web-auth-library: ^1.0.3 - ws: ^8.14.2 - youtube-transcript: ^1.0.6 - youtubei.js: ^9.1.0 - peerDependenciesMeta: - '@aws-crypto/sha256-js': - optional: true - '@aws-sdk/client-bedrock-agent-runtime': - optional: true - '@aws-sdk/client-bedrock-runtime': - optional: true - '@aws-sdk/client-dynamodb': - optional: true - '@aws-sdk/client-kendra': - optional: true - '@aws-sdk/client-lambda': - optional: true - '@aws-sdk/client-s3': - optional: true - '@aws-sdk/client-sagemaker-runtime': - optional: true - '@aws-sdk/client-sfn': - optional: true - '@aws-sdk/credential-provider-node': - optional: true - '@azure/search-documents': - optional: true - '@azure/storage-blob': - optional: true - '@browserbasehq/sdk': - optional: true - '@clickhouse/client': - optional: true - '@cloudflare/ai': - optional: true - '@datastax/astra-db-ts': - optional: true - '@elastic/elasticsearch': - optional: true - '@getmetal/metal-sdk': - optional: true - '@getzep/zep-js': - optional: true - '@gomomento/sdk': - optional: true - '@gomomento/sdk-core': - optional: true - '@google-ai/generativelanguage': - optional: true - '@google-cloud/storage': - optional: true - '@gradientai/nodejs-sdk': - optional: true - '@huggingface/inference': - optional: true - '@layerup/layerup-security': - optional: true - '@mendable/firecrawl-js': - optional: true - '@mlc-ai/web-llm': - optional: true - '@mozilla/readability': - optional: true - '@neondatabase/serverless': - optional: true - '@notionhq/client': - optional: true - '@opensearch-project/opensearch': - optional: true - '@pinecone-database/pinecone': - optional: true - '@planetscale/database': - optional: true - '@premai/prem-sdk': - optional: true - '@qdrant/js-client-rest': - optional: true - '@raycast/api': - optional: true - '@rockset/client': - optional: true - '@smithy/eventstream-codec': - optional: true - '@smithy/protocol-http': - optional: true - '@smithy/signature-v4': - optional: true - '@smithy/util-utf8': - optional: true - '@spider-cloud/spider-client': - optional: true - '@supabase/postgrest-js': - optional: true - '@supabase/supabase-js': - optional: true - '@tensorflow-models/universal-sentence-encoder': - optional: true - '@tensorflow/tfjs-converter': - optional: true - '@tensorflow/tfjs-core': - optional: true - '@upstash/redis': - optional: true - '@upstash/vector': - optional: true - '@vercel/kv': - optional: true - '@vercel/postgres': - optional: true - '@writerai/writer-sdk': - optional: true - '@xata.io/client': - optional: true - '@xenova/transformers': - optional: true - '@zilliz/milvus2-sdk-node': - optional: true - apify-client: - optional: true - assemblyai: - optional: true - better-sqlite3: - optional: true - cassandra-driver: - optional: true - cborg: - optional: true - cheerio: - optional: true - chromadb: - optional: true - closevector-common: - optional: true - closevector-node: - optional: true - closevector-web: - optional: true - cohere-ai: - optional: true - convex: - optional: true - couchbase: - optional: true - d3-dsv: - optional: true - discord.js: - optional: true - dria: - optional: true - duck-duck-scrape: - optional: true - epub2: - optional: true - faiss-node: - optional: true - firebase-admin: - optional: true - google-auth-library: - optional: true - googleapis: - optional: true - hnswlib-node: - optional: true - html-to-text: - optional: true - ignore: - optional: true - interface-datastore: - optional: true - ioredis: - optional: true - it-all: - optional: true - jsdom: - optional: true - jsonwebtoken: - optional: true - llmonitor: - optional: true - lodash: - optional: true - lunary: - optional: true - mammoth: - optional: true - mongodb: - optional: true - mysql2: - optional: true - neo4j-driver: - optional: true - node-llama-cpp: - optional: true - notion-to-md: - optional: true - officeparser: - optional: true - pdf-parse: - optional: true - pg: - optional: true - pg-copy-streams: - optional: true - pickleparser: - optional: true - playwright: - optional: true - portkey-ai: - optional: true - puppeteer: - optional: true - redis: - optional: true - replicate: - optional: true - sonix-speech-recognition: - optional: true - srt-parser-2: - optional: true - typeorm: - optional: true - typesense: - optional: true - usearch: - optional: true - vectordb: - optional: true - voy-search: - optional: true - weaviate-ts-client: - optional: true - web-auth-library: - optional: true - ws: - optional: true - youtube-transcript: - optional: true - youtubei.js: - optional: true - - '@langchain/core@0.1.63': - resolution: {integrity: sha512-+fjyYi8wy6x1P+Ee1RWfIIEyxd9Ee9jksEwvrggPwwI/p45kIDTdYTblXsM13y4mNWTiACyLSdbwnPaxxdoz+w==} - engines: {node: '>=18'} - - '@langchain/core@0.2.0': - resolution: {integrity: sha512-UbCJUp9eh2JXd9AW/vhPbTgtZoMgTqJgSan5Wf/EP27X8JM65lWdCOpJW+gHyBXvabbyrZz3/EGaptTUL5gutw==} - engines: {node: '>=18'} - - '@langchain/openai@0.0.28': - resolution: {integrity: sha512-2s1RA3/eAnz4ahdzsMPBna9hfAqpFNlWdHiPxVGZ5yrhXsbLWWoPcF+22LCk9t0HJKtazi2GCIWc0HVXH9Abig==} - engines: {node: '>=18'} - - '@langchain/textsplitters@0.0.2': - resolution: {integrity: sha512-6bQOuYHTGYlkgPY/8M5WPq4nnXZpEysGzRopQCYjg2WLcEoIPUMMrXsAaNNdvU3BOeMrhin8izvpDPD165hX6Q==} - engines: {node: '>=18'} - - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - - '@rollup/rollup-android-arm-eabi@4.18.0': - resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.18.0': - resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.18.0': - resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.18.0': - resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-linux-arm-gnueabihf@4.18.0': - resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-musleabihf@4.18.0': - resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.18.0': - resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.18.0': - resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': - resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.18.0': - resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.18.0': - resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.18.0': - resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.18.0': - resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-win32-arm64-msvc@4.18.0': - resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.18.0': - resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.18.0': - resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==} - cpu: [x64] - os: [win32] - - '@selderee/plugin-htmlparser2@0.11.0': - resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} - - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - - '@types/conventional-commits-parser@5.0.0': - resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==} - - '@types/diff-match-patch@1.0.36': - resolution: {integrity: sha512-xFdR6tkm0MWvBfO8xXCSsinYxHcqkQUlcHeSpMC2ukzOb6lwQAfDmW+Qt0AvlGd8HpsS28qKsB+oPeJn9I39jg==} - - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - - '@types/node-fetch@2.6.11': - resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} - - '@types/node@18.19.33': - resolution: {integrity: sha512-NR9+KrpSajr2qBVp/Yt5TU/rp+b5Mayi3+OlMlcg2cVCfRmcG5PWZ7S4+MG9PZ5gWBoc9Pd0BKSRViuBCRPu0A==} - - '@types/node@20.12.12': - resolution: {integrity: sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==} - - '@types/normalize-package-data@2.4.4': - resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - - '@types/retry@0.12.0': - resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} - - '@types/uuid@9.0.8': - resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} - - '@types/ws@8.5.10': - resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} - - '@typescript-eslint/eslint-plugin@7.10.0': - resolution: {integrity: sha512-PzCr+a/KAef5ZawX7nbyNwBDtM1HdLIT53aSA2DDlxmxMngZ43O8SIePOeX8H5S+FHXeI6t97mTt/dDdzY4Fyw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/parser@7.10.0': - resolution: {integrity: sha512-2EjZMA0LUW5V5tGQiaa2Gys+nKdfrn2xiTIBLR4fxmPmVSvgPcKNW+AE/ln9k0A4zDUti0J/GZXMDupQoI+e1w==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/scope-manager@7.10.0': - resolution: {integrity: sha512-7L01/K8W/VGl7noe2mgH0K7BE29Sq6KAbVmxurj8GGaPDZXPr8EEQ2seOeAS+mEV9DnzxBQB6ax6qQQ5C6P4xg==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@typescript-eslint/type-utils@7.10.0': - resolution: {integrity: sha512-D7tS4WDkJWrVkuzgm90qYw9RdgBcrWmbbRkrLA4d7Pg3w0ttVGDsvYGV19SH8gPR5L7OtcN5J1hTtyenO9xE9g==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/types@7.10.0': - resolution: {integrity: sha512-7fNj+Ya35aNyhuqrA1E/VayQX9Elwr8NKZ4WueClR3KwJ7Xx9jcCdOrLW04h51de/+gNbyFMs+IDxh5xIwfbNg==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@typescript-eslint/typescript-estree@7.10.0': - resolution: {integrity: sha512-LXFnQJjL9XIcxeVfqmNj60YhatpRLt6UhdlFwAkjNc6jSUlK8zQOl1oktAP8PlWFzPQC1jny/8Bai3/HPuvN5g==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/utils@7.10.0': - resolution: {integrity: sha512-olzif1Fuo8R8m/qKkzJqT7qwy16CzPRWBvERS0uvyc+DHd8AKbO4Jb7kpAvVzMmZm8TrHnI7hvjN4I05zow+tg==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - - '@typescript-eslint/visitor-keys@7.10.0': - resolution: {integrity: sha512-9ntIVgsi6gg6FIq9xjEO4VQJvwOqA3jaBFQJ/6TK5AvEup2+cECI6Fh7QiBxmfMHXU0V0J4RyPeOU1VDNzl9cg==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@ungap/structured-clone@1.2.0': - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - - '@upstash/core-analytics@0.0.8': - resolution: {integrity: sha512-MCJoF+Y8fkzq4NRLG7kEHjtGyMsZ2DICBdmEdwoK9umoSrfkzgBlYdZiHTIaewyt9PGaMZCHOasz0LAuMpxwxQ==} - engines: {node: '>=16.0.0'} - - '@upstash/ratelimit@1.1.3': - resolution: {integrity: sha512-rl+GMvPdZJ9xPDIvIrqRl/g0nzAEaH75hwR5lXAKW8zPPplD/AeliDCHwuwcFCPIjg49FKyA1oc5H473WkVFrQ==} - - '@upstash/redis@1.31.2': - resolution: {integrity: sha512-2u7LBzHHMVE8Ou+ZE3hZJKkvlbYv1pAlZ1NSDIS1fF77bT0CdozouzCS/fCVfOnz1orxPY4v+9swZ+ZKDGtNhA==} - - '@upstash/vector@1.1.1': - resolution: {integrity: sha512-40pRY6BYpNElZ0/BFiDk9p1Pn4D+WUM4qm528yYlJm6ifjcg4xQthwiE8+6j2t9rqr3FtWaNhdpLXTyj1ptNLA==} - - '@vitest/expect@1.6.0': - resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==} - - '@vitest/runner@1.6.0': - resolution: {integrity: sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==} - - '@vitest/snapshot@1.6.0': - resolution: {integrity: sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==} - - '@vitest/spy@1.6.0': - resolution: {integrity: sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==} - - '@vitest/utils@1.6.0': - resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==} - - '@vue/compiler-core@3.4.27': - resolution: {integrity: sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==} - - '@vue/compiler-dom@3.4.27': - resolution: {integrity: sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==} - - '@vue/compiler-sfc@3.4.27': - resolution: {integrity: sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==} - - '@vue/compiler-ssr@3.4.27': - resolution: {integrity: sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==} - - '@vue/reactivity@3.4.27': - resolution: {integrity: sha512-kK0g4NknW6JX2yySLpsm2jlunZJl2/RJGZ0H9ddHdfBVHcNzxmQ0sS0b09ipmBoQpY8JM2KmUw+a6sO8Zo+zIA==} - - '@vue/runtime-core@3.4.27': - resolution: {integrity: sha512-7aYA9GEbOOdviqVvcuweTLe5Za4qBZkUY7SvET6vE8kyypxVgaT1ixHLg4urtOlrApdgcdgHoTZCUuTGap/5WA==} - - '@vue/runtime-dom@3.4.27': - resolution: {integrity: sha512-ScOmP70/3NPM+TW9hvVAz6VWWtZJqkbdf7w6ySsws+EsqtHvkhxaWLecrTorFxsawelM5Ys9FnDEMt6BPBDS0Q==} - - '@vue/server-renderer@3.4.27': - resolution: {integrity: sha512-dlAMEuvmeA3rJsOMJ2J1kXU7o7pOxgsNHVr9K8hB3ImIkSuBrIdy0vF66h8gf8Tuinf1TK3mPAz2+2sqyf3KzA==} - peerDependencies: - vue: 3.4.27 - - '@vue/shared@3.4.27': - resolution: {integrity: sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==} - - JSONStream@1.3.5: - resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} - hasBin: true - - abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} - - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - - acorn-walk@8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} - engines: {node: '>=0.4.0'} - - acorn@8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} - engines: {node: '>=0.4.0'} - hasBin: true - - agentkeepalive@4.5.0: - resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} - engines: {node: '>= 8.0.0'} - - ai@3.1.12: - resolution: {integrity: sha512-XlurBw1sdgQCFmCTPYjKjpm+fPS6iY+tLb/PYNUEjZn3bhqosAkcqUkGJTsFP49OMAWO1Lm2oPthCakKcn6Lzw==} - engines: {node: '>=18'} - peerDependencies: - openai: ^4.42.0 - react: ^18.2.0 - solid-js: ^1.7.7 - svelte: ^3.0.0 || ^4.0.0 - vue: ^3.3.4 - zod: ^3.0.0 - peerDependenciesMeta: - openai: - optional: true - react: - optional: true - solid-js: - optional: true - svelte: - optional: true - vue: - optional: true - zod: - optional: true - - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - - ajv@8.13.0: - resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} - - ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - - ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - - any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} - - array-ify@1.0.0: - resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} - - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - - assertion-error@1.1.0: - resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} - - asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - - axobject-query@4.0.0: - resolution: {integrity: sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==} - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - - binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} - - binary-search@1.3.6: - resolution: {integrity: sha512-nbE1WxOTTrUWIfsfZ4aHGYu5DOuNkbxGokjV6Z2kxfJK3uaAb8zNK1muzOeipoLHZjInT4Br88BHpzevc681xA==} - - boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - - browserslist@4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} - - bun-types@1.1.9: - resolution: {integrity: sha512-3YuLiH4Ne/ghk7K6mHiaqCqKOMrtB0Z5p1WAskHSVgi0iMZgsARV4yGkbfi565YsStvUq6GXTWB3ga7M8cznkA==} - - bundle-require@4.1.0: - resolution: {integrity: sha512-FeArRFM+ziGkRViKRnSTbHZc35dgmR9yNog05Kn0+ItI59pOAISGvnnIwW1WgFZQW59IxD9QpJnUPkdIPfZuXg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - peerDependencies: - esbuild: '>=0.17' - - cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} - - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - - camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - - caniuse-lite@1.0.30001621: - resolution: {integrity: sha512-+NLXZiviFFKX0fk8Piwv3PfLPGtRqJeq2TiNoUff/qB5KJgwecJTvCXDpmlyP/eCI/GUEmp/h/y5j0yckiiZrA==} - - chai@4.4.1: - resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} - engines: {node: '>=4'} - - chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - - chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - - check-error@1.0.3: - resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} - - cheerio-select@2.1.0: - resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} - - cheerio@1.0.0-rc.12: - resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} - engines: {node: '>= 6'} - - chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} - - ci-info@4.0.0: - resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} - engines: {node: '>=8'} - - clean-regexp@1.0.0: - resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} - engines: {node: '>=4'} - - cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - - code-red@1.0.4: - resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} - - color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - - commander@10.0.1: - resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} - engines: {node: '>=14'} - - commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} - - commander@7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} - engines: {node: '>= 10'} - - compare-func@2.0.0: - resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} - - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - confbox@0.1.7: - resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} - - conventional-changelog-angular@7.0.0: - resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} - engines: {node: '>=16'} - - conventional-changelog-conventionalcommits@7.0.2: - resolution: {integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==} - engines: {node: '>=16'} - - conventional-commits-parser@5.0.0: - resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==} - engines: {node: '>=16'} - hasBin: true - - core-js-compat@3.37.1: - resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==} - - cosmiconfig-typescript-loader@5.0.0: - resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==} - engines: {node: '>=v16'} - peerDependencies: - '@types/node': '*' - cosmiconfig: '>=8.2' - typescript: '>=4' - - cosmiconfig@9.0.0: - resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true - - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - - crypto-js@4.2.0: - resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} - - css-select@5.1.0: - resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} - - css-tree@2.3.1: - resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - - css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} - engines: {node: '>= 6'} - - csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - - d3-dsv@3.0.1: - resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} - engines: {node: '>=12'} - hasBin: true - - dargs@8.1.0: - resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==} - engines: {node: '>=12'} - - debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - - deep-eql@4.1.3: - resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} - engines: {node: '>=6'} - - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - - deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - - delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - - dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - - diff-match-patch@1.0.5: - resolution: {integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==} - - diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - - dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} - - domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - - domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} - engines: {node: '>= 4'} - - domutils@3.1.0: - resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} - - dot-prop@5.3.0: - resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} - engines: {node: '>=8'} - - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - - electron-to-chromium@1.4.779: - resolution: {integrity: sha512-oaTiIcszNfySXVJzKcjxd2YjPxziAd+GmXyb2HbidCeFo6Z88ygOT7EimlrEQhM2U08VhSrbKhLOXP0kKUCZ6g==} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - - entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - - env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} - engines: {node: '>=6'} - - error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - - esbuild@0.19.12: - resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} - engines: {node: '>=12'} - hasBin: true - - esbuild@0.20.2: - resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} - engines: {node: '>=12'} - hasBin: true - - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} - engines: {node: '>=6'} - - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - eslint-plugin-unicorn@51.0.1: - resolution: {integrity: sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==} - engines: {node: '>=16'} - peerDependencies: - eslint: '>=8.56.0' - - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true - - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - - estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - - estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - - event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} - - eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - - eventsource-parser@1.1.2: - resolution: {integrity: sha512-v0eOBUbiaFojBu2s2NPBfYUoRR9GjcDNvCXVaqEf5vVfpIAh9f8RCo4vXTP8c63QRKCFwoLpMpTdPwwhEKVgzA==} - engines: {node: '>=14.18'} - - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - - execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} - - expr-eval@2.0.2: - resolution: {integrity: sha512-4EMSHGOPSwAfBiibw3ndnP0AvjDWLsMvGOvWEZ2F96IGk0bIVdjQisOHxReSkE13mHcfbuCiXw+G4y0zv6N8Eg==} - - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - - fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} - - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - - fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} - - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - - find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - - find-up@7.0.0: - resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==} - engines: {node: '>=18'} - - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} - - flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} - hasBin: true - - flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - - foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} - engines: {node: '>=14'} - - form-data-encoder@1.7.2: - resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==} - - form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} - engines: {node: '>= 6'} - - formdata-node@4.4.1: - resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} - engines: {node: '>= 12.20'} - - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - - get-func-name@2.0.2: - resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - - get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} - - git-raw-commits@4.0.0: - resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==} - engines: {node: '>=16'} - hasBin: true - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - - glob@10.3.16: - resolution: {integrity: sha512-JDKXl1DiuuHJ6fVS2FXjownaavciiHNUU4mOvV/B793RLh05vZL1rcPnCSaOgv1hDT6RDlY7AB7ZUvFYAtPgAw==} - engines: {node: '>=16 || 14 >=14.18'} - hasBin: true - - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - - global-directory@4.0.1: - resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} - engines: {node: '>=18'} - - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - - has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - - hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - - html-to-text@9.0.5: - resolution: {integrity: sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==} - engines: {node: '>=14'} - - htmlparser2@8.0.2: - resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} - - human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - - human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} - - humanize-ms@1.2.1: - resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} - - husky@9.0.11: - resolution: {integrity: sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==} - engines: {node: '>=18'} - hasBin: true - - iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} - - ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} - engines: {node: '>= 4'} - - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} - - import-meta-resolve@4.1.0: - resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} - - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} - - inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - 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. - - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - ini@4.1.1: - resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - is-any-array@2.0.1: - resolution: {integrity: sha512-UtilS7hLRu++wb/WBAw9bNuP1Eg04Ivn1vERJck8zJthEvXCBEBpGR/33u/xLKWEQf95803oalHrVDptcAvFdQ==} - - is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - - is-builtin-module@3.2.1: - resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} - engines: {node: '>=6'} - - is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-obj@2.0.0: - resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} - engines: {node: '>=8'} - - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - - is-reference@3.0.2: - resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} - - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - - is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - is-text-path@2.0.0: - resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} - engines: {node: '>=8'} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - jackspeak@3.1.2: - resolution: {integrity: sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==} - engines: {node: '>=14'} - - jiti@1.21.0: - resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} - hasBin: true - - joycon@3.1.1: - resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} - engines: {node: '>=10'} - - js-tiktoken@1.0.12: - resolution: {integrity: sha512-L7wURW1fH9Qaext0VzaUDpFGVQgjkdE3Dgsy9/+yXyGEpBKnylTd0mU0bfbNkKDlXRb6TEsZkwuflu1B8uQbJQ==} - - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - js-tokens@9.0.0: - resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} - - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - - jsesc@0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true - - jsesc@3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} - engines: {node: '>=6'} - hasBin: true - - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - - json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - - json-schema@0.4.0: - resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} - - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - - jsondiffpatch@0.6.0: - resolution: {integrity: sha512-3QItJOXp2AP1uv7waBkao5nCvhEv+QmJAd38Ybq7wNI74Q+BBmnLn4EDKz6yI9xGAIQoUF87qHt+kc1IVxB4zQ==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - - jsonparse@1.3.1: - resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} - engines: {'0': node >= 0.2.0} - - jsonpointer@5.0.1: - resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} - engines: {node: '>=0.10.0'} - - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - - langchain@0.2.1: - resolution: {integrity: sha512-aCAsUwcmXjvhVsbAbR7NnzQ8jIjJPOx1EW4CmHX9Ggxp150EZYbLv7RJ5uBfj47hYUEFMfAqsCt524BwGnelng==} - engines: {node: '>=18'} - peerDependencies: - '@aws-sdk/client-s3': ^3.310.0 - '@aws-sdk/client-sagemaker-runtime': ^3.310.0 - '@aws-sdk/client-sfn': ^3.310.0 - '@aws-sdk/credential-provider-node': ^3.388.0 - '@azure/storage-blob': ^12.15.0 - '@browserbasehq/sdk': '*' - '@gomomento/sdk': ^1.51.1 - '@gomomento/sdk-core': ^1.51.1 - '@gomomento/sdk-web': ^1.51.1 - '@google-ai/generativelanguage': ^0.2.1 - '@mendable/firecrawl-js': ^0.0.13 - '@notionhq/client': ^2.2.10 - '@pinecone-database/pinecone': '*' - '@supabase/supabase-js': ^2.10.0 - '@vercel/kv': ^0.2.3 - '@xata.io/client': ^0.28.0 - apify-client: ^2.7.1 - assemblyai: ^4.0.0 - axios: '*' - cheerio: ^1.0.0-rc.12 - chromadb: '*' - convex: ^1.3.1 - couchbase: ^4.3.0 - d3-dsv: ^2.0.0 - epub2: ^3.0.1 - faiss-node: '*' - fast-xml-parser: '*' - handlebars: ^4.7.8 - html-to-text: ^9.0.5 - ignore: ^5.2.0 - ioredis: ^5.3.2 - jsdom: '*' - mammoth: ^1.6.0 - mongodb: '>=5.2.0' - node-llama-cpp: '*' - notion-to-md: ^3.1.0 - officeparser: ^4.0.4 - pdf-parse: 1.1.1 - peggy: ^3.0.2 - playwright: ^1.32.1 - puppeteer: ^19.7.2 - pyodide: ^0.24.1 - redis: ^4.6.4 - sonix-speech-recognition: ^2.1.1 - srt-parser-2: ^1.2.3 - typeorm: ^0.3.12 - weaviate-ts-client: '*' - web-auth-library: ^1.0.3 - ws: ^8.14.2 - youtube-transcript: ^1.0.6 - youtubei.js: ^9.1.0 - peerDependenciesMeta: - '@aws-sdk/client-s3': - optional: true - '@aws-sdk/client-sagemaker-runtime': - optional: true - '@aws-sdk/client-sfn': - optional: true - '@aws-sdk/credential-provider-node': - optional: true - '@azure/storage-blob': - optional: true - '@browserbasehq/sdk': - optional: true - '@gomomento/sdk': - optional: true - '@gomomento/sdk-core': - optional: true - '@gomomento/sdk-web': - optional: true - '@google-ai/generativelanguage': - optional: true - '@mendable/firecrawl-js': - optional: true - '@notionhq/client': - optional: true - '@pinecone-database/pinecone': - optional: true - '@supabase/supabase-js': - optional: true - '@vercel/kv': - optional: true - '@xata.io/client': - optional: true - apify-client: - optional: true - assemblyai: - optional: true - axios: - optional: true - cheerio: - optional: true - chromadb: - optional: true - convex: - optional: true - couchbase: - optional: true - d3-dsv: - optional: true - epub2: - optional: true - faiss-node: - optional: true - fast-xml-parser: - optional: true - handlebars: - optional: true - html-to-text: - optional: true - ignore: - optional: true - ioredis: - optional: true - jsdom: - optional: true - mammoth: - optional: true - mongodb: - optional: true - node-llama-cpp: - optional: true - notion-to-md: - optional: true - officeparser: - optional: true - pdf-parse: - optional: true - peggy: - optional: true - playwright: - optional: true - puppeteer: - optional: true - pyodide: - optional: true - redis: - optional: true - sonix-speech-recognition: - optional: true - srt-parser-2: - optional: true - typeorm: - optional: true - weaviate-ts-client: - optional: true - web-auth-library: - optional: true - ws: - optional: true - youtube-transcript: - optional: true - youtubei.js: - optional: true - - langchainhub@0.0.10: - resolution: {integrity: sha512-mOVso7TGTMSlvTTUR1b4zUIMtu8zgie/pcwRm1SeooWwuHYMQovoNXjT6gEjvWEZ6cjt4gVH+1lu2tp1/phyIQ==} - - langsmith@0.1.25: - resolution: {integrity: sha512-Hft4Y1yoMgFgCUXVQklRZ7ndmLQ/6FmRZE9P3u5BRdMq5Fa0hpg8R7jd7bLLBXkAjqcFvWo0AGhpb8MMY5FAiA==} - peerDependencies: - openai: '*' - peerDependenciesMeta: - openai: - optional: true - - leac@0.6.0: - resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==} - - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - - lilconfig@3.1.1: - resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} - engines: {node: '>=14'} - - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - - load-tsconfig@0.2.5: - resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - local-pkg@0.5.0: - resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} - engines: {node: '>=14'} - - locate-character@3.0.0: - resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} - - locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - - locate-path@7.2.0: - resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - lodash.camelcase@4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} - - lodash.isplainobject@4.0.6: - resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} - - lodash.kebabcase@4.1.1: - resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} - - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - - lodash.mergewith@4.6.2: - resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} - - lodash.snakecase@4.1.1: - resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} - - lodash.sortby@4.7.0: - resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} - - lodash.startcase@4.4.0: - resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} - - lodash.uniq@4.5.0: - resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} - - lodash.upperfirst@4.3.1: - resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} - - loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - - loupe@2.3.7: - resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} - - lru-cache@10.2.2: - resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} - engines: {node: 14 || >=16.14} - - magic-string@0.30.10: - resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} - - mdn-data@2.0.30: - resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - - meow@12.1.1: - resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} - engines: {node: '>=16.10'} - - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - micromatch@4.0.7: - resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} - engines: {node: '>=8.6'} - - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - - mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} - - min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - - minimatch@9.0.4: - resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} - engines: {node: '>=16 || 14 >=14.17'} - - minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - - minipass@7.1.1: - resolution: {integrity: sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==} - engines: {node: '>=16 || 14 >=14.17'} - - ml-array-mean@1.1.6: - resolution: {integrity: sha512-MIdf7Zc8HznwIisyiJGRH9tRigg3Yf4FldW8DxKxpCCv/g5CafTw0RRu51nojVEOXuCQC7DRVVu5c7XXO/5joQ==} - - ml-array-sum@1.1.6: - resolution: {integrity: sha512-29mAh2GwH7ZmiRnup4UyibQZB9+ZLyMShvt4cH4eTK+cL2oEMIZFnSyB3SS8MlsTh6q/w/yh48KmqLxmovN4Dw==} - - ml-distance-euclidean@2.0.0: - resolution: {integrity: sha512-yC9/2o8QF0A3m/0IXqCTXCzz2pNEzvmcE/9HFKOZGnTjatvBbsn4lWYJkxENkA4Ug2fnYl7PXQxnPi21sgMy/Q==} - - ml-distance@4.0.1: - resolution: {integrity: sha512-feZ5ziXs01zhyFUUUeZV5hwc0f5JW0Sh0ckU1koZe/wdVkJdGxcP06KNQuF0WBTj8FttQUzcvQcpcrOp/XrlEw==} - - ml-tree-similarity@1.0.0: - resolution: {integrity: sha512-XJUyYqjSuUQkNQHMscr6tcjldsOoAekxADTplt40QKfwW6nd++1wHWV9AArl0Zvw/TIHgNaZZNvr8QGvE8wLRg==} - - mlly@1.7.0: - resolution: {integrity: sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==} - - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - mustache@4.2.0: - resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} - hasBin: true - - mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - - nanoid@3.3.6: - resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - nanoid@5.0.7: - resolution: {integrity: sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==} - engines: {node: ^18 || >=20} - hasBin: true - - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - - node-domexception@1.0.0: - resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} - engines: {node: '>=10.5.0'} - - node-ensure@0.0.0: - resolution: {integrity: sha512-DRI60hzo2oKN1ma0ckc6nQWlHU69RH6xN0sjQTjMpChPfTYvKZdcQFfdYK2RWbJcKyUizSIy/l8OTGxMAM1QDw==} - - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - - node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - - normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} - - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - - npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - - npm-run-path@5.3.0: - resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - - num-sort@2.1.0: - resolution: {integrity: sha512-1MQz1Ed8z2yckoBeSfkQHHO9K1yDRxxtotKSJ9yvcTUUxSvfvzEq5GwBrjjHEpMlq/k5gvXdmJ1SbYxWtpNoVg==} - engines: {node: '>=8'} - - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - - onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} - - openai@4.47.1: - resolution: {integrity: sha512-WWSxhC/69ZhYWxH/OBsLEirIjUcfpQ5+ihkXKp06hmeYXgBBIUCa9IptMzYx6NdkiOCsSGYCnTIsxaic3AjRCQ==} - hasBin: true - - openapi-types@12.1.3: - resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} - - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} - - p-finally@1.0.0: - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} - engines: {node: '>=4'} - - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - - p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - p-limit@5.0.0: - resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} - engines: {node: '>=18'} - - p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - - p-locate@6.0.0: - resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - p-queue@6.6.2: - resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} - engines: {node: '>=8'} - - p-retry@4.6.2: - resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} - engines: {node: '>=8'} - - p-timeout@3.2.0: - resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} - engines: {node: '>=8'} - - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - - parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - - parse5-htmlparser2-tree-adapter@7.0.0: - resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} - - parse5@7.1.2: - resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} - - parseley@0.12.1: - resolution: {integrity: sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - path-exists@5.0.0: - resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - - path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} - - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - - pathe@1.1.2: - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - - pathval@1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} - - pdf-parse@1.1.1: - resolution: {integrity: sha512-v6ZJ/efsBpGrGGknjtq9J/oC8tZWq0KWL5vQrk2GlzLEQPUDB1ex+13Rmidl1neNN358Jn9EHZw5y07FFtaC7A==} - engines: {node: '>=6.8.1'} - - peberminta@0.9.0: - resolution: {integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==} - - periscopic@3.1.0: - resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} - - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} - engines: {node: '>= 6'} - - pkg-types@1.1.1: - resolution: {integrity: sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==} - - pluralize@8.0.0: - resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} - engines: {node: '>=4'} - - postcss-load-config@4.0.2: - resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} - engines: {node: '>= 14'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - - postcss@8.4.38: - resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} - engines: {node: ^10 || ^12 || >=14} - - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - - prettier@3.2.5: - resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} - engines: {node: '>=14'} - hasBin: true - - pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - react-is@18.3.1: - resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - - react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} - engines: {node: '>=0.10.0'} - - read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} - - read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} - - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - - regexp-tree@0.1.27: - resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} - hasBin: true - - regjsparser@0.10.0: - resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} - hasBin: true - - require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - - require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - - resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - - resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - - retry@0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} - engines: {node: '>= 4'} - - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - hasBin: true - - rollup@4.18.0: - resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - - rw@1.3.3: - resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} - - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - - secure-json-parse@2.7.0: - resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} - - selderee@0.11.0: - resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==} - - semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true - - semver@7.6.2: - resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} - engines: {node: '>=10'} - hasBin: true - - seroval-plugins@1.0.7: - resolution: {integrity: sha512-GO7TkWvodGp6buMEX9p7tNyIkbwlyuAWbI6G9Ec5bhcm7mQdu3JOK1IXbEUwb3FVzSc363GraG/wLW23NSavIw==} - engines: {node: '>=10'} - peerDependencies: - seroval: ^1.0 - - seroval@1.0.7: - resolution: {integrity: sha512-n6ZMQX5q0Vn19Zq7CIKNIo7E75gPkGCFUEqDpa8jgwpYr/vScjqnQ6H09t1uIiZ0ZSK0ypEGvrYK2bhBGWsGdw==} - engines: {node: '>=10'} - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - siginfo@2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - - solid-js@1.8.17: - resolution: {integrity: sha512-E0FkUgv9sG/gEBWkHr/2XkBluHb1fkrHywUgA6o6XolPDCJ4g1HaLmQufcBBhiF36ee40q+HpG/vCZu7fLpI3Q==} - - solid-swr-store@0.10.7: - resolution: {integrity: sha512-A6d68aJmRP471aWqKKPE2tpgOiR5fH4qXQNfKIec+Vap+MGQm3tvXlT8n0I8UgJSlNAsSAUuw2VTviH2h3Vv5g==} - engines: {node: '>=10'} - peerDependencies: - solid-js: ^1.2 - swr-store: ^0.10 - - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - - source-map@0.8.0-beta.0: - resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} - engines: {node: '>= 8'} - - spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - - spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} - - spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - - spdx-license-ids@3.0.17: - resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} - - split2@4.2.0: - resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} - engines: {node: '>= 10.x'} - - sswr@2.0.0: - resolution: {integrity: sha512-mV0kkeBHcjcb0M5NqKtKVg/uTIYNlIIniyDfSGrSfxpEdM9C365jK0z55pl9K0xAkNTJi2OAOVFQpgMPUk+V0w==} - peerDependencies: - svelte: ^4.0.0 - - stackback@0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - - std-env@3.7.0: - resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} - - strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - - strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - - strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} - - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - - strip-literal@2.1.0: - resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} - - sucrase@3.35.0: - resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - - supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - svelte@4.2.17: - resolution: {integrity: sha512-N7m1YnoXtRf5wya5Gyx3TWuTddI4nAyayyIWFojiWV5IayDYNV5i2mRp/7qNGol4DtxEYxljmrbgp1HM6hUbmQ==} - engines: {node: '>=16'} - - swr-store@0.10.6: - resolution: {integrity: sha512-xPjB1hARSiRaNNlUQvWSVrG5SirCjk2TmaUyzzvk69SZQan9hCJqw/5rG9iL7xElHU784GxRPISClq4488/XVw==} - engines: {node: '>=10'} - - swr@2.2.0: - resolution: {integrity: sha512-AjqHOv2lAhkuUdIiBu9xbuettzAzWXmCEcLONNKJRba87WAefz8Ca9d6ds/SzrPc235n1IxWYdhJ2zF3MNUaoQ==} - peerDependencies: - react: ^16.11.0 || ^17.0.0 || ^18.0.0 - - swrev@4.0.0: - resolution: {integrity: sha512-LqVcOHSB4cPGgitD1riJ1Hh4vdmITOp+BkmfmXRh4hSF/t7EnS4iD+SOTmq7w5pPm/SiPeto4ADbKS6dHUDWFA==} - - swrv@1.0.4: - resolution: {integrity: sha512-zjEkcP8Ywmj+xOJW3lIT65ciY/4AL4e/Or7Gj0MzU3zBJNMdJiT8geVZhINavnlHRMMCcJLHhraLTAiDOTmQ9g==} - peerDependencies: - vue: '>=3.2.26 < 4' - - text-extensions@2.4.0: - resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} - engines: {node: '>=8'} - - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - - thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} - - thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - - through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - - tinybench@2.8.0: - resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} - - tinypool@0.8.4: - resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} - engines: {node: '>=14.0.0'} - - tinyspy@2.2.1: - resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} - engines: {node: '>=14.0.0'} - - to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - - tr46@1.0.1: - resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} - - tree-kill@1.2.2: - resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} - hasBin: true - - ts-api-utils@1.3.0: - resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} - engines: {node: '>=16'} - peerDependencies: - typescript: '>=4.2.0' - - ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - - tsup@8.0.2: - resolution: {integrity: sha512-NY8xtQXdH7hDUAZwcQdY/Vzlw9johQsaqf7iwZ6g1DOUlFYQ5/AtVAjTvihhEyeRlGo4dLRVHtrRaL35M1daqQ==} - engines: {node: '>=18'} - hasBin: true - peerDependencies: - '@microsoft/api-extractor': ^7.36.0 - '@swc/core': ^1 - postcss: ^8.4.12 - typescript: '>=4.5.0' - peerDependenciesMeta: - '@microsoft/api-extractor': - optional: true - '@swc/core': - optional: true - postcss: - optional: true - typescript: - optional: true - - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - - type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - - type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} - - type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} - - typescript@5.4.5: - resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} - engines: {node: '>=14.17'} - hasBin: true - - ufo@1.5.3: - resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} - - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - - unicorn-magic@0.1.0: - resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} - engines: {node: '>=18'} - - update-browserslist-db@1.0.16: - resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - - use-sync-external-store@1.2.2: - resolution: {integrity: sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - - uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} - hasBin: true - - validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - - vite-node@1.6.0: - resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - - vite@5.2.11: - resolution: {integrity: sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - - vitest@1.6.0: - resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 1.6.0 - '@vitest/ui': 1.6.0 - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@types/node': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - - vue@3.4.27: - resolution: {integrity: sha512-8s/56uK6r01r1icG/aEOHqyMVxd1bkYcSe9j8HcKtr/xTOFWvnzIVTehNW+5Yt89f+DLBe4A569pnZLS5HzAMA==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - web-streams-polyfill@3.3.3: - resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} - engines: {node: '>= 8'} - - web-streams-polyfill@4.0.0-beta.3: - resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} - engines: {node: '>= 14'} - - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - - webidl-conversions@4.0.2: - resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} - - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - - whatwg-url@7.1.0: - resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - why-is-node-running@2.2.2: - resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} - engines: {node: '>=8'} - hasBin: true - - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - - yaml@2.4.2: - resolution: {integrity: sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==} - engines: {node: '>= 14'} - hasBin: true - - yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - - yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} - - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - - yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} - engines: {node: '>=12.20'} - - zod-to-json-schema@3.22.5: - resolution: {integrity: sha512-+akaPo6a0zpVCCseDed504KBJUQpEW5QZw7RMneNmKw+fGaML1Z9tUNLnHHAC8x6dzVRO1eB2oEMyZRnuBZg7Q==} - peerDependencies: - zod: ^3.22.4 - - zod-to-json-schema@3.23.0: - resolution: {integrity: sha512-az0uJ243PxsRIa2x1WmNE/pnuA05gUq/JB8Lwe1EDCCL/Fz9MgjYQ0fPlyc2Tcv6aF2ZA7WM5TWaRZVEFaAIag==} - peerDependencies: - zod: ^3.23.3 - - zod@3.23.8: - resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} - -snapshots: - - '@ai-sdk/provider-utils@0.0.8(zod@3.23.8)': - dependencies: - '@ai-sdk/provider': 0.0.5 - eventsource-parser: 1.1.2 - nanoid: 3.3.6 - secure-json-parse: 2.7.0 - optionalDependencies: - zod: 3.23.8 - - '@ai-sdk/provider@0.0.5': - dependencies: - json-schema: 0.4.0 - - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - - '@babel/code-frame@7.24.2': - dependencies: - '@babel/highlight': 7.24.5 - picocolors: 1.0.1 - - '@babel/helper-string-parser@7.24.1': {} - - '@babel/helper-validator-identifier@7.24.5': {} - - '@babel/highlight@7.24.5': - dependencies: - '@babel/helper-validator-identifier': 7.24.5 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.0.1 - - '@babel/parser@7.24.5': - dependencies: - '@babel/types': 7.24.5 - - '@babel/types@7.24.5': - dependencies: - '@babel/helper-string-parser': 7.24.1 - '@babel/helper-validator-identifier': 7.24.5 - to-fast-properties: 2.0.0 - - '@commitlint/cli@19.3.0(@types/node@20.12.12)(typescript@5.4.5)': - dependencies: - '@commitlint/format': 19.3.0 - '@commitlint/lint': 19.2.2 - '@commitlint/load': 19.2.0(@types/node@20.12.12)(typescript@5.4.5) - '@commitlint/read': 19.2.1 - '@commitlint/types': 19.0.3 - execa: 8.0.1 - yargs: 17.7.2 - transitivePeerDependencies: - - '@types/node' - - typescript - - '@commitlint/config-conventional@19.2.2': - dependencies: - '@commitlint/types': 19.0.3 - conventional-changelog-conventionalcommits: 7.0.2 - - '@commitlint/config-validator@19.0.3': - dependencies: - '@commitlint/types': 19.0.3 - ajv: 8.13.0 - - '@commitlint/ensure@19.0.3': - dependencies: - '@commitlint/types': 19.0.3 - lodash.camelcase: 4.3.0 - lodash.kebabcase: 4.1.1 - lodash.snakecase: 4.1.1 - lodash.startcase: 4.4.0 - lodash.upperfirst: 4.3.1 - - '@commitlint/execute-rule@19.0.0': {} - - '@commitlint/format@19.3.0': - dependencies: - '@commitlint/types': 19.0.3 - chalk: 5.3.0 - - '@commitlint/is-ignored@19.2.2': - dependencies: - '@commitlint/types': 19.0.3 - semver: 7.6.2 - - '@commitlint/lint@19.2.2': - dependencies: - '@commitlint/is-ignored': 19.2.2 - '@commitlint/parse': 19.0.3 - '@commitlint/rules': 19.0.3 - '@commitlint/types': 19.0.3 - - '@commitlint/load@19.2.0(@types/node@20.12.12)(typescript@5.4.5)': - dependencies: - '@commitlint/config-validator': 19.0.3 - '@commitlint/execute-rule': 19.0.0 - '@commitlint/resolve-extends': 19.1.0 - '@commitlint/types': 19.0.3 - chalk: 5.3.0 - cosmiconfig: 9.0.0(typescript@5.4.5) - cosmiconfig-typescript-loader: 5.0.0(@types/node@20.12.12)(cosmiconfig@9.0.0(typescript@5.4.5))(typescript@5.4.5) - lodash.isplainobject: 4.0.6 - lodash.merge: 4.6.2 - lodash.uniq: 4.5.0 - transitivePeerDependencies: - - '@types/node' - - typescript - - '@commitlint/message@19.0.0': {} - - '@commitlint/parse@19.0.3': - dependencies: - '@commitlint/types': 19.0.3 - conventional-changelog-angular: 7.0.0 - conventional-commits-parser: 5.0.0 - - '@commitlint/read@19.2.1': - dependencies: - '@commitlint/top-level': 19.0.0 - '@commitlint/types': 19.0.3 - execa: 8.0.1 - git-raw-commits: 4.0.0 - minimist: 1.2.8 - - '@commitlint/resolve-extends@19.1.0': - dependencies: - '@commitlint/config-validator': 19.0.3 - '@commitlint/types': 19.0.3 - global-directory: 4.0.1 - import-meta-resolve: 4.1.0 - lodash.mergewith: 4.6.2 - resolve-from: 5.0.0 - - '@commitlint/rules@19.0.3': - dependencies: - '@commitlint/ensure': 19.0.3 - '@commitlint/message': 19.0.0 - '@commitlint/to-lines': 19.0.0 - '@commitlint/types': 19.0.3 - execa: 8.0.1 - - '@commitlint/to-lines@19.0.0': {} - - '@commitlint/top-level@19.0.0': - dependencies: - find-up: 7.0.0 - - '@commitlint/types@19.0.3': - dependencies: - '@types/conventional-commits-parser': 5.0.0 - chalk: 5.3.0 - - '@esbuild/aix-ppc64@0.19.12': - optional: true - - '@esbuild/aix-ppc64@0.20.2': - optional: true - - '@esbuild/android-arm64@0.19.12': - optional: true - - '@esbuild/android-arm64@0.20.2': - optional: true - - '@esbuild/android-arm@0.19.12': - optional: true - - '@esbuild/android-arm@0.20.2': - optional: true - - '@esbuild/android-x64@0.19.12': - optional: true - - '@esbuild/android-x64@0.20.2': - optional: true - - '@esbuild/darwin-arm64@0.19.12': - optional: true - - '@esbuild/darwin-arm64@0.20.2': - optional: true - - '@esbuild/darwin-x64@0.19.12': - optional: true - - '@esbuild/darwin-x64@0.20.2': - optional: true - - '@esbuild/freebsd-arm64@0.19.12': - optional: true - - '@esbuild/freebsd-arm64@0.20.2': - optional: true - - '@esbuild/freebsd-x64@0.19.12': - optional: true - - '@esbuild/freebsd-x64@0.20.2': - optional: true - - '@esbuild/linux-arm64@0.19.12': - optional: true - - '@esbuild/linux-arm64@0.20.2': - optional: true - - '@esbuild/linux-arm@0.19.12': - optional: true - - '@esbuild/linux-arm@0.20.2': - optional: true - - '@esbuild/linux-ia32@0.19.12': - optional: true - - '@esbuild/linux-ia32@0.20.2': - optional: true - - '@esbuild/linux-loong64@0.19.12': - optional: true - - '@esbuild/linux-loong64@0.20.2': - optional: true - - '@esbuild/linux-mips64el@0.19.12': - optional: true - - '@esbuild/linux-mips64el@0.20.2': - optional: true - - '@esbuild/linux-ppc64@0.19.12': - optional: true - - '@esbuild/linux-ppc64@0.20.2': - optional: true - - '@esbuild/linux-riscv64@0.19.12': - optional: true - - '@esbuild/linux-riscv64@0.20.2': - optional: true - - '@esbuild/linux-s390x@0.19.12': - optional: true - - '@esbuild/linux-s390x@0.20.2': - optional: true - - '@esbuild/linux-x64@0.19.12': - optional: true - - '@esbuild/linux-x64@0.20.2': - optional: true - - '@esbuild/netbsd-x64@0.19.12': - optional: true - - '@esbuild/netbsd-x64@0.20.2': - optional: true - - '@esbuild/openbsd-x64@0.19.12': - optional: true - - '@esbuild/openbsd-x64@0.20.2': - optional: true - - '@esbuild/sunos-x64@0.19.12': - optional: true - - '@esbuild/sunos-x64@0.20.2': - optional: true - - '@esbuild/win32-arm64@0.19.12': - optional: true - - '@esbuild/win32-arm64@0.20.2': - optional: true - - '@esbuild/win32-ia32@0.19.12': - optional: true - - '@esbuild/win32-ia32@0.20.2': - optional: true - - '@esbuild/win32-x64@0.19.12': - optional: true - - '@esbuild/win32-x64@0.20.2': - optional: true - - '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': - dependencies: - eslint: 8.57.0 - eslint-visitor-keys: 3.4.3 - - '@eslint-community/regexpp@4.10.0': {} - - '@eslint/eslintrc@2.1.4': - dependencies: - ajv: 6.12.6 - debug: 4.3.4 - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.1 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - '@eslint/js@8.57.0': {} - - '@humanwhocodes/config-array@0.11.14': - dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.4 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - '@humanwhocodes/module-importer@1.0.1': {} - - '@humanwhocodes/object-schema@2.0.3': {} - - '@isaacs/cliui@8.0.2': - dependencies: - string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.0 - strip-ansi-cjs: strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 - - '@jest/schemas@29.6.3': - dependencies: - '@sinclair/typebox': 0.27.8 - - '@jridgewell/gen-mapping@0.3.5': - dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.25 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/set-array@1.2.1': {} - - '@jridgewell/sourcemap-codec@1.4.15': {} - - '@jridgewell/trace-mapping@0.3.25': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - - '@langchain/community@0.2.1(@upstash/redis@1.31.2)(@upstash/vector@1.1.1)(cheerio@1.0.0-rc.12)(d3-dsv@3.0.1)(html-to-text@9.0.5)(ignore@5.3.1)(openai@4.47.1)(pdf-parse@1.1.1)': - dependencies: - '@langchain/core': 0.2.0(openai@4.47.1) - '@langchain/openai': 0.0.28 - binary-extensions: 2.3.0 - expr-eval: 2.0.2 - flat: 5.0.2 - js-yaml: 4.1.0 - langchain: 0.2.1(cheerio@1.0.0-rc.12)(d3-dsv@3.0.1)(html-to-text@9.0.5)(ignore@5.3.1)(openai@4.47.1)(pdf-parse@1.1.1) - langsmith: 0.1.25(openai@4.47.1) - uuid: 9.0.1 - zod: 3.23.8 - zod-to-json-schema: 3.23.0(zod@3.23.8) - optionalDependencies: - '@upstash/redis': 1.31.2 - '@upstash/vector': 1.1.1 - cheerio: 1.0.0-rc.12 - d3-dsv: 3.0.1 - html-to-text: 9.0.5 - ignore: 5.3.1 - pdf-parse: 1.1.1 - transitivePeerDependencies: - - '@gomomento/sdk-web' - - axios - - encoding - - fast-xml-parser - - handlebars - - openai - - peggy - - pyodide - - '@langchain/core@0.1.63(openai@4.47.1)': - dependencies: - ansi-styles: 5.2.0 - camelcase: 6.3.0 - decamelize: 1.2.0 - js-tiktoken: 1.0.12 - langsmith: 0.1.25(openai@4.47.1) - ml-distance: 4.0.1 - mustache: 4.2.0 - p-queue: 6.6.2 - p-retry: 4.6.2 - uuid: 9.0.1 - zod: 3.23.8 - zod-to-json-schema: 3.23.0(zod@3.23.8) - transitivePeerDependencies: - - openai - - '@langchain/core@0.2.0(openai@4.47.1)': - dependencies: - ansi-styles: 5.2.0 - camelcase: 6.3.0 - decamelize: 1.2.0 - js-tiktoken: 1.0.12 - langsmith: 0.1.25(openai@4.47.1) - ml-distance: 4.0.1 - mustache: 4.2.0 - p-queue: 6.6.2 - p-retry: 4.6.2 - uuid: 9.0.1 - zod: 3.23.8 - zod-to-json-schema: 3.23.0(zod@3.23.8) - transitivePeerDependencies: - - openai - - '@langchain/openai@0.0.28': - dependencies: - '@langchain/core': 0.1.63(openai@4.47.1) - js-tiktoken: 1.0.12 - openai: 4.47.1 - zod: 3.23.8 - zod-to-json-schema: 3.23.0(zod@3.23.8) - transitivePeerDependencies: - - encoding - - '@langchain/textsplitters@0.0.2(openai@4.47.1)': - dependencies: - '@langchain/core': 0.1.63(openai@4.47.1) - js-tiktoken: 1.0.12 - transitivePeerDependencies: - - openai - - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 - - '@pkgjs/parseargs@0.11.0': - optional: true - - '@rollup/rollup-android-arm-eabi@4.18.0': - optional: true - - '@rollup/rollup-android-arm64@4.18.0': - optional: true - - '@rollup/rollup-darwin-arm64@4.18.0': - optional: true - - '@rollup/rollup-darwin-x64@4.18.0': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.18.0': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.18.0': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.18.0': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.18.0': - optional: true - - '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.18.0': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.18.0': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.18.0': - optional: true - - '@rollup/rollup-linux-x64-musl@4.18.0': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.18.0': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.18.0': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.18.0': - optional: true - - '@selderee/plugin-htmlparser2@0.11.0': - dependencies: - domhandler: 5.0.3 - selderee: 0.11.0 - - '@sinclair/typebox@0.27.8': {} - - '@types/conventional-commits-parser@5.0.0': - dependencies: - '@types/node': 20.12.12 - - '@types/diff-match-patch@1.0.36': {} - - '@types/estree@1.0.5': {} - - '@types/node-fetch@2.6.11': - dependencies: - '@types/node': 18.19.33 - form-data: 4.0.0 - - '@types/node@18.19.33': - dependencies: - undici-types: 5.26.5 - - '@types/node@20.12.12': - dependencies: - undici-types: 5.26.5 - - '@types/normalize-package-data@2.4.4': {} - - '@types/retry@0.12.0': {} - - '@types/uuid@9.0.8': {} - - '@types/ws@8.5.10': - dependencies: - '@types/node': 20.12.12 - - '@typescript-eslint/eslint-plugin@7.10.0(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)': - dependencies: - '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.10.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/scope-manager': 7.10.0 - '@typescript-eslint/type-utils': 7.10.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/utils': 7.10.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.10.0 - eslint: 8.57.0 - graphemer: 1.4.0 - ignore: 5.3.1 - natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.4.5) - optionalDependencies: - typescript: 5.4.5 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5)': - dependencies: - '@typescript-eslint/scope-manager': 7.10.0 - '@typescript-eslint/types': 7.10.0 - '@typescript-eslint/typescript-estree': 7.10.0(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.10.0 - debug: 4.3.4 - eslint: 8.57.0 - optionalDependencies: - typescript: 5.4.5 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@7.10.0': - dependencies: - '@typescript-eslint/types': 7.10.0 - '@typescript-eslint/visitor-keys': 7.10.0 - - '@typescript-eslint/type-utils@7.10.0(eslint@8.57.0)(typescript@5.4.5)': - dependencies: - '@typescript-eslint/typescript-estree': 7.10.0(typescript@5.4.5) - '@typescript-eslint/utils': 7.10.0(eslint@8.57.0)(typescript@5.4.5) - debug: 4.3.4 - eslint: 8.57.0 - ts-api-utils: 1.3.0(typescript@5.4.5) - optionalDependencies: - typescript: 5.4.5 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@7.10.0': {} - - '@typescript-eslint/typescript-estree@7.10.0(typescript@5.4.5)': - dependencies: - '@typescript-eslint/types': 7.10.0 - '@typescript-eslint/visitor-keys': 7.10.0 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.4 - semver: 7.6.2 - ts-api-utils: 1.3.0(typescript@5.4.5) - optionalDependencies: - typescript: 5.4.5 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@7.10.0(eslint@8.57.0)(typescript@5.4.5)': - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@typescript-eslint/scope-manager': 7.10.0 - '@typescript-eslint/types': 7.10.0 - '@typescript-eslint/typescript-estree': 7.10.0(typescript@5.4.5) - eslint: 8.57.0 - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/visitor-keys@7.10.0': - dependencies: - '@typescript-eslint/types': 7.10.0 - eslint-visitor-keys: 3.4.3 - - '@ungap/structured-clone@1.2.0': {} - - '@upstash/core-analytics@0.0.8': - dependencies: - '@upstash/redis': 1.31.2 - - '@upstash/ratelimit@1.1.3': - dependencies: - '@upstash/core-analytics': 0.0.8 - - '@upstash/redis@1.31.2': - dependencies: - crypto-js: 4.2.0 - - '@upstash/vector@1.1.1': {} - - '@vitest/expect@1.6.0': - dependencies: - '@vitest/spy': 1.6.0 - '@vitest/utils': 1.6.0 - chai: 4.4.1 - - '@vitest/runner@1.6.0': - dependencies: - '@vitest/utils': 1.6.0 - p-limit: 5.0.0 - pathe: 1.1.2 - - '@vitest/snapshot@1.6.0': - dependencies: - magic-string: 0.30.10 - pathe: 1.1.2 - pretty-format: 29.7.0 - - '@vitest/spy@1.6.0': - dependencies: - tinyspy: 2.2.1 - - '@vitest/utils@1.6.0': - dependencies: - diff-sequences: 29.6.3 - estree-walker: 3.0.3 - loupe: 2.3.7 - pretty-format: 29.7.0 - - '@vue/compiler-core@3.4.27': - dependencies: - '@babel/parser': 7.24.5 - '@vue/shared': 3.4.27 - entities: 4.5.0 - estree-walker: 2.0.2 - source-map-js: 1.2.0 - - '@vue/compiler-dom@3.4.27': - dependencies: - '@vue/compiler-core': 3.4.27 - '@vue/shared': 3.4.27 - - '@vue/compiler-sfc@3.4.27': - dependencies: - '@babel/parser': 7.24.5 - '@vue/compiler-core': 3.4.27 - '@vue/compiler-dom': 3.4.27 - '@vue/compiler-ssr': 3.4.27 - '@vue/shared': 3.4.27 - estree-walker: 2.0.2 - magic-string: 0.30.10 - postcss: 8.4.38 - source-map-js: 1.2.0 - - '@vue/compiler-ssr@3.4.27': - dependencies: - '@vue/compiler-dom': 3.4.27 - '@vue/shared': 3.4.27 - - '@vue/reactivity@3.4.27': - dependencies: - '@vue/shared': 3.4.27 - - '@vue/runtime-core@3.4.27': - dependencies: - '@vue/reactivity': 3.4.27 - '@vue/shared': 3.4.27 - - '@vue/runtime-dom@3.4.27': - dependencies: - '@vue/runtime-core': 3.4.27 - '@vue/shared': 3.4.27 - csstype: 3.1.3 - - '@vue/server-renderer@3.4.27(vue@3.4.27(typescript@5.4.5))': - dependencies: - '@vue/compiler-ssr': 3.4.27 - '@vue/shared': 3.4.27 - vue: 3.4.27(typescript@5.4.5) - - '@vue/shared@3.4.27': {} - - JSONStream@1.3.5: - dependencies: - jsonparse: 1.3.1 - through: 2.3.8 - - abort-controller@3.0.0: - dependencies: - event-target-shim: 5.0.1 - - acorn-jsx@5.3.2(acorn@8.11.3): - dependencies: - acorn: 8.11.3 - - acorn-walk@8.3.2: {} - - acorn@8.11.3: {} - - agentkeepalive@4.5.0: - dependencies: - humanize-ms: 1.2.1 - - ai@3.1.12(openai@4.47.1)(react@18.3.1)(solid-js@1.8.17)(svelte@4.2.17)(vue@3.4.27(typescript@5.4.5))(zod@3.23.8): - dependencies: - '@ai-sdk/provider': 0.0.5 - '@ai-sdk/provider-utils': 0.0.8(zod@3.23.8) - eventsource-parser: 1.1.2 - json-schema: 0.4.0 - jsondiffpatch: 0.6.0 - nanoid: 3.3.6 - secure-json-parse: 2.7.0 - solid-swr-store: 0.10.7(solid-js@1.8.17)(swr-store@0.10.6) - sswr: 2.0.0(svelte@4.2.17) - swr: 2.2.0(react@18.3.1) - swr-store: 0.10.6 - swrv: 1.0.4(vue@3.4.27(typescript@5.4.5)) - zod-to-json-schema: 3.22.5(zod@3.23.8) - optionalDependencies: - openai: 4.47.1 - react: 18.3.1 - solid-js: 1.8.17 - svelte: 4.2.17 - vue: 3.4.27(typescript@5.4.5) - zod: 3.23.8 - - ajv@6.12.6: - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - - ajv@8.13.0: - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - - ansi-regex@5.0.1: {} - - ansi-regex@6.0.1: {} - - ansi-styles@3.2.1: - dependencies: - color-convert: 1.9.3 - - ansi-styles@4.3.0: - dependencies: - color-convert: 2.0.1 - - ansi-styles@5.2.0: {} - - ansi-styles@6.2.1: {} - - any-promise@1.3.0: {} - - anymatch@3.1.3: - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - - argparse@2.0.1: {} - - aria-query@5.3.0: - dependencies: - dequal: 2.0.3 - - array-ify@1.0.0: {} - - array-union@2.1.0: {} - - assertion-error@1.1.0: {} - - asynckit@0.4.0: {} - - axobject-query@4.0.0: - dependencies: - dequal: 2.0.3 - - balanced-match@1.0.2: {} - - base64-js@1.5.1: {} - - binary-extensions@2.3.0: {} - - binary-search@1.3.6: {} - - boolbase@1.0.0: {} - - brace-expansion@1.1.11: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - brace-expansion@2.0.1: - dependencies: - balanced-match: 1.0.2 - - braces@3.0.3: - dependencies: - fill-range: 7.1.1 - - browserslist@4.23.0: - dependencies: - caniuse-lite: 1.0.30001621 - electron-to-chromium: 1.4.779 - node-releases: 2.0.14 - update-browserslist-db: 1.0.16(browserslist@4.23.0) - - builtin-modules@3.3.0: {} - - bun-types@1.1.9: - dependencies: - '@types/node': 20.12.12 - '@types/ws': 8.5.10 - - bundle-require@4.1.0(esbuild@0.19.12): - dependencies: - esbuild: 0.19.12 - load-tsconfig: 0.2.5 - - cac@6.7.14: {} - - callsites@3.1.0: {} - - camelcase@6.3.0: {} - - caniuse-lite@1.0.30001621: {} - - chai@4.4.1: - dependencies: - assertion-error: 1.1.0 - check-error: 1.0.3 - deep-eql: 4.1.3 - get-func-name: 2.0.2 - loupe: 2.3.7 - pathval: 1.1.1 - type-detect: 4.0.8 - - chalk@2.4.2: - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - - chalk@4.1.2: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - chalk@5.3.0: {} - - check-error@1.0.3: - dependencies: - get-func-name: 2.0.2 - - cheerio-select@2.1.0: - dependencies: - boolbase: 1.0.0 - css-select: 5.1.0 - css-what: 6.1.0 - domelementtype: 2.3.0 - domhandler: 5.0.3 - domutils: 3.1.0 - - cheerio@1.0.0-rc.12: - dependencies: - cheerio-select: 2.1.0 - dom-serializer: 2.0.0 - domhandler: 5.0.3 - domutils: 3.1.0 - htmlparser2: 8.0.2 - parse5: 7.1.2 - parse5-htmlparser2-tree-adapter: 7.0.0 - - chokidar@3.6.0: - dependencies: - anymatch: 3.1.3 - braces: 3.0.3 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - - ci-info@4.0.0: {} - - clean-regexp@1.0.0: - dependencies: - escape-string-regexp: 1.0.5 - - cliui@8.0.1: - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - - code-red@1.0.4: - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - '@types/estree': 1.0.5 - acorn: 8.11.3 - estree-walker: 3.0.3 - periscopic: 3.1.0 - - color-convert@1.9.3: - dependencies: - color-name: 1.1.3 - - color-convert@2.0.1: - dependencies: - color-name: 1.1.4 - - color-name@1.1.3: {} - - color-name@1.1.4: {} - - combined-stream@1.0.8: - dependencies: - delayed-stream: 1.0.0 - - commander@10.0.1: {} - - commander@4.1.1: {} - - commander@7.2.0: {} - - compare-func@2.0.0: - dependencies: - array-ify: 1.0.0 - dot-prop: 5.3.0 - - concat-map@0.0.1: {} - - confbox@0.1.7: {} - - conventional-changelog-angular@7.0.0: - dependencies: - compare-func: 2.0.0 - - conventional-changelog-conventionalcommits@7.0.2: - dependencies: - compare-func: 2.0.0 - - conventional-commits-parser@5.0.0: - dependencies: - JSONStream: 1.3.5 - is-text-path: 2.0.0 - meow: 12.1.1 - split2: 4.2.0 - - core-js-compat@3.37.1: - dependencies: - browserslist: 4.23.0 - - cosmiconfig-typescript-loader@5.0.0(@types/node@20.12.12)(cosmiconfig@9.0.0(typescript@5.4.5))(typescript@5.4.5): - dependencies: - '@types/node': 20.12.12 - cosmiconfig: 9.0.0(typescript@5.4.5) - jiti: 1.21.0 - typescript: 5.4.5 - - cosmiconfig@9.0.0(typescript@5.4.5): - dependencies: - env-paths: 2.2.1 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - parse-json: 5.2.0 - optionalDependencies: - typescript: 5.4.5 - - cross-spawn@7.0.3: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - crypto-js@4.2.0: {} - - css-select@5.1.0: - dependencies: - boolbase: 1.0.0 - css-what: 6.1.0 - domhandler: 5.0.3 - domutils: 3.1.0 - nth-check: 2.1.1 - - css-tree@2.3.1: - dependencies: - mdn-data: 2.0.30 - source-map-js: 1.2.0 - - css-what@6.1.0: {} - - csstype@3.1.3: {} - - d3-dsv@3.0.1: - dependencies: - commander: 7.2.0 - iconv-lite: 0.6.3 - rw: 1.3.3 - - dargs@8.1.0: {} - - debug@3.2.7: - dependencies: - ms: 2.1.3 - - debug@4.3.4: - dependencies: - ms: 2.1.2 - - decamelize@1.2.0: {} - - deep-eql@4.1.3: - dependencies: - type-detect: 4.0.8 - - deep-is@0.1.4: {} - - deepmerge@4.3.1: {} - - delayed-stream@1.0.0: {} - - dequal@2.0.3: {} - - diff-match-patch@1.0.5: {} - - diff-sequences@29.6.3: {} - - dir-glob@3.0.1: - dependencies: - path-type: 4.0.0 - - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - - dom-serializer@2.0.0: - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - entities: 4.5.0 - - domelementtype@2.3.0: {} - - domhandler@5.0.3: - dependencies: - domelementtype: 2.3.0 - - domutils@3.1.0: - dependencies: - dom-serializer: 2.0.0 - domelementtype: 2.3.0 - domhandler: 5.0.3 - - dot-prop@5.3.0: - dependencies: - is-obj: 2.0.0 - - eastasianwidth@0.2.0: {} - - electron-to-chromium@1.4.779: {} - - emoji-regex@8.0.0: {} - - emoji-regex@9.2.2: {} - - entities@4.5.0: {} - - env-paths@2.2.1: {} - - error-ex@1.3.2: - dependencies: - is-arrayish: 0.2.1 - - esbuild@0.19.12: - optionalDependencies: - '@esbuild/aix-ppc64': 0.19.12 - '@esbuild/android-arm': 0.19.12 - '@esbuild/android-arm64': 0.19.12 - '@esbuild/android-x64': 0.19.12 - '@esbuild/darwin-arm64': 0.19.12 - '@esbuild/darwin-x64': 0.19.12 - '@esbuild/freebsd-arm64': 0.19.12 - '@esbuild/freebsd-x64': 0.19.12 - '@esbuild/linux-arm': 0.19.12 - '@esbuild/linux-arm64': 0.19.12 - '@esbuild/linux-ia32': 0.19.12 - '@esbuild/linux-loong64': 0.19.12 - '@esbuild/linux-mips64el': 0.19.12 - '@esbuild/linux-ppc64': 0.19.12 - '@esbuild/linux-riscv64': 0.19.12 - '@esbuild/linux-s390x': 0.19.12 - '@esbuild/linux-x64': 0.19.12 - '@esbuild/netbsd-x64': 0.19.12 - '@esbuild/openbsd-x64': 0.19.12 - '@esbuild/sunos-x64': 0.19.12 - '@esbuild/win32-arm64': 0.19.12 - '@esbuild/win32-ia32': 0.19.12 - '@esbuild/win32-x64': 0.19.12 - - esbuild@0.20.2: - optionalDependencies: - '@esbuild/aix-ppc64': 0.20.2 - '@esbuild/android-arm': 0.20.2 - '@esbuild/android-arm64': 0.20.2 - '@esbuild/android-x64': 0.20.2 - '@esbuild/darwin-arm64': 0.20.2 - '@esbuild/darwin-x64': 0.20.2 - '@esbuild/freebsd-arm64': 0.20.2 - '@esbuild/freebsd-x64': 0.20.2 - '@esbuild/linux-arm': 0.20.2 - '@esbuild/linux-arm64': 0.20.2 - '@esbuild/linux-ia32': 0.20.2 - '@esbuild/linux-loong64': 0.20.2 - '@esbuild/linux-mips64el': 0.20.2 - '@esbuild/linux-ppc64': 0.20.2 - '@esbuild/linux-riscv64': 0.20.2 - '@esbuild/linux-s390x': 0.20.2 - '@esbuild/linux-x64': 0.20.2 - '@esbuild/netbsd-x64': 0.20.2 - '@esbuild/openbsd-x64': 0.20.2 - '@esbuild/sunos-x64': 0.20.2 - '@esbuild/win32-arm64': 0.20.2 - '@esbuild/win32-ia32': 0.20.2 - '@esbuild/win32-x64': 0.20.2 - - escalade@3.1.2: {} - - escape-string-regexp@1.0.5: {} - - escape-string-regexp@4.0.0: {} - - eslint-plugin-unicorn@51.0.1(eslint@8.57.0): - dependencies: - '@babel/helper-validator-identifier': 7.24.5 - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@eslint/eslintrc': 2.1.4 - ci-info: 4.0.0 - clean-regexp: 1.0.0 - core-js-compat: 3.37.1 - eslint: 8.57.0 - esquery: 1.5.0 - indent-string: 4.0.0 - is-builtin-module: 3.2.1 - jsesc: 3.0.2 - pluralize: 8.0.0 - read-pkg-up: 7.0.1 - regexp-tree: 0.1.27 - regjsparser: 0.10.0 - semver: 7.6.2 - strip-indent: 3.0.0 - transitivePeerDependencies: - - supports-color - - eslint-scope@7.2.2: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - - eslint-visitor-keys@3.4.3: {} - - eslint@8.57.0: - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@eslint-community/regexpp': 4.10.0 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.0 - '@humanwhocodes/config-array': 0.11.14 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.5.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 - ignore: 5.3.1 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - strip-ansi: 6.0.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - - espree@9.6.1: - dependencies: - acorn: 8.11.3 - acorn-jsx: 5.3.2(acorn@8.11.3) - eslint-visitor-keys: 3.4.3 - - esquery@1.5.0: - dependencies: - estraverse: 5.3.0 - - esrecurse@4.3.0: - dependencies: - estraverse: 5.3.0 - - estraverse@5.3.0: {} - - estree-walker@2.0.2: {} - - estree-walker@3.0.3: - dependencies: - '@types/estree': 1.0.5 - - esutils@2.0.3: {} - - event-target-shim@5.0.1: {} - - eventemitter3@4.0.7: {} - - eventsource-parser@1.1.2: {} - - execa@5.1.1: - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - - execa@8.0.1: - dependencies: - cross-spawn: 7.0.3 - get-stream: 8.0.1 - human-signals: 5.0.0 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.3.0 - onetime: 6.0.0 - signal-exit: 4.1.0 - strip-final-newline: 3.0.0 - - expr-eval@2.0.2: {} - - fast-deep-equal@3.1.3: {} - - fast-glob@3.3.2: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.7 - - fast-json-stable-stringify@2.1.0: {} - - fast-levenshtein@2.0.6: {} - - fastq@1.17.1: - dependencies: - reusify: 1.0.4 - - file-entry-cache@6.0.1: - dependencies: - flat-cache: 3.2.0 - - fill-range@7.1.1: - dependencies: - to-regex-range: 5.0.1 - - find-up@4.1.0: - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - - find-up@5.0.0: - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - - find-up@7.0.0: - dependencies: - locate-path: 7.2.0 - path-exists: 5.0.0 - unicorn-magic: 0.1.0 - - flat-cache@3.2.0: - dependencies: - flatted: 3.3.1 - keyv: 4.5.4 - rimraf: 3.0.2 - - flat@5.0.2: {} - - flatted@3.3.1: {} - - foreground-child@3.1.1: - dependencies: - cross-spawn: 7.0.3 - signal-exit: 4.1.0 - - form-data-encoder@1.7.2: {} - - form-data@4.0.0: - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - - formdata-node@4.4.1: - dependencies: - node-domexception: 1.0.0 - web-streams-polyfill: 4.0.0-beta.3 - - fs.realpath@1.0.0: {} - - fsevents@2.3.3: - optional: true - - function-bind@1.1.2: {} - - get-caller-file@2.0.5: {} - - get-func-name@2.0.2: {} - - get-stream@6.0.1: {} - - get-stream@8.0.1: {} - - git-raw-commits@4.0.0: - dependencies: - dargs: 8.1.0 - meow: 12.1.1 - split2: 4.2.0 - - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 - - glob-parent@6.0.2: - dependencies: - is-glob: 4.0.3 - - glob@10.3.16: - dependencies: - foreground-child: 3.1.1 - jackspeak: 3.1.2 - minimatch: 9.0.4 - minipass: 7.1.1 - path-scurry: 1.11.1 - - glob@7.2.3: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - - global-directory@4.0.1: - dependencies: - ini: 4.1.1 - - globals@13.24.0: - dependencies: - type-fest: 0.20.2 - - globby@11.1.0: - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.2 - ignore: 5.3.1 - merge2: 1.4.1 - slash: 3.0.0 - - graphemer@1.4.0: {} - - has-flag@3.0.0: {} - - has-flag@4.0.0: {} - - hasown@2.0.2: - dependencies: - function-bind: 1.1.2 - - hosted-git-info@2.8.9: {} - - html-to-text@9.0.5: - dependencies: - '@selderee/plugin-htmlparser2': 0.11.0 - deepmerge: 4.3.1 - dom-serializer: 2.0.0 - htmlparser2: 8.0.2 - selderee: 0.11.0 - - htmlparser2@8.0.2: - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - domutils: 3.1.0 - entities: 4.5.0 - - human-signals@2.1.0: {} - - human-signals@5.0.0: {} - - humanize-ms@1.2.1: - dependencies: - ms: 2.1.3 - - husky@9.0.11: {} - - iconv-lite@0.6.3: - dependencies: - safer-buffer: 2.1.2 - - ignore@5.3.1: {} - - import-fresh@3.3.0: - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - - import-meta-resolve@4.1.0: {} - - imurmurhash@0.1.4: {} - - indent-string@4.0.0: {} - - inflight@1.0.6: - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - - inherits@2.0.4: {} - - ini@4.1.1: {} - - is-any-array@2.0.1: {} - - is-arrayish@0.2.1: {} - - is-binary-path@2.1.0: - dependencies: - binary-extensions: 2.3.0 - - is-builtin-module@3.2.1: - dependencies: - builtin-modules: 3.3.0 - - is-core-module@2.13.1: - dependencies: - hasown: 2.0.2 - - is-extglob@2.1.1: {} - - is-fullwidth-code-point@3.0.0: {} - - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - - is-number@7.0.0: {} - - is-obj@2.0.0: {} - - is-path-inside@3.0.3: {} - - is-reference@3.0.2: - dependencies: - '@types/estree': 1.0.5 - - is-stream@2.0.1: {} - - is-stream@3.0.0: {} - - is-text-path@2.0.0: - dependencies: - text-extensions: 2.4.0 - - isexe@2.0.0: {} - - jackspeak@3.1.2: - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - - jiti@1.21.0: {} - - joycon@3.1.1: {} - - js-tiktoken@1.0.12: - dependencies: - base64-js: 1.5.1 - - js-tokens@4.0.0: {} - - js-tokens@9.0.0: {} - - js-yaml@4.1.0: - dependencies: - argparse: 2.0.1 - - jsesc@0.5.0: {} - - jsesc@3.0.2: {} - - json-buffer@3.0.1: {} - - json-parse-even-better-errors@2.3.1: {} - - json-schema-traverse@0.4.1: {} - - json-schema-traverse@1.0.0: {} - - json-schema@0.4.0: {} - - json-stable-stringify-without-jsonify@1.0.1: {} - - jsondiffpatch@0.6.0: - dependencies: - '@types/diff-match-patch': 1.0.36 - chalk: 5.3.0 - diff-match-patch: 1.0.5 - - jsonparse@1.3.1: {} - - jsonpointer@5.0.1: {} - - keyv@4.5.4: - dependencies: - json-buffer: 3.0.1 - - langchain@0.2.1(cheerio@1.0.0-rc.12)(d3-dsv@3.0.1)(html-to-text@9.0.5)(ignore@5.3.1)(openai@4.47.1)(pdf-parse@1.1.1): - dependencies: - '@langchain/core': 0.2.0(openai@4.47.1) - '@langchain/openai': 0.0.28 - '@langchain/textsplitters': 0.0.2(openai@4.47.1) - binary-extensions: 2.3.0 - js-tiktoken: 1.0.12 - js-yaml: 4.1.0 - jsonpointer: 5.0.1 - langchainhub: 0.0.10 - langsmith: 0.1.25(openai@4.47.1) - ml-distance: 4.0.1 - openapi-types: 12.1.3 - p-retry: 4.6.2 - uuid: 9.0.1 - yaml: 2.4.2 - zod: 3.23.8 - zod-to-json-schema: 3.23.0(zod@3.23.8) - optionalDependencies: - cheerio: 1.0.0-rc.12 - d3-dsv: 3.0.1 - html-to-text: 9.0.5 - ignore: 5.3.1 - pdf-parse: 1.1.1 - transitivePeerDependencies: - - encoding - - openai - - langchainhub@0.0.10: {} - - langsmith@0.1.25(openai@4.47.1): - dependencies: - '@types/uuid': 9.0.8 - commander: 10.0.1 - p-queue: 6.6.2 - p-retry: 4.6.2 - uuid: 9.0.1 - optionalDependencies: - openai: 4.47.1 - - leac@0.6.0: {} - - levn@0.4.1: - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - - lilconfig@3.1.1: {} - - lines-and-columns@1.2.4: {} - - load-tsconfig@0.2.5: {} - - local-pkg@0.5.0: - dependencies: - mlly: 1.7.0 - pkg-types: 1.1.1 - - locate-character@3.0.0: {} - - locate-path@5.0.0: - dependencies: - p-locate: 4.1.0 - - locate-path@6.0.0: - dependencies: - p-locate: 5.0.0 - - locate-path@7.2.0: - dependencies: - p-locate: 6.0.0 - - lodash.camelcase@4.3.0: {} - - lodash.isplainobject@4.0.6: {} - - lodash.kebabcase@4.1.1: {} - - lodash.merge@4.6.2: {} - - lodash.mergewith@4.6.2: {} - - lodash.snakecase@4.1.1: {} - - lodash.sortby@4.7.0: {} - - lodash.startcase@4.4.0: {} - - lodash.uniq@4.5.0: {} - - lodash.upperfirst@4.3.1: {} - - loose-envify@1.4.0: - dependencies: - js-tokens: 4.0.0 - - loupe@2.3.7: - dependencies: - get-func-name: 2.0.2 - - lru-cache@10.2.2: {} - - magic-string@0.30.10: - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - - mdn-data@2.0.30: {} - - meow@12.1.1: {} - - merge-stream@2.0.0: {} - - merge2@1.4.1: {} - - micromatch@4.0.7: - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - - mime-db@1.52.0: {} - - mime-types@2.1.35: - dependencies: - mime-db: 1.52.0 - - mimic-fn@2.1.0: {} - - mimic-fn@4.0.0: {} - - min-indent@1.0.1: {} - - minimatch@3.1.2: - dependencies: - brace-expansion: 1.1.11 - - minimatch@9.0.4: - dependencies: - brace-expansion: 2.0.1 - - minimist@1.2.8: {} - - minipass@7.1.1: {} - - ml-array-mean@1.1.6: - dependencies: - ml-array-sum: 1.1.6 - - ml-array-sum@1.1.6: - dependencies: - is-any-array: 2.0.1 - - ml-distance-euclidean@2.0.0: {} - - ml-distance@4.0.1: - dependencies: - ml-array-mean: 1.1.6 - ml-distance-euclidean: 2.0.0 - ml-tree-similarity: 1.0.0 - - ml-tree-similarity@1.0.0: - dependencies: - binary-search: 1.3.6 - num-sort: 2.1.0 - - mlly@1.7.0: - dependencies: - acorn: 8.11.3 - pathe: 1.1.2 - pkg-types: 1.1.1 - ufo: 1.5.3 - - ms@2.1.2: {} - - ms@2.1.3: {} - - mustache@4.2.0: {} - - mz@2.7.0: - dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 - - nanoid@3.3.6: {} - - nanoid@3.3.7: {} - - nanoid@5.0.7: {} - - natural-compare@1.4.0: {} - - node-domexception@1.0.0: {} - - node-ensure@0.0.0: {} - - node-fetch@2.7.0: - dependencies: - whatwg-url: 5.0.0 - - node-releases@2.0.14: {} - - normalize-package-data@2.5.0: - dependencies: - hosted-git-info: 2.8.9 - resolve: 1.22.8 - semver: 5.7.2 - validate-npm-package-license: 3.0.4 - - normalize-path@3.0.0: {} - - npm-run-path@4.0.1: - dependencies: - path-key: 3.1.1 - - npm-run-path@5.3.0: - dependencies: - path-key: 4.0.0 - - nth-check@2.1.1: - dependencies: - boolbase: 1.0.0 - - num-sort@2.1.0: {} - - object-assign@4.1.1: {} - - once@1.4.0: - dependencies: - wrappy: 1.0.2 - - onetime@5.1.2: - dependencies: - mimic-fn: 2.1.0 - - onetime@6.0.0: - dependencies: - mimic-fn: 4.0.0 - - openai@4.47.1: - dependencies: - '@types/node': 18.19.33 - '@types/node-fetch': 2.6.11 - abort-controller: 3.0.0 - agentkeepalive: 4.5.0 - form-data-encoder: 1.7.2 - formdata-node: 4.4.1 - node-fetch: 2.7.0 - web-streams-polyfill: 3.3.3 - transitivePeerDependencies: - - encoding - - openapi-types@12.1.3: {} - - optionator@0.9.4: - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.5 - - p-finally@1.0.0: {} - - p-limit@2.3.0: - dependencies: - p-try: 2.2.0 - - p-limit@3.1.0: - dependencies: - yocto-queue: 0.1.0 - - p-limit@4.0.0: - dependencies: - yocto-queue: 1.0.0 - - p-limit@5.0.0: - dependencies: - yocto-queue: 1.0.0 - - p-locate@4.1.0: - dependencies: - p-limit: 2.3.0 - - p-locate@5.0.0: - dependencies: - p-limit: 3.1.0 - - p-locate@6.0.0: - dependencies: - p-limit: 4.0.0 - - p-queue@6.6.2: - dependencies: - eventemitter3: 4.0.7 - p-timeout: 3.2.0 - - p-retry@4.6.2: - dependencies: - '@types/retry': 0.12.0 - retry: 0.13.1 - - p-timeout@3.2.0: - dependencies: - p-finally: 1.0.0 - - p-try@2.2.0: {} - - parent-module@1.0.1: - dependencies: - callsites: 3.1.0 - - parse-json@5.2.0: - dependencies: - '@babel/code-frame': 7.24.2 - error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 - - parse5-htmlparser2-tree-adapter@7.0.0: - dependencies: - domhandler: 5.0.3 - parse5: 7.1.2 - - parse5@7.1.2: - dependencies: - entities: 4.5.0 - - parseley@0.12.1: - dependencies: - leac: 0.6.0 - peberminta: 0.9.0 - - path-exists@4.0.0: {} - - path-exists@5.0.0: {} - - path-is-absolute@1.0.1: {} - - path-key@3.1.1: {} - - path-key@4.0.0: {} - - path-parse@1.0.7: {} - - path-scurry@1.11.1: - dependencies: - lru-cache: 10.2.2 - minipass: 7.1.1 - - path-type@4.0.0: {} - - pathe@1.1.2: {} - - pathval@1.1.1: {} - - pdf-parse@1.1.1: - dependencies: - debug: 3.2.7 - node-ensure: 0.0.0 - transitivePeerDependencies: - - supports-color - - peberminta@0.9.0: {} - - periscopic@3.1.0: - dependencies: - '@types/estree': 1.0.5 - estree-walker: 3.0.3 - is-reference: 3.0.2 - - picocolors@1.0.1: {} - - picomatch@2.3.1: {} - - pirates@4.0.6: {} - - pkg-types@1.1.1: - dependencies: - confbox: 0.1.7 - mlly: 1.7.0 - pathe: 1.1.2 - - pluralize@8.0.0: {} - - postcss-load-config@4.0.2(postcss@8.4.38): - dependencies: - lilconfig: 3.1.1 - yaml: 2.4.2 - optionalDependencies: - postcss: 8.4.38 - - postcss@8.4.38: - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.1 - source-map-js: 1.2.0 - - prelude-ls@1.2.1: {} - - prettier@3.2.5: {} - - pretty-format@29.7.0: - dependencies: - '@jest/schemas': 29.6.3 - ansi-styles: 5.2.0 - react-is: 18.3.1 - - punycode@2.3.1: {} - - queue-microtask@1.2.3: {} - - react-is@18.3.1: {} - - react@18.3.1: - dependencies: - loose-envify: 1.4.0 - - read-pkg-up@7.0.1: - dependencies: - find-up: 4.1.0 - read-pkg: 5.2.0 - type-fest: 0.8.1 - - read-pkg@5.2.0: - dependencies: - '@types/normalize-package-data': 2.4.4 - normalize-package-data: 2.5.0 - parse-json: 5.2.0 - type-fest: 0.6.0 - - readdirp@3.6.0: - dependencies: - picomatch: 2.3.1 - - regexp-tree@0.1.27: {} - - regjsparser@0.10.0: - dependencies: - jsesc: 0.5.0 - - require-directory@2.1.1: {} - - require-from-string@2.0.2: {} - - resolve-from@4.0.0: {} - - resolve-from@5.0.0: {} - - resolve@1.22.8: - dependencies: - is-core-module: 2.13.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - retry@0.13.1: {} - - reusify@1.0.4: {} - - rimraf@3.0.2: - dependencies: - glob: 7.2.3 - - rollup@4.18.0: - dependencies: - '@types/estree': 1.0.5 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.18.0 - '@rollup/rollup-android-arm64': 4.18.0 - '@rollup/rollup-darwin-arm64': 4.18.0 - '@rollup/rollup-darwin-x64': 4.18.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.18.0 - '@rollup/rollup-linux-arm-musleabihf': 4.18.0 - '@rollup/rollup-linux-arm64-gnu': 4.18.0 - '@rollup/rollup-linux-arm64-musl': 4.18.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0 - '@rollup/rollup-linux-riscv64-gnu': 4.18.0 - '@rollup/rollup-linux-s390x-gnu': 4.18.0 - '@rollup/rollup-linux-x64-gnu': 4.18.0 - '@rollup/rollup-linux-x64-musl': 4.18.0 - '@rollup/rollup-win32-arm64-msvc': 4.18.0 - '@rollup/rollup-win32-ia32-msvc': 4.18.0 - '@rollup/rollup-win32-x64-msvc': 4.18.0 - fsevents: 2.3.3 - - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 - - rw@1.3.3: {} - - safer-buffer@2.1.2: {} - - secure-json-parse@2.7.0: {} - - selderee@0.11.0: - dependencies: - parseley: 0.12.1 - - semver@5.7.2: {} - - semver@7.6.2: {} - - seroval-plugins@1.0.7(seroval@1.0.7): - dependencies: - seroval: 1.0.7 - - seroval@1.0.7: {} - - shebang-command@2.0.0: - dependencies: - shebang-regex: 3.0.0 - - shebang-regex@3.0.0: {} - - siginfo@2.0.0: {} - - signal-exit@3.0.7: {} - - signal-exit@4.1.0: {} - - slash@3.0.0: {} - - solid-js@1.8.17: - dependencies: - csstype: 3.1.3 - seroval: 1.0.7 - seroval-plugins: 1.0.7(seroval@1.0.7) - - solid-swr-store@0.10.7(solid-js@1.8.17)(swr-store@0.10.6): - dependencies: - solid-js: 1.8.17 - swr-store: 0.10.6 - - source-map-js@1.2.0: {} - - source-map@0.8.0-beta.0: - dependencies: - whatwg-url: 7.1.0 - - spdx-correct@3.2.0: - dependencies: - spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.17 - - spdx-exceptions@2.5.0: {} - - spdx-expression-parse@3.0.1: - dependencies: - spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.17 - - spdx-license-ids@3.0.17: {} - - split2@4.2.0: {} - - sswr@2.0.0(svelte@4.2.17): - dependencies: - svelte: 4.2.17 - swrev: 4.0.0 - - stackback@0.0.2: {} - - std-env@3.7.0: {} - - string-width@4.2.3: - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - - string-width@5.1.2: - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.0 - - strip-ansi@6.0.1: - dependencies: - ansi-regex: 5.0.1 - - strip-ansi@7.1.0: - dependencies: - ansi-regex: 6.0.1 - - strip-final-newline@2.0.0: {} - - strip-final-newline@3.0.0: {} - - strip-indent@3.0.0: - dependencies: - min-indent: 1.0.1 - - strip-json-comments@3.1.1: {} - - strip-literal@2.1.0: - dependencies: - js-tokens: 9.0.0 - - sucrase@3.35.0: - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - commander: 4.1.1 - glob: 10.3.16 - lines-and-columns: 1.2.4 - mz: 2.7.0 - pirates: 4.0.6 - ts-interface-checker: 0.1.13 - - supports-color@5.5.0: - dependencies: - has-flag: 3.0.0 - - supports-color@7.2.0: - dependencies: - has-flag: 4.0.0 - - supports-preserve-symlinks-flag@1.0.0: {} - - svelte@4.2.17: - dependencies: - '@ampproject/remapping': 2.3.0 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.25 - '@types/estree': 1.0.5 - acorn: 8.11.3 - aria-query: 5.3.0 - axobject-query: 4.0.0 - code-red: 1.0.4 - css-tree: 2.3.1 - estree-walker: 3.0.3 - is-reference: 3.0.2 - locate-character: 3.0.0 - magic-string: 0.30.10 - periscopic: 3.1.0 - - swr-store@0.10.6: - dependencies: - dequal: 2.0.3 - - swr@2.2.0(react@18.3.1): - dependencies: - react: 18.3.1 - use-sync-external-store: 1.2.2(react@18.3.1) - - swrev@4.0.0: {} - - swrv@1.0.4(vue@3.4.27(typescript@5.4.5)): - dependencies: - vue: 3.4.27(typescript@5.4.5) - - text-extensions@2.4.0: {} - - text-table@0.2.0: {} - - thenify-all@1.6.0: - dependencies: - thenify: 3.3.1 - - thenify@3.3.1: - dependencies: - any-promise: 1.3.0 - - through@2.3.8: {} - - tinybench@2.8.0: {} - - tinypool@0.8.4: {} - - tinyspy@2.2.1: {} - - to-fast-properties@2.0.0: {} - - to-regex-range@5.0.1: - dependencies: - is-number: 7.0.0 - - tr46@0.0.3: {} - - tr46@1.0.1: - dependencies: - punycode: 2.3.1 - - tree-kill@1.2.2: {} - - ts-api-utils@1.3.0(typescript@5.4.5): - dependencies: - typescript: 5.4.5 - - ts-interface-checker@0.1.13: {} - - tsup@8.0.2(postcss@8.4.38)(typescript@5.4.5): - dependencies: - bundle-require: 4.1.0(esbuild@0.19.12) - cac: 6.7.14 - chokidar: 3.6.0 - debug: 4.3.4 - esbuild: 0.19.12 - execa: 5.1.1 - globby: 11.1.0 - joycon: 3.1.1 - postcss-load-config: 4.0.2(postcss@8.4.38) - resolve-from: 5.0.0 - rollup: 4.18.0 - source-map: 0.8.0-beta.0 - sucrase: 3.35.0 - tree-kill: 1.2.2 - optionalDependencies: - postcss: 8.4.38 - typescript: 5.4.5 - transitivePeerDependencies: - - supports-color - - ts-node - - type-check@0.4.0: - dependencies: - prelude-ls: 1.2.1 - - type-detect@4.0.8: {} - - type-fest@0.20.2: {} - - type-fest@0.6.0: {} - - type-fest@0.8.1: {} - - typescript@5.4.5: {} - - ufo@1.5.3: {} - - undici-types@5.26.5: {} - - unicorn-magic@0.1.0: {} - - update-browserslist-db@1.0.16(browserslist@4.23.0): - dependencies: - browserslist: 4.23.0 - escalade: 3.1.2 - picocolors: 1.0.1 - - uri-js@4.4.1: - dependencies: - punycode: 2.3.1 - - use-sync-external-store@1.2.2(react@18.3.1): - dependencies: - react: 18.3.1 - - uuid@9.0.1: {} - - validate-npm-package-license@3.0.4: - dependencies: - spdx-correct: 3.2.0 - spdx-expression-parse: 3.0.1 - - vite-node@1.6.0(@types/node@20.12.12): - dependencies: - cac: 6.7.14 - debug: 4.3.4 - pathe: 1.1.2 - picocolors: 1.0.1 - vite: 5.2.11(@types/node@20.12.12) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - - vite@5.2.11(@types/node@20.12.12): - dependencies: - esbuild: 0.20.2 - postcss: 8.4.38 - rollup: 4.18.0 - optionalDependencies: - '@types/node': 20.12.12 - fsevents: 2.3.3 - - vitest@1.6.0(@types/node@20.12.12): - dependencies: - '@vitest/expect': 1.6.0 - '@vitest/runner': 1.6.0 - '@vitest/snapshot': 1.6.0 - '@vitest/spy': 1.6.0 - '@vitest/utils': 1.6.0 - acorn-walk: 8.3.2 - chai: 4.4.1 - debug: 4.3.4 - execa: 8.0.1 - local-pkg: 0.5.0 - magic-string: 0.30.10 - pathe: 1.1.2 - picocolors: 1.0.1 - std-env: 3.7.0 - strip-literal: 2.1.0 - tinybench: 2.8.0 - tinypool: 0.8.4 - vite: 5.2.11(@types/node@20.12.12) - vite-node: 1.6.0(@types/node@20.12.12) - why-is-node-running: 2.2.2 - optionalDependencies: - '@types/node': 20.12.12 - transitivePeerDependencies: - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - - vue@3.4.27(typescript@5.4.5): - dependencies: - '@vue/compiler-dom': 3.4.27 - '@vue/compiler-sfc': 3.4.27 - '@vue/runtime-dom': 3.4.27 - '@vue/server-renderer': 3.4.27(vue@3.4.27(typescript@5.4.5)) - '@vue/shared': 3.4.27 - optionalDependencies: - typescript: 5.4.5 - - web-streams-polyfill@3.3.3: {} - - web-streams-polyfill@4.0.0-beta.3: {} - - webidl-conversions@3.0.1: {} - - webidl-conversions@4.0.2: {} - - whatwg-url@5.0.0: - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - - whatwg-url@7.1.0: - dependencies: - lodash.sortby: 4.7.0 - tr46: 1.0.1 - webidl-conversions: 4.0.2 - - which@2.0.2: - dependencies: - isexe: 2.0.0 - - why-is-node-running@2.2.2: - dependencies: - siginfo: 2.0.0 - stackback: 0.0.2 - - word-wrap@1.2.5: {} - - wrap-ansi@7.0.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - wrap-ansi@8.1.0: - dependencies: - ansi-styles: 6.2.1 - string-width: 5.1.2 - strip-ansi: 7.1.0 - - wrappy@1.0.2: {} - - y18n@5.0.8: {} - - yaml@2.4.2: {} - - yargs-parser@21.1.1: {} - - yargs@17.7.2: - dependencies: - cliui: 8.0.1 - escalade: 3.1.2 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 21.1.1 - - yocto-queue@0.1.0: {} - - yocto-queue@1.0.0: {} - - zod-to-json-schema@3.22.5(zod@3.23.8): - dependencies: - zod: 3.23.8 - - zod-to-json-schema@3.23.0(zod@3.23.8): - dependencies: - zod: 3.23.8 - - zod@3.23.8: {} diff --git a/src/services/retrieval.ts b/src/services/retrieval.ts index 4304dde..3d3d099 100644 --- a/src/services/retrieval.ts +++ b/src/services/retrieval.ts @@ -186,7 +186,6 @@ export class RetrievalService { const splitter = RecursiveCharacterTextSplitter.fromLanguage("html", input.opts ?? {}); const transformer = new HtmlToTextTransformer(); - //@ts-expect-error langchain type issue const sequence = splitter.pipe(transformer); const newDocuments = await sequence.invoke(documents); From 7edb7cbf8ad728641f85a9078df307a023f3c235 Mon Sep 17 00:00:00 2001 From: ogzhanolguncu Date: Fri, 24 May 2024 14:26:38 +0300 Subject: [PATCH 3/6] feat: abstract away all the loading and transforming logic for files --- src/custom-llm.ts | 106 -------------------- src/file-loader.ts | 131 ++++++++++++++----------- src/rag-chat-base.ts | 14 +-- src/rag-chat.test.ts | 10 +- src/rag-chat.ts | 8 +- src/services/database.ts | 136 ++++++++++++++++++++++++++ src/services/index.ts | 2 +- src/services/retrieval.ts | 198 -------------------------------------- 8 files changed, 228 insertions(+), 377 deletions(-) delete mode 100644 src/custom-llm.ts create mode 100644 src/services/database.ts delete mode 100644 src/services/retrieval.ts diff --git a/src/custom-llm.ts b/src/custom-llm.ts deleted file mode 100644 index 6f41387..0000000 --- a/src/custom-llm.ts +++ /dev/null @@ -1,106 +0,0 @@ -/* eslint-disable @typescript-eslint/no-magic-numbers */ -import { LLM, type BaseLLMParams } from "@langchain/core/language_models/llms"; -import { type CallbackManagerForLLMRun } from "@langchain/core/callbacks/manager"; -import { GenerationChunk } from "@langchain/core/outputs"; -import { type OpenAIClient } from "@langchain/openai"; - -// eslint-disable-next-line @typescript-eslint/consistent-type-definitions -export interface UpstashLLMParameters extends BaseLLMParams { - /** Writer API key */ - apiKey?: string; - - /** Model to use */ - model?: string; - - /** Sampling temperature to use */ - temperature?: number; - - /** Maximum number of tokens to generate in the completion. */ - maxTokens?: number; - - /** Total probability mass of tokens to consider at each step. */ - topP?: number; - - /** Count of chars in a stream chunk */ - n?: number; -} - -export default class UpstashLLM extends LLM { - temperature = 0.7; - - maxTokens = 256; - - topP = 1; - - frequencyPenalty = 0; - - presencePenalty = 0; - - n = 1; - - model = "mistralai/Mistral-7B-Instruct-v0.2"; - - batchSize = 20; - - apiKey: string; - - constructor(fields: UpstashLLMParameters) { - super({}); - if (!fields.apiKey) { - throw new Error("apiKey is required"); - } - - this.topP = fields.topP ?? this.topP; - this.temperature = fields.temperature ?? this.temperature; - this.maxTokens = fields.maxTokens ?? this.maxTokens; - this.model = fields.model ?? this.model; - this.n = fields.n ?? this.n; - this.apiKey = fields.apiKey; - } - - _llmType() { - return "Upstash LLM"; - } - - async _call(prompt: string) { - const url = `${process.env.UPSTASH_MODELS_BACKEND_URL}/v1/completions`; - const data = { - prompt: prompt, - model: this.model, - max_tokens: this.maxTokens, - top_p: this.topP, - temperature: this.temperature, - frequency_penalty: this.frequencyPenalty, - }; - - const response = await fetch(url, { - method: "POST", - body: JSON.stringify(data), - headers: { - Authorization: `Bearer ${this.apiKey}`, - Accept: "application/json", - "Content-Type": "application/json", - }, - }); - - const object = await response.json(); - - const result = object as OpenAIClient.Completions.Completion; - - return result.choices[0].text; - } - - async *_streamResponseChunks( - prompt: string, - options: this["ParsedCallOptions"], - runManager?: CallbackManagerForLLMRun - ): AsyncGenerator { - for (const letter of prompt.slice(0, this.n)) { - yield new GenerationChunk({ - text: letter, - }); - - await runManager?.handleLLMNewToken(letter); - } - } -} diff --git a/src/file-loader.ts b/src/file-loader.ts index ea88290..bfb420b 100644 --- a/src/file-loader.ts +++ b/src/file-loader.ts @@ -1,91 +1,110 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable @typescript-eslint/no-unsafe-argument */ -import { - CheerioWebBaseLoader, - type WebBaseLoaderParams, -} from "@langchain/community/document_loaders/web/cheerio"; -import type { RecursiveCharacterTextSplitterParams } from "langchain/text_splitter"; -import { PDFLoader } from "@langchain/community/document_loaders/fs/pdf"; -import type { Branded } from "./types"; import { CSVLoader } from "@langchain/community/document_loaders/fs/csv"; +import { PDFLoader } from "@langchain/community/document_loaders/fs/pdf"; +import { CheerioWebBaseLoader } from "@langchain/community/document_loaders/web/cheerio"; +import { HtmlToTextTransformer } from "@langchain/community/document_transformers/html_to_text"; +import type { Document } from "@langchain/core/documents"; import { TextLoader } from "langchain/document_loaders/fs/text"; +import { RecursiveCharacterTextSplitter } from "langchain/text_splitter"; +import { nanoid } from "nanoid"; +import { DEFAULT_METADATA_KEY } from "./constants"; +import type { DatasWithFileSource, FilePath, URL } from "./services/database"; -type IndexUpsertPayload = { input: number[]; id?: string | number; metadata?: string }; -type FilePath = Branded; -type URL = Branded; - -type DatasWithFileSource = - | { - dataType: "pdf"; - fileSource: FilePath | Blob; - opts?: Partial; - pdfOpts?: { parsedItemSeparator?: string; splitPages?: boolean }; - } - | { - dataType: "csv"; - fileSource: FilePath | Blob; - csvOpts?: { column?: string; separator?: string }; - } - | { - dataType: "text-file"; - fileSource: FilePath | Blob; - opts?: Partial; - } - | ( - | { - dataType: "html"; - fileSource: URL; - htmlOpts?: WebBaseLoaderParams; - opts: Partial; - } - | { - dataType: "html"; - fileSource: FilePath | Blob; - opts?: Partial; - } - ); - -export type AddContextPayload = - | { dataType: "text"; data: string; id?: string | number } - | { dataType: "embedding"; data: IndexUpsertPayload[] } - | DatasWithFileSource; - -export class FileLoader { +export class FileDataLoader { private config: Pick; + private metadataKey: string; - constructor(config: Pick) { + constructor(config: Pick, dataKey?: string) { this.config = config; + this.metadataKey = dataKey ?? DEFAULT_METADATA_KEY; } - // eslint-disable-next-line @typescript-eslint/no-explicit-any async loadFile(args: any) { const loader = this.createLoader(args); - return loader.load(); + const documents = await loader.load(); + + return (args: any) => this.transformDocument(documents, args); } - //TODO: Add transforming methods here - // eslint-disable-next-line @typescript-eslint/no-explicit-any private createLoader(args: any) { switch (this.config.dataType) { case "pdf": { - return new PDFLoader(this.config.fileSource, args); + return new PDFLoader( + this.config.fileSource, + args satisfies Extract + ); } + case "csv": { - return new CSVLoader(this.config.fileSource, args); + return new CSVLoader( + this.config.fileSource, + args satisfies Extract + ); } + case "text-file": { return new TextLoader(this.config.fileSource); } + case "html": { return this.isURL(this.config.fileSource) ? new CheerioWebBaseLoader(this.config.fileSource) : new TextLoader(this.config.fileSource); } + default: { throw new Error(`Unsupported data type: ${this.config.dataType}`); } } } - private isURL(source: FilePath | Blob | URL): source is URL { + + private isURL(source: FilePath | Blob): source is URL { return typeof source === "string" && source.startsWith("http"); } + + private async transformDocument(documents: Document[], args: any) { + switch (this.config.dataType) { + case "pdf": { + const splitter = new RecursiveCharacterTextSplitter(args); + const splittedDocuments = await splitter.splitDocuments(documents); + + return mapDocumentsIntoInsertPayload(splittedDocuments, this.metadataKey); + } + + case "csv": { + return mapDocumentsIntoInsertPayload(documents, this.metadataKey); + } + + case "text-file": { + const splitter = new RecursiveCharacterTextSplitter(args); + + const splittedDocuments = await splitter.splitDocuments(documents); + return mapDocumentsIntoInsertPayload(splittedDocuments, this.metadataKey); + } + + case "html": { + const splitter = RecursiveCharacterTextSplitter.fromLanguage("html", args); + + const transformer = new HtmlToTextTransformer(); + const sequence = splitter.pipe(transformer); + + const newDocuments = await sequence.invoke(documents); + + return mapDocumentsIntoInsertPayload(newDocuments, this.metadataKey); + } + + default: { + throw new Error(`Unsupported data type: ${this.config.dataType}`); + } + } + + function mapDocumentsIntoInsertPayload(splittedDocuments: Document[], metadataKey: string) { + return splittedDocuments.map((document) => ({ + data: document.pageContent, + metadata: { [metadataKey]: document.pageContent }, + id: nanoid(), + })); + } + } } diff --git a/src/rag-chat-base.ts b/src/rag-chat-base.ts index cc8b766..6c8ca1b 100644 --- a/src/rag-chat-base.ts +++ b/src/rag-chat-base.ts @@ -7,24 +7,24 @@ import type { PrepareChatResult, ChatOptions } from "./types"; import { sanitizeQuestion, formatChatHistory } from "./utils"; import type { BaseLanguageModelInterface } from "@langchain/core/language_models/base"; import type { PromptTemplate } from "@langchain/core/prompts"; -import type { HistoryService, RetrievePayload } from "./services"; -import type { RetrievalService } from "./services/retrieval"; +import type { HistoryService, VectorPayload } from "./services"; +import type { VectorService } from "./services/database"; type CustomInputValues = { chat_history?: BaseMessage[]; question: string; context: string }; export class RAGChatBase { - protected retrievalService: RetrievalService; + protected vectorService: VectorService; protected historyService: HistoryService; #model: BaseLanguageModelInterface; #prompt: PromptTemplate; constructor( - retrievalService: RetrievalService, + retrievalService: VectorService, historyService: HistoryService, config: { model: BaseLanguageModelInterface; prompt: PromptTemplate } ) { - this.retrievalService = retrievalService; + this.vectorService = retrievalService; this.historyService = historyService; this.#model = config.model; @@ -36,9 +36,9 @@ export class RAGChatBase { similarityThreshold, topK, metadataKey, - }: RetrievePayload): Promise { + }: VectorPayload): Promise { const question = sanitizeQuestion(input); - const facts = await this.retrievalService.retrieveFromVectorDb({ + const facts = await this.vectorService.retrieve({ question, similarityThreshold, metadataKey, diff --git a/src/rag-chat.test.ts b/src/rag-chat.test.ts index 421a12a..cc4cff6 100644 --- a/src/rag-chat.test.ts +++ b/src/rag-chat.test.ts @@ -363,12 +363,12 @@ describe("RAG Chat addContext using HTML", () => { }); await awaitUntilIndexed(vector); - // const result = (await ragChat.chat("Wwhats the author of The Wonderful Wizard of Oz?", { - // stream: false, - // metadataKey: "text", - // })) as AIMessage; + const result = (await ragChat.chat("Whats the author of The Wonderful Wizard of Oz?", { + stream: false, + metadataKey: "text", + })) as AIMessage; - // expect(result.content).toContain("Frank"); + expect(result.content).toContain("Frank"); }, { timeout: 30_000 } ); diff --git a/src/rag-chat.ts b/src/rag-chat.ts index 95e7cc4..74d70b0 100644 --- a/src/rag-chat.ts +++ b/src/rag-chat.ts @@ -9,7 +9,7 @@ import { RatelimitUpstashError } from "./error/ratelimit"; import type { Config } from "./config"; import { RAGChatBase } from "./rag-chat-base"; import type { AddContextOptions, AddContextPayload } from "./services"; -import { HistoryService, RetrievalService } from "./services"; +import { HistoryService, VectorService } from "./services"; import { RateLimitService } from "./services/ratelimit"; import type { ChatOptions } from "./types"; import { appendDefaultsIfNeeded } from "./utils"; @@ -21,13 +21,13 @@ export class RAGChat extends RAGChatBase { const { vector: index, redis } = config; const historyService = new HistoryService(redis); - const retrievalService = new RetrievalService(index); + const vectorService = new VectorService(index); const ratelimitService = new RateLimitService(config.ratelimit); if (!config.model) { throw new UpstashModelError("Model can not be undefined!"); } - super(retrievalService, historyService, { + super(vectorService, historyService, { model: config.model, prompt: config.prompt ?? QA_PROMPT_TEMPLATE, }); @@ -94,7 +94,7 @@ export class RAGChat extends RAGChatBase { * ``` */ async addContext(context: AddContextPayload, options?: AddContextOptions) { - const retrievalServiceStatus = await this.retrievalService.addDataToVectorDb(context, options); + const retrievalServiceStatus = await this.vectorService.save(context, options); return retrievalServiceStatus === "Success" ? "OK" : "NOT-OK"; } diff --git a/src/services/database.ts b/src/services/database.ts new file mode 100644 index 0000000..bab5227 --- /dev/null +++ b/src/services/database.ts @@ -0,0 +1,136 @@ +import type { WebBaseLoaderParams } from "@langchain/community/document_loaders/web/cheerio"; +import type { Index } from "@upstash/vector"; +import type { RecursiveCharacterTextSplitterParams } from "langchain/text_splitter"; +import { nanoid } from "nanoid"; +import { DEFAULT_METADATA_KEY, DEFAULT_SIMILARITY_THRESHOLD, DEFAULT_TOP_K } from "../constants"; +import { FileDataLoader } from "../file-loader"; +import { formatFacts } from "../utils"; + +export type IndexUpsertPayload = { input: number[]; id?: string | number; metadata?: string }; +export type FilePath = string; +export type URL = string; + +export type DatasWithFileSource = + | { + dataType: "pdf"; + fileSource: FilePath | Blob; + opts?: Partial; + pdfOpts?: { parsedItemSeparator?: string; splitPages?: boolean }; + } + | { + dataType: "csv"; + fileSource: FilePath | Blob; + csvOpts?: { column?: string; separator?: string }; + } + | { + dataType: "text-file"; + fileSource: FilePath | Blob; + opts?: Partial; + } + | ( + | { + dataType: "html"; + fileSource: URL; + htmlOpts?: WebBaseLoaderParams; + opts: Partial; + } + | { + dataType: "html"; + fileSource: FilePath | Blob; + opts?: Partial; + } + ); + +export type AddContextPayload = + | { dataType: "text"; data: string; id?: string | number } + | { dataType: "embedding"; data: IndexUpsertPayload[] } + | DatasWithFileSource; + +export type AddContextOptions = { + metadataKey?: string; +}; + +export type VectorPayload = { + question: string; + similarityThreshold: number; + metadataKey: string; + topK: number; +}; + +export class VectorService { + private index: Index; + constructor(index: Index) { + this.index = index; + } + + /** + * A method that allows you to query the vector database with plain text. + * It takes care of the text-to-embedding conversion by itself. + * Additionally, it lets consumers pass various options to tweak the output. + */ + async retrieve({ + question, + similarityThreshold = DEFAULT_SIMILARITY_THRESHOLD, + metadataKey = DEFAULT_METADATA_KEY, + topK = DEFAULT_TOP_K, + }: VectorPayload): Promise { + const index = this.index; + const result = await index.query>({ + data: question, + topK, + includeMetadata: true, + includeVectors: false, + }); + + const allValuesUndefined = result.every( + (embedding) => embedding.metadata?.[metadataKey] === undefined + ); + + if (allValuesUndefined) { + throw new TypeError(` + Query to the vector store returned ${result.length} vectors but none had "${metadataKey}" field in their metadata. + Text of your vectors should be in the "${metadataKey}" field in the metadata for the RAG Chat. + `); + } + + const facts = result + .filter((x) => x.score >= similarityThreshold) + .map( + (embedding, index) => `- Context Item ${index}: ${embedding.metadata?.[metadataKey] ?? ""}` + ); + return formatFacts(facts); + } + + /** + * A method that allows you to add various data types into a vector database. + * It supports plain text, embeddings, PDF, HTML, Text file and CSV. Additionally, it handles text-splitting for CSV, PDF and Text file. + */ + async save(input: AddContextPayload, options?: AddContextOptions): Promise { + const { metadataKey = "text" } = options ?? {}; + + if (input.dataType === "text") { + return this.index.upsert({ + data: input.data, + id: input.id ?? nanoid(), + metadata: { [metadataKey]: input.data }, + }); + } else if (input.dataType === "embedding") { + const items = input.data.map((context) => { + return { + vector: context.input, + id: context.id ?? nanoid(), + metadata: { [metadataKey]: context.metadata }, + }; + }); + + return this.index.upsert(items); + } else { + const fileArgs = "pdfOpts" in input ? input.pdfOpts : "csvOpts" in input ? input.csvOpts : {}; + const transformOrSplit = await new FileDataLoader(input, metadataKey).loadFile(fileArgs); + + const transformArgs = "opts" in input ? input.opts : {}; + const transformDocuments = await transformOrSplit(transformArgs); + await this.index.upsert(transformDocuments); + } + } +} diff --git a/src/services/index.ts b/src/services/index.ts index 7357a41..39bba42 100644 --- a/src/services/index.ts +++ b/src/services/index.ts @@ -1,2 +1,2 @@ export * from "./history"; -export * from "./retrieval"; +export * from "./database"; diff --git a/src/services/retrieval.ts b/src/services/retrieval.ts deleted file mode 100644 index 3d3d099..0000000 --- a/src/services/retrieval.ts +++ /dev/null @@ -1,198 +0,0 @@ -import { nanoid } from "nanoid"; -import { DEFAULT_METADATA_KEY, DEFAULT_SIMILARITY_THRESHOLD, DEFAULT_TOP_K } from "../constants"; -import { formatFacts } from "../utils"; -import type { Index } from "@upstash/vector"; -import { PDFLoader } from "@langchain/community/document_loaders/fs/pdf"; -import type { RecursiveCharacterTextSplitterParams } from "langchain/text_splitter"; -import { CSVLoader } from "@langchain/community/document_loaders/fs/csv"; -import { TextLoader } from "langchain/document_loaders/fs/text"; -import { RecursiveCharacterTextSplitter } from "langchain/text_splitter"; -import { HtmlToTextTransformer } from "@langchain/community/document_transformers/html_to_text"; -import type { WebBaseLoaderParams } from "@langchain/community/document_loaders/web/cheerio"; - -type IndexUpsertPayload = { input: number[]; id?: string | number; metadata?: string }; -type FilePath = string; -type URL = string; - -export type AddContextPayload = - | { dataType: "text"; data: string; id?: string | number } - | { dataType: "embedding"; data: IndexUpsertPayload[] } - | { - dataType: "pdf"; - fileSource: FilePath | Blob; - opts?: Partial; - pdfOpts?: { parsedItemSeparator?: string; splitPages?: boolean }; - } - | { - dataType: "csv"; - fileSource: FilePath | Blob; - csvOpts?: { column?: string; separator?: string }; - } - | { - dataType: "text-file"; - fileSource: FilePath | Blob; - opts?: Partial; - } - | ( - | { - dataType: "html"; - fileSource: URL; - htmlOpts?: WebBaseLoaderParams; - opts: Partial; - } - | { - dataType: "html"; - fileSource: FilePath | Blob; - opts?: Partial; - } - ); - -export type AddContextOptions = { - metadataKey?: string; -}; - -export type RetrievePayload = { - question: string; - similarityThreshold: number; - metadataKey: string; - topK: number; -}; - -export class RetrievalService { - private index: Index; - constructor(index: Index) { - this.index = index; - } - - /** - * A method that allows you to query the vector database with plain text. - * It takes care of the text-to-embedding conversion by itself. - * Additionally, it lets consumers pass various options to tweak the output. - */ - async retrieveFromVectorDb({ - question, - similarityThreshold = DEFAULT_SIMILARITY_THRESHOLD, - metadataKey = DEFAULT_METADATA_KEY, - topK = DEFAULT_TOP_K, - }: RetrievePayload): Promise { - const index = this.index; - const result = await index.query>({ - data: question, - topK, - includeMetadata: true, - includeVectors: false, - }); - - const allValuesUndefined = result.every( - (embedding) => embedding.metadata?.[metadataKey] === undefined - ); - - if (allValuesUndefined) { - throw new TypeError(` - Query to the vector store returned ${result.length} vectors but none had "${metadataKey}" field in their metadata. - Text of your vectors should be in the "${metadataKey}" field in the metadata for the RAG Chat. - `); - } - - const facts = result - .filter((x) => x.score >= similarityThreshold) - .map( - (embedding, index) => `- Context Item ${index}: ${embedding.metadata?.[metadataKey] ?? ""}` - ); - return formatFacts(facts); - } - - /** - * A method that allows you to add various data types into a vector database. - * It supports plain text, embeddings, PDF, and CSV. Additionally, it handles text-splitting for CSV and PDF. - */ - async addDataToVectorDb( - input: AddContextPayload, - options?: AddContextOptions - ): Promise { - const { metadataKey = "text" } = options ?? {}; - - switch (input.dataType) { - case "text": { - return this.index.upsert({ - data: input.data, - id: input.id ?? nanoid(), - metadata: { [metadataKey]: input.data }, - }); - } - - case "embedding": { - const items = input.data.map((context) => { - return { - vector: context.input, - id: context.id ?? nanoid(), - metadata: { [metadataKey]: context.metadata }, - }; - }); - - return this.index.upsert(items); - } - - case "pdf": { - const { parsedItemSeparator, splitPages } = input.pdfOpts ?? {}; - - const loader = new PDFLoader(input.fileSource, { parsedItemSeparator, splitPages }); - const documents = await loader.load(); - - // Users will be able to pass options like chunkSize,chunkOverlap when calling addContext from RAGChat instance directly. - const splitter = new RecursiveCharacterTextSplitter(input.opts); - - const splittedDocuments = await splitter.splitDocuments(documents); - const formattedDocuments = splittedDocuments.map((document) => ({ - data: document.pageContent, - metadata: { [metadataKey]: document.pageContent }, - id: nanoid(), - })); - - return this.index.upsert(formattedDocuments); - } - - case "csv": { - const { column, separator } = input.csvOpts ?? {}; - - const loader = new CSVLoader(input.fileSource, { column, separator }); - const documents = await loader.load(); - const formattedDocuments = documents.map((document) => ({ - data: document.pageContent, - id: nanoid(), - metadata: { [metadataKey]: document.pageContent }, - })); - return this.index.upsert(formattedDocuments); - } - - case "text-file": { - const loader = new TextLoader(input.fileSource); - const documents = await loader.load(); - const splitter = new RecursiveCharacterTextSplitter(input.opts); - - const splittedDocuments = await splitter.splitDocuments(documents); - const formattedDocuments = splittedDocuments.map((document) => ({ - data: document.pageContent, - metadata: { [metadataKey]: document.pageContent }, - id: nanoid(), - })); - - return this.index.upsert(formattedDocuments); - } - - case "html": { - const loader = new TextLoader(input.fileSource); - const documents = await loader.load(); - const splitter = RecursiveCharacterTextSplitter.fromLanguage("html", input.opts ?? {}); - - const transformer = new HtmlToTextTransformer(); - const sequence = splitter.pipe(transformer); - - const newDocuments = await sequence.invoke(documents); - - // eslint-disable-next-line no-console - console.log(newDocuments); - } - } - } -} From ad4f971dfbe78e23f150509a96b042fe8b75c7af Mon Sep 17 00:00:00 2001 From: ogzhanolguncu Date: Fri, 24 May 2024 15:31:00 +0300 Subject: [PATCH 4/6] fix: ai sdk changes --- src/rag-chat-base.ts | 56 +++++++++++++++++++++++--------------------- src/rag-chat.ts | 5 ++-- 2 files changed, 31 insertions(+), 30 deletions(-) diff --git a/src/rag-chat-base.ts b/src/rag-chat-base.ts index 6c8ca1b..db2fa94 100644 --- a/src/rag-chat-base.ts +++ b/src/rag-chat-base.ts @@ -1,14 +1,15 @@ -import type { Callbacks } from "@langchain/core/callbacks/manager"; +/* eslint-disable @typescript-eslint/no-explicit-any */ import type { AIMessage, BaseMessage } from "@langchain/core/messages"; +import type { RunnableConfig } from "@langchain/core/runnables"; import { RunnableSequence, RunnableWithMessageHistory } from "@langchain/core/runnables"; -import { StreamingTextResponse, LangChainStream } from "ai"; +import { LangChainAdapter, StreamingTextResponse } from "ai"; -import type { PrepareChatResult, ChatOptions } from "./types"; -import { sanitizeQuestion, formatChatHistory } from "./utils"; import type { BaseLanguageModelInterface } from "@langchain/core/language_models/base"; import type { PromptTemplate } from "@langchain/core/prompts"; import type { HistoryService, VectorPayload } from "./services"; import type { VectorService } from "./services/database"; +import type { ChatOptions, PrepareChatResult } from "./types"; +import { formatChatHistory, sanitizeQuestion } from "./utils"; type CustomInputValues = { chat_history?: BaseMessage[]; question: string; context: string }; @@ -47,22 +48,8 @@ export class RAGChatBase { return { question, facts }; } - protected streamingChainCall = ( - chatOptions: ChatOptions, - question: string, - facts: string - ): StreamingTextResponse => { - const { stream, handlers } = LangChainStream(); - void this.chainCall(chatOptions, question, facts, [handlers]); - return new StreamingTextResponse(stream, {}); - }; - - protected chainCall( - chatOptions: ChatOptions, - question: string, - facts: string, - handlers?: Callbacks - ): Promise { + /** This method first gets required params, then returns another function depending on streaming param input */ + chainCall(chatOptions: ChatOptions, question: string, facts: string) { const formattedHistoryChain = RunnableSequence.from([ { chat_history: (input) => formatChatHistory(input.chat_history ?? []), @@ -83,16 +70,31 @@ export class RAGChatBase { inputMessagesKey: "question", historyMessagesKey: "chat_history", }); - - return chainWithMessageHistory.invoke( - { + const runnableArgs = { + input: { question, context: facts, }, - { - callbacks: handlers ?? undefined, + options: { configurable: { sessionId: chatOptions.sessionId }, - } - ) as Promise; + }, + }; + + return (streaming: boolean) => + streaming + ? this.streamingChainCall(chainWithMessageHistory, runnableArgs) + : (chainWithMessageHistory.invoke( + runnableArgs.input, + runnableArgs.options + ) as Promise); + } + + protected async streamingChainCall( + runnable: RunnableWithMessageHistory, + runnableArgs: { input: CustomInputValues; options?: Partial | undefined } + ) { + const stream = await runnable.stream(runnableArgs.input, runnableArgs.options); + const wrappedStream = LangChainAdapter.toAIStream(stream); + return new StreamingTextResponse(wrappedStream, {}); } } diff --git a/src/rag-chat.ts b/src/rag-chat.ts index 74d70b0..bb87086 100644 --- a/src/rag-chat.ts +++ b/src/rag-chat.ts @@ -70,9 +70,8 @@ export class RAGChat extends RAGChatBase { // Calls LLM service with organized prompt. Prompt holds chat_history, facts gathered from vector db and sanitized question. // Allows either streaming call via Vercel AI SDK or non-streaming call - return options.stream - ? this.streamingChainCall(options_, question, facts) - : this.chainCall(options_, question, facts); + const chainCall = this.chainCall(options_, question, facts); + return chainCall(options.stream); } /** From d9b0ef1d8a5c68ff9875f3adab196be2900047e6 Mon Sep 17 00:00:00 2001 From: ogzhanolguncu Date: Fri, 24 May 2024 15:40:10 +0300 Subject: [PATCH 5/6] chore: organize files --- .husky/commit-msg | 4 ++++ index.ts | 5 ++++- package.json | 2 +- src/{services => }/database.ts | 8 ++++---- src/file-loader.ts | 2 +- .../history/in-memory-custom-history.test.ts | 0 .../history/in-memory-custom-history.ts | 0 src/{services => }/history/index.ts | 4 ++-- src/{services => }/history/redis-custom-history.ts | 0 src/rag-chat-base.ts | 14 +++++++------- src/rag-chat.ts | 11 ++++++----- src/{services => }/ratelimit.ts | 0 src/services/index.ts | 2 -- tsconfig.json | 3 ++- 14 files changed, 31 insertions(+), 24 deletions(-) create mode 100644 .husky/commit-msg rename src/{services => }/database.ts (95%) rename src/{services => }/history/in-memory-custom-history.test.ts (100%) rename src/{services => }/history/in-memory-custom-history.ts (100%) rename src/{services => }/history/index.ts (93%) rename src/{services => }/history/redis-custom-history.ts (100%) rename src/{services => }/ratelimit.ts (100%) delete mode 100644 src/services/index.ts diff --git a/.husky/commit-msg b/.husky/commit-msg new file mode 100644 index 0000000..f0ae51a --- /dev/null +++ b/.husky/commit-msg @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +bun --no -- commitlint --edit "" \ No newline at end of file diff --git a/index.ts b/index.ts index e96ba83..52b2aa7 100644 --- a/index.ts +++ b/index.ts @@ -1,3 +1,6 @@ export * from "./src/rag-chat"; -export * from "./src/services"; +export * from "./src/history"; +export * from "./src/database"; +export * from "./src/ratelimit"; export * from "./src/error"; +export * from "./src/types"; diff --git a/package.json b/package.json index 44eb9f8..a3c231e 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "type": "git", "url": "https://github.com/upstash/rag-chat" }, - "license": "ISC", + "license": "MIT", "devDependencies": { "@commitlint/cli": "^19.2.2", "@commitlint/config-conventional": "^19.2.2", diff --git a/src/services/database.ts b/src/database.ts similarity index 95% rename from src/services/database.ts rename to src/database.ts index bab5227..c3866c3 100644 --- a/src/services/database.ts +++ b/src/database.ts @@ -2,9 +2,9 @@ import type { WebBaseLoaderParams } from "@langchain/community/document_loaders/ import type { Index } from "@upstash/vector"; import type { RecursiveCharacterTextSplitterParams } from "langchain/text_splitter"; import { nanoid } from "nanoid"; -import { DEFAULT_METADATA_KEY, DEFAULT_SIMILARITY_THRESHOLD, DEFAULT_TOP_K } from "../constants"; -import { FileDataLoader } from "../file-loader"; -import { formatFacts } from "../utils"; +import { DEFAULT_SIMILARITY_THRESHOLD, DEFAULT_METADATA_KEY, DEFAULT_TOP_K } from "./constants"; +import { FileDataLoader } from "./file-loader"; +import { formatFacts } from "./utils"; export type IndexUpsertPayload = { input: number[]; id?: string | number; metadata?: string }; export type FilePath = string; @@ -57,7 +57,7 @@ export type VectorPayload = { topK: number; }; -export class VectorService { +export class Database { private index: Index; constructor(index: Index) { this.index = index; diff --git a/src/file-loader.ts b/src/file-loader.ts index bfb420b..85b9882 100644 --- a/src/file-loader.ts +++ b/src/file-loader.ts @@ -9,7 +9,7 @@ import { TextLoader } from "langchain/document_loaders/fs/text"; import { RecursiveCharacterTextSplitter } from "langchain/text_splitter"; import { nanoid } from "nanoid"; import { DEFAULT_METADATA_KEY } from "./constants"; -import type { DatasWithFileSource, FilePath, URL } from "./services/database"; +import type { DatasWithFileSource, FilePath, URL } from "./database"; export class FileDataLoader { private config: Pick; diff --git a/src/services/history/in-memory-custom-history.test.ts b/src/history/in-memory-custom-history.test.ts similarity index 100% rename from src/services/history/in-memory-custom-history.test.ts rename to src/history/in-memory-custom-history.test.ts diff --git a/src/services/history/in-memory-custom-history.ts b/src/history/in-memory-custom-history.ts similarity index 100% rename from src/services/history/in-memory-custom-history.ts rename to src/history/in-memory-custom-history.ts diff --git a/src/services/history/index.ts b/src/history/index.ts similarity index 93% rename from src/services/history/index.ts rename to src/history/index.ts index 5c7fd23..b9c49c7 100644 --- a/src/services/history/index.ts +++ b/src/history/index.ts @@ -1,11 +1,11 @@ import type { Redis } from "@upstash/redis"; import { CustomInMemoryChatMessageHistory } from "./in-memory-custom-history"; import { CustomUpstashRedisChatMessageHistory } from "./redis-custom-history"; -import { InternalUpstashError } from "../../error"; +import { InternalUpstashError } from "../error"; type GetHistory = { sessionId: string; length?: number; sessionTTL?: number }; -export class HistoryService { +export class History { private redis?: Redis; private inMemoryChatHistory?: CustomInMemoryChatMessageHistory; diff --git a/src/services/history/redis-custom-history.ts b/src/history/redis-custom-history.ts similarity index 100% rename from src/services/history/redis-custom-history.ts rename to src/history/redis-custom-history.ts diff --git a/src/rag-chat-base.ts b/src/rag-chat-base.ts index db2fa94..0aedf56 100644 --- a/src/rag-chat-base.ts +++ b/src/rag-chat-base.ts @@ -6,26 +6,26 @@ import { LangChainAdapter, StreamingTextResponse } from "ai"; import type { BaseLanguageModelInterface } from "@langchain/core/language_models/base"; import type { PromptTemplate } from "@langchain/core/prompts"; -import type { HistoryService, VectorPayload } from "./services"; -import type { VectorService } from "./services/database"; import type { ChatOptions, PrepareChatResult } from "./types"; import { formatChatHistory, sanitizeQuestion } from "./utils"; +import type { Database, VectorPayload } from "./database"; +import type { History } from "./history"; type CustomInputValues = { chat_history?: BaseMessage[]; question: string; context: string }; export class RAGChatBase { - protected vectorService: VectorService; - protected historyService: HistoryService; + protected vectorService: Database; + protected historyService: History; #model: BaseLanguageModelInterface; #prompt: PromptTemplate; constructor( - retrievalService: VectorService, - historyService: HistoryService, + vectorService: Database, + historyService: History, config: { model: BaseLanguageModelInterface; prompt: PromptTemplate } ) { - this.vectorService = retrievalService; + this.vectorService = vectorService; this.historyService = historyService; this.#model = config.model; diff --git a/src/rag-chat.ts b/src/rag-chat.ts index bb87086..5a25d38 100644 --- a/src/rag-chat.ts +++ b/src/rag-chat.ts @@ -8,11 +8,12 @@ import { RatelimitUpstashError } from "./error/ratelimit"; import type { Config } from "./config"; import { RAGChatBase } from "./rag-chat-base"; -import type { AddContextOptions, AddContextPayload } from "./services"; -import { HistoryService, VectorService } from "./services"; -import { RateLimitService } from "./services/ratelimit"; +import { RateLimitService } from "./ratelimit"; import type { ChatOptions } from "./types"; import { appendDefaultsIfNeeded } from "./utils"; +import type { AddContextOptions, AddContextPayload } from "./database"; +import { Database } from "./database"; +import { History } from "./history"; export class RAGChat extends RAGChatBase { #ratelimitService: RateLimitService; @@ -20,8 +21,8 @@ export class RAGChat extends RAGChatBase { constructor(config: Config) { const { vector: index, redis } = config; - const historyService = new HistoryService(redis); - const vectorService = new VectorService(index); + const historyService = new History(redis); + const vectorService = new Database(index); const ratelimitService = new RateLimitService(config.ratelimit); if (!config.model) { diff --git a/src/services/ratelimit.ts b/src/ratelimit.ts similarity index 100% rename from src/services/ratelimit.ts rename to src/ratelimit.ts diff --git a/src/services/index.ts b/src/services/index.ts deleted file mode 100644 index 39bba42..0000000 --- a/src/services/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./history"; -export * from "./database"; diff --git a/tsconfig.json b/tsconfig.json index 163f66b..329cf80 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -16,5 +16,6 @@ "types": [ "bun-types" // add Bun global ] - } + }, + "exclude": ["dist"] } From ce734627ab71a5989b01110a4d7f9889a89de5a7 Mon Sep 17 00:00:00 2001 From: ogzhanolguncu Date: Fri, 24 May 2024 15:41:36 +0300 Subject: [PATCH 6/6] chore: update version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a3c231e..163fce2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@upstash/rag-chat", - "version": "0.0.23-alpha", + "version": "0.0.24-alpha", "main": "./dist/index.js", "module": "./dist/index.mjs", "types": "./dist/index.d.ts",