├── .yarnrc.yml ├── src ├── index.ts ├── types.ts └── api-client.ts ├── .eslintrc.json ├── .prettierrc.json ├── .editorconfig ├── tsconfig.json ├── package.json ├── LICENSE ├── .gitignore ├── .npmignore ├── mock-server └── index.ts ├── README.md └── yarn.lock /.yarnrc.yml: -------------------------------------------------------------------------------- 1 | nodeLinker: node-modules 2 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@/api-client'; 2 | export * from '@/types'; 3 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "extends": ["prettier"], 4 | "rules": { 5 | "no-console": "error" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "arrowParens": "always", 3 | "bracketSameLine": true, 4 | "bracketSpacing": false, 5 | "singleQuote": true, 6 | "trailingComma": "all" 7 | } 8 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | 7 | [*.{js,json,yml}] 8 | charset = utf-8 9 | indent_style = space 10 | indent_size = 2 11 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "lib": [ 5 | "esnext" 6 | ], 7 | "strict": true, 8 | "skipLibCheck": true, 9 | "declaration": true, 10 | "outDir": "dist/", 11 | "esModuleInterop": true, 12 | "module": "esnext", 13 | "moduleResolution": "node", 14 | "resolveJsonModule": true, 15 | "isolatedModules": true, 16 | "jsx": "preserve", 17 | "incremental": true, 18 | "baseUrl": "./", 19 | "paths": { 20 | "@/*": [ 21 | "src/*" 22 | ], 23 | }, 24 | "forceConsistentCasingInFileNames": true 25 | }, 26 | "include": [ 27 | "**/*.ts" 28 | ], 29 | "exclude": [ 30 | "node_modules", 31 | "dist" 32 | ] 33 | } 34 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "threads-graph-api", 3 | "repository": "github:spoolappio/threads-graph-api", 4 | "version": "0.1.0", 5 | "description": "A library to interface with the official Instagram Threads API", 6 | "main": "dist/src/index.js", 7 | "scripts": { 8 | "build": "tsc && tsc-alias", 9 | "demo": "tsx watch demo/index.ts", 10 | "test": "jest" 11 | }, 12 | "keywords": [ 13 | "instagram", 14 | "threads", 15 | "graph", 16 | "api", 17 | "sdk", 18 | "lib", 19 | "library", 20 | "official" 21 | ], 22 | "author": "Tony Peng ", 23 | "license": "MIT", 24 | "devDependencies": { 25 | "@types/express": "^4.17.21", 26 | "eslint": "^9.3.0", 27 | "eslint-config-prettier": "^9.1.0", 28 | "express": "^4.19.2", 29 | "prettier": "^3.2.5", 30 | "ts-node": "^10.9.2", 31 | "tsc-alias": "^1.8.10", 32 | "tsx": "^4.11.0", 33 | "typescript": "^5.4.5" 34 | }, 35 | "dependencies": { 36 | "zod": "^3.23.8" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 Tony Peng 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | .pnpm-debug.log* 9 | 10 | # Diagnostic reports (https://nodejs.org/api/report.html) 11 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 12 | 13 | # Runtime data 14 | pids 15 | *.pid 16 | *.seed 17 | *.pid.lock 18 | 19 | # Directory for instrumented libs generated by jscoverage/JSCover 20 | lib-cov 21 | 22 | # Coverage directory used by tools like istanbul 23 | coverage 24 | *.lcov 25 | 26 | # nyc test coverage 27 | .nyc_output 28 | 29 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 30 | .grunt 31 | 32 | # Bower dependency directory (https://bower.io/) 33 | bower_components 34 | 35 | # node-waf configuration 36 | .lock-wscript 37 | 38 | # Compiled binary addons (https://nodejs.org/api/addons.html) 39 | build/Release 40 | 41 | # Dependency directories 42 | node_modules/ 43 | jspm_packages/ 44 | 45 | # Snowpack dependency directory (https://snowpack.dev/) 46 | web_modules/ 47 | 48 | # TypeScript cache 49 | *.tsbuildinfo 50 | 51 | # Optional npm cache directory 52 | .npm 53 | 54 | # Optional eslint cache 55 | .eslintcache 56 | 57 | # Optional stylelint cache 58 | .stylelintcache 59 | 60 | # Microbundle cache 61 | .rpt2_cache/ 62 | .rts2_cache_cjs/ 63 | .rts2_cache_es/ 64 | .rts2_cache_umd/ 65 | 66 | # Optional REPL history 67 | .node_repl_history 68 | 69 | # Output of 'npm pack' 70 | *.tgz 71 | 72 | # Yarn Integrity file 73 | .yarn-integrity 74 | 75 | # dotenv environment variable files 76 | .env 77 | .env.development.local 78 | .env.test.local 79 | .env.production.local 80 | .env.local 81 | 82 | # parcel-bundler cache (https://parceljs.org/) 83 | .cache 84 | .parcel-cache 85 | 86 | # Next.js build output 87 | .next 88 | out 89 | 90 | # Nuxt.js build / generate output 91 | .nuxt 92 | dist 93 | 94 | # Gatsby files 95 | .cache/ 96 | # Comment in the public line in if your project uses Gatsby and not Next.js 97 | # https://nextjs.org/blog/next-9-1#public-directory-support 98 | # public 99 | 100 | # vuepress build output 101 | .vuepress/dist 102 | 103 | # vuepress v2.x temp and cache directory 104 | .temp 105 | .cache 106 | 107 | # Docusaurus cache and generated files 108 | .docusaurus 109 | 110 | # Serverless directories 111 | .serverless/ 112 | 113 | # FuseBox cache 114 | .fusebox/ 115 | 116 | # DynamoDB Local files 117 | .dynamodb/ 118 | 119 | # TernJS port file 120 | .tern-port 121 | 122 | # Stores VSCode versions used for testing VSCode extensions 123 | .vscode-test 124 | 125 | # yarn v2 126 | .yarn/cache 127 | .yarn/unplugged 128 | .yarn/build-state.yml 129 | .yarn/install-state.gz 130 | .pnp.* 131 | 132 | # JetBrains IDEs 133 | .idea/ 134 | 135 | demo/ 136 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | .pnpm-debug.log* 9 | 10 | # Diagnostic reports (https://nodejs.org/api/report.html) 11 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 12 | 13 | # Runtime data 14 | pids 15 | *.pid 16 | *.seed 17 | *.pid.lock 18 | 19 | # Directory for instrumented libs generated by jscoverage/JSCover 20 | lib-cov 21 | 22 | # Coverage directory used by tools like istanbul 23 | coverage 24 | *.lcov 25 | 26 | # nyc test coverage 27 | .nyc_output 28 | 29 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 30 | .grunt 31 | 32 | # Bower dependency directory (https://bower.io/) 33 | bower_components 34 | 35 | # node-waf configuration 36 | .lock-wscript 37 | 38 | # Compiled binary addons (https://nodejs.org/api/addons.html) 39 | build/Release 40 | 41 | # Dependency directories 42 | node_modules/ 43 | jspm_packages/ 44 | 45 | # Snowpack dependency directory (https://snowpack.dev/) 46 | web_modules/ 47 | 48 | # TypeScript cache 49 | *.tsbuildinfo 50 | 51 | # Optional npm cache directory 52 | .npm 53 | 54 | # Optional eslint cache 55 | .eslintcache 56 | 57 | # Optional stylelint cache 58 | .stylelintcache 59 | 60 | # Microbundle cache 61 | .rpt2_cache/ 62 | .rts2_cache_cjs/ 63 | .rts2_cache_es/ 64 | .rts2_cache_umd/ 65 | 66 | # Optional REPL history 67 | .node_repl_history 68 | 69 | # Output of 'npm pack' 70 | *.tgz 71 | 72 | # Yarn Integrity file 73 | .yarn-integrity 74 | 75 | # dotenv environment variable files 76 | .env 77 | .env.development.local 78 | .env.test.local 79 | .env.production.local 80 | .env.local 81 | 82 | # parcel-bundler cache (https://parceljs.org/) 83 | .cache 84 | .parcel-cache 85 | 86 | # Next.js build output 87 | .next 88 | out 89 | 90 | # Nuxt.js build / generate output 91 | .nuxt 92 | 93 | # Gatsby files 94 | .cache/ 95 | # Comment in the public line in if your project uses Gatsby and not Next.js 96 | # https://nextjs.org/blog/next-9-1#public-directory-support 97 | # public 98 | 99 | # vuepress build output 100 | .vuepress/dist 101 | 102 | # vuepress v2.x temp and cache directory 103 | .temp 104 | .cache 105 | 106 | # Docusaurus cache and generated files 107 | .docusaurus 108 | 109 | # Serverless directories 110 | .serverless/ 111 | 112 | # FuseBox cache 113 | .fusebox/ 114 | 115 | # DynamoDB Local files 116 | .dynamodb/ 117 | 118 | # TernJS port file 119 | .tern-port 120 | 121 | # Stores VSCode versions used for testing VSCode extensions 122 | .vscode-test 123 | 124 | # yarn v2 125 | .yarn/cache 126 | .yarn/unplugged 127 | .yarn/build-state.yml 128 | .yarn/install-state.gz 129 | .pnp.* 130 | 131 | # JetBrains IDEs 132 | .idea/ 133 | 134 | demo/ 135 | dist/demo/ 136 | -------------------------------------------------------------------------------- /mock-server/index.ts: -------------------------------------------------------------------------------- 1 | import express, {Response} from 'express'; 2 | import { 3 | GetMediaObjectResponse, 4 | GetUserThreadsResponse, 5 | GetUserThreadsResponseSchema, 6 | ThreadsMediaMetric, 7 | ThreadsMediaObject, 8 | ThreadsUserProfile, 9 | } from '@/types'; 10 | 11 | const app = express(); 12 | 13 | const port = process.argv[2] || 9000; 14 | 15 | function pickFields( 16 | obj: T, 17 | fields: string[] | undefined, 18 | ): Partial { 19 | // TODO: verify if not specifying fields should return all fields 20 | if (!fields) return obj; 21 | const newObj: Partial = {}; 22 | fields.forEach((field) => { 23 | newObj[field as keyof T] = obj[field as keyof T]; 24 | }); 25 | return newObj; 26 | } 27 | 28 | const users: Record = { 29 | '1': { 30 | id: '1', 31 | username: 'threadsapitestuser', 32 | threads_profile_picture_url: 33 | 'https://mighty.tools/mockmind-api/content/human/1.jpg', 34 | threads_biography: 'This is my Threads bio!', 35 | }, 36 | '2': { 37 | id: '2', 38 | username: 'resutsetipasdaerht', 39 | threads_profile_picture_url: 40 | 'https://mighty.tools/mockmind-api/content/human/2.jpg', 41 | threads_biography: 'hello world', 42 | }, 43 | }; 44 | 45 | const threads: Record = { 46 | '1': { 47 | id: '1', 48 | media_type: 'TEXT_POST', 49 | media_product_type: 'THREADS', 50 | text: 'This is a thread!', 51 | timestamp: new Date().toISOString(), 52 | owner: '1', 53 | shortcode: 'C7oq4zuRz2w', 54 | is_quote_post: false, 55 | }, 56 | '2': { 57 | id: '2', 58 | media_type: 'TEXT_POST', 59 | media_product_type: 'THREADS', 60 | text: 'This is another thread!', 61 | timestamp: new Date().toISOString(), 62 | owner: '2', 63 | shortcode: 'C6ee_dSvZtk', 64 | is_quote_post: false, 65 | }, 66 | }; 67 | 68 | const accessCodes: Record = {}; 69 | const accessTokenToUserId: Record = {}; 70 | 71 | function transformThread(thread: ThreadsMediaObject): ThreadsMediaObject { 72 | return { 73 | ...thread, 74 | username: users[thread.owner!]!.username, 75 | }; 76 | } 77 | 78 | function apiError(res: Response, message: string) { 79 | res.status(400).send({ 80 | error: { 81 | message, 82 | type: 'OAuthException', 83 | }, 84 | }); 85 | } 86 | 87 | app.get('/oauth/authorize', (req, res) => { 88 | const {client_id, redirect_uri, response_type, scope} = req.query; 89 | 90 | const makeErrorResponse = (msg: string) => ` 91 | 92 | Mock authorize 93 | 94 | 95 | Error: ${msg} 96 | 97 | `; 98 | 99 | if (!client_id) { 100 | return res.status(400).send(makeErrorResponse('client_id is missing.')); 101 | } 102 | if (!redirect_uri) { 103 | return res.status(400).send(makeErrorResponse('redirect_uri is missing.')); 104 | } 105 | if (!response_type) { 106 | return res.status(400).send(makeErrorResponse('response_type is missing.')); 107 | } 108 | if (!scope) { 109 | return res.status(400).send(makeErrorResponse('scope is missing.')); 110 | } 111 | if (response_type !== 'code') { 112 | return res 113 | .status(400) 114 | .send(makeErrorResponse('response_type should be set to "code".')); 115 | } 116 | if (typeof redirect_uri !== 'string') { 117 | return res.status(400).send(makeErrorResponse('Invalid redirect_uri')); 118 | } 119 | 120 | let code = Math.floor(Math.random() * 1_000_000_000_000) + ''; 121 | accessCodes[code] = redirect_uri; 122 | 123 | res.send(` 124 | 125 | Mock authorize 126 | 127 | 128 |
129 | Authorize app ${client_id} for scopes ${scope}? 130 |
131 | 132 | 133 | `); 134 | }); 135 | 136 | app.post('/oauth/access_token', (req, res) => { 137 | if (!req.body) { 138 | return res.status(400).send({ 139 | error: 'missing body', 140 | }); 141 | } 142 | const {client_id, client_secret, grant_type, redirect_uri, code} = req.body; 143 | 144 | if (!client_id) { 145 | return res.status(400).send({ 146 | error: 'client_id is missing', 147 | }); 148 | } 149 | if (!client_secret) { 150 | return res.status(400).send({ 151 | error: 'client_secret is missing', 152 | }); 153 | } 154 | if (!grant_type) { 155 | return res.status(400).send({ 156 | error: 'grant_type is missing', 157 | }); 158 | } 159 | if (!redirect_uri) { 160 | return res.status(400).send({ 161 | error: 'redirect_uri is missing', 162 | }); 163 | } 164 | if (!code) { 165 | return res.status(400).send({ 166 | error: 'code is missing', 167 | }); 168 | } 169 | if (grant_type !== 'authorization_code') { 170 | return res.status(400).send({ 171 | error: 'grant_type should be set to "authorization_code".', 172 | }); 173 | } 174 | const originalRedirectUri = accessCodes[code]; 175 | if (!code) { 176 | return res.status(400).send({ 177 | error: 'invalid code', 178 | }); 179 | } 180 | if (originalRedirectUri !== redirect_uri) { 181 | return res.status(400).send({ 182 | error: 183 | 'redirect_uri does not match the one provided when the code was created', 184 | }); 185 | } 186 | delete accessCodes[code]; 187 | 188 | let token = Math.floor(Math.random() * 1_000_000_000_000) + ''; 189 | const userId = '1'; 190 | accessTokenToUserId[token] = userId; 191 | 192 | res.send({ 193 | access_token: token, 194 | user_id: userId, 195 | }); 196 | }); 197 | 198 | app.get('/:userId/threads', (req, res) => { 199 | const {userId} = req.params; 200 | const {fields: fieldsQuery} = req.query; 201 | const userThreads: ThreadsMediaObject[] = []; 202 | 203 | const fields = Array.isArray(fieldsQuery) 204 | ? undefined 205 | : (fieldsQuery as string | undefined)?.split(','); 206 | 207 | if (!users[userId]) { 208 | return apiError(res, 'MOCK-SERVER: User not found'); 209 | } 210 | 211 | for (const threadId in threads) { 212 | if (threads[threadId].owner === userId) { 213 | userThreads.push(transformThread(threads[threadId])); 214 | } 215 | } 216 | 217 | const response: GetUserThreadsResponse = { 218 | data: userThreads.map((thread) => pickFields(thread, fields)), 219 | paging: { 220 | cursors: {}, 221 | }, 222 | }; 223 | 224 | res.send(response); 225 | }); 226 | 227 | app.get('/:mediaId', (req, res) => { 228 | const {mediaId} = req.params; 229 | const {fields: fieldsQuery} = req.query; 230 | const fields = Array.isArray(fieldsQuery) 231 | ? undefined 232 | : (fieldsQuery as string | undefined)?.split(','); 233 | const thread = threads[mediaId]; 234 | if (!thread) { 235 | return apiError(res, 'MOCK-SERVER: Thread not found'); 236 | } 237 | const response = pickFields(thread, fields); 238 | res.send(response); 239 | }); 240 | 241 | app.listen(port, () => { 242 | console.log(`listening on port ${port}`); 243 | }); 244 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # threads-graph-api 2 | A Javascript library to interface with the official Instagram Threads API. Built by [Spool](https://spoolapp.io), a Threads creator toolkit with AI-assisted content generation, seamless cross-platform posting, advanced post composing, and more! 3 | 4 | Maintainers: [@tonypeng](https://www.github.com/tonypeng), [@ishaanbuildsthings](https://www.github.com/ishaanbuildsthings) 5 | 6 | ### ⚠️ Warning! 7 | This is an unstable early preview release. Some endpoints may not work and the API is subject to change. Please submit an issue or a pull request if you encounter any issues. 8 | 9 | ## Overview 10 | 11 | The `threads-graph-api` repository provides a TypeScript client for interacting with the Instagram Threads API. This library simplifies the process of accessing Instagram's public and authenticated endpoints for managing media, retrieving user profiles, metrics, and more. 12 | 13 | ## Installation 14 | 15 | Install the package with your favorite package manager: 16 | 17 | ```bash 18 | $ yarn add threads-graph-api 19 | ``` 20 | or 21 | ```bash 22 | $ npm install threads-graph-api 23 | ``` 24 | 25 | ## Usage 26 | `threads-graph-api` follows the [official Threads API documentation](https://developers.facebook.com/docs/threads/reference) for endpoints and parameters. See [types.ts](src/types.ts) for all request and response schemas. 27 | 28 | ### Initializing the Client 29 | 30 | There are two types of clients provided by the library: 31 | 32 | - `ThreadsPublicApiClient` 33 | - `ThreadsAuthenticatedApiClient` 34 | 35 | #### Public API Client 36 | 37 | The `ThreadsPublicApiClient` allows access to endpoints that do not require authentication. 38 | 39 | ```typescript 40 | import {ThreadsPublicApiClient} from 'threads-graph-api'; 41 | 42 | const baseUrl = 'https://graph.threads.net'; 43 | 44 | const publicClient = new ThreadsPublicApiClient( 45 | baseUrl, // optional 46 | ); 47 | ``` 48 | 49 | #### Authenticated API Client 50 | 51 | The `ThreadsAuthenticatedApiClient` allows access to endpoints that require authentication. 52 | 53 | ```typescript 54 | import {ThreadsAuthenticatedApiClient} from 'threads-graph-api'; 55 | 56 | const accessToken = 'your-access-token'; 57 | const userId = 'your-user-id'; 58 | const baseUrl = 'https://graph.threads.net'; // you can set this to your own server for testing 59 | 60 | const authenticatedClient = new ThreadsAuthenticatedApiClient( 61 | accessToken, 62 | userId, 63 | baseUrl, // optional 64 | ); 65 | ``` 66 | 67 | ### Authentication 68 | 69 | #### Creating Authorization URL 70 | 71 | To create an authorization URL: 72 | 73 | ```typescript 74 | const clientId = 'your-client-id'; 75 | const redirectUri = 'your-redirect-uri'; 76 | const scope = ['threads_basic', ...]; 77 | const baseUrl = 'https://www.threads.net'; // you can set this to your own server for testing 78 | 79 | const authUrl = publicClient.createAuthorizationUrl( 80 | clientId, 81 | redirectUri, 82 | scope, 83 | baseUrl, // optional 84 | ); 85 | ``` 86 | 87 | #### Exchanging an Authorization Code 88 | 89 | To exchange an authorization code for an access token: 90 | 91 | ```typescript 92 | const clientSecret = 'your-client-secret'; 93 | const code = 'auth-code'; 94 | 95 | const response = await publicClient.exchangeAuthorizationCode(clientId, clientSecret, redirectUri, code); 96 | ``` 97 | 98 | ### Using the API 99 | 100 | #### Creating a media container 101 | 102 | To create a media container: 103 | 104 | ```typescript 105 | const params = { 106 | mediaType: 'TEXT', 107 | text: 'Hello, World!', 108 | }; 109 | 110 | const response = await authenticatedClient.createMediaContainer(params); 111 | ``` 112 | 113 | #### Publishing media 114 | 115 | To publish a media container: 116 | 117 | ```typescript 118 | const params = { 119 | creationId: 'media-creation-id', 120 | }; 121 | 122 | const response = await authenticatedClient.publish(params); 123 | ``` 124 | 125 | #### Getting a user's threads 126 | 127 | To get user threads: 128 | 129 | ```typescript 130 | const params = { 131 | id: 'user-id', 132 | fields: ['id', 'media_type', 'media_url'], 133 | }; 134 | 135 | const response = await authenticatedClient.getUserThreads(params); 136 | ``` 137 | 138 | #### Getting a media object 139 | 140 | To get a media object: 141 | 142 | ```typescript 143 | const params = { 144 | id: 'media-id', 145 | fields: ['id', 'media_type', 'media_url'], 146 | }; 147 | 148 | const response = await authenticatedClient.getMediaObject(params); 149 | ``` 150 | 151 | #### Getting a user's profile 152 | 153 | To get a user's profile: 154 | 155 | ```typescript 156 | const params = { 157 | id: 'user-id', 158 | fields: ['id', 'username', 'threads_profile_picture_url'], 159 | }; 160 | 161 | const response = await authenticatedClient.getUserProfile(params); 162 | ``` 163 | 164 | #### Getting a user's threads publishing limit 165 | 166 | To get a user's threads publishing limit: 167 | 168 | ```typescript 169 | const params = { 170 | id: 'user-id', 171 | fields: ['reply_quota_usage', 'reply_config'], 172 | }; 173 | 174 | const response = await authenticatedClient.getUserThreadsPublishingLimit(params); 175 | ``` 176 | 177 | #### Getting thread replies 178 | 179 | To get a thread's replies: 180 | 181 | ```typescript 182 | const params = { 183 | id: 'media-id', 184 | fields: ['id', 'text', 'username'], 185 | reverse: true, 186 | }; 187 | 188 | const response = await authenticatedClient.getReplies(params); 189 | ``` 190 | 191 | #### Getting a thread conversation 192 | 193 | To get a thread's conversation: 194 | 195 | ```typescript 196 | const params = { 197 | id: 'conversation-id', 198 | fields: ['id', 'text', 'username'], 199 | reverse: true, 200 | }; 201 | 202 | const response = await authenticatedClient.getConversation(params); 203 | ``` 204 | 205 | #### Managing a reply 206 | 207 | To manage a reply: 208 | 209 | ```typescript 210 | const params = { 211 | id: 'reply-id', 212 | hide: true, 213 | }; 214 | 215 | const response = await authenticatedClient.manageReply(params); 216 | ``` 217 | 218 | #### Getting media metrics 219 | 220 | To get media metrics: 221 | 222 | ```typescript 223 | const params = { 224 | id: 'media-id', 225 | metrics: ['views', 'likes'], 226 | }; 227 | 228 | const response = await authenticatedClient.getMediaMetrics(params); 229 | ``` 230 | 231 | #### Getting account metrics 232 | 233 | To get account metrics: 234 | 235 | ```typescript 236 | const params = { 237 | id: 'user-id', 238 | metrics: ['followers_count'], 239 | }; 240 | 241 | const response = await authenticatedClient.getAccountMetrics(params); 242 | ``` 243 | 244 | ### Handling errors 245 | The `ThreadsApiError` class is thrown when the Threads API returns an error. The `message` field of the returned error is accessible from the `error` field on the `ThreadsApiError` object. To access other fields, use `getThreadsError()` to retrieve the full error object returned by the Threads API: 246 | 247 | ```typescript 248 | try { 249 | const response = await authenticatedClient.getUserProfile(params); 250 | } catch (error) { 251 | if (error instanceof ThreadsApiError) { 252 | console.error('Threads API Error:', error.message, error.getThreadsError()); 253 | } else { 254 | console.error('Unexpected Error:', error); 255 | } 256 | } 257 | ``` 258 | 259 | ## Contributing 260 | 261 | Contributions are welcome (and encouraged)! Please open an issue or submit a pull request. 262 | 263 | ## License 264 | 265 | This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details. 266 | -------------------------------------------------------------------------------- /src/types.ts: -------------------------------------------------------------------------------- 1 | import {z} from 'zod'; 2 | 3 | type Without = {[P in Exclude]?: never}; 4 | type XOR = T | U extends object 5 | ? (Without & U) | (Without & T) 6 | : T | U; 7 | 8 | export type CursorPaginationParams = { 9 | before?: string; 10 | after?: string; 11 | limit?: number; 12 | }; 13 | 14 | export type TemporalRangeParams = { 15 | since?: string; 16 | until?: string; 17 | }; 18 | 19 | export type TemporalPaginationParams = TemporalRangeParams & { 20 | limit?: number; 21 | }; 22 | 23 | const makePaginatedResponseSchema = (dataSchema: z.ZodType) => 24 | z.object({ 25 | data: z.array(dataSchema), 26 | paging: z.object({ 27 | cursors: z.object({ 28 | before: z.string().optional(), 29 | after: z.string().optional(), 30 | }), 31 | }), 32 | }); 33 | 34 | export const SuccessResponseSchema = z.object({ 35 | success: z.boolean(), 36 | }); 37 | export type SuccessResponse = z.infer; 38 | 39 | export const ErrorResponseSchema = z.object({ 40 | error: z.object({ 41 | code: z.number().optional(), 42 | fbtrace_id: z.string().optional(), 43 | message: z.string().optional(), 44 | type: z.string().optional(), 45 | }), 46 | }); 47 | export type ErrorResponse = z.infer; 48 | 49 | export const ExchangeAuthorizationCodeResponseSchema = z.object({ 50 | access_token: z.string(), 51 | user_id: z.coerce.string(), 52 | }); 53 | export type ExchangeAuthorizationCodeResponse = z.infer< 54 | typeof ExchangeAuthorizationCodeResponseSchema 55 | >; 56 | 57 | export type CreateMediaContainerParams = { 58 | replyToId?: string; 59 | replyControl?: 'everyone' | 'accounts_you_follow' | 'mentioned_only'; 60 | } & ( 61 | | { 62 | mediaType: 'TEXT'; 63 | text: string; 64 | } 65 | | { 66 | mediaType: 'IMAGE'; 67 | imageUrl: string; 68 | isCarouselItem?: boolean; 69 | text?: string; 70 | } 71 | | { 72 | mediaType: 'VIDEO'; 73 | videoUrl: string; 74 | isCarouselItem?: boolean; 75 | text?: string; 76 | } 77 | | { 78 | mediaType: 'CAROUSEL'; 79 | children: string[]; 80 | text?: string; 81 | } 82 | ); 83 | export const CreateMediaContainerResponseSchema = z.object({ 84 | id: z.string(), 85 | }); 86 | export type CreateMediaContainerResponse = z.infer< 87 | typeof CreateMediaContainerResponseSchema 88 | >; 89 | 90 | export type PublishParams = { 91 | creationId: string; 92 | }; 93 | export const PublishResponseSchema = z.object({ 94 | id: z.string(), 95 | }); 96 | export type PublishResponse = z.infer; 97 | 98 | export const ThreadsMediaObjectSchema = z.object({ 99 | id: z.string().optional(), 100 | media_product_type: z.string().optional(), 101 | media_type: z 102 | .enum([ 103 | 'TEXT_POST', 104 | 'IMAGE', 105 | 'VIDEO', 106 | 'CAROUSEL_ALBUM', 107 | 'AUDIO', 108 | 'REPOST_FACADE', 109 | ]) 110 | .optional(), 111 | media_url: z.string().optional(), 112 | permalink: z.string().optional(), 113 | owner: z.string().optional(), 114 | username: z.string().optional(), 115 | text: z.string().optional(), 116 | timestamp: z.string().optional(), 117 | shortcode: z.string().optional(), 118 | thumbnail_url: z.string().optional(), 119 | // TODO: check if this is an array of string IDs or an array of media objects 120 | children: z.array(z.string()).optional(), 121 | is_quote_post: z.boolean().optional(), 122 | is_reply: z.boolean().optional(), 123 | status_code: z.string().optional(), 124 | }); 125 | export type ThreadsMediaObject = z.infer; 126 | export type ThreadsMediaObjectField = keyof ThreadsMediaObject; 127 | 128 | export const ThreadsReplySchema = z.object({ 129 | id: z.string().optional(), 130 | text: z.string().optional(), 131 | username: z.string().optional(), 132 | permalink: z.string().optional(), 133 | timestamp: z.string().optional(), 134 | media_product_type: z.string().optional(), 135 | media_type: z 136 | .enum(['TEXT_POST', 'IMAGE', 'VIDEO', 'CAROUSEL_ALBUM', 'AUDIO']) 137 | .optional(), 138 | media_url: z.string().optional(), 139 | shortcode: z.string().optional(), 140 | thumbnail_url: z.string().optional(), 141 | // TODO: check if this is an array of string IDs or an array of media objects 142 | children: z.array(z.string()).optional(), 143 | is_quote_post: z.boolean().optional(), 144 | has_replies: z.boolean().optional(), 145 | root_post: z.string().optional(), 146 | replied_to: z.string().optional(), 147 | is_reply: z.boolean().optional(), 148 | is_reply_owned_by_me: z.boolean().optional(), 149 | hide_status: z 150 | .enum([ 151 | 'NOT_HUSHED', 152 | 'UNHUSHED', 153 | 'HIDDEN', 154 | 'COVERED', 155 | 'BLOCKED', 156 | 'RESTRICTED', 157 | ]) 158 | .optional(), 159 | }); 160 | export type ThreadsReply = z.infer; 161 | export type ThreadsReplyField = keyof ThreadsReply; 162 | 163 | export type GetUserThreadsParams = { 164 | id: string; 165 | fields?: ThreadsMediaObjectField[]; 166 | } & XOR; 167 | export const GetUserThreadsResponseSchema = makePaginatedResponseSchema( 168 | ThreadsMediaObjectSchema, 169 | ); 170 | export type GetUserThreadsResponse = z.infer< 171 | typeof GetUserThreadsResponseSchema 172 | >; 173 | 174 | export type GetMediaObjectParams = { 175 | id: string; 176 | fields?: ThreadsMediaObjectField[]; 177 | }; 178 | export const GetMediaObjectResponseSchema = ThreadsMediaObjectSchema; 179 | export type GetMediaObjectResponse = z.infer< 180 | typeof GetMediaObjectResponseSchema 181 | >; 182 | 183 | export type GetRepliesParams = { 184 | id: string; 185 | fields?: ThreadsReplyField[]; 186 | reverse?: boolean; 187 | } & XOR; 188 | export const GetRepliesResponseSchema = 189 | makePaginatedResponseSchema(ThreadsReplySchema); 190 | export type GetRepliesResponse = z.infer; 191 | 192 | export type GetConversationParams = { 193 | id: string; 194 | fields?: ThreadsReplyField[]; 195 | reverse?: boolean; 196 | } & XOR; 197 | export const GetConversationResponseSchema = 198 | makePaginatedResponseSchema(ThreadsReplySchema); 199 | export type GetConversationResponse = z.infer< 200 | typeof GetConversationResponseSchema 201 | >; 202 | 203 | export type ManageReplyParams = { 204 | id: string; 205 | hide: boolean; 206 | }; 207 | export const ManageReplyResponseSchema = SuccessResponseSchema; 208 | export type ManageReplyResponse = z.infer; 209 | 210 | export const ThreadsUserProfileSchema = z.object({ 211 | id: z.string().optional(), 212 | username: z.string().optional(), 213 | threads_profile_picture_url: z.string().optional(), 214 | threads_biography: z.string().optional(), 215 | }); 216 | export type ThreadsUserProfile = z.infer; 217 | export type ThreadsUserProfileField = keyof ThreadsUserProfile; 218 | 219 | export type GetUserProfileParams = { 220 | id: string; 221 | fields?: ThreadsUserProfileField[]; 222 | }; 223 | export const GetUserProfileResponseSchema = ThreadsUserProfileSchema; 224 | export type GetUserProfileResponse = z.infer< 225 | typeof GetUserProfileResponseSchema 226 | >; 227 | 228 | export const ThreadsPublishingLimitSchema = z.object({ 229 | data: z.array( 230 | z.object({ 231 | reply_quota_usage: z.number().optional(), 232 | reply_config: z 233 | .object({ 234 | quota_total: z.number().optional(), 235 | quota_duration: z.number().optional(), 236 | }) 237 | .optional(), 238 | }), 239 | ), 240 | }); 241 | export type ThreadsPublishingLimit = z.infer< 242 | typeof ThreadsPublishingLimitSchema 243 | >; 244 | export type ThreadsPublishingLimitField = 245 | keyof ThreadsPublishingLimit['data'][0]; 246 | 247 | export type GetUserThreadsPublishingLimitParams = { 248 | id: string; 249 | fields?: ThreadsPublishingLimitField[]; 250 | }; 251 | export const GetUserThreadsPublishingLimitResponseSchema = 252 | ThreadsPublishingLimitSchema; 253 | export type GetUserThreadsPublishingLimitResponse = z.infer< 254 | typeof GetUserThreadsPublishingLimitResponseSchema 255 | >; 256 | 257 | export const ThreadsMediaMetricSchema = z.enum([ 258 | 'views', 259 | 'likes', 260 | 'replies', 261 | 'reposts', 262 | 'quotes', 263 | ]); 264 | export type ThreadsMediaMetric = z.infer; 265 | 266 | export const ThreadsMediaMetricValueSchema = z.object({ 267 | name: ThreadsMediaMetricSchema, 268 | // TODO: figure out literal union type 269 | period: z.string(), 270 | values: z.array( 271 | z.object({ 272 | value: z.number(), 273 | }), 274 | ), 275 | title: z.string(), 276 | description: z.string(), 277 | id: z.string(), 278 | }); 279 | export type ThreadsMediaMetricValue = z.infer< 280 | typeof ThreadsMediaMetricValueSchema 281 | >; 282 | 283 | export type GetMediaMetricsParams = { 284 | id: string; 285 | metrics?: ThreadsMediaMetric[]; 286 | } & TemporalRangeParams; 287 | export const GetMediaMetricsResponseSchema = z.object({ 288 | data: z.array(ThreadsMediaMetricValueSchema), 289 | }); 290 | export type GetMediaMetricsResponse = z.infer< 291 | typeof GetMediaMetricsResponseSchema 292 | >; 293 | 294 | export const ThreadsAccountMetricSchema = z.enum([ 295 | 'views', 296 | 'likes', 297 | 'replies', 298 | 'reposts', 299 | 'quotes', 300 | 'followers_count', 301 | 'follower_demographics', 302 | ]); 303 | export type ThreadsAccountMetric = z.infer; 304 | 305 | export const ThreadsAccountMetricValueSchema = z.object({ 306 | name: ThreadsAccountMetricSchema, 307 | // TODO: figure out literal union type 308 | period: z.string(), 309 | // TODO: can we restrict this to be a homogenous array? 310 | values: z.array( 311 | z.object({ 312 | value: z.number(), 313 | end_time: z.string().optional(), 314 | }), 315 | ), 316 | title: z.string(), 317 | description: z.string(), 318 | id: z.string(), 319 | }); 320 | export type ThreadsAccountMetricValue = z.infer< 321 | typeof ThreadsAccountMetricValueSchema 322 | >; 323 | 324 | export type GetAccountMetricsParams = { 325 | id: string; 326 | metrics?: ThreadsAccountMetric[]; 327 | } & TemporalRangeParams; 328 | export const GetAccountMetricsResponseSchema = z.object({ 329 | data: z.array(ThreadsAccountMetricValueSchema), 330 | }); 331 | export type GetAccountMetricsResponse = z.infer< 332 | typeof GetAccountMetricsResponseSchema 333 | >; 334 | -------------------------------------------------------------------------------- /src/api-client.ts: -------------------------------------------------------------------------------- 1 | import {z} from 'zod'; 2 | import { 3 | CreateMediaContainerParams, 4 | CreateMediaContainerResponse, 5 | CreateMediaContainerResponseSchema, 6 | ErrorResponse, 7 | ErrorResponseSchema, 8 | ExchangeAuthorizationCodeResponse, 9 | ExchangeAuthorizationCodeResponseSchema, 10 | GetAccountMetricsParams, 11 | GetAccountMetricsResponse, 12 | GetAccountMetricsResponseSchema, 13 | GetConversationParams, 14 | GetConversationResponse, 15 | GetConversationResponseSchema, 16 | GetMediaMetricsParams, 17 | GetMediaMetricsResponse, 18 | GetMediaMetricsResponseSchema, 19 | GetMediaObjectParams, 20 | GetMediaObjectResponse, 21 | GetMediaObjectResponseSchema, 22 | GetRepliesParams, 23 | GetRepliesResponse, 24 | GetRepliesResponseSchema, 25 | GetUserProfileParams, 26 | GetUserProfileResponse, 27 | GetUserProfileResponseSchema, 28 | GetUserThreadsParams, 29 | GetUserThreadsPublishingLimitParams, 30 | GetUserThreadsPublishingLimitResponse, 31 | GetUserThreadsPublishingLimitResponseSchema, 32 | GetUserThreadsResponse, 33 | GetUserThreadsResponseSchema, 34 | ManageReplyParams, 35 | ManageReplyResponse, 36 | ManageReplyResponseSchema, 37 | PublishParams, 38 | PublishResponse, 39 | PublishResponseSchema, 40 | } from '@/types'; 41 | 42 | export class ThreadsApiError extends Error { 43 | private readonly _error?: ErrorResponse; 44 | 45 | constructor(error?: ErrorResponse) { 46 | super(error?.error.message || 'An unknown error occurred'); 47 | 48 | this._error = error; 49 | 50 | const actualProto = new.target.prototype; 51 | 52 | if (Object.setPrototypeOf) { 53 | Object.setPrototypeOf(this, actualProto); 54 | } else { 55 | // @ts-ignore 56 | this.__proto__ = actualProto; 57 | } 58 | } 59 | 60 | getThreadsError() { 61 | return this._error; 62 | } 63 | } 64 | 65 | export class ThreadsPublicApiClient { 66 | private readonly _baseUrl: string; 67 | 68 | constructor(baseUrl: string = 'https://graph.threads.net') { 69 | this._baseUrl = baseUrl; 70 | } 71 | 72 | _apiUrl(endpoint: string) { 73 | return this._baseUrl + endpoint; 74 | } 75 | 76 | async _apiGet>( 77 | endpoint: string, 78 | params: Record, 79 | responseSchema: T, 80 | ): Promise { 81 | const filteredParams = Object.keys(params).reduce( 82 | (acc: Record, key) => 83 | params[key] === undefined 84 | ? {...acc} 85 | : {...acc, [key]: params[key] + ''}, 86 | {}, 87 | ); 88 | const apiUrl = 89 | this._apiUrl(endpoint) + '?' + new URLSearchParams(filteredParams); 90 | const response = await fetch(apiUrl, { 91 | method: 'GET', 92 | }); 93 | const json = await response.json(); 94 | if ((json as any).error) { 95 | const error = ErrorResponseSchema.safeParse(json); 96 | throw new ThreadsApiError(error.success ? error.data : undefined); 97 | } 98 | return responseSchema.parse(json); 99 | } 100 | 101 | async _apiPost>( 102 | endpoint: string, 103 | params: Record, 104 | responseSchema: T, 105 | ): Promise { 106 | const apiUrl = this._apiUrl(endpoint); 107 | const body = new FormData(); 108 | Object.keys(params).forEach( 109 | (key) => params[key] && body.append(key, params[key]), 110 | ); 111 | const response = await fetch(apiUrl, { 112 | method: 'POST', 113 | body, 114 | }); 115 | const json = await response.json(); 116 | if ((json as any).error) { 117 | const error = ErrorResponseSchema.safeParse(json); 118 | throw new ThreadsApiError(error.success ? error.data : undefined); 119 | } 120 | return responseSchema.parse(json); 121 | } 122 | 123 | createAuthorizationUrl( 124 | clientId: string, 125 | redirectUri: string, 126 | scope: string[], 127 | state?: string, 128 | baseUrl: string = 'https://www.threads.net', 129 | ) { 130 | return ( 131 | baseUrl + 132 | '/oauth/authorize' + 133 | '?' + 134 | new URLSearchParams({ 135 | client_id: clientId, 136 | redirect_uri: redirectUri, 137 | scope: scope.join(','), 138 | response_type: 'code', 139 | ...(state && {state}), 140 | }) 141 | ); 142 | } 143 | 144 | async exchangeAuthorizationCode( 145 | clientId: string, 146 | clientSecret: string, 147 | redirectUri: string, 148 | code: string, 149 | ): Promise { 150 | const formData = new FormData(); 151 | formData.append('client_id', clientId); 152 | formData.append('client_secret', clientSecret); 153 | formData.append('grant_type', 'authorization_code'); 154 | formData.append('redirect_uri', redirectUri); 155 | formData.append('code', code); 156 | 157 | const response = await fetch(this._apiUrl('/oauth/access_token'), { 158 | method: 'POST', 159 | body: formData, 160 | }); 161 | const json = await response.json(); 162 | return ExchangeAuthorizationCodeResponseSchema.parse(json); 163 | } 164 | } 165 | 166 | export class ThreadsAuthenticatedApiClient extends ThreadsPublicApiClient { 167 | private readonly _accessToken: string; 168 | private readonly _userId: string; 169 | 170 | constructor( 171 | accessToken: string, 172 | userId: string, 173 | baseUrl: string = 'https://graph.threads.net', 174 | ) { 175 | super(baseUrl); 176 | 177 | this._accessToken = accessToken; 178 | this._userId = userId; 179 | } 180 | 181 | async _authenticatedGet>( 182 | endpoint: string, 183 | params: Record, 184 | responseSchema: T, 185 | ): Promise { 186 | return this._apiGet( 187 | endpoint, 188 | { 189 | ...params, 190 | access_token: this._accessToken, 191 | }, 192 | responseSchema, 193 | ); 194 | } 195 | 196 | async _authenticatedPost>( 197 | endpoint: string, 198 | params: Record, 199 | responseSchema: T, 200 | ): Promise { 201 | return this._apiPost( 202 | endpoint, 203 | { 204 | ...params, 205 | access_token: this._accessToken, 206 | }, 207 | responseSchema, 208 | ); 209 | } 210 | 211 | async createMediaContainer( 212 | params: CreateMediaContainerParams, 213 | ): Promise { 214 | return this._authenticatedPost( 215 | '/v1.0/me/threads', 216 | { 217 | media_type: params.mediaType, 218 | text: params.text, 219 | reply_control: params.replyControl, 220 | reply_to_id: params.replyToId, 221 | ...(params.mediaType === 'IMAGE' && { 222 | image_url: params.imageUrl, 223 | is_carousel_item: params.isCarouselItem, 224 | }), 225 | ...(params.mediaType === 'VIDEO' && { 226 | video_url: params.videoUrl, 227 | is_carousel_item: params.isCarouselItem, 228 | }), 229 | ...(params.mediaType === 'CAROUSEL' && { 230 | children: params.children.join(','), 231 | }), 232 | }, 233 | CreateMediaContainerResponseSchema, 234 | ); 235 | } 236 | 237 | async publish(params: PublishParams): Promise { 238 | return this._authenticatedPost( 239 | '/v1.0/me/threads_publish', 240 | { 241 | creation_id: params.creationId, 242 | }, 243 | PublishResponseSchema, 244 | ); 245 | } 246 | 247 | async getUserThreads( 248 | params: GetUserThreadsParams, 249 | ): Promise { 250 | const {id, fields, ...restParams} = params; 251 | return this._authenticatedGet( 252 | `/v1.0/${id}/threads`, 253 | { 254 | fields: fields?.join(','), 255 | ...restParams, 256 | }, 257 | GetUserThreadsResponseSchema, 258 | ); 259 | } 260 | 261 | async getMediaObject( 262 | params: GetMediaObjectParams, 263 | ): Promise { 264 | const {id, fields} = params; 265 | return this._authenticatedGet( 266 | `/v1.0/${id}`, 267 | { 268 | fields: fields?.join(','), 269 | }, 270 | GetMediaObjectResponseSchema, 271 | ); 272 | } 273 | 274 | async getUserProfile( 275 | params: GetUserProfileParams, 276 | ): Promise { 277 | const {id, fields} = params; 278 | return this._authenticatedGet( 279 | `/v1.0/${id}`, 280 | { 281 | fields: fields?.join(','), 282 | }, 283 | GetUserProfileResponseSchema, 284 | ); 285 | } 286 | 287 | async getUserThreadsPublishingLimit( 288 | params: GetUserThreadsPublishingLimitParams, 289 | ): Promise { 290 | const {id, fields} = params; 291 | return this._authenticatedGet( 292 | `/v1.0/${id}/threads_publishing_limit`, 293 | { 294 | fields: fields?.join(','), 295 | }, 296 | GetUserThreadsPublishingLimitResponseSchema, 297 | ); 298 | } 299 | 300 | async getReplies(params: GetRepliesParams): Promise { 301 | const {id, fields, ...restParams} = params; 302 | return this._authenticatedGet( 303 | `/v1.0/${id}/replies`, 304 | { 305 | fields: fields?.join(','), 306 | ...restParams, 307 | }, 308 | GetRepliesResponseSchema, 309 | ); 310 | } 311 | 312 | async getConversation( 313 | params: GetConversationParams, 314 | ): Promise { 315 | const {id, fields, ...restParams} = params; 316 | return this._authenticatedGet( 317 | `/v1.0/${id}/conversation`, 318 | { 319 | fields: fields?.join(','), 320 | ...restParams, 321 | }, 322 | GetConversationResponseSchema, 323 | ); 324 | } 325 | 326 | async manageReply(params: ManageReplyParams): Promise { 327 | const {id, ...restParams} = params; 328 | return this._authenticatedPost( 329 | `/v1.0/${id}/manage_reply`, 330 | { 331 | ...restParams, 332 | }, 333 | ManageReplyResponseSchema, 334 | ); 335 | } 336 | 337 | async getMediaMetrics( 338 | params: GetMediaMetricsParams, 339 | ): Promise { 340 | const {id, metrics, ...restParams} = params; 341 | return this._authenticatedGet( 342 | `/v1.0/${id}/insights`, 343 | { 344 | metric: metrics?.join(','), 345 | ...restParams, 346 | }, 347 | GetMediaMetricsResponseSchema, 348 | ); 349 | } 350 | 351 | async getAccountMetrics( 352 | params: GetAccountMetricsParams, 353 | ): Promise { 354 | const {id, metrics, ...restParams} = params; 355 | return this._authenticatedGet( 356 | `/v1.0/${id}/threads_insights`, 357 | { 358 | metric: metrics?.join(','), 359 | ...restParams, 360 | }, 361 | GetAccountMetricsResponseSchema, 362 | ); 363 | } 364 | } 365 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # This file is generated by running "yarn install" inside your project. 2 | # Manual changes might be lost - proceed with caution! 3 | 4 | __metadata: 5 | version: 6 6 | cacheKey: 8 7 | 8 | "@cspotcode/source-map-support@npm:^0.8.0": 9 | version: 0.8.1 10 | resolution: "@cspotcode/source-map-support@npm:0.8.1" 11 | dependencies: 12 | "@jridgewell/trace-mapping": 0.3.9 13 | checksum: 5718f267085ed8edb3e7ef210137241775e607ee18b77d95aa5bd7514f47f5019aa2d82d96b3bf342ef7aa890a346fa1044532ff7cc3009e7d24fce3ce6200fa 14 | languageName: node 15 | linkType: hard 16 | 17 | "@esbuild/aix-ppc64@npm:0.20.2": 18 | version: 0.20.2 19 | resolution: "@esbuild/aix-ppc64@npm:0.20.2" 20 | conditions: os=aix & cpu=ppc64 21 | languageName: node 22 | linkType: hard 23 | 24 | "@esbuild/android-arm64@npm:0.20.2": 25 | version: 0.20.2 26 | resolution: "@esbuild/android-arm64@npm:0.20.2" 27 | conditions: os=android & cpu=arm64 28 | languageName: node 29 | linkType: hard 30 | 31 | "@esbuild/android-arm@npm:0.20.2": 32 | version: 0.20.2 33 | resolution: "@esbuild/android-arm@npm:0.20.2" 34 | conditions: os=android & cpu=arm 35 | languageName: node 36 | linkType: hard 37 | 38 | "@esbuild/android-x64@npm:0.20.2": 39 | version: 0.20.2 40 | resolution: "@esbuild/android-x64@npm:0.20.2" 41 | conditions: os=android & cpu=x64 42 | languageName: node 43 | linkType: hard 44 | 45 | "@esbuild/darwin-arm64@npm:0.20.2": 46 | version: 0.20.2 47 | resolution: "@esbuild/darwin-arm64@npm:0.20.2" 48 | conditions: os=darwin & cpu=arm64 49 | languageName: node 50 | linkType: hard 51 | 52 | "@esbuild/darwin-x64@npm:0.20.2": 53 | version: 0.20.2 54 | resolution: "@esbuild/darwin-x64@npm:0.20.2" 55 | conditions: os=darwin & cpu=x64 56 | languageName: node 57 | linkType: hard 58 | 59 | "@esbuild/freebsd-arm64@npm:0.20.2": 60 | version: 0.20.2 61 | resolution: "@esbuild/freebsd-arm64@npm:0.20.2" 62 | conditions: os=freebsd & cpu=arm64 63 | languageName: node 64 | linkType: hard 65 | 66 | "@esbuild/freebsd-x64@npm:0.20.2": 67 | version: 0.20.2 68 | resolution: "@esbuild/freebsd-x64@npm:0.20.2" 69 | conditions: os=freebsd & cpu=x64 70 | languageName: node 71 | linkType: hard 72 | 73 | "@esbuild/linux-arm64@npm:0.20.2": 74 | version: 0.20.2 75 | resolution: "@esbuild/linux-arm64@npm:0.20.2" 76 | conditions: os=linux & cpu=arm64 77 | languageName: node 78 | linkType: hard 79 | 80 | "@esbuild/linux-arm@npm:0.20.2": 81 | version: 0.20.2 82 | resolution: "@esbuild/linux-arm@npm:0.20.2" 83 | conditions: os=linux & cpu=arm 84 | languageName: node 85 | linkType: hard 86 | 87 | "@esbuild/linux-ia32@npm:0.20.2": 88 | version: 0.20.2 89 | resolution: "@esbuild/linux-ia32@npm:0.20.2" 90 | conditions: os=linux & cpu=ia32 91 | languageName: node 92 | linkType: hard 93 | 94 | "@esbuild/linux-loong64@npm:0.20.2": 95 | version: 0.20.2 96 | resolution: "@esbuild/linux-loong64@npm:0.20.2" 97 | conditions: os=linux & cpu=loong64 98 | languageName: node 99 | linkType: hard 100 | 101 | "@esbuild/linux-mips64el@npm:0.20.2": 102 | version: 0.20.2 103 | resolution: "@esbuild/linux-mips64el@npm:0.20.2" 104 | conditions: os=linux & cpu=mips64el 105 | languageName: node 106 | linkType: hard 107 | 108 | "@esbuild/linux-ppc64@npm:0.20.2": 109 | version: 0.20.2 110 | resolution: "@esbuild/linux-ppc64@npm:0.20.2" 111 | conditions: os=linux & cpu=ppc64 112 | languageName: node 113 | linkType: hard 114 | 115 | "@esbuild/linux-riscv64@npm:0.20.2": 116 | version: 0.20.2 117 | resolution: "@esbuild/linux-riscv64@npm:0.20.2" 118 | conditions: os=linux & cpu=riscv64 119 | languageName: node 120 | linkType: hard 121 | 122 | "@esbuild/linux-s390x@npm:0.20.2": 123 | version: 0.20.2 124 | resolution: "@esbuild/linux-s390x@npm:0.20.2" 125 | conditions: os=linux & cpu=s390x 126 | languageName: node 127 | linkType: hard 128 | 129 | "@esbuild/linux-x64@npm:0.20.2": 130 | version: 0.20.2 131 | resolution: "@esbuild/linux-x64@npm:0.20.2" 132 | conditions: os=linux & cpu=x64 133 | languageName: node 134 | linkType: hard 135 | 136 | "@esbuild/netbsd-x64@npm:0.20.2": 137 | version: 0.20.2 138 | resolution: "@esbuild/netbsd-x64@npm:0.20.2" 139 | conditions: os=netbsd & cpu=x64 140 | languageName: node 141 | linkType: hard 142 | 143 | "@esbuild/openbsd-x64@npm:0.20.2": 144 | version: 0.20.2 145 | resolution: "@esbuild/openbsd-x64@npm:0.20.2" 146 | conditions: os=openbsd & cpu=x64 147 | languageName: node 148 | linkType: hard 149 | 150 | "@esbuild/sunos-x64@npm:0.20.2": 151 | version: 0.20.2 152 | resolution: "@esbuild/sunos-x64@npm:0.20.2" 153 | conditions: os=sunos & cpu=x64 154 | languageName: node 155 | linkType: hard 156 | 157 | "@esbuild/win32-arm64@npm:0.20.2": 158 | version: 0.20.2 159 | resolution: "@esbuild/win32-arm64@npm:0.20.2" 160 | conditions: os=win32 & cpu=arm64 161 | languageName: node 162 | linkType: hard 163 | 164 | "@esbuild/win32-ia32@npm:0.20.2": 165 | version: 0.20.2 166 | resolution: "@esbuild/win32-ia32@npm:0.20.2" 167 | conditions: os=win32 & cpu=ia32 168 | languageName: node 169 | linkType: hard 170 | 171 | "@esbuild/win32-x64@npm:0.20.2": 172 | version: 0.20.2 173 | resolution: "@esbuild/win32-x64@npm:0.20.2" 174 | conditions: os=win32 & cpu=x64 175 | languageName: node 176 | linkType: hard 177 | 178 | "@eslint-community/eslint-utils@npm:^4.2.0": 179 | version: 4.4.0 180 | resolution: "@eslint-community/eslint-utils@npm:4.4.0" 181 | dependencies: 182 | eslint-visitor-keys: ^3.3.0 183 | peerDependencies: 184 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 185 | checksum: cdfe3ae42b4f572cbfb46d20edafe6f36fc5fb52bf2d90875c58aefe226892b9677fef60820e2832caf864a326fe4fc225714c46e8389ccca04d5f9288aabd22 186 | languageName: node 187 | linkType: hard 188 | 189 | "@eslint-community/regexpp@npm:^4.6.1": 190 | version: 4.10.0 191 | resolution: "@eslint-community/regexpp@npm:4.10.0" 192 | checksum: 2a6e345429ea8382aaaf3a61f865cae16ed44d31ca917910033c02dc00d505d939f10b81e079fa14d43b51499c640138e153b7e40743c4c094d9df97d4e56f7b 193 | languageName: node 194 | linkType: hard 195 | 196 | "@eslint/eslintrc@npm:^3.1.0": 197 | version: 3.1.0 198 | resolution: "@eslint/eslintrc@npm:3.1.0" 199 | dependencies: 200 | ajv: ^6.12.4 201 | debug: ^4.3.2 202 | espree: ^10.0.1 203 | globals: ^14.0.0 204 | ignore: ^5.2.0 205 | import-fresh: ^3.2.1 206 | js-yaml: ^4.1.0 207 | minimatch: ^3.1.2 208 | strip-json-comments: ^3.1.1 209 | checksum: b0a9bbd98c8b9e0f4d975b042ff9b874dde722b20834ea2ff46551c3de740d4f10f56c449b790ef34d7f82147cbddfc22b004a43cc885dbc2664bb134766b5e4 210 | languageName: node 211 | linkType: hard 212 | 213 | "@eslint/js@npm:9.3.0": 214 | version: 9.3.0 215 | resolution: "@eslint/js@npm:9.3.0" 216 | checksum: 5af317c8bcfef660efc17624b825c71bac16770f8866bfdc2922e1fcc2010af96e4f896e91724b81550e5dba6db6983c221b5be9a1294c9e727dee9ada15c9f8 217 | languageName: node 218 | linkType: hard 219 | 220 | "@humanwhocodes/config-array@npm:^0.13.0": 221 | version: 0.13.0 222 | resolution: "@humanwhocodes/config-array@npm:0.13.0" 223 | dependencies: 224 | "@humanwhocodes/object-schema": ^2.0.3 225 | debug: ^4.3.1 226 | minimatch: ^3.0.5 227 | checksum: eae69ff9134025dd2924f0b430eb324981494be26f0fddd267a33c28711c4db643242cf9fddf7dadb9d16c96b54b2d2c073e60a56477df86e0173149313bd5d6 228 | languageName: node 229 | linkType: hard 230 | 231 | "@humanwhocodes/module-importer@npm:^1.0.1": 232 | version: 1.0.1 233 | resolution: "@humanwhocodes/module-importer@npm:1.0.1" 234 | checksum: 0fd22007db8034a2cdf2c764b140d37d9020bbfce8a49d3ec5c05290e77d4b0263b1b972b752df8c89e5eaa94073408f2b7d977aed131faf6cf396ebb5d7fb61 235 | languageName: node 236 | linkType: hard 237 | 238 | "@humanwhocodes/object-schema@npm:^2.0.3": 239 | version: 2.0.3 240 | resolution: "@humanwhocodes/object-schema@npm:2.0.3" 241 | checksum: d3b78f6c5831888c6ecc899df0d03bcc25d46f3ad26a11d7ea52944dc36a35ef543fad965322174238d677a43d5c694434f6607532cff7077062513ad7022631 242 | languageName: node 243 | linkType: hard 244 | 245 | "@humanwhocodes/retry@npm:^0.3.0": 246 | version: 0.3.0 247 | resolution: "@humanwhocodes/retry@npm:0.3.0" 248 | checksum: 4349cb8b60466a000e945fde8f8551cefb01ebba22ead4a92ac7b145f67f5da6b52e5a1e0c53185d732d0a49958ac29327934a4a5ac1d0bc20efb4429a4f7bf7 249 | languageName: node 250 | linkType: hard 251 | 252 | "@isaacs/cliui@npm:^8.0.2": 253 | version: 8.0.2 254 | resolution: "@isaacs/cliui@npm:8.0.2" 255 | dependencies: 256 | string-width: ^5.1.2 257 | string-width-cjs: "npm:string-width@^4.2.0" 258 | strip-ansi: ^7.0.1 259 | strip-ansi-cjs: "npm:strip-ansi@^6.0.1" 260 | wrap-ansi: ^8.1.0 261 | wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" 262 | checksum: 4a473b9b32a7d4d3cfb7a614226e555091ff0c5a29a1734c28c72a182c2f6699b26fc6b5c2131dfd841e86b185aea714c72201d7c98c2fba5f17709333a67aeb 263 | languageName: node 264 | linkType: hard 265 | 266 | "@jridgewell/resolve-uri@npm:^3.0.3": 267 | version: 3.1.2 268 | resolution: "@jridgewell/resolve-uri@npm:3.1.2" 269 | checksum: 83b85f72c59d1c080b4cbec0fef84528963a1b5db34e4370fa4bd1e3ff64a0d80e0cee7369d11d73c704e0286fb2865b530acac7a871088fbe92b5edf1000870 270 | languageName: node 271 | linkType: hard 272 | 273 | "@jridgewell/sourcemap-codec@npm:^1.4.10": 274 | version: 1.4.15 275 | resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" 276 | checksum: b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8 277 | languageName: node 278 | linkType: hard 279 | 280 | "@jridgewell/trace-mapping@npm:0.3.9": 281 | version: 0.3.9 282 | resolution: "@jridgewell/trace-mapping@npm:0.3.9" 283 | dependencies: 284 | "@jridgewell/resolve-uri": ^3.0.3 285 | "@jridgewell/sourcemap-codec": ^1.4.10 286 | checksum: d89597752fd88d3f3480845691a05a44bd21faac18e2185b6f436c3b0fd0c5a859fbbd9aaa92050c4052caf325ad3e10e2e1d1b64327517471b7d51babc0ddef 287 | languageName: node 288 | linkType: hard 289 | 290 | "@nodelib/fs.scandir@npm:2.1.5": 291 | version: 2.1.5 292 | resolution: "@nodelib/fs.scandir@npm:2.1.5" 293 | dependencies: 294 | "@nodelib/fs.stat": 2.0.5 295 | run-parallel: ^1.1.9 296 | checksum: a970d595bd23c66c880e0ef1817791432dbb7acbb8d44b7e7d0e7a22f4521260d4a83f7f9fd61d44fda4610105577f8f58a60718105fb38352baed612fd79e59 297 | languageName: node 298 | linkType: hard 299 | 300 | "@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": 301 | version: 2.0.5 302 | resolution: "@nodelib/fs.stat@npm:2.0.5" 303 | checksum: 012480b5ca9d97bff9261571dbbec7bbc6033f69cc92908bc1ecfad0792361a5a1994bc48674b9ef76419d056a03efadfce5a6cf6dbc0a36559571a7a483f6f0 304 | languageName: node 305 | linkType: hard 306 | 307 | "@nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8": 308 | version: 1.2.8 309 | resolution: "@nodelib/fs.walk@npm:1.2.8" 310 | dependencies: 311 | "@nodelib/fs.scandir": 2.1.5 312 | fastq: ^1.6.0 313 | checksum: 190c643f156d8f8f277bf2a6078af1ffde1fd43f498f187c2db24d35b4b4b5785c02c7dc52e356497b9a1b65b13edc996de08de0b961c32844364da02986dc53 314 | languageName: node 315 | linkType: hard 316 | 317 | "@npmcli/agent@npm:^2.0.0": 318 | version: 2.2.2 319 | resolution: "@npmcli/agent@npm:2.2.2" 320 | dependencies: 321 | agent-base: ^7.1.0 322 | http-proxy-agent: ^7.0.0 323 | https-proxy-agent: ^7.0.1 324 | lru-cache: ^10.0.1 325 | socks-proxy-agent: ^8.0.3 326 | checksum: 67de7b88cc627a79743c88bab35e023e23daf13831a8aa4e15f998b92f5507b644d8ffc3788afc8e64423c612e0785a6a92b74782ce368f49a6746084b50d874 327 | languageName: node 328 | linkType: hard 329 | 330 | "@npmcli/fs@npm:^3.1.0": 331 | version: 3.1.1 332 | resolution: "@npmcli/fs@npm:3.1.1" 333 | dependencies: 334 | semver: ^7.3.5 335 | checksum: d960cab4b93adcb31ce223bfb75c5714edbd55747342efb67dcc2f25e023d930a7af6ece3e75f2f459b6f38fc14d031c766f116cd124fdc937fd33112579e820 336 | languageName: node 337 | linkType: hard 338 | 339 | "@pkgjs/parseargs@npm:^0.11.0": 340 | version: 0.11.0 341 | resolution: "@pkgjs/parseargs@npm:0.11.0" 342 | checksum: 6ad6a00fc4f2f2cfc6bff76fb1d88b8ee20bc0601e18ebb01b6d4be583733a860239a521a7fbca73b612e66705078809483549d2b18f370eb346c5155c8e4a0f 343 | languageName: node 344 | linkType: hard 345 | 346 | "@tsconfig/node10@npm:^1.0.7": 347 | version: 1.0.11 348 | resolution: "@tsconfig/node10@npm:1.0.11" 349 | checksum: 51fe47d55fe1b80ec35e6e5ed30a13665fd3a531945350aa74a14a1e82875fb60b350c2f2a5e72a64831b1b6bc02acb6760c30b3738b54954ec2dea82db7a267 350 | languageName: node 351 | linkType: hard 352 | 353 | "@tsconfig/node12@npm:^1.0.7": 354 | version: 1.0.11 355 | resolution: "@tsconfig/node12@npm:1.0.11" 356 | checksum: 5ce29a41b13e7897a58b8e2df11269c5395999e588b9a467386f99d1d26f6c77d1af2719e407621412520ea30517d718d5192a32403b8dfcc163bf33e40a338a 357 | languageName: node 358 | linkType: hard 359 | 360 | "@tsconfig/node14@npm:^1.0.0": 361 | version: 1.0.3 362 | resolution: "@tsconfig/node14@npm:1.0.3" 363 | checksum: 19275fe80c4c8d0ad0abed6a96dbf00642e88b220b090418609c4376e1cef81bf16237bf170ad1b341452feddb8115d8dd2e5acdfdea1b27422071163dc9ba9d 364 | languageName: node 365 | linkType: hard 366 | 367 | "@tsconfig/node16@npm:^1.0.2": 368 | version: 1.0.4 369 | resolution: "@tsconfig/node16@npm:1.0.4" 370 | checksum: 202319785901f942a6e1e476b872d421baec20cf09f4b266a1854060efbf78cde16a4d256e8bc949d31e6cd9a90f1e8ef8fb06af96a65e98338a2b6b0de0a0ff 371 | languageName: node 372 | linkType: hard 373 | 374 | "@types/body-parser@npm:*": 375 | version: 1.19.5 376 | resolution: "@types/body-parser@npm:1.19.5" 377 | dependencies: 378 | "@types/connect": "*" 379 | "@types/node": "*" 380 | checksum: 1e251118c4b2f61029cc43b0dc028495f2d1957fe8ee49a707fb940f86a9bd2f9754230805598278fe99958b49e9b7e66eec8ef6a50ab5c1f6b93e1ba2aaba82 381 | languageName: node 382 | linkType: hard 383 | 384 | "@types/connect@npm:*": 385 | version: 3.4.38 386 | resolution: "@types/connect@npm:3.4.38" 387 | dependencies: 388 | "@types/node": "*" 389 | checksum: 7eb1bc5342a9604facd57598a6c62621e244822442976c443efb84ff745246b10d06e8b309b6e80130026a396f19bf6793b7cecd7380169f369dac3bfc46fb99 390 | languageName: node 391 | linkType: hard 392 | 393 | "@types/express-serve-static-core@npm:^4.17.33": 394 | version: 4.19.1 395 | resolution: "@types/express-serve-static-core@npm:4.19.1" 396 | dependencies: 397 | "@types/node": "*" 398 | "@types/qs": "*" 399 | "@types/range-parser": "*" 400 | "@types/send": "*" 401 | checksum: 85da812dc8076f11fb25fd6f1807d6164ed09fce2fa7a03e6ce48157b2758f7733e91dc5667e2f3c3fe98d2c614c58e398893e4ebc69284670dd9fd79ebc0828 402 | languageName: node 403 | linkType: hard 404 | 405 | "@types/express@npm:^4.17.21": 406 | version: 4.17.21 407 | resolution: "@types/express@npm:4.17.21" 408 | dependencies: 409 | "@types/body-parser": "*" 410 | "@types/express-serve-static-core": ^4.17.33 411 | "@types/qs": "*" 412 | "@types/serve-static": "*" 413 | checksum: fb238298630370a7392c7abdc80f495ae6c716723e114705d7e3fb67e3850b3859bbfd29391463a3fb8c0b32051847935933d99e719c0478710f8098ee7091c5 414 | languageName: node 415 | linkType: hard 416 | 417 | "@types/http-errors@npm:*": 418 | version: 2.0.4 419 | resolution: "@types/http-errors@npm:2.0.4" 420 | checksum: 1f3d7c3b32c7524811a45690881736b3ef741bf9849ae03d32ad1ab7062608454b150a4e7f1351f83d26a418b2d65af9bdc06198f1c079d75578282884c4e8e3 421 | languageName: node 422 | linkType: hard 423 | 424 | "@types/mime@npm:^1": 425 | version: 1.3.5 426 | resolution: "@types/mime@npm:1.3.5" 427 | checksum: e29a5f9c4776f5229d84e525b7cd7dd960b51c30a0fb9a028c0821790b82fca9f672dab56561e2acd9e8eed51d431bde52eafdfef30f643586c4162f1aecfc78 428 | languageName: node 429 | linkType: hard 430 | 431 | "@types/node@npm:*": 432 | version: 20.12.12 433 | resolution: "@types/node@npm:20.12.12" 434 | dependencies: 435 | undici-types: ~5.26.4 436 | checksum: 5373983874b9af7c216e7ca5d26b32a8d9829c703a69f1e66f2113598b5be8582c0e009ca97369f1ec9a6282b3f92812208d06eb1e9fc3bd9b939b022303d042 437 | languageName: node 438 | linkType: hard 439 | 440 | "@types/qs@npm:*": 441 | version: 6.9.15 442 | resolution: "@types/qs@npm:6.9.15" 443 | checksum: 97d8208c2b82013b618e7a9fc14df6bd40a73e1385ac479b6896bafc7949a46201c15f42afd06e86a05e914f146f495f606b6fb65610cc60cf2e0ff743ec38a2 444 | languageName: node 445 | linkType: hard 446 | 447 | "@types/range-parser@npm:*": 448 | version: 1.2.7 449 | resolution: "@types/range-parser@npm:1.2.7" 450 | checksum: 95640233b689dfbd85b8c6ee268812a732cf36d5affead89e806fe30da9a430767af8ef2cd661024fd97e19d61f3dec75af2df5e80ec3bea000019ab7028629a 451 | languageName: node 452 | linkType: hard 453 | 454 | "@types/send@npm:*": 455 | version: 0.17.4 456 | resolution: "@types/send@npm:0.17.4" 457 | dependencies: 458 | "@types/mime": ^1 459 | "@types/node": "*" 460 | checksum: cf4db48251bbb03cd6452b4de6e8e09e2d75390a92fd798eca4a803df06444adc94ed050246c94c7ed46fb97be1f63607f0e1f13c3ce83d71788b3e08640e5e0 461 | languageName: node 462 | linkType: hard 463 | 464 | "@types/serve-static@npm:*": 465 | version: 1.15.7 466 | resolution: "@types/serve-static@npm:1.15.7" 467 | dependencies: 468 | "@types/http-errors": "*" 469 | "@types/node": "*" 470 | "@types/send": "*" 471 | checksum: bbbf00dbd84719da2250a462270dc68964006e8d62f41fe3741abd94504ba3688f420a49afb2b7478921a1544d3793183ffa097c5724167da777f4e0c7f1a7d6 472 | languageName: node 473 | linkType: hard 474 | 475 | "abbrev@npm:^2.0.0": 476 | version: 2.0.0 477 | resolution: "abbrev@npm:2.0.0" 478 | checksum: 0e994ad2aa6575f94670d8a2149afe94465de9cedaaaac364e7fb43a40c3691c980ff74899f682f4ca58fa96b4cbd7421a015d3a6defe43a442117d7821a2f36 479 | languageName: node 480 | linkType: hard 481 | 482 | "accepts@npm:~1.3.8": 483 | version: 1.3.8 484 | resolution: "accepts@npm:1.3.8" 485 | dependencies: 486 | mime-types: ~2.1.34 487 | negotiator: 0.6.3 488 | checksum: 50c43d32e7b50285ebe84b613ee4a3aa426715a7d131b65b786e2ead0fd76b6b60091b9916d3478a75f11f162628a2139991b6c03ab3f1d9ab7c86075dc8eab4 489 | languageName: node 490 | linkType: hard 491 | 492 | "acorn-jsx@npm:^5.3.2": 493 | version: 5.3.2 494 | resolution: "acorn-jsx@npm:5.3.2" 495 | peerDependencies: 496 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 497 | checksum: c3d3b2a89c9a056b205b69530a37b972b404ee46ec8e5b341666f9513d3163e2a4f214a71f4dfc7370f5a9c07472d2fd1c11c91c3f03d093e37637d95da98950 498 | languageName: node 499 | linkType: hard 500 | 501 | "acorn-walk@npm:^8.1.1": 502 | version: 8.3.2 503 | resolution: "acorn-walk@npm:8.3.2" 504 | checksum: 3626b9d26a37b1b427796feaa5261faf712307a8920392c8dce9a5739fb31077667f4ad2ec71c7ac6aaf9f61f04a9d3d67ff56f459587206fc04aa31c27ef392 505 | languageName: node 506 | linkType: hard 507 | 508 | "acorn@npm:^8.11.3, acorn@npm:^8.4.1": 509 | version: 8.11.3 510 | resolution: "acorn@npm:8.11.3" 511 | bin: 512 | acorn: bin/acorn 513 | checksum: 76d8e7d559512566b43ab4aadc374f11f563f0a9e21626dd59cb2888444e9445923ae9f3699972767f18af61df89cd89f5eaaf772d1327b055b45cb829b4a88c 514 | languageName: node 515 | linkType: hard 516 | 517 | "agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.1": 518 | version: 7.1.1 519 | resolution: "agent-base@npm:7.1.1" 520 | dependencies: 521 | debug: ^4.3.4 522 | checksum: 51c158769c5c051482f9ca2e6e1ec085ac72b5a418a9b31b4e82fe6c0a6699adb94c1c42d246699a587b3335215037091c79e0de512c516f73b6ea844202f037 523 | languageName: node 524 | linkType: hard 525 | 526 | "aggregate-error@npm:^3.0.0": 527 | version: 3.1.0 528 | resolution: "aggregate-error@npm:3.1.0" 529 | dependencies: 530 | clean-stack: ^2.0.0 531 | indent-string: ^4.0.0 532 | checksum: 1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79 533 | languageName: node 534 | linkType: hard 535 | 536 | "ajv@npm:^6.12.4": 537 | version: 6.12.6 538 | resolution: "ajv@npm:6.12.6" 539 | dependencies: 540 | fast-deep-equal: ^3.1.1 541 | fast-json-stable-stringify: ^2.0.0 542 | json-schema-traverse: ^0.4.1 543 | uri-js: ^4.2.2 544 | checksum: 874972efe5c4202ab0a68379481fbd3d1b5d0a7bd6d3cc21d40d3536ebff3352a2a1fabb632d4fd2cc7fe4cbdcd5ed6782084c9bbf7f32a1536d18f9da5007d4 545 | languageName: node 546 | linkType: hard 547 | 548 | "ansi-regex@npm:^5.0.1": 549 | version: 5.0.1 550 | resolution: "ansi-regex@npm:5.0.1" 551 | checksum: 2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b 552 | languageName: node 553 | linkType: hard 554 | 555 | "ansi-regex@npm:^6.0.1": 556 | version: 6.0.1 557 | resolution: "ansi-regex@npm:6.0.1" 558 | checksum: 1ff8b7667cded1de4fa2c9ae283e979fc87036864317da86a2e546725f96406746411d0d85e87a2d12fa5abd715d90006de7fa4fa0477c92321ad3b4c7d4e169 559 | languageName: node 560 | linkType: hard 561 | 562 | "ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": 563 | version: 4.3.0 564 | resolution: "ansi-styles@npm:4.3.0" 565 | dependencies: 566 | color-convert: ^2.0.1 567 | checksum: 513b44c3b2105dd14cc42a19271e80f386466c4be574bccf60b627432f9198571ebf4ab1e4c3ba17347658f4ee1711c163d574248c0c1cdc2d5917a0ad582ec4 568 | languageName: node 569 | linkType: hard 570 | 571 | "ansi-styles@npm:^6.1.0": 572 | version: 6.2.1 573 | resolution: "ansi-styles@npm:6.2.1" 574 | checksum: ef940f2f0ced1a6347398da88a91da7930c33ecac3c77b72c5905f8b8fe402c52e6fde304ff5347f616e27a742da3f1dc76de98f6866c69251ad0b07a66776d9 575 | languageName: node 576 | linkType: hard 577 | 578 | "anymatch@npm:~3.1.2": 579 | version: 3.1.3 580 | resolution: "anymatch@npm:3.1.3" 581 | dependencies: 582 | normalize-path: ^3.0.0 583 | picomatch: ^2.0.4 584 | checksum: 3e044fd6d1d26545f235a9fe4d7a534e2029d8e59fa7fd9f2a6eb21230f6b5380ea1eaf55136e60cbf8e613544b3b766e7a6fa2102e2a3a117505466e3025dc2 585 | languageName: node 586 | linkType: hard 587 | 588 | "arg@npm:^4.1.0": 589 | version: 4.1.3 590 | resolution: "arg@npm:4.1.3" 591 | checksum: 544af8dd3f60546d3e4aff084d451b96961d2267d668670199692f8d054f0415d86fc5497d0e641e91546f0aa920e7c29e5250e99fc89f5552a34b5d93b77f43 592 | languageName: node 593 | linkType: hard 594 | 595 | "argparse@npm:^2.0.1": 596 | version: 2.0.1 597 | resolution: "argparse@npm:2.0.1" 598 | checksum: 83644b56493e89a254bae05702abf3a1101b4fa4d0ca31df1c9985275a5a5bd47b3c27b7fa0b71098d41114d8ca000e6ed90cad764b306f8a503665e4d517ced 599 | languageName: node 600 | linkType: hard 601 | 602 | "array-flatten@npm:1.1.1": 603 | version: 1.1.1 604 | resolution: "array-flatten@npm:1.1.1" 605 | checksum: a9925bf3512d9dce202112965de90c222cd59a4fbfce68a0951d25d965cf44642931f40aac72309c41f12df19afa010ecadceb07cfff9ccc1621e99d89ab5f3b 606 | languageName: node 607 | linkType: hard 608 | 609 | "array-union@npm:^2.1.0": 610 | version: 2.1.0 611 | resolution: "array-union@npm:2.1.0" 612 | checksum: 5bee12395cba82da674931df6d0fea23c4aa4660cb3b338ced9f828782a65caa232573e6bf3968f23e0c5eb301764a382cef2f128b170a9dc59de0e36c39f98d 613 | languageName: node 614 | linkType: hard 615 | 616 | "balanced-match@npm:^1.0.0": 617 | version: 1.0.2 618 | resolution: "balanced-match@npm:1.0.2" 619 | checksum: 9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65 620 | languageName: node 621 | linkType: hard 622 | 623 | "binary-extensions@npm:^2.0.0": 624 | version: 2.3.0 625 | resolution: "binary-extensions@npm:2.3.0" 626 | checksum: bcad01494e8a9283abf18c1b967af65ee79b0c6a9e6fcfafebfe91dbe6e0fc7272bafb73389e198b310516ae04f7ad17d79aacf6cb4c0d5d5202a7e2e52c7d98 627 | languageName: node 628 | linkType: hard 629 | 630 | "body-parser@npm:1.20.2": 631 | version: 1.20.2 632 | resolution: "body-parser@npm:1.20.2" 633 | dependencies: 634 | bytes: 3.1.2 635 | content-type: ~1.0.5 636 | debug: 2.6.9 637 | depd: 2.0.0 638 | destroy: 1.2.0 639 | http-errors: 2.0.0 640 | iconv-lite: 0.4.24 641 | on-finished: 2.4.1 642 | qs: 6.11.0 643 | raw-body: 2.5.2 644 | type-is: ~1.6.18 645 | unpipe: 1.0.0 646 | checksum: 14d37ec638ab5c93f6099ecaed7f28f890d222c650c69306872e00b9efa081ff6c596cd9afb9930656aae4d6c4e1c17537bea12bb73c87a217cb3cfea8896737 647 | languageName: node 648 | linkType: hard 649 | 650 | "brace-expansion@npm:^1.1.7": 651 | version: 1.1.11 652 | resolution: "brace-expansion@npm:1.1.11" 653 | dependencies: 654 | balanced-match: ^1.0.0 655 | concat-map: 0.0.1 656 | checksum: faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07 657 | languageName: node 658 | linkType: hard 659 | 660 | "brace-expansion@npm:^2.0.1": 661 | version: 2.0.1 662 | resolution: "brace-expansion@npm:2.0.1" 663 | dependencies: 664 | balanced-match: ^1.0.0 665 | checksum: a61e7cd2e8a8505e9f0036b3b6108ba5e926b4b55089eeb5550cd04a471fe216c96d4fe7e4c7f995c728c554ae20ddfc4244cad10aef255e72b62930afd233d1 666 | languageName: node 667 | linkType: hard 668 | 669 | "braces@npm:^3.0.3, braces@npm:~3.0.2": 670 | version: 3.0.3 671 | resolution: "braces@npm:3.0.3" 672 | dependencies: 673 | fill-range: ^7.1.1 674 | checksum: b95aa0b3bd909f6cd1720ffcf031aeaf46154dd88b4da01f9a1d3f7ea866a79eba76a6d01cbc3c422b2ee5cdc39a4f02491058d5df0d7bf6e6a162a832df1f69 675 | languageName: node 676 | linkType: hard 677 | 678 | "bytes@npm:3.1.2": 679 | version: 3.1.2 680 | resolution: "bytes@npm:3.1.2" 681 | checksum: e4bcd3948d289c5127591fbedf10c0b639ccbf00243504e4e127374a15c3bc8eed0d28d4aaab08ff6f1cf2abc0cce6ba3085ed32f4f90e82a5683ce0014e1b6e 682 | languageName: node 683 | linkType: hard 684 | 685 | "cacache@npm:^18.0.0": 686 | version: 18.0.3 687 | resolution: "cacache@npm:18.0.3" 688 | dependencies: 689 | "@npmcli/fs": ^3.1.0 690 | fs-minipass: ^3.0.0 691 | glob: ^10.2.2 692 | lru-cache: ^10.0.1 693 | minipass: ^7.0.3 694 | minipass-collect: ^2.0.1 695 | minipass-flush: ^1.0.5 696 | minipass-pipeline: ^1.2.4 697 | p-map: ^4.0.0 698 | ssri: ^10.0.0 699 | tar: ^6.1.11 700 | unique-filename: ^3.0.0 701 | checksum: b717fd9b36e9c3279bfde4545c3a8f6d5a539b084ee26a9504d48f83694beb724057d26e090b97540f9cc62bea18b9f6cf671c50e18fb7dac60eda9db691714f 702 | languageName: node 703 | linkType: hard 704 | 705 | "call-bind@npm:^1.0.7": 706 | version: 1.0.7 707 | resolution: "call-bind@npm:1.0.7" 708 | dependencies: 709 | es-define-property: ^1.0.0 710 | es-errors: ^1.3.0 711 | function-bind: ^1.1.2 712 | get-intrinsic: ^1.2.4 713 | set-function-length: ^1.2.1 714 | checksum: 295c0c62b90dd6522e6db3b0ab1ce26bdf9e7404215bda13cfee25b626b5ff1a7761324d58d38b1ef1607fc65aca2d06e44d2e18d0dfc6c14b465b00d8660029 715 | languageName: node 716 | linkType: hard 717 | 718 | "callsites@npm:^3.0.0": 719 | version: 3.1.0 720 | resolution: "callsites@npm:3.1.0" 721 | checksum: 072d17b6abb459c2ba96598918b55868af677154bec7e73d222ef95a8fdb9bbf7dae96a8421085cdad8cd190d86653b5b6dc55a4484f2e5b2e27d5e0c3fc15b3 722 | languageName: node 723 | linkType: hard 724 | 725 | "chalk@npm:^4.0.0": 726 | version: 4.1.2 727 | resolution: "chalk@npm:4.1.2" 728 | dependencies: 729 | ansi-styles: ^4.1.0 730 | supports-color: ^7.1.0 731 | checksum: fe75c9d5c76a7a98d45495b91b2172fa3b7a09e0cc9370e5c8feb1c567b85c4288e2b3fded7cfdd7359ac28d6b3844feb8b82b8686842e93d23c827c417e83fc 732 | languageName: node 733 | linkType: hard 734 | 735 | "chokidar@npm:^3.5.3": 736 | version: 3.6.0 737 | resolution: "chokidar@npm:3.6.0" 738 | dependencies: 739 | anymatch: ~3.1.2 740 | braces: ~3.0.2 741 | fsevents: ~2.3.2 742 | glob-parent: ~5.1.2 743 | is-binary-path: ~2.1.0 744 | is-glob: ~4.0.1 745 | normalize-path: ~3.0.0 746 | readdirp: ~3.6.0 747 | dependenciesMeta: 748 | fsevents: 749 | optional: true 750 | checksum: d2f29f499705dcd4f6f3bbed79a9ce2388cf530460122eed3b9c48efeab7a4e28739c6551fd15bec9245c6b9eeca7a32baa64694d64d9b6faeb74ddb8c4a413d 751 | languageName: node 752 | linkType: hard 753 | 754 | "chownr@npm:^2.0.0": 755 | version: 2.0.0 756 | resolution: "chownr@npm:2.0.0" 757 | checksum: c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f 758 | languageName: node 759 | linkType: hard 760 | 761 | "clean-stack@npm:^2.0.0": 762 | version: 2.2.0 763 | resolution: "clean-stack@npm:2.2.0" 764 | checksum: 2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68 765 | languageName: node 766 | linkType: hard 767 | 768 | "color-convert@npm:^2.0.1": 769 | version: 2.0.1 770 | resolution: "color-convert@npm:2.0.1" 771 | dependencies: 772 | color-name: ~1.1.4 773 | checksum: 79e6bdb9fd479a205c71d89574fccfb22bd9053bd98c6c4d870d65c132e5e904e6034978e55b43d69fcaa7433af2016ee203ce76eeba9cfa554b373e7f7db336 774 | languageName: node 775 | linkType: hard 776 | 777 | "color-name@npm:~1.1.4": 778 | version: 1.1.4 779 | resolution: "color-name@npm:1.1.4" 780 | checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 781 | languageName: node 782 | linkType: hard 783 | 784 | "commander@npm:^9.0.0": 785 | version: 9.5.0 786 | resolution: "commander@npm:9.5.0" 787 | checksum: c7a3e27aa59e913b54a1bafd366b88650bc41d6651f0cbe258d4ff09d43d6a7394232a4dadd0bf518b3e696fdf595db1028a0d82c785b88bd61f8a440cecfade 788 | languageName: node 789 | linkType: hard 790 | 791 | "concat-map@npm:0.0.1": 792 | version: 0.0.1 793 | resolution: "concat-map@npm:0.0.1" 794 | checksum: 902a9f5d8967a3e2faf138d5cb784b9979bad2e6db5357c5b21c568df4ebe62bcb15108af1b2253744844eb964fc023fbd9afbbbb6ddd0bcc204c6fb5b7bf3af 795 | languageName: node 796 | linkType: hard 797 | 798 | "content-disposition@npm:0.5.4": 799 | version: 0.5.4 800 | resolution: "content-disposition@npm:0.5.4" 801 | dependencies: 802 | safe-buffer: 5.2.1 803 | checksum: afb9d545e296a5171d7574fcad634b2fdf698875f4006a9dd04a3e1333880c5c0c98d47b560d01216fb6505a54a2ba6a843ee3a02ec86d7e911e8315255f56c3 804 | languageName: node 805 | linkType: hard 806 | 807 | "content-type@npm:~1.0.4, content-type@npm:~1.0.5": 808 | version: 1.0.5 809 | resolution: "content-type@npm:1.0.5" 810 | checksum: 566271e0a251642254cde0f845f9dd4f9856e52d988f4eb0d0dcffbb7a1f8ec98de7a5215fc628f3bce30fe2fb6fd2bc064b562d721658c59b544e2d34ea2766 811 | languageName: node 812 | linkType: hard 813 | 814 | "cookie-signature@npm:1.0.6": 815 | version: 1.0.6 816 | resolution: "cookie-signature@npm:1.0.6" 817 | checksum: f4e1b0a98a27a0e6e66fd7ea4e4e9d8e038f624058371bf4499cfcd8f3980be9a121486995202ba3fca74fbed93a407d6d54d43a43f96fd28d0bd7a06761591a 818 | languageName: node 819 | linkType: hard 820 | 821 | "cookie@npm:0.6.0": 822 | version: 0.6.0 823 | resolution: "cookie@npm:0.6.0" 824 | checksum: f56a7d32a07db5458e79c726b77e3c2eff655c36792f2b6c58d351fb5f61531e5b1ab7f46987150136e366c65213cbe31729e02a3eaed630c3bf7334635fb410 825 | languageName: node 826 | linkType: hard 827 | 828 | "create-require@npm:^1.1.0": 829 | version: 1.1.1 830 | resolution: "create-require@npm:1.1.1" 831 | checksum: a9a1503d4390d8b59ad86f4607de7870b39cad43d929813599a23714831e81c520bddf61bcdd1f8e30f05fd3a2b71ae8538e946eb2786dc65c2bbc520f692eff 832 | languageName: node 833 | linkType: hard 834 | 835 | "cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2": 836 | version: 7.0.3 837 | resolution: "cross-spawn@npm:7.0.3" 838 | dependencies: 839 | path-key: ^3.1.0 840 | shebang-command: ^2.0.0 841 | which: ^2.0.1 842 | checksum: 671cc7c7288c3a8406f3c69a3ae2fc85555c04169e9d611def9a675635472614f1c0ed0ef80955d5b6d4e724f6ced67f0ad1bb006c2ea643488fcfef994d7f52 843 | languageName: node 844 | linkType: hard 845 | 846 | "debug@npm:2.6.9": 847 | version: 2.6.9 848 | resolution: "debug@npm:2.6.9" 849 | dependencies: 850 | ms: 2.0.0 851 | checksum: d2f51589ca66df60bf36e1fa6e4386b318c3f1e06772280eea5b1ae9fd3d05e9c2b7fd8a7d862457d00853c75b00451aa2d7459b924629ee385287a650f58fe6 852 | languageName: node 853 | linkType: hard 854 | 855 | "debug@npm:4, debug@npm:^4.3.4": 856 | version: 4.3.5 857 | resolution: "debug@npm:4.3.5" 858 | dependencies: 859 | ms: 2.1.2 860 | peerDependenciesMeta: 861 | supports-color: 862 | optional: true 863 | checksum: 7c002b51e256257f936dda09eb37167df952758c57badf6bf44bdc40b89a4bcb8e5a0a2e4c7b53f97c69e2970dd5272d33a757378a12c8f8e64ea7bf99e8e86e 864 | languageName: node 865 | linkType: hard 866 | 867 | "debug@npm:^4.3.1, debug@npm:^4.3.2": 868 | version: 4.3.4 869 | resolution: "debug@npm:4.3.4" 870 | dependencies: 871 | ms: 2.1.2 872 | peerDependenciesMeta: 873 | supports-color: 874 | optional: true 875 | checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708 876 | languageName: node 877 | linkType: hard 878 | 879 | "deep-is@npm:^0.1.3": 880 | version: 0.1.4 881 | resolution: "deep-is@npm:0.1.4" 882 | checksum: edb65dd0d7d1b9c40b2f50219aef30e116cedd6fc79290e740972c132c09106d2e80aa0bc8826673dd5a00222d4179c84b36a790eef63a4c4bca75a37ef90804 883 | languageName: node 884 | linkType: hard 885 | 886 | "define-data-property@npm:^1.1.4": 887 | version: 1.1.4 888 | resolution: "define-data-property@npm:1.1.4" 889 | dependencies: 890 | es-define-property: ^1.0.0 891 | es-errors: ^1.3.0 892 | gopd: ^1.0.1 893 | checksum: 8068ee6cab694d409ac25936eb861eea704b7763f7f342adbdfe337fc27c78d7ae0eff2364b2917b58c508d723c7a074326d068eef2e45c4edcd85cf94d0313b 894 | languageName: node 895 | linkType: hard 896 | 897 | "depd@npm:2.0.0": 898 | version: 2.0.0 899 | resolution: "depd@npm:2.0.0" 900 | checksum: abbe19c768c97ee2eed6282d8ce3031126662252c58d711f646921c9623f9052e3e1906443066beec1095832f534e57c523b7333f8e7e0d93051ab6baef5ab3a 901 | languageName: node 902 | linkType: hard 903 | 904 | "destroy@npm:1.2.0": 905 | version: 1.2.0 906 | resolution: "destroy@npm:1.2.0" 907 | checksum: 0acb300b7478a08b92d810ab229d5afe0d2f4399272045ab22affa0d99dbaf12637659411530a6fcd597a9bdac718fc94373a61a95b4651bbc7b83684a565e38 908 | languageName: node 909 | linkType: hard 910 | 911 | "diff@npm:^4.0.1": 912 | version: 4.0.2 913 | resolution: "diff@npm:4.0.2" 914 | checksum: f2c09b0ce4e6b301c221addd83bf3f454c0bc00caa3dd837cf6c127d6edf7223aa2bbe3b688feea110b7f262adbfc845b757c44c8a9f8c0c5b15d8fa9ce9d20d 915 | languageName: node 916 | linkType: hard 917 | 918 | "dir-glob@npm:^3.0.1": 919 | version: 3.0.1 920 | resolution: "dir-glob@npm:3.0.1" 921 | dependencies: 922 | path-type: ^4.0.0 923 | checksum: fa05e18324510d7283f55862f3161c6759a3f2f8dbce491a2fc14c8324c498286c54282c1f0e933cb930da8419b30679389499b919122952a4f8592362ef4615 924 | languageName: node 925 | linkType: hard 926 | 927 | "eastasianwidth@npm:^0.2.0": 928 | version: 0.2.0 929 | resolution: "eastasianwidth@npm:0.2.0" 930 | checksum: 7d00d7cd8e49b9afa762a813faac332dee781932d6f2c848dc348939c4253f1d4564341b7af1d041853bc3f32c2ef141b58e0a4d9862c17a7f08f68df1e0f1ed 931 | languageName: node 932 | linkType: hard 933 | 934 | "ee-first@npm:1.1.1": 935 | version: 1.1.1 936 | resolution: "ee-first@npm:1.1.1" 937 | checksum: 1b4cac778d64ce3b582a7e26b218afe07e207a0f9bfe13cc7395a6d307849cfe361e65033c3251e00c27dd060cab43014c2d6b2647676135e18b77d2d05b3f4f 938 | languageName: node 939 | linkType: hard 940 | 941 | "emoji-regex@npm:^8.0.0": 942 | version: 8.0.0 943 | resolution: "emoji-regex@npm:8.0.0" 944 | checksum: d4c5c39d5a9868b5fa152f00cada8a936868fd3367f33f71be515ecee4c803132d11b31a6222b2571b1e5f7e13890156a94880345594d0ce7e3c9895f560f192 945 | languageName: node 946 | linkType: hard 947 | 948 | "emoji-regex@npm:^9.2.2": 949 | version: 9.2.2 950 | resolution: "emoji-regex@npm:9.2.2" 951 | checksum: 8487182da74aabd810ac6d6f1994111dfc0e331b01271ae01ec1eb0ad7b5ecc2bbbbd2f053c05cb55a1ac30449527d819bbfbf0e3de1023db308cbcb47f86601 952 | languageName: node 953 | linkType: hard 954 | 955 | "encodeurl@npm:~1.0.2": 956 | version: 1.0.2 957 | resolution: "encodeurl@npm:1.0.2" 958 | checksum: e50e3d508cdd9c4565ba72d2012e65038e5d71bdc9198cb125beb6237b5b1ade6c0d343998da9e170fb2eae52c1bed37d4d6d98a46ea423a0cddbed5ac3f780c 959 | languageName: node 960 | linkType: hard 961 | 962 | "encoding@npm:^0.1.13": 963 | version: 0.1.13 964 | resolution: "encoding@npm:0.1.13" 965 | dependencies: 966 | iconv-lite: ^0.6.2 967 | checksum: bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f 968 | languageName: node 969 | linkType: hard 970 | 971 | "env-paths@npm:^2.2.0": 972 | version: 2.2.1 973 | resolution: "env-paths@npm:2.2.1" 974 | checksum: 65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e 975 | languageName: node 976 | linkType: hard 977 | 978 | "err-code@npm:^2.0.2": 979 | version: 2.0.3 980 | resolution: "err-code@npm:2.0.3" 981 | checksum: 8b7b1be20d2de12d2255c0bc2ca638b7af5171142693299416e6a9339bd7d88fc8d7707d913d78e0993176005405a236b066b45666b27b797252c771156ace54 982 | languageName: node 983 | linkType: hard 984 | 985 | "es-define-property@npm:^1.0.0": 986 | version: 1.0.0 987 | resolution: "es-define-property@npm:1.0.0" 988 | dependencies: 989 | get-intrinsic: ^1.2.4 990 | checksum: f66ece0a887b6dca71848fa71f70461357c0e4e7249696f81bad0a1f347eed7b31262af4a29f5d726dc026426f085483b6b90301855e647aa8e21936f07293c6 991 | languageName: node 992 | linkType: hard 993 | 994 | "es-errors@npm:^1.3.0": 995 | version: 1.3.0 996 | resolution: "es-errors@npm:1.3.0" 997 | checksum: ec1414527a0ccacd7f15f4a3bc66e215f04f595ba23ca75cdae0927af099b5ec865f9f4d33e9d7e86f512f252876ac77d4281a7871531a50678132429b1271b5 998 | languageName: node 999 | linkType: hard 1000 | 1001 | "esbuild@npm:~0.20.2": 1002 | version: 0.20.2 1003 | resolution: "esbuild@npm:0.20.2" 1004 | dependencies: 1005 | "@esbuild/aix-ppc64": 0.20.2 1006 | "@esbuild/android-arm": 0.20.2 1007 | "@esbuild/android-arm64": 0.20.2 1008 | "@esbuild/android-x64": 0.20.2 1009 | "@esbuild/darwin-arm64": 0.20.2 1010 | "@esbuild/darwin-x64": 0.20.2 1011 | "@esbuild/freebsd-arm64": 0.20.2 1012 | "@esbuild/freebsd-x64": 0.20.2 1013 | "@esbuild/linux-arm": 0.20.2 1014 | "@esbuild/linux-arm64": 0.20.2 1015 | "@esbuild/linux-ia32": 0.20.2 1016 | "@esbuild/linux-loong64": 0.20.2 1017 | "@esbuild/linux-mips64el": 0.20.2 1018 | "@esbuild/linux-ppc64": 0.20.2 1019 | "@esbuild/linux-riscv64": 0.20.2 1020 | "@esbuild/linux-s390x": 0.20.2 1021 | "@esbuild/linux-x64": 0.20.2 1022 | "@esbuild/netbsd-x64": 0.20.2 1023 | "@esbuild/openbsd-x64": 0.20.2 1024 | "@esbuild/sunos-x64": 0.20.2 1025 | "@esbuild/win32-arm64": 0.20.2 1026 | "@esbuild/win32-ia32": 0.20.2 1027 | "@esbuild/win32-x64": 0.20.2 1028 | dependenciesMeta: 1029 | "@esbuild/aix-ppc64": 1030 | optional: true 1031 | "@esbuild/android-arm": 1032 | optional: true 1033 | "@esbuild/android-arm64": 1034 | optional: true 1035 | "@esbuild/android-x64": 1036 | optional: true 1037 | "@esbuild/darwin-arm64": 1038 | optional: true 1039 | "@esbuild/darwin-x64": 1040 | optional: true 1041 | "@esbuild/freebsd-arm64": 1042 | optional: true 1043 | "@esbuild/freebsd-x64": 1044 | optional: true 1045 | "@esbuild/linux-arm": 1046 | optional: true 1047 | "@esbuild/linux-arm64": 1048 | optional: true 1049 | "@esbuild/linux-ia32": 1050 | optional: true 1051 | "@esbuild/linux-loong64": 1052 | optional: true 1053 | "@esbuild/linux-mips64el": 1054 | optional: true 1055 | "@esbuild/linux-ppc64": 1056 | optional: true 1057 | "@esbuild/linux-riscv64": 1058 | optional: true 1059 | "@esbuild/linux-s390x": 1060 | optional: true 1061 | "@esbuild/linux-x64": 1062 | optional: true 1063 | "@esbuild/netbsd-x64": 1064 | optional: true 1065 | "@esbuild/openbsd-x64": 1066 | optional: true 1067 | "@esbuild/sunos-x64": 1068 | optional: true 1069 | "@esbuild/win32-arm64": 1070 | optional: true 1071 | "@esbuild/win32-ia32": 1072 | optional: true 1073 | "@esbuild/win32-x64": 1074 | optional: true 1075 | bin: 1076 | esbuild: bin/esbuild 1077 | checksum: bc88050fc1ca5c1bd03648f9979e514bdefb956a63aa3974373bb7b9cbac0b3aac9b9da1b5bdca0b3490e39d6b451c72815dbd6b7d7f978c91fbe9c9e9aa4e4c 1078 | languageName: node 1079 | linkType: hard 1080 | 1081 | "escape-html@npm:~1.0.3": 1082 | version: 1.0.3 1083 | resolution: "escape-html@npm:1.0.3" 1084 | checksum: 6213ca9ae00d0ab8bccb6d8d4e0a98e76237b2410302cf7df70aaa6591d509a2a37ce8998008cbecae8fc8ffaadf3fb0229535e6a145f3ce0b211d060decbb24 1085 | languageName: node 1086 | linkType: hard 1087 | 1088 | "escape-string-regexp@npm:^4.0.0": 1089 | version: 4.0.0 1090 | resolution: "escape-string-regexp@npm:4.0.0" 1091 | checksum: 98b48897d93060f2322108bf29db0feba7dd774be96cd069458d1453347b25ce8682ecc39859d4bca2203cc0ab19c237bcc71755eff49a0f8d90beadeeba5cc5 1092 | languageName: node 1093 | linkType: hard 1094 | 1095 | "eslint-config-prettier@npm:^9.1.0": 1096 | version: 9.1.0 1097 | resolution: "eslint-config-prettier@npm:9.1.0" 1098 | peerDependencies: 1099 | eslint: ">=7.0.0" 1100 | bin: 1101 | eslint-config-prettier: bin/cli.js 1102 | checksum: 9229b768c879f500ee54ca05925f31b0c0bafff3d9f5521f98ff05127356de78c81deb9365c86a5ec4efa990cb72b74df8612ae15965b14136044c73e1f6a907 1103 | languageName: node 1104 | linkType: hard 1105 | 1106 | "eslint-scope@npm:^8.0.1": 1107 | version: 8.0.1 1108 | resolution: "eslint-scope@npm:8.0.1" 1109 | dependencies: 1110 | esrecurse: ^4.3.0 1111 | estraverse: ^5.2.0 1112 | checksum: 67a5a39312dadb8c9a677df0f2e8add8daf15280b08bfe07f898d5347ee2d7cd2a1f5c2760f34e46e8f5f13f7192f47c2c10abe676bfa4173ae5539365551940 1113 | languageName: node 1114 | linkType: hard 1115 | 1116 | "eslint-visitor-keys@npm:^3.3.0": 1117 | version: 3.4.3 1118 | resolution: "eslint-visitor-keys@npm:3.4.3" 1119 | checksum: 36e9ef87fca698b6fd7ca5ca35d7b2b6eeaaf106572e2f7fd31c12d3bfdaccdb587bba6d3621067e5aece31c8c3a348b93922ab8f7b2cbc6aaab5e1d89040c60 1120 | languageName: node 1121 | linkType: hard 1122 | 1123 | "eslint-visitor-keys@npm:^4.0.0": 1124 | version: 4.0.0 1125 | resolution: "eslint-visitor-keys@npm:4.0.0" 1126 | checksum: 5c09f89cf29d87cdbfbac38802a880d3c2e65f8cb61c689888346758f1e24a4c7f6caefeac9474dfa52058a99920623599bdb00516976a30134abeba91275aa2 1127 | languageName: node 1128 | linkType: hard 1129 | 1130 | "eslint@npm:^9.3.0": 1131 | version: 9.3.0 1132 | resolution: "eslint@npm:9.3.0" 1133 | dependencies: 1134 | "@eslint-community/eslint-utils": ^4.2.0 1135 | "@eslint-community/regexpp": ^4.6.1 1136 | "@eslint/eslintrc": ^3.1.0 1137 | "@eslint/js": 9.3.0 1138 | "@humanwhocodes/config-array": ^0.13.0 1139 | "@humanwhocodes/module-importer": ^1.0.1 1140 | "@humanwhocodes/retry": ^0.3.0 1141 | "@nodelib/fs.walk": ^1.2.8 1142 | ajv: ^6.12.4 1143 | chalk: ^4.0.0 1144 | cross-spawn: ^7.0.2 1145 | debug: ^4.3.2 1146 | escape-string-regexp: ^4.0.0 1147 | eslint-scope: ^8.0.1 1148 | eslint-visitor-keys: ^4.0.0 1149 | espree: ^10.0.1 1150 | esquery: ^1.4.2 1151 | esutils: ^2.0.2 1152 | fast-deep-equal: ^3.1.3 1153 | file-entry-cache: ^8.0.0 1154 | find-up: ^5.0.0 1155 | glob-parent: ^6.0.2 1156 | ignore: ^5.2.0 1157 | imurmurhash: ^0.1.4 1158 | is-glob: ^4.0.0 1159 | is-path-inside: ^3.0.3 1160 | json-stable-stringify-without-jsonify: ^1.0.1 1161 | levn: ^0.4.1 1162 | lodash.merge: ^4.6.2 1163 | minimatch: ^3.1.2 1164 | natural-compare: ^1.4.0 1165 | optionator: ^0.9.3 1166 | strip-ansi: ^6.0.1 1167 | text-table: ^0.2.0 1168 | bin: 1169 | eslint: bin/eslint.js 1170 | checksum: c6d1eb8b4b064470a99f0d927b0d2b88f1947d7e871761b43b84e6c9b6464db4f6ebbb868f7196a45d2589978b09919a8807d200e3b1640d0a9cd245c9504707 1171 | languageName: node 1172 | linkType: hard 1173 | 1174 | "espree@npm:^10.0.1": 1175 | version: 10.0.1 1176 | resolution: "espree@npm:10.0.1" 1177 | dependencies: 1178 | acorn: ^8.11.3 1179 | acorn-jsx: ^5.3.2 1180 | eslint-visitor-keys: ^4.0.0 1181 | checksum: 62c9242a84c6741cebd35ede6574131d0419be7e5559566403e384087d99c4ddb2ced44e32acd44a4c3d8a8a84997cf8d78810c4e46b3fe25a804f1a92dc6b9d 1182 | languageName: node 1183 | linkType: hard 1184 | 1185 | "esquery@npm:^1.4.2": 1186 | version: 1.5.0 1187 | resolution: "esquery@npm:1.5.0" 1188 | dependencies: 1189 | estraverse: ^5.1.0 1190 | checksum: aefb0d2596c230118656cd4ec7532d447333a410a48834d80ea648b1e7b5c9bc9ed8b5e33a89cb04e487b60d622f44cf5713bf4abed7c97343edefdc84a35900 1191 | languageName: node 1192 | linkType: hard 1193 | 1194 | "esrecurse@npm:^4.3.0": 1195 | version: 4.3.0 1196 | resolution: "esrecurse@npm:4.3.0" 1197 | dependencies: 1198 | estraverse: ^5.2.0 1199 | checksum: ebc17b1a33c51cef46fdc28b958994b1dc43cd2e86237515cbc3b4e5d2be6a811b2315d0a1a4d9d340b6d2308b15322f5c8291059521cc5f4802f65e7ec32837 1200 | languageName: node 1201 | linkType: hard 1202 | 1203 | "estraverse@npm:^5.1.0, estraverse@npm:^5.2.0": 1204 | version: 5.3.0 1205 | resolution: "estraverse@npm:5.3.0" 1206 | checksum: 072780882dc8416ad144f8fe199628d2b3e7bbc9989d9ed43795d2c90309a2047e6bc5979d7e2322a341163d22cfad9e21f4110597fe487519697389497e4e2b 1207 | languageName: node 1208 | linkType: hard 1209 | 1210 | "esutils@npm:^2.0.2": 1211 | version: 2.0.3 1212 | resolution: "esutils@npm:2.0.3" 1213 | checksum: 22b5b08f74737379a840b8ed2036a5fb35826c709ab000683b092d9054e5c2a82c27818f12604bfc2a9a76b90b6834ef081edbc1c7ae30d1627012e067c6ec87 1214 | languageName: node 1215 | linkType: hard 1216 | 1217 | "etag@npm:~1.8.1": 1218 | version: 1.8.1 1219 | resolution: "etag@npm:1.8.1" 1220 | checksum: 571aeb3dbe0f2bbd4e4fadbdb44f325fc75335cd5f6f6b6a091e6a06a9f25ed5392f0863c5442acb0646787446e816f13cbfc6edce5b07658541dff573cab1ff 1221 | languageName: node 1222 | linkType: hard 1223 | 1224 | "exponential-backoff@npm:^3.1.1": 1225 | version: 3.1.1 1226 | resolution: "exponential-backoff@npm:3.1.1" 1227 | checksum: 3d21519a4f8207c99f7457287291316306255a328770d320b401114ec8481986e4e467e854cb9914dd965e0a1ca810a23ccb559c642c88f4c7f55c55778a9b48 1228 | languageName: node 1229 | linkType: hard 1230 | 1231 | "express@npm:^4.19.2": 1232 | version: 4.19.2 1233 | resolution: "express@npm:4.19.2" 1234 | dependencies: 1235 | accepts: ~1.3.8 1236 | array-flatten: 1.1.1 1237 | body-parser: 1.20.2 1238 | content-disposition: 0.5.4 1239 | content-type: ~1.0.4 1240 | cookie: 0.6.0 1241 | cookie-signature: 1.0.6 1242 | debug: 2.6.9 1243 | depd: 2.0.0 1244 | encodeurl: ~1.0.2 1245 | escape-html: ~1.0.3 1246 | etag: ~1.8.1 1247 | finalhandler: 1.2.0 1248 | fresh: 0.5.2 1249 | http-errors: 2.0.0 1250 | merge-descriptors: 1.0.1 1251 | methods: ~1.1.2 1252 | on-finished: 2.4.1 1253 | parseurl: ~1.3.3 1254 | path-to-regexp: 0.1.7 1255 | proxy-addr: ~2.0.7 1256 | qs: 6.11.0 1257 | range-parser: ~1.2.1 1258 | safe-buffer: 5.2.1 1259 | send: 0.18.0 1260 | serve-static: 1.15.0 1261 | setprototypeof: 1.2.0 1262 | statuses: 2.0.1 1263 | type-is: ~1.6.18 1264 | utils-merge: 1.0.1 1265 | vary: ~1.1.2 1266 | checksum: 212dbd6c2c222a96a61bc927639c95970a53b06257080bb9e2838adb3bffdb966856551fdad1ab5dd654a217c35db94f987d0aa88d48fb04d306340f5f34dca5 1267 | languageName: node 1268 | linkType: hard 1269 | 1270 | "fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": 1271 | version: 3.1.3 1272 | resolution: "fast-deep-equal@npm:3.1.3" 1273 | checksum: e21a9d8d84f53493b6aa15efc9cfd53dd5b714a1f23f67fb5dc8f574af80df889b3bce25dc081887c6d25457cce704e636395333abad896ccdec03abaf1f3f9d 1274 | languageName: node 1275 | linkType: hard 1276 | 1277 | "fast-glob@npm:^3.2.9": 1278 | version: 3.3.2 1279 | resolution: "fast-glob@npm:3.3.2" 1280 | dependencies: 1281 | "@nodelib/fs.stat": ^2.0.2 1282 | "@nodelib/fs.walk": ^1.2.3 1283 | glob-parent: ^5.1.2 1284 | merge2: ^1.3.0 1285 | micromatch: ^4.0.4 1286 | checksum: 900e4979f4dbc3313840078419245621259f349950411ca2fa445a2f9a1a6d98c3b5e7e0660c5ccd563aa61abe133a21765c6c0dec8e57da1ba71d8000b05ec1 1287 | languageName: node 1288 | linkType: hard 1289 | 1290 | "fast-json-stable-stringify@npm:^2.0.0": 1291 | version: 2.1.0 1292 | resolution: "fast-json-stable-stringify@npm:2.1.0" 1293 | checksum: b191531e36c607977e5b1c47811158733c34ccb3bfde92c44798929e9b4154884378536d26ad90dfecd32e1ffc09c545d23535ad91b3161a27ddbb8ebe0cbecb 1294 | languageName: node 1295 | linkType: hard 1296 | 1297 | "fast-levenshtein@npm:^2.0.6": 1298 | version: 2.0.6 1299 | resolution: "fast-levenshtein@npm:2.0.6" 1300 | checksum: 92cfec0a8dfafd9c7a15fba8f2cc29cd0b62b85f056d99ce448bbcd9f708e18ab2764bda4dd5158364f4145a7c72788538994f0d1787b956ef0d1062b0f7c24c 1301 | languageName: node 1302 | linkType: hard 1303 | 1304 | "fastq@npm:^1.6.0": 1305 | version: 1.17.1 1306 | resolution: "fastq@npm:1.17.1" 1307 | dependencies: 1308 | reusify: ^1.0.4 1309 | checksum: a8c5b26788d5a1763f88bae56a8ddeee579f935a831c5fe7a8268cea5b0a91fbfe705f612209e02d639b881d7b48e461a50da4a10cfaa40da5ca7cc9da098d88 1310 | languageName: node 1311 | linkType: hard 1312 | 1313 | "file-entry-cache@npm:^8.0.0": 1314 | version: 8.0.0 1315 | resolution: "file-entry-cache@npm:8.0.0" 1316 | dependencies: 1317 | flat-cache: ^4.0.0 1318 | checksum: f67802d3334809048c69b3d458f672e1b6d26daefda701761c81f203b80149c35dea04d78ea4238969dd617678e530876722a0634c43031a0957f10cc3ed190f 1319 | languageName: node 1320 | linkType: hard 1321 | 1322 | "fill-range@npm:^7.1.1": 1323 | version: 7.1.1 1324 | resolution: "fill-range@npm:7.1.1" 1325 | dependencies: 1326 | to-regex-range: ^5.0.1 1327 | checksum: b4abfbca3839a3d55e4ae5ec62e131e2e356bf4859ce8480c64c4876100f4df292a63e5bb1618e1d7460282ca2b305653064f01654474aa35c68000980f17798 1328 | languageName: node 1329 | linkType: hard 1330 | 1331 | "finalhandler@npm:1.2.0": 1332 | version: 1.2.0 1333 | resolution: "finalhandler@npm:1.2.0" 1334 | dependencies: 1335 | debug: 2.6.9 1336 | encodeurl: ~1.0.2 1337 | escape-html: ~1.0.3 1338 | on-finished: 2.4.1 1339 | parseurl: ~1.3.3 1340 | statuses: 2.0.1 1341 | unpipe: ~1.0.0 1342 | checksum: 92effbfd32e22a7dff2994acedbd9bcc3aa646a3e919ea6a53238090e87097f8ef07cced90aa2cc421abdf993aefbdd5b00104d55c7c5479a8d00ed105b45716 1343 | languageName: node 1344 | linkType: hard 1345 | 1346 | "find-up@npm:^5.0.0": 1347 | version: 5.0.0 1348 | resolution: "find-up@npm:5.0.0" 1349 | dependencies: 1350 | locate-path: ^6.0.0 1351 | path-exists: ^4.0.0 1352 | checksum: 07955e357348f34660bde7920783204ff5a26ac2cafcaa28bace494027158a97b9f56faaf2d89a6106211a8174db650dd9f503f9c0d526b1202d5554a00b9095 1353 | languageName: node 1354 | linkType: hard 1355 | 1356 | "flat-cache@npm:^4.0.0": 1357 | version: 4.0.1 1358 | resolution: "flat-cache@npm:4.0.1" 1359 | dependencies: 1360 | flatted: ^3.2.9 1361 | keyv: ^4.5.4 1362 | checksum: 899fc86bf6df093547d76e7bfaeb900824b869d7d457d02e9b8aae24836f0a99fbad79328cfd6415ee8908f180699bf259dc7614f793447cb14f707caf5996f6 1363 | languageName: node 1364 | linkType: hard 1365 | 1366 | "flatted@npm:^3.2.9": 1367 | version: 3.3.1 1368 | resolution: "flatted@npm:3.3.1" 1369 | checksum: 85ae7181650bb728c221e7644cbc9f4bf28bc556f2fc89bb21266962bdf0ce1029cc7acc44bb646cd469d9baac7c317f64e841c4c4c00516afa97320cdac7f94 1370 | languageName: node 1371 | linkType: hard 1372 | 1373 | "foreground-child@npm:^3.1.0": 1374 | version: 3.1.1 1375 | resolution: "foreground-child@npm:3.1.1" 1376 | dependencies: 1377 | cross-spawn: ^7.0.0 1378 | signal-exit: ^4.0.1 1379 | checksum: 139d270bc82dc9e6f8bc045fe2aae4001dc2472157044fdfad376d0a3457f77857fa883c1c8b21b491c6caade9a926a4bed3d3d2e8d3c9202b151a4cbbd0bcd5 1380 | languageName: node 1381 | linkType: hard 1382 | 1383 | "forwarded@npm:0.2.0": 1384 | version: 0.2.0 1385 | resolution: "forwarded@npm:0.2.0" 1386 | checksum: fd27e2394d8887ebd16a66ffc889dc983fbbd797d5d3f01087c020283c0f019a7d05ee85669383d8e0d216b116d720fc0cef2f6e9b7eb9f4c90c6e0bc7fd28e6 1387 | languageName: node 1388 | linkType: hard 1389 | 1390 | "fresh@npm:0.5.2": 1391 | version: 0.5.2 1392 | resolution: "fresh@npm:0.5.2" 1393 | checksum: 13ea8b08f91e669a64e3ba3a20eb79d7ca5379a81f1ff7f4310d54e2320645503cc0c78daedc93dfb6191287295f6479544a649c64d8e41a1c0fb0c221552346 1394 | languageName: node 1395 | linkType: hard 1396 | 1397 | "fs-minipass@npm:^2.0.0": 1398 | version: 2.1.0 1399 | resolution: "fs-minipass@npm:2.1.0" 1400 | dependencies: 1401 | minipass: ^3.0.0 1402 | checksum: 1b8d128dae2ac6cc94230cc5ead341ba3e0efaef82dab46a33d171c044caaa6ca001364178d42069b2809c35a1c3c35079a32107c770e9ffab3901b59af8c8b1 1403 | languageName: node 1404 | linkType: hard 1405 | 1406 | "fs-minipass@npm:^3.0.0": 1407 | version: 3.0.3 1408 | resolution: "fs-minipass@npm:3.0.3" 1409 | dependencies: 1410 | minipass: ^7.0.3 1411 | checksum: 8722a41109130851d979222d3ec88aabaceeaaf8f57b2a8f744ef8bd2d1ce95453b04a61daa0078822bc5cd21e008814f06fe6586f56fef511e71b8d2394d802 1412 | languageName: node 1413 | linkType: hard 1414 | 1415 | "fsevents@npm:~2.3.2, fsevents@npm:~2.3.3": 1416 | version: 2.3.3 1417 | resolution: "fsevents@npm:2.3.3" 1418 | dependencies: 1419 | node-gyp: latest 1420 | checksum: 11e6ea6fea15e42461fc55b4b0e4a0a3c654faa567f1877dbd353f39156f69def97a69936d1746619d656c4b93de2238bf731f6085a03a50cabf287c9d024317 1421 | conditions: os=darwin 1422 | languageName: node 1423 | linkType: hard 1424 | 1425 | "fsevents@patch:fsevents@~2.3.2#~builtin, fsevents@patch:fsevents@~2.3.3#~builtin": 1426 | version: 2.3.3 1427 | resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin::version=2.3.3&hash=df0bf1" 1428 | dependencies: 1429 | node-gyp: latest 1430 | conditions: os=darwin 1431 | languageName: node 1432 | linkType: hard 1433 | 1434 | "function-bind@npm:^1.1.2": 1435 | version: 1.1.2 1436 | resolution: "function-bind@npm:1.1.2" 1437 | checksum: 2b0ff4ce708d99715ad14a6d1f894e2a83242e4a52ccfcefaee5e40050562e5f6dafc1adbb4ce2d4ab47279a45dc736ab91ea5042d843c3c092820dfe032efb1 1438 | languageName: node 1439 | linkType: hard 1440 | 1441 | "get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.4": 1442 | version: 1.2.4 1443 | resolution: "get-intrinsic@npm:1.2.4" 1444 | dependencies: 1445 | es-errors: ^1.3.0 1446 | function-bind: ^1.1.2 1447 | has-proto: ^1.0.1 1448 | has-symbols: ^1.0.3 1449 | hasown: ^2.0.0 1450 | checksum: 414e3cdf2c203d1b9d7d33111df746a4512a1aa622770b361dadddf8ed0b5aeb26c560f49ca077e24bfafb0acb55ca908d1f709216ccba33ffc548ec8a79a951 1451 | languageName: node 1452 | linkType: hard 1453 | 1454 | "get-tsconfig@npm:^4.7.5": 1455 | version: 4.7.5 1456 | resolution: "get-tsconfig@npm:4.7.5" 1457 | dependencies: 1458 | resolve-pkg-maps: ^1.0.0 1459 | checksum: e5b271fae2b4cd1869bbfc58db56983026cc4a08fdba988725a6edd55d04101507de154722503a22ee35920898ff9bdcba71f99d93b17df35dddb8e8a2ad91be 1460 | languageName: node 1461 | linkType: hard 1462 | 1463 | "glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": 1464 | version: 5.1.2 1465 | resolution: "glob-parent@npm:5.1.2" 1466 | dependencies: 1467 | is-glob: ^4.0.1 1468 | checksum: f4f2bfe2425296e8a47e36864e4f42be38a996db40420fe434565e4480e3322f18eb37589617a98640c5dc8fdec1a387007ee18dbb1f3f5553409c34d17f425e 1469 | languageName: node 1470 | linkType: hard 1471 | 1472 | "glob-parent@npm:^6.0.2": 1473 | version: 6.0.2 1474 | resolution: "glob-parent@npm:6.0.2" 1475 | dependencies: 1476 | is-glob: ^4.0.3 1477 | checksum: c13ee97978bef4f55106b71e66428eb1512e71a7466ba49025fc2aec59a5bfb0954d5abd58fc5ee6c9b076eef4e1f6d3375c2e964b88466ca390da4419a786a8 1478 | languageName: node 1479 | linkType: hard 1480 | 1481 | "glob@npm:^10.2.2, glob@npm:^10.3.10": 1482 | version: 10.4.1 1483 | resolution: "glob@npm:10.4.1" 1484 | dependencies: 1485 | foreground-child: ^3.1.0 1486 | jackspeak: ^3.1.2 1487 | minimatch: ^9.0.4 1488 | minipass: ^7.1.2 1489 | path-scurry: ^1.11.1 1490 | bin: 1491 | glob: dist/esm/bin.mjs 1492 | checksum: 5d33c686c80bf6877f4284adf99a8c3cbb2a6eccbc92342943fe5d4b42c01d78c1881f2223d950c92a938d0f857e12e37b86a8e5483ab2141822e053b67d0dde 1493 | languageName: node 1494 | linkType: hard 1495 | 1496 | "globals@npm:^14.0.0": 1497 | version: 14.0.0 1498 | resolution: "globals@npm:14.0.0" 1499 | checksum: 534b8216736a5425737f59f6e6a5c7f386254560c9f41d24a9227d60ee3ad4a9e82c5b85def0e212e9d92162f83a92544be4c7fd4c902cb913736c10e08237ac 1500 | languageName: node 1501 | linkType: hard 1502 | 1503 | "globby@npm:^11.0.4": 1504 | version: 11.1.0 1505 | resolution: "globby@npm:11.1.0" 1506 | dependencies: 1507 | array-union: ^2.1.0 1508 | dir-glob: ^3.0.1 1509 | fast-glob: ^3.2.9 1510 | ignore: ^5.2.0 1511 | merge2: ^1.4.1 1512 | slash: ^3.0.0 1513 | checksum: b4be8885e0cfa018fc783792942d53926c35c50b3aefd3fdcfb9d22c627639dc26bd2327a40a0b74b074100ce95bb7187bfeae2f236856aa3de183af7a02aea6 1514 | languageName: node 1515 | linkType: hard 1516 | 1517 | "gopd@npm:^1.0.1": 1518 | version: 1.0.1 1519 | resolution: "gopd@npm:1.0.1" 1520 | dependencies: 1521 | get-intrinsic: ^1.1.3 1522 | checksum: a5ccfb8806e0917a94e0b3de2af2ea4979c1da920bc381667c260e00e7cafdbe844e2cb9c5bcfef4e5412e8bf73bab837285bc35c7ba73aaaf0134d4583393a6 1523 | languageName: node 1524 | linkType: hard 1525 | 1526 | "graceful-fs@npm:^4.2.6": 1527 | version: 4.2.11 1528 | resolution: "graceful-fs@npm:4.2.11" 1529 | checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 1530 | languageName: node 1531 | linkType: hard 1532 | 1533 | "has-flag@npm:^4.0.0": 1534 | version: 4.0.0 1535 | resolution: "has-flag@npm:4.0.0" 1536 | checksum: 261a1357037ead75e338156b1f9452c016a37dcd3283a972a30d9e4a87441ba372c8b81f818cd0fbcd9c0354b4ae7e18b9e1afa1971164aef6d18c2b6095a8ad 1537 | languageName: node 1538 | linkType: hard 1539 | 1540 | "has-property-descriptors@npm:^1.0.2": 1541 | version: 1.0.2 1542 | resolution: "has-property-descriptors@npm:1.0.2" 1543 | dependencies: 1544 | es-define-property: ^1.0.0 1545 | checksum: fcbb246ea2838058be39887935231c6d5788babed499d0e9d0cc5737494c48aba4fe17ba1449e0d0fbbb1e36175442faa37f9c427ae357d6ccb1d895fbcd3de3 1546 | languageName: node 1547 | linkType: hard 1548 | 1549 | "has-proto@npm:^1.0.1": 1550 | version: 1.0.3 1551 | resolution: "has-proto@npm:1.0.3" 1552 | checksum: fe7c3d50b33f50f3933a04413ed1f69441d21d2d2944f81036276d30635cad9279f6b43bc8f32036c31ebdfcf6e731150f46c1907ad90c669ffe9b066c3ba5c4 1553 | languageName: node 1554 | linkType: hard 1555 | 1556 | "has-symbols@npm:^1.0.3": 1557 | version: 1.0.3 1558 | resolution: "has-symbols@npm:1.0.3" 1559 | checksum: a054c40c631c0d5741a8285010a0777ea0c068f99ed43e5d6eb12972da223f8af553a455132fdb0801bdcfa0e0f443c0c03a68d8555aa529b3144b446c3f2410 1560 | languageName: node 1561 | linkType: hard 1562 | 1563 | "hasown@npm:^2.0.0": 1564 | version: 2.0.2 1565 | resolution: "hasown@npm:2.0.2" 1566 | dependencies: 1567 | function-bind: ^1.1.2 1568 | checksum: e8516f776a15149ca6c6ed2ae3110c417a00b62260e222590e54aa367cbcd6ed99122020b37b7fbdf05748df57b265e70095d7bf35a47660587619b15ffb93db 1569 | languageName: node 1570 | linkType: hard 1571 | 1572 | "http-cache-semantics@npm:^4.1.1": 1573 | version: 4.1.1 1574 | resolution: "http-cache-semantics@npm:4.1.1" 1575 | checksum: 83ac0bc60b17a3a36f9953e7be55e5c8f41acc61b22583060e8dedc9dd5e3607c823a88d0926f9150e571f90946835c7fe150732801010845c72cd8bbff1a236 1576 | languageName: node 1577 | linkType: hard 1578 | 1579 | "http-errors@npm:2.0.0": 1580 | version: 2.0.0 1581 | resolution: "http-errors@npm:2.0.0" 1582 | dependencies: 1583 | depd: 2.0.0 1584 | inherits: 2.0.4 1585 | setprototypeof: 1.2.0 1586 | statuses: 2.0.1 1587 | toidentifier: 1.0.1 1588 | checksum: 9b0a3782665c52ce9dc658a0d1560bcb0214ba5699e4ea15aefb2a496e2ca83db03ebc42e1cce4ac1f413e4e0d2d736a3fd755772c556a9a06853ba2a0b7d920 1589 | languageName: node 1590 | linkType: hard 1591 | 1592 | "http-proxy-agent@npm:^7.0.0": 1593 | version: 7.0.2 1594 | resolution: "http-proxy-agent@npm:7.0.2" 1595 | dependencies: 1596 | agent-base: ^7.1.0 1597 | debug: ^4.3.4 1598 | checksum: 670858c8f8f3146db5889e1fa117630910101db601fff7d5a8aa637da0abedf68c899f03d3451cac2f83bcc4c3d2dabf339b3aa00ff8080571cceb02c3ce02f3 1599 | languageName: node 1600 | linkType: hard 1601 | 1602 | "https-proxy-agent@npm:^7.0.1": 1603 | version: 7.0.4 1604 | resolution: "https-proxy-agent@npm:7.0.4" 1605 | dependencies: 1606 | agent-base: ^7.0.2 1607 | debug: 4 1608 | checksum: daaab857a967a2519ddc724f91edbbd388d766ff141b9025b629f92b9408fc83cee8a27e11a907aede392938e9c398e240d643e178408a59e4073539cde8cfe9 1609 | languageName: node 1610 | linkType: hard 1611 | 1612 | "iconv-lite@npm:0.4.24": 1613 | version: 0.4.24 1614 | resolution: "iconv-lite@npm:0.4.24" 1615 | dependencies: 1616 | safer-buffer: ">= 2.1.2 < 3" 1617 | checksum: bd9f120f5a5b306f0bc0b9ae1edeb1577161503f5f8252a20f1a9e56ef8775c9959fd01c55f2d3a39d9a8abaf3e30c1abeb1895f367dcbbe0a8fd1c9ca01c4f6 1618 | languageName: node 1619 | linkType: hard 1620 | 1621 | "iconv-lite@npm:^0.6.2": 1622 | version: 0.6.3 1623 | resolution: "iconv-lite@npm:0.6.3" 1624 | dependencies: 1625 | safer-buffer: ">= 2.1.2 < 3.0.0" 1626 | checksum: 3f60d47a5c8fc3313317edfd29a00a692cc87a19cac0159e2ce711d0ebc9019064108323b5e493625e25594f11c6236647d8e256fbe7a58f4a3b33b89e6d30bf 1627 | languageName: node 1628 | linkType: hard 1629 | 1630 | "ignore@npm:^5.2.0": 1631 | version: 5.3.1 1632 | resolution: "ignore@npm:5.3.1" 1633 | checksum: 71d7bb4c1dbe020f915fd881108cbe85a0db3d636a0ea3ba911393c53946711d13a9b1143c7e70db06d571a5822c0a324a6bcde5c9904e7ca5047f01f1bf8cd3 1634 | languageName: node 1635 | linkType: hard 1636 | 1637 | "import-fresh@npm:^3.2.1": 1638 | version: 3.3.0 1639 | resolution: "import-fresh@npm:3.3.0" 1640 | dependencies: 1641 | parent-module: ^1.0.0 1642 | resolve-from: ^4.0.0 1643 | checksum: 2cacfad06e652b1edc50be650f7ec3be08c5e5a6f6d12d035c440a42a8cc028e60a5b99ca08a77ab4d6b1346da7d971915828f33cdab730d3d42f08242d09baa 1644 | languageName: node 1645 | linkType: hard 1646 | 1647 | "imurmurhash@npm:^0.1.4": 1648 | version: 0.1.4 1649 | resolution: "imurmurhash@npm:0.1.4" 1650 | checksum: 7cae75c8cd9a50f57dadd77482359f659eaebac0319dd9368bcd1714f55e65badd6929ca58569da2b6494ef13fdd5598cd700b1eba23f8b79c5f19d195a3ecf7 1651 | languageName: node 1652 | linkType: hard 1653 | 1654 | "indent-string@npm:^4.0.0": 1655 | version: 4.0.0 1656 | resolution: "indent-string@npm:4.0.0" 1657 | checksum: 824cfb9929d031dabf059bebfe08cf3137365e112019086ed3dcff6a0a7b698cb80cf67ccccde0e25b9e2d7527aa6cc1fed1ac490c752162496caba3e6699612 1658 | languageName: node 1659 | linkType: hard 1660 | 1661 | "inherits@npm:2.0.4": 1662 | version: 2.0.4 1663 | resolution: "inherits@npm:2.0.4" 1664 | checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 1665 | languageName: node 1666 | linkType: hard 1667 | 1668 | "ip-address@npm:^9.0.5": 1669 | version: 9.0.5 1670 | resolution: "ip-address@npm:9.0.5" 1671 | dependencies: 1672 | jsbn: 1.1.0 1673 | sprintf-js: ^1.1.3 1674 | checksum: aa15f12cfd0ef5e38349744e3654bae649a34c3b10c77a674a167e99925d1549486c5b14730eebce9fea26f6db9d5e42097b00aa4f9f612e68c79121c71652dc 1675 | languageName: node 1676 | linkType: hard 1677 | 1678 | "ipaddr.js@npm:1.9.1": 1679 | version: 1.9.1 1680 | resolution: "ipaddr.js@npm:1.9.1" 1681 | checksum: f88d3825981486f5a1942414c8d77dd6674dd71c065adcfa46f578d677edcb99fda25af42675cb59db492fdf427b34a5abfcde3982da11a8fd83a500b41cfe77 1682 | languageName: node 1683 | linkType: hard 1684 | 1685 | "is-binary-path@npm:~2.1.0": 1686 | version: 2.1.0 1687 | resolution: "is-binary-path@npm:2.1.0" 1688 | dependencies: 1689 | binary-extensions: ^2.0.0 1690 | checksum: 84192eb88cff70d320426f35ecd63c3d6d495da9d805b19bc65b518984b7c0760280e57dbf119b7e9be6b161784a5a673ab2c6abe83abb5198a432232ad5b35c 1691 | languageName: node 1692 | linkType: hard 1693 | 1694 | "is-extglob@npm:^2.1.1": 1695 | version: 2.1.1 1696 | resolution: "is-extglob@npm:2.1.1" 1697 | checksum: df033653d06d0eb567461e58a7a8c9f940bd8c22274b94bf7671ab36df5719791aae15eef6d83bbb5e23283967f2f984b8914559d4449efda578c775c4be6f85 1698 | languageName: node 1699 | linkType: hard 1700 | 1701 | "is-fullwidth-code-point@npm:^3.0.0": 1702 | version: 3.0.0 1703 | resolution: "is-fullwidth-code-point@npm:3.0.0" 1704 | checksum: 44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348 1705 | languageName: node 1706 | linkType: hard 1707 | 1708 | "is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": 1709 | version: 4.0.3 1710 | resolution: "is-glob@npm:4.0.3" 1711 | dependencies: 1712 | is-extglob: ^2.1.1 1713 | checksum: d381c1319fcb69d341cc6e6c7cd588e17cd94722d9a32dbd60660b993c4fb7d0f19438674e68dfec686d09b7c73139c9166b47597f846af387450224a8101ab4 1714 | languageName: node 1715 | linkType: hard 1716 | 1717 | "is-lambda@npm:^1.0.1": 1718 | version: 1.0.1 1719 | resolution: "is-lambda@npm:1.0.1" 1720 | checksum: 93a32f01940220532e5948538699ad610d5924ac86093fcee83022252b363eb0cc99ba53ab084a04e4fb62bf7b5731f55496257a4c38adf87af9c4d352c71c35 1721 | languageName: node 1722 | linkType: hard 1723 | 1724 | "is-number@npm:^7.0.0": 1725 | version: 7.0.0 1726 | resolution: "is-number@npm:7.0.0" 1727 | checksum: 456ac6f8e0f3111ed34668a624e45315201dff921e5ac181f8ec24923b99e9f32ca1a194912dc79d539c97d33dba17dc635202ff0b2cf98326f608323276d27a 1728 | languageName: node 1729 | linkType: hard 1730 | 1731 | "is-path-inside@npm:^3.0.3": 1732 | version: 3.0.3 1733 | resolution: "is-path-inside@npm:3.0.3" 1734 | checksum: abd50f06186a052b349c15e55b182326f1936c89a78bf6c8f2b707412517c097ce04bc49a0ca221787bc44e1049f51f09a2ffb63d22899051988d3a618ba13e9 1735 | languageName: node 1736 | linkType: hard 1737 | 1738 | "isexe@npm:^2.0.0": 1739 | version: 2.0.0 1740 | resolution: "isexe@npm:2.0.0" 1741 | checksum: 26bf6c5480dda5161c820c5b5c751ae1e766c587b1f951ea3fcfc973bafb7831ae5b54a31a69bd670220e42e99ec154475025a468eae58ea262f813fdc8d1c62 1742 | languageName: node 1743 | linkType: hard 1744 | 1745 | "isexe@npm:^3.1.1": 1746 | version: 3.1.1 1747 | resolution: "isexe@npm:3.1.1" 1748 | checksum: 7fe1931ee4e88eb5aa524cd3ceb8c882537bc3a81b02e438b240e47012eef49c86904d0f0e593ea7c3a9996d18d0f1f3be8d3eaa92333977b0c3a9d353d5563e 1749 | languageName: node 1750 | linkType: hard 1751 | 1752 | "jackspeak@npm:^3.1.2": 1753 | version: 3.1.2 1754 | resolution: "jackspeak@npm:3.1.2" 1755 | dependencies: 1756 | "@isaacs/cliui": ^8.0.2 1757 | "@pkgjs/parseargs": ^0.11.0 1758 | dependenciesMeta: 1759 | "@pkgjs/parseargs": 1760 | optional: true 1761 | checksum: 134276d5f785c518930701a0dcba1f3b0e9ce3e5b1c3e300898e2ae0bbd9b5195088b77252bf2110768de072c426e9e39f47e13912b0b002da4a3f4ff6e16eac 1762 | languageName: node 1763 | linkType: hard 1764 | 1765 | "js-yaml@npm:^4.1.0": 1766 | version: 4.1.0 1767 | resolution: "js-yaml@npm:4.1.0" 1768 | dependencies: 1769 | argparse: ^2.0.1 1770 | bin: 1771 | js-yaml: bin/js-yaml.js 1772 | checksum: c7830dfd456c3ef2c6e355cc5a92e6700ceafa1d14bba54497b34a99f0376cecbb3e9ac14d3e5849b426d5a5140709a66237a8c991c675431271c4ce5504151a 1773 | languageName: node 1774 | linkType: hard 1775 | 1776 | "jsbn@npm:1.1.0": 1777 | version: 1.1.0 1778 | resolution: "jsbn@npm:1.1.0" 1779 | checksum: 944f924f2bd67ad533b3850eee47603eed0f6ae425fd1ee8c760f477e8c34a05f144c1bd4f5a5dd1963141dc79a2c55f89ccc5ab77d039e7077f3ad196b64965 1780 | languageName: node 1781 | linkType: hard 1782 | 1783 | "json-buffer@npm:3.0.1": 1784 | version: 3.0.1 1785 | resolution: "json-buffer@npm:3.0.1" 1786 | checksum: 9026b03edc2847eefa2e37646c579300a1f3a4586cfb62bf857832b60c852042d0d6ae55d1afb8926163fa54c2b01d83ae24705f34990348bdac6273a29d4581 1787 | languageName: node 1788 | linkType: hard 1789 | 1790 | "json-schema-traverse@npm:^0.4.1": 1791 | version: 0.4.1 1792 | resolution: "json-schema-traverse@npm:0.4.1" 1793 | checksum: 7486074d3ba247769fda17d5181b345c9fb7d12e0da98b22d1d71a5db9698d8b4bd900a3ec1a4ffdd60846fc2556274a5c894d0c48795f14cb03aeae7b55260b 1794 | languageName: node 1795 | linkType: hard 1796 | 1797 | "json-stable-stringify-without-jsonify@npm:^1.0.1": 1798 | version: 1.0.1 1799 | resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" 1800 | checksum: cff44156ddce9c67c44386ad5cddf91925fe06b1d217f2da9c4910d01f358c6e3989c4d5a02683c7a5667f9727ff05831f7aa8ae66c8ff691c556f0884d49215 1801 | languageName: node 1802 | linkType: hard 1803 | 1804 | "keyv@npm:^4.5.4": 1805 | version: 4.5.4 1806 | resolution: "keyv@npm:4.5.4" 1807 | dependencies: 1808 | json-buffer: 3.0.1 1809 | checksum: 74a24395b1c34bd44ad5cb2b49140d087553e170625240b86755a6604cd65aa16efdbdeae5cdb17ba1284a0fbb25ad06263755dbc71b8d8b06f74232ce3cdd72 1810 | languageName: node 1811 | linkType: hard 1812 | 1813 | "levn@npm:^0.4.1": 1814 | version: 0.4.1 1815 | resolution: "levn@npm:0.4.1" 1816 | dependencies: 1817 | prelude-ls: ^1.2.1 1818 | type-check: ~0.4.0 1819 | checksum: 12c5021c859bd0f5248561bf139121f0358285ec545ebf48bb3d346820d5c61a4309535c7f387ed7d84361cf821e124ce346c6b7cef8ee09a67c1473b46d0fc4 1820 | languageName: node 1821 | linkType: hard 1822 | 1823 | "locate-path@npm:^6.0.0": 1824 | version: 6.0.0 1825 | resolution: "locate-path@npm:6.0.0" 1826 | dependencies: 1827 | p-locate: ^5.0.0 1828 | checksum: 72eb661788a0368c099a184c59d2fee760b3831c9c1c33955e8a19ae4a21b4116e53fa736dc086cdeb9fce9f7cc508f2f92d2d3aae516f133e16a2bb59a39f5a 1829 | languageName: node 1830 | linkType: hard 1831 | 1832 | "lodash.merge@npm:^4.6.2": 1833 | version: 4.6.2 1834 | resolution: "lodash.merge@npm:4.6.2" 1835 | checksum: ad580b4bdbb7ca1f7abf7e1bce63a9a0b98e370cf40194b03380a46b4ed799c9573029599caebc1b14e3f24b111aef72b96674a56cfa105e0f5ac70546cdc005 1836 | languageName: node 1837 | linkType: hard 1838 | 1839 | "lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0": 1840 | version: 10.2.2 1841 | resolution: "lru-cache@npm:10.2.2" 1842 | checksum: 98e8fc93691c546f719a76103ef2bee5a3ac823955c755a47641ec41f8c7fafa1baeaba466937cc1cbfa9cfd47e03536d10e2db3158a64ad91ff3a58a32c893e 1843 | languageName: node 1844 | linkType: hard 1845 | 1846 | "make-error@npm:^1.1.1": 1847 | version: 1.3.6 1848 | resolution: "make-error@npm:1.3.6" 1849 | checksum: b86e5e0e25f7f777b77fabd8e2cbf15737972869d852a22b7e73c17623928fccb826d8e46b9951501d3f20e51ad74ba8c59ed584f610526a48f8ccf88aaec402 1850 | languageName: node 1851 | linkType: hard 1852 | 1853 | "make-fetch-happen@npm:^13.0.0": 1854 | version: 13.0.1 1855 | resolution: "make-fetch-happen@npm:13.0.1" 1856 | dependencies: 1857 | "@npmcli/agent": ^2.0.0 1858 | cacache: ^18.0.0 1859 | http-cache-semantics: ^4.1.1 1860 | is-lambda: ^1.0.1 1861 | minipass: ^7.0.2 1862 | minipass-fetch: ^3.0.0 1863 | minipass-flush: ^1.0.5 1864 | minipass-pipeline: ^1.2.4 1865 | negotiator: ^0.6.3 1866 | proc-log: ^4.2.0 1867 | promise-retry: ^2.0.1 1868 | ssri: ^10.0.0 1869 | checksum: 5c9fad695579b79488fa100da05777213dd9365222f85e4757630f8dd2a21a79ddd3206c78cfd6f9b37346819681782b67900ac847a57cf04190f52dda5343fd 1870 | languageName: node 1871 | linkType: hard 1872 | 1873 | "media-typer@npm:0.3.0": 1874 | version: 0.3.0 1875 | resolution: "media-typer@npm:0.3.0" 1876 | checksum: af1b38516c28ec95d6b0826f6c8f276c58aec391f76be42aa07646b4e39d317723e869700933ca6995b056db4b09a78c92d5440dc23657e6764be5d28874bba1 1877 | languageName: node 1878 | linkType: hard 1879 | 1880 | "merge-descriptors@npm:1.0.1": 1881 | version: 1.0.1 1882 | resolution: "merge-descriptors@npm:1.0.1" 1883 | checksum: 5abc259d2ae25bb06d19ce2b94a21632583c74e2a9109ee1ba7fd147aa7362b380d971e0251069f8b3eb7d48c21ac839e21fa177b335e82c76ec172e30c31a26 1884 | languageName: node 1885 | linkType: hard 1886 | 1887 | "merge2@npm:^1.3.0, merge2@npm:^1.4.1": 1888 | version: 1.4.1 1889 | resolution: "merge2@npm:1.4.1" 1890 | checksum: 7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2 1891 | languageName: node 1892 | linkType: hard 1893 | 1894 | "methods@npm:~1.1.2": 1895 | version: 1.1.2 1896 | resolution: "methods@npm:1.1.2" 1897 | checksum: 0917ff4041fa8e2f2fda5425a955fe16ca411591fbd123c0d722fcf02b73971ed6f764d85f0a6f547ce49ee0221ce2c19a5fa692157931cecb422984f1dcd13a 1898 | languageName: node 1899 | linkType: hard 1900 | 1901 | "micromatch@npm:^4.0.4": 1902 | version: 4.0.7 1903 | resolution: "micromatch@npm:4.0.7" 1904 | dependencies: 1905 | braces: ^3.0.3 1906 | picomatch: ^2.3.1 1907 | checksum: 3cde047d70ad80cf60c787b77198d680db3b8c25b23feb01de5e2652205d9c19f43bd81882f69a0fd1f0cde6a7a122d774998aad3271ddb1b8accf8a0f480cf7 1908 | languageName: node 1909 | linkType: hard 1910 | 1911 | "mime-db@npm:1.52.0": 1912 | version: 1.52.0 1913 | resolution: "mime-db@npm:1.52.0" 1914 | checksum: 0d99a03585f8b39d68182803b12ac601d9c01abfa28ec56204fa330bc9f3d1c5e14beb049bafadb3dbdf646dfb94b87e24d4ec7b31b7279ef906a8ea9b6a513f 1915 | languageName: node 1916 | linkType: hard 1917 | 1918 | "mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": 1919 | version: 2.1.35 1920 | resolution: "mime-types@npm:2.1.35" 1921 | dependencies: 1922 | mime-db: 1.52.0 1923 | checksum: 89a5b7f1def9f3af5dad6496c5ed50191ae4331cc5389d7c521c8ad28d5fdad2d06fd81baf38fed813dc4e46bb55c8145bb0ff406330818c9cf712fb2e9b3836 1924 | languageName: node 1925 | linkType: hard 1926 | 1927 | "mime@npm:1.6.0": 1928 | version: 1.6.0 1929 | resolution: "mime@npm:1.6.0" 1930 | bin: 1931 | mime: cli.js 1932 | checksum: fef25e39263e6d207580bdc629f8872a3f9772c923c7f8c7e793175cee22777bbe8bba95e5d509a40aaa292d8974514ce634ae35769faa45f22d17edda5e8557 1933 | languageName: node 1934 | linkType: hard 1935 | 1936 | "minimatch@npm:^3.0.5, minimatch@npm:^3.1.2": 1937 | version: 3.1.2 1938 | resolution: "minimatch@npm:3.1.2" 1939 | dependencies: 1940 | brace-expansion: ^1.1.7 1941 | checksum: c154e566406683e7bcb746e000b84d74465b3a832c45d59912b9b55cd50dee66e5c4b1e5566dba26154040e51672f9aa450a9aef0c97cfc7336b78b7afb9540a 1942 | languageName: node 1943 | linkType: hard 1944 | 1945 | "minimatch@npm:^9.0.4": 1946 | version: 9.0.4 1947 | resolution: "minimatch@npm:9.0.4" 1948 | dependencies: 1949 | brace-expansion: ^2.0.1 1950 | checksum: cf717f597ec3eed7dabc33153482a2e8d49f4fd3c26e58fd9c71a94c5029a0838728841b93f46bf1263b65a8010e2ee800d0dc9b004ab8ba8b6d1ec07cc115b5 1951 | languageName: node 1952 | linkType: hard 1953 | 1954 | "minipass-collect@npm:^2.0.1": 1955 | version: 2.0.1 1956 | resolution: "minipass-collect@npm:2.0.1" 1957 | dependencies: 1958 | minipass: ^7.0.3 1959 | checksum: b251bceea62090f67a6cced7a446a36f4cd61ee2d5cea9aee7fff79ba8030e416327a1c5aa2908dc22629d06214b46d88fdab8c51ac76bacbf5703851b5ad342 1960 | languageName: node 1961 | linkType: hard 1962 | 1963 | "minipass-fetch@npm:^3.0.0": 1964 | version: 3.0.5 1965 | resolution: "minipass-fetch@npm:3.0.5" 1966 | dependencies: 1967 | encoding: ^0.1.13 1968 | minipass: ^7.0.3 1969 | minipass-sized: ^1.0.3 1970 | minizlib: ^2.1.2 1971 | dependenciesMeta: 1972 | encoding: 1973 | optional: true 1974 | checksum: 8047d273236157aab27ab7cd8eab7ea79e6ecd63e8f80c3366ec076cb9a0fed550a6935bab51764369027c414647fd8256c2a20c5445fb250c483de43350de83 1975 | languageName: node 1976 | linkType: hard 1977 | 1978 | "minipass-flush@npm:^1.0.5": 1979 | version: 1.0.5 1980 | resolution: "minipass-flush@npm:1.0.5" 1981 | dependencies: 1982 | minipass: ^3.0.0 1983 | checksum: 56269a0b22bad756a08a94b1ffc36b7c9c5de0735a4dd1ab2b06c066d795cfd1f0ac44a0fcae13eece5589b908ecddc867f04c745c7009be0b566421ea0944cf 1984 | languageName: node 1985 | linkType: hard 1986 | 1987 | "minipass-pipeline@npm:^1.2.4": 1988 | version: 1.2.4 1989 | resolution: "minipass-pipeline@npm:1.2.4" 1990 | dependencies: 1991 | minipass: ^3.0.0 1992 | checksum: b14240dac0d29823c3d5911c286069e36d0b81173d7bdf07a7e4a91ecdef92cdff4baaf31ea3746f1c61e0957f652e641223970870e2353593f382112257971b 1993 | languageName: node 1994 | linkType: hard 1995 | 1996 | "minipass-sized@npm:^1.0.3": 1997 | version: 1.0.3 1998 | resolution: "minipass-sized@npm:1.0.3" 1999 | dependencies: 2000 | minipass: ^3.0.0 2001 | checksum: 79076749fcacf21b5d16dd596d32c3b6bf4d6e62abb43868fac21674078505c8b15eaca4e47ed844985a4514854f917d78f588fcd029693709417d8f98b2bd60 2002 | languageName: node 2003 | linkType: hard 2004 | 2005 | "minipass@npm:^3.0.0": 2006 | version: 3.3.6 2007 | resolution: "minipass@npm:3.3.6" 2008 | dependencies: 2009 | yallist: ^4.0.0 2010 | checksum: a30d083c8054cee83cdcdc97f97e4641a3f58ae743970457b1489ce38ee1167b3aaf7d815cd39ec7a99b9c40397fd4f686e83750e73e652b21cb516f6d845e48 2011 | languageName: node 2012 | linkType: hard 2013 | 2014 | "minipass@npm:^5.0.0": 2015 | version: 5.0.0 2016 | resolution: "minipass@npm:5.0.0" 2017 | checksum: 425dab288738853fded43da3314a0b5c035844d6f3097a8e3b5b29b328da8f3c1af6fc70618b32c29ff906284cf6406b6841376f21caaadd0793c1d5a6a620ea 2018 | languageName: node 2019 | linkType: hard 2020 | 2021 | "minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.1.2": 2022 | version: 7.1.2 2023 | resolution: "minipass@npm:7.1.2" 2024 | checksum: 2bfd325b95c555f2b4d2814d49325691c7bee937d753814861b0b49d5edcda55cbbf22b6b6a60bb91eddac8668771f03c5ff647dcd9d0f798e9548b9cdc46ee3 2025 | languageName: node 2026 | linkType: hard 2027 | 2028 | "minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": 2029 | version: 2.1.2 2030 | resolution: "minizlib@npm:2.1.2" 2031 | dependencies: 2032 | minipass: ^3.0.0 2033 | yallist: ^4.0.0 2034 | checksum: f1fdeac0b07cf8f30fcf12f4b586795b97be856edea22b5e9072707be51fc95d41487faec3f265b42973a304fe3a64acd91a44a3826a963e37b37bafde0212c3 2035 | languageName: node 2036 | linkType: hard 2037 | 2038 | "mkdirp@npm:^1.0.3": 2039 | version: 1.0.4 2040 | resolution: "mkdirp@npm:1.0.4" 2041 | bin: 2042 | mkdirp: bin/cmd.js 2043 | checksum: a96865108c6c3b1b8e1d5e9f11843de1e077e57737602de1b82030815f311be11f96f09cce59bd5b903d0b29834733e5313f9301e3ed6d6f6fba2eae0df4298f 2044 | languageName: node 2045 | linkType: hard 2046 | 2047 | "ms@npm:2.0.0": 2048 | version: 2.0.0 2049 | resolution: "ms@npm:2.0.0" 2050 | checksum: 0e6a22b8b746d2e0b65a430519934fefd41b6db0682e3477c10f60c76e947c4c0ad06f63ffdf1d78d335f83edee8c0aa928aa66a36c7cd95b69b26f468d527f4 2051 | languageName: node 2052 | linkType: hard 2053 | 2054 | "ms@npm:2.1.2": 2055 | version: 2.1.2 2056 | resolution: "ms@npm:2.1.2" 2057 | checksum: 673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f 2058 | languageName: node 2059 | linkType: hard 2060 | 2061 | "ms@npm:2.1.3": 2062 | version: 2.1.3 2063 | resolution: "ms@npm:2.1.3" 2064 | checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d 2065 | languageName: node 2066 | linkType: hard 2067 | 2068 | "mylas@npm:^2.1.9": 2069 | version: 2.1.13 2070 | resolution: "mylas@npm:2.1.13" 2071 | checksum: f861d092137a9ac268cba88042392a5dc2a290eed5c8543954eae849d85e5961332211161d2c08c3644ad893f20dbe9de89b07f5dc027f1f92f13f2d38f4b81f 2072 | languageName: node 2073 | linkType: hard 2074 | 2075 | "natural-compare@npm:^1.4.0": 2076 | version: 1.4.0 2077 | resolution: "natural-compare@npm:1.4.0" 2078 | checksum: 23ad088b08f898fc9b53011d7bb78ec48e79de7627e01ab5518e806033861bef68d5b0cd0e2205c2f36690ac9571ff6bcb05eb777ced2eeda8d4ac5b44592c3d 2079 | languageName: node 2080 | linkType: hard 2081 | 2082 | "negotiator@npm:0.6.3, negotiator@npm:^0.6.3": 2083 | version: 0.6.3 2084 | resolution: "negotiator@npm:0.6.3" 2085 | checksum: b8ffeb1e262eff7968fc90a2b6767b04cfd9842582a9d0ece0af7049537266e7b2506dfb1d107a32f06dd849ab2aea834d5830f7f4d0e5cb7d36e1ae55d021d9 2086 | languageName: node 2087 | linkType: hard 2088 | 2089 | "node-gyp@npm:latest": 2090 | version: 10.1.0 2091 | resolution: "node-gyp@npm:10.1.0" 2092 | dependencies: 2093 | env-paths: ^2.2.0 2094 | exponential-backoff: ^3.1.1 2095 | glob: ^10.3.10 2096 | graceful-fs: ^4.2.6 2097 | make-fetch-happen: ^13.0.0 2098 | nopt: ^7.0.0 2099 | proc-log: ^3.0.0 2100 | semver: ^7.3.5 2101 | tar: ^6.1.2 2102 | which: ^4.0.0 2103 | bin: 2104 | node-gyp: bin/node-gyp.js 2105 | checksum: 72e2ab4b23fc32007a763da94018f58069fc0694bf36115d49a2b195c8831e12cf5dd1e7a3718fa85c06969aedf8fc126722d3b672ec1cb27e06ed33caee3c60 2106 | languageName: node 2107 | linkType: hard 2108 | 2109 | "nopt@npm:^7.0.0": 2110 | version: 7.2.1 2111 | resolution: "nopt@npm:7.2.1" 2112 | dependencies: 2113 | abbrev: ^2.0.0 2114 | bin: 2115 | nopt: bin/nopt.js 2116 | checksum: 6fa729cc77ce4162cfad8abbc9ba31d4a0ff6850c3af61d59b505653bef4781ec059f8890ecfe93ee8aa0c511093369cca88bfc998101616a2904e715bbbb7c9 2117 | languageName: node 2118 | linkType: hard 2119 | 2120 | "normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": 2121 | version: 3.0.0 2122 | resolution: "normalize-path@npm:3.0.0" 2123 | checksum: 88eeb4da891e10b1318c4b2476b6e2ecbeb5ff97d946815ffea7794c31a89017c70d7f34b3c2ebf23ef4e9fc9fb99f7dffe36da22011b5b5c6ffa34f4873ec20 2124 | languageName: node 2125 | linkType: hard 2126 | 2127 | "object-inspect@npm:^1.13.1": 2128 | version: 1.13.1 2129 | resolution: "object-inspect@npm:1.13.1" 2130 | checksum: 7d9fa9221de3311dcb5c7c307ee5dc011cdd31dc43624b7c184b3840514e118e05ef0002be5388304c416c0eb592feb46e983db12577fc47e47d5752fbbfb61f 2131 | languageName: node 2132 | linkType: hard 2133 | 2134 | "on-finished@npm:2.4.1": 2135 | version: 2.4.1 2136 | resolution: "on-finished@npm:2.4.1" 2137 | dependencies: 2138 | ee-first: 1.1.1 2139 | checksum: d20929a25e7f0bb62f937a425b5edeb4e4cde0540d77ba146ec9357f00b0d497cdb3b9b05b9c8e46222407d1548d08166bff69cc56dfa55ba0e4469228920ff0 2140 | languageName: node 2141 | linkType: hard 2142 | 2143 | "optionator@npm:^0.9.3": 2144 | version: 0.9.4 2145 | resolution: "optionator@npm:0.9.4" 2146 | dependencies: 2147 | deep-is: ^0.1.3 2148 | fast-levenshtein: ^2.0.6 2149 | levn: ^0.4.1 2150 | prelude-ls: ^1.2.1 2151 | type-check: ^0.4.0 2152 | word-wrap: ^1.2.5 2153 | checksum: ecbd010e3dc73e05d239976422d9ef54a82a13f37c11ca5911dff41c98a6c7f0f163b27f922c37e7f8340af9d36febd3b6e9cef508f3339d4c393d7276d716bb 2154 | languageName: node 2155 | linkType: hard 2156 | 2157 | "p-limit@npm:^3.0.2": 2158 | version: 3.1.0 2159 | resolution: "p-limit@npm:3.1.0" 2160 | dependencies: 2161 | yocto-queue: ^0.1.0 2162 | checksum: 7c3690c4dbf62ef625671e20b7bdf1cbc9534e83352a2780f165b0d3ceba21907e77ad63401708145ca4e25bfc51636588d89a8c0aeb715e6c37d1c066430360 2163 | languageName: node 2164 | linkType: hard 2165 | 2166 | "p-locate@npm:^5.0.0": 2167 | version: 5.0.0 2168 | resolution: "p-locate@npm:5.0.0" 2169 | dependencies: 2170 | p-limit: ^3.0.2 2171 | checksum: 1623088f36cf1cbca58e9b61c4e62bf0c60a07af5ae1ca99a720837356b5b6c5ba3eb1b2127e47a06865fee59dd0453cad7cc844cda9d5a62ac1a5a51b7c86d3 2172 | languageName: node 2173 | linkType: hard 2174 | 2175 | "p-map@npm:^4.0.0": 2176 | version: 4.0.0 2177 | resolution: "p-map@npm:4.0.0" 2178 | dependencies: 2179 | aggregate-error: ^3.0.0 2180 | checksum: cb0ab21ec0f32ddffd31dfc250e3afa61e103ef43d957cc45497afe37513634589316de4eb88abdfd969fe6410c22c0b93ab24328833b8eb1ccc087fc0442a1c 2181 | languageName: node 2182 | linkType: hard 2183 | 2184 | "parent-module@npm:^1.0.0": 2185 | version: 1.0.1 2186 | resolution: "parent-module@npm:1.0.1" 2187 | dependencies: 2188 | callsites: ^3.0.0 2189 | checksum: 6ba8b255145cae9470cf5551eb74be2d22281587af787a2626683a6c20fbb464978784661478dd2a3f1dad74d1e802d403e1b03c1a31fab310259eec8ac560ff 2190 | languageName: node 2191 | linkType: hard 2192 | 2193 | "parseurl@npm:~1.3.3": 2194 | version: 1.3.3 2195 | resolution: "parseurl@npm:1.3.3" 2196 | checksum: 407cee8e0a3a4c5cd472559bca8b6a45b82c124e9a4703302326e9ab60fc1081442ada4e02628efef1eb16197ddc7f8822f5a91fd7d7c86b51f530aedb17dfa2 2197 | languageName: node 2198 | linkType: hard 2199 | 2200 | "path-exists@npm:^4.0.0": 2201 | version: 4.0.0 2202 | resolution: "path-exists@npm:4.0.0" 2203 | checksum: 505807199dfb7c50737b057dd8d351b82c033029ab94cb10a657609e00c1bc53b951cfdbccab8de04c5584d5eff31128ce6afd3db79281874a5ef2adbba55ed1 2204 | languageName: node 2205 | linkType: hard 2206 | 2207 | "path-key@npm:^3.1.0": 2208 | version: 3.1.1 2209 | resolution: "path-key@npm:3.1.1" 2210 | checksum: 55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020 2211 | languageName: node 2212 | linkType: hard 2213 | 2214 | "path-scurry@npm:^1.11.1": 2215 | version: 1.11.1 2216 | resolution: "path-scurry@npm:1.11.1" 2217 | dependencies: 2218 | lru-cache: ^10.2.0 2219 | minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 2220 | checksum: 890d5abcd593a7912dcce7cf7c6bf7a0b5648e3dee6caf0712c126ca0a65c7f3d7b9d769072a4d1baf370f61ce493ab5b038d59988688e0c5f3f646ee3c69023 2221 | languageName: node 2222 | linkType: hard 2223 | 2224 | "path-to-regexp@npm:0.1.7": 2225 | version: 0.1.7 2226 | resolution: "path-to-regexp@npm:0.1.7" 2227 | checksum: 69a14ea24db543e8b0f4353305c5eac6907917031340e5a8b37df688e52accd09e3cebfe1660b70d76b6bd89152f52183f28c74813dbf454ba1a01c82a38abce 2228 | languageName: node 2229 | linkType: hard 2230 | 2231 | "path-type@npm:^4.0.0": 2232 | version: 4.0.0 2233 | resolution: "path-type@npm:4.0.0" 2234 | checksum: 5b1e2daa247062061325b8fdbfd1fb56dde0a448fb1455453276ea18c60685bdad23a445dc148cf87bc216be1573357509b7d4060494a6fd768c7efad833ee45 2235 | languageName: node 2236 | linkType: hard 2237 | 2238 | "picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.3.1": 2239 | version: 2.3.1 2240 | resolution: "picomatch@npm:2.3.1" 2241 | checksum: 050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf 2242 | languageName: node 2243 | linkType: hard 2244 | 2245 | "plimit-lit@npm:^1.2.6": 2246 | version: 1.6.1 2247 | resolution: "plimit-lit@npm:1.6.1" 2248 | dependencies: 2249 | queue-lit: ^1.5.1 2250 | checksum: 5f18f1ea7254832bdc663c303420c804b5bc8070c670c88161171f0ebacaf46ce7ca12147ddf52bc22d927bb37bfbac6ed6fa478c93cb4be16b62c5fad16dd5f 2251 | languageName: node 2252 | linkType: hard 2253 | 2254 | "prelude-ls@npm:^1.2.1": 2255 | version: 1.2.1 2256 | resolution: "prelude-ls@npm:1.2.1" 2257 | checksum: cd192ec0d0a8e4c6da3bb80e4f62afe336df3f76271ac6deb0e6a36187133b6073a19e9727a1ff108cd8b9982e4768850d413baa71214dd80c7979617dca827a 2258 | languageName: node 2259 | linkType: hard 2260 | 2261 | "prettier@npm:^3.2.5": 2262 | version: 3.2.5 2263 | resolution: "prettier@npm:3.2.5" 2264 | bin: 2265 | prettier: bin/prettier.cjs 2266 | checksum: 2ee4e1417572372afb7a13bb446b34f20f1bf1747db77cf6ccaf57a9be005f2f15c40f903d41a6b79eec3f57fff14d32a20fb6dee1f126da48908926fe43c311 2267 | languageName: node 2268 | linkType: hard 2269 | 2270 | "proc-log@npm:^3.0.0": 2271 | version: 3.0.0 2272 | resolution: "proc-log@npm:3.0.0" 2273 | checksum: 02b64e1b3919e63df06f836b98d3af002b5cd92655cab18b5746e37374bfb73e03b84fe305454614b34c25b485cc687a9eebdccf0242cda8fda2475dd2c97e02 2274 | languageName: node 2275 | linkType: hard 2276 | 2277 | "proc-log@npm:^4.2.0": 2278 | version: 4.2.0 2279 | resolution: "proc-log@npm:4.2.0" 2280 | checksum: 98f6cd012d54b5334144c5255ecb941ee171744f45fca8b43b58ae5a0c1af07352475f481cadd9848e7f0250376ee584f6aa0951a856ff8f021bdfbff4eb33fc 2281 | languageName: node 2282 | linkType: hard 2283 | 2284 | "promise-retry@npm:^2.0.1": 2285 | version: 2.0.1 2286 | resolution: "promise-retry@npm:2.0.1" 2287 | dependencies: 2288 | err-code: ^2.0.2 2289 | retry: ^0.12.0 2290 | checksum: f96a3f6d90b92b568a26f71e966cbbc0f63ab85ea6ff6c81284dc869b41510e6cdef99b6b65f9030f0db422bf7c96652a3fff9f2e8fb4a0f069d8f4430359429 2291 | languageName: node 2292 | linkType: hard 2293 | 2294 | "proxy-addr@npm:~2.0.7": 2295 | version: 2.0.7 2296 | resolution: "proxy-addr@npm:2.0.7" 2297 | dependencies: 2298 | forwarded: 0.2.0 2299 | ipaddr.js: 1.9.1 2300 | checksum: 29c6990ce9364648255454842f06f8c46fcd124d3e6d7c5066df44662de63cdc0bad032e9bf5a3d653ff72141cc7b6019873d685708ac8210c30458ad99f2b74 2301 | languageName: node 2302 | linkType: hard 2303 | 2304 | "punycode@npm:^2.1.0": 2305 | version: 2.3.1 2306 | resolution: "punycode@npm:2.3.1" 2307 | checksum: bb0a0ceedca4c3c57a9b981b90601579058903c62be23c5e8e843d2c2d4148a3ecf029d5133486fb0e1822b098ba8bba09e89d6b21742d02fa26bda6441a6fb2 2308 | languageName: node 2309 | linkType: hard 2310 | 2311 | "qs@npm:6.11.0": 2312 | version: 6.11.0 2313 | resolution: "qs@npm:6.11.0" 2314 | dependencies: 2315 | side-channel: ^1.0.4 2316 | checksum: 6e1f29dd5385f7488ec74ac7b6c92f4d09a90408882d0c208414a34dd33badc1a621019d4c799a3df15ab9b1d0292f97c1dd71dc7c045e69f81a8064e5af7297 2317 | languageName: node 2318 | linkType: hard 2319 | 2320 | "queue-lit@npm:^1.5.1": 2321 | version: 1.5.2 2322 | resolution: "queue-lit@npm:1.5.2" 2323 | checksum: 8dd45c79bd25b33b0c7d587391eb0b4acc4deb797bf92fef62b2d8e7c03b64083f5304f09d52a18267d34d020cc67ccde97a88185b67590eeccb194938ff1f98 2324 | languageName: node 2325 | linkType: hard 2326 | 2327 | "queue-microtask@npm:^1.2.2": 2328 | version: 1.2.3 2329 | resolution: "queue-microtask@npm:1.2.3" 2330 | checksum: b676f8c040cdc5b12723ad2f91414d267605b26419d5c821ff03befa817ddd10e238d22b25d604920340fd73efd8ba795465a0377c4adf45a4a41e4234e42dc4 2331 | languageName: node 2332 | linkType: hard 2333 | 2334 | "range-parser@npm:~1.2.1": 2335 | version: 1.2.1 2336 | resolution: "range-parser@npm:1.2.1" 2337 | checksum: 0a268d4fea508661cf5743dfe3d5f47ce214fd6b7dec1de0da4d669dd4ef3d2144468ebe4179049eff253d9d27e719c88dae55be64f954e80135a0cada804ec9 2338 | languageName: node 2339 | linkType: hard 2340 | 2341 | "raw-body@npm:2.5.2": 2342 | version: 2.5.2 2343 | resolution: "raw-body@npm:2.5.2" 2344 | dependencies: 2345 | bytes: 3.1.2 2346 | http-errors: 2.0.0 2347 | iconv-lite: 0.4.24 2348 | unpipe: 1.0.0 2349 | checksum: ba1583c8d8a48e8fbb7a873fdbb2df66ea4ff83775421bfe21ee120140949ab048200668c47d9ae3880012f6e217052690628cf679ddfbd82c9fc9358d574676 2350 | languageName: node 2351 | linkType: hard 2352 | 2353 | "readdirp@npm:~3.6.0": 2354 | version: 3.6.0 2355 | resolution: "readdirp@npm:3.6.0" 2356 | dependencies: 2357 | picomatch: ^2.2.1 2358 | checksum: 1ced032e6e45670b6d7352d71d21ce7edf7b9b928494dcaba6f11fba63180d9da6cd7061ebc34175ffda6ff529f481818c962952004d273178acd70f7059b320 2359 | languageName: node 2360 | linkType: hard 2361 | 2362 | "resolve-from@npm:^4.0.0": 2363 | version: 4.0.0 2364 | resolution: "resolve-from@npm:4.0.0" 2365 | checksum: f4ba0b8494846a5066328ad33ef8ac173801a51739eb4d63408c847da9a2e1c1de1e6cbbf72699211f3d13f8fc1325648b169bd15eb7da35688e30a5fb0e4a7f 2366 | languageName: node 2367 | linkType: hard 2368 | 2369 | "resolve-pkg-maps@npm:^1.0.0": 2370 | version: 1.0.0 2371 | resolution: "resolve-pkg-maps@npm:1.0.0" 2372 | checksum: 1012afc566b3fdb190a6309cc37ef3b2dcc35dff5fa6683a9d00cd25c3247edfbc4691b91078c97adc82a29b77a2660c30d791d65dab4fc78bfc473f60289977 2373 | languageName: node 2374 | linkType: hard 2375 | 2376 | "retry@npm:^0.12.0": 2377 | version: 0.12.0 2378 | resolution: "retry@npm:0.12.0" 2379 | checksum: 623bd7d2e5119467ba66202d733ec3c2e2e26568074923bc0585b6b99db14f357e79bdedb63cab56cec47491c4a0da7e6021a7465ca6dc4f481d3898fdd3158c 2380 | languageName: node 2381 | linkType: hard 2382 | 2383 | "reusify@npm:^1.0.4": 2384 | version: 1.0.4 2385 | resolution: "reusify@npm:1.0.4" 2386 | checksum: c3076ebcc22a6bc252cb0b9c77561795256c22b757f40c0d8110b1300723f15ec0fc8685e8d4ea6d7666f36c79ccc793b1939c748bf36f18f542744a4e379fcc 2387 | languageName: node 2388 | linkType: hard 2389 | 2390 | "run-parallel@npm:^1.1.9": 2391 | version: 1.2.0 2392 | resolution: "run-parallel@npm:1.2.0" 2393 | dependencies: 2394 | queue-microtask: ^1.2.2 2395 | checksum: cb4f97ad25a75ebc11a8ef4e33bb962f8af8516bb2001082ceabd8902e15b98f4b84b4f8a9b222e5d57fc3bd1379c483886ed4619367a7680dad65316993021d 2396 | languageName: node 2397 | linkType: hard 2398 | 2399 | "safe-buffer@npm:5.2.1": 2400 | version: 5.2.1 2401 | resolution: "safe-buffer@npm:5.2.1" 2402 | checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491 2403 | languageName: node 2404 | linkType: hard 2405 | 2406 | "safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0": 2407 | version: 2.1.2 2408 | resolution: "safer-buffer@npm:2.1.2" 2409 | checksum: cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0 2410 | languageName: node 2411 | linkType: hard 2412 | 2413 | "semver@npm:^7.3.5": 2414 | version: 7.6.2 2415 | resolution: "semver@npm:7.6.2" 2416 | bin: 2417 | semver: bin/semver.js 2418 | checksum: 40f6a95101e8d854357a644da1b8dd9d93ce786d5c6a77227bc69dbb17bea83d0d1d1d7c4cd5920a6df909f48e8bd8a5909869535007f90278289f2451d0292d 2419 | languageName: node 2420 | linkType: hard 2421 | 2422 | "send@npm:0.18.0": 2423 | version: 0.18.0 2424 | resolution: "send@npm:0.18.0" 2425 | dependencies: 2426 | debug: 2.6.9 2427 | depd: 2.0.0 2428 | destroy: 1.2.0 2429 | encodeurl: ~1.0.2 2430 | escape-html: ~1.0.3 2431 | etag: ~1.8.1 2432 | fresh: 0.5.2 2433 | http-errors: 2.0.0 2434 | mime: 1.6.0 2435 | ms: 2.1.3 2436 | on-finished: 2.4.1 2437 | range-parser: ~1.2.1 2438 | statuses: 2.0.1 2439 | checksum: 74fc07ebb58566b87b078ec63e5a3e41ecd987e4272ba67b7467e86c6ad51bc6b0b0154133b6d8b08a2ddda360464f71382f7ef864700f34844a76c8027817a8 2440 | languageName: node 2441 | linkType: hard 2442 | 2443 | "serve-static@npm:1.15.0": 2444 | version: 1.15.0 2445 | resolution: "serve-static@npm:1.15.0" 2446 | dependencies: 2447 | encodeurl: ~1.0.2 2448 | escape-html: ~1.0.3 2449 | parseurl: ~1.3.3 2450 | send: 0.18.0 2451 | checksum: af57fc13be40d90a12562e98c0b7855cf6e8bd4c107fe9a45c212bf023058d54a1871b1c89511c3958f70626fff47faeb795f5d83f8cf88514dbaeb2b724464d 2452 | languageName: node 2453 | linkType: hard 2454 | 2455 | "set-function-length@npm:^1.2.1": 2456 | version: 1.2.2 2457 | resolution: "set-function-length@npm:1.2.2" 2458 | dependencies: 2459 | define-data-property: ^1.1.4 2460 | es-errors: ^1.3.0 2461 | function-bind: ^1.1.2 2462 | get-intrinsic: ^1.2.4 2463 | gopd: ^1.0.1 2464 | has-property-descriptors: ^1.0.2 2465 | checksum: a8248bdacdf84cb0fab4637774d9fb3c7a8e6089866d04c817583ff48e14149c87044ce683d7f50759a8c50fb87c7a7e173535b06169c87ef76f5fb276dfff72 2466 | languageName: node 2467 | linkType: hard 2468 | 2469 | "setprototypeof@npm:1.2.0": 2470 | version: 1.2.0 2471 | resolution: "setprototypeof@npm:1.2.0" 2472 | checksum: be18cbbf70e7d8097c97f713a2e76edf84e87299b40d085c6bf8b65314e994cc15e2e317727342fa6996e38e1f52c59720b53fe621e2eb593a6847bf0356db89 2473 | languageName: node 2474 | linkType: hard 2475 | 2476 | "shebang-command@npm:^2.0.0": 2477 | version: 2.0.0 2478 | resolution: "shebang-command@npm:2.0.0" 2479 | dependencies: 2480 | shebang-regex: ^3.0.0 2481 | checksum: 6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa 2482 | languageName: node 2483 | linkType: hard 2484 | 2485 | "shebang-regex@npm:^3.0.0": 2486 | version: 3.0.0 2487 | resolution: "shebang-regex@npm:3.0.0" 2488 | checksum: 1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222 2489 | languageName: node 2490 | linkType: hard 2491 | 2492 | "side-channel@npm:^1.0.4": 2493 | version: 1.0.6 2494 | resolution: "side-channel@npm:1.0.6" 2495 | dependencies: 2496 | call-bind: ^1.0.7 2497 | es-errors: ^1.3.0 2498 | get-intrinsic: ^1.2.4 2499 | object-inspect: ^1.13.1 2500 | checksum: bfc1afc1827d712271453e91b7cd3878ac0efd767495fd4e594c4c2afaa7963b7b510e249572bfd54b0527e66e4a12b61b80c061389e129755f34c493aad9b97 2501 | languageName: node 2502 | linkType: hard 2503 | 2504 | "signal-exit@npm:^4.0.1": 2505 | version: 4.1.0 2506 | resolution: "signal-exit@npm:4.1.0" 2507 | checksum: 64c757b498cb8629ffa5f75485340594d2f8189e9b08700e69199069c8e3070fb3e255f7ab873c05dc0b3cec412aea7402e10a5990cb6a050bd33ba062a6c549 2508 | languageName: node 2509 | linkType: hard 2510 | 2511 | "slash@npm:^3.0.0": 2512 | version: 3.0.0 2513 | resolution: "slash@npm:3.0.0" 2514 | checksum: 94a93fff615f25a999ad4b83c9d5e257a7280c90a32a7cb8b4a87996e4babf322e469c42b7f649fd5796edd8687652f3fb452a86dc97a816f01113183393f11c 2515 | languageName: node 2516 | linkType: hard 2517 | 2518 | "smart-buffer@npm:^4.2.0": 2519 | version: 4.2.0 2520 | resolution: "smart-buffer@npm:4.2.0" 2521 | checksum: b5167a7142c1da704c0e3af85c402002b597081dd9575031a90b4f229ca5678e9a36e8a374f1814c8156a725d17008ae3bde63b92f9cfd132526379e580bec8b 2522 | languageName: node 2523 | linkType: hard 2524 | 2525 | "socks-proxy-agent@npm:^8.0.3": 2526 | version: 8.0.3 2527 | resolution: "socks-proxy-agent@npm:8.0.3" 2528 | dependencies: 2529 | agent-base: ^7.1.1 2530 | debug: ^4.3.4 2531 | socks: ^2.7.1 2532 | checksum: 8fab38821c327c190c28f1658087bc520eb065d55bc07b4a0fdf8d1e0e7ad5d115abbb22a95f94f944723ea969dd771ad6416b1e3cde9060c4c71f705c8b85c5 2533 | languageName: node 2534 | linkType: hard 2535 | 2536 | "socks@npm:^2.7.1": 2537 | version: 2.8.3 2538 | resolution: "socks@npm:2.8.3" 2539 | dependencies: 2540 | ip-address: ^9.0.5 2541 | smart-buffer: ^4.2.0 2542 | checksum: 7a6b7f6eedf7482b9e4597d9a20e09505824208006ea8f2c49b71657427f3c137ca2ae662089baa73e1971c62322d535d9d0cf1c9235cf6f55e315c18203eadd 2543 | languageName: node 2544 | linkType: hard 2545 | 2546 | "sprintf-js@npm:^1.1.3": 2547 | version: 1.1.3 2548 | resolution: "sprintf-js@npm:1.1.3" 2549 | checksum: a3fdac7b49643875b70864a9d9b469d87a40dfeaf5d34d9d0c5b1cda5fd7d065531fcb43c76357d62254c57184a7b151954156563a4d6a747015cfb41021cad0 2550 | languageName: node 2551 | linkType: hard 2552 | 2553 | "ssri@npm:^10.0.0": 2554 | version: 10.0.6 2555 | resolution: "ssri@npm:10.0.6" 2556 | dependencies: 2557 | minipass: ^7.0.3 2558 | checksum: 4603d53a05bcd44188747d38f1cc43833b9951b5a1ee43ba50535bdfc5fe4a0897472dbe69837570a5417c3c073377ef4f8c1a272683b401857f72738ee57299 2559 | languageName: node 2560 | linkType: hard 2561 | 2562 | "statuses@npm:2.0.1": 2563 | version: 2.0.1 2564 | resolution: "statuses@npm:2.0.1" 2565 | checksum: 18c7623fdb8f646fb213ca4051be4df7efb3484d4ab662937ca6fbef7ced9b9e12842709872eb3020cc3504b93bde88935c9f6417489627a7786f24f8031cbcb 2566 | languageName: node 2567 | linkType: hard 2568 | 2569 | "string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0": 2570 | version: 4.2.3 2571 | resolution: "string-width@npm:4.2.3" 2572 | dependencies: 2573 | emoji-regex: ^8.0.0 2574 | is-fullwidth-code-point: ^3.0.0 2575 | strip-ansi: ^6.0.1 2576 | checksum: e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb 2577 | languageName: node 2578 | linkType: hard 2579 | 2580 | "string-width@npm:^5.0.1, string-width@npm:^5.1.2": 2581 | version: 5.1.2 2582 | resolution: "string-width@npm:5.1.2" 2583 | dependencies: 2584 | eastasianwidth: ^0.2.0 2585 | emoji-regex: ^9.2.2 2586 | strip-ansi: ^7.0.1 2587 | checksum: 7369deaa29f21dda9a438686154b62c2c5f661f8dda60449088f9f980196f7908fc39fdd1803e3e01541970287cf5deae336798337e9319a7055af89dafa7193 2588 | languageName: node 2589 | linkType: hard 2590 | 2591 | "strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": 2592 | version: 6.0.1 2593 | resolution: "strip-ansi@npm:6.0.1" 2594 | dependencies: 2595 | ansi-regex: ^5.0.1 2596 | checksum: f3cd25890aef3ba6e1a74e20896c21a46f482e93df4a06567cebf2b57edabb15133f1f94e57434e0a958d61186087b1008e89c94875d019910a213181a14fc8c 2597 | languageName: node 2598 | linkType: hard 2599 | 2600 | "strip-ansi@npm:^7.0.1": 2601 | version: 7.1.0 2602 | resolution: "strip-ansi@npm:7.1.0" 2603 | dependencies: 2604 | ansi-regex: ^6.0.1 2605 | checksum: 859c73fcf27869c22a4e4d8c6acfe690064659e84bef9458aa6d13719d09ca88dcfd40cbf31fd0be63518ea1a643fe070b4827d353e09533a5b0b9fd4553d64d 2606 | languageName: node 2607 | linkType: hard 2608 | 2609 | "strip-json-comments@npm:^3.1.1": 2610 | version: 3.1.1 2611 | resolution: "strip-json-comments@npm:3.1.1" 2612 | checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 2613 | languageName: node 2614 | linkType: hard 2615 | 2616 | "supports-color@npm:^7.1.0": 2617 | version: 7.2.0 2618 | resolution: "supports-color@npm:7.2.0" 2619 | dependencies: 2620 | has-flag: ^4.0.0 2621 | checksum: 3dda818de06ebbe5b9653e07842d9479f3555ebc77e9a0280caf5a14fb877ffee9ed57007c3b78f5a6324b8dbeec648d9e97a24e2ed9fdb81ddc69ea07100f4a 2622 | languageName: node 2623 | linkType: hard 2624 | 2625 | "tar@npm:^6.1.11, tar@npm:^6.1.2": 2626 | version: 6.2.1 2627 | resolution: "tar@npm:6.2.1" 2628 | dependencies: 2629 | chownr: ^2.0.0 2630 | fs-minipass: ^2.0.0 2631 | minipass: ^5.0.0 2632 | minizlib: ^2.1.1 2633 | mkdirp: ^1.0.3 2634 | yallist: ^4.0.0 2635 | checksum: f1322768c9741a25356c11373bce918483f40fa9a25c69c59410c8a1247632487edef5fe76c5f12ac51a6356d2f1829e96d2bc34098668a2fc34d76050ac2b6c 2636 | languageName: node 2637 | linkType: hard 2638 | 2639 | "text-table@npm:^0.2.0": 2640 | version: 0.2.0 2641 | resolution: "text-table@npm:0.2.0" 2642 | checksum: b6937a38c80c7f84d9c11dd75e49d5c44f71d95e810a3250bd1f1797fc7117c57698204adf676b71497acc205d769d65c16ae8fa10afad832ae1322630aef10a 2643 | languageName: node 2644 | linkType: hard 2645 | 2646 | "threads-graph-api@workspace:.": 2647 | version: 0.0.0-use.local 2648 | resolution: "threads-graph-api@workspace:." 2649 | dependencies: 2650 | "@types/express": ^4.17.21 2651 | eslint: ^9.3.0 2652 | eslint-config-prettier: ^9.1.0 2653 | express: ^4.19.2 2654 | prettier: ^3.2.5 2655 | ts-node: ^10.9.2 2656 | tsc-alias: ^1.8.10 2657 | tsx: ^4.11.0 2658 | typescript: ^5.4.5 2659 | zod: ^3.23.8 2660 | languageName: unknown 2661 | linkType: soft 2662 | 2663 | "to-regex-range@npm:^5.0.1": 2664 | version: 5.0.1 2665 | resolution: "to-regex-range@npm:5.0.1" 2666 | dependencies: 2667 | is-number: ^7.0.0 2668 | checksum: f76fa01b3d5be85db6a2a143e24df9f60dd047d151062d0ba3df62953f2f697b16fe5dad9b0ac6191c7efc7b1d9dcaa4b768174b7b29da89d4428e64bc0a20ed 2669 | languageName: node 2670 | linkType: hard 2671 | 2672 | "toidentifier@npm:1.0.1": 2673 | version: 1.0.1 2674 | resolution: "toidentifier@npm:1.0.1" 2675 | checksum: 952c29e2a85d7123239b5cfdd889a0dde47ab0497f0913d70588f19c53f7e0b5327c95f4651e413c74b785147f9637b17410ac8c846d5d4a20a5a33eb6dc3a45 2676 | languageName: node 2677 | linkType: hard 2678 | 2679 | "ts-node@npm:^10.9.2": 2680 | version: 10.9.2 2681 | resolution: "ts-node@npm:10.9.2" 2682 | dependencies: 2683 | "@cspotcode/source-map-support": ^0.8.0 2684 | "@tsconfig/node10": ^1.0.7 2685 | "@tsconfig/node12": ^1.0.7 2686 | "@tsconfig/node14": ^1.0.0 2687 | "@tsconfig/node16": ^1.0.2 2688 | acorn: ^8.4.1 2689 | acorn-walk: ^8.1.1 2690 | arg: ^4.1.0 2691 | create-require: ^1.1.0 2692 | diff: ^4.0.1 2693 | make-error: ^1.1.1 2694 | v8-compile-cache-lib: ^3.0.1 2695 | yn: 3.1.1 2696 | peerDependencies: 2697 | "@swc/core": ">=1.2.50" 2698 | "@swc/wasm": ">=1.2.50" 2699 | "@types/node": "*" 2700 | typescript: ">=2.7" 2701 | peerDependenciesMeta: 2702 | "@swc/core": 2703 | optional: true 2704 | "@swc/wasm": 2705 | optional: true 2706 | bin: 2707 | ts-node: dist/bin.js 2708 | ts-node-cwd: dist/bin-cwd.js 2709 | ts-node-esm: dist/bin-esm.js 2710 | ts-node-script: dist/bin-script.js 2711 | ts-node-transpile-only: dist/bin-transpile.js 2712 | ts-script: dist/bin-script-deprecated.js 2713 | checksum: fde256c9073969e234526e2cfead42591b9a2aec5222bac154b0de2fa9e4ceb30efcd717ee8bc785a56f3a119bdd5aa27b333d9dbec94ed254bd26f8944c67ac 2714 | languageName: node 2715 | linkType: hard 2716 | 2717 | "tsc-alias@npm:^1.8.10": 2718 | version: 1.8.10 2719 | resolution: "tsc-alias@npm:1.8.10" 2720 | dependencies: 2721 | chokidar: ^3.5.3 2722 | commander: ^9.0.0 2723 | globby: ^11.0.4 2724 | mylas: ^2.1.9 2725 | normalize-path: ^3.0.0 2726 | plimit-lit: ^1.2.6 2727 | bin: 2728 | tsc-alias: dist/bin/index.js 2729 | checksum: 4301767afb5b24ad354267790fb98b8df7ed41ff6a6d151c5e664c6b8b7717cd8753c790d67e5a0dbd731c3a4d85e57eca2429ff750b99d79c38300de7eb8d94 2730 | languageName: node 2731 | linkType: hard 2732 | 2733 | "tsx@npm:^4.11.0": 2734 | version: 4.11.0 2735 | resolution: "tsx@npm:4.11.0" 2736 | dependencies: 2737 | esbuild: ~0.20.2 2738 | fsevents: ~2.3.3 2739 | get-tsconfig: ^4.7.5 2740 | dependenciesMeta: 2741 | fsevents: 2742 | optional: true 2743 | bin: 2744 | tsx: dist/cli.mjs 2745 | checksum: 677b415cec06f1b0da67877ecf8ac6260cb97a0779f0f4492ad49b750f019bb184016b8502e6c83e50dc2a673106b7d0bb109d799328826c145a0e336d67da2d 2746 | languageName: node 2747 | linkType: hard 2748 | 2749 | "type-check@npm:^0.4.0, type-check@npm:~0.4.0": 2750 | version: 0.4.0 2751 | resolution: "type-check@npm:0.4.0" 2752 | dependencies: 2753 | prelude-ls: ^1.2.1 2754 | checksum: ec688ebfc9c45d0c30412e41ca9c0cdbd704580eb3a9ccf07b9b576094d7b86a012baebc95681999dd38f4f444afd28504cb3a89f2ef16b31d4ab61a0739025a 2755 | languageName: node 2756 | linkType: hard 2757 | 2758 | "type-is@npm:~1.6.18": 2759 | version: 1.6.18 2760 | resolution: "type-is@npm:1.6.18" 2761 | dependencies: 2762 | media-typer: 0.3.0 2763 | mime-types: ~2.1.24 2764 | checksum: 2c8e47675d55f8b4e404bcf529abdf5036c537a04c2b20177bcf78c9e3c1da69da3942b1346e6edb09e823228c0ee656ef0e033765ec39a70d496ef601a0c657 2765 | languageName: node 2766 | linkType: hard 2767 | 2768 | "typescript@npm:^5.4.5": 2769 | version: 5.4.5 2770 | resolution: "typescript@npm:5.4.5" 2771 | bin: 2772 | tsc: bin/tsc 2773 | tsserver: bin/tsserver 2774 | checksum: 53c879c6fa1e3bcb194b274d4501ba1985894b2c2692fa079db03c5a5a7140587a1e04e1ba03184605d35f439b40192d9e138eb3279ca8eee313c081c8bcd9b0 2775 | languageName: node 2776 | linkType: hard 2777 | 2778 | "typescript@patch:typescript@^5.4.5#~builtin": 2779 | version: 5.4.5 2780 | resolution: "typescript@patch:typescript@npm%3A5.4.5#~builtin::version=5.4.5&hash=14eedb" 2781 | bin: 2782 | tsc: bin/tsc 2783 | tsserver: bin/tsserver 2784 | checksum: 2373c693f3b328f3b2387c3efafe6d257b057a142f9a79291854b14ff4d5367d3d730810aee981726b677ae0fd8329b23309da3b6aaab8263dbdccf1da07a3ba 2785 | languageName: node 2786 | linkType: hard 2787 | 2788 | "undici-types@npm:~5.26.4": 2789 | version: 5.26.5 2790 | resolution: "undici-types@npm:5.26.5" 2791 | checksum: 3192ef6f3fd5df652f2dc1cd782b49d6ff14dc98e5dced492aa8a8c65425227da5da6aafe22523c67f035a272c599bb89cfe803c1db6311e44bed3042fc25487 2792 | languageName: node 2793 | linkType: hard 2794 | 2795 | "unique-filename@npm:^3.0.0": 2796 | version: 3.0.0 2797 | resolution: "unique-filename@npm:3.0.0" 2798 | dependencies: 2799 | unique-slug: ^4.0.0 2800 | checksum: 8e2f59b356cb2e54aab14ff98a51ac6c45781d15ceaab6d4f1c2228b780193dc70fae4463ce9e1df4479cb9d3304d7c2043a3fb905bdeca71cc7e8ce27e063df 2801 | languageName: node 2802 | linkType: hard 2803 | 2804 | "unique-slug@npm:^4.0.0": 2805 | version: 4.0.0 2806 | resolution: "unique-slug@npm:4.0.0" 2807 | dependencies: 2808 | imurmurhash: ^0.1.4 2809 | checksum: 0884b58365af59f89739e6f71e3feacb5b1b41f2df2d842d0757933620e6de08eff347d27e9d499b43c40476cbaf7988638d3acb2ffbcb9d35fd035591adfd15 2810 | languageName: node 2811 | linkType: hard 2812 | 2813 | "unpipe@npm:1.0.0, unpipe@npm:~1.0.0": 2814 | version: 1.0.0 2815 | resolution: "unpipe@npm:1.0.0" 2816 | checksum: 4fa18d8d8d977c55cb09715385c203197105e10a6d220087ec819f50cb68870f02942244f1017565484237f1f8c5d3cd413631b1ae104d3096f24fdfde1b4aa2 2817 | languageName: node 2818 | linkType: hard 2819 | 2820 | "uri-js@npm:^4.2.2": 2821 | version: 4.4.1 2822 | resolution: "uri-js@npm:4.4.1" 2823 | dependencies: 2824 | punycode: ^2.1.0 2825 | checksum: 7167432de6817fe8e9e0c9684f1d2de2bb688c94388f7569f7dbdb1587c9f4ca2a77962f134ec90be0cc4d004c939ff0d05acc9f34a0db39a3c797dada262633 2826 | languageName: node 2827 | linkType: hard 2828 | 2829 | "utils-merge@npm:1.0.1": 2830 | version: 1.0.1 2831 | resolution: "utils-merge@npm:1.0.1" 2832 | checksum: c81095493225ecfc28add49c106ca4f09cdf56bc66731aa8dabc2edbbccb1e1bfe2de6a115e5c6a380d3ea166d1636410b62ef216bb07b3feb1cfde1d95d5080 2833 | languageName: node 2834 | linkType: hard 2835 | 2836 | "v8-compile-cache-lib@npm:^3.0.1": 2837 | version: 3.0.1 2838 | resolution: "v8-compile-cache-lib@npm:3.0.1" 2839 | checksum: 78089ad549e21bcdbfca10c08850022b22024cdcc2da9b168bcf5a73a6ed7bf01a9cebb9eac28e03cd23a684d81e0502797e88f3ccd27a32aeab1cfc44c39da0 2840 | languageName: node 2841 | linkType: hard 2842 | 2843 | "vary@npm:~1.1.2": 2844 | version: 1.1.2 2845 | resolution: "vary@npm:1.1.2" 2846 | checksum: ae0123222c6df65b437669d63dfa8c36cee20a504101b2fcd97b8bf76f91259c17f9f2b4d70a1e3c6bbcee7f51b28392833adb6b2770b23b01abec84e369660b 2847 | languageName: node 2848 | linkType: hard 2849 | 2850 | "which@npm:^2.0.1": 2851 | version: 2.0.2 2852 | resolution: "which@npm:2.0.2" 2853 | dependencies: 2854 | isexe: ^2.0.0 2855 | bin: 2856 | node-which: ./bin/node-which 2857 | checksum: 1a5c563d3c1b52d5f893c8b61afe11abc3bab4afac492e8da5bde69d550de701cf9806235f20a47b5c8fa8a1d6a9135841de2596535e998027a54589000e66d1 2858 | languageName: node 2859 | linkType: hard 2860 | 2861 | "which@npm:^4.0.0": 2862 | version: 4.0.0 2863 | resolution: "which@npm:4.0.0" 2864 | dependencies: 2865 | isexe: ^3.1.1 2866 | bin: 2867 | node-which: bin/which.js 2868 | checksum: f17e84c042592c21e23c8195108cff18c64050b9efb8459589116999ea9da6dd1509e6a1bac3aeebefd137be00fabbb61b5c2bc0aa0f8526f32b58ee2f545651 2869 | languageName: node 2870 | linkType: hard 2871 | 2872 | "word-wrap@npm:^1.2.5": 2873 | version: 1.2.5 2874 | resolution: "word-wrap@npm:1.2.5" 2875 | checksum: f93ba3586fc181f94afdaff3a6fef27920b4b6d9eaefed0f428f8e07adea2a7f54a5f2830ce59406c8416f033f86902b91eb824072354645eea687dff3691ccb 2876 | languageName: node 2877 | linkType: hard 2878 | 2879 | "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": 2880 | version: 7.0.0 2881 | resolution: "wrap-ansi@npm:7.0.0" 2882 | dependencies: 2883 | ansi-styles: ^4.0.0 2884 | string-width: ^4.1.0 2885 | strip-ansi: ^6.0.0 2886 | checksum: a790b846fd4505de962ba728a21aaeda189b8ee1c7568ca5e817d85930e06ef8d1689d49dbf0e881e8ef84436af3a88bc49115c2e2788d841ff1b8b5b51a608b 2887 | languageName: node 2888 | linkType: hard 2889 | 2890 | "wrap-ansi@npm:^8.1.0": 2891 | version: 8.1.0 2892 | resolution: "wrap-ansi@npm:8.1.0" 2893 | dependencies: 2894 | ansi-styles: ^6.1.0 2895 | string-width: ^5.0.1 2896 | strip-ansi: ^7.0.1 2897 | checksum: 371733296dc2d616900ce15a0049dca0ef67597d6394c57347ba334393599e800bab03c41d4d45221b6bc967b8c453ec3ae4749eff3894202d16800fdfe0e238 2898 | languageName: node 2899 | linkType: hard 2900 | 2901 | "yallist@npm:^4.0.0": 2902 | version: 4.0.0 2903 | resolution: "yallist@npm:4.0.0" 2904 | checksum: 343617202af32df2a15a3be36a5a8c0c8545208f3d3dfbc6bb7c3e3b7e8c6f8e7485432e4f3b88da3031a6e20afa7c711eded32ddfb122896ac5d914e75848d5 2905 | languageName: node 2906 | linkType: hard 2907 | 2908 | "yn@npm:3.1.1": 2909 | version: 3.1.1 2910 | resolution: "yn@npm:3.1.1" 2911 | checksum: 2c487b0e149e746ef48cda9f8bad10fc83693cd69d7f9dcd8be4214e985de33a29c9e24f3c0d6bcf2288427040a8947406ab27f7af67ee9456e6b84854f02dd6 2912 | languageName: node 2913 | linkType: hard 2914 | 2915 | "yocto-queue@npm:^0.1.0": 2916 | version: 0.1.0 2917 | resolution: "yocto-queue@npm:0.1.0" 2918 | checksum: f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700 2919 | languageName: node 2920 | linkType: hard 2921 | 2922 | "zod@npm:^3.23.8": 2923 | version: 3.23.8 2924 | resolution: "zod@npm:3.23.8" 2925 | checksum: 15949ff82118f59c893dacd9d3c766d02b6fa2e71cf474d5aa888570c469dbf5446ac5ad562bb035bf7ac9650da94f290655c194f4a6de3e766f43febd432c5c 2926 | languageName: node 2927 | linkType: hard 2928 | --------------------------------------------------------------------------------