├── .github ├── funding.yml └── workflows │ ├── ci.yml │ └── jsr-publish.yml ├── .gitignore ├── .prettierrc ├── LICENSE ├── README.md ├── deno.json ├── index.ts ├── package.json ├── pnpm-lock.yaml ├── renovate.json └── tsconfig.json /.github/funding.yml: -------------------------------------------------------------------------------- 1 | github: posva 2 | custom: https://www.paypal.me/posva 3 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: ci 2 | 3 | on: 4 | push: 5 | branches: 6 | - '**' 7 | # We don't need to test tags 8 | tags-ignore: 9 | - '**' 10 | 11 | jobs: 12 | build: 13 | runs-on: ubuntu-latest 14 | 15 | steps: 16 | - uses: actions/checkout@v4 17 | - uses: pnpm/action-setup@v4 18 | - uses: actions/setup-node@v4 19 | with: 20 | node-version: lts/* 21 | cache: pnpm 22 | 23 | - run: pnpm install --frozen-lockfile 24 | - run: pnpm run test 25 | -------------------------------------------------------------------------------- /.github/workflows/jsr-publish.yml: -------------------------------------------------------------------------------- 1 | name: Publish 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | 8 | jobs: 9 | publish: 10 | runs-on: ubuntu-latest 11 | permissions: 12 | contents: read 13 | id-token: write # The OIDC ID token is used for authentication with JSR. 14 | steps: 15 | - uses: actions/checkout@v4 16 | - run: npx jsr publish 17 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .rpt2_cache 3 | dist 4 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": false, 3 | "arrowParens": "avoid", 4 | "trailingComma": "es5", 5 | "singleQuote": true 6 | } 7 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright for portions of project clipboart-text are held by Sindre Sorhus 2019 4 | as part of project copy-text-to-clipboard. All other copyright for project 5 | clipboard-text are held by Eduardo San Martin Morote 2019. 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in all 15 | copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23 | SOFTWARE. 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # clipboard-text [![Build Status](https://github.com/posva/clipboard-text/workflows/test/badge.svg)](https://github.com/posva/clipboard-text/actions/workflows/test.yml) [![npm package](https://badgen.net/npm/v/clipboard-text)](https://www.npmjs.com/package/clipboard-text) 2 | 3 | > Simple and small copy-text-to-the-clipboard-utility with IE11 support 4 | 5 | ## Installation 6 | 7 | ```sh 8 | npm install clipboard-text 9 | ``` 10 | 11 | ## Usage 12 | 13 | ```js 14 | import copy from 'clipboard-text' 15 | 16 | button.addEventListener('click', () => { 17 | copy('Hi there') 18 | }) 19 | ``` 20 | 21 | ## API 22 | 23 | ### copy(text: string, parentElement?: Element): boolean 24 | 25 | Copy `text` to the clipboard. 26 | 27 | If the event triggering the `copy` functions comes from an element with a focus 28 | trap, like a Modal, you will need to provide a `parentElement`. By default, 29 | `parentElement` is set to `body`. 30 | 31 | Returns a boolean of whether it succeeded to copy the text. 32 | 33 | Must be called in response to a user gesture event, like click or keyup. 34 | 35 | ## Related 36 | 37 | - [copy-text-to-clipboard](https://github.com/sindresorhus/copy-text-to-clipboard) - 38 | Original package with no support for IE and no support for focus traps 39 | 40 | ## License 41 | 42 | [MIT](http://opensource.org/licenses/MIT) 43 | -------------------------------------------------------------------------------- /deno.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@posva/clipboard-text", 3 | "description": "Simple and small copy-text-to-the-clipboard-utility with IE11 support", 4 | "version": "2.0.1", 5 | "license": "MIT", 6 | "exports": "./index.ts", 7 | "publish": { 8 | "include": ["LICENSE", "README.md", "index.ts"] 9 | }, 10 | "compilerOptions": { 11 | "lib": ["esnext", "dom"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /index.ts: -------------------------------------------------------------------------------- 1 | // Orignal `copy` function from 2 | // https://github.com/sindresorhus/copy-text-to-clipboard 3 | // by Sindre Sorhus 4 | // Fixed support for IE 11 since the package does not plan to support it: 5 | // https://github.com/sindresorhus/copy-text-to-clipboard/issues/28 and it's a 6 | // very simple set of changes 7 | 8 | /** 9 | * Copy arbitrary text to the clipboard 10 | * 11 | * @param text text to copy 12 | * @param parentElement element where the textarea should be inserted. Defaults 13 | * to body. You should provide a value if at the time the function is called, 14 | * the focus is trapped in a modal. The value should be the element where the 15 | * focus is trapped. Otherwise the browser may prevent the copy command 16 | * @returns true if the copy was successful, false otherwise 17 | */ 18 | export default function copy(text: string, parentElement?: Element): boolean { 19 | const element = document.createElement('textarea') 20 | 21 | element.value = text 22 | 23 | // Prevent keyboard from showing on mobile 24 | element.setAttribute('readonly', '') 25 | 26 | // @ts-ignore 27 | element.style.contain = 'strict' 28 | element.style.position = 'absolute' 29 | element.style.left = '-9999px' 30 | element.style.fontSize = '12pt' // Prevent zooming on iOS 31 | 32 | const selection = document.getSelection() 33 | let originalRange: boolean | Range = false 34 | if (selection && selection.rangeCount > 0) { 35 | originalRange = selection.getRangeAt(0) 36 | } 37 | 38 | parentElement = parentElement || document.body 39 | 40 | parentElement.appendChild(element) 41 | element.select() 42 | 43 | // Explicit selection workaround for iOS 44 | element.selectionStart = 0 45 | element.selectionEnd = text.length 46 | 47 | let isSuccess = false 48 | try { 49 | isSuccess = document.execCommand('copy') 50 | } catch (_) {} 51 | 52 | parentElement.removeChild(element) 53 | 54 | if (originalRange && selection) { 55 | selection.removeAllRanges() 56 | selection.addRange(originalRange) 57 | } 58 | 59 | return isSuccess 60 | } 61 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "clipboard-text", 3 | "description": "Simple and small copy-text-to-the-clipboard-utility with IE11 support", 4 | "version": "2.0.0", 5 | "type": "module", 6 | "exports": "./dist/index.js", 7 | "packageManager": "pnpm@10.11.0", 8 | "engines": { 9 | "node": ">=22.16.0" 10 | }, 11 | "main": "dist/index.js", 12 | "module": "dist/index.js", 13 | "unpkg": "dist/index.global.js", 14 | "jsdelivr": "dist/index.global.js", 15 | "author": { 16 | "name": "Eduardo San Martin Morote", 17 | "email": "posva13@gmail.com", 18 | "url": "https://esm.dev" 19 | }, 20 | "contributors": [ 21 | { 22 | "name": "Sindre Sorhus", 23 | "email": "sindresorhus@gmail.com", 24 | "url": "https://sindresorhus.com" 25 | } 26 | ], 27 | "license": "MIT", 28 | "scripts": { 29 | "build:global": "tsup --global-name clipboardText --format iife --minify index.ts", 30 | "build:es": "tsup --dts --format esm index.ts", 31 | "build": "rm -rf dist && pnpm run build:es && pnpm run build:global", 32 | "prepublishOnly": "pnpm run build", 33 | "test": "tsc --noEmit && pnpm run build" 34 | }, 35 | "files": [ 36 | "dist" 37 | ], 38 | "keywords": [ 39 | "copy", 40 | "text", 41 | "clip", 42 | "clipboard", 43 | "ie", 44 | "support", 45 | "modal", 46 | "focus" 47 | ], 48 | "devDependencies": { 49 | "tsup": "^4.14.0", 50 | "typescript": "^5.8.3" 51 | }, 52 | "pnpm": { 53 | "onlyBuiltDependencies": [ 54 | "esbuild" 55 | ] 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | devDependencies: 11 | tsup: 12 | specifier: ^4.14.0 13 | version: 4.14.0(typescript@5.8.3) 14 | typescript: 15 | specifier: ^5.8.3 16 | version: 5.8.3 17 | 18 | packages: 19 | 20 | '@isaacs/cliui@8.0.2': 21 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 22 | engines: {node: '>=12'} 23 | 24 | '@jridgewell/gen-mapping@0.3.8': 25 | resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} 26 | engines: {node: '>=6.0.0'} 27 | 28 | '@jridgewell/resolve-uri@3.1.2': 29 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 30 | engines: {node: '>=6.0.0'} 31 | 32 | '@jridgewell/set-array@1.2.1': 33 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 34 | engines: {node: '>=6.0.0'} 35 | 36 | '@jridgewell/sourcemap-codec@1.5.0': 37 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 38 | 39 | '@jridgewell/trace-mapping@0.3.25': 40 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 41 | 42 | '@nodelib/fs.scandir@2.1.5': 43 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 44 | engines: {node: '>= 8'} 45 | 46 | '@nodelib/fs.stat@2.0.5': 47 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 48 | engines: {node: '>= 8'} 49 | 50 | '@nodelib/fs.walk@1.2.8': 51 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 52 | engines: {node: '>= 8'} 53 | 54 | '@pkgjs/parseargs@0.11.0': 55 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 56 | engines: {node: '>=14'} 57 | 58 | ansi-regex@5.0.1: 59 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 60 | engines: {node: '>=8'} 61 | 62 | ansi-regex@6.1.0: 63 | resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} 64 | engines: {node: '>=12'} 65 | 66 | ansi-styles@4.3.0: 67 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 68 | engines: {node: '>=8'} 69 | 70 | ansi-styles@6.2.1: 71 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 72 | engines: {node: '>=12'} 73 | 74 | any-promise@1.3.0: 75 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 76 | 77 | anymatch@3.1.3: 78 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 79 | engines: {node: '>= 8'} 80 | 81 | array-union@2.1.0: 82 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 83 | engines: {node: '>=8'} 84 | 85 | balanced-match@1.0.2: 86 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 87 | 88 | binary-extensions@2.3.0: 89 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 90 | engines: {node: '>=8'} 91 | 92 | brace-expansion@2.0.1: 93 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 94 | 95 | braces@3.0.3: 96 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 97 | engines: {node: '>=8'} 98 | 99 | cac@6.7.14: 100 | resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 101 | engines: {node: '>=8'} 102 | 103 | chalk@4.1.2: 104 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 105 | engines: {node: '>=10'} 106 | 107 | chokidar@3.6.0: 108 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 109 | engines: {node: '>= 8.10.0'} 110 | 111 | color-convert@2.0.1: 112 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 113 | engines: {node: '>=7.0.0'} 114 | 115 | color-name@1.1.4: 116 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 117 | 118 | commander@4.1.1: 119 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 120 | engines: {node: '>= 6'} 121 | 122 | cross-spawn@7.0.6: 123 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 124 | engines: {node: '>= 8'} 125 | 126 | debug@4.4.0: 127 | resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} 128 | engines: {node: '>=6.0'} 129 | peerDependencies: 130 | supports-color: '*' 131 | peerDependenciesMeta: 132 | supports-color: 133 | optional: true 134 | 135 | dir-glob@3.0.1: 136 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 137 | engines: {node: '>=8'} 138 | 139 | eastasianwidth@0.2.0: 140 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 141 | 142 | emoji-regex@8.0.0: 143 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 144 | 145 | emoji-regex@9.2.2: 146 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 147 | 148 | esbuild@0.12.29: 149 | resolution: {integrity: sha512-w/XuoBCSwepyiZtIRsKsetiLDUVGPVw1E/R3VTFSecIy8UR7Cq3SOtwKHJMFoVqqVG36aGkzh4e8BvpO1Fdc7g==} 150 | hasBin: true 151 | 152 | execa@5.1.1: 153 | resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} 154 | engines: {node: '>=10'} 155 | 156 | fast-glob@3.3.3: 157 | resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} 158 | engines: {node: '>=8.6.0'} 159 | 160 | fastq@1.19.1: 161 | resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} 162 | 163 | fill-range@7.1.1: 164 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 165 | engines: {node: '>=8'} 166 | 167 | foreground-child@3.3.1: 168 | resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} 169 | engines: {node: '>=14'} 170 | 171 | fsevents@2.3.3: 172 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 173 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 174 | os: [darwin] 175 | 176 | get-stream@6.0.1: 177 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 178 | engines: {node: '>=10'} 179 | 180 | glob-parent@5.1.2: 181 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 182 | engines: {node: '>= 6'} 183 | 184 | glob@10.4.5: 185 | resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} 186 | hasBin: true 187 | 188 | globby@11.1.0: 189 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 190 | engines: {node: '>=10'} 191 | 192 | has-flag@4.0.0: 193 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 194 | engines: {node: '>=8'} 195 | 196 | human-signals@2.1.0: 197 | resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} 198 | engines: {node: '>=10.17.0'} 199 | 200 | ignore@5.3.2: 201 | resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} 202 | engines: {node: '>= 4'} 203 | 204 | is-binary-path@2.1.0: 205 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 206 | engines: {node: '>=8'} 207 | 208 | is-extglob@2.1.1: 209 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 210 | engines: {node: '>=0.10.0'} 211 | 212 | is-fullwidth-code-point@3.0.0: 213 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 214 | engines: {node: '>=8'} 215 | 216 | is-glob@4.0.3: 217 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 218 | engines: {node: '>=0.10.0'} 219 | 220 | is-number@7.0.0: 221 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 222 | engines: {node: '>=0.12.0'} 223 | 224 | is-stream@2.0.1: 225 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} 226 | engines: {node: '>=8'} 227 | 228 | isexe@2.0.0: 229 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 230 | 231 | jackspeak@3.4.3: 232 | resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} 233 | 234 | joycon@3.1.1: 235 | resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} 236 | engines: {node: '>=10'} 237 | 238 | lilconfig@2.1.0: 239 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} 240 | engines: {node: '>=10'} 241 | 242 | lines-and-columns@1.2.4: 243 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 244 | 245 | lru-cache@10.4.3: 246 | resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 247 | 248 | merge-stream@2.0.0: 249 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 250 | 251 | merge2@1.4.1: 252 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 253 | engines: {node: '>= 8'} 254 | 255 | micromatch@4.0.8: 256 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 257 | engines: {node: '>=8.6'} 258 | 259 | mimic-fn@2.1.0: 260 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 261 | engines: {node: '>=6'} 262 | 263 | minimatch@9.0.5: 264 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 265 | engines: {node: '>=16 || 14 >=14.17'} 266 | 267 | minipass@7.1.2: 268 | resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} 269 | engines: {node: '>=16 || 14 >=14.17'} 270 | 271 | ms@2.1.3: 272 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 273 | 274 | mz@2.7.0: 275 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 276 | 277 | normalize-path@3.0.0: 278 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 279 | engines: {node: '>=0.10.0'} 280 | 281 | npm-run-path@4.0.1: 282 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} 283 | engines: {node: '>=8'} 284 | 285 | object-assign@4.1.1: 286 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 287 | engines: {node: '>=0.10.0'} 288 | 289 | onetime@5.1.2: 290 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 291 | engines: {node: '>=6'} 292 | 293 | package-json-from-dist@1.0.1: 294 | resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} 295 | 296 | path-key@3.1.1: 297 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 298 | engines: {node: '>=8'} 299 | 300 | path-scurry@1.11.1: 301 | resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} 302 | engines: {node: '>=16 || 14 >=14.18'} 303 | 304 | path-type@4.0.0: 305 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 306 | engines: {node: '>=8'} 307 | 308 | picomatch@2.3.1: 309 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 310 | engines: {node: '>=8.6'} 311 | 312 | pirates@4.0.6: 313 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} 314 | engines: {node: '>= 6'} 315 | 316 | postcss-load-config@3.1.4: 317 | resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} 318 | engines: {node: '>= 10'} 319 | peerDependencies: 320 | postcss: '>=8.0.9' 321 | ts-node: '>=9.0.0' 322 | peerDependenciesMeta: 323 | postcss: 324 | optional: true 325 | ts-node: 326 | optional: true 327 | 328 | queue-microtask@1.2.3: 329 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 330 | 331 | readdirp@3.6.0: 332 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 333 | engines: {node: '>=8.10.0'} 334 | 335 | resolve-from@5.0.0: 336 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 337 | engines: {node: '>=8'} 338 | 339 | reusify@1.1.0: 340 | resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} 341 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 342 | 343 | rollup@2.79.2: 344 | resolution: {integrity: sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==} 345 | engines: {node: '>=10.0.0'} 346 | hasBin: true 347 | 348 | run-parallel@1.2.0: 349 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 350 | 351 | shebang-command@2.0.0: 352 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 353 | engines: {node: '>=8'} 354 | 355 | shebang-regex@3.0.0: 356 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 357 | engines: {node: '>=8'} 358 | 359 | signal-exit@3.0.7: 360 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 361 | 362 | signal-exit@4.1.0: 363 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 364 | engines: {node: '>=14'} 365 | 366 | slash@3.0.0: 367 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 368 | engines: {node: '>=8'} 369 | 370 | string-width@4.2.3: 371 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 372 | engines: {node: '>=8'} 373 | 374 | string-width@5.1.2: 375 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 376 | engines: {node: '>=12'} 377 | 378 | strip-ansi@6.0.1: 379 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 380 | engines: {node: '>=8'} 381 | 382 | strip-ansi@7.1.0: 383 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 384 | engines: {node: '>=12'} 385 | 386 | strip-final-newline@2.0.0: 387 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} 388 | engines: {node: '>=6'} 389 | 390 | sucrase@3.35.0: 391 | resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} 392 | engines: {node: '>=16 || 14 >=14.17'} 393 | hasBin: true 394 | 395 | supports-color@7.2.0: 396 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 397 | engines: {node: '>=8'} 398 | 399 | thenify-all@1.6.0: 400 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 401 | engines: {node: '>=0.8'} 402 | 403 | thenify@3.3.1: 404 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 405 | 406 | to-regex-range@5.0.1: 407 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 408 | engines: {node: '>=8.0'} 409 | 410 | tree-kill@1.2.2: 411 | resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} 412 | hasBin: true 413 | 414 | ts-interface-checker@0.1.13: 415 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 416 | 417 | tsup@4.14.0: 418 | resolution: {integrity: sha512-77rWdzhikTP9mQ34XMRzK83tw++LF6f4ox/HNERlgesB7g6g5VQ1iJlueG9O0P9HAZGVKavUwyoZv0+322p6rg==} 419 | hasBin: true 420 | peerDependencies: 421 | typescript: ^4.2.3 422 | peerDependenciesMeta: 423 | typescript: 424 | optional: true 425 | 426 | typescript@5.8.3: 427 | resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} 428 | engines: {node: '>=14.17'} 429 | hasBin: true 430 | 431 | which@2.0.2: 432 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 433 | engines: {node: '>= 8'} 434 | hasBin: true 435 | 436 | wrap-ansi@7.0.0: 437 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 438 | engines: {node: '>=10'} 439 | 440 | wrap-ansi@8.1.0: 441 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 442 | engines: {node: '>=12'} 443 | 444 | yaml@1.10.2: 445 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} 446 | engines: {node: '>= 6'} 447 | 448 | snapshots: 449 | 450 | '@isaacs/cliui@8.0.2': 451 | dependencies: 452 | string-width: 5.1.2 453 | string-width-cjs: string-width@4.2.3 454 | strip-ansi: 7.1.0 455 | strip-ansi-cjs: strip-ansi@6.0.1 456 | wrap-ansi: 8.1.0 457 | wrap-ansi-cjs: wrap-ansi@7.0.0 458 | 459 | '@jridgewell/gen-mapping@0.3.8': 460 | dependencies: 461 | '@jridgewell/set-array': 1.2.1 462 | '@jridgewell/sourcemap-codec': 1.5.0 463 | '@jridgewell/trace-mapping': 0.3.25 464 | 465 | '@jridgewell/resolve-uri@3.1.2': {} 466 | 467 | '@jridgewell/set-array@1.2.1': {} 468 | 469 | '@jridgewell/sourcemap-codec@1.5.0': {} 470 | 471 | '@jridgewell/trace-mapping@0.3.25': 472 | dependencies: 473 | '@jridgewell/resolve-uri': 3.1.2 474 | '@jridgewell/sourcemap-codec': 1.5.0 475 | 476 | '@nodelib/fs.scandir@2.1.5': 477 | dependencies: 478 | '@nodelib/fs.stat': 2.0.5 479 | run-parallel: 1.2.0 480 | 481 | '@nodelib/fs.stat@2.0.5': {} 482 | 483 | '@nodelib/fs.walk@1.2.8': 484 | dependencies: 485 | '@nodelib/fs.scandir': 2.1.5 486 | fastq: 1.19.1 487 | 488 | '@pkgjs/parseargs@0.11.0': 489 | optional: true 490 | 491 | ansi-regex@5.0.1: {} 492 | 493 | ansi-regex@6.1.0: {} 494 | 495 | ansi-styles@4.3.0: 496 | dependencies: 497 | color-convert: 2.0.1 498 | 499 | ansi-styles@6.2.1: {} 500 | 501 | any-promise@1.3.0: {} 502 | 503 | anymatch@3.1.3: 504 | dependencies: 505 | normalize-path: 3.0.0 506 | picomatch: 2.3.1 507 | 508 | array-union@2.1.0: {} 509 | 510 | balanced-match@1.0.2: {} 511 | 512 | binary-extensions@2.3.0: {} 513 | 514 | brace-expansion@2.0.1: 515 | dependencies: 516 | balanced-match: 1.0.2 517 | 518 | braces@3.0.3: 519 | dependencies: 520 | fill-range: 7.1.1 521 | 522 | cac@6.7.14: {} 523 | 524 | chalk@4.1.2: 525 | dependencies: 526 | ansi-styles: 4.3.0 527 | supports-color: 7.2.0 528 | 529 | chokidar@3.6.0: 530 | dependencies: 531 | anymatch: 3.1.3 532 | braces: 3.0.3 533 | glob-parent: 5.1.2 534 | is-binary-path: 2.1.0 535 | is-glob: 4.0.3 536 | normalize-path: 3.0.0 537 | readdirp: 3.6.0 538 | optionalDependencies: 539 | fsevents: 2.3.3 540 | 541 | color-convert@2.0.1: 542 | dependencies: 543 | color-name: 1.1.4 544 | 545 | color-name@1.1.4: {} 546 | 547 | commander@4.1.1: {} 548 | 549 | cross-spawn@7.0.6: 550 | dependencies: 551 | path-key: 3.1.1 552 | shebang-command: 2.0.0 553 | which: 2.0.2 554 | 555 | debug@4.4.0: 556 | dependencies: 557 | ms: 2.1.3 558 | 559 | dir-glob@3.0.1: 560 | dependencies: 561 | path-type: 4.0.0 562 | 563 | eastasianwidth@0.2.0: {} 564 | 565 | emoji-regex@8.0.0: {} 566 | 567 | emoji-regex@9.2.2: {} 568 | 569 | esbuild@0.12.29: {} 570 | 571 | execa@5.1.1: 572 | dependencies: 573 | cross-spawn: 7.0.6 574 | get-stream: 6.0.1 575 | human-signals: 2.1.0 576 | is-stream: 2.0.1 577 | merge-stream: 2.0.0 578 | npm-run-path: 4.0.1 579 | onetime: 5.1.2 580 | signal-exit: 3.0.7 581 | strip-final-newline: 2.0.0 582 | 583 | fast-glob@3.3.3: 584 | dependencies: 585 | '@nodelib/fs.stat': 2.0.5 586 | '@nodelib/fs.walk': 1.2.8 587 | glob-parent: 5.1.2 588 | merge2: 1.4.1 589 | micromatch: 4.0.8 590 | 591 | fastq@1.19.1: 592 | dependencies: 593 | reusify: 1.1.0 594 | 595 | fill-range@7.1.1: 596 | dependencies: 597 | to-regex-range: 5.0.1 598 | 599 | foreground-child@3.3.1: 600 | dependencies: 601 | cross-spawn: 7.0.6 602 | signal-exit: 4.1.0 603 | 604 | fsevents@2.3.3: 605 | optional: true 606 | 607 | get-stream@6.0.1: {} 608 | 609 | glob-parent@5.1.2: 610 | dependencies: 611 | is-glob: 4.0.3 612 | 613 | glob@10.4.5: 614 | dependencies: 615 | foreground-child: 3.3.1 616 | jackspeak: 3.4.3 617 | minimatch: 9.0.5 618 | minipass: 7.1.2 619 | package-json-from-dist: 1.0.1 620 | path-scurry: 1.11.1 621 | 622 | globby@11.1.0: 623 | dependencies: 624 | array-union: 2.1.0 625 | dir-glob: 3.0.1 626 | fast-glob: 3.3.3 627 | ignore: 5.3.2 628 | merge2: 1.4.1 629 | slash: 3.0.0 630 | 631 | has-flag@4.0.0: {} 632 | 633 | human-signals@2.1.0: {} 634 | 635 | ignore@5.3.2: {} 636 | 637 | is-binary-path@2.1.0: 638 | dependencies: 639 | binary-extensions: 2.3.0 640 | 641 | is-extglob@2.1.1: {} 642 | 643 | is-fullwidth-code-point@3.0.0: {} 644 | 645 | is-glob@4.0.3: 646 | dependencies: 647 | is-extglob: 2.1.1 648 | 649 | is-number@7.0.0: {} 650 | 651 | is-stream@2.0.1: {} 652 | 653 | isexe@2.0.0: {} 654 | 655 | jackspeak@3.4.3: 656 | dependencies: 657 | '@isaacs/cliui': 8.0.2 658 | optionalDependencies: 659 | '@pkgjs/parseargs': 0.11.0 660 | 661 | joycon@3.1.1: {} 662 | 663 | lilconfig@2.1.0: {} 664 | 665 | lines-and-columns@1.2.4: {} 666 | 667 | lru-cache@10.4.3: {} 668 | 669 | merge-stream@2.0.0: {} 670 | 671 | merge2@1.4.1: {} 672 | 673 | micromatch@4.0.8: 674 | dependencies: 675 | braces: 3.0.3 676 | picomatch: 2.3.1 677 | 678 | mimic-fn@2.1.0: {} 679 | 680 | minimatch@9.0.5: 681 | dependencies: 682 | brace-expansion: 2.0.1 683 | 684 | minipass@7.1.2: {} 685 | 686 | ms@2.1.3: {} 687 | 688 | mz@2.7.0: 689 | dependencies: 690 | any-promise: 1.3.0 691 | object-assign: 4.1.1 692 | thenify-all: 1.6.0 693 | 694 | normalize-path@3.0.0: {} 695 | 696 | npm-run-path@4.0.1: 697 | dependencies: 698 | path-key: 3.1.1 699 | 700 | object-assign@4.1.1: {} 701 | 702 | onetime@5.1.2: 703 | dependencies: 704 | mimic-fn: 2.1.0 705 | 706 | package-json-from-dist@1.0.1: {} 707 | 708 | path-key@3.1.1: {} 709 | 710 | path-scurry@1.11.1: 711 | dependencies: 712 | lru-cache: 10.4.3 713 | minipass: 7.1.2 714 | 715 | path-type@4.0.0: {} 716 | 717 | picomatch@2.3.1: {} 718 | 719 | pirates@4.0.6: {} 720 | 721 | postcss-load-config@3.1.4: 722 | dependencies: 723 | lilconfig: 2.1.0 724 | yaml: 1.10.2 725 | 726 | queue-microtask@1.2.3: {} 727 | 728 | readdirp@3.6.0: 729 | dependencies: 730 | picomatch: 2.3.1 731 | 732 | resolve-from@5.0.0: {} 733 | 734 | reusify@1.1.0: {} 735 | 736 | rollup@2.79.2: 737 | optionalDependencies: 738 | fsevents: 2.3.3 739 | 740 | run-parallel@1.2.0: 741 | dependencies: 742 | queue-microtask: 1.2.3 743 | 744 | shebang-command@2.0.0: 745 | dependencies: 746 | shebang-regex: 3.0.0 747 | 748 | shebang-regex@3.0.0: {} 749 | 750 | signal-exit@3.0.7: {} 751 | 752 | signal-exit@4.1.0: {} 753 | 754 | slash@3.0.0: {} 755 | 756 | string-width@4.2.3: 757 | dependencies: 758 | emoji-regex: 8.0.0 759 | is-fullwidth-code-point: 3.0.0 760 | strip-ansi: 6.0.1 761 | 762 | string-width@5.1.2: 763 | dependencies: 764 | eastasianwidth: 0.2.0 765 | emoji-regex: 9.2.2 766 | strip-ansi: 7.1.0 767 | 768 | strip-ansi@6.0.1: 769 | dependencies: 770 | ansi-regex: 5.0.1 771 | 772 | strip-ansi@7.1.0: 773 | dependencies: 774 | ansi-regex: 6.1.0 775 | 776 | strip-final-newline@2.0.0: {} 777 | 778 | sucrase@3.35.0: 779 | dependencies: 780 | '@jridgewell/gen-mapping': 0.3.8 781 | commander: 4.1.1 782 | glob: 10.4.5 783 | lines-and-columns: 1.2.4 784 | mz: 2.7.0 785 | pirates: 4.0.6 786 | ts-interface-checker: 0.1.13 787 | 788 | supports-color@7.2.0: 789 | dependencies: 790 | has-flag: 4.0.0 791 | 792 | thenify-all@1.6.0: 793 | dependencies: 794 | thenify: 3.3.1 795 | 796 | thenify@3.3.1: 797 | dependencies: 798 | any-promise: 1.3.0 799 | 800 | to-regex-range@5.0.1: 801 | dependencies: 802 | is-number: 7.0.0 803 | 804 | tree-kill@1.2.2: {} 805 | 806 | ts-interface-checker@0.1.13: {} 807 | 808 | tsup@4.14.0(typescript@5.8.3): 809 | dependencies: 810 | cac: 6.7.14 811 | chalk: 4.1.2 812 | chokidar: 3.6.0 813 | debug: 4.4.0 814 | esbuild: 0.12.29 815 | execa: 5.1.1 816 | globby: 11.1.0 817 | joycon: 3.1.1 818 | postcss-load-config: 3.1.4 819 | resolve-from: 5.0.0 820 | rollup: 2.79.2 821 | sucrase: 3.35.0 822 | tree-kill: 1.2.2 823 | optionalDependencies: 824 | typescript: 5.8.3 825 | transitivePeerDependencies: 826 | - postcss 827 | - supports-color 828 | - ts-node 829 | 830 | typescript@5.8.3: {} 831 | 832 | which@2.0.2: 833 | dependencies: 834 | isexe: 2.0.0 835 | 836 | wrap-ansi@7.0.0: 837 | dependencies: 838 | ansi-styles: 4.3.0 839 | string-width: 4.2.3 840 | strip-ansi: 6.0.1 841 | 842 | wrap-ansi@8.1.0: 843 | dependencies: 844 | ansi-styles: 6.2.1 845 | string-width: 5.1.2 846 | strip-ansi: 7.1.0 847 | 848 | yaml@1.10.2: {} 849 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["github>posva/renovate-config"] 3 | } 4 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "include": ["index.ts"], 3 | "compilerOptions": { 4 | "target": "esnext", 5 | "module": "esnext", 6 | "declaration": true, 7 | "outDir": "./dist", 8 | "strict": true, 9 | "noUnusedLocals": true, 10 | "noUnusedParameters": true, 11 | "noUncheckedIndexedAccess": true, 12 | "erasableSyntaxOnly": true, 13 | "moduleResolution": "bundler", 14 | "lib": ["esnext", "dom"], 15 | "esModuleInterop": true 16 | } 17 | } 18 | --------------------------------------------------------------------------------