├── .eslintignore ├── .eslintrc.json ├── .github ├── dependabot.yml └── workflows │ └── ci.yml ├── .gitignore ├── CHANGELOG.md ├── LICENSE ├── README.md ├── docs └── README.md ├── examples ├── discord-bot │ ├── bot.js │ └── package.json └── esm │ ├── index.js │ └── package.json ├── package.json ├── pnpm-lock.yaml ├── src ├── PasteClient.ts ├── fetch.ts ├── index.ts └── types.ts ├── tests └── index.test.ts ├── tsconfig.json └── tsup.config.ts /.eslintignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules 3 | tests -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "es2021": true, 5 | "node": true 6 | }, 7 | "extends": ["@casperiv/eslint-config"], 8 | "parserOptions": { 9 | "ecmaVersion": 12, 10 | "sourceType": "module", 11 | "project": "./tsconfig.json" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: "npm" # See documentation for possible values 4 | directory: "." # Location of package manifests 5 | schedule: 6 | interval: "monthly" 7 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI (Typecheck & Lint) 2 | 3 | on: [push, pull_request] 4 | 5 | jobs: 6 | build: 7 | runs-on: ubuntu-latest 8 | 9 | steps: 10 | - uses: actions/checkout@v4 11 | - uses: pnpm/action-setup@v2 12 | with: 13 | version: 8 14 | 15 | - name: Use Node.js ${{ matrix.node-version }} 16 | uses: actions/setup-node@v3 17 | with: 18 | node-version: ${{ matrix.node-version }} 19 | cache: "pnpm" 20 | 21 | - name: Install dependencies 22 | run: pnpm install 23 | 24 | - name: Linting check 25 | run: pnpm run lint 26 | 27 | - name: Prettier check 28 | run: pnpm run prettier:check 29 | 30 | - name: Typecheck 31 | run: pnpm run typecheck 32 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules 3 | .env 4 | examples/*/package-lock.json 5 | .vscode -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## 7.0.0 4 | 5 | - Upgrade deps 6 | - **BREAKING:** Require Node.js v18 or higher. 7 | 8 | ## 6.1.0 9 | 10 | - Fix: `dist` was not uploaded. 11 | 12 | ## 6.0.0 13 | 14 | - Move npm handle from `@casper124578` to `@casperiv` 15 | 16 | ## 5.1.6 17 | 18 | - bump dependencies 19 | - Move to `pnpm` 20 | 21 | ## 5.1.5 22 | 23 | - bump dependencies 24 | 25 | ## 5.1.4 26 | 27 | - build(deps): bump undici from 5.8.0 to 5.8.2 by @dependabot in https://github.com/casperiv0/pastebin-api/pull/111 28 | - bump dependencies 29 | 30 | ## 5.1.3 31 | 32 | - build(deps-dev): bump tsup from 6.1.3 to 6.2.1 by @dependabot in https://github.com/casperiv0/pastebin-api/pull/110 33 | - build(deps-dev): bump @types/node from 18.0.6 to 18.6.3 by @dependabot in https://github.com/casperiv0/pastebin-api/pull/109 34 | - build(deps-dev): bump eslint from 8.20.0 to 8.21.0 by @dependabot in https://github.com/casperiv0/pastebin-api/pull/108 35 | - Bump dependencies 36 | 37 | ## 5.1.2 38 | 39 | - build(deps): bump undici from 5.5.1 to 5.8.0 by @dependabot in https://github.com/casperiv0/pastebin-api/pull/107 40 | 41 | ## 5.1.1 42 | 43 | - Bump dependencies 44 | 45 | ## 5.1.0 46 | 47 | - Bump dependencies 48 | - **BREAKING:** `PasteClient#login` now requires an object instead of 2 params. 49 | ➡ `const token = await client.login({ name: "user_name", password: "user_password" });` 50 | 51 | ## 5.0.0 52 | 53 | - Bump dependencies 54 | - **BREAKING:** require node **v14**. 55 | 56 | ## 4.0.1 57 | 58 | - Bump dependencies 59 | 60 | ## 4.0.0 61 | 62 | - **breaking:** Remove `PasteClient#setDomain`, pass down custom domain via `ClientOptions`. 63 | - **breaking:** `Publicity` is now an enum. 64 | - **breaking:** `ExpireDate` is now an enum. 65 | - Improve error messages 66 | - Bump dependencies 67 | 68 | ## 3.0.4 69 | 70 | - Bump dependencies 71 | 72 | ## 3.0.3 73 | 74 | - Minor code improvements 75 | - Bump dependencies 76 | 77 | ## 3.0.2 78 | 79 | - Bump dependencies 80 | 81 | ## 3.0.1 82 | 83 | - Bump dependencies 84 | 85 | ## 3.0.0 86 | 87 | - Replace `node-fetch` with `undici` ([17a5344](https://github.com/casperiv0/pastebin-api/commit/82ed0e522a82acfdaf982edb50e771020de9df2b)) 88 | - Bump dependencies 89 | 90 | ## 2.6.1 91 | 92 | - Bump dependencies 93 | 94 | ## 2.6.0 95 | 96 | - Bump dependencies 97 | - feat: support getting raw paste [docs](https://github.com/casperiv0/pastebin-api/tree/main/docs#get-raw-paste) 98 | 99 | ## 2.5.0 100 | 101 | - Bump dependencies 102 | 103 | ## 2.4.0 104 | 105 | - Bump dependencies 106 | - Bump `node-fetch` to `3.0.0`. 107 | - **->** `pastebin-api` still supports cjs. It may not work on older node versions though. 108 | 109 | ## 2.3.6 110 | 111 | - Bump dependencies 112 | 113 | ## 2.3.5 114 | 115 | - Fix cjs `node-fetch` ESM import 116 | 117 | ## 2.3.4 118 | 119 | - chore: bump dependencies 120 | 121 | ## 2.3.3 122 | 123 | - fix: correct error message for options 124 | - chore: bump dependencies 125 | 126 | ## 2.3.2 127 | 128 | - chore: update example 129 | - chore: bump dependencies 130 | 131 | ## 2.3.1 132 | 133 | - chore: bump dependencies 134 | 135 | ## 2.3.0 136 | 137 | - feat: support use custom domain (Thanks [@Zxilly](https://github.com/Zxilly)) 138 | 139 | ## 2.2.0 140 | 141 | - refactor: use `TypeError` over `Error` where needed 142 | - refactor: use `Promise.reject` over `throw Error` where needed 143 | - refactor: remove unneeded `?.` in discord bot example 144 | - chore: bump dependencies 145 | - chore: use `actions/setup-node@v2` for CI 146 | 147 | ## 2.1.2 148 | 149 | - chore: bump dependencies 150 | 151 | ## 2.1.1 152 | 153 | - chore: bump dependencies 154 | 155 | ## 2.1.0 156 | 157 | - feat: allow CommonJS imports again 158 | - chore: use esbuild 159 | 160 | ## 2.0.4 161 | 162 | - chore: bump dependencies 163 | 164 | ## 2.0.2 & 2.0.3 165 | 166 | - chore: Add custom ESLint config 167 | 168 | ## 2.0.1 169 | 170 | - new: able to import `PasteClient` via named exports (`import { PasteClient } from "pastebin-api"`) 171 | - Old method still works too. 172 | - chore: replace type `string` with `ApiPasteFormat` for `paste_format_short` 173 | - chore: use `Array.isArray` instead of `typeof` 174 | - chore: update dependencies 175 | 176 | ## 2.0.0 177 | 178 | **BREAKING CHANGES:** 179 | 180 | - chore: move to ESM ([Read this.](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c#pure-esm-package)) 181 | 182 | ```diff 183 | - const PasteClient = require("pastebin-api").default; 184 | 185 | + import PasteClient from "pastebin-api"; 186 | ``` 187 | 188 | ## 1.0.6 189 | 190 | - fix: incorrect docs for `PasteClient#deletePasteByKey` 191 | 192 | ## 1.0.5 193 | 194 | - chore: Updated dependencies 195 | - chore: Added ESLint workflow file 196 | - chore: updated examples 197 | 198 | ## 1.0.4 199 | 200 | - chore: Updated dependencies 201 | 202 | ## 1.0.3 203 | 204 | - chore: Updated dependencies 205 | 206 | ## 1.0.2 207 | 208 | - feat: Support for `folderKey` 209 | - chore: Updated docs 210 | 211 | ## 1.0.1 212 | 213 | - fix: Fixed issue with paste name (#7). Thanks @2colours 214 | 215 | ## 1.0.0 216 | 217 | - fix: Creating a paste will now throw an error if name is longer than 100 characters 218 | 219 | ## 0.0.9 220 | 221 | - fix: Added errors when not providing required data 222 | - chore: Updated documentation 223 | 224 | ## 0.0.8 225 | 226 | - feat: Added documentation 227 | 228 | ## 0.0.7 229 | 230 | - feat: Added `login`, `getPastesByUser` and `deletePasteByKey` methods (docs to follow) 231 | - chore: Updated TypeScript to `4.2.2` 232 | - chore: Added Changelog 🎉 233 | 234 | ## 0.0.6 235 | 236 | - fix: Fixed examples 237 | 238 | ## 0.0.5 239 | 240 | - fix: Fixed modules 241 | 242 | ## 0.0.4 243 | 244 | - feat: Added typings 🎉 245 | 246 | ## 0.0.3 247 | 248 | - fix: Fixed minor things in package.json 249 | 250 | ## 0.0.2 251 | 252 | - chore: Added examples 253 | - chore: Renamed `HasteClient` to `PasteClient` 254 | 255 | ## 0.0.1 256 | 257 | - Initial release 258 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License Copyright (c) 2023 Casper Iversen 2 | 3 | Permission is hereby granted, 4 | free of charge, to any person obtaining a copy of this software and associated 5 | documentation files (the "Software"), to deal in the Software without 6 | restriction, including without limitation the rights to use, copy, modify, merge, 7 | publish, distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to the 9 | following conditions: 10 | 11 | The above copyright notice and this permission notice 12 | (including the next paragraph) shall be included in all copies or substantial 13 | portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF 16 | ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 17 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 18 | EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 19 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 20 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # pastebin-api 2 | 3 | ![License](https://img.shields.io/github/license/casperiv0/pastebin-api) 4 | ![Downloads](https://img.shields.io/npm/dw/pastebin-api) 5 | 6 | A very simple npm package to interact with the pastebin api. 7 | 8 | **Features** 9 | 10 | - Create pastes with all the available API data 11 | - Fetch the raw contents of a paste 12 | - Fetch pastes from the authenticated user via a user login 13 | - Delete pastes from the authenticated user via a user login 14 | 15 | ## Installation 16 | 17 | ```bash 18 | # npm 19 | npm install pastebin-api 20 | 21 | # Yarn 22 | yarn add pastebin-api 23 | 24 | # pnpm 25 | pnpm add pastebin-api 26 | ``` 27 | 28 | > **Note** > `pastebin-api` requires node.js version 14 or higher. 29 | 30 | ## Usage 31 | 32 | ```js 33 | // src/main.js 34 | import { PasteClient, Publicity, ExpireDate } from "pastebin-api"; 35 | // const { PasteClient, Publicity, ExpireDate } = require("pastebin-api"); // using CommonJS 36 | 37 | // Tip: load dev key from a `.env` file 38 | const client = new PasteClient("DEV_KEY_HERE"); 39 | 40 | /* ... */ 41 | ``` 42 | 43 | ## Documentation 44 | 45 | [You can checkout the documentation here](docs/README.md) 46 | 47 | ## Support 48 | 49 | All stars/forks are appreciated! ⚡ 50 | 51 | Feel free to open a pull request with a new feature. 52 | 53 | Made with ❤️ and TypeScript! 54 | 55 | ## License 56 | 57 | [MIT © Casper Iversen](./LICENSE) 58 | -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 | # Documentation 2 | 3 | - [Return to README](../README.md) 4 | - [Initialize The Client](#initialize-the-client) 5 | - [Create a paste](#create-a-paste) 6 | - [Login using name and password](#login-using-name-and-password) 7 | - [Get all pastes from user](#get-pastes-from-user) 8 | - [Delete a paste](#delete-a-paste) 9 | - [Get Raw Paste](#get-raw-paste) 10 | - [Publicity Types](#publicity-types) 11 | - [Expire Date Types](#expire-date-types) 12 | 13 | ## Initialize The Client 14 | 15 | **ESM** 16 | 17 | ```ts 18 | import PasteClient from "pastebin-api"; 19 | 20 | const client = new PasteClient("DEV_API_KEY"); 21 | ``` 22 | 23 | **CommonJS** 24 | 25 | ```ts 26 | const PasteClient = require("pastebin-api").default; 27 | 28 | const client = new PasteClient("DEV_API_KEY"); 29 | ``` 30 | 31 | ### Options 32 | 33 | | Name | Type | Description | Required | 34 | | -------- | -------- | -------------------------------------------------- | -------- | 35 | | `apiKey` | `string` | [Your dev api key](https://pastebin.com/doc_api#1) | `true` | 36 | | `domain` | `string` | Optional domain name to a custom pastebin API | `false` | 37 | 38 | [**Back To Top**](#documentation) 39 | 40 | ## Create a Paste 41 | 42 | ```ts 43 | import { PasteClient, Publicity, ExpireDate } from "pastebin-api"; 44 | const client = new PasteClient("DEV_API_KEY"); 45 | 46 | const url = await client.createPaste({ 47 | code: "const something = 'Hello World!'", 48 | expireDate: ExpireDate.Never, 49 | format: "javascript", 50 | name: "something.js", 51 | publicity: Publicity.Public, 52 | }); 53 | 54 | console.log(url); 55 | ``` 56 | 57 | ### Options 58 | 59 | | Name | Type | Description | Required | 60 | | ------------ | -------- | ------------------------------------------------ | -------- | 61 | | `code` | `string` | The code you want to push | `true` | 62 | | `expireDate` | `string` | Sets the expire date of the paste | `false` | 63 | | `format` | `string` | The Syntax format | `false` | 64 | | `name` | `string` | The name of your paste (Limit of 100 characters) | `false` | 65 | | `publicity` | `number` | `0` \| `1` \| `2` | `false` | 66 | | `folderKey` | `string` | The folder key(id) | `false` | 67 | | `apiUserKey` | `string` | The user key gotten from PasteClient#login | `false` | 68 | 69 | [**Back To Top**](#documentation) 70 | 71 | ## Login using name and password 72 | 73 | ```js 74 | const client = new PasteClient("DEV_API_KEY"); 75 | 76 | const token = await client.login({ name: "user_name", password: "user_password" }); 77 | 78 | // This is the user token that can be used to get all the user's pastes or delete one 79 | console.log(token); 80 | ``` 81 | 82 | ### Options 83 | 84 | | Name | Type | Description | Required | 85 | | ---------- | -------- | ------------------- | -------- | 86 | | `name` | `string` | The user's name | `true` | 87 | | `password` | `string` | The user's password | `true` | 88 | 89 | [**Back To Top**](#documentation) 90 | 91 | ## Get pastes from user 92 | 93 | ```js 94 | const client = new PasteClient("DEV_API_KEY"); 95 | 96 | // Login to get the token 97 | const token = await client.login({ name: "user_name", password: "user_password" }); 98 | 99 | // Get a limit of 1000 pastes from the user 100 | const pastes = await client.getPastesByUser({ 101 | userKey: token, 102 | limit: 100, // Min: 1, Max: 1000 103 | }); 104 | 105 | // An array of pastes 106 | console.log(pastes); 107 | ``` 108 | 109 | ### Options 110 | 111 | | Name | Type | Description | Required | 112 | | --------- | -------- | --------------------------------------------------------------------------- | -------- | 113 | | `userKey` | `string` | The token returned from [PasteClient#login](#login-using-name-and-password) | `true` | 114 | | `limit` | `number` | The limit of pastes to get | `false` | 115 | 116 | [**Back To Top**](#documentation) 117 | 118 | ## Delete a paste 119 | 120 | ```js 121 | const client = new PasteClient("DEV_API_KEY"); 122 | 123 | // Login to get the token 124 | const token = await client.login({ name: "user_name", password: "user_password" }); 125 | 126 | // Will return a boolean if deleted 127 | const deleted = await client.deletePasteByKey({ 128 | userKey: token, 129 | pasteKey: "paste-key-here", 130 | }); 131 | 132 | //=> `true` or `false` 133 | console.log(deleted); 134 | ``` 135 | 136 | ### Options 137 | 138 | | Name | Type | Description | Required | 139 | | ---------- | -------- | --------------------------------------------------------------------------- | -------- | 140 | | `userKey` | `string` | The token returned from [PasteClient#login](#login-using-name-and-password) | `true` | 141 | | `pasteKey` | `string` | The key (id) of the paste | `true` | 142 | 143 | [**Back To Top**](#documentation) 144 | 145 | ## Get Raw Paste 146 | 147 | ```js 148 | const client = new PasteClient("DEV_API_KEY"); 149 | 150 | // Login to get the token 151 | const token = await client.login({ name: "user_name", password: "user_password" }); 152 | 153 | const data = await client.getRawPasteByKey({ 154 | pasteKey: "paste-key-here", 155 | userKey: token, 156 | }); 157 | 158 | //=> raw paste string 159 | console.log(data); 160 | ``` 161 | 162 | ### Options 163 | 164 | | Name | Type | Description | Required | 165 | | ---------- | -------- | --------------------------------------------------------------------------- | -------- | 166 | | `userKey` | `string` | The token returned from [PasteClient#login](#login-using-name-and-password) | `true` | 167 | | `pasteKey` | `string` | The key (id) of the paste | `true` | 168 | 169 | [**Back To Top**](#documentation) 170 | 171 | ## Publicity Types 172 | 173 | | Value | Type | Description | 174 | | ----- | -------- | ------------------------------------------------------------- | 175 | | `0` | `number` | This paste will be **public** and **listed** | 176 | | `1` | `number` | This paste will be **unlisted** | 177 | | `2` | `number` | The paste will be **private** (Only available when logged in) | 178 | 179 | [**Back To Top**](#documentation) 180 | 181 | ## Expire Date Types 182 | 183 | | Value | Type | Description | 184 | | ----- | -------- | ----------- | 185 | | `N` | `string` | Never | 186 | | `10M` | `string` | 10 Minutes | 187 | | `1H` | `string` | 1 Hour | 188 | | `1D` | `string` | 1 Day | 189 | | `1W` | `string` | 1 Week | 190 | | `2W` | `string` | 2 Weeks | 191 | | `1M` | `string` | 1 Month | 192 | | `6M` | `string` | 6 Months | 193 | | `1Y` | `string` | 1 Year | 194 | 195 | [**Back To Top**](#documentation) 196 | -------------------------------------------------------------------------------- /examples/discord-bot/bot.js: -------------------------------------------------------------------------------- 1 | const { Client, IntentsBitField, ApplicationCommandOptionType } = require("discord.js"); 2 | const { PasteClient, Publicity, ExpireDate } = require("pastebin-api"); 3 | 4 | const bot = new Client({ intents: [IntentsBitField.Flags.Guilds] }); 5 | const pasteClient = new PasteClient("DEV_API_KEY"); 6 | 7 | bot.on("interactionCreate", async (interaction) => { 8 | if (!interaction.isCommand()) return; 9 | 10 | if (interaction.commandName === "create-paste") { 11 | const code = interaction.options.getString("code", true); 12 | const expireDate = interaction.options.getString("expire-date") ?? ExpireDate.Never; 13 | const name = interaction.options.getString("file-name") ?? "unknown"; 14 | 15 | const url = await pasteClient.createPaste({ 16 | code, 17 | expireDate, 18 | format: "javascript", 19 | name: `${name}.js`, 20 | publicity: Publicity.Unlisted, 21 | }); 22 | 23 | await interaction.reply(url); 24 | } 25 | }); 26 | 27 | bot.on("ready", async () => { 28 | const data = { 29 | description: "Create a new paste", 30 | name: "create-paste", 31 | options: [ 32 | { 33 | name: "code", 34 | required: true, 35 | description: "This will be the paste code", 36 | type: ApplicationCommandOptionType.String, 37 | }, 38 | { 39 | name: "name", 40 | required: false, 41 | description: "This will be the name of the paste", 42 | type: ApplicationCommandOptionType.String, 43 | }, 44 | { 45 | type: ApplicationCommandOptionType.String, 46 | name: "expire-date", 47 | required: false, 48 | description: "When the paste will expire", 49 | choices: [ 50 | { 51 | name: "Never", 52 | value: ExpireDate.Never, 53 | }, 54 | { 55 | name: "10 Minutes", 56 | value: ExpireDate.TenMinutes, 57 | }, 58 | { 59 | name: "1 Hour", 60 | value: ExpireDate.OneHour, 61 | }, 62 | { 63 | name: "1 Week", 64 | value: ExpireDate.OneWeek, 65 | }, 66 | { 67 | name: "2 Weeks", 68 | value: ExpireDate.TwoWeeks, 69 | }, 70 | { 71 | name: "1 Month", 72 | value: ExpireDate.OneMonth, 73 | }, 74 | { 75 | name: "6 Months", 76 | value: ExpireDate.SixMonths, 77 | }, 78 | { 79 | name: "1 Year", 80 | value: ExpireDate.OneYear, 81 | }, 82 | ], 83 | }, 84 | ], 85 | }; 86 | 87 | await bot.application.commands.create(data); 88 | 89 | console.log("Bot is ready!"); 90 | }); 91 | 92 | bot.login("TOKEN_HERE"); 93 | -------------------------------------------------------------------------------- /examples/discord-bot/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "discord-bot", 3 | "version": "1.0.0", 4 | "description": "An example of using discord.js with pastebin-api", 5 | "main": "bot.js", 6 | "scripts": { 7 | "start": "node bot.js" 8 | }, 9 | "dependencies": { 10 | "discord.js": "^14.1.2", 11 | "pastebin-api": "latest" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /examples/esm/index.js: -------------------------------------------------------------------------------- 1 | import PasteClient from "pastebin-api"; 2 | 3 | const pasteClient = new PasteClient("MY_DEV_KEY"); 4 | 5 | // do something! 6 | pasteClient; 7 | -------------------------------------------------------------------------------- /examples/esm/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "esm-example", 3 | "version": "1.0.0", 4 | "description": "An example of using native ESM with pastebin-api", 5 | "main": "index.js", 6 | "type": "module", 7 | "scripts": { 8 | "start": "node index.js" 9 | }, 10 | "dependencies": { 11 | "pastebin-api": "latest" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pastebin-api", 3 | "version": "7.0.0", 4 | "description": "A very simple npm package to interact with the pastebin api.", 5 | "license": "MIT", 6 | "main": "./dist/index.js", 7 | "module": "./dist/index.mjs", 8 | "exports": { 9 | "require": "./dist/index.js", 10 | "import": "./dist/index.mjs", 11 | "types": "./dist/index.d.ts" 12 | }, 13 | "engines": { 14 | "node": ">=18" 15 | }, 16 | "files": [ 17 | "dist" 18 | ], 19 | "author": { 20 | "name": "Casper Iversen", 21 | "url": "https://www.casperiv.dev" 22 | }, 23 | "scripts": { 24 | "test": "ts-node ./tests/index.test.ts", 25 | "format": "prettier --write \"./**/**/*.{js,jsx,ts,tsx,md,css,json}\" --ignore-path .gitignore", 26 | "prettier:check": "prettier --check \"./**/**/*.{js,jsx,ts,tsx,md,css,json}\" --ignore-path .gitignore", 27 | "lint": "eslint . --ext .ts,.js,.tsx,.jsx", 28 | "typecheck": "tsc --noEmit", 29 | "build": "rimraf dist/ && tsup" 30 | }, 31 | "keywords": [ 32 | "pastebin", 33 | "hastebin", 34 | "paste", 35 | "pastebin-api" 36 | ], 37 | "dependencies": { 38 | "fast-xml-parser": "^4.3.1", 39 | "undici": "^6.2.1" 40 | }, 41 | "repository": { 42 | "type": "git", 43 | "url": "https://github.com/casperiv0/pastebin-api" 44 | }, 45 | "bugs": { 46 | "url": "https://github.com/casperiv0/pastebin-api/issues" 47 | }, 48 | "homepage": "https://github.com/casperiv0/pastebin-api#readme", 49 | "devDependencies": { 50 | "@casperiv/eslint-config": "^8.0.0", 51 | "@types/node": "^20.8.0", 52 | "dotenv": "^16.3.1", 53 | "eslint": "^8.50.0", 54 | "prettier": "^3.0.3", 55 | "rimraf": "^5.0.5", 56 | "ts-node": "^10.9.1", 57 | "tsup": "^8.0.1", 58 | "typescript": "^5.2.2" 59 | }, 60 | "prettier": { 61 | "semi": true, 62 | "trailingComma": "all", 63 | "singleQuote": false, 64 | "printWidth": 100, 65 | "tabWidth": 2 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | dependencies: 8 | fast-xml-parser: 9 | specifier: ^4.3.1 10 | version: 4.3.6 11 | undici: 12 | specifier: ^6.2.1 13 | version: 6.15.0 14 | 15 | devDependencies: 16 | '@casperiv/eslint-config': 17 | specifier: ^8.0.0 18 | version: 8.0.0(eslint@8.56.0)(prettier@3.2.5)(typescript@5.3.2) 19 | '@types/node': 20 | specifier: ^20.8.0 21 | version: 20.12.7 22 | dotenv: 23 | specifier: ^16.3.1 24 | version: 16.4.5 25 | eslint: 26 | specifier: ^8.50.0 27 | version: 8.56.0 28 | prettier: 29 | specifier: ^3.0.3 30 | version: 3.2.5 31 | rimraf: 32 | specifier: ^5.0.5 33 | version: 5.0.5 34 | ts-node: 35 | specifier: ^10.9.1 36 | version: 10.9.2(@types/node@20.12.7)(typescript@5.3.2) 37 | tsup: 38 | specifier: ^8.0.1 39 | version: 8.0.2(ts-node@10.9.2)(typescript@5.3.2) 40 | typescript: 41 | specifier: ^5.2.2 42 | version: 5.3.2 43 | 44 | packages: 45 | 46 | /@aashutoshrathi/word-wrap@1.2.6: 47 | resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} 48 | engines: {node: '>=0.10.0'} 49 | dev: true 50 | 51 | /@babel/code-frame@7.21.4: 52 | resolution: {integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==} 53 | engines: {node: '>=6.9.0'} 54 | dependencies: 55 | '@babel/highlight': 7.18.6 56 | dev: true 57 | 58 | /@babel/helper-validator-identifier@7.22.5: 59 | resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} 60 | engines: {node: '>=6.9.0'} 61 | dev: true 62 | 63 | /@babel/highlight@7.18.6: 64 | resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} 65 | engines: {node: '>=6.9.0'} 66 | dependencies: 67 | '@babel/helper-validator-identifier': 7.22.5 68 | chalk: 2.4.2 69 | js-tokens: 4.0.0 70 | dev: true 71 | 72 | /@casperiv/eslint-config@8.0.0(eslint@8.56.0)(prettier@3.2.5)(typescript@5.3.2): 73 | resolution: {integrity: sha512-SQpUAvR/u8iweOjuP/76a7eNSdAXC+rmPdVOfWKiRIoPFRHlOEN6rKFjOJmQAPsUUj6SUjQ0eC07Umqai9uEdQ==} 74 | peerDependencies: 75 | eslint: '>=8' 76 | prettier: '>=3.0.1' 77 | dependencies: 78 | '@typescript-eslint/eslint-plugin': 6.4.0(@typescript-eslint/parser@6.4.0)(eslint@8.56.0)(typescript@5.3.2) 79 | '@typescript-eslint/parser': 6.4.0(eslint@8.56.0)(typescript@5.3.2) 80 | eslint: 8.56.0 81 | eslint-config-prettier: 9.0.0(eslint@8.56.0) 82 | eslint-plugin-json: 3.1.0 83 | eslint-plugin-prettier: 5.0.0(eslint-config-prettier@9.0.0)(eslint@8.56.0)(prettier@3.2.5) 84 | eslint-plugin-promise: 6.1.1(eslint@8.56.0) 85 | eslint-plugin-unicorn: 48.0.1(eslint@8.56.0) 86 | prettier: 3.2.5 87 | transitivePeerDependencies: 88 | - '@types/eslint' 89 | - supports-color 90 | - typescript 91 | dev: true 92 | 93 | /@cspotcode/source-map-support@0.8.1: 94 | resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} 95 | engines: {node: '>=12'} 96 | dependencies: 97 | '@jridgewell/trace-mapping': 0.3.9 98 | dev: true 99 | 100 | /@esbuild/android-arm64@0.19.8: 101 | resolution: {integrity: sha512-B8JbS61bEunhfx8kasogFENgQfr/dIp+ggYXwTqdbMAgGDhRa3AaPpQMuQU0rNxDLECj6FhDzk1cF9WHMVwrtA==} 102 | engines: {node: '>=12'} 103 | cpu: [arm64] 104 | os: [android] 105 | requiresBuild: true 106 | dev: true 107 | optional: true 108 | 109 | /@esbuild/android-arm@0.19.8: 110 | resolution: {integrity: sha512-31E2lxlGM1KEfivQl8Yf5aYU/mflz9g06H6S15ITUFQueMFtFjESRMoDSkvMo8thYvLBax+VKTPlpnx+sPicOA==} 111 | engines: {node: '>=12'} 112 | cpu: [arm] 113 | os: [android] 114 | requiresBuild: true 115 | dev: true 116 | optional: true 117 | 118 | /@esbuild/android-x64@0.19.8: 119 | resolution: {integrity: sha512-rdqqYfRIn4jWOp+lzQttYMa2Xar3OK9Yt2fhOhzFXqg0rVWEfSclJvZq5fZslnz6ypHvVf3CT7qyf0A5pM682A==} 120 | engines: {node: '>=12'} 121 | cpu: [x64] 122 | os: [android] 123 | requiresBuild: true 124 | dev: true 125 | optional: true 126 | 127 | /@esbuild/darwin-arm64@0.19.8: 128 | resolution: {integrity: sha512-RQw9DemMbIq35Bprbboyf8SmOr4UXsRVxJ97LgB55VKKeJOOdvsIPy0nFyF2l8U+h4PtBx/1kRf0BelOYCiQcw==} 129 | engines: {node: '>=12'} 130 | cpu: [arm64] 131 | os: [darwin] 132 | requiresBuild: true 133 | dev: true 134 | optional: true 135 | 136 | /@esbuild/darwin-x64@0.19.8: 137 | resolution: {integrity: sha512-3sur80OT9YdeZwIVgERAysAbwncom7b4bCI2XKLjMfPymTud7e/oY4y+ci1XVp5TfQp/bppn7xLw1n/oSQY3/Q==} 138 | engines: {node: '>=12'} 139 | cpu: [x64] 140 | os: [darwin] 141 | requiresBuild: true 142 | dev: true 143 | optional: true 144 | 145 | /@esbuild/freebsd-arm64@0.19.8: 146 | resolution: {integrity: sha512-WAnPJSDattvS/XtPCTj1tPoTxERjcTpH6HsMr6ujTT+X6rylVe8ggxk8pVxzf5U1wh5sPODpawNicF5ta/9Tmw==} 147 | engines: {node: '>=12'} 148 | cpu: [arm64] 149 | os: [freebsd] 150 | requiresBuild: true 151 | dev: true 152 | optional: true 153 | 154 | /@esbuild/freebsd-x64@0.19.8: 155 | resolution: {integrity: sha512-ICvZyOplIjmmhjd6mxi+zxSdpPTKFfyPPQMQTK/w+8eNK6WV01AjIztJALDtwNNfFhfZLux0tZLC+U9nSyA5Zg==} 156 | engines: {node: '>=12'} 157 | cpu: [x64] 158 | os: [freebsd] 159 | requiresBuild: true 160 | dev: true 161 | optional: true 162 | 163 | /@esbuild/linux-arm64@0.19.8: 164 | resolution: {integrity: sha512-z1zMZivxDLHWnyGOctT9JP70h0beY54xDDDJt4VpTX+iwA77IFsE1vCXWmprajJGa+ZYSqkSbRQ4eyLCpCmiCQ==} 165 | engines: {node: '>=12'} 166 | cpu: [arm64] 167 | os: [linux] 168 | requiresBuild: true 169 | dev: true 170 | optional: true 171 | 172 | /@esbuild/linux-arm@0.19.8: 173 | resolution: {integrity: sha512-H4vmI5PYqSvosPaTJuEppU9oz1dq2A7Mr2vyg5TF9Ga+3+MGgBdGzcyBP7qK9MrwFQZlvNyJrvz6GuCaj3OukQ==} 174 | engines: {node: '>=12'} 175 | cpu: [arm] 176 | os: [linux] 177 | requiresBuild: true 178 | dev: true 179 | optional: true 180 | 181 | /@esbuild/linux-ia32@0.19.8: 182 | resolution: {integrity: sha512-1a8suQiFJmZz1khm/rDglOc8lavtzEMRo0v6WhPgxkrjcU0LkHj+TwBrALwoz/OtMExvsqbbMI0ChyelKabSvQ==} 183 | engines: {node: '>=12'} 184 | cpu: [ia32] 185 | os: [linux] 186 | requiresBuild: true 187 | dev: true 188 | optional: true 189 | 190 | /@esbuild/linux-loong64@0.19.8: 191 | resolution: {integrity: sha512-fHZWS2JJxnXt1uYJsDv9+b60WCc2RlvVAy1F76qOLtXRO+H4mjt3Tr6MJ5l7Q78X8KgCFudnTuiQRBhULUyBKQ==} 192 | engines: {node: '>=12'} 193 | cpu: [loong64] 194 | os: [linux] 195 | requiresBuild: true 196 | dev: true 197 | optional: true 198 | 199 | /@esbuild/linux-mips64el@0.19.8: 200 | resolution: {integrity: sha512-Wy/z0EL5qZYLX66dVnEg9riiwls5IYnziwuju2oUiuxVc+/edvqXa04qNtbrs0Ukatg5HEzqT94Zs7J207dN5Q==} 201 | engines: {node: '>=12'} 202 | cpu: [mips64el] 203 | os: [linux] 204 | requiresBuild: true 205 | dev: true 206 | optional: true 207 | 208 | /@esbuild/linux-ppc64@0.19.8: 209 | resolution: {integrity: sha512-ETaW6245wK23YIEufhMQ3HSeHO7NgsLx8gygBVldRHKhOlD1oNeNy/P67mIh1zPn2Hr2HLieQrt6tWrVwuqrxg==} 210 | engines: {node: '>=12'} 211 | cpu: [ppc64] 212 | os: [linux] 213 | requiresBuild: true 214 | dev: true 215 | optional: true 216 | 217 | /@esbuild/linux-riscv64@0.19.8: 218 | resolution: {integrity: sha512-T2DRQk55SgoleTP+DtPlMrxi/5r9AeFgkhkZ/B0ap99zmxtxdOixOMI570VjdRCs9pE4Wdkz7JYrsPvsl7eESg==} 219 | engines: {node: '>=12'} 220 | cpu: [riscv64] 221 | os: [linux] 222 | requiresBuild: true 223 | dev: true 224 | optional: true 225 | 226 | /@esbuild/linux-s390x@0.19.8: 227 | resolution: {integrity: sha512-NPxbdmmo3Bk7mbNeHmcCd7R7fptJaczPYBaELk6NcXxy7HLNyWwCyDJ/Xx+/YcNH7Im5dHdx9gZ5xIwyliQCbg==} 228 | engines: {node: '>=12'} 229 | cpu: [s390x] 230 | os: [linux] 231 | requiresBuild: true 232 | dev: true 233 | optional: true 234 | 235 | /@esbuild/linux-x64@0.19.8: 236 | resolution: {integrity: sha512-lytMAVOM3b1gPypL2TRmZ5rnXl7+6IIk8uB3eLsV1JwcizuolblXRrc5ShPrO9ls/b+RTp+E6gbsuLWHWi2zGg==} 237 | engines: {node: '>=12'} 238 | cpu: [x64] 239 | os: [linux] 240 | requiresBuild: true 241 | dev: true 242 | optional: true 243 | 244 | /@esbuild/netbsd-x64@0.19.8: 245 | resolution: {integrity: sha512-hvWVo2VsXz/8NVt1UhLzxwAfo5sioj92uo0bCfLibB0xlOmimU/DeAEsQILlBQvkhrGjamP0/el5HU76HAitGw==} 246 | engines: {node: '>=12'} 247 | cpu: [x64] 248 | os: [netbsd] 249 | requiresBuild: true 250 | dev: true 251 | optional: true 252 | 253 | /@esbuild/openbsd-x64@0.19.8: 254 | resolution: {integrity: sha512-/7Y7u77rdvmGTxR83PgaSvSBJCC2L3Kb1M/+dmSIvRvQPXXCuC97QAwMugBNG0yGcbEGfFBH7ojPzAOxfGNkwQ==} 255 | engines: {node: '>=12'} 256 | cpu: [x64] 257 | os: [openbsd] 258 | requiresBuild: true 259 | dev: true 260 | optional: true 261 | 262 | /@esbuild/sunos-x64@0.19.8: 263 | resolution: {integrity: sha512-9Lc4s7Oi98GqFA4HzA/W2JHIYfnXbUYgekUP/Sm4BG9sfLjyv6GKKHKKVs83SMicBF2JwAX6A1PuOLMqpD001w==} 264 | engines: {node: '>=12'} 265 | cpu: [x64] 266 | os: [sunos] 267 | requiresBuild: true 268 | dev: true 269 | optional: true 270 | 271 | /@esbuild/win32-arm64@0.19.8: 272 | resolution: {integrity: sha512-rq6WzBGjSzihI9deW3fC2Gqiak68+b7qo5/3kmB6Gvbh/NYPA0sJhrnp7wgV4bNwjqM+R2AApXGxMO7ZoGhIJg==} 273 | engines: {node: '>=12'} 274 | cpu: [arm64] 275 | os: [win32] 276 | requiresBuild: true 277 | dev: true 278 | optional: true 279 | 280 | /@esbuild/win32-ia32@0.19.8: 281 | resolution: {integrity: sha512-AIAbverbg5jMvJznYiGhrd3sumfwWs8572mIJL5NQjJa06P8KfCPWZQ0NwZbPQnbQi9OWSZhFVSUWjjIrn4hSw==} 282 | engines: {node: '>=12'} 283 | cpu: [ia32] 284 | os: [win32] 285 | requiresBuild: true 286 | dev: true 287 | optional: true 288 | 289 | /@esbuild/win32-x64@0.19.8: 290 | resolution: {integrity: sha512-bfZ0cQ1uZs2PqpulNL5j/3w+GDhP36k1K5c38QdQg+Swy51jFZWWeIkteNsufkQxp986wnqRRsb/bHbY1WQ7TA==} 291 | engines: {node: '>=12'} 292 | cpu: [x64] 293 | os: [win32] 294 | requiresBuild: true 295 | dev: true 296 | optional: true 297 | 298 | /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): 299 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} 300 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 301 | peerDependencies: 302 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 303 | dependencies: 304 | eslint: 8.56.0 305 | eslint-visitor-keys: 3.4.3 306 | dev: true 307 | 308 | /@eslint-community/regexpp@4.6.2: 309 | resolution: {integrity: sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==} 310 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 311 | dev: true 312 | 313 | /@eslint/eslintrc@2.1.4: 314 | resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} 315 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 316 | dependencies: 317 | ajv: 6.12.6 318 | debug: 4.3.4 319 | espree: 9.6.1 320 | globals: 13.20.0 321 | ignore: 5.2.4 322 | import-fresh: 3.3.0 323 | js-yaml: 4.1.0 324 | minimatch: 3.1.2 325 | strip-json-comments: 3.1.1 326 | transitivePeerDependencies: 327 | - supports-color 328 | dev: true 329 | 330 | /@eslint/js@8.56.0: 331 | resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} 332 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 333 | dev: true 334 | 335 | /@humanwhocodes/config-array@0.11.13: 336 | resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} 337 | engines: {node: '>=10.10.0'} 338 | dependencies: 339 | '@humanwhocodes/object-schema': 2.0.1 340 | debug: 4.3.4 341 | minimatch: 3.1.2 342 | transitivePeerDependencies: 343 | - supports-color 344 | dev: true 345 | 346 | /@humanwhocodes/module-importer@1.0.1: 347 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 348 | engines: {node: '>=12.22'} 349 | dev: true 350 | 351 | /@humanwhocodes/object-schema@2.0.1: 352 | resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} 353 | dev: true 354 | 355 | /@isaacs/cliui@8.0.2: 356 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 357 | engines: {node: '>=12'} 358 | dependencies: 359 | string-width: 5.1.2 360 | string-width-cjs: /string-width@4.2.3 361 | strip-ansi: 7.1.0 362 | strip-ansi-cjs: /strip-ansi@6.0.1 363 | wrap-ansi: 8.1.0 364 | wrap-ansi-cjs: /wrap-ansi@7.0.0 365 | dev: true 366 | 367 | /@jridgewell/resolve-uri@3.1.0: 368 | resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} 369 | engines: {node: '>=6.0.0'} 370 | dev: true 371 | 372 | /@jridgewell/sourcemap-codec@1.4.14: 373 | resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} 374 | dev: true 375 | 376 | /@jridgewell/trace-mapping@0.3.9: 377 | resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} 378 | dependencies: 379 | '@jridgewell/resolve-uri': 3.1.0 380 | '@jridgewell/sourcemap-codec': 1.4.14 381 | dev: true 382 | 383 | /@nodelib/fs.scandir@2.1.5: 384 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 385 | engines: {node: '>= 8'} 386 | dependencies: 387 | '@nodelib/fs.stat': 2.0.5 388 | run-parallel: 1.2.0 389 | dev: true 390 | 391 | /@nodelib/fs.stat@2.0.5: 392 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 393 | engines: {node: '>= 8'} 394 | dev: true 395 | 396 | /@nodelib/fs.walk@1.2.8: 397 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 398 | engines: {node: '>= 8'} 399 | dependencies: 400 | '@nodelib/fs.scandir': 2.1.5 401 | fastq: 1.15.0 402 | dev: true 403 | 404 | /@pkgjs/parseargs@0.11.0: 405 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 406 | engines: {node: '>=14'} 407 | requiresBuild: true 408 | dev: true 409 | optional: true 410 | 411 | /@pkgr/utils@2.4.2: 412 | resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==} 413 | engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} 414 | dependencies: 415 | cross-spawn: 7.0.3 416 | fast-glob: 3.3.1 417 | is-glob: 4.0.3 418 | open: 9.1.0 419 | picocolors: 1.0.0 420 | tslib: 2.6.1 421 | dev: true 422 | 423 | /@rollup/rollup-android-arm-eabi@4.6.1: 424 | resolution: {integrity: sha512-0WQ0ouLejaUCRsL93GD4uft3rOmB8qoQMU05Kb8CmMtMBe7XUDLAltxVZI1q6byNqEtU7N1ZX1Vw5lIpgulLQA==} 425 | cpu: [arm] 426 | os: [android] 427 | requiresBuild: true 428 | dev: true 429 | optional: true 430 | 431 | /@rollup/rollup-android-arm64@4.6.1: 432 | resolution: {integrity: sha512-1TKm25Rn20vr5aTGGZqo6E4mzPicCUD79k17EgTLAsXc1zysyi4xXKACfUbwyANEPAEIxkzwue6JZ+stYzWUTA==} 433 | cpu: [arm64] 434 | os: [android] 435 | requiresBuild: true 436 | dev: true 437 | optional: true 438 | 439 | /@rollup/rollup-darwin-arm64@4.6.1: 440 | resolution: {integrity: sha512-cEXJQY/ZqMACb+nxzDeX9IPLAg7S94xouJJCNVE5BJM8JUEP4HeTF+ti3cmxWeSJo+5D+o8Tc0UAWUkfENdeyw==} 441 | cpu: [arm64] 442 | os: [darwin] 443 | requiresBuild: true 444 | dev: true 445 | optional: true 446 | 447 | /@rollup/rollup-darwin-x64@4.6.1: 448 | resolution: {integrity: sha512-LoSU9Xu56isrkV2jLldcKspJ7sSXmZWkAxg7sW/RfF7GS4F5/v4EiqKSMCFbZtDu2Nc1gxxFdQdKwkKS4rwxNg==} 449 | cpu: [x64] 450 | os: [darwin] 451 | requiresBuild: true 452 | dev: true 453 | optional: true 454 | 455 | /@rollup/rollup-linux-arm-gnueabihf@4.6.1: 456 | resolution: {integrity: sha512-EfI3hzYAy5vFNDqpXsNxXcgRDcFHUWSx5nnRSCKwXuQlI5J9dD84g2Usw81n3FLBNsGCegKGwwTVsSKK9cooSQ==} 457 | cpu: [arm] 458 | os: [linux] 459 | requiresBuild: true 460 | dev: true 461 | optional: true 462 | 463 | /@rollup/rollup-linux-arm64-gnu@4.6.1: 464 | resolution: {integrity: sha512-9lhc4UZstsegbNLhH0Zu6TqvDfmhGzuCWtcTFXY10VjLLUe4Mr0Ye2L3rrtHaDd/J5+tFMEuo5LTCSCMXWfUKw==} 465 | cpu: [arm64] 466 | os: [linux] 467 | requiresBuild: true 468 | dev: true 469 | optional: true 470 | 471 | /@rollup/rollup-linux-arm64-musl@4.6.1: 472 | resolution: {integrity: sha512-FfoOK1yP5ksX3wwZ4Zk1NgyGHZyuRhf99j64I5oEmirV8EFT7+OhUZEnP+x17lcP/QHJNWGsoJwrz4PJ9fBEXw==} 473 | cpu: [arm64] 474 | os: [linux] 475 | requiresBuild: true 476 | dev: true 477 | optional: true 478 | 479 | /@rollup/rollup-linux-x64-gnu@4.6.1: 480 | resolution: {integrity: sha512-DNGZvZDO5YF7jN5fX8ZqmGLjZEXIJRdJEdTFMhiyXqyXubBa0WVLDWSNlQ5JR2PNgDbEV1VQowhVRUh+74D+RA==} 481 | cpu: [x64] 482 | os: [linux] 483 | requiresBuild: true 484 | dev: true 485 | optional: true 486 | 487 | /@rollup/rollup-linux-x64-musl@4.6.1: 488 | resolution: {integrity: sha512-RkJVNVRM+piYy87HrKmhbexCHg3A6Z6MU0W9GHnJwBQNBeyhCJG9KDce4SAMdicQnpURggSvtbGo9xAWOfSvIQ==} 489 | cpu: [x64] 490 | os: [linux] 491 | requiresBuild: true 492 | dev: true 493 | optional: true 494 | 495 | /@rollup/rollup-win32-arm64-msvc@4.6.1: 496 | resolution: {integrity: sha512-v2FVT6xfnnmTe3W9bJXl6r5KwJglMK/iRlkKiIFfO6ysKs0rDgz7Cwwf3tjldxQUrHL9INT/1r4VA0n9L/F1vQ==} 497 | cpu: [arm64] 498 | os: [win32] 499 | requiresBuild: true 500 | dev: true 501 | optional: true 502 | 503 | /@rollup/rollup-win32-ia32-msvc@4.6.1: 504 | resolution: {integrity: sha512-YEeOjxRyEjqcWphH9dyLbzgkF8wZSKAKUkldRY6dgNR5oKs2LZazqGB41cWJ4Iqqcy9/zqYgmzBkRoVz3Q9MLw==} 505 | cpu: [ia32] 506 | os: [win32] 507 | requiresBuild: true 508 | dev: true 509 | optional: true 510 | 511 | /@rollup/rollup-win32-x64-msvc@4.6.1: 512 | resolution: {integrity: sha512-0zfTlFAIhgz8V2G8STq8toAjsYYA6eci1hnXuyOTUFnymrtJwnS6uGKiv3v5UrPZkBlamLvrLV2iiaeqCKzb0A==} 513 | cpu: [x64] 514 | os: [win32] 515 | requiresBuild: true 516 | dev: true 517 | optional: true 518 | 519 | /@tsconfig/node10@1.0.9: 520 | resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} 521 | dev: true 522 | 523 | /@tsconfig/node12@1.0.11: 524 | resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} 525 | dev: true 526 | 527 | /@tsconfig/node14@1.0.3: 528 | resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} 529 | dev: true 530 | 531 | /@tsconfig/node16@1.0.3: 532 | resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==} 533 | dev: true 534 | 535 | /@types/json-schema@7.0.12: 536 | resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} 537 | dev: true 538 | 539 | /@types/node@20.12.7: 540 | resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} 541 | dependencies: 542 | undici-types: 5.26.5 543 | dev: true 544 | 545 | /@types/normalize-package-data@2.4.1: 546 | resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} 547 | dev: true 548 | 549 | /@types/semver@7.5.0: 550 | resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} 551 | dev: true 552 | 553 | /@typescript-eslint/eslint-plugin@6.4.0(@typescript-eslint/parser@6.4.0)(eslint@8.56.0)(typescript@5.3.2): 554 | resolution: {integrity: sha512-62o2Hmc7Gs3p8SLfbXcipjWAa6qk2wZGChXG2JbBtYpwSRmti/9KHLqfbLs9uDigOexG+3PaQ9G2g3201FWLKg==} 555 | engines: {node: ^16.0.0 || >=18.0.0} 556 | peerDependencies: 557 | '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha 558 | eslint: ^7.0.0 || ^8.0.0 559 | typescript: '*' 560 | peerDependenciesMeta: 561 | typescript: 562 | optional: true 563 | dependencies: 564 | '@eslint-community/regexpp': 4.6.2 565 | '@typescript-eslint/parser': 6.4.0(eslint@8.56.0)(typescript@5.3.2) 566 | '@typescript-eslint/scope-manager': 6.4.0 567 | '@typescript-eslint/type-utils': 6.4.0(eslint@8.56.0)(typescript@5.3.2) 568 | '@typescript-eslint/utils': 6.4.0(eslint@8.56.0)(typescript@5.3.2) 569 | '@typescript-eslint/visitor-keys': 6.4.0 570 | debug: 4.3.4 571 | eslint: 8.56.0 572 | graphemer: 1.4.0 573 | ignore: 5.2.4 574 | natural-compare: 1.4.0 575 | semver: 7.5.4 576 | ts-api-utils: 1.0.1(typescript@5.3.2) 577 | typescript: 5.3.2 578 | transitivePeerDependencies: 579 | - supports-color 580 | dev: true 581 | 582 | /@typescript-eslint/parser@6.4.0(eslint@8.56.0)(typescript@5.3.2): 583 | resolution: {integrity: sha512-I1Ah1irl033uxjxO9Xql7+biL3YD7w9IU8zF+xlzD/YxY6a4b7DYA08PXUUCbm2sEljwJF6ERFy2kTGAGcNilg==} 584 | engines: {node: ^16.0.0 || >=18.0.0} 585 | peerDependencies: 586 | eslint: ^7.0.0 || ^8.0.0 587 | typescript: '*' 588 | peerDependenciesMeta: 589 | typescript: 590 | optional: true 591 | dependencies: 592 | '@typescript-eslint/scope-manager': 6.4.0 593 | '@typescript-eslint/types': 6.4.0 594 | '@typescript-eslint/typescript-estree': 6.4.0(typescript@5.3.2) 595 | '@typescript-eslint/visitor-keys': 6.4.0 596 | debug: 4.3.4 597 | eslint: 8.56.0 598 | typescript: 5.3.2 599 | transitivePeerDependencies: 600 | - supports-color 601 | dev: true 602 | 603 | /@typescript-eslint/scope-manager@6.4.0: 604 | resolution: {integrity: sha512-TUS7vaKkPWDVvl7GDNHFQMsMruD+zhkd3SdVW0d7b+7Zo+bd/hXJQ8nsiUZMi1jloWo6c9qt3B7Sqo+flC1nig==} 605 | engines: {node: ^16.0.0 || >=18.0.0} 606 | dependencies: 607 | '@typescript-eslint/types': 6.4.0 608 | '@typescript-eslint/visitor-keys': 6.4.0 609 | dev: true 610 | 611 | /@typescript-eslint/type-utils@6.4.0(eslint@8.56.0)(typescript@5.3.2): 612 | resolution: {integrity: sha512-TvqrUFFyGY0cX3WgDHcdl2/mMCWCDv/0thTtx/ODMY1QhEiyFtv/OlLaNIiYLwRpAxAtOLOY9SUf1H3Q3dlwAg==} 613 | engines: {node: ^16.0.0 || >=18.0.0} 614 | peerDependencies: 615 | eslint: ^7.0.0 || ^8.0.0 616 | typescript: '*' 617 | peerDependenciesMeta: 618 | typescript: 619 | optional: true 620 | dependencies: 621 | '@typescript-eslint/typescript-estree': 6.4.0(typescript@5.3.2) 622 | '@typescript-eslint/utils': 6.4.0(eslint@8.56.0)(typescript@5.3.2) 623 | debug: 4.3.4 624 | eslint: 8.56.0 625 | ts-api-utils: 1.0.1(typescript@5.3.2) 626 | typescript: 5.3.2 627 | transitivePeerDependencies: 628 | - supports-color 629 | dev: true 630 | 631 | /@typescript-eslint/types@6.4.0: 632 | resolution: {integrity: sha512-+FV9kVFrS7w78YtzkIsNSoYsnOtrYVnKWSTVXoL1761CsCRv5wpDOINgsXpxD67YCLZtVQekDDyaxfjVWUJmmg==} 633 | engines: {node: ^16.0.0 || >=18.0.0} 634 | dev: true 635 | 636 | /@typescript-eslint/typescript-estree@6.4.0(typescript@5.3.2): 637 | resolution: {integrity: sha512-iDPJArf/K2sxvjOR6skeUCNgHR/tCQXBsa+ee1/clRKr3olZjZ/dSkXPZjG6YkPtnW6p5D1egeEPMCW6Gn4yLA==} 638 | engines: {node: ^16.0.0 || >=18.0.0} 639 | peerDependencies: 640 | typescript: '*' 641 | peerDependenciesMeta: 642 | typescript: 643 | optional: true 644 | dependencies: 645 | '@typescript-eslint/types': 6.4.0 646 | '@typescript-eslint/visitor-keys': 6.4.0 647 | debug: 4.3.4 648 | globby: 11.1.0 649 | is-glob: 4.0.3 650 | semver: 7.5.4 651 | ts-api-utils: 1.0.1(typescript@5.3.2) 652 | typescript: 5.3.2 653 | transitivePeerDependencies: 654 | - supports-color 655 | dev: true 656 | 657 | /@typescript-eslint/utils@6.4.0(eslint@8.56.0)(typescript@5.3.2): 658 | resolution: {integrity: sha512-BvvwryBQpECPGo8PwF/y/q+yacg8Hn/2XS+DqL/oRsOPK+RPt29h5Ui5dqOKHDlbXrAeHUTnyG3wZA0KTDxRZw==} 659 | engines: {node: ^16.0.0 || >=18.0.0} 660 | peerDependencies: 661 | eslint: ^7.0.0 || ^8.0.0 662 | dependencies: 663 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) 664 | '@types/json-schema': 7.0.12 665 | '@types/semver': 7.5.0 666 | '@typescript-eslint/scope-manager': 6.4.0 667 | '@typescript-eslint/types': 6.4.0 668 | '@typescript-eslint/typescript-estree': 6.4.0(typescript@5.3.2) 669 | eslint: 8.56.0 670 | semver: 7.5.4 671 | transitivePeerDependencies: 672 | - supports-color 673 | - typescript 674 | dev: true 675 | 676 | /@typescript-eslint/visitor-keys@6.4.0: 677 | resolution: {integrity: sha512-yJSfyT+uJm+JRDWYRYdCm2i+pmvXJSMtPR9Cq5/XQs4QIgNoLcoRtDdzsLbLsFM/c6um6ohQkg/MLxWvoIndJA==} 678 | engines: {node: ^16.0.0 || >=18.0.0} 679 | dependencies: 680 | '@typescript-eslint/types': 6.4.0 681 | eslint-visitor-keys: 3.4.3 682 | dev: true 683 | 684 | /@ungap/structured-clone@1.2.0: 685 | resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} 686 | dev: true 687 | 688 | /acorn-jsx@5.3.2(acorn@8.10.0): 689 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 690 | peerDependencies: 691 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 692 | dependencies: 693 | acorn: 8.10.0 694 | dev: true 695 | 696 | /acorn-walk@8.2.0: 697 | resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} 698 | engines: {node: '>=0.4.0'} 699 | dev: true 700 | 701 | /acorn@8.10.0: 702 | resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} 703 | engines: {node: '>=0.4.0'} 704 | hasBin: true 705 | dev: true 706 | 707 | /ajv@6.12.6: 708 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 709 | dependencies: 710 | fast-deep-equal: 3.1.3 711 | fast-json-stable-stringify: 2.1.0 712 | json-schema-traverse: 0.4.1 713 | uri-js: 4.4.1 714 | dev: true 715 | 716 | /ansi-regex@5.0.1: 717 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 718 | engines: {node: '>=8'} 719 | dev: true 720 | 721 | /ansi-regex@6.0.1: 722 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} 723 | engines: {node: '>=12'} 724 | dev: true 725 | 726 | /ansi-styles@3.2.1: 727 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 728 | engines: {node: '>=4'} 729 | dependencies: 730 | color-convert: 1.9.3 731 | dev: true 732 | 733 | /ansi-styles@4.3.0: 734 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 735 | engines: {node: '>=8'} 736 | dependencies: 737 | color-convert: 2.0.1 738 | dev: true 739 | 740 | /ansi-styles@6.2.1: 741 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 742 | engines: {node: '>=12'} 743 | dev: true 744 | 745 | /any-promise@1.3.0: 746 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 747 | dev: true 748 | 749 | /anymatch@3.1.3: 750 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 751 | engines: {node: '>= 8'} 752 | dependencies: 753 | normalize-path: 3.0.0 754 | picomatch: 2.3.1 755 | dev: true 756 | 757 | /arg@4.1.3: 758 | resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} 759 | dev: true 760 | 761 | /argparse@2.0.1: 762 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 763 | dev: true 764 | 765 | /array-union@2.1.0: 766 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 767 | engines: {node: '>=8'} 768 | dev: true 769 | 770 | /balanced-match@1.0.2: 771 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 772 | dev: true 773 | 774 | /big-integer@1.6.51: 775 | resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} 776 | engines: {node: '>=0.6'} 777 | dev: true 778 | 779 | /binary-extensions@2.2.0: 780 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 781 | engines: {node: '>=8'} 782 | dev: true 783 | 784 | /bplist-parser@0.2.0: 785 | resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} 786 | engines: {node: '>= 5.10.0'} 787 | dependencies: 788 | big-integer: 1.6.51 789 | dev: true 790 | 791 | /brace-expansion@1.1.11: 792 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 793 | dependencies: 794 | balanced-match: 1.0.2 795 | concat-map: 0.0.1 796 | dev: true 797 | 798 | /brace-expansion@2.0.1: 799 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 800 | dependencies: 801 | balanced-match: 1.0.2 802 | dev: true 803 | 804 | /braces@3.0.2: 805 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 806 | engines: {node: '>=8'} 807 | dependencies: 808 | fill-range: 7.0.1 809 | dev: true 810 | 811 | /builtin-modules@3.3.0: 812 | resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} 813 | engines: {node: '>=6'} 814 | dev: true 815 | 816 | /bundle-name@3.0.0: 817 | resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} 818 | engines: {node: '>=12'} 819 | dependencies: 820 | run-applescript: 5.0.0 821 | dev: true 822 | 823 | /bundle-require@4.0.1(esbuild@0.19.8): 824 | resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==} 825 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 826 | peerDependencies: 827 | esbuild: '>=0.17' 828 | dependencies: 829 | esbuild: 0.19.8 830 | load-tsconfig: 0.2.5 831 | dev: true 832 | 833 | /cac@6.7.14: 834 | resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 835 | engines: {node: '>=8'} 836 | dev: true 837 | 838 | /callsites@3.1.0: 839 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 840 | engines: {node: '>=6'} 841 | dev: true 842 | 843 | /chalk@2.4.2: 844 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 845 | engines: {node: '>=4'} 846 | dependencies: 847 | ansi-styles: 3.2.1 848 | escape-string-regexp: 1.0.5 849 | supports-color: 5.5.0 850 | dev: true 851 | 852 | /chalk@4.1.2: 853 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 854 | engines: {node: '>=10'} 855 | dependencies: 856 | ansi-styles: 4.3.0 857 | supports-color: 7.2.0 858 | dev: true 859 | 860 | /chokidar@3.5.3: 861 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 862 | engines: {node: '>= 8.10.0'} 863 | dependencies: 864 | anymatch: 3.1.3 865 | braces: 3.0.2 866 | glob-parent: 5.1.2 867 | is-binary-path: 2.1.0 868 | is-glob: 4.0.3 869 | normalize-path: 3.0.0 870 | readdirp: 3.6.0 871 | optionalDependencies: 872 | fsevents: 2.3.2 873 | dev: true 874 | 875 | /ci-info@3.8.0: 876 | resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} 877 | engines: {node: '>=8'} 878 | dev: true 879 | 880 | /clean-regexp@1.0.0: 881 | resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} 882 | engines: {node: '>=4'} 883 | dependencies: 884 | escape-string-regexp: 1.0.5 885 | dev: true 886 | 887 | /color-convert@1.9.3: 888 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 889 | dependencies: 890 | color-name: 1.1.3 891 | dev: true 892 | 893 | /color-convert@2.0.1: 894 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 895 | engines: {node: '>=7.0.0'} 896 | dependencies: 897 | color-name: 1.1.4 898 | dev: true 899 | 900 | /color-name@1.1.3: 901 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 902 | dev: true 903 | 904 | /color-name@1.1.4: 905 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 906 | dev: true 907 | 908 | /commander@4.1.1: 909 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 910 | engines: {node: '>= 6'} 911 | dev: true 912 | 913 | /concat-map@0.0.1: 914 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 915 | dev: true 916 | 917 | /create-require@1.1.1: 918 | resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} 919 | dev: true 920 | 921 | /cross-spawn@7.0.3: 922 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 923 | engines: {node: '>= 8'} 924 | dependencies: 925 | path-key: 3.1.1 926 | shebang-command: 2.0.0 927 | which: 2.0.2 928 | dev: true 929 | 930 | /debug@4.3.4: 931 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 932 | engines: {node: '>=6.0'} 933 | peerDependencies: 934 | supports-color: '*' 935 | peerDependenciesMeta: 936 | supports-color: 937 | optional: true 938 | dependencies: 939 | ms: 2.1.2 940 | dev: true 941 | 942 | /deep-is@0.1.4: 943 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 944 | dev: true 945 | 946 | /default-browser-id@3.0.0: 947 | resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} 948 | engines: {node: '>=12'} 949 | dependencies: 950 | bplist-parser: 0.2.0 951 | untildify: 4.0.0 952 | dev: true 953 | 954 | /default-browser@4.0.0: 955 | resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} 956 | engines: {node: '>=14.16'} 957 | dependencies: 958 | bundle-name: 3.0.0 959 | default-browser-id: 3.0.0 960 | execa: 7.2.0 961 | titleize: 3.0.0 962 | dev: true 963 | 964 | /define-lazy-prop@3.0.0: 965 | resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} 966 | engines: {node: '>=12'} 967 | dev: true 968 | 969 | /diff@4.0.2: 970 | resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} 971 | engines: {node: '>=0.3.1'} 972 | dev: true 973 | 974 | /dir-glob@3.0.1: 975 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 976 | engines: {node: '>=8'} 977 | dependencies: 978 | path-type: 4.0.0 979 | dev: true 980 | 981 | /doctrine@3.0.0: 982 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 983 | engines: {node: '>=6.0.0'} 984 | dependencies: 985 | esutils: 2.0.3 986 | dev: true 987 | 988 | /dotenv@16.4.5: 989 | resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} 990 | engines: {node: '>=12'} 991 | dev: true 992 | 993 | /eastasianwidth@0.2.0: 994 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 995 | dev: true 996 | 997 | /emoji-regex@8.0.0: 998 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 999 | dev: true 1000 | 1001 | /emoji-regex@9.2.2: 1002 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 1003 | dev: true 1004 | 1005 | /error-ex@1.3.2: 1006 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} 1007 | dependencies: 1008 | is-arrayish: 0.2.1 1009 | dev: true 1010 | 1011 | /esbuild@0.19.8: 1012 | resolution: {integrity: sha512-l7iffQpT2OrZfH2rXIp7/FkmaeZM0vxbxN9KfiCwGYuZqzMg/JdvX26R31Zxn/Pxvsrg3Y9N6XTcnknqDyyv4w==} 1013 | engines: {node: '>=12'} 1014 | hasBin: true 1015 | requiresBuild: true 1016 | optionalDependencies: 1017 | '@esbuild/android-arm': 0.19.8 1018 | '@esbuild/android-arm64': 0.19.8 1019 | '@esbuild/android-x64': 0.19.8 1020 | '@esbuild/darwin-arm64': 0.19.8 1021 | '@esbuild/darwin-x64': 0.19.8 1022 | '@esbuild/freebsd-arm64': 0.19.8 1023 | '@esbuild/freebsd-x64': 0.19.8 1024 | '@esbuild/linux-arm': 0.19.8 1025 | '@esbuild/linux-arm64': 0.19.8 1026 | '@esbuild/linux-ia32': 0.19.8 1027 | '@esbuild/linux-loong64': 0.19.8 1028 | '@esbuild/linux-mips64el': 0.19.8 1029 | '@esbuild/linux-ppc64': 0.19.8 1030 | '@esbuild/linux-riscv64': 0.19.8 1031 | '@esbuild/linux-s390x': 0.19.8 1032 | '@esbuild/linux-x64': 0.19.8 1033 | '@esbuild/netbsd-x64': 0.19.8 1034 | '@esbuild/openbsd-x64': 0.19.8 1035 | '@esbuild/sunos-x64': 0.19.8 1036 | '@esbuild/win32-arm64': 0.19.8 1037 | '@esbuild/win32-ia32': 0.19.8 1038 | '@esbuild/win32-x64': 0.19.8 1039 | dev: true 1040 | 1041 | /escape-string-regexp@1.0.5: 1042 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 1043 | engines: {node: '>=0.8.0'} 1044 | dev: true 1045 | 1046 | /escape-string-regexp@4.0.0: 1047 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 1048 | engines: {node: '>=10'} 1049 | dev: true 1050 | 1051 | /eslint-config-prettier@9.0.0(eslint@8.56.0): 1052 | resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} 1053 | hasBin: true 1054 | peerDependencies: 1055 | eslint: '>=7.0.0' 1056 | dependencies: 1057 | eslint: 8.56.0 1058 | dev: true 1059 | 1060 | /eslint-plugin-json@3.1.0: 1061 | resolution: {integrity: sha512-MrlG2ynFEHe7wDGwbUuFPsaT2b1uhuEFhJ+W1f1u+1C2EkXmTYJp4B1aAdQQ8M+CC3t//N/oRKiIVw14L2HR1g==} 1062 | engines: {node: '>=12.0'} 1063 | dependencies: 1064 | lodash: 4.17.21 1065 | vscode-json-languageservice: 4.2.1 1066 | dev: true 1067 | 1068 | /eslint-plugin-prettier@5.0.0(eslint-config-prettier@9.0.0)(eslint@8.56.0)(prettier@3.2.5): 1069 | resolution: {integrity: sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w==} 1070 | engines: {node: ^14.18.0 || >=16.0.0} 1071 | peerDependencies: 1072 | '@types/eslint': '>=8.0.0' 1073 | eslint: '>=8.0.0' 1074 | eslint-config-prettier: '*' 1075 | prettier: '>=3.0.0' 1076 | peerDependenciesMeta: 1077 | '@types/eslint': 1078 | optional: true 1079 | eslint-config-prettier: 1080 | optional: true 1081 | dependencies: 1082 | eslint: 8.56.0 1083 | eslint-config-prettier: 9.0.0(eslint@8.56.0) 1084 | prettier: 3.2.5 1085 | prettier-linter-helpers: 1.0.0 1086 | synckit: 0.8.5 1087 | dev: true 1088 | 1089 | /eslint-plugin-promise@6.1.1(eslint@8.56.0): 1090 | resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} 1091 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1092 | peerDependencies: 1093 | eslint: ^7.0.0 || ^8.0.0 1094 | dependencies: 1095 | eslint: 8.56.0 1096 | dev: true 1097 | 1098 | /eslint-plugin-unicorn@48.0.1(eslint@8.56.0): 1099 | resolution: {integrity: sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw==} 1100 | engines: {node: '>=16'} 1101 | peerDependencies: 1102 | eslint: '>=8.44.0' 1103 | dependencies: 1104 | '@babel/helper-validator-identifier': 7.22.5 1105 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) 1106 | ci-info: 3.8.0 1107 | clean-regexp: 1.0.0 1108 | eslint: 8.56.0 1109 | esquery: 1.5.0 1110 | indent-string: 4.0.0 1111 | is-builtin-module: 3.2.1 1112 | jsesc: 3.0.2 1113 | lodash: 4.17.21 1114 | pluralize: 8.0.0 1115 | read-pkg-up: 7.0.1 1116 | regexp-tree: 0.1.27 1117 | regjsparser: 0.10.0 1118 | semver: 7.5.4 1119 | strip-indent: 3.0.0 1120 | dev: true 1121 | 1122 | /eslint-scope@7.2.2: 1123 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} 1124 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1125 | dependencies: 1126 | esrecurse: 4.3.0 1127 | estraverse: 5.3.0 1128 | dev: true 1129 | 1130 | /eslint-visitor-keys@3.4.3: 1131 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 1132 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1133 | dev: true 1134 | 1135 | /eslint@8.56.0: 1136 | resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} 1137 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1138 | hasBin: true 1139 | dependencies: 1140 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) 1141 | '@eslint-community/regexpp': 4.6.2 1142 | '@eslint/eslintrc': 2.1.4 1143 | '@eslint/js': 8.56.0 1144 | '@humanwhocodes/config-array': 0.11.13 1145 | '@humanwhocodes/module-importer': 1.0.1 1146 | '@nodelib/fs.walk': 1.2.8 1147 | '@ungap/structured-clone': 1.2.0 1148 | ajv: 6.12.6 1149 | chalk: 4.1.2 1150 | cross-spawn: 7.0.3 1151 | debug: 4.3.4 1152 | doctrine: 3.0.0 1153 | escape-string-regexp: 4.0.0 1154 | eslint-scope: 7.2.2 1155 | eslint-visitor-keys: 3.4.3 1156 | espree: 9.6.1 1157 | esquery: 1.5.0 1158 | esutils: 2.0.3 1159 | fast-deep-equal: 3.1.3 1160 | file-entry-cache: 6.0.1 1161 | find-up: 5.0.0 1162 | glob-parent: 6.0.2 1163 | globals: 13.20.0 1164 | graphemer: 1.4.0 1165 | ignore: 5.2.4 1166 | imurmurhash: 0.1.4 1167 | is-glob: 4.0.3 1168 | is-path-inside: 3.0.3 1169 | js-yaml: 4.1.0 1170 | json-stable-stringify-without-jsonify: 1.0.1 1171 | levn: 0.4.1 1172 | lodash.merge: 4.6.2 1173 | minimatch: 3.1.2 1174 | natural-compare: 1.4.0 1175 | optionator: 0.9.3 1176 | strip-ansi: 6.0.1 1177 | text-table: 0.2.0 1178 | transitivePeerDependencies: 1179 | - supports-color 1180 | dev: true 1181 | 1182 | /espree@9.6.1: 1183 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} 1184 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1185 | dependencies: 1186 | acorn: 8.10.0 1187 | acorn-jsx: 5.3.2(acorn@8.10.0) 1188 | eslint-visitor-keys: 3.4.3 1189 | dev: true 1190 | 1191 | /esquery@1.5.0: 1192 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} 1193 | engines: {node: '>=0.10'} 1194 | dependencies: 1195 | estraverse: 5.3.0 1196 | dev: true 1197 | 1198 | /esrecurse@4.3.0: 1199 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 1200 | engines: {node: '>=4.0'} 1201 | dependencies: 1202 | estraverse: 5.3.0 1203 | dev: true 1204 | 1205 | /estraverse@5.3.0: 1206 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 1207 | engines: {node: '>=4.0'} 1208 | dev: true 1209 | 1210 | /esutils@2.0.3: 1211 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1212 | engines: {node: '>=0.10.0'} 1213 | dev: true 1214 | 1215 | /execa@5.1.1: 1216 | resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} 1217 | engines: {node: '>=10'} 1218 | dependencies: 1219 | cross-spawn: 7.0.3 1220 | get-stream: 6.0.1 1221 | human-signals: 2.1.0 1222 | is-stream: 2.0.1 1223 | merge-stream: 2.0.0 1224 | npm-run-path: 4.0.1 1225 | onetime: 5.1.2 1226 | signal-exit: 3.0.7 1227 | strip-final-newline: 2.0.0 1228 | dev: true 1229 | 1230 | /execa@7.2.0: 1231 | resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} 1232 | engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} 1233 | dependencies: 1234 | cross-spawn: 7.0.3 1235 | get-stream: 6.0.1 1236 | human-signals: 4.3.1 1237 | is-stream: 3.0.0 1238 | merge-stream: 2.0.0 1239 | npm-run-path: 5.1.0 1240 | onetime: 6.0.0 1241 | signal-exit: 3.0.7 1242 | strip-final-newline: 3.0.0 1243 | dev: true 1244 | 1245 | /fast-deep-equal@3.1.3: 1246 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1247 | dev: true 1248 | 1249 | /fast-diff@1.2.0: 1250 | resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==} 1251 | dev: true 1252 | 1253 | /fast-glob@3.3.1: 1254 | resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} 1255 | engines: {node: '>=8.6.0'} 1256 | dependencies: 1257 | '@nodelib/fs.stat': 2.0.5 1258 | '@nodelib/fs.walk': 1.2.8 1259 | glob-parent: 5.1.2 1260 | merge2: 1.4.1 1261 | micromatch: 4.0.5 1262 | dev: true 1263 | 1264 | /fast-json-stable-stringify@2.1.0: 1265 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1266 | dev: true 1267 | 1268 | /fast-levenshtein@2.0.6: 1269 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 1270 | dev: true 1271 | 1272 | /fast-xml-parser@4.3.6: 1273 | resolution: {integrity: sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==} 1274 | hasBin: true 1275 | dependencies: 1276 | strnum: 1.0.5 1277 | dev: false 1278 | 1279 | /fastq@1.15.0: 1280 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 1281 | dependencies: 1282 | reusify: 1.0.4 1283 | dev: true 1284 | 1285 | /file-entry-cache@6.0.1: 1286 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 1287 | engines: {node: ^10.12.0 || >=12.0.0} 1288 | dependencies: 1289 | flat-cache: 3.0.4 1290 | dev: true 1291 | 1292 | /fill-range@7.0.1: 1293 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 1294 | engines: {node: '>=8'} 1295 | dependencies: 1296 | to-regex-range: 5.0.1 1297 | dev: true 1298 | 1299 | /find-up@4.1.0: 1300 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} 1301 | engines: {node: '>=8'} 1302 | dependencies: 1303 | locate-path: 5.0.0 1304 | path-exists: 4.0.0 1305 | dev: true 1306 | 1307 | /find-up@5.0.0: 1308 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 1309 | engines: {node: '>=10'} 1310 | dependencies: 1311 | locate-path: 6.0.0 1312 | path-exists: 4.0.0 1313 | dev: true 1314 | 1315 | /flat-cache@3.0.4: 1316 | resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} 1317 | engines: {node: ^10.12.0 || >=12.0.0} 1318 | dependencies: 1319 | flatted: 3.2.7 1320 | rimraf: 3.0.2 1321 | dev: true 1322 | 1323 | /flatted@3.2.7: 1324 | resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} 1325 | dev: true 1326 | 1327 | /foreground-child@3.1.1: 1328 | resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} 1329 | engines: {node: '>=14'} 1330 | dependencies: 1331 | cross-spawn: 7.0.3 1332 | signal-exit: 4.0.1 1333 | dev: true 1334 | 1335 | /fs.realpath@1.0.0: 1336 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1337 | dev: true 1338 | 1339 | /fsevents@2.3.2: 1340 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 1341 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1342 | os: [darwin] 1343 | requiresBuild: true 1344 | dev: true 1345 | optional: true 1346 | 1347 | /function-bind@1.1.1: 1348 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 1349 | dev: true 1350 | 1351 | /get-stream@6.0.1: 1352 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 1353 | engines: {node: '>=10'} 1354 | dev: true 1355 | 1356 | /glob-parent@5.1.2: 1357 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1358 | engines: {node: '>= 6'} 1359 | dependencies: 1360 | is-glob: 4.0.3 1361 | dev: true 1362 | 1363 | /glob-parent@6.0.2: 1364 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 1365 | engines: {node: '>=10.13.0'} 1366 | dependencies: 1367 | is-glob: 4.0.3 1368 | dev: true 1369 | 1370 | /glob@10.3.10: 1371 | resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} 1372 | engines: {node: '>=16 || 14 >=14.17'} 1373 | hasBin: true 1374 | dependencies: 1375 | foreground-child: 3.1.1 1376 | jackspeak: 2.3.6 1377 | minimatch: 9.0.3 1378 | minipass: 5.0.0 1379 | path-scurry: 1.10.1 1380 | dev: true 1381 | 1382 | /glob@7.1.6: 1383 | resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} 1384 | dependencies: 1385 | fs.realpath: 1.0.0 1386 | inflight: 1.0.6 1387 | inherits: 2.0.4 1388 | minimatch: 3.1.2 1389 | once: 1.4.0 1390 | path-is-absolute: 1.0.1 1391 | dev: true 1392 | 1393 | /glob@7.2.3: 1394 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1395 | dependencies: 1396 | fs.realpath: 1.0.0 1397 | inflight: 1.0.6 1398 | inherits: 2.0.4 1399 | minimatch: 3.1.2 1400 | once: 1.4.0 1401 | path-is-absolute: 1.0.1 1402 | dev: true 1403 | 1404 | /globals@13.20.0: 1405 | resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} 1406 | engines: {node: '>=8'} 1407 | dependencies: 1408 | type-fest: 0.20.2 1409 | dev: true 1410 | 1411 | /globby@11.1.0: 1412 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 1413 | engines: {node: '>=10'} 1414 | dependencies: 1415 | array-union: 2.1.0 1416 | dir-glob: 3.0.1 1417 | fast-glob: 3.3.1 1418 | ignore: 5.2.4 1419 | merge2: 1.4.1 1420 | slash: 3.0.0 1421 | dev: true 1422 | 1423 | /graphemer@1.4.0: 1424 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 1425 | dev: true 1426 | 1427 | /has-flag@3.0.0: 1428 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 1429 | engines: {node: '>=4'} 1430 | dev: true 1431 | 1432 | /has-flag@4.0.0: 1433 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1434 | engines: {node: '>=8'} 1435 | dev: true 1436 | 1437 | /has@1.0.3: 1438 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 1439 | engines: {node: '>= 0.4.0'} 1440 | dependencies: 1441 | function-bind: 1.1.1 1442 | dev: true 1443 | 1444 | /hosted-git-info@2.8.9: 1445 | resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} 1446 | dev: true 1447 | 1448 | /human-signals@2.1.0: 1449 | resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} 1450 | engines: {node: '>=10.17.0'} 1451 | dev: true 1452 | 1453 | /human-signals@4.3.1: 1454 | resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} 1455 | engines: {node: '>=14.18.0'} 1456 | dev: true 1457 | 1458 | /ignore@5.2.4: 1459 | resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} 1460 | engines: {node: '>= 4'} 1461 | dev: true 1462 | 1463 | /import-fresh@3.3.0: 1464 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 1465 | engines: {node: '>=6'} 1466 | dependencies: 1467 | parent-module: 1.0.1 1468 | resolve-from: 4.0.0 1469 | dev: true 1470 | 1471 | /imurmurhash@0.1.4: 1472 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 1473 | engines: {node: '>=0.8.19'} 1474 | dev: true 1475 | 1476 | /indent-string@4.0.0: 1477 | resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} 1478 | engines: {node: '>=8'} 1479 | dev: true 1480 | 1481 | /inflight@1.0.6: 1482 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1483 | dependencies: 1484 | once: 1.4.0 1485 | wrappy: 1.0.2 1486 | dev: true 1487 | 1488 | /inherits@2.0.4: 1489 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1490 | dev: true 1491 | 1492 | /is-arrayish@0.2.1: 1493 | resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} 1494 | dev: true 1495 | 1496 | /is-binary-path@2.1.0: 1497 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 1498 | engines: {node: '>=8'} 1499 | dependencies: 1500 | binary-extensions: 2.2.0 1501 | dev: true 1502 | 1503 | /is-builtin-module@3.2.1: 1504 | resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} 1505 | engines: {node: '>=6'} 1506 | dependencies: 1507 | builtin-modules: 3.3.0 1508 | dev: true 1509 | 1510 | /is-core-module@2.11.0: 1511 | resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} 1512 | dependencies: 1513 | has: 1.0.3 1514 | dev: true 1515 | 1516 | /is-docker@2.2.1: 1517 | resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} 1518 | engines: {node: '>=8'} 1519 | hasBin: true 1520 | dev: true 1521 | 1522 | /is-docker@3.0.0: 1523 | resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} 1524 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1525 | hasBin: true 1526 | dev: true 1527 | 1528 | /is-extglob@2.1.1: 1529 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1530 | engines: {node: '>=0.10.0'} 1531 | dev: true 1532 | 1533 | /is-fullwidth-code-point@3.0.0: 1534 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1535 | engines: {node: '>=8'} 1536 | dev: true 1537 | 1538 | /is-glob@4.0.3: 1539 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1540 | engines: {node: '>=0.10.0'} 1541 | dependencies: 1542 | is-extglob: 2.1.1 1543 | dev: true 1544 | 1545 | /is-inside-container@1.0.0: 1546 | resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} 1547 | engines: {node: '>=14.16'} 1548 | hasBin: true 1549 | dependencies: 1550 | is-docker: 3.0.0 1551 | dev: true 1552 | 1553 | /is-number@7.0.0: 1554 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1555 | engines: {node: '>=0.12.0'} 1556 | dev: true 1557 | 1558 | /is-path-inside@3.0.3: 1559 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 1560 | engines: {node: '>=8'} 1561 | dev: true 1562 | 1563 | /is-stream@2.0.1: 1564 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} 1565 | engines: {node: '>=8'} 1566 | dev: true 1567 | 1568 | /is-stream@3.0.0: 1569 | resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} 1570 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1571 | dev: true 1572 | 1573 | /is-wsl@2.2.0: 1574 | resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} 1575 | engines: {node: '>=8'} 1576 | dependencies: 1577 | is-docker: 2.2.1 1578 | dev: true 1579 | 1580 | /isexe@2.0.0: 1581 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1582 | dev: true 1583 | 1584 | /jackspeak@2.3.6: 1585 | resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} 1586 | engines: {node: '>=14'} 1587 | dependencies: 1588 | '@isaacs/cliui': 8.0.2 1589 | optionalDependencies: 1590 | '@pkgjs/parseargs': 0.11.0 1591 | dev: true 1592 | 1593 | /joycon@3.1.1: 1594 | resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} 1595 | engines: {node: '>=10'} 1596 | dev: true 1597 | 1598 | /js-tokens@4.0.0: 1599 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1600 | dev: true 1601 | 1602 | /js-yaml@4.1.0: 1603 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1604 | hasBin: true 1605 | dependencies: 1606 | argparse: 2.0.1 1607 | dev: true 1608 | 1609 | /jsesc@0.5.0: 1610 | resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} 1611 | hasBin: true 1612 | dev: true 1613 | 1614 | /jsesc@3.0.2: 1615 | resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} 1616 | engines: {node: '>=6'} 1617 | hasBin: true 1618 | dev: true 1619 | 1620 | /json-parse-even-better-errors@2.3.1: 1621 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} 1622 | dev: true 1623 | 1624 | /json-schema-traverse@0.4.1: 1625 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1626 | dev: true 1627 | 1628 | /json-stable-stringify-without-jsonify@1.0.1: 1629 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1630 | dev: true 1631 | 1632 | /jsonc-parser@3.2.0: 1633 | resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} 1634 | dev: true 1635 | 1636 | /levn@0.4.1: 1637 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1638 | engines: {node: '>= 0.8.0'} 1639 | dependencies: 1640 | prelude-ls: 1.2.1 1641 | type-check: 0.4.0 1642 | dev: true 1643 | 1644 | /lilconfig@2.1.0: 1645 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} 1646 | engines: {node: '>=10'} 1647 | dev: true 1648 | 1649 | /lines-and-columns@1.2.4: 1650 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 1651 | dev: true 1652 | 1653 | /load-tsconfig@0.2.5: 1654 | resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} 1655 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1656 | dev: true 1657 | 1658 | /locate-path@5.0.0: 1659 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} 1660 | engines: {node: '>=8'} 1661 | dependencies: 1662 | p-locate: 4.1.0 1663 | dev: true 1664 | 1665 | /locate-path@6.0.0: 1666 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1667 | engines: {node: '>=10'} 1668 | dependencies: 1669 | p-locate: 5.0.0 1670 | dev: true 1671 | 1672 | /lodash.merge@4.6.2: 1673 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1674 | dev: true 1675 | 1676 | /lodash.sortby@4.7.0: 1677 | resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} 1678 | dev: true 1679 | 1680 | /lodash@4.17.21: 1681 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 1682 | dev: true 1683 | 1684 | /lru-cache@6.0.0: 1685 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 1686 | engines: {node: '>=10'} 1687 | dependencies: 1688 | yallist: 4.0.0 1689 | dev: true 1690 | 1691 | /lru-cache@9.1.1: 1692 | resolution: {integrity: sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==} 1693 | engines: {node: 14 || >=16.14} 1694 | dev: true 1695 | 1696 | /make-error@1.3.6: 1697 | resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} 1698 | dev: true 1699 | 1700 | /merge-stream@2.0.0: 1701 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 1702 | dev: true 1703 | 1704 | /merge2@1.4.1: 1705 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1706 | engines: {node: '>= 8'} 1707 | dev: true 1708 | 1709 | /micromatch@4.0.5: 1710 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 1711 | engines: {node: '>=8.6'} 1712 | dependencies: 1713 | braces: 3.0.2 1714 | picomatch: 2.3.1 1715 | dev: true 1716 | 1717 | /mimic-fn@2.1.0: 1718 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 1719 | engines: {node: '>=6'} 1720 | dev: true 1721 | 1722 | /mimic-fn@4.0.0: 1723 | resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} 1724 | engines: {node: '>=12'} 1725 | dev: true 1726 | 1727 | /min-indent@1.0.1: 1728 | resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} 1729 | engines: {node: '>=4'} 1730 | dev: true 1731 | 1732 | /minimatch@3.1.2: 1733 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1734 | dependencies: 1735 | brace-expansion: 1.1.11 1736 | dev: true 1737 | 1738 | /minimatch@9.0.3: 1739 | resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} 1740 | engines: {node: '>=16 || 14 >=14.17'} 1741 | dependencies: 1742 | brace-expansion: 2.0.1 1743 | dev: true 1744 | 1745 | /minipass@5.0.0: 1746 | resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} 1747 | engines: {node: '>=8'} 1748 | dev: true 1749 | 1750 | /ms@2.1.2: 1751 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1752 | dev: true 1753 | 1754 | /mz@2.7.0: 1755 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 1756 | dependencies: 1757 | any-promise: 1.3.0 1758 | object-assign: 4.1.1 1759 | thenify-all: 1.6.0 1760 | dev: true 1761 | 1762 | /natural-compare@1.4.0: 1763 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1764 | dev: true 1765 | 1766 | /normalize-package-data@2.5.0: 1767 | resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} 1768 | dependencies: 1769 | hosted-git-info: 2.8.9 1770 | resolve: 1.22.1 1771 | semver: 5.7.1 1772 | validate-npm-package-license: 3.0.4 1773 | dev: true 1774 | 1775 | /normalize-path@3.0.0: 1776 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1777 | engines: {node: '>=0.10.0'} 1778 | dev: true 1779 | 1780 | /npm-run-path@4.0.1: 1781 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} 1782 | engines: {node: '>=8'} 1783 | dependencies: 1784 | path-key: 3.1.1 1785 | dev: true 1786 | 1787 | /npm-run-path@5.1.0: 1788 | resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} 1789 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1790 | dependencies: 1791 | path-key: 4.0.0 1792 | dev: true 1793 | 1794 | /object-assign@4.1.1: 1795 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 1796 | engines: {node: '>=0.10.0'} 1797 | dev: true 1798 | 1799 | /once@1.4.0: 1800 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1801 | dependencies: 1802 | wrappy: 1.0.2 1803 | dev: true 1804 | 1805 | /onetime@5.1.2: 1806 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 1807 | engines: {node: '>=6'} 1808 | dependencies: 1809 | mimic-fn: 2.1.0 1810 | dev: true 1811 | 1812 | /onetime@6.0.0: 1813 | resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} 1814 | engines: {node: '>=12'} 1815 | dependencies: 1816 | mimic-fn: 4.0.0 1817 | dev: true 1818 | 1819 | /open@9.1.0: 1820 | resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} 1821 | engines: {node: '>=14.16'} 1822 | dependencies: 1823 | default-browser: 4.0.0 1824 | define-lazy-prop: 3.0.0 1825 | is-inside-container: 1.0.0 1826 | is-wsl: 2.2.0 1827 | dev: true 1828 | 1829 | /optionator@0.9.3: 1830 | resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} 1831 | engines: {node: '>= 0.8.0'} 1832 | dependencies: 1833 | '@aashutoshrathi/word-wrap': 1.2.6 1834 | deep-is: 0.1.4 1835 | fast-levenshtein: 2.0.6 1836 | levn: 0.4.1 1837 | prelude-ls: 1.2.1 1838 | type-check: 0.4.0 1839 | dev: true 1840 | 1841 | /p-limit@2.3.0: 1842 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 1843 | engines: {node: '>=6'} 1844 | dependencies: 1845 | p-try: 2.2.0 1846 | dev: true 1847 | 1848 | /p-limit@3.1.0: 1849 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1850 | engines: {node: '>=10'} 1851 | dependencies: 1852 | yocto-queue: 0.1.0 1853 | dev: true 1854 | 1855 | /p-locate@4.1.0: 1856 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} 1857 | engines: {node: '>=8'} 1858 | dependencies: 1859 | p-limit: 2.3.0 1860 | dev: true 1861 | 1862 | /p-locate@5.0.0: 1863 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1864 | engines: {node: '>=10'} 1865 | dependencies: 1866 | p-limit: 3.1.0 1867 | dev: true 1868 | 1869 | /p-try@2.2.0: 1870 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 1871 | engines: {node: '>=6'} 1872 | dev: true 1873 | 1874 | /parent-module@1.0.1: 1875 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1876 | engines: {node: '>=6'} 1877 | dependencies: 1878 | callsites: 3.1.0 1879 | dev: true 1880 | 1881 | /parse-json@5.2.0: 1882 | resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} 1883 | engines: {node: '>=8'} 1884 | dependencies: 1885 | '@babel/code-frame': 7.21.4 1886 | error-ex: 1.3.2 1887 | json-parse-even-better-errors: 2.3.1 1888 | lines-and-columns: 1.2.4 1889 | dev: true 1890 | 1891 | /path-exists@4.0.0: 1892 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1893 | engines: {node: '>=8'} 1894 | dev: true 1895 | 1896 | /path-is-absolute@1.0.1: 1897 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1898 | engines: {node: '>=0.10.0'} 1899 | dev: true 1900 | 1901 | /path-key@3.1.1: 1902 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1903 | engines: {node: '>=8'} 1904 | dev: true 1905 | 1906 | /path-key@4.0.0: 1907 | resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} 1908 | engines: {node: '>=12'} 1909 | dev: true 1910 | 1911 | /path-parse@1.0.7: 1912 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1913 | dev: true 1914 | 1915 | /path-scurry@1.10.1: 1916 | resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} 1917 | engines: {node: '>=16 || 14 >=14.17'} 1918 | dependencies: 1919 | lru-cache: 9.1.1 1920 | minipass: 5.0.0 1921 | dev: true 1922 | 1923 | /path-type@4.0.0: 1924 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1925 | engines: {node: '>=8'} 1926 | dev: true 1927 | 1928 | /picocolors@1.0.0: 1929 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 1930 | dev: true 1931 | 1932 | /picomatch@2.3.1: 1933 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1934 | engines: {node: '>=8.6'} 1935 | dev: true 1936 | 1937 | /pirates@4.0.5: 1938 | resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} 1939 | engines: {node: '>= 6'} 1940 | dev: true 1941 | 1942 | /pluralize@8.0.0: 1943 | resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} 1944 | engines: {node: '>=4'} 1945 | dev: true 1946 | 1947 | /postcss-load-config@4.0.1(ts-node@10.9.2): 1948 | resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} 1949 | engines: {node: '>= 14'} 1950 | peerDependencies: 1951 | postcss: '>=8.0.9' 1952 | ts-node: '>=9.0.0' 1953 | peerDependenciesMeta: 1954 | postcss: 1955 | optional: true 1956 | ts-node: 1957 | optional: true 1958 | dependencies: 1959 | lilconfig: 2.1.0 1960 | ts-node: 10.9.2(@types/node@20.12.7)(typescript@5.3.2) 1961 | yaml: 2.3.1 1962 | dev: true 1963 | 1964 | /prelude-ls@1.2.1: 1965 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 1966 | engines: {node: '>= 0.8.0'} 1967 | dev: true 1968 | 1969 | /prettier-linter-helpers@1.0.0: 1970 | resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} 1971 | engines: {node: '>=6.0.0'} 1972 | dependencies: 1973 | fast-diff: 1.2.0 1974 | dev: true 1975 | 1976 | /prettier@3.2.5: 1977 | resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} 1978 | engines: {node: '>=14'} 1979 | hasBin: true 1980 | dev: true 1981 | 1982 | /punycode@2.3.0: 1983 | resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} 1984 | engines: {node: '>=6'} 1985 | dev: true 1986 | 1987 | /queue-microtask@1.2.3: 1988 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1989 | dev: true 1990 | 1991 | /read-pkg-up@7.0.1: 1992 | resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} 1993 | engines: {node: '>=8'} 1994 | dependencies: 1995 | find-up: 4.1.0 1996 | read-pkg: 5.2.0 1997 | type-fest: 0.8.1 1998 | dev: true 1999 | 2000 | /read-pkg@5.2.0: 2001 | resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} 2002 | engines: {node: '>=8'} 2003 | dependencies: 2004 | '@types/normalize-package-data': 2.4.1 2005 | normalize-package-data: 2.5.0 2006 | parse-json: 5.2.0 2007 | type-fest: 0.6.0 2008 | dev: true 2009 | 2010 | /readdirp@3.6.0: 2011 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 2012 | engines: {node: '>=8.10.0'} 2013 | dependencies: 2014 | picomatch: 2.3.1 2015 | dev: true 2016 | 2017 | /regexp-tree@0.1.27: 2018 | resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} 2019 | hasBin: true 2020 | dev: true 2021 | 2022 | /regjsparser@0.10.0: 2023 | resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} 2024 | hasBin: true 2025 | dependencies: 2026 | jsesc: 0.5.0 2027 | dev: true 2028 | 2029 | /resolve-from@4.0.0: 2030 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 2031 | engines: {node: '>=4'} 2032 | dev: true 2033 | 2034 | /resolve-from@5.0.0: 2035 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 2036 | engines: {node: '>=8'} 2037 | dev: true 2038 | 2039 | /resolve@1.22.1: 2040 | resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} 2041 | hasBin: true 2042 | dependencies: 2043 | is-core-module: 2.11.0 2044 | path-parse: 1.0.7 2045 | supports-preserve-symlinks-flag: 1.0.0 2046 | dev: true 2047 | 2048 | /reusify@1.0.4: 2049 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 2050 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 2051 | dev: true 2052 | 2053 | /rimraf@3.0.2: 2054 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 2055 | hasBin: true 2056 | dependencies: 2057 | glob: 7.2.3 2058 | dev: true 2059 | 2060 | /rimraf@5.0.5: 2061 | resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} 2062 | engines: {node: '>=14'} 2063 | hasBin: true 2064 | dependencies: 2065 | glob: 10.3.10 2066 | dev: true 2067 | 2068 | /rollup@4.6.1: 2069 | resolution: {integrity: sha512-jZHaZotEHQaHLgKr8JnQiDT1rmatjgKlMekyksz+yk9jt/8z9quNjnKNRoaM0wd9DC2QKXjmWWuDYtM3jfF8pQ==} 2070 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 2071 | hasBin: true 2072 | optionalDependencies: 2073 | '@rollup/rollup-android-arm-eabi': 4.6.1 2074 | '@rollup/rollup-android-arm64': 4.6.1 2075 | '@rollup/rollup-darwin-arm64': 4.6.1 2076 | '@rollup/rollup-darwin-x64': 4.6.1 2077 | '@rollup/rollup-linux-arm-gnueabihf': 4.6.1 2078 | '@rollup/rollup-linux-arm64-gnu': 4.6.1 2079 | '@rollup/rollup-linux-arm64-musl': 4.6.1 2080 | '@rollup/rollup-linux-x64-gnu': 4.6.1 2081 | '@rollup/rollup-linux-x64-musl': 4.6.1 2082 | '@rollup/rollup-win32-arm64-msvc': 4.6.1 2083 | '@rollup/rollup-win32-ia32-msvc': 4.6.1 2084 | '@rollup/rollup-win32-x64-msvc': 4.6.1 2085 | fsevents: 2.3.2 2086 | dev: true 2087 | 2088 | /run-applescript@5.0.0: 2089 | resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} 2090 | engines: {node: '>=12'} 2091 | dependencies: 2092 | execa: 5.1.1 2093 | dev: true 2094 | 2095 | /run-parallel@1.2.0: 2096 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 2097 | dependencies: 2098 | queue-microtask: 1.2.3 2099 | dev: true 2100 | 2101 | /semver@5.7.1: 2102 | resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} 2103 | hasBin: true 2104 | dev: true 2105 | 2106 | /semver@7.5.4: 2107 | resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} 2108 | engines: {node: '>=10'} 2109 | hasBin: true 2110 | dependencies: 2111 | lru-cache: 6.0.0 2112 | dev: true 2113 | 2114 | /shebang-command@2.0.0: 2115 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 2116 | engines: {node: '>=8'} 2117 | dependencies: 2118 | shebang-regex: 3.0.0 2119 | dev: true 2120 | 2121 | /shebang-regex@3.0.0: 2122 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 2123 | engines: {node: '>=8'} 2124 | dev: true 2125 | 2126 | /signal-exit@3.0.7: 2127 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 2128 | dev: true 2129 | 2130 | /signal-exit@4.0.1: 2131 | resolution: {integrity: sha512-uUWsN4aOxJAS8KOuf3QMyFtgm1pkb6I+KRZbRF/ghdf5T7sM+B1lLLzPDxswUjkmHyxQAVzEgG35E3NzDM9GVw==} 2132 | engines: {node: '>=14'} 2133 | dev: true 2134 | 2135 | /slash@3.0.0: 2136 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 2137 | engines: {node: '>=8'} 2138 | dev: true 2139 | 2140 | /source-map@0.8.0-beta.0: 2141 | resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} 2142 | engines: {node: '>= 8'} 2143 | dependencies: 2144 | whatwg-url: 7.1.0 2145 | dev: true 2146 | 2147 | /spdx-correct@3.2.0: 2148 | resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} 2149 | dependencies: 2150 | spdx-expression-parse: 3.0.1 2151 | spdx-license-ids: 3.0.13 2152 | dev: true 2153 | 2154 | /spdx-exceptions@2.3.0: 2155 | resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} 2156 | dev: true 2157 | 2158 | /spdx-expression-parse@3.0.1: 2159 | resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} 2160 | dependencies: 2161 | spdx-exceptions: 2.3.0 2162 | spdx-license-ids: 3.0.13 2163 | dev: true 2164 | 2165 | /spdx-license-ids@3.0.13: 2166 | resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} 2167 | dev: true 2168 | 2169 | /string-width@4.2.3: 2170 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 2171 | engines: {node: '>=8'} 2172 | dependencies: 2173 | emoji-regex: 8.0.0 2174 | is-fullwidth-code-point: 3.0.0 2175 | strip-ansi: 6.0.1 2176 | dev: true 2177 | 2178 | /string-width@5.1.2: 2179 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 2180 | engines: {node: '>=12'} 2181 | dependencies: 2182 | eastasianwidth: 0.2.0 2183 | emoji-regex: 9.2.2 2184 | strip-ansi: 7.1.0 2185 | dev: true 2186 | 2187 | /strip-ansi@6.0.1: 2188 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 2189 | engines: {node: '>=8'} 2190 | dependencies: 2191 | ansi-regex: 5.0.1 2192 | dev: true 2193 | 2194 | /strip-ansi@7.1.0: 2195 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 2196 | engines: {node: '>=12'} 2197 | dependencies: 2198 | ansi-regex: 6.0.1 2199 | dev: true 2200 | 2201 | /strip-final-newline@2.0.0: 2202 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} 2203 | engines: {node: '>=6'} 2204 | dev: true 2205 | 2206 | /strip-final-newline@3.0.0: 2207 | resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} 2208 | engines: {node: '>=12'} 2209 | dev: true 2210 | 2211 | /strip-indent@3.0.0: 2212 | resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} 2213 | engines: {node: '>=8'} 2214 | dependencies: 2215 | min-indent: 1.0.1 2216 | dev: true 2217 | 2218 | /strip-json-comments@3.1.1: 2219 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 2220 | engines: {node: '>=8'} 2221 | dev: true 2222 | 2223 | /strnum@1.0.5: 2224 | resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} 2225 | dev: false 2226 | 2227 | /sucrase@3.31.0: 2228 | resolution: {integrity: sha512-6QsHnkqyVEzYcaiHsOKkzOtOgdJcb8i54x6AV2hDwyZcY9ZyykGZVw6L/YN98xC0evwTP6utsWWrKRaa8QlfEQ==} 2229 | engines: {node: '>=8'} 2230 | hasBin: true 2231 | dependencies: 2232 | commander: 4.1.1 2233 | glob: 7.1.6 2234 | lines-and-columns: 1.2.4 2235 | mz: 2.7.0 2236 | pirates: 4.0.5 2237 | ts-interface-checker: 0.1.13 2238 | dev: true 2239 | 2240 | /supports-color@5.5.0: 2241 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 2242 | engines: {node: '>=4'} 2243 | dependencies: 2244 | has-flag: 3.0.0 2245 | dev: true 2246 | 2247 | /supports-color@7.2.0: 2248 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 2249 | engines: {node: '>=8'} 2250 | dependencies: 2251 | has-flag: 4.0.0 2252 | dev: true 2253 | 2254 | /supports-preserve-symlinks-flag@1.0.0: 2255 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 2256 | engines: {node: '>= 0.4'} 2257 | dev: true 2258 | 2259 | /synckit@0.8.5: 2260 | resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} 2261 | engines: {node: ^14.18.0 || >=16.0.0} 2262 | dependencies: 2263 | '@pkgr/utils': 2.4.2 2264 | tslib: 2.6.1 2265 | dev: true 2266 | 2267 | /text-table@0.2.0: 2268 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 2269 | dev: true 2270 | 2271 | /thenify-all@1.6.0: 2272 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 2273 | engines: {node: '>=0.8'} 2274 | dependencies: 2275 | thenify: 3.3.1 2276 | dev: true 2277 | 2278 | /thenify@3.3.1: 2279 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 2280 | dependencies: 2281 | any-promise: 1.3.0 2282 | dev: true 2283 | 2284 | /titleize@3.0.0: 2285 | resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} 2286 | engines: {node: '>=12'} 2287 | dev: true 2288 | 2289 | /to-regex-range@5.0.1: 2290 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 2291 | engines: {node: '>=8.0'} 2292 | dependencies: 2293 | is-number: 7.0.0 2294 | dev: true 2295 | 2296 | /tr46@1.0.1: 2297 | resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} 2298 | dependencies: 2299 | punycode: 2.3.0 2300 | dev: true 2301 | 2302 | /tree-kill@1.2.2: 2303 | resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} 2304 | hasBin: true 2305 | dev: true 2306 | 2307 | /ts-api-utils@1.0.1(typescript@5.3.2): 2308 | resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==} 2309 | engines: {node: '>=16.13.0'} 2310 | peerDependencies: 2311 | typescript: '>=4.2.0' 2312 | dependencies: 2313 | typescript: 5.3.2 2314 | dev: true 2315 | 2316 | /ts-interface-checker@0.1.13: 2317 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 2318 | dev: true 2319 | 2320 | /ts-node@10.9.2(@types/node@20.12.7)(typescript@5.3.2): 2321 | resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} 2322 | hasBin: true 2323 | peerDependencies: 2324 | '@swc/core': '>=1.2.50' 2325 | '@swc/wasm': '>=1.2.50' 2326 | '@types/node': '*' 2327 | typescript: '>=2.7' 2328 | peerDependenciesMeta: 2329 | '@swc/core': 2330 | optional: true 2331 | '@swc/wasm': 2332 | optional: true 2333 | dependencies: 2334 | '@cspotcode/source-map-support': 0.8.1 2335 | '@tsconfig/node10': 1.0.9 2336 | '@tsconfig/node12': 1.0.11 2337 | '@tsconfig/node14': 1.0.3 2338 | '@tsconfig/node16': 1.0.3 2339 | '@types/node': 20.12.7 2340 | acorn: 8.10.0 2341 | acorn-walk: 8.2.0 2342 | arg: 4.1.3 2343 | create-require: 1.1.1 2344 | diff: 4.0.2 2345 | make-error: 1.3.6 2346 | typescript: 5.3.2 2347 | v8-compile-cache-lib: 3.0.1 2348 | yn: 3.1.1 2349 | dev: true 2350 | 2351 | /tslib@2.6.1: 2352 | resolution: {integrity: sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==} 2353 | dev: true 2354 | 2355 | /tsup@8.0.2(ts-node@10.9.2)(typescript@5.3.2): 2356 | resolution: {integrity: sha512-NY8xtQXdH7hDUAZwcQdY/Vzlw9johQsaqf7iwZ6g1DOUlFYQ5/AtVAjTvihhEyeRlGo4dLRVHtrRaL35M1daqQ==} 2357 | engines: {node: '>=18'} 2358 | hasBin: true 2359 | peerDependencies: 2360 | '@microsoft/api-extractor': ^7.36.0 2361 | '@swc/core': ^1 2362 | postcss: ^8.4.12 2363 | typescript: '>=4.5.0' 2364 | peerDependenciesMeta: 2365 | '@microsoft/api-extractor': 2366 | optional: true 2367 | '@swc/core': 2368 | optional: true 2369 | postcss: 2370 | optional: true 2371 | typescript: 2372 | optional: true 2373 | dependencies: 2374 | bundle-require: 4.0.1(esbuild@0.19.8) 2375 | cac: 6.7.14 2376 | chokidar: 3.5.3 2377 | debug: 4.3.4 2378 | esbuild: 0.19.8 2379 | execa: 5.1.1 2380 | globby: 11.1.0 2381 | joycon: 3.1.1 2382 | postcss-load-config: 4.0.1(ts-node@10.9.2) 2383 | resolve-from: 5.0.0 2384 | rollup: 4.6.1 2385 | source-map: 0.8.0-beta.0 2386 | sucrase: 3.31.0 2387 | tree-kill: 1.2.2 2388 | typescript: 5.3.2 2389 | transitivePeerDependencies: 2390 | - supports-color 2391 | - ts-node 2392 | dev: true 2393 | 2394 | /type-check@0.4.0: 2395 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 2396 | engines: {node: '>= 0.8.0'} 2397 | dependencies: 2398 | prelude-ls: 1.2.1 2399 | dev: true 2400 | 2401 | /type-fest@0.20.2: 2402 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 2403 | engines: {node: '>=10'} 2404 | dev: true 2405 | 2406 | /type-fest@0.6.0: 2407 | resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} 2408 | engines: {node: '>=8'} 2409 | dev: true 2410 | 2411 | /type-fest@0.8.1: 2412 | resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} 2413 | engines: {node: '>=8'} 2414 | dev: true 2415 | 2416 | /typescript@5.3.2: 2417 | resolution: {integrity: sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==} 2418 | engines: {node: '>=14.17'} 2419 | hasBin: true 2420 | dev: true 2421 | 2422 | /undici-types@5.26.5: 2423 | resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} 2424 | dev: true 2425 | 2426 | /undici@6.15.0: 2427 | resolution: {integrity: sha512-VviMt2tlMg1BvQ0FKXxrz1eJuyrcISrL2sPfBf7ZskX/FCEc/7LeThQaoygsMJpNqrATWQIsRVx+1Dpe4jaYuQ==} 2428 | engines: {node: '>=18.17'} 2429 | dev: false 2430 | 2431 | /untildify@4.0.0: 2432 | resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} 2433 | engines: {node: '>=8'} 2434 | dev: true 2435 | 2436 | /uri-js@4.4.1: 2437 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 2438 | dependencies: 2439 | punycode: 2.3.0 2440 | dev: true 2441 | 2442 | /v8-compile-cache-lib@3.0.1: 2443 | resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} 2444 | dev: true 2445 | 2446 | /validate-npm-package-license@3.0.4: 2447 | resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} 2448 | dependencies: 2449 | spdx-correct: 3.2.0 2450 | spdx-expression-parse: 3.0.1 2451 | dev: true 2452 | 2453 | /vscode-json-languageservice@4.2.1: 2454 | resolution: {integrity: sha512-xGmv9QIWs2H8obGbWg+sIPI/3/pFgj/5OWBhNzs00BkYQ9UaB2F6JJaGB/2/YOZJ3BvLXQTC4Q7muqU25QgAhA==} 2455 | dependencies: 2456 | jsonc-parser: 3.2.0 2457 | vscode-languageserver-textdocument: 1.0.8 2458 | vscode-languageserver-types: 3.17.3 2459 | vscode-nls: 5.2.0 2460 | vscode-uri: 3.0.7 2461 | dev: true 2462 | 2463 | /vscode-languageserver-textdocument@1.0.8: 2464 | resolution: {integrity: sha512-1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q==} 2465 | dev: true 2466 | 2467 | /vscode-languageserver-types@3.17.3: 2468 | resolution: {integrity: sha512-SYU4z1dL0PyIMd4Vj8YOqFvHu7Hz/enbWtpfnVbJHU4Nd1YNYx8u0ennumc6h48GQNeOLxmwySmnADouT/AuZA==} 2469 | dev: true 2470 | 2471 | /vscode-nls@5.2.0: 2472 | resolution: {integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==} 2473 | dev: true 2474 | 2475 | /vscode-uri@3.0.7: 2476 | resolution: {integrity: sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==} 2477 | dev: true 2478 | 2479 | /webidl-conversions@4.0.2: 2480 | resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} 2481 | dev: true 2482 | 2483 | /whatwg-url@7.1.0: 2484 | resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} 2485 | dependencies: 2486 | lodash.sortby: 4.7.0 2487 | tr46: 1.0.1 2488 | webidl-conversions: 4.0.2 2489 | dev: true 2490 | 2491 | /which@2.0.2: 2492 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 2493 | engines: {node: '>= 8'} 2494 | hasBin: true 2495 | dependencies: 2496 | isexe: 2.0.0 2497 | dev: true 2498 | 2499 | /wrap-ansi@7.0.0: 2500 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 2501 | engines: {node: '>=10'} 2502 | dependencies: 2503 | ansi-styles: 4.3.0 2504 | string-width: 4.2.3 2505 | strip-ansi: 6.0.1 2506 | dev: true 2507 | 2508 | /wrap-ansi@8.1.0: 2509 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 2510 | engines: {node: '>=12'} 2511 | dependencies: 2512 | ansi-styles: 6.2.1 2513 | string-width: 5.1.2 2514 | strip-ansi: 7.1.0 2515 | dev: true 2516 | 2517 | /wrappy@1.0.2: 2518 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 2519 | dev: true 2520 | 2521 | /yallist@4.0.0: 2522 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 2523 | dev: true 2524 | 2525 | /yaml@2.3.1: 2526 | resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==} 2527 | engines: {node: '>= 14'} 2528 | dev: true 2529 | 2530 | /yn@3.1.1: 2531 | resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} 2532 | engines: {node: '>=6'} 2533 | dev: true 2534 | 2535 | /yocto-queue@0.1.0: 2536 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 2537 | engines: {node: '>=10'} 2538 | dev: true 2539 | -------------------------------------------------------------------------------- /src/PasteClient.ts: -------------------------------------------------------------------------------- 1 | import { XMLParser } from "fast-xml-parser"; 2 | import { fetch } from "./fetch.js"; 3 | import type { 4 | CreateOptions, 5 | GetPastesOptions, 6 | ParsedPaste, 7 | DeletePasteOptions, 8 | ClientOptions, 9 | GetRawPasteOptions, 10 | LoginOptions, 11 | } from "./types.js"; 12 | 13 | const ERROR_PREFIX = "[pastebin-api]:" as const; 14 | 15 | export default class PasteClient { 16 | private apiKey: string; 17 | private domain = "pastebin.com"; 18 | 19 | protected parser = new XMLParser(); 20 | 21 | private get pasteBinUrl() { 22 | return `https://${this.domain}/api/api_post.php`; 23 | } 24 | 25 | private get loginUrl() { 26 | return `https://${this.domain}/api/api_login.php`; 27 | } 28 | 29 | private get rawUrl() { 30 | return `https://${this.domain}/api/api_raw.php`; 31 | } 32 | 33 | constructor(options: string | ClientOptions) { 34 | if (!options) { 35 | throw new TypeError(`${ERROR_PREFIX} 'options' must be type 'string' or type 'object'`); 36 | } 37 | 38 | if (typeof options === "string") { 39 | this.apiKey = options; 40 | } else { 41 | this.apiKey = options.apiKey; 42 | this.domain = options.domain ?? "pastebin.com"; 43 | } 44 | } 45 | 46 | /** 47 | * creates the paste 48 | * @param {Options} options The options for the paste 49 | * @returns {Promise} The URL of the created paste 50 | * @see [https://pastebin.com/doc_api#2](https://pastebin.com/doc_api#2) 51 | */ 52 | async createPaste(options: CreateOptions): Promise { 53 | if (options.name && options.name.length > 100) { 54 | throw new TypeError(`${ERROR_PREFIX} Name of paste cannot be longer than 100 characters`); 55 | } 56 | 57 | const res = await fetch(this.pasteBinUrl, { 58 | method: "POST", 59 | headers: { "Content-Type": "application/x-www-form-urlencoded" }, 60 | body: this.encode({ 61 | api_dev_key: this.apiKey, 62 | api_option: "paste", 63 | api_paste_name: options.name ?? "Untitled", 64 | api_paste_code: options.code, 65 | api_paste_format: options.format ?? "javascript", 66 | api_paste_private: options.publicity ?? 0, 67 | api_paste_expire_date: options.expireDate ?? "N", 68 | api_user_key: options.apiUserKey ?? "", 69 | api_folder_key: options.folderKey ?? "", 70 | }), 71 | }); 72 | 73 | const url = await res.body.text(); 74 | 75 | if (url.toLowerCase().startsWith("bad api request")) { 76 | return Promise.reject(url); 77 | } 78 | 79 | return url; 80 | } 81 | 82 | /** 83 | * get a limit of 1000 pastes from the logged in user 84 | * @param {GetPastesOptions} options 85 | * @returns An array of all the user's pastes 86 | * @see [https://pastebin.com/doc_api#10](https://pastebin.com/doc_api#10) 87 | */ 88 | async getPastesByUser(options: GetPastesOptions): Promise { 89 | if (options.limit && (options.limit < 1 || options.limit > 1000)) { 90 | throw new TypeError(`${ERROR_PREFIX} Limit cannot be lower than 1 or higher than 1000`); 91 | } 92 | 93 | if (!options.userKey) { 94 | throw new TypeError( 95 | `${ERROR_PREFIX} 'userKey' must be provided (PasteClient#getPastesByUser)`, 96 | ); 97 | } 98 | 99 | const res = await fetch(this.pasteBinUrl, { 100 | method: "POST", 101 | headers: { "Content-Type": "application/x-www-form-urlencoded" }, 102 | body: this.encode({ 103 | api_dev_key: this.apiKey, 104 | api_user_key: options.userKey, 105 | api_results_limit: options.limit, 106 | api_option: "list", 107 | }), 108 | }); 109 | 110 | const data = await res.body.text(); 111 | if (data.toLowerCase().startsWith("bad api request")) { 112 | return Promise.reject(data); 113 | } 114 | 115 | // if no pastes are found simply return an empty array 116 | if (data.toLowerCase().startsWith("no pastes found")) { 117 | return []; 118 | } 119 | 120 | const parsed = this.parser.parse(data); 121 | 122 | // it can either return an array or an object 123 | if (Array.isArray(parsed["paste"])) { 124 | return parsed["paste"]; 125 | } 126 | 127 | return [parsed["paste"]]; 128 | } 129 | 130 | /** 131 | * delete a paste by it's key 132 | * @param {DeletePasteOptions} options 133 | * @returns {boolean} Whether it was deleted or not 134 | * @see [https://pastebin.com/doc_api#11](https://pastebin.com/doc_api#11) 135 | */ 136 | async deletePasteByKey(options: DeletePasteOptions): Promise { 137 | if (!options.userKey) { 138 | throw new TypeError( 139 | `${ERROR_PREFIX} 'userKey' must be provided (PasteClient#deletePasteByKey)`, 140 | ); 141 | } 142 | 143 | if (!options.pasteKey) { 144 | throw new TypeError( 145 | `${ERROR_PREFIX} 'pasteKey' must be provided (PasteClient#deletePasteByKey)`, 146 | ); 147 | } 148 | 149 | const res = await fetch(this.pasteBinUrl, { 150 | method: "POST", 151 | headers: { "Content-Type": "application/x-www-form-urlencoded" }, 152 | body: this.encode({ 153 | api_dev_key: this.apiKey, 154 | api_option: "delete", 155 | api_paste_key: options.pasteKey, 156 | api_user_key: options.userKey, 157 | }), 158 | }); 159 | 160 | const data = await res.body.text(); 161 | if (data.toLowerCase().startsWith("bad api request")) { 162 | return Promise.reject(data); 163 | } 164 | 165 | // paste was successfully removed 166 | return data.toLowerCase().startsWith("paste removed"); 167 | } 168 | 169 | /** 170 | * return raw paste by it's key 171 | * @param {GetRawPasteOptions} options 172 | * @returns {string} The raw paste 173 | * @see [https://pastebin.com/doc_api#14](https://pastebin.com/doc_api#14) 174 | */ 175 | async getRawPasteByKey(options: GetRawPasteOptions): Promise { 176 | if (!options.userKey) { 177 | throw new TypeError( 178 | `${ERROR_PREFIX} 'userKey' must be provided (PasteClient#getRawPasteByKey)`, 179 | ); 180 | } 181 | 182 | if (!options.pasteKey) { 183 | throw new TypeError( 184 | `${ERROR_PREFIX} 'pasteKey' must be provided (PasteClient#getRawPasteByKey)`, 185 | ); 186 | } 187 | 188 | const res = await fetch(this.rawUrl, { 189 | method: "POST", 190 | headers: { "Content-Type": "application/x-www-form-urlencoded" }, 191 | body: this.encode({ 192 | api_option: "show_paste", 193 | api_dev_key: this.apiKey, 194 | api_user_key: options.userKey, 195 | api_paste_key: options.pasteKey, 196 | }), 197 | }); 198 | 199 | const data = await res.body.text(); 200 | if (data.toLowerCase().startsWith("bad api request")) { 201 | return Promise.reject(data); 202 | } 203 | 204 | return data; 205 | } 206 | 207 | /** 208 | * login to get access to more API routes 209 | * @param {string} name The user's name 210 | * @param {string} password The user's password 211 | * @returns The user token to use for other API routes 212 | * @see [https://pastebin.com/doc_api#9](https://pastebin.com/doc_api#9) 213 | */ 214 | async login(options: LoginOptions): Promise { 215 | const res = await fetch(this.loginUrl, { 216 | method: "POST", 217 | headers: { "Content-Type": "application/x-www-form-urlencoded" }, 218 | body: this.encode({ 219 | api_dev_key: this.apiKey, 220 | api_user_name: options.name, 221 | api_user_password: options.password, 222 | }), 223 | }); 224 | 225 | const data = await res.body.text(); 226 | if (data.toLowerCase().startsWith("bad api request")) { 227 | return Promise.reject(data); 228 | } 229 | 230 | return data; 231 | } 232 | 233 | /** 234 | * encodes data to valid URI 235 | * @param data The data you want to encode 236 | */ 237 | private encode(data: Record): string { 238 | let string = ""; 239 | 240 | for (const [key, value] of Object.entries(data)) { 241 | if (!value) continue; 242 | string += `&${encodeURIComponent(key)}=${encodeURIComponent(`${value}`)}`; 243 | } 244 | 245 | return string.substring(1); 246 | } 247 | } 248 | -------------------------------------------------------------------------------- /src/fetch.ts: -------------------------------------------------------------------------------- 1 | import { request, Dispatcher } from "undici"; 2 | 3 | export async function fetch( 4 | url: string, 5 | options: Omit, 6 | ) { 7 | return request(url, options); 8 | } 9 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import PasteClient from "./PasteClient.js"; 2 | 3 | export { PasteClient }; 4 | export default PasteClient; 5 | 6 | export * from "./types.js"; 7 | -------------------------------------------------------------------------------- /src/types.ts: -------------------------------------------------------------------------------- 1 | export type ApiPasteFormat = 2 | | "4cs" 3 | | "6502acme" 4 | | "6502kickass" 5 | | "6502tasm" 6 | | "abap" 7 | | "actionscript" 8 | | "actionscript3" 9 | | "ada" 10 | | "aimms" 11 | | "algol68" 12 | | "apache" 13 | | "applescript" 14 | | "apt_sources" 15 | | "arduino" 16 | | "arm" 17 | | "asm" 18 | | "asp" 19 | | "asymptote" 20 | | "autoconf" 21 | | "autohotkey" 22 | | "autoit" 23 | | "avisynth" 24 | | "awk" 25 | | "bascomavr" 26 | | "bash" 27 | | "basic4gl" 28 | | "dos" 29 | | "bibtex" 30 | | "b3d" 31 | | "blitzbasic" 32 | | "bmx" 33 | | "bnf" 34 | | "boo" 35 | | "bf" 36 | | "c" 37 | | "csharp" 38 | | "c_winapi" 39 | | "cpp" 40 | | "cpp-winapi" 41 | | "cpp-qt" 42 | | "c_loadrunner" 43 | | "caddcl" 44 | | "cadlisp" 45 | | "ceylon" 46 | | "cfdg" 47 | | "c_mac" 48 | | "chaiscript" 49 | | "chapel" 50 | | "cil" 51 | | "clojure" 52 | | "klonec" 53 | | "klonecpp" 54 | | "cmake" 55 | | "cobol" 56 | | "coffeescript" 57 | | "cfm" 58 | | "css" 59 | | "cuesheet" 60 | | "d" 61 | | "dart" 62 | | "dcl" 63 | | "dcpu16" 64 | | "dcs" 65 | | "delphi" 66 | | "oxygene" 67 | | "diff" 68 | | "div" 69 | | "dot" 70 | | "e" 71 | | "ezt" 72 | | "ecmascript" 73 | | "eiffel" 74 | | "email" 75 | | "epc" 76 | | "erlang" 77 | | "euphoria" 78 | | "fsharp" 79 | | "falcon" 80 | | "filemaker" 81 | | "fo" 82 | | "f1" 83 | | "fortran" 84 | | "freebasic" 85 | | "freeswitch" 86 | | "gambas" 87 | | "gml" 88 | | "gdb" 89 | | "gdscript" 90 | | "genero" 91 | | "genie" 92 | | "gettext" 93 | | "go" 94 | | "godot-lsl" 95 | | "groovy" 96 | | "gwbasic" 97 | | "haskell" 98 | | "haxe" 99 | | "hicest" 100 | | "hq9plus" 101 | | "html4strict" 102 | | "html5" 103 | | "icon" 104 | | "idl" 105 | | "ini" 106 | | "inno" 107 | | "intercal" 108 | | "io" 109 | | "ispfpanel" 110 | | "j" 111 | | "java" 112 | | "java5" 113 | | "javascript" 114 | | "jcl" 115 | | "jquery" 116 | | "json" 117 | | "julia" 118 | | "kixtart" 119 | | "kotlin" 120 | | "ksp" 121 | | "latex" 122 | | "ldif" 123 | | "lb" 124 | | "lsl2" 125 | | "lisp" 126 | | "llvm" 127 | | "locobasic" 128 | | "logtalk" 129 | | "lolcode" 130 | | "lotusformulas" 131 | | "lotusscript" 132 | | "lscript" 133 | | "lua" 134 | | "m68k" 135 | | "magiksf" 136 | | "make" 137 | | "mapbasic" 138 | | "markdown" 139 | | "matlab" 140 | | "mercury" 141 | | "metapost" 142 | | "mirc" 143 | | "mmix" 144 | | "mk-61" 145 | | "modula2" 146 | | "modula3" 147 | | "68000devpac" 148 | | "mpasm" 149 | | "mxml" 150 | | "mysql" 151 | | "nagios" 152 | | "netrexx" 153 | | "newlisp" 154 | | "nginx" 155 | | "nim" 156 | | "nsis" 157 | | "oberon2" 158 | | "objeck" 159 | | "objc" 160 | | "ocaml" 161 | | "ocaml-brief" 162 | | "octave" 163 | | "pf" 164 | | "glsl" 165 | | "oorexx" 166 | | "oobas" 167 | | "oracle8" 168 | | "oracle11" 169 | | "oz" 170 | | "parasail" 171 | | "parigp" 172 | | "pascal" 173 | | "pawn" 174 | | "pcre" 175 | | "per" 176 | | "perl" 177 | | "perl6" 178 | | "phix" 179 | | "php" 180 | | "php-brief" 181 | | "pic16" 182 | | "pike" 183 | | "pixelbender" 184 | | "pli" 185 | | "plsql" 186 | | "postgresql" 187 | | "postscript" 188 | | "povray" 189 | | "powerbuilder" 190 | | "powershell" 191 | | "proftpd" 192 | | "progress" 193 | | "prolog" 194 | | "properties" 195 | | "providex" 196 | | "puppet" 197 | | "purebasic" 198 | | "pycon" 199 | | "python" 200 | | "pys60" 201 | | "q" 202 | | "qbasic" 203 | | "qml" 204 | | "rsplus" 205 | | "racket" 206 | | "rails" 207 | | "rbs" 208 | | "rebol" 209 | | "reg" 210 | | "rexx" 211 | | "robots" 212 | | "roff" 213 | | "rpmspec" 214 | | "ruby" 215 | | "gnuplot" 216 | | "rust" 217 | | "sas" 218 | | "scala" 219 | | "scheme" 220 | | "scilab" 221 | | "scl" 222 | | "sdlbasic" 223 | | "smalltalk" 224 | | "smarty" 225 | | "spark" 226 | | "sparql" 227 | | "sqf" 228 | | "sql" 229 | | "sshconfig" 230 | | "standardml" 231 | | "stonescript" 232 | | "sclang" 233 | | "swift" 234 | | "systemverilog" 235 | | "tsql" 236 | | "tcl" 237 | | "teraterm" 238 | | "texgraph" 239 | | "thinbasic" 240 | | "typescript" 241 | | "typoscript" 242 | | "unicon" 243 | | "uscript" 244 | | "upc" 245 | | "urbi" 246 | | "vala" 247 | | "vbnet" 248 | | "vbscript" 249 | | "vedit" 250 | | "verilog" 251 | | "vhdl" 252 | | "vim" 253 | | "vb" 254 | | "visualfoxpro" 255 | | "visualprolog" 256 | | "whitespace" 257 | | "whois" 258 | | "winbatch" 259 | | "xbasic" 260 | | "xml" 261 | | "xojo" 262 | | "xorg_conf" 263 | | "xpp" 264 | | "yaml" 265 | | "yara" 266 | | "z80" 267 | | "zxbasic"; 268 | 269 | /** 270 | * the publicity status of a paste 271 | */ 272 | export enum Publicity { 273 | Public = 0, 274 | Unlisted = 1, 275 | Private = 2, 276 | } 277 | 278 | export enum ExpireDate { 279 | Never = "N", 280 | TenMinutes = "10M", 281 | OneHour = "1H", 282 | OneDay = "1D", 283 | OneWeek = "1W", 284 | TwoWeeks = "2W", 285 | OneMonth = "1M", 286 | SixMonths = "6M", 287 | OneYear = "1Y", 288 | } 289 | 290 | export interface ClientOptions { 291 | /** 292 | * the API key 293 | */ 294 | apiKey: string; 295 | 296 | /** 297 | * the domain of your reverse proxy server 298 | */ 299 | domain?: string; 300 | } 301 | 302 | export interface CreateOptions { 303 | /** 304 | * the publicity status of the paste. 305 | * @default 0 (public) 306 | */ 307 | publicity?: Publicity; 308 | /** 309 | * the expire date of the paste 310 | * @default "N" (Never) 311 | */ 312 | expireDate?: ExpireDate; 313 | /** 314 | * the format of the paste 315 | * @default "javascript" 316 | */ 317 | format?: ApiPasteFormat; 318 | /** 319 | * the name of the paste 320 | * @default "Untitled" 321 | */ 322 | name?: string; 323 | apiUserKey?: string; 324 | folderKey?: string; 325 | code: string; 326 | } 327 | 328 | export interface GetPastesOptions { 329 | userKey: string; 330 | limit?: number; 331 | } 332 | 333 | export interface DeletePasteOptions { 334 | userKey: string; 335 | pasteKey: string; 336 | } 337 | 338 | export interface LoginOptions { 339 | name: string; 340 | password: string; 341 | } 342 | 343 | export type GetRawPasteOptions = DeletePasteOptions; 344 | 345 | export interface ParsedPaste { 346 | paste_key: string; 347 | paste_date: number; 348 | paste_title: string; 349 | paste_size: number; 350 | paste_expire_date: number; 351 | paste_private: Publicity; 352 | paste_format_long: string; 353 | paste_format_short: ApiPasteFormat; 354 | paste_url: string; 355 | paste_hits: string; 356 | } 357 | -------------------------------------------------------------------------------- /tests/index.test.ts: -------------------------------------------------------------------------------- 1 | import dotenv from "dotenv"; 2 | import { PasteClient } from "../dist/index"; 3 | 4 | dotenv.config(); 5 | 6 | const KEY = process.env["TEST_API_KEY"]; 7 | const USER_NAME = process.env["TEST_USER_NAME"]; 8 | const USER_PASSWORD = process.env["TEST_USER_PASSWORD"]; 9 | 10 | if (!KEY) { 11 | throw Error("No API key was provided for the test!"); 12 | } 13 | 14 | if (!USER_NAME || !USER_PASSWORD) { 15 | throw Error("No user credentials were provided for the test"); 16 | } 17 | 18 | const client = new PasteClient({ apiKey: KEY }); 19 | 20 | async function test() { 21 | const token = await client.login({ name: USER_NAME!, password: USER_PASSWORD! }); 22 | 23 | // const deleted = await client.deletePasteByKey({ 24 | // pasteKey: "XawZVJdA", 25 | // userKey: token, 26 | // }); 27 | 28 | // console.log(deleted); 29 | 30 | const pastes = await client.getPastesByUser({ 31 | userKey: token, 32 | }); 33 | 34 | console.log(pastes); 35 | 36 | const data = await client.getRawPasteByKey({ 37 | pasteKey: "CwLWsp26", 38 | userKey: token, 39 | }); 40 | 41 | console.log(JSON.stringify(data, null, 4)); 42 | 43 | // const url = await client.createPaste({ 44 | // code: "const x = 'hello world!'", 45 | // expireDate: ExpireDate.Never, 46 | // format: "typescript", 47 | // name: "hello.ts", 48 | // publicity: Publicity.Private, 49 | // apiUserKey: token, 50 | // }); 51 | 52 | // console.log(url); 53 | } 54 | 55 | test(); 56 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | /* Basic Options */ 4 | "target": "es2019" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */, 5 | "module": "CommonJS" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */, 6 | "declaration": true /* Generates corresponding '.d.ts' file. */, 7 | "sourceMap": true /* Generates corresponding '.map' file. */, 8 | "outDir": "./dist" /* Redirect output structure to the directory. */, 9 | 10 | /* Strict Type-Checking Options */ 11 | "strict": true /* Enable all strict type-checking options. */, 12 | "noImplicitAny": true /* Raise error on expressions and declarations with an implied 'any' type. */, 13 | "strictNullChecks": true /* Enable strict null checks. */, 14 | "strictFunctionTypes": true /* Enable strict checking of function types. */, 15 | "strictBindCallApply": true /* Enable strict 'bind', 'call', and 'apply' methods on functions. */, 16 | "strictPropertyInitialization": true /* Enable strict checking of property initialization in classes. */, 17 | "noImplicitThis": true /* Raise error on 'this' expressions with an implied 'any' type. */, 18 | "alwaysStrict": true /* Parse in strict mode and emit "use strict" for each source file. */, 19 | 20 | /* Additional Checks */ 21 | "noUnusedLocals": true /* Report errors on unused locals. */, 22 | "noUnusedParameters": true /* Report errors on unused parameters. */, 23 | "noImplicitReturns": true /* Report error when not all code paths in function return a value. */, 24 | "noFallthroughCasesInSwitch": true /* Report errors for fallthrough cases in switch statement. */, 25 | "noUncheckedIndexedAccess": true /* Include 'undefined' in index signature results */, 26 | 27 | /* Module Resolution Options */ 28 | "moduleResolution": "node" /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */, 29 | "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, 30 | 31 | /* Advanced Options */ 32 | "skipLibCheck": true /* Skip type checking of declaration files. */, 33 | "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ 34 | }, 35 | "exclude": ["dist", "node_modules", "tests", "examples"] 36 | } 37 | -------------------------------------------------------------------------------- /tsup.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "tsup"; 2 | 3 | export default defineConfig({ 4 | entry: ["src/index.ts"], 5 | bundle: true, 6 | dts: true, 7 | outDir: "dist", 8 | format: ["esm", "cjs"], 9 | target: "node14", 10 | }); 11 | --------------------------------------------------------------------------------