├── .github ├── dependabot.yml └── workflows │ └── deploy.yml ├── .gitignore ├── README.md ├── api.js ├── context.js ├── guess.js ├── guess.test.js ├── now.json ├── package.json ├── pnpm-lock.yaml ├── sources ├── __snapshots__ │ ├── goodreads.test.js.snap │ ├── openlibrary.test.js.snap │ └── worldcat.test.js.snap ├── goodreads.js ├── goodreads.test.js ├── index.js ├── openlibrary.js ├── openlibrary.test.js ├── worldcat.js └── worldcat.test.js ├── src └── index.ts ├── tap-snapshots ├── sources-goodreads.test.js-TAP.test.js ├── sources-openlibrary.test.js-TAP.test.js └── sources-worldcat.test.js-TAP.test.js ├── tsconfig.json └── wrangler.toml /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: npm 4 | directory: "/" 5 | schedule: 6 | interval: daily 7 | time: "13:00" 8 | open-pull-requests-limit: 10 9 | ignore: 10 | - dependency-name: tap 11 | versions: 12 | - 14.11.0 13 | - 15.0.0 14 | - 15.0.1 15 | - 15.0.2 16 | - 15.0.4 17 | - dependency-name: cheerio 18 | versions: 19 | - 1.0.0-rc.5 20 | - dependency-name: got 21 | versions: 22 | - 11.8.1 23 | - dependency-name: lodash 24 | versions: 25 | - 4.17.20 26 | -------------------------------------------------------------------------------- /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- 1 | name: Deploy 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | 8 | jobs: 9 | deploy: 10 | runs-on: ubuntu-latest 11 | name: Deploy 12 | steps: 13 | - uses: actions/checkout@v3 14 | - name: Publish 15 | uses: cloudflare/wrangler-action@2.0.0 16 | with: 17 | apiToken: ${{ secrets.CF_API_TOKEN }} 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # bookish 2 | 3 | A book identifier translator. I built this because I needed it, to organize 4 | my bespoke book journal system. It takes various types of book identifiers, 5 | and tries to find their equivalents in other identifier spaces. 6 | 7 | ### You might want this if 8 | 9 | You really want to permalink different references for the same book: have 10 | a direct link to the goodreads page, WorldCat listing, Library of Congress 11 | lookup page, and so on. Linking to redirects is a bummer. This gives you the 12 | information you need to permalink the canonical URL. 13 | 14 | You might have exited some service that organized your books but didn't give 15 | you even the most basic of identifiers like ISBN codes. 16 | 17 | You might want to learn more about library organization and how book identifiers 18 | are managed and created. It's really cool. 19 | 20 | ### What's in the box 21 | 22 | This is a multi-layered cake: the project is 23 | 24 | - A Node.js module 25 | - A REST API 26 | - A web interface 27 | 28 | You can interact with it at any of the 3 levels of abstraction and get the same 29 | answers. If you want to run a few queries, you'll probably want to use the web 30 | interface. But if you're writing software, you might want the Node.js module. 31 | -------------------------------------------------------------------------------- /api.js: -------------------------------------------------------------------------------- 1 | /* 2 | * TODO 3 | * 4 | * - viaf identifiers? 5 | * - write back to openlibrary whenever someone queries for a book? 6 | */ 7 | 8 | const guess = require("./guess"); 9 | 10 | const methods = [ 11 | { 12 | id: "isbn", 13 | name: "International Standard Book Number", 14 | example: "0140098682", 15 | resolve: async (context, id, { openLibrary, goodReads, worldCat }) => { 16 | const [openlibrary, goodreads, worldcat] = await Promise.all([ 17 | openLibrary.ISBN(id), 18 | goodReads.ISBN(id), 19 | worldCat.ISBN(id), 20 | ]); 21 | return { 22 | openlibrary, 23 | goodreads, 24 | worldcat, 25 | }; 26 | }, 27 | }, 28 | { 29 | id: "oclc", 30 | name: "Ohio College Library Center", 31 | url: (id) => `http://www.worldcat.org/oclc/${id}?tab=details`, 32 | example: "956478923", 33 | resolve: async (context, id, { openLibrary, worldCat }) => { 34 | return { 35 | openlibrary: await openLibrary.OCLC(id), 36 | worldcat: await worldCat.OCLC(id), 37 | }; 38 | }, 39 | }, 40 | { 41 | id: "olid", 42 | name: "OpenLibrary ID", 43 | url: (id) => `https://openlibrary.org/books/${id}`, 44 | example: "OL794799M", 45 | resolve: async (context, id, { openLibrary }) => { 46 | return { 47 | openlibrary: await openLibrary.OLID(id), 48 | }; 49 | }, 50 | }, 51 | { 52 | id: "lccn", 53 | name: "Library of Congress Control Number", 54 | url: (id) => `http://lccn.loc.gov/${id}`, 55 | example: "95030619", 56 | resolve: async (context, id, { openLibrary }) => { 57 | return { 58 | openlibrary: await openLibrary.LCCN(id), 59 | }; 60 | }, 61 | }, 62 | { 63 | id: "goodreads", 64 | name: "GoodReads ID", 65 | url: (id) => `https://www.goodreads.com/book/show/${id}`, 66 | example: "544063", 67 | resolve: async (context, id, { openLibrary, worldCat, goodReads }) => { 68 | let g = await goodReads.GoodReads(id); 69 | 70 | if (g.isbn && g.isbn.length) { 71 | let isbn = g.isbn[0]; 72 | return { 73 | openlibrary: await openLibrary.ISBN(isbn), 74 | goodreads: await goodReads.ISBN(isbn), 75 | worldcat: await worldCat.ISBN(isbn), 76 | }; 77 | } 78 | 79 | return { 80 | goodreads: g, 81 | }; 82 | }, 83 | }, 84 | ]; 85 | 86 | function collapseResults(results) { 87 | let ids = {}, 88 | permalinks; 89 | for (let source in results) { 90 | for (let id in results[source]) { 91 | ids[id] = (ids[id] || []).concat(results[source][id]); 92 | } 93 | } 94 | // TODO: note provenance 95 | for (let id in ids) { 96 | ids[id] = [...new Set(ids[id].filter(Boolean))]; 97 | } 98 | const isbn = ids.isbn || []; 99 | ids.isbn = isbn.filter((id) => id.length === 10); 100 | ids.isbn13 = isbn.filter((id) => id.length === 13); 101 | ids.title = Array.from(new Set(ids.title)); 102 | ({ permalinks, ...ids } = ids); 103 | return { permalinks: permalinks || [], ids }; 104 | } 105 | 106 | export { guess, methods, collapseResults }; 107 | -------------------------------------------------------------------------------- /context.js: -------------------------------------------------------------------------------- 1 | // A centralized logging method that allows us to route 2 | // console.log-like messages to any output: in this case, 3 | // back to the response. 4 | class Context { 5 | constructor(messages = [], prefix = "") { 6 | this.messages = messages; 7 | this.timers = new Map(); 8 | this.pfx = prefix; 9 | } 10 | prefix(pfx) { 11 | return new Context(this.messages, pfx); 12 | } 13 | log(msg) { 14 | this.messages.push(`${new Date().toISOString()} ${this.pfx} ${msg}`); 15 | } 16 | time(msg) { 17 | this.timers.set(msg, Date.now()); 18 | } 19 | timeEnd(msg) { 20 | const before = this.timers.get(msg); 21 | if (!before) { 22 | console.error(`Timer not found for ${msg}`); 23 | } 24 | this.log(`${msg} (${Date.now() - before}ms)`); 25 | this.timers.delete(msg); 26 | } 27 | getMessages() { 28 | if (this.timers.size) { 29 | console.error(`Stray timers detected: ${Array.from(timers.keys())}`); 30 | } 31 | return this.messages; 32 | } 33 | } 34 | 35 | export default Context; 36 | -------------------------------------------------------------------------------- /guess.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Guess the type of a book identifier 3 | * 4 | * Guessed types: 5 | * 6 | * DONE 7 | * 8 | * - openlibrary 9 | * - isbn 10 10 | * - isbn 13 11 | * - lccn 12 | * 13 | * TODO 14 | * 15 | * - goodreads 16 | * 17 | * Resources https://en.wikipedia.org/wiki/Library_of_Congress_Control_Number#Format 18 | */ 19 | export default function (id) { 20 | const numbersOnly = id.replace(/[^0-9]/g, ""); 21 | 22 | // Dead-giveaway prefixes 23 | if (id.startsWith("OL")) return "OLID"; 24 | 25 | if (numbersOnly.length === 12) { 26 | // Confirm Library of Congress format 27 | return "LCCN"; 28 | } 29 | 30 | if (numbersOnly.length === 13) { 31 | // Confirm ISBN check digit 32 | return "ISBN"; 33 | } 34 | 35 | // TODO: tolerate X as last digit 36 | if (numbersOnly.length === 10) { 37 | let s = 0, 38 | t = 0; 39 | for (let digit of numbersOnly) { 40 | t += parseInt(digit); 41 | s += t; 42 | } 43 | if (s % 11 === 0) { 44 | return "ISBN"; 45 | } 46 | } 47 | 48 | return null; 49 | } 50 | -------------------------------------------------------------------------------- /guess.test.js: -------------------------------------------------------------------------------- 1 | const test = require("tap").test; 2 | const guess = require("./guess"); 3 | 4 | test("simple cases", t => { 5 | t.equal(guess("OL44998W"), "OLID"); 6 | t.equal(guess("9780062368751"), "ISBN"); 7 | t.equal(guess("0349141924"), "ISBN"); 8 | }); 9 | -------------------------------------------------------------------------------- /now.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bookish-api", 3 | "version": 2, 4 | "alias": "api.bookish.tech", 5 | "builds": [ 6 | { "src": "search/index.js", "use": "now-micro" } 7 | ], 8 | "routes": [ 9 | { "src": "/search(.*)", "dest": "/search/index.js" } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bookish-api", 3 | "version": "1.0.0", 4 | "description": "api side of bookish", 5 | "main": "index.js", 6 | "type": "module", 7 | "author": "Tom MacWright", 8 | "license": "MIT", 9 | "scripts": { 10 | "start": "micro", 11 | "dev": "wrangler dev", 12 | "test": "tap */**.test.js" 13 | }, 14 | "dependencies": { 15 | "cheerio": "^1.0.0-rc.12", 16 | "web-auto-extractor": "^1.0.17" 17 | }, 18 | "devDependencies": { 19 | "@cloudflare/workers-types": "^4.20240405.0", 20 | "prettier": "^3.2.5", 21 | "tap": "^18.7.2", 22 | "typescript": "^5.4.5", 23 | "wrangler": "3.50.0" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | dependencies: 8 | cheerio: 9 | specifier: ^1.0.0-rc.12 10 | version: 1.0.0-rc.12 11 | web-auto-extractor: 12 | specifier: ^1.0.17 13 | version: 1.0.17 14 | 15 | devDependencies: 16 | '@cloudflare/workers-types': 17 | specifier: ^4.20240405.0 18 | version: 4.20240405.0 19 | prettier: 20 | specifier: ^3.2.5 21 | version: 3.2.5 22 | tap: 23 | specifier: ^18.7.2 24 | version: 18.7.2(@types/node@20.12.7)(react-dom@18.2.0)(react@16.14.0)(typescript@5.4.5) 25 | typescript: 26 | specifier: ^5.4.5 27 | version: 5.4.5 28 | wrangler: 29 | specifier: 3.50.0 30 | version: 3.50.0(@cloudflare/workers-types@4.20240405.0) 31 | 32 | packages: 33 | 34 | /@alcalzone/ansi-tokenize@0.1.3: 35 | resolution: {integrity: sha512-3yWxPTq3UQ/FY9p1ErPxIyfT64elWaMvM9lIHnaqpyft63tkxodF5aUElYHrdisWve5cETkh1+KBw1yJuW0aRw==} 36 | engines: {node: '>=14.13.1'} 37 | dependencies: 38 | ansi-styles: 6.2.1 39 | is-fullwidth-code-point: 4.0.0 40 | dev: true 41 | 42 | /@base2/pretty-print-object@1.0.1: 43 | resolution: {integrity: sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA==} 44 | dev: true 45 | 46 | /@bcoe/v8-coverage@0.2.3: 47 | resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} 48 | dev: true 49 | 50 | /@cloudflare/kv-asset-handler@0.3.1: 51 | resolution: {integrity: sha512-lKN2XCfKCmpKb86a1tl4GIwsJYDy9TGuwjhDELLmpKygQhw8X2xR4dusgpC5Tg7q1pB96Eb0rBo81kxSILQMwA==} 52 | dependencies: 53 | mime: 3.0.0 54 | dev: true 55 | 56 | /@cloudflare/workerd-darwin-64@1.20240405.0: 57 | resolution: {integrity: sha512-ut8kwpHmlz9dNSjoov6v1b6jS50J46Mj9QcMA0t1Hne36InaQk/qqPSd12fN5p2GesZ9OOBJvBdDsTblVdyJ1w==} 58 | engines: {node: '>=16'} 59 | cpu: [x64] 60 | os: [darwin] 61 | requiresBuild: true 62 | dev: true 63 | optional: true 64 | 65 | /@cloudflare/workerd-darwin-arm64@1.20240405.0: 66 | resolution: {integrity: sha512-x3A3Ym+J2DH1uYnw0aedeKOTnUebEo312+Aladv7bFri97pjRJcqVbYhMtOHLkHjwYn7bpKSY2eL5iM+0XT29A==} 67 | engines: {node: '>=16'} 68 | cpu: [arm64] 69 | os: [darwin] 70 | requiresBuild: true 71 | dev: true 72 | optional: true 73 | 74 | /@cloudflare/workerd-linux-64@1.20240405.0: 75 | resolution: {integrity: sha512-3tYpfjtxEQ0R30Pna7OF3Bz0CTx30hc0QNtH61KnkvXtaeYMkWutSKQKXIuVlPa/7v1MHp+8ViBXMflmS7HquA==} 76 | engines: {node: '>=16'} 77 | cpu: [x64] 78 | os: [linux] 79 | requiresBuild: true 80 | dev: true 81 | optional: true 82 | 83 | /@cloudflare/workerd-linux-arm64@1.20240405.0: 84 | resolution: {integrity: sha512-NpKZlvmdgcX/m4tP5zM91AfJpZrue2/GRA+Sl3szxAivu2uE5jDVf5SS9dzqzCVfPrdhylqH7yeL4U/cafFNOg==} 85 | engines: {node: '>=16'} 86 | cpu: [arm64] 87 | os: [linux] 88 | requiresBuild: true 89 | dev: true 90 | optional: true 91 | 92 | /@cloudflare/workerd-windows-64@1.20240405.0: 93 | resolution: {integrity: sha512-REBeJMxvUCjwuEVzSSIBtzAyM69QjToab8qBst0S9vdih+9DObym4dw8CevdBQhDbFrHiyL9E6pAZpLPNHVgCw==} 94 | engines: {node: '>=16'} 95 | cpu: [x64] 96 | os: [win32] 97 | requiresBuild: true 98 | dev: true 99 | optional: true 100 | 101 | /@cloudflare/workers-types@4.20240405.0: 102 | resolution: {integrity: sha512-sEVOhyOgXUwfLkgHqbLZa/sfkSYrh7/zLmI6EZNibPaVPvAnAcItbNNl3SAlLyLKuwf8m4wAIAgu9meKWCvXjg==} 103 | dev: true 104 | 105 | /@cspotcode/source-map-support@0.8.1: 106 | resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} 107 | engines: {node: '>=12'} 108 | dependencies: 109 | '@jridgewell/trace-mapping': 0.3.9 110 | dev: true 111 | 112 | /@esbuild-plugins/node-globals-polyfill@0.2.3(esbuild@0.17.19): 113 | resolution: {integrity: sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw==} 114 | peerDependencies: 115 | esbuild: '*' 116 | dependencies: 117 | esbuild: 0.17.19 118 | dev: true 119 | 120 | /@esbuild-plugins/node-modules-polyfill@0.2.2(esbuild@0.17.19): 121 | resolution: {integrity: sha512-LXV7QsWJxRuMYvKbiznh+U1ilIop3g2TeKRzUxOG5X3YITc8JyyTa90BmLwqqv0YnX4v32CSlG+vsziZp9dMvA==} 122 | peerDependencies: 123 | esbuild: '*' 124 | dependencies: 125 | esbuild: 0.17.19 126 | escape-string-regexp: 4.0.0 127 | rollup-plugin-node-polyfills: 0.2.1 128 | dev: true 129 | 130 | /@esbuild/android-arm64@0.17.19: 131 | resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} 132 | engines: {node: '>=12'} 133 | cpu: [arm64] 134 | os: [android] 135 | requiresBuild: true 136 | dev: true 137 | optional: true 138 | 139 | /@esbuild/android-arm@0.17.19: 140 | resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} 141 | engines: {node: '>=12'} 142 | cpu: [arm] 143 | os: [android] 144 | requiresBuild: true 145 | dev: true 146 | optional: true 147 | 148 | /@esbuild/android-x64@0.17.19: 149 | resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} 150 | engines: {node: '>=12'} 151 | cpu: [x64] 152 | os: [android] 153 | requiresBuild: true 154 | dev: true 155 | optional: true 156 | 157 | /@esbuild/darwin-arm64@0.17.19: 158 | resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} 159 | engines: {node: '>=12'} 160 | cpu: [arm64] 161 | os: [darwin] 162 | requiresBuild: true 163 | dev: true 164 | optional: true 165 | 166 | /@esbuild/darwin-x64@0.17.19: 167 | resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} 168 | engines: {node: '>=12'} 169 | cpu: [x64] 170 | os: [darwin] 171 | requiresBuild: true 172 | dev: true 173 | optional: true 174 | 175 | /@esbuild/freebsd-arm64@0.17.19: 176 | resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} 177 | engines: {node: '>=12'} 178 | cpu: [arm64] 179 | os: [freebsd] 180 | requiresBuild: true 181 | dev: true 182 | optional: true 183 | 184 | /@esbuild/freebsd-x64@0.17.19: 185 | resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} 186 | engines: {node: '>=12'} 187 | cpu: [x64] 188 | os: [freebsd] 189 | requiresBuild: true 190 | dev: true 191 | optional: true 192 | 193 | /@esbuild/linux-arm64@0.17.19: 194 | resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} 195 | engines: {node: '>=12'} 196 | cpu: [arm64] 197 | os: [linux] 198 | requiresBuild: true 199 | dev: true 200 | optional: true 201 | 202 | /@esbuild/linux-arm@0.17.19: 203 | resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} 204 | engines: {node: '>=12'} 205 | cpu: [arm] 206 | os: [linux] 207 | requiresBuild: true 208 | dev: true 209 | optional: true 210 | 211 | /@esbuild/linux-ia32@0.17.19: 212 | resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} 213 | engines: {node: '>=12'} 214 | cpu: [ia32] 215 | os: [linux] 216 | requiresBuild: true 217 | dev: true 218 | optional: true 219 | 220 | /@esbuild/linux-loong64@0.17.19: 221 | resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} 222 | engines: {node: '>=12'} 223 | cpu: [loong64] 224 | os: [linux] 225 | requiresBuild: true 226 | dev: true 227 | optional: true 228 | 229 | /@esbuild/linux-mips64el@0.17.19: 230 | resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} 231 | engines: {node: '>=12'} 232 | cpu: [mips64el] 233 | os: [linux] 234 | requiresBuild: true 235 | dev: true 236 | optional: true 237 | 238 | /@esbuild/linux-ppc64@0.17.19: 239 | resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} 240 | engines: {node: '>=12'} 241 | cpu: [ppc64] 242 | os: [linux] 243 | requiresBuild: true 244 | dev: true 245 | optional: true 246 | 247 | /@esbuild/linux-riscv64@0.17.19: 248 | resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} 249 | engines: {node: '>=12'} 250 | cpu: [riscv64] 251 | os: [linux] 252 | requiresBuild: true 253 | dev: true 254 | optional: true 255 | 256 | /@esbuild/linux-s390x@0.17.19: 257 | resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} 258 | engines: {node: '>=12'} 259 | cpu: [s390x] 260 | os: [linux] 261 | requiresBuild: true 262 | dev: true 263 | optional: true 264 | 265 | /@esbuild/linux-x64@0.17.19: 266 | resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} 267 | engines: {node: '>=12'} 268 | cpu: [x64] 269 | os: [linux] 270 | requiresBuild: true 271 | dev: true 272 | optional: true 273 | 274 | /@esbuild/netbsd-x64@0.17.19: 275 | resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} 276 | engines: {node: '>=12'} 277 | cpu: [x64] 278 | os: [netbsd] 279 | requiresBuild: true 280 | dev: true 281 | optional: true 282 | 283 | /@esbuild/openbsd-x64@0.17.19: 284 | resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} 285 | engines: {node: '>=12'} 286 | cpu: [x64] 287 | os: [openbsd] 288 | requiresBuild: true 289 | dev: true 290 | optional: true 291 | 292 | /@esbuild/sunos-x64@0.17.19: 293 | resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} 294 | engines: {node: '>=12'} 295 | cpu: [x64] 296 | os: [sunos] 297 | requiresBuild: true 298 | dev: true 299 | optional: true 300 | 301 | /@esbuild/win32-arm64@0.17.19: 302 | resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} 303 | engines: {node: '>=12'} 304 | cpu: [arm64] 305 | os: [win32] 306 | requiresBuild: true 307 | dev: true 308 | optional: true 309 | 310 | /@esbuild/win32-ia32@0.17.19: 311 | resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} 312 | engines: {node: '>=12'} 313 | cpu: [ia32] 314 | os: [win32] 315 | requiresBuild: true 316 | dev: true 317 | optional: true 318 | 319 | /@esbuild/win32-x64@0.17.19: 320 | resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} 321 | engines: {node: '>=12'} 322 | cpu: [x64] 323 | os: [win32] 324 | requiresBuild: true 325 | dev: true 326 | optional: true 327 | 328 | /@fastify/busboy@2.1.1: 329 | resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} 330 | engines: {node: '>=14'} 331 | dev: true 332 | 333 | /@isaacs/cliui@8.0.2: 334 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 335 | engines: {node: '>=12'} 336 | dependencies: 337 | string-width: 5.1.2 338 | string-width-cjs: /string-width@4.2.3 339 | strip-ansi: 7.1.0 340 | strip-ansi-cjs: /strip-ansi@6.0.1 341 | wrap-ansi: 8.1.0 342 | wrap-ansi-cjs: /wrap-ansi@7.0.0 343 | dev: true 344 | 345 | /@isaacs/ts-node-temp-fork-for-pr-2009@10.9.5(@types/node@20.12.7)(typescript@5.2.2): 346 | resolution: {integrity: sha512-hEDlwpHhIabtB+Urku8muNMEkGui0LVGlYLS3KoB9QBDf0Pw3r7q0RrfoQmFuk8CvRpGzErO3/vLQd9Ys+/g4g==} 347 | hasBin: true 348 | peerDependencies: 349 | '@swc/core': '>=1.2.50' 350 | '@swc/wasm': '>=1.2.50' 351 | '@types/node': '*' 352 | typescript: '>=4.2' 353 | peerDependenciesMeta: 354 | '@swc/core': 355 | optional: true 356 | '@swc/wasm': 357 | optional: true 358 | dependencies: 359 | '@cspotcode/source-map-support': 0.8.1 360 | '@tsconfig/node14': 14.1.2 361 | '@tsconfig/node16': 16.1.3 362 | '@tsconfig/node18': 18.2.4 363 | '@tsconfig/node20': 20.1.4 364 | '@types/node': 20.12.7 365 | acorn: 8.11.3 366 | acorn-walk: 8.3.2 367 | arg: 4.1.3 368 | diff: 4.0.2 369 | make-error: 1.3.6 370 | typescript: 5.2.2 371 | v8-compile-cache-lib: 3.0.1 372 | dev: true 373 | 374 | /@isaacs/ts-node-temp-fork-for-pr-2009@10.9.5(@types/node@20.12.7)(typescript@5.4.5): 375 | resolution: {integrity: sha512-hEDlwpHhIabtB+Urku8muNMEkGui0LVGlYLS3KoB9QBDf0Pw3r7q0RrfoQmFuk8CvRpGzErO3/vLQd9Ys+/g4g==} 376 | hasBin: true 377 | peerDependencies: 378 | '@swc/core': '>=1.2.50' 379 | '@swc/wasm': '>=1.2.50' 380 | '@types/node': '*' 381 | typescript: '>=4.2' 382 | peerDependenciesMeta: 383 | '@swc/core': 384 | optional: true 385 | '@swc/wasm': 386 | optional: true 387 | dependencies: 388 | '@cspotcode/source-map-support': 0.8.1 389 | '@tsconfig/node14': 14.1.2 390 | '@tsconfig/node16': 16.1.3 391 | '@tsconfig/node18': 18.2.4 392 | '@tsconfig/node20': 20.1.4 393 | '@types/node': 20.12.7 394 | acorn: 8.11.3 395 | acorn-walk: 8.3.2 396 | arg: 4.1.3 397 | diff: 4.0.2 398 | make-error: 1.3.6 399 | typescript: 5.4.5 400 | v8-compile-cache-lib: 3.0.1 401 | dev: true 402 | 403 | /@istanbuljs/schema@0.1.3: 404 | resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} 405 | engines: {node: '>=8'} 406 | dev: true 407 | 408 | /@jridgewell/resolve-uri@3.1.2: 409 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 410 | engines: {node: '>=6.0.0'} 411 | dev: true 412 | 413 | /@jridgewell/sourcemap-codec@1.4.15: 414 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 415 | dev: true 416 | 417 | /@jridgewell/trace-mapping@0.3.25: 418 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 419 | dependencies: 420 | '@jridgewell/resolve-uri': 3.1.2 421 | '@jridgewell/sourcemap-codec': 1.4.15 422 | dev: true 423 | 424 | /@jridgewell/trace-mapping@0.3.9: 425 | resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} 426 | dependencies: 427 | '@jridgewell/resolve-uri': 3.1.2 428 | '@jridgewell/sourcemap-codec': 1.4.15 429 | dev: true 430 | 431 | /@npmcli/agent@2.2.2: 432 | resolution: {integrity: sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==} 433 | engines: {node: ^16.14.0 || >=18.0.0} 434 | dependencies: 435 | agent-base: 7.1.1 436 | http-proxy-agent: 7.0.2 437 | https-proxy-agent: 7.0.4 438 | lru-cache: 10.2.0 439 | socks-proxy-agent: 8.0.3 440 | transitivePeerDependencies: 441 | - supports-color 442 | dev: true 443 | 444 | /@npmcli/fs@3.1.0: 445 | resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==} 446 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 447 | dependencies: 448 | semver: 7.6.0 449 | dev: true 450 | 451 | /@npmcli/git@5.0.6: 452 | resolution: {integrity: sha512-4x/182sKXmQkf0EtXxT26GEsaOATpD7WVtza5hrYivWZeo6QefC6xq9KAXrnjtFKBZ4rZwR7aX/zClYYXgtwLw==} 453 | engines: {node: ^16.14.0 || >=18.0.0} 454 | dependencies: 455 | '@npmcli/promise-spawn': 7.0.1 456 | lru-cache: 10.2.0 457 | npm-pick-manifest: 9.0.0 458 | proc-log: 4.0.0 459 | promise-inflight: 1.0.1 460 | promise-retry: 2.0.1 461 | semver: 7.6.0 462 | which: 4.0.0 463 | transitivePeerDependencies: 464 | - bluebird 465 | dev: true 466 | 467 | /@npmcli/installed-package-contents@2.0.2: 468 | resolution: {integrity: sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==} 469 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 470 | hasBin: true 471 | dependencies: 472 | npm-bundled: 3.0.0 473 | npm-normalize-package-bin: 3.0.1 474 | dev: true 475 | 476 | /@npmcli/node-gyp@3.0.0: 477 | resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==} 478 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 479 | dev: true 480 | 481 | /@npmcli/package-json@5.0.3: 482 | resolution: {integrity: sha512-cgsjCvld2wMqkUqvY+SZI+1ZJ7umGBYc9IAKfqJRKJCcs7hCQYxScUgdsyrRINk3VmdCYf9TXiLBHQ6ECTxhtg==} 483 | engines: {node: ^16.14.0 || >=18.0.0} 484 | dependencies: 485 | '@npmcli/git': 5.0.6 486 | glob: 10.3.12 487 | hosted-git-info: 7.0.1 488 | json-parse-even-better-errors: 3.0.1 489 | normalize-package-data: 6.0.0 490 | proc-log: 4.0.0 491 | semver: 7.6.0 492 | transitivePeerDependencies: 493 | - bluebird 494 | dev: true 495 | 496 | /@npmcli/promise-spawn@7.0.1: 497 | resolution: {integrity: sha512-P4KkF9jX3y+7yFUxgcUdDtLy+t4OlDGuEBLNs57AZsfSfg+uV6MLndqGpnl4831ggaEdXwR50XFoZP4VFtHolg==} 498 | engines: {node: ^16.14.0 || >=18.0.0} 499 | dependencies: 500 | which: 4.0.0 501 | dev: true 502 | 503 | /@npmcli/redact@1.1.0: 504 | resolution: {integrity: sha512-PfnWuOkQgu7gCbnSsAisaX7hKOdZ4wSAhAzH3/ph5dSGau52kCRrMMGbiSQLwyTZpgldkZ49b0brkOr1AzGBHQ==} 505 | engines: {node: ^16.14.0 || >=18.0.0} 506 | dev: true 507 | 508 | /@npmcli/run-script@7.0.4: 509 | resolution: {integrity: sha512-9ApYM/3+rBt9V80aYg6tZfzj3UWdiYyCt7gJUD1VJKvWF5nwKDSICXbYIQbspFTq6TOpbsEtIC0LArB8d9PFmg==} 510 | engines: {node: ^16.14.0 || >=18.0.0} 511 | dependencies: 512 | '@npmcli/node-gyp': 3.0.0 513 | '@npmcli/package-json': 5.0.3 514 | '@npmcli/promise-spawn': 7.0.1 515 | node-gyp: 10.1.0 516 | which: 4.0.0 517 | transitivePeerDependencies: 518 | - bluebird 519 | - supports-color 520 | dev: true 521 | 522 | /@pkgjs/parseargs@0.11.0: 523 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 524 | engines: {node: '>=14'} 525 | requiresBuild: true 526 | dev: true 527 | optional: true 528 | 529 | /@sigstore/bundle@2.3.1: 530 | resolution: {integrity: sha512-eqV17lO3EIFqCWK3969Rz+J8MYrRZKw9IBHpSo6DEcEX2c+uzDFOgHE9f2MnyDpfs48LFO4hXmk9KhQ74JzU1g==} 531 | engines: {node: ^16.14.0 || >=18.0.0} 532 | dependencies: 533 | '@sigstore/protobuf-specs': 0.3.1 534 | dev: true 535 | 536 | /@sigstore/core@1.1.0: 537 | resolution: {integrity: sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==} 538 | engines: {node: ^16.14.0 || >=18.0.0} 539 | dev: true 540 | 541 | /@sigstore/protobuf-specs@0.3.1: 542 | resolution: {integrity: sha512-aIL8Z9NsMr3C64jyQzE0XlkEyBLpgEJJFDHLVVStkFV5Q3Il/r/YtY6NJWKQ4cy4AE7spP1IX5Jq7VCAxHHMfQ==} 543 | engines: {node: ^16.14.0 || >=18.0.0} 544 | dev: true 545 | 546 | /@sigstore/sign@2.3.0: 547 | resolution: {integrity: sha512-tsAyV6FC3R3pHmKS880IXcDJuiFJiKITO1jxR1qbplcsBkZLBmjrEw5GbC7ikD6f5RU1hr7WnmxB/2kKc1qUWQ==} 548 | engines: {node: ^16.14.0 || >=18.0.0} 549 | dependencies: 550 | '@sigstore/bundle': 2.3.1 551 | '@sigstore/core': 1.1.0 552 | '@sigstore/protobuf-specs': 0.3.1 553 | make-fetch-happen: 13.0.0 554 | transitivePeerDependencies: 555 | - supports-color 556 | dev: true 557 | 558 | /@sigstore/tuf@2.3.2: 559 | resolution: {integrity: sha512-mwbY1VrEGU4CO55t+Kl6I7WZzIl+ysSzEYdA1Nv/FTrl2bkeaPXo5PnWZAVfcY2zSdhOpsUTJW67/M2zHXGn5w==} 560 | engines: {node: ^16.14.0 || >=18.0.0} 561 | dependencies: 562 | '@sigstore/protobuf-specs': 0.3.1 563 | tuf-js: 2.2.0 564 | transitivePeerDependencies: 565 | - supports-color 566 | dev: true 567 | 568 | /@sigstore/verify@1.2.0: 569 | resolution: {integrity: sha512-hQF60nc9yab+Csi4AyoAmilGNfpXT+EXdBgFkP9OgPwIBPwyqVf7JAWPtmqrrrneTmAT6ojv7OlH1f6Ix5BG4Q==} 570 | engines: {node: ^16.14.0 || >=18.0.0} 571 | dependencies: 572 | '@sigstore/bundle': 2.3.1 573 | '@sigstore/core': 1.1.0 574 | '@sigstore/protobuf-specs': 0.3.1 575 | dev: true 576 | 577 | /@tapjs/after-each@1.1.20(@tapjs/core@1.5.2): 578 | resolution: {integrity: sha512-j5+VLjyssCfC4+fEP31tJpKdXO4pBuouovauHHc5xR2qo/hMonB/MlDHhFOL9PbC4sLBHvY4EkotwET36aLECg==} 579 | engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} 580 | peerDependencies: 581 | '@tapjs/core': 1.5.2 582 | dependencies: 583 | '@tapjs/core': 1.5.2(@types/node@20.12.7)(react-dom@18.2.0)(react@16.14.0) 584 | function-loop: 4.0.0 585 | dev: true 586 | 587 | /@tapjs/after@1.1.20(@tapjs/core@1.5.2): 588 | resolution: {integrity: sha512-EGosPLlKe8MaZMkoyA2lJhF2h/zNNzKA93yA4fkg+tOvKaVvtI8BtSmErN2sMIYRFPHxaLzQgr0268h7m2Ysow==} 589 | engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} 590 | peerDependencies: 591 | '@tapjs/core': 1.5.2 592 | dependencies: 593 | '@tapjs/core': 1.5.2(@types/node@20.12.7)(react-dom@18.2.0)(react@16.14.0) 594 | is-actual-promise: 1.0.1 595 | dev: true 596 | 597 | /@tapjs/asserts@1.1.20(@tapjs/core@1.5.2)(react-dom@18.2.0)(react@16.14.0): 598 | resolution: {integrity: sha512-0w+c3+1TVzpObrQTRfDnE/Z3TTCWUVA4sZwzjfmhbwbF8VA83HR0Bh6fj7dIsrrsufWwp4QMyXPwN62HPwSCgg==} 599 | engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} 600 | peerDependencies: 601 | '@tapjs/core': 1.5.2 602 | dependencies: 603 | '@tapjs/core': 1.5.2(@types/node@20.12.7)(react-dom@18.2.0)(react@16.14.0) 604 | '@tapjs/stack': 1.2.8 605 | is-actual-promise: 1.0.1 606 | tcompare: 6.4.6(react-dom@18.2.0)(react@16.14.0) 607 | trivial-deferred: 2.0.0 608 | transitivePeerDependencies: 609 | - react 610 | - react-dom 611 | dev: true 612 | 613 | /@tapjs/before-each@1.1.20(@tapjs/core@1.5.2): 614 | resolution: {integrity: sha512-ln27bSetJoDo1AIFCdpwPupGhJN6dA1Sc55qHJ2Ni9O9IYc/9s5JvzzQ4eEV1hFaiROvpsS945MtQY4mRS09Lg==} 615 | engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} 616 | peerDependencies: 617 | '@tapjs/core': 1.5.2 618 | dependencies: 619 | '@tapjs/core': 1.5.2(@types/node@20.12.7)(react-dom@18.2.0)(react@16.14.0) 620 | function-loop: 4.0.0 621 | dev: true 622 | 623 | /@tapjs/before@1.1.20(@tapjs/core@1.5.2): 624 | resolution: {integrity: sha512-UuYor/jk+BRw9i3KuI6vrf7QF7g4V+z5ku/6qwUg7dkAE3qrCsRGNQ7Es1161ncXQUSoUy91vw/mRvFoTTRQ7Q==} 625 | engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} 626 | peerDependencies: 627 | '@tapjs/core': 1.5.2 628 | dependencies: 629 | '@tapjs/core': 1.5.2(@types/node@20.12.7)(react-dom@18.2.0)(react@16.14.0) 630 | is-actual-promise: 1.0.1 631 | dev: true 632 | 633 | /@tapjs/config@2.4.17(@tapjs/core@1.5.2)(@tapjs/test@1.4.2): 634 | resolution: {integrity: sha512-zMuOR2/i3IvKSEjKizGaR3LQ2x7VPbH3DOHGe0nW/BRnzTss9ZnKx579guHwYRBMJIqKLOsKYrBBAgM+7k6qvA==} 635 | engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} 636 | peerDependencies: 637 | '@tapjs/core': 1.5.2 638 | '@tapjs/test': 1.4.2 639 | dependencies: 640 | '@tapjs/core': 1.5.2(@types/node@20.12.7)(react-dom@18.2.0)(react@16.14.0) 641 | '@tapjs/test': 1.4.2(@tapjs/core@1.5.2)(@types/node@20.12.7)(react-dom@18.2.0)(react@16.14.0) 642 | chalk: 5.3.0 643 | jackspeak: 2.3.6 644 | polite-json: 4.0.1 645 | tap-yaml: 2.2.2 646 | walk-up-path: 3.0.1 647 | dev: true 648 | 649 | /@tapjs/core@1.5.2(@types/node@20.12.7)(react-dom@18.2.0)(react@16.14.0): 650 | resolution: {integrity: sha512-Z/xkjJBOzS3mjUxFTOvtQX34GmOLx+C27w6bFRHrPCO1YTtu08SXJ9Mdkv+7vbSlAnBLWFgZddWvpgpAYud/uQ==} 651 | engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} 652 | dependencies: 653 | '@tapjs/processinfo': 3.1.7 654 | '@tapjs/stack': 1.2.8 655 | '@tapjs/test': 1.4.2(@tapjs/core@1.5.2)(@types/node@20.12.7)(react-dom@18.2.0)(react@16.14.0) 656 | async-hook-domain: 4.0.1 657 | diff: 5.2.0 658 | is-actual-promise: 1.0.1 659 | minipass: 7.0.4 660 | signal-exit: 4.1.0 661 | tap-parser: 15.3.2 662 | tap-yaml: 2.2.2 663 | tcompare: 6.4.6(react-dom@18.2.0)(react@16.14.0) 664 | trivial-deferred: 2.0.0 665 | transitivePeerDependencies: 666 | - '@swc/core' 667 | - '@swc/wasm' 668 | - '@types/node' 669 | - react 670 | - react-dom 671 | dev: true 672 | 673 | /@tapjs/error-serdes@1.2.2: 674 | resolution: {integrity: sha512-RW2aU50JR7SSAlvoTyuwouXETLM9lP+7oZ5Z+dyKhNp8mkbbz4mXKcgd9SDHY5qTh6zvVN7OFK7ev7dYWXbrWw==} 675 | engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} 676 | dependencies: 677 | minipass: 7.0.4 678 | dev: true 679 | 680 | /@tapjs/filter@1.2.20(@tapjs/core@1.5.2): 681 | resolution: {integrity: sha512-8zyTBjY8lYVz2W0S8nw8vq0kkwCM6Ike76n71mVzMOFcW/qXIn2ImW/PJtHREMFwLEN0aL51Ey/60Cs85EevxA==} 682 | engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} 683 | peerDependencies: 684 | '@tapjs/core': 1.5.2 685 | dependencies: 686 | '@tapjs/core': 1.5.2(@types/node@20.12.7)(react-dom@18.2.0)(react@16.14.0) 687 | dev: true 688 | 689 | /@tapjs/fixture@1.2.20(@tapjs/core@1.5.2): 690 | resolution: {integrity: sha512-QJwANuumhNv59ONrpGOMy0hY+P2rHPakOlAR8ZkkAKbdQS5E0YExZLDna/Ug47Qin6MbaqXPk6zP/eiiBxZxig==} 691 | engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} 692 | peerDependencies: 693 | '@tapjs/core': 1.5.2 694 | dependencies: 695 | '@tapjs/core': 1.5.2(@types/node@20.12.7)(react-dom@18.2.0)(react@16.14.0) 696 | mkdirp: 3.0.1 697 | rimraf: 5.0.5 698 | dev: true 699 | 700 | /@tapjs/intercept@1.2.20(@tapjs/core@1.5.2): 701 | resolution: {integrity: sha512-LEjE2rKfELh8CM6NPAGKIi1HDFjb66G//qbTs8lnLCiulUvUWGlx4RzeBdky0532+vyR9Q3JdHsidCNOsq33ow==} 702 | engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} 703 | peerDependencies: 704 | '@tapjs/core': 1.5.2 705 | dependencies: 706 | '@tapjs/after': 1.1.20(@tapjs/core@1.5.2) 707 | '@tapjs/core': 1.5.2(@types/node@20.12.7)(react-dom@18.2.0)(react@16.14.0) 708 | '@tapjs/stack': 1.2.8 709 | dev: true 710 | 711 | /@tapjs/mock@1.3.2(@tapjs/core@1.5.2): 712 | resolution: {integrity: sha512-QN3Nft/wxww/oxPpx/bgW4EF7EfxfvcAY/0VPphI3NjG/ZSNeZ7lbO9kYvh+RSRC1PtDR6OvfGA2dwQ7V/81DQ==} 713 | engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} 714 | peerDependencies: 715 | '@tapjs/core': 1.5.2 716 | dependencies: 717 | '@tapjs/after': 1.1.20(@tapjs/core@1.5.2) 718 | '@tapjs/core': 1.5.2(@types/node@20.12.7)(react-dom@18.2.0)(react@16.14.0) 719 | '@tapjs/stack': 1.2.8 720 | resolve-import: 1.4.5 721 | walk-up-path: 3.0.1 722 | dev: true 723 | 724 | /@tapjs/node-serialize@1.3.2(@tapjs/core@1.5.2): 725 | resolution: {integrity: sha512-KyYYU1tOTn3udST4lQUl2KsZFPbA7UGqHKT3Os/FmHplmgJeSPc5nKKCI+R2h/ADSULQx7ZiBUYot8o0GTqndw==} 726 | engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} 727 | peerDependencies: 728 | '@tapjs/core': 1.5.2 729 | dependencies: 730 | '@tapjs/core': 1.5.2(@types/node@20.12.7)(react-dom@18.2.0)(react@16.14.0) 731 | '@tapjs/error-serdes': 1.2.2 732 | '@tapjs/stack': 1.2.8 733 | tap-parser: 15.3.2 734 | dev: true 735 | 736 | /@tapjs/processinfo@3.1.7: 737 | resolution: {integrity: sha512-SI5RJQ5HnUKEWnHSAF6hOm6XPdnjZ+CJzIaVHdFebed8iDAPTqb+IwMVu9yq9+VQ7FRsMMlgLL2SW4rss2iJbQ==} 738 | engines: {node: '>=16.17'} 739 | dependencies: 740 | pirates: 4.0.6 741 | process-on-spawn: 1.0.0 742 | signal-exit: 4.1.0 743 | uuid: 8.3.2 744 | dev: true 745 | 746 | /@tapjs/reporter@1.3.18(@tapjs/core@1.5.2)(@tapjs/test@1.4.2)(react-dom@18.2.0): 747 | resolution: {integrity: sha512-IVJf+zb1chL5uLXxWojmeylKlBlRsAQQA417FhF7V3jcTGzSSM017hI602ljnmgltvAh0vD6OHjVozDVh94b8w==} 748 | engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} 749 | peerDependencies: 750 | '@tapjs/core': 1.5.2 751 | dependencies: 752 | '@tapjs/config': 2.4.17(@tapjs/core@1.5.2)(@tapjs/test@1.4.2) 753 | '@tapjs/core': 1.5.2(@types/node@20.12.7)(react-dom@18.2.0)(react@16.14.0) 754 | '@tapjs/stack': 1.2.8 755 | chalk: 5.3.0 756 | ink: 4.4.1(react@18.2.0) 757 | minipass: 7.0.4 758 | ms: 2.1.3 759 | patch-console: 2.0.0 760 | prismjs-terminal: 1.2.3 761 | react: 18.2.0 762 | string-length: 6.0.0 763 | tap-parser: 15.3.2 764 | tap-yaml: 2.2.2 765 | tcompare: 6.4.6(react-dom@18.2.0)(react@18.2.0) 766 | transitivePeerDependencies: 767 | - '@tapjs/test' 768 | - '@types/react' 769 | - bufferutil 770 | - react-devtools-core 771 | - react-dom 772 | - utf-8-validate 773 | dev: true 774 | 775 | /@tapjs/run@1.5.2(@tapjs/core@1.5.2)(@types/node@20.12.7)(react-dom@18.2.0)(react@16.14.0): 776 | resolution: {integrity: sha512-4JdFP3UKmv2rWVPoRHQAUp/dSMlyzRDwnSJPE9wuXEnlZhoqjpa6n4rNrWbh02PFohogJZn1G8h5u4CBtocQRQ==} 777 | engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} 778 | hasBin: true 779 | peerDependencies: 780 | '@tapjs/core': 1.5.2 781 | dependencies: 782 | '@tapjs/after': 1.1.20(@tapjs/core@1.5.2) 783 | '@tapjs/before': 1.1.20(@tapjs/core@1.5.2) 784 | '@tapjs/config': 2.4.17(@tapjs/core@1.5.2)(@tapjs/test@1.4.2) 785 | '@tapjs/core': 1.5.2(@types/node@20.12.7)(react-dom@18.2.0)(react@16.14.0) 786 | '@tapjs/processinfo': 3.1.7 787 | '@tapjs/reporter': 1.3.18(@tapjs/core@1.5.2)(@tapjs/test@1.4.2)(react-dom@18.2.0) 788 | '@tapjs/spawn': 1.1.20(@tapjs/core@1.5.2) 789 | '@tapjs/stdin': 1.1.20(@tapjs/core@1.5.2) 790 | '@tapjs/test': 1.4.2(@tapjs/core@1.5.2)(@types/node@20.12.7)(react-dom@18.2.0)(react@16.14.0) 791 | c8: 8.0.1 792 | chalk: 5.3.0 793 | chokidar: 3.6.0 794 | foreground-child: 3.1.1 795 | glob: 10.3.12 796 | minipass: 7.0.4 797 | mkdirp: 3.0.1 798 | opener: 1.5.2 799 | pacote: 17.0.7 800 | resolve-import: 1.4.5 801 | rimraf: 5.0.5 802 | semver: 7.6.0 803 | signal-exit: 4.1.0 804 | tap-parser: 15.3.2 805 | tap-yaml: 2.2.2 806 | tcompare: 6.4.6(react-dom@18.2.0)(react@16.14.0) 807 | trivial-deferred: 2.0.0 808 | which: 4.0.0 809 | transitivePeerDependencies: 810 | - '@swc/core' 811 | - '@swc/wasm' 812 | - '@types/node' 813 | - '@types/react' 814 | - bluebird 815 | - bufferutil 816 | - react 817 | - react-devtools-core 818 | - react-dom 819 | - supports-color 820 | - utf-8-validate 821 | dev: true 822 | 823 | /@tapjs/snapshot@1.2.20(@tapjs/core@1.5.2)(react-dom@18.2.0)(react@16.14.0): 824 | resolution: {integrity: sha512-/7ct6j//nNjiabJGMSxRsJEXSLOc6SwNC3dHuYeXP+yHIOeRK3qoonLqkt8+/9JgkZyaqIvWMdlo9ezoNPCrAw==} 825 | engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} 826 | peerDependencies: 827 | '@tapjs/core': 1.5.2 828 | dependencies: 829 | '@tapjs/core': 1.5.2(@types/node@20.12.7)(react-dom@18.2.0)(react@16.14.0) 830 | is-actual-promise: 1.0.1 831 | tcompare: 6.4.6(react-dom@18.2.0)(react@16.14.0) 832 | trivial-deferred: 2.0.0 833 | transitivePeerDependencies: 834 | - react 835 | - react-dom 836 | dev: true 837 | 838 | /@tapjs/spawn@1.1.20(@tapjs/core@1.5.2): 839 | resolution: {integrity: sha512-7w396QXOQb8P3Sar9Ldas7tyTMqFBASpRjr/a6Coyj21s/HejlaX8nnGKldbMhokCR2gZAgkmWg45B3tVqxZJA==} 840 | engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} 841 | peerDependencies: 842 | '@tapjs/core': 1.5.2 843 | dependencies: 844 | '@tapjs/core': 1.5.2(@types/node@20.12.7)(react-dom@18.2.0)(react@16.14.0) 845 | dev: true 846 | 847 | /@tapjs/stack@1.2.8: 848 | resolution: {integrity: sha512-VC8h6U62ScerTKN+MYpRPiwH2bCL65S6v1wcj1hukE2hojLcRvVdET7S3ZtRfSj/eNWW/5OVfzTpHiGjEYD6Xg==} 849 | engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} 850 | dev: true 851 | 852 | /@tapjs/stdin@1.1.20(@tapjs/core@1.5.2): 853 | resolution: {integrity: sha512-OX5Q8WtZU48z2SCGEfIarqinDbhX7ajPpIUYHddtK/MbDowHZvgIFZzes7bH9tP2YcQdIRu/tuuyKi/WJMWxdg==} 854 | engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} 855 | peerDependencies: 856 | '@tapjs/core': 1.5.2 857 | dependencies: 858 | '@tapjs/core': 1.5.2(@types/node@20.12.7)(react-dom@18.2.0)(react@16.14.0) 859 | dev: true 860 | 861 | /@tapjs/test@1.4.2(@tapjs/core@1.5.2)(@types/node@20.12.7)(react-dom@18.2.0)(react@16.14.0): 862 | resolution: {integrity: sha512-xPcnhADRI1dua+1rcdZegLdGmkoyKxFneflQzdSPj4zOBXnzD7Kps269LBndrfA5df4ZjZBaFB0M5xSiu0cUGA==} 863 | engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} 864 | hasBin: true 865 | peerDependencies: 866 | '@tapjs/core': 1.5.2 867 | dependencies: 868 | '@isaacs/ts-node-temp-fork-for-pr-2009': 10.9.5(@types/node@20.12.7)(typescript@5.2.2) 869 | '@tapjs/after': 1.1.20(@tapjs/core@1.5.2) 870 | '@tapjs/after-each': 1.1.20(@tapjs/core@1.5.2) 871 | '@tapjs/asserts': 1.1.20(@tapjs/core@1.5.2)(react-dom@18.2.0)(react@16.14.0) 872 | '@tapjs/before': 1.1.20(@tapjs/core@1.5.2) 873 | '@tapjs/before-each': 1.1.20(@tapjs/core@1.5.2) 874 | '@tapjs/core': 1.5.2(@types/node@20.12.7)(react-dom@18.2.0)(react@16.14.0) 875 | '@tapjs/filter': 1.2.20(@tapjs/core@1.5.2) 876 | '@tapjs/fixture': 1.2.20(@tapjs/core@1.5.2) 877 | '@tapjs/intercept': 1.2.20(@tapjs/core@1.5.2) 878 | '@tapjs/mock': 1.3.2(@tapjs/core@1.5.2) 879 | '@tapjs/node-serialize': 1.3.2(@tapjs/core@1.5.2) 880 | '@tapjs/snapshot': 1.2.20(@tapjs/core@1.5.2)(react-dom@18.2.0)(react@16.14.0) 881 | '@tapjs/spawn': 1.1.20(@tapjs/core@1.5.2) 882 | '@tapjs/stdin': 1.1.20(@tapjs/core@1.5.2) 883 | '@tapjs/typescript': 1.4.2(@tapjs/core@1.5.2)(@types/node@20.12.7)(typescript@5.2.2) 884 | '@tapjs/worker': 1.1.20(@tapjs/core@1.5.2) 885 | glob: 10.3.12 886 | jackspeak: 2.3.6 887 | mkdirp: 3.0.1 888 | resolve-import: 1.4.5 889 | rimraf: 5.0.5 890 | sync-content: 1.0.2 891 | tap-parser: 15.3.2 892 | tshy: 1.14.0 893 | typescript: 5.2.2 894 | transitivePeerDependencies: 895 | - '@swc/core' 896 | - '@swc/wasm' 897 | - '@types/node' 898 | - react 899 | - react-dom 900 | dev: true 901 | 902 | /@tapjs/typescript@1.4.2(@tapjs/core@1.5.2)(@types/node@20.12.7)(typescript@5.2.2): 903 | resolution: {integrity: sha512-JUSd3c+aly+xP0FLkcw/afYWGeobZ3//f12MUias5f0tLj7AaxpKePGyLeY1f0QvcuzPF/UKjk3BLd1Fh4u86g==} 904 | engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} 905 | peerDependencies: 906 | '@tapjs/core': 1.5.2 907 | dependencies: 908 | '@isaacs/ts-node-temp-fork-for-pr-2009': 10.9.5(@types/node@20.12.7)(typescript@5.2.2) 909 | '@tapjs/core': 1.5.2(@types/node@20.12.7)(react-dom@18.2.0)(react@16.14.0) 910 | transitivePeerDependencies: 911 | - '@swc/core' 912 | - '@swc/wasm' 913 | - '@types/node' 914 | - typescript 915 | dev: true 916 | 917 | /@tapjs/typescript@1.4.2(@tapjs/core@1.5.2)(@types/node@20.12.7)(typescript@5.4.5): 918 | resolution: {integrity: sha512-JUSd3c+aly+xP0FLkcw/afYWGeobZ3//f12MUias5f0tLj7AaxpKePGyLeY1f0QvcuzPF/UKjk3BLd1Fh4u86g==} 919 | engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} 920 | peerDependencies: 921 | '@tapjs/core': 1.5.2 922 | dependencies: 923 | '@isaacs/ts-node-temp-fork-for-pr-2009': 10.9.5(@types/node@20.12.7)(typescript@5.4.5) 924 | '@tapjs/core': 1.5.2(@types/node@20.12.7)(react-dom@18.2.0)(react@16.14.0) 925 | transitivePeerDependencies: 926 | - '@swc/core' 927 | - '@swc/wasm' 928 | - '@types/node' 929 | - typescript 930 | dev: true 931 | 932 | /@tapjs/worker@1.1.20(@tapjs/core@1.5.2): 933 | resolution: {integrity: sha512-I7wvUqoe8vD8Ld65VgSWVTdbWyP6eTpSJ8At/TRKznlJj4CVSvZ3lV5RxvLCBTg7ITCKcS+mQbqsmjpsvPGXEg==} 934 | engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} 935 | peerDependencies: 936 | '@tapjs/core': 1.5.2 937 | dependencies: 938 | '@tapjs/core': 1.5.2(@types/node@20.12.7)(react-dom@18.2.0)(react@16.14.0) 939 | dev: true 940 | 941 | /@tsconfig/node14@14.1.2: 942 | resolution: {integrity: sha512-1vncsbfCZ3TBLPxesRYz02Rn7SNJfbLoDVkcZ7F/ixOV6nwxwgdhD1mdPcc5YQ413qBJ8CvMxXMFfJ7oawjo7Q==} 943 | dev: true 944 | 945 | /@tsconfig/node16@16.1.3: 946 | resolution: {integrity: sha512-9nTOUBn+EMKO6rtSZJk+DcqsfgtlERGT9XPJ5PRj/HNENPCBY1yu/JEj5wT6GLtbCLBO2k46SeXDaY0pjMqypw==} 947 | dev: true 948 | 949 | /@tsconfig/node18@18.2.4: 950 | resolution: {integrity: sha512-5xxU8vVs9/FNcvm3gE07fPbn9tl6tqGGWA9tSlwsUEkBxtRnTsNmwrV8gasZ9F/EobaSv9+nu8AxUKccw77JpQ==} 951 | dev: true 952 | 953 | /@tsconfig/node20@20.1.4: 954 | resolution: {integrity: sha512-sqgsT69YFeLWf5NtJ4Xq/xAF8p4ZQHlmGW74Nu2tD4+g5fAsposc4ZfaaPixVu4y01BEiDCWLRDCvDM5JOsRxg==} 955 | dev: true 956 | 957 | /@tufjs/canonical-json@2.0.0: 958 | resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==} 959 | engines: {node: ^16.14.0 || >=18.0.0} 960 | dev: true 961 | 962 | /@tufjs/models@2.0.0: 963 | resolution: {integrity: sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg==} 964 | engines: {node: ^16.14.0 || >=18.0.0} 965 | dependencies: 966 | '@tufjs/canonical-json': 2.0.0 967 | minimatch: 9.0.4 968 | dev: true 969 | 970 | /@types/istanbul-lib-coverage@2.0.6: 971 | resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} 972 | dev: true 973 | 974 | /@types/json-schema@7.0.15: 975 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} 976 | dev: true 977 | 978 | /@types/node-forge@1.3.11: 979 | resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} 980 | dependencies: 981 | '@types/node': 20.12.7 982 | dev: true 983 | 984 | /@types/node@20.12.7: 985 | resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} 986 | dependencies: 987 | undici-types: 5.26.5 988 | dev: true 989 | 990 | /abbrev@2.0.0: 991 | resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} 992 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 993 | dev: true 994 | 995 | /acorn-walk@8.3.2: 996 | resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} 997 | engines: {node: '>=0.4.0'} 998 | dev: true 999 | 1000 | /acorn@8.11.3: 1001 | resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} 1002 | engines: {node: '>=0.4.0'} 1003 | hasBin: true 1004 | dev: true 1005 | 1006 | /agent-base@7.1.1: 1007 | resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} 1008 | engines: {node: '>= 14'} 1009 | dependencies: 1010 | debug: 4.3.4 1011 | transitivePeerDependencies: 1012 | - supports-color 1013 | dev: true 1014 | 1015 | /aggregate-error@3.1.0: 1016 | resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} 1017 | engines: {node: '>=8'} 1018 | dependencies: 1019 | clean-stack: 2.2.0 1020 | indent-string: 4.0.0 1021 | dev: true 1022 | 1023 | /ansi-escapes@6.2.1: 1024 | resolution: {integrity: sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==} 1025 | engines: {node: '>=14.16'} 1026 | dev: true 1027 | 1028 | /ansi-regex@5.0.1: 1029 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 1030 | engines: {node: '>=8'} 1031 | dev: true 1032 | 1033 | /ansi-regex@6.0.1: 1034 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} 1035 | engines: {node: '>=12'} 1036 | dev: true 1037 | 1038 | /ansi-styles@4.3.0: 1039 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 1040 | engines: {node: '>=8'} 1041 | dependencies: 1042 | color-convert: 2.0.1 1043 | dev: true 1044 | 1045 | /ansi-styles@6.2.1: 1046 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 1047 | engines: {node: '>=12'} 1048 | dev: true 1049 | 1050 | /anymatch@3.1.3: 1051 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 1052 | engines: {node: '>= 8'} 1053 | dependencies: 1054 | normalize-path: 3.0.0 1055 | picomatch: 2.3.1 1056 | dev: true 1057 | 1058 | /arg@4.1.3: 1059 | resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} 1060 | dev: true 1061 | 1062 | /as-table@1.0.55: 1063 | resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} 1064 | dependencies: 1065 | printable-characters: 1.0.42 1066 | dev: true 1067 | 1068 | /async-hook-domain@4.0.1: 1069 | resolution: {integrity: sha512-bSktexGodAjfHWIrSrrqxqWzf1hWBZBpmPNZv+TYUMyWa2eoefFc6q6H1+KtdHYSz35lrhWdmXt/XK9wNEZvww==} 1070 | engines: {node: '>=16'} 1071 | dev: true 1072 | 1073 | /auto-bind@5.0.1: 1074 | resolution: {integrity: sha512-ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg==} 1075 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1076 | dev: true 1077 | 1078 | /babel-polyfill@6.26.0: 1079 | resolution: {integrity: sha512-F2rZGQnAdaHWQ8YAoeRbukc7HS9QgdgeyJ0rQDd485v9opwuPvjpPFcOOT/WmkKTdgy9ESgSPXDcTNpzrGr6iQ==} 1080 | dependencies: 1081 | babel-runtime: 6.26.0 1082 | core-js: 2.6.12 1083 | regenerator-runtime: 0.10.5 1084 | dev: false 1085 | 1086 | /babel-runtime@6.26.0: 1087 | resolution: {integrity: sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==} 1088 | dependencies: 1089 | core-js: 2.6.12 1090 | regenerator-runtime: 0.11.1 1091 | dev: false 1092 | 1093 | /balanced-match@1.0.2: 1094 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 1095 | dev: true 1096 | 1097 | /binary-extensions@2.3.0: 1098 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 1099 | engines: {node: '>=8'} 1100 | dev: true 1101 | 1102 | /blake3-wasm@2.1.5: 1103 | resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} 1104 | dev: true 1105 | 1106 | /boolbase@1.0.0: 1107 | resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} 1108 | dev: false 1109 | 1110 | /brace-expansion@1.1.11: 1111 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 1112 | dependencies: 1113 | balanced-match: 1.0.2 1114 | concat-map: 0.0.1 1115 | dev: true 1116 | 1117 | /brace-expansion@2.0.1: 1118 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 1119 | dependencies: 1120 | balanced-match: 1.0.2 1121 | dev: true 1122 | 1123 | /braces@3.0.2: 1124 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 1125 | engines: {node: '>=8'} 1126 | dependencies: 1127 | fill-range: 7.0.1 1128 | dev: true 1129 | 1130 | /builtins@5.1.0: 1131 | resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} 1132 | dependencies: 1133 | semver: 7.6.0 1134 | dev: true 1135 | 1136 | /c8@8.0.1: 1137 | resolution: {integrity: sha512-EINpopxZNH1mETuI0DzRA4MZpAUH+IFiRhnmFD3vFr3vdrgxqi3VfE3KL0AIL+zDq8rC9bZqwM/VDmmoe04y7w==} 1138 | engines: {node: '>=12'} 1139 | hasBin: true 1140 | dependencies: 1141 | '@bcoe/v8-coverage': 0.2.3 1142 | '@istanbuljs/schema': 0.1.3 1143 | find-up: 5.0.0 1144 | foreground-child: 2.0.0 1145 | istanbul-lib-coverage: 3.2.2 1146 | istanbul-lib-report: 3.0.1 1147 | istanbul-reports: 3.1.7 1148 | rimraf: 3.0.2 1149 | test-exclude: 6.0.0 1150 | v8-to-istanbul: 9.2.0 1151 | yargs: 17.7.2 1152 | yargs-parser: 21.1.1 1153 | dev: true 1154 | 1155 | /cacache@18.0.2: 1156 | resolution: {integrity: sha512-r3NU8h/P+4lVUHfeRw1dtgQYar3DZMm4/cm2bZgOvrFC/su7budSOeqh52VJIC4U4iG1WWwV6vRW0znqBvxNuw==} 1157 | engines: {node: ^16.14.0 || >=18.0.0} 1158 | dependencies: 1159 | '@npmcli/fs': 3.1.0 1160 | fs-minipass: 3.0.3 1161 | glob: 10.3.12 1162 | lru-cache: 10.2.0 1163 | minipass: 7.0.4 1164 | minipass-collect: 2.0.1 1165 | minipass-flush: 1.0.5 1166 | minipass-pipeline: 1.2.4 1167 | p-map: 4.0.0 1168 | ssri: 10.0.5 1169 | tar: 6.2.1 1170 | unique-filename: 3.0.0 1171 | dev: true 1172 | 1173 | /capnp-ts@0.7.0: 1174 | resolution: {integrity: sha512-XKxXAC3HVPv7r674zP0VC3RTXz+/JKhfyw94ljvF80yynK6VkTnqE3jMuN8b3dUVmmc43TjyxjW4KTsmB3c86g==} 1175 | dependencies: 1176 | debug: 4.3.4 1177 | tslib: 2.6.2 1178 | transitivePeerDependencies: 1179 | - supports-color 1180 | dev: true 1181 | 1182 | /chalk@5.3.0: 1183 | resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} 1184 | engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} 1185 | dev: true 1186 | 1187 | /cheerio-select@2.1.0: 1188 | resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} 1189 | dependencies: 1190 | boolbase: 1.0.0 1191 | css-select: 5.1.0 1192 | css-what: 6.1.0 1193 | domelementtype: 2.3.0 1194 | domhandler: 5.0.3 1195 | domutils: 3.1.0 1196 | dev: false 1197 | 1198 | /cheerio@0.22.0: 1199 | resolution: {integrity: sha512-8/MzidM6G/TgRelkzDG13y3Y9LxBjCb+8yOEZ9+wwq5gVF2w2pV0wmHvjfT0RvuxGyR7UEuK36r+yYMbT4uKgA==} 1200 | engines: {node: '>= 0.6'} 1201 | dependencies: 1202 | css-select: 1.2.0 1203 | dom-serializer: 0.1.1 1204 | entities: 1.1.2 1205 | htmlparser2: 3.10.1 1206 | lodash.assignin: 4.2.0 1207 | lodash.bind: 4.2.1 1208 | lodash.defaults: 4.2.0 1209 | lodash.filter: 4.6.0 1210 | lodash.flatten: 4.4.0 1211 | lodash.foreach: 4.5.0 1212 | lodash.map: 4.6.0 1213 | lodash.merge: 4.6.2 1214 | lodash.pick: 4.4.0 1215 | lodash.reduce: 4.6.0 1216 | lodash.reject: 4.6.0 1217 | lodash.some: 4.6.0 1218 | dev: false 1219 | 1220 | /cheerio@1.0.0-rc.12: 1221 | resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} 1222 | engines: {node: '>= 6'} 1223 | dependencies: 1224 | cheerio-select: 2.1.0 1225 | dom-serializer: 2.0.0 1226 | domhandler: 5.0.3 1227 | domutils: 3.1.0 1228 | htmlparser2: 8.0.2 1229 | parse5: 7.1.2 1230 | parse5-htmlparser2-tree-adapter: 7.0.0 1231 | dev: false 1232 | 1233 | /chokidar@3.6.0: 1234 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 1235 | engines: {node: '>= 8.10.0'} 1236 | dependencies: 1237 | anymatch: 3.1.3 1238 | braces: 3.0.2 1239 | glob-parent: 5.1.2 1240 | is-binary-path: 2.1.0 1241 | is-glob: 4.0.3 1242 | normalize-path: 3.0.0 1243 | readdirp: 3.6.0 1244 | optionalDependencies: 1245 | fsevents: 2.3.3 1246 | dev: true 1247 | 1248 | /chownr@2.0.0: 1249 | resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} 1250 | engines: {node: '>=10'} 1251 | dev: true 1252 | 1253 | /ci-info@3.9.0: 1254 | resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} 1255 | engines: {node: '>=8'} 1256 | dev: true 1257 | 1258 | /clean-stack@2.2.0: 1259 | resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} 1260 | engines: {node: '>=6'} 1261 | dev: true 1262 | 1263 | /cli-boxes@3.0.0: 1264 | resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} 1265 | engines: {node: '>=10'} 1266 | dev: true 1267 | 1268 | /cli-cursor@4.0.0: 1269 | resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} 1270 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1271 | dependencies: 1272 | restore-cursor: 4.0.0 1273 | dev: true 1274 | 1275 | /cli-truncate@3.1.0: 1276 | resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} 1277 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1278 | dependencies: 1279 | slice-ansi: 5.0.0 1280 | string-width: 5.1.2 1281 | dev: true 1282 | 1283 | /cliui@8.0.1: 1284 | resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} 1285 | engines: {node: '>=12'} 1286 | dependencies: 1287 | string-width: 4.2.3 1288 | strip-ansi: 6.0.1 1289 | wrap-ansi: 7.0.0 1290 | dev: true 1291 | 1292 | /code-excerpt@4.0.0: 1293 | resolution: {integrity: sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==} 1294 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1295 | dependencies: 1296 | convert-to-spaces: 2.0.1 1297 | dev: true 1298 | 1299 | /color-convert@2.0.1: 1300 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 1301 | engines: {node: '>=7.0.0'} 1302 | dependencies: 1303 | color-name: 1.1.4 1304 | dev: true 1305 | 1306 | /color-name@1.1.4: 1307 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 1308 | dev: true 1309 | 1310 | /commander@12.0.0: 1311 | resolution: {integrity: sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==} 1312 | engines: {node: '>=18'} 1313 | dev: true 1314 | 1315 | /concat-map@0.0.1: 1316 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 1317 | dev: true 1318 | 1319 | /convert-source-map@2.0.0: 1320 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} 1321 | dev: true 1322 | 1323 | /convert-to-spaces@2.0.1: 1324 | resolution: {integrity: sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==} 1325 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1326 | dev: true 1327 | 1328 | /cookie@0.5.0: 1329 | resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} 1330 | engines: {node: '>= 0.6'} 1331 | dev: true 1332 | 1333 | /core-js@2.6.12: 1334 | resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==} 1335 | deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js. 1336 | requiresBuild: true 1337 | dev: false 1338 | 1339 | /cross-spawn@7.0.3: 1340 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 1341 | engines: {node: '>= 8'} 1342 | dependencies: 1343 | path-key: 3.1.1 1344 | shebang-command: 2.0.0 1345 | which: 2.0.2 1346 | dev: true 1347 | 1348 | /css-select@1.2.0: 1349 | resolution: {integrity: sha512-dUQOBoqdR7QwV90WysXPLXG5LO7nhYBgiWVfxF80DKPF8zx1t/pUd2FYy73emg3zrjtM6dzmYgbHKfV2rxiHQA==} 1350 | dependencies: 1351 | boolbase: 1.0.0 1352 | css-what: 2.1.3 1353 | domutils: 1.5.1 1354 | nth-check: 1.0.2 1355 | dev: false 1356 | 1357 | /css-select@5.1.0: 1358 | resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} 1359 | dependencies: 1360 | boolbase: 1.0.0 1361 | css-what: 6.1.0 1362 | domhandler: 5.0.3 1363 | domutils: 3.1.0 1364 | nth-check: 2.1.1 1365 | dev: false 1366 | 1367 | /css-what@2.1.3: 1368 | resolution: {integrity: sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==} 1369 | dev: false 1370 | 1371 | /css-what@6.1.0: 1372 | resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} 1373 | engines: {node: '>= 6'} 1374 | dev: false 1375 | 1376 | /data-uri-to-buffer@2.0.2: 1377 | resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} 1378 | dev: true 1379 | 1380 | /debug@4.3.4: 1381 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 1382 | engines: {node: '>=6.0'} 1383 | peerDependencies: 1384 | supports-color: '*' 1385 | peerDependenciesMeta: 1386 | supports-color: 1387 | optional: true 1388 | dependencies: 1389 | ms: 2.1.2 1390 | dev: true 1391 | 1392 | /diff@4.0.2: 1393 | resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} 1394 | engines: {node: '>=0.3.1'} 1395 | dev: true 1396 | 1397 | /diff@5.2.0: 1398 | resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} 1399 | engines: {node: '>=0.3.1'} 1400 | dev: true 1401 | 1402 | /dom-serializer@0.1.1: 1403 | resolution: {integrity: sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==} 1404 | dependencies: 1405 | domelementtype: 1.3.1 1406 | entities: 1.1.2 1407 | dev: false 1408 | 1409 | /dom-serializer@0.2.2: 1410 | resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==} 1411 | dependencies: 1412 | domelementtype: 2.3.0 1413 | entities: 2.2.0 1414 | dev: false 1415 | 1416 | /dom-serializer@2.0.0: 1417 | resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} 1418 | dependencies: 1419 | domelementtype: 2.3.0 1420 | domhandler: 5.0.3 1421 | entities: 4.5.0 1422 | dev: false 1423 | 1424 | /domelementtype@1.3.1: 1425 | resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==} 1426 | dev: false 1427 | 1428 | /domelementtype@2.3.0: 1429 | resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} 1430 | dev: false 1431 | 1432 | /domhandler@2.4.2: 1433 | resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==} 1434 | dependencies: 1435 | domelementtype: 1.3.1 1436 | dev: false 1437 | 1438 | /domhandler@5.0.3: 1439 | resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} 1440 | engines: {node: '>= 4'} 1441 | dependencies: 1442 | domelementtype: 2.3.0 1443 | dev: false 1444 | 1445 | /domutils@1.5.1: 1446 | resolution: {integrity: sha512-gSu5Oi/I+3wDENBsOWBiRK1eoGxcywYSqg3rR960/+EfY0CF4EX1VPkgHOZ3WiS/Jg2DtliF6BhWcHlfpYUcGw==} 1447 | dependencies: 1448 | dom-serializer: 0.2.2 1449 | domelementtype: 1.3.1 1450 | dev: false 1451 | 1452 | /domutils@1.7.0: 1453 | resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==} 1454 | dependencies: 1455 | dom-serializer: 0.2.2 1456 | domelementtype: 1.3.1 1457 | dev: false 1458 | 1459 | /domutils@3.1.0: 1460 | resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} 1461 | dependencies: 1462 | dom-serializer: 2.0.0 1463 | domelementtype: 2.3.0 1464 | domhandler: 5.0.3 1465 | dev: false 1466 | 1467 | /eastasianwidth@0.2.0: 1468 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 1469 | dev: true 1470 | 1471 | /emoji-regex@8.0.0: 1472 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 1473 | dev: true 1474 | 1475 | /emoji-regex@9.2.2: 1476 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 1477 | dev: true 1478 | 1479 | /encoding@0.1.13: 1480 | resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} 1481 | requiresBuild: true 1482 | dependencies: 1483 | iconv-lite: 0.6.3 1484 | dev: true 1485 | optional: true 1486 | 1487 | /entities@1.1.2: 1488 | resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==} 1489 | dev: false 1490 | 1491 | /entities@2.2.0: 1492 | resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} 1493 | dev: false 1494 | 1495 | /entities@4.5.0: 1496 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 1497 | engines: {node: '>=0.12'} 1498 | dev: false 1499 | 1500 | /env-paths@2.2.1: 1501 | resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} 1502 | engines: {node: '>=6'} 1503 | dev: true 1504 | 1505 | /err-code@2.0.3: 1506 | resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} 1507 | dev: true 1508 | 1509 | /esbuild@0.17.19: 1510 | resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} 1511 | engines: {node: '>=12'} 1512 | hasBin: true 1513 | requiresBuild: true 1514 | optionalDependencies: 1515 | '@esbuild/android-arm': 0.17.19 1516 | '@esbuild/android-arm64': 0.17.19 1517 | '@esbuild/android-x64': 0.17.19 1518 | '@esbuild/darwin-arm64': 0.17.19 1519 | '@esbuild/darwin-x64': 0.17.19 1520 | '@esbuild/freebsd-arm64': 0.17.19 1521 | '@esbuild/freebsd-x64': 0.17.19 1522 | '@esbuild/linux-arm': 0.17.19 1523 | '@esbuild/linux-arm64': 0.17.19 1524 | '@esbuild/linux-ia32': 0.17.19 1525 | '@esbuild/linux-loong64': 0.17.19 1526 | '@esbuild/linux-mips64el': 0.17.19 1527 | '@esbuild/linux-ppc64': 0.17.19 1528 | '@esbuild/linux-riscv64': 0.17.19 1529 | '@esbuild/linux-s390x': 0.17.19 1530 | '@esbuild/linux-x64': 0.17.19 1531 | '@esbuild/netbsd-x64': 0.17.19 1532 | '@esbuild/openbsd-x64': 0.17.19 1533 | '@esbuild/sunos-x64': 0.17.19 1534 | '@esbuild/win32-arm64': 0.17.19 1535 | '@esbuild/win32-ia32': 0.17.19 1536 | '@esbuild/win32-x64': 0.17.19 1537 | dev: true 1538 | 1539 | /escalade@3.1.2: 1540 | resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} 1541 | engines: {node: '>=6'} 1542 | dev: true 1543 | 1544 | /escape-string-regexp@2.0.0: 1545 | resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} 1546 | engines: {node: '>=8'} 1547 | dev: true 1548 | 1549 | /escape-string-regexp@4.0.0: 1550 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 1551 | engines: {node: '>=10'} 1552 | dev: true 1553 | 1554 | /estree-walker@0.6.1: 1555 | resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} 1556 | dev: true 1557 | 1558 | /events-to-array@2.0.3: 1559 | resolution: {integrity: sha512-f/qE2gImHRa4Cp2y1stEOSgw8wTFyUdVJX7G//bMwbaV9JqISFxg99NbmVQeP7YLnDUZ2un851jlaDrlpmGehQ==} 1560 | engines: {node: '>=12'} 1561 | dev: true 1562 | 1563 | /exit-hook@2.2.1: 1564 | resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==} 1565 | engines: {node: '>=6'} 1566 | dev: true 1567 | 1568 | /exponential-backoff@3.1.1: 1569 | resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} 1570 | dev: true 1571 | 1572 | /fill-range@7.0.1: 1573 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 1574 | engines: {node: '>=8'} 1575 | dependencies: 1576 | to-regex-range: 5.0.1 1577 | dev: true 1578 | 1579 | /find-up@5.0.0: 1580 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 1581 | engines: {node: '>=10'} 1582 | dependencies: 1583 | locate-path: 6.0.0 1584 | path-exists: 4.0.0 1585 | dev: true 1586 | 1587 | /foreground-child@2.0.0: 1588 | resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} 1589 | engines: {node: '>=8.0.0'} 1590 | dependencies: 1591 | cross-spawn: 7.0.3 1592 | signal-exit: 3.0.7 1593 | dev: true 1594 | 1595 | /foreground-child@3.1.1: 1596 | resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} 1597 | engines: {node: '>=14'} 1598 | dependencies: 1599 | cross-spawn: 7.0.3 1600 | signal-exit: 4.1.0 1601 | dev: true 1602 | 1603 | /fromentries@1.3.2: 1604 | resolution: {integrity: sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==} 1605 | dev: true 1606 | 1607 | /fs-minipass@2.1.0: 1608 | resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} 1609 | engines: {node: '>= 8'} 1610 | dependencies: 1611 | minipass: 3.3.6 1612 | dev: true 1613 | 1614 | /fs-minipass@3.0.3: 1615 | resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} 1616 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 1617 | dependencies: 1618 | minipass: 7.0.4 1619 | dev: true 1620 | 1621 | /fs.realpath@1.0.0: 1622 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1623 | dev: true 1624 | 1625 | /fsevents@2.3.3: 1626 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 1627 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1628 | os: [darwin] 1629 | requiresBuild: true 1630 | dev: true 1631 | optional: true 1632 | 1633 | /function-bind@1.1.2: 1634 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 1635 | dev: true 1636 | 1637 | /function-loop@4.0.0: 1638 | resolution: {integrity: sha512-f34iQBedYF3XcI93uewZZOnyscDragxgTK/eTvVB74k3fCD0ZorOi5BV9GS4M8rz/JoNi0Kl3qX5Y9MH3S/CLQ==} 1639 | dev: true 1640 | 1641 | /get-caller-file@2.0.5: 1642 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 1643 | engines: {node: 6.* || 8.* || >= 10.*} 1644 | dev: true 1645 | 1646 | /get-source@2.0.12: 1647 | resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} 1648 | dependencies: 1649 | data-uri-to-buffer: 2.0.2 1650 | source-map: 0.6.1 1651 | dev: true 1652 | 1653 | /glob-parent@5.1.2: 1654 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1655 | engines: {node: '>= 6'} 1656 | dependencies: 1657 | is-glob: 4.0.3 1658 | dev: true 1659 | 1660 | /glob-to-regexp@0.4.1: 1661 | resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} 1662 | dev: true 1663 | 1664 | /glob@10.3.12: 1665 | resolution: {integrity: sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==} 1666 | engines: {node: '>=16 || 14 >=14.17'} 1667 | hasBin: true 1668 | dependencies: 1669 | foreground-child: 3.1.1 1670 | jackspeak: 2.3.6 1671 | minimatch: 9.0.4 1672 | minipass: 7.0.4 1673 | path-scurry: 1.10.2 1674 | dev: true 1675 | 1676 | /glob@7.2.3: 1677 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1678 | dependencies: 1679 | fs.realpath: 1.0.0 1680 | inflight: 1.0.6 1681 | inherits: 2.0.4 1682 | minimatch: 3.1.2 1683 | once: 1.4.0 1684 | path-is-absolute: 1.0.1 1685 | dev: true 1686 | 1687 | /glob@8.1.0: 1688 | resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} 1689 | engines: {node: '>=12'} 1690 | dependencies: 1691 | fs.realpath: 1.0.0 1692 | inflight: 1.0.6 1693 | inherits: 2.0.4 1694 | minimatch: 5.1.6 1695 | once: 1.4.0 1696 | dev: true 1697 | 1698 | /graceful-fs@4.2.11: 1699 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1700 | dev: true 1701 | 1702 | /has-flag@4.0.0: 1703 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1704 | engines: {node: '>=8'} 1705 | dev: true 1706 | 1707 | /hasown@2.0.2: 1708 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 1709 | engines: {node: '>= 0.4'} 1710 | dependencies: 1711 | function-bind: 1.1.2 1712 | dev: true 1713 | 1714 | /hosted-git-info@7.0.1: 1715 | resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} 1716 | engines: {node: ^16.14.0 || >=18.0.0} 1717 | dependencies: 1718 | lru-cache: 10.2.0 1719 | dev: true 1720 | 1721 | /html-escaper@2.0.2: 1722 | resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} 1723 | dev: true 1724 | 1725 | /htmlparser2@3.10.1: 1726 | resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==} 1727 | dependencies: 1728 | domelementtype: 1.3.1 1729 | domhandler: 2.4.2 1730 | domutils: 1.7.0 1731 | entities: 1.1.2 1732 | inherits: 2.0.4 1733 | readable-stream: 3.6.2 1734 | dev: false 1735 | 1736 | /htmlparser2@8.0.2: 1737 | resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} 1738 | dependencies: 1739 | domelementtype: 2.3.0 1740 | domhandler: 5.0.3 1741 | domutils: 3.1.0 1742 | entities: 4.5.0 1743 | dev: false 1744 | 1745 | /http-cache-semantics@4.1.1: 1746 | resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} 1747 | dev: true 1748 | 1749 | /http-proxy-agent@7.0.2: 1750 | resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} 1751 | engines: {node: '>= 14'} 1752 | dependencies: 1753 | agent-base: 7.1.1 1754 | debug: 4.3.4 1755 | transitivePeerDependencies: 1756 | - supports-color 1757 | dev: true 1758 | 1759 | /https-proxy-agent@7.0.4: 1760 | resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} 1761 | engines: {node: '>= 14'} 1762 | dependencies: 1763 | agent-base: 7.1.1 1764 | debug: 4.3.4 1765 | transitivePeerDependencies: 1766 | - supports-color 1767 | dev: true 1768 | 1769 | /iconv-lite@0.6.3: 1770 | resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} 1771 | engines: {node: '>=0.10.0'} 1772 | requiresBuild: true 1773 | dependencies: 1774 | safer-buffer: 2.1.2 1775 | dev: true 1776 | optional: true 1777 | 1778 | /ignore-walk@6.0.4: 1779 | resolution: {integrity: sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==} 1780 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 1781 | dependencies: 1782 | minimatch: 9.0.4 1783 | dev: true 1784 | 1785 | /imurmurhash@0.1.4: 1786 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 1787 | engines: {node: '>=0.8.19'} 1788 | dev: true 1789 | 1790 | /indent-string@4.0.0: 1791 | resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} 1792 | engines: {node: '>=8'} 1793 | dev: true 1794 | 1795 | /indent-string@5.0.0: 1796 | resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} 1797 | engines: {node: '>=12'} 1798 | dev: true 1799 | 1800 | /inflight@1.0.6: 1801 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1802 | dependencies: 1803 | once: 1.4.0 1804 | wrappy: 1.0.2 1805 | dev: true 1806 | 1807 | /inherits@2.0.4: 1808 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1809 | 1810 | /ink@4.4.1(react@18.2.0): 1811 | resolution: {integrity: sha512-rXckvqPBB0Krifk5rn/5LvQGmyXwCUpBfmTwbkQNBY9JY8RSl3b8OftBNEYxg4+SWUhEKcPifgope28uL9inlA==} 1812 | engines: {node: '>=14.16'} 1813 | peerDependencies: 1814 | '@types/react': '>=18.0.0' 1815 | react: '>=18.0.0' 1816 | react-devtools-core: ^4.19.1 1817 | peerDependenciesMeta: 1818 | '@types/react': 1819 | optional: true 1820 | react-devtools-core: 1821 | optional: true 1822 | dependencies: 1823 | '@alcalzone/ansi-tokenize': 0.1.3 1824 | ansi-escapes: 6.2.1 1825 | auto-bind: 5.0.1 1826 | chalk: 5.3.0 1827 | cli-boxes: 3.0.0 1828 | cli-cursor: 4.0.0 1829 | cli-truncate: 3.1.0 1830 | code-excerpt: 4.0.0 1831 | indent-string: 5.0.0 1832 | is-ci: 3.0.1 1833 | is-lower-case: 2.0.2 1834 | is-upper-case: 2.0.2 1835 | lodash: 4.17.21 1836 | patch-console: 2.0.0 1837 | react: 18.2.0 1838 | react-reconciler: 0.29.0(react@18.2.0) 1839 | scheduler: 0.23.0 1840 | signal-exit: 3.0.7 1841 | slice-ansi: 6.0.0 1842 | stack-utils: 2.0.6 1843 | string-width: 5.1.2 1844 | type-fest: 0.12.0 1845 | widest-line: 4.0.1 1846 | wrap-ansi: 8.1.0 1847 | ws: 8.16.0 1848 | yoga-wasm-web: 0.3.3 1849 | transitivePeerDependencies: 1850 | - bufferutil 1851 | - utf-8-validate 1852 | dev: true 1853 | 1854 | /ip-address@9.0.5: 1855 | resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} 1856 | engines: {node: '>= 12'} 1857 | dependencies: 1858 | jsbn: 1.1.0 1859 | sprintf-js: 1.1.3 1860 | dev: true 1861 | 1862 | /is-actual-promise@1.0.1: 1863 | resolution: {integrity: sha512-PlsL4tNv62lx5yN2HSqaRSTgIpUAPW7U6+crVB8HfWm5161rZpeqWbl0ZSqH2MAfRKXWSZVPRNbE/r8qPcb13g==} 1864 | dependencies: 1865 | tshy: 1.14.0 1866 | dev: true 1867 | 1868 | /is-binary-path@2.1.0: 1869 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 1870 | engines: {node: '>=8'} 1871 | dependencies: 1872 | binary-extensions: 2.3.0 1873 | dev: true 1874 | 1875 | /is-ci@3.0.1: 1876 | resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} 1877 | hasBin: true 1878 | dependencies: 1879 | ci-info: 3.9.0 1880 | dev: true 1881 | 1882 | /is-core-module@2.13.1: 1883 | resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} 1884 | dependencies: 1885 | hasown: 2.0.2 1886 | dev: true 1887 | 1888 | /is-extglob@2.1.1: 1889 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1890 | engines: {node: '>=0.10.0'} 1891 | dev: true 1892 | 1893 | /is-fullwidth-code-point@3.0.0: 1894 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1895 | engines: {node: '>=8'} 1896 | dev: true 1897 | 1898 | /is-fullwidth-code-point@4.0.0: 1899 | resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} 1900 | engines: {node: '>=12'} 1901 | dev: true 1902 | 1903 | /is-glob@4.0.3: 1904 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1905 | engines: {node: '>=0.10.0'} 1906 | dependencies: 1907 | is-extglob: 2.1.1 1908 | dev: true 1909 | 1910 | /is-lambda@1.0.1: 1911 | resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} 1912 | dev: true 1913 | 1914 | /is-lower-case@2.0.2: 1915 | resolution: {integrity: sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==} 1916 | dependencies: 1917 | tslib: 2.6.2 1918 | dev: true 1919 | 1920 | /is-number@7.0.0: 1921 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1922 | engines: {node: '>=0.12.0'} 1923 | dev: true 1924 | 1925 | /is-plain-object@5.0.0: 1926 | resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} 1927 | engines: {node: '>=0.10.0'} 1928 | dev: true 1929 | 1930 | /is-upper-case@2.0.2: 1931 | resolution: {integrity: sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==} 1932 | dependencies: 1933 | tslib: 2.6.2 1934 | dev: true 1935 | 1936 | /isexe@2.0.0: 1937 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1938 | dev: true 1939 | 1940 | /isexe@3.1.1: 1941 | resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} 1942 | engines: {node: '>=16'} 1943 | dev: true 1944 | 1945 | /istanbul-lib-coverage@3.2.2: 1946 | resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} 1947 | engines: {node: '>=8'} 1948 | dev: true 1949 | 1950 | /istanbul-lib-report@3.0.1: 1951 | resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} 1952 | engines: {node: '>=10'} 1953 | dependencies: 1954 | istanbul-lib-coverage: 3.2.2 1955 | make-dir: 4.0.0 1956 | supports-color: 7.2.0 1957 | dev: true 1958 | 1959 | /istanbul-reports@3.1.7: 1960 | resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} 1961 | engines: {node: '>=8'} 1962 | dependencies: 1963 | html-escaper: 2.0.2 1964 | istanbul-lib-report: 3.0.1 1965 | dev: true 1966 | 1967 | /jackspeak@2.3.6: 1968 | resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} 1969 | engines: {node: '>=14'} 1970 | dependencies: 1971 | '@isaacs/cliui': 8.0.2 1972 | optionalDependencies: 1973 | '@pkgjs/parseargs': 0.11.0 1974 | dev: true 1975 | 1976 | /js-tokens@4.0.0: 1977 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1978 | dev: true 1979 | 1980 | /jsbn@1.1.0: 1981 | resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} 1982 | dev: true 1983 | 1984 | /json-parse-even-better-errors@3.0.1: 1985 | resolution: {integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==} 1986 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 1987 | dev: true 1988 | 1989 | /json5@2.2.3: 1990 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 1991 | engines: {node: '>=6'} 1992 | hasBin: true 1993 | dev: true 1994 | 1995 | /jsonparse@1.3.1: 1996 | resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} 1997 | engines: {'0': node >= 0.2.0} 1998 | dev: true 1999 | 2000 | /locate-path@6.0.0: 2001 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 2002 | engines: {node: '>=10'} 2003 | dependencies: 2004 | p-locate: 5.0.0 2005 | dev: true 2006 | 2007 | /lodash.assignin@4.2.0: 2008 | resolution: {integrity: sha512-yX/rx6d/UTVh7sSVWVSIMjfnz95evAgDFdb1ZozC35I9mSFCkmzptOzevxjgbQUsc78NR44LVHWjsoMQXy9FDg==} 2009 | dev: false 2010 | 2011 | /lodash.bind@4.2.1: 2012 | resolution: {integrity: sha512-lxdsn7xxlCymgLYo1gGvVrfHmkjDiyqVv62FAeF2i5ta72BipE1SLxw8hPEPLhD4/247Ijw07UQH7Hq/chT5LA==} 2013 | dev: false 2014 | 2015 | /lodash.defaults@4.2.0: 2016 | resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} 2017 | dev: false 2018 | 2019 | /lodash.filter@4.6.0: 2020 | resolution: {integrity: sha512-pXYUy7PR8BCLwX5mgJ/aNtyOvuJTdZAo9EQFUvMIYugqmJxnrYaANvTbgndOzHSCSR0wnlBBfRXJL5SbWxo3FQ==} 2021 | dev: false 2022 | 2023 | /lodash.flatten@4.4.0: 2024 | resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} 2025 | dev: false 2026 | 2027 | /lodash.foreach@4.5.0: 2028 | resolution: {integrity: sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==} 2029 | dev: false 2030 | 2031 | /lodash.map@4.6.0: 2032 | resolution: {integrity: sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==} 2033 | dev: false 2034 | 2035 | /lodash.merge@4.6.2: 2036 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 2037 | dev: false 2038 | 2039 | /lodash.pick@4.4.0: 2040 | resolution: {integrity: sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==} 2041 | dev: false 2042 | 2043 | /lodash.reduce@4.6.0: 2044 | resolution: {integrity: sha512-6raRe2vxCYBhpBu+B+TtNGUzah+hQjVdu3E17wfusjyrXBka2nBS8OH/gjVZ5PvHOhWmIZTYri09Z6n/QfnNMw==} 2045 | dev: false 2046 | 2047 | /lodash.reject@4.6.0: 2048 | resolution: {integrity: sha512-qkTuvgEzYdyhiJBx42YPzPo71R1aEr0z79kAv7Ixg8wPFEjgRgJdUsGMG3Hf3OYSF/kHI79XhNlt+5Ar6OzwxQ==} 2049 | dev: false 2050 | 2051 | /lodash.some@4.6.0: 2052 | resolution: {integrity: sha512-j7MJE+TuT51q9ggt4fSgVqro163BEFjAt3u97IqU+JA2DkWl80nFTrowzLpZ/BnpN7rrl0JA/593NAdd8p/scQ==} 2053 | dev: false 2054 | 2055 | /lodash@4.17.21: 2056 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 2057 | dev: true 2058 | 2059 | /loose-envify@1.4.0: 2060 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 2061 | hasBin: true 2062 | dependencies: 2063 | js-tokens: 4.0.0 2064 | dev: true 2065 | 2066 | /lru-cache@10.2.0: 2067 | resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} 2068 | engines: {node: 14 || >=16.14} 2069 | dev: true 2070 | 2071 | /lru-cache@6.0.0: 2072 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 2073 | engines: {node: '>=10'} 2074 | dependencies: 2075 | yallist: 4.0.0 2076 | dev: true 2077 | 2078 | /magic-string@0.25.9: 2079 | resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} 2080 | dependencies: 2081 | sourcemap-codec: 1.4.8 2082 | dev: true 2083 | 2084 | /make-dir@4.0.0: 2085 | resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} 2086 | engines: {node: '>=10'} 2087 | dependencies: 2088 | semver: 7.6.0 2089 | dev: true 2090 | 2091 | /make-error@1.3.6: 2092 | resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} 2093 | dev: true 2094 | 2095 | /make-fetch-happen@13.0.0: 2096 | resolution: {integrity: sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==} 2097 | engines: {node: ^16.14.0 || >=18.0.0} 2098 | dependencies: 2099 | '@npmcli/agent': 2.2.2 2100 | cacache: 18.0.2 2101 | http-cache-semantics: 4.1.1 2102 | is-lambda: 1.0.1 2103 | minipass: 7.0.4 2104 | minipass-fetch: 3.0.4 2105 | minipass-flush: 1.0.5 2106 | minipass-pipeline: 1.2.4 2107 | negotiator: 0.6.3 2108 | promise-retry: 2.0.1 2109 | ssri: 10.0.5 2110 | transitivePeerDependencies: 2111 | - supports-color 2112 | dev: true 2113 | 2114 | /mime@3.0.0: 2115 | resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} 2116 | engines: {node: '>=10.0.0'} 2117 | hasBin: true 2118 | dev: true 2119 | 2120 | /mimic-fn@2.1.0: 2121 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 2122 | engines: {node: '>=6'} 2123 | dev: true 2124 | 2125 | /miniflare@3.20240405.1: 2126 | resolution: {integrity: sha512-oShOR/ckr9JTO1bkPQH0nXvuSgJjoE+E5+M1tvP01Q8Z+Q0GJnzU2+FDYUH8yIK/atHv7snU8yy0X6KWVn1YdQ==} 2127 | engines: {node: '>=16.13'} 2128 | hasBin: true 2129 | dependencies: 2130 | '@cspotcode/source-map-support': 0.8.1 2131 | acorn: 8.11.3 2132 | acorn-walk: 8.3.2 2133 | capnp-ts: 0.7.0 2134 | exit-hook: 2.2.1 2135 | glob-to-regexp: 0.4.1 2136 | stoppable: 1.1.0 2137 | undici: 5.28.4 2138 | workerd: 1.20240405.0 2139 | ws: 8.16.0 2140 | youch: 3.3.3 2141 | zod: 3.22.4 2142 | transitivePeerDependencies: 2143 | - bufferutil 2144 | - supports-color 2145 | - utf-8-validate 2146 | dev: true 2147 | 2148 | /minimatch@3.1.2: 2149 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 2150 | dependencies: 2151 | brace-expansion: 1.1.11 2152 | dev: true 2153 | 2154 | /minimatch@5.1.6: 2155 | resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} 2156 | engines: {node: '>=10'} 2157 | dependencies: 2158 | brace-expansion: 2.0.1 2159 | dev: true 2160 | 2161 | /minimatch@9.0.4: 2162 | resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} 2163 | engines: {node: '>=16 || 14 >=14.17'} 2164 | dependencies: 2165 | brace-expansion: 2.0.1 2166 | dev: true 2167 | 2168 | /minipass-collect@2.0.1: 2169 | resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} 2170 | engines: {node: '>=16 || 14 >=14.17'} 2171 | dependencies: 2172 | minipass: 7.0.4 2173 | dev: true 2174 | 2175 | /minipass-fetch@3.0.4: 2176 | resolution: {integrity: sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==} 2177 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 2178 | dependencies: 2179 | minipass: 7.0.4 2180 | minipass-sized: 1.0.3 2181 | minizlib: 2.1.2 2182 | optionalDependencies: 2183 | encoding: 0.1.13 2184 | dev: true 2185 | 2186 | /minipass-flush@1.0.5: 2187 | resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} 2188 | engines: {node: '>= 8'} 2189 | dependencies: 2190 | minipass: 3.3.6 2191 | dev: true 2192 | 2193 | /minipass-json-stream@1.0.1: 2194 | resolution: {integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==} 2195 | dependencies: 2196 | jsonparse: 1.3.1 2197 | minipass: 3.3.6 2198 | dev: true 2199 | 2200 | /minipass-pipeline@1.2.4: 2201 | resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} 2202 | engines: {node: '>=8'} 2203 | dependencies: 2204 | minipass: 3.3.6 2205 | dev: true 2206 | 2207 | /minipass-sized@1.0.3: 2208 | resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} 2209 | engines: {node: '>=8'} 2210 | dependencies: 2211 | minipass: 3.3.6 2212 | dev: true 2213 | 2214 | /minipass@3.3.6: 2215 | resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} 2216 | engines: {node: '>=8'} 2217 | dependencies: 2218 | yallist: 4.0.0 2219 | dev: true 2220 | 2221 | /minipass@5.0.0: 2222 | resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} 2223 | engines: {node: '>=8'} 2224 | dev: true 2225 | 2226 | /minipass@7.0.4: 2227 | resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} 2228 | engines: {node: '>=16 || 14 >=14.17'} 2229 | dev: true 2230 | 2231 | /minizlib@2.1.2: 2232 | resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} 2233 | engines: {node: '>= 8'} 2234 | dependencies: 2235 | minipass: 3.3.6 2236 | yallist: 4.0.0 2237 | dev: true 2238 | 2239 | /mkdirp@1.0.4: 2240 | resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} 2241 | engines: {node: '>=10'} 2242 | hasBin: true 2243 | dev: true 2244 | 2245 | /mkdirp@3.0.1: 2246 | resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} 2247 | engines: {node: '>=10'} 2248 | hasBin: true 2249 | dev: true 2250 | 2251 | /ms@2.1.2: 2252 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 2253 | dev: true 2254 | 2255 | /ms@2.1.3: 2256 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 2257 | dev: true 2258 | 2259 | /mustache@4.2.0: 2260 | resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} 2261 | hasBin: true 2262 | dev: true 2263 | 2264 | /nanoid@3.3.7: 2265 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 2266 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 2267 | hasBin: true 2268 | dev: true 2269 | 2270 | /negotiator@0.6.3: 2271 | resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} 2272 | engines: {node: '>= 0.6'} 2273 | dev: true 2274 | 2275 | /node-forge@1.3.1: 2276 | resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} 2277 | engines: {node: '>= 6.13.0'} 2278 | dev: true 2279 | 2280 | /node-gyp@10.1.0: 2281 | resolution: {integrity: sha512-B4J5M1cABxPc5PwfjhbV5hoy2DP9p8lFXASnEN6hugXOa61416tnTZ29x9sSwAd0o99XNIcpvDDy1swAExsVKA==} 2282 | engines: {node: ^16.14.0 || >=18.0.0} 2283 | hasBin: true 2284 | dependencies: 2285 | env-paths: 2.2.1 2286 | exponential-backoff: 3.1.1 2287 | glob: 10.3.12 2288 | graceful-fs: 4.2.11 2289 | make-fetch-happen: 13.0.0 2290 | nopt: 7.2.0 2291 | proc-log: 3.0.0 2292 | semver: 7.6.0 2293 | tar: 6.2.1 2294 | which: 4.0.0 2295 | transitivePeerDependencies: 2296 | - supports-color 2297 | dev: true 2298 | 2299 | /nopt@7.2.0: 2300 | resolution: {integrity: sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==} 2301 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 2302 | hasBin: true 2303 | dependencies: 2304 | abbrev: 2.0.0 2305 | dev: true 2306 | 2307 | /normalize-package-data@6.0.0: 2308 | resolution: {integrity: sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==} 2309 | engines: {node: ^16.14.0 || >=18.0.0} 2310 | dependencies: 2311 | hosted-git-info: 7.0.1 2312 | is-core-module: 2.13.1 2313 | semver: 7.6.0 2314 | validate-npm-package-license: 3.0.4 2315 | dev: true 2316 | 2317 | /normalize-path@3.0.0: 2318 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 2319 | engines: {node: '>=0.10.0'} 2320 | dev: true 2321 | 2322 | /npm-bundled@3.0.0: 2323 | resolution: {integrity: sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==} 2324 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 2325 | dependencies: 2326 | npm-normalize-package-bin: 3.0.1 2327 | dev: true 2328 | 2329 | /npm-install-checks@6.3.0: 2330 | resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==} 2331 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 2332 | dependencies: 2333 | semver: 7.6.0 2334 | dev: true 2335 | 2336 | /npm-normalize-package-bin@3.0.1: 2337 | resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} 2338 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 2339 | dev: true 2340 | 2341 | /npm-package-arg@11.0.2: 2342 | resolution: {integrity: sha512-IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw==} 2343 | engines: {node: ^16.14.0 || >=18.0.0} 2344 | dependencies: 2345 | hosted-git-info: 7.0.1 2346 | proc-log: 4.0.0 2347 | semver: 7.6.0 2348 | validate-npm-package-name: 5.0.0 2349 | dev: true 2350 | 2351 | /npm-packlist@8.0.2: 2352 | resolution: {integrity: sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==} 2353 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 2354 | dependencies: 2355 | ignore-walk: 6.0.4 2356 | dev: true 2357 | 2358 | /npm-pick-manifest@9.0.0: 2359 | resolution: {integrity: sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg==} 2360 | engines: {node: ^16.14.0 || >=18.0.0} 2361 | dependencies: 2362 | npm-install-checks: 6.3.0 2363 | npm-normalize-package-bin: 3.0.1 2364 | npm-package-arg: 11.0.2 2365 | semver: 7.6.0 2366 | dev: true 2367 | 2368 | /npm-registry-fetch@16.2.1: 2369 | resolution: {integrity: sha512-8l+7jxhim55S85fjiDGJ1rZXBWGtRLi1OSb4Z3BPLObPuIaeKRlPRiYMSHU4/81ck3t71Z+UwDDl47gcpmfQQA==} 2370 | engines: {node: ^16.14.0 || >=18.0.0} 2371 | dependencies: 2372 | '@npmcli/redact': 1.1.0 2373 | make-fetch-happen: 13.0.0 2374 | minipass: 7.0.4 2375 | minipass-fetch: 3.0.4 2376 | minipass-json-stream: 1.0.1 2377 | minizlib: 2.1.2 2378 | npm-package-arg: 11.0.2 2379 | proc-log: 4.0.0 2380 | transitivePeerDependencies: 2381 | - supports-color 2382 | dev: true 2383 | 2384 | /nth-check@1.0.2: 2385 | resolution: {integrity: sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==} 2386 | dependencies: 2387 | boolbase: 1.0.0 2388 | dev: false 2389 | 2390 | /nth-check@2.1.1: 2391 | resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} 2392 | dependencies: 2393 | boolbase: 1.0.0 2394 | dev: false 2395 | 2396 | /object-assign@4.1.1: 2397 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 2398 | engines: {node: '>=0.10.0'} 2399 | dev: true 2400 | 2401 | /once@1.4.0: 2402 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 2403 | dependencies: 2404 | wrappy: 1.0.2 2405 | dev: true 2406 | 2407 | /onetime@5.1.2: 2408 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 2409 | engines: {node: '>=6'} 2410 | dependencies: 2411 | mimic-fn: 2.1.0 2412 | dev: true 2413 | 2414 | /opener@1.5.2: 2415 | resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} 2416 | hasBin: true 2417 | dev: true 2418 | 2419 | /p-limit@3.1.0: 2420 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 2421 | engines: {node: '>=10'} 2422 | dependencies: 2423 | yocto-queue: 0.1.0 2424 | dev: true 2425 | 2426 | /p-locate@5.0.0: 2427 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 2428 | engines: {node: '>=10'} 2429 | dependencies: 2430 | p-limit: 3.1.0 2431 | dev: true 2432 | 2433 | /p-map@4.0.0: 2434 | resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} 2435 | engines: {node: '>=10'} 2436 | dependencies: 2437 | aggregate-error: 3.1.0 2438 | dev: true 2439 | 2440 | /pacote@17.0.7: 2441 | resolution: {integrity: sha512-sgvnoUMlkv9xHwDUKjKQFXVyUi8dtJGKp3vg6sYy+TxbDic5RjZCHF3ygv0EJgNRZ2GfRONjlKPUfokJ9lDpwQ==} 2442 | engines: {node: ^16.14.0 || >=18.0.0} 2443 | hasBin: true 2444 | dependencies: 2445 | '@npmcli/git': 5.0.6 2446 | '@npmcli/installed-package-contents': 2.0.2 2447 | '@npmcli/promise-spawn': 7.0.1 2448 | '@npmcli/run-script': 7.0.4 2449 | cacache: 18.0.2 2450 | fs-minipass: 3.0.3 2451 | minipass: 7.0.4 2452 | npm-package-arg: 11.0.2 2453 | npm-packlist: 8.0.2 2454 | npm-pick-manifest: 9.0.0 2455 | npm-registry-fetch: 16.2.1 2456 | proc-log: 4.0.0 2457 | promise-retry: 2.0.1 2458 | read-package-json: 7.0.0 2459 | read-package-json-fast: 3.0.2 2460 | sigstore: 2.3.0 2461 | ssri: 10.0.5 2462 | tar: 6.2.1 2463 | transitivePeerDependencies: 2464 | - bluebird 2465 | - supports-color 2466 | dev: true 2467 | 2468 | /parse5-htmlparser2-tree-adapter@7.0.0: 2469 | resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} 2470 | dependencies: 2471 | domhandler: 5.0.3 2472 | parse5: 7.1.2 2473 | dev: false 2474 | 2475 | /parse5@7.1.2: 2476 | resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} 2477 | dependencies: 2478 | entities: 4.5.0 2479 | dev: false 2480 | 2481 | /patch-console@2.0.0: 2482 | resolution: {integrity: sha512-0YNdUceMdaQwoKce1gatDScmMo5pu/tfABfnzEqeG0gtTmd7mh/WcwgUjtAeOU7N8nFFlbQBnFK2gXW5fGvmMA==} 2483 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2484 | dev: true 2485 | 2486 | /path-exists@4.0.0: 2487 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 2488 | engines: {node: '>=8'} 2489 | dev: true 2490 | 2491 | /path-is-absolute@1.0.1: 2492 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 2493 | engines: {node: '>=0.10.0'} 2494 | dev: true 2495 | 2496 | /path-key@3.1.1: 2497 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 2498 | engines: {node: '>=8'} 2499 | dev: true 2500 | 2501 | /path-parse@1.0.7: 2502 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 2503 | dev: true 2504 | 2505 | /path-scurry@1.10.2: 2506 | resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} 2507 | engines: {node: '>=16 || 14 >=14.17'} 2508 | dependencies: 2509 | lru-cache: 10.2.0 2510 | minipass: 7.0.4 2511 | dev: true 2512 | 2513 | /path-to-regexp@6.2.2: 2514 | resolution: {integrity: sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==} 2515 | dev: true 2516 | 2517 | /picomatch@2.3.1: 2518 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 2519 | engines: {node: '>=8.6'} 2520 | dev: true 2521 | 2522 | /pirates@4.0.6: 2523 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} 2524 | engines: {node: '>= 6'} 2525 | dev: true 2526 | 2527 | /polite-json@4.0.1: 2528 | resolution: {integrity: sha512-8LI5ZeCPBEb4uBbcYKNVwk4jgqNx1yHReWoW4H4uUihWlSqZsUDfSITrRhjliuPgxsNPFhNSudGO2Zu4cbWinQ==} 2529 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 2530 | dev: true 2531 | 2532 | /prettier@3.2.5: 2533 | resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} 2534 | engines: {node: '>=14'} 2535 | hasBin: true 2536 | dev: true 2537 | 2538 | /printable-characters@1.0.42: 2539 | resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} 2540 | dev: true 2541 | 2542 | /prismjs-terminal@1.2.3: 2543 | resolution: {integrity: sha512-xc0zuJ5FMqvW+DpiRkvxURlz98DdfDsZcFHdO699+oL+ykbFfgI7O4VDEgUyc07BSL2NHl3zdb8m/tZ/aaqUrw==} 2544 | engines: {node: '>=16'} 2545 | dependencies: 2546 | chalk: 5.3.0 2547 | prismjs: 1.29.0 2548 | string-length: 6.0.0 2549 | dev: true 2550 | 2551 | /prismjs@1.29.0: 2552 | resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} 2553 | engines: {node: '>=6'} 2554 | dev: true 2555 | 2556 | /proc-log@3.0.0: 2557 | resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} 2558 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 2559 | dev: true 2560 | 2561 | /proc-log@4.0.0: 2562 | resolution: {integrity: sha512-v1lzmYxGDs2+OZnmYtYZK3DG8zogt+CbQ+o/iqqtTfpyCmGWulCTEQu5GIbivf7OjgIkH2Nr8SH8UxAGugZNbg==} 2563 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 2564 | dev: true 2565 | 2566 | /process-on-spawn@1.0.0: 2567 | resolution: {integrity: sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==} 2568 | engines: {node: '>=8'} 2569 | dependencies: 2570 | fromentries: 1.3.2 2571 | dev: true 2572 | 2573 | /promise-inflight@1.0.1: 2574 | resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} 2575 | peerDependencies: 2576 | bluebird: '*' 2577 | peerDependenciesMeta: 2578 | bluebird: 2579 | optional: true 2580 | dev: true 2581 | 2582 | /promise-retry@2.0.1: 2583 | resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} 2584 | engines: {node: '>=10'} 2585 | dependencies: 2586 | err-code: 2.0.3 2587 | retry: 0.12.0 2588 | dev: true 2589 | 2590 | /prop-types@15.8.1: 2591 | resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} 2592 | dependencies: 2593 | loose-envify: 1.4.0 2594 | object-assign: 4.1.1 2595 | react-is: 16.13.1 2596 | dev: true 2597 | 2598 | /react-dom@18.2.0(react@16.14.0): 2599 | resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} 2600 | peerDependencies: 2601 | react: ^18.2.0 2602 | dependencies: 2603 | loose-envify: 1.4.0 2604 | react: 16.14.0 2605 | scheduler: 0.23.0 2606 | dev: true 2607 | 2608 | /react-element-to-jsx-string@15.0.0(react-dom@18.2.0)(react@16.14.0): 2609 | resolution: {integrity: sha512-UDg4lXB6BzlobN60P8fHWVPX3Kyw8ORrTeBtClmIlGdkOOE+GYQSFvmEU5iLLpwp/6v42DINwNcwOhOLfQ//FQ==} 2610 | peerDependencies: 2611 | react: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0 2612 | react-dom: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0 2613 | dependencies: 2614 | '@base2/pretty-print-object': 1.0.1 2615 | is-plain-object: 5.0.0 2616 | react: 16.14.0 2617 | react-dom: 18.2.0(react@16.14.0) 2618 | react-is: 18.1.0 2619 | dev: true 2620 | 2621 | /react-element-to-jsx-string@15.0.0(react-dom@18.2.0)(react@18.2.0): 2622 | resolution: {integrity: sha512-UDg4lXB6BzlobN60P8fHWVPX3Kyw8ORrTeBtClmIlGdkOOE+GYQSFvmEU5iLLpwp/6v42DINwNcwOhOLfQ//FQ==} 2623 | peerDependencies: 2624 | react: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0 2625 | react-dom: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0 2626 | dependencies: 2627 | '@base2/pretty-print-object': 1.0.1 2628 | is-plain-object: 5.0.0 2629 | react: 18.2.0 2630 | react-dom: 18.2.0(react@16.14.0) 2631 | react-is: 18.1.0 2632 | dev: true 2633 | 2634 | /react-is@16.13.1: 2635 | resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} 2636 | dev: true 2637 | 2638 | /react-is@18.1.0: 2639 | resolution: {integrity: sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==} 2640 | dev: true 2641 | 2642 | /react-reconciler@0.29.0(react@18.2.0): 2643 | resolution: {integrity: sha512-wa0fGj7Zht1EYMRhKWwoo1H9GApxYLBuhoAuXN0TlltESAjDssB+Apf0T/DngVqaMyPypDmabL37vw/2aRM98Q==} 2644 | engines: {node: '>=0.10.0'} 2645 | peerDependencies: 2646 | react: ^18.2.0 2647 | dependencies: 2648 | loose-envify: 1.4.0 2649 | react: 18.2.0 2650 | scheduler: 0.23.0 2651 | dev: true 2652 | 2653 | /react@16.14.0: 2654 | resolution: {integrity: sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==} 2655 | engines: {node: '>=0.10.0'} 2656 | dependencies: 2657 | loose-envify: 1.4.0 2658 | object-assign: 4.1.1 2659 | prop-types: 15.8.1 2660 | dev: true 2661 | 2662 | /react@18.2.0: 2663 | resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} 2664 | engines: {node: '>=0.10.0'} 2665 | dependencies: 2666 | loose-envify: 1.4.0 2667 | dev: true 2668 | 2669 | /read-package-json-fast@3.0.2: 2670 | resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==} 2671 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 2672 | dependencies: 2673 | json-parse-even-better-errors: 3.0.1 2674 | npm-normalize-package-bin: 3.0.1 2675 | dev: true 2676 | 2677 | /read-package-json@7.0.0: 2678 | resolution: {integrity: sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg==} 2679 | engines: {node: ^16.14.0 || >=18.0.0} 2680 | dependencies: 2681 | glob: 10.3.12 2682 | json-parse-even-better-errors: 3.0.1 2683 | normalize-package-data: 6.0.0 2684 | npm-normalize-package-bin: 3.0.1 2685 | dev: true 2686 | 2687 | /readable-stream@3.6.2: 2688 | resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} 2689 | engines: {node: '>= 6'} 2690 | dependencies: 2691 | inherits: 2.0.4 2692 | string_decoder: 1.3.0 2693 | util-deprecate: 1.0.2 2694 | dev: false 2695 | 2696 | /readdirp@3.6.0: 2697 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 2698 | engines: {node: '>=8.10.0'} 2699 | dependencies: 2700 | picomatch: 2.3.1 2701 | dev: true 2702 | 2703 | /regenerator-runtime@0.10.5: 2704 | resolution: {integrity: sha512-02YopEIhAgiBHWeoTiA8aitHDt8z6w+rQqNuIftlM+ZtvSl/brTouaU7DW6GO/cHtvxJvS4Hwv2ibKdxIRi24w==} 2705 | dev: false 2706 | 2707 | /regenerator-runtime@0.11.1: 2708 | resolution: {integrity: sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==} 2709 | dev: false 2710 | 2711 | /require-directory@2.1.1: 2712 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} 2713 | engines: {node: '>=0.10.0'} 2714 | dev: true 2715 | 2716 | /resolve-import@1.4.5: 2717 | resolution: {integrity: sha512-HXb4YqODuuXT7Icq1Z++0g2JmhgbUHSs3VT2xR83gqvAPUikYT2Xk+562KHQgiaNkbBOlPddYrDLsC44qQggzw==} 2718 | engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} 2719 | dependencies: 2720 | glob: 10.3.12 2721 | walk-up-path: 3.0.1 2722 | dev: true 2723 | 2724 | /resolve.exports@2.0.2: 2725 | resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} 2726 | engines: {node: '>=10'} 2727 | dev: true 2728 | 2729 | /resolve@1.22.8: 2730 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 2731 | hasBin: true 2732 | dependencies: 2733 | is-core-module: 2.13.1 2734 | path-parse: 1.0.7 2735 | supports-preserve-symlinks-flag: 1.0.0 2736 | dev: true 2737 | 2738 | /restore-cursor@4.0.0: 2739 | resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} 2740 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2741 | dependencies: 2742 | onetime: 5.1.2 2743 | signal-exit: 3.0.7 2744 | dev: true 2745 | 2746 | /retry@0.12.0: 2747 | resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} 2748 | engines: {node: '>= 4'} 2749 | dev: true 2750 | 2751 | /rimraf@3.0.2: 2752 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 2753 | hasBin: true 2754 | dependencies: 2755 | glob: 7.2.3 2756 | dev: true 2757 | 2758 | /rimraf@5.0.5: 2759 | resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} 2760 | engines: {node: '>=14'} 2761 | hasBin: true 2762 | dependencies: 2763 | glob: 10.3.12 2764 | dev: true 2765 | 2766 | /rollup-plugin-inject@3.0.2: 2767 | resolution: {integrity: sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==} 2768 | deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject. 2769 | dependencies: 2770 | estree-walker: 0.6.1 2771 | magic-string: 0.25.9 2772 | rollup-pluginutils: 2.8.2 2773 | dev: true 2774 | 2775 | /rollup-plugin-node-polyfills@0.2.1: 2776 | resolution: {integrity: sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==} 2777 | dependencies: 2778 | rollup-plugin-inject: 3.0.2 2779 | dev: true 2780 | 2781 | /rollup-pluginutils@2.8.2: 2782 | resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} 2783 | dependencies: 2784 | estree-walker: 0.6.1 2785 | dev: true 2786 | 2787 | /safe-buffer@5.2.1: 2788 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 2789 | dev: false 2790 | 2791 | /safe-stable-stringify@2.4.3: 2792 | resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} 2793 | engines: {node: '>=10'} 2794 | dev: true 2795 | 2796 | /safer-buffer@2.1.2: 2797 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 2798 | requiresBuild: true 2799 | dev: true 2800 | optional: true 2801 | 2802 | /scheduler@0.23.0: 2803 | resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} 2804 | dependencies: 2805 | loose-envify: 1.4.0 2806 | dev: true 2807 | 2808 | /selfsigned@2.4.1: 2809 | resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} 2810 | engines: {node: '>=10'} 2811 | dependencies: 2812 | '@types/node-forge': 1.3.11 2813 | node-forge: 1.3.1 2814 | dev: true 2815 | 2816 | /semver@7.6.0: 2817 | resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} 2818 | engines: {node: '>=10'} 2819 | hasBin: true 2820 | dependencies: 2821 | lru-cache: 6.0.0 2822 | dev: true 2823 | 2824 | /shebang-command@2.0.0: 2825 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 2826 | engines: {node: '>=8'} 2827 | dependencies: 2828 | shebang-regex: 3.0.0 2829 | dev: true 2830 | 2831 | /shebang-regex@3.0.0: 2832 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 2833 | engines: {node: '>=8'} 2834 | dev: true 2835 | 2836 | /signal-exit@3.0.7: 2837 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 2838 | dev: true 2839 | 2840 | /signal-exit@4.1.0: 2841 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 2842 | engines: {node: '>=14'} 2843 | dev: true 2844 | 2845 | /sigstore@2.3.0: 2846 | resolution: {integrity: sha512-q+o8L2ebiWD1AxD17eglf1pFrl9jtW7FHa0ygqY6EKvibK8JHyq9Z26v9MZXeDiw+RbfOJ9j2v70M10Hd6E06A==} 2847 | engines: {node: ^16.14.0 || >=18.0.0} 2848 | dependencies: 2849 | '@sigstore/bundle': 2.3.1 2850 | '@sigstore/core': 1.1.0 2851 | '@sigstore/protobuf-specs': 0.3.1 2852 | '@sigstore/sign': 2.3.0 2853 | '@sigstore/tuf': 2.3.2 2854 | '@sigstore/verify': 1.2.0 2855 | transitivePeerDependencies: 2856 | - supports-color 2857 | dev: true 2858 | 2859 | /slice-ansi@5.0.0: 2860 | resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} 2861 | engines: {node: '>=12'} 2862 | dependencies: 2863 | ansi-styles: 6.2.1 2864 | is-fullwidth-code-point: 4.0.0 2865 | dev: true 2866 | 2867 | /slice-ansi@6.0.0: 2868 | resolution: {integrity: sha512-6bn4hRfkTvDfUoEQYkERg0BVF1D0vrX9HEkMl08uDiNWvVvjylLHvZFZWkDo6wjT8tUctbYl1nCOuE66ZTaUtA==} 2869 | engines: {node: '>=14.16'} 2870 | dependencies: 2871 | ansi-styles: 6.2.1 2872 | is-fullwidth-code-point: 4.0.0 2873 | dev: true 2874 | 2875 | /smart-buffer@4.2.0: 2876 | resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} 2877 | engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} 2878 | dev: true 2879 | 2880 | /socks-proxy-agent@8.0.3: 2881 | resolution: {integrity: sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==} 2882 | engines: {node: '>= 14'} 2883 | dependencies: 2884 | agent-base: 7.1.1 2885 | debug: 4.3.4 2886 | socks: 2.8.3 2887 | transitivePeerDependencies: 2888 | - supports-color 2889 | dev: true 2890 | 2891 | /socks@2.8.3: 2892 | resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==} 2893 | engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} 2894 | dependencies: 2895 | ip-address: 9.0.5 2896 | smart-buffer: 4.2.0 2897 | dev: true 2898 | 2899 | /source-map@0.6.1: 2900 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 2901 | engines: {node: '>=0.10.0'} 2902 | dev: true 2903 | 2904 | /sourcemap-codec@1.4.8: 2905 | resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} 2906 | deprecated: Please use @jridgewell/sourcemap-codec instead 2907 | dev: true 2908 | 2909 | /spdx-correct@3.2.0: 2910 | resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} 2911 | dependencies: 2912 | spdx-expression-parse: 3.0.1 2913 | spdx-license-ids: 3.0.17 2914 | dev: true 2915 | 2916 | /spdx-exceptions@2.5.0: 2917 | resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} 2918 | dev: true 2919 | 2920 | /spdx-expression-parse@3.0.1: 2921 | resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} 2922 | dependencies: 2923 | spdx-exceptions: 2.5.0 2924 | spdx-license-ids: 3.0.17 2925 | dev: true 2926 | 2927 | /spdx-license-ids@3.0.17: 2928 | resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} 2929 | dev: true 2930 | 2931 | /sprintf-js@1.1.3: 2932 | resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} 2933 | dev: true 2934 | 2935 | /ssri@10.0.5: 2936 | resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==} 2937 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 2938 | dependencies: 2939 | minipass: 7.0.4 2940 | dev: true 2941 | 2942 | /stack-utils@2.0.6: 2943 | resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} 2944 | engines: {node: '>=10'} 2945 | dependencies: 2946 | escape-string-regexp: 2.0.0 2947 | dev: true 2948 | 2949 | /stacktracey@2.1.8: 2950 | resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} 2951 | dependencies: 2952 | as-table: 1.0.55 2953 | get-source: 2.0.12 2954 | dev: true 2955 | 2956 | /stoppable@1.1.0: 2957 | resolution: {integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==} 2958 | engines: {node: '>=4', npm: '>=6'} 2959 | dev: true 2960 | 2961 | /string-length@6.0.0: 2962 | resolution: {integrity: sha512-1U361pxZHEQ+FeSjzqRpV+cu2vTzYeWeafXFLykiFlv4Vc0n3njgU8HrMbyik5uwm77naWMuVG8fhEF+Ovb1Kg==} 2963 | engines: {node: '>=16'} 2964 | dependencies: 2965 | strip-ansi: 7.1.0 2966 | dev: true 2967 | 2968 | /string-width@4.2.3: 2969 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 2970 | engines: {node: '>=8'} 2971 | dependencies: 2972 | emoji-regex: 8.0.0 2973 | is-fullwidth-code-point: 3.0.0 2974 | strip-ansi: 6.0.1 2975 | dev: true 2976 | 2977 | /string-width@5.1.2: 2978 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 2979 | engines: {node: '>=12'} 2980 | dependencies: 2981 | eastasianwidth: 0.2.0 2982 | emoji-regex: 9.2.2 2983 | strip-ansi: 7.1.0 2984 | dev: true 2985 | 2986 | /string_decoder@1.3.0: 2987 | resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} 2988 | dependencies: 2989 | safe-buffer: 5.2.1 2990 | dev: false 2991 | 2992 | /strip-ansi@6.0.1: 2993 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 2994 | engines: {node: '>=8'} 2995 | dependencies: 2996 | ansi-regex: 5.0.1 2997 | dev: true 2998 | 2999 | /strip-ansi@7.1.0: 3000 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 3001 | engines: {node: '>=12'} 3002 | dependencies: 3003 | ansi-regex: 6.0.1 3004 | dev: true 3005 | 3006 | /supports-color@7.2.0: 3007 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 3008 | engines: {node: '>=8'} 3009 | dependencies: 3010 | has-flag: 4.0.0 3011 | dev: true 3012 | 3013 | /supports-preserve-symlinks-flag@1.0.0: 3014 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 3015 | engines: {node: '>= 0.4'} 3016 | dev: true 3017 | 3018 | /sync-content@1.0.2: 3019 | resolution: {integrity: sha512-znd3rYiiSxU3WteWyS9a6FXkTA/Wjk8WQsOyzHbineeL837dLn3DA4MRhsIX3qGcxDMH6+uuFV4axztssk7wEQ==} 3020 | engines: {node: '>=14'} 3021 | hasBin: true 3022 | dependencies: 3023 | glob: 10.3.12 3024 | mkdirp: 3.0.1 3025 | path-scurry: 1.10.2 3026 | rimraf: 5.0.5 3027 | dev: true 3028 | 3029 | /tap-parser@15.3.2: 3030 | resolution: {integrity: sha512-uvauHuQqAMwfeFVxNpFXhvnWLVL0sthnHk4TxRM3cUy6+dejO9fatoKR7YejbMu4+2/1nR6UQE9+eUcX3PUmsA==} 3031 | engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} 3032 | hasBin: true 3033 | dependencies: 3034 | events-to-array: 2.0.3 3035 | tap-yaml: 2.2.2 3036 | dev: true 3037 | 3038 | /tap-yaml@2.2.2: 3039 | resolution: {integrity: sha512-MWG4OpAKtNoNVjCz/BqlDJiwTM99tiHRhHPS4iGOe1ZS0CgM4jSFH92lthSFvvy4EdDjQZDV7uYqUFlU9JuNhw==} 3040 | engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} 3041 | dependencies: 3042 | yaml: 2.4.1 3043 | yaml-types: 0.3.0(yaml@2.4.1) 3044 | dev: true 3045 | 3046 | /tap@18.7.2(@types/node@20.12.7)(react-dom@18.2.0)(react@16.14.0)(typescript@5.4.5): 3047 | resolution: {integrity: sha512-cGrB6laenHPOj3VaExITM54VjM9bR6fd0DK6Co9cm0/eJBog8XL05MX8TLxVPZSJtCu3nUESGjFhpATE8obxcw==} 3048 | engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} 3049 | hasBin: true 3050 | dependencies: 3051 | '@tapjs/after': 1.1.20(@tapjs/core@1.5.2) 3052 | '@tapjs/after-each': 1.1.20(@tapjs/core@1.5.2) 3053 | '@tapjs/asserts': 1.1.20(@tapjs/core@1.5.2)(react-dom@18.2.0)(react@16.14.0) 3054 | '@tapjs/before': 1.1.20(@tapjs/core@1.5.2) 3055 | '@tapjs/before-each': 1.1.20(@tapjs/core@1.5.2) 3056 | '@tapjs/core': 1.5.2(@types/node@20.12.7)(react-dom@18.2.0)(react@16.14.0) 3057 | '@tapjs/filter': 1.2.20(@tapjs/core@1.5.2) 3058 | '@tapjs/fixture': 1.2.20(@tapjs/core@1.5.2) 3059 | '@tapjs/intercept': 1.2.20(@tapjs/core@1.5.2) 3060 | '@tapjs/mock': 1.3.2(@tapjs/core@1.5.2) 3061 | '@tapjs/node-serialize': 1.3.2(@tapjs/core@1.5.2) 3062 | '@tapjs/run': 1.5.2(@tapjs/core@1.5.2)(@types/node@20.12.7)(react-dom@18.2.0)(react@16.14.0) 3063 | '@tapjs/snapshot': 1.2.20(@tapjs/core@1.5.2)(react-dom@18.2.0)(react@16.14.0) 3064 | '@tapjs/spawn': 1.1.20(@tapjs/core@1.5.2) 3065 | '@tapjs/stdin': 1.1.20(@tapjs/core@1.5.2) 3066 | '@tapjs/test': 1.4.2(@tapjs/core@1.5.2)(@types/node@20.12.7)(react-dom@18.2.0)(react@16.14.0) 3067 | '@tapjs/typescript': 1.4.2(@tapjs/core@1.5.2)(@types/node@20.12.7)(typescript@5.4.5) 3068 | '@tapjs/worker': 1.1.20(@tapjs/core@1.5.2) 3069 | resolve-import: 1.4.5 3070 | transitivePeerDependencies: 3071 | - '@swc/core' 3072 | - '@swc/wasm' 3073 | - '@types/node' 3074 | - '@types/react' 3075 | - bluebird 3076 | - bufferutil 3077 | - react 3078 | - react-devtools-core 3079 | - react-dom 3080 | - supports-color 3081 | - typescript 3082 | - utf-8-validate 3083 | dev: true 3084 | 3085 | /tar@6.2.1: 3086 | resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} 3087 | engines: {node: '>=10'} 3088 | dependencies: 3089 | chownr: 2.0.0 3090 | fs-minipass: 2.1.0 3091 | minipass: 5.0.0 3092 | minizlib: 2.1.2 3093 | mkdirp: 1.0.4 3094 | yallist: 4.0.0 3095 | dev: true 3096 | 3097 | /tcompare@6.4.6(react-dom@18.2.0)(react@16.14.0): 3098 | resolution: {integrity: sha512-sxvgCgO2GAIWHibnK4zLvvi9GHd/ZlR9DOUJ4ufwvNtkdKE2I9MNwJUwzYvOmGrJXMcfhhw0CDBb+6j0ia+I7A==} 3099 | engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} 3100 | dependencies: 3101 | diff: 5.2.0 3102 | react-element-to-jsx-string: 15.0.0(react-dom@18.2.0)(react@16.14.0) 3103 | transitivePeerDependencies: 3104 | - react 3105 | - react-dom 3106 | dev: true 3107 | 3108 | /tcompare@6.4.6(react-dom@18.2.0)(react@18.2.0): 3109 | resolution: {integrity: sha512-sxvgCgO2GAIWHibnK4zLvvi9GHd/ZlR9DOUJ4ufwvNtkdKE2I9MNwJUwzYvOmGrJXMcfhhw0CDBb+6j0ia+I7A==} 3110 | engines: {node: 16 >=16.17.0 || 18 >= 18.6.0 || >=20} 3111 | dependencies: 3112 | diff: 5.2.0 3113 | react-element-to-jsx-string: 15.0.0(react-dom@18.2.0)(react@18.2.0) 3114 | transitivePeerDependencies: 3115 | - react 3116 | - react-dom 3117 | dev: true 3118 | 3119 | /test-exclude@6.0.0: 3120 | resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} 3121 | engines: {node: '>=8'} 3122 | dependencies: 3123 | '@istanbuljs/schema': 0.1.3 3124 | glob: 7.2.3 3125 | minimatch: 3.1.2 3126 | dev: true 3127 | 3128 | /to-regex-range@5.0.1: 3129 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 3130 | engines: {node: '>=8.0'} 3131 | dependencies: 3132 | is-number: 7.0.0 3133 | dev: true 3134 | 3135 | /trivial-deferred@2.0.0: 3136 | resolution: {integrity: sha512-iGbM7X2slv9ORDVj2y2FFUq3cP/ypbtu2nQ8S38ufjL0glBABvmR9pTdsib1XtS2LUhhLMbelaBUaf/s5J3dSw==} 3137 | engines: {node: '>= 8'} 3138 | dev: true 3139 | 3140 | /ts-json-schema-generator@1.5.1: 3141 | resolution: {integrity: sha512-apX5qG2+NA66j7b4AJm8q/DpdTeOsjfh7A3LpKsUiil0FepkNwtN28zYgjrsiiya2/OPhsr/PSjX5FUYg79rCg==} 3142 | engines: {node: '>=10.0.0'} 3143 | hasBin: true 3144 | dependencies: 3145 | '@types/json-schema': 7.0.15 3146 | commander: 12.0.0 3147 | glob: 8.1.0 3148 | json5: 2.2.3 3149 | normalize-path: 3.0.0 3150 | safe-stable-stringify: 2.4.3 3151 | typescript: 5.4.5 3152 | dev: true 3153 | 3154 | /tshy@1.14.0: 3155 | resolution: {integrity: sha512-YiUujgi4Jb+t2I48LwSRzHkBpniH9WjjktNozn+nlsGmVemKSjDNY7EwBRPvPCr5zAC/3ITAYWH9Z7kUinGSrw==} 3156 | engines: {node: 16 >=16.17 || 18 >=18.15.0 || >=20.6.1} 3157 | hasBin: true 3158 | dependencies: 3159 | chalk: 5.3.0 3160 | chokidar: 3.6.0 3161 | foreground-child: 3.1.1 3162 | minimatch: 9.0.4 3163 | mkdirp: 3.0.1 3164 | polite-json: 4.0.1 3165 | resolve-import: 1.4.5 3166 | rimraf: 5.0.5 3167 | sync-content: 1.0.2 3168 | typescript: 5.4.5 3169 | walk-up-path: 3.0.1 3170 | dev: true 3171 | 3172 | /tslib@2.6.2: 3173 | resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} 3174 | dev: true 3175 | 3176 | /tuf-js@2.2.0: 3177 | resolution: {integrity: sha512-ZSDngmP1z6zw+FIkIBjvOp/II/mIub/O7Pp12j1WNsiCpg5R5wAc//i555bBQsE44O94btLt0xM/Zr2LQjwdCg==} 3178 | engines: {node: ^16.14.0 || >=18.0.0} 3179 | dependencies: 3180 | '@tufjs/models': 2.0.0 3181 | debug: 4.3.4 3182 | make-fetch-happen: 13.0.0 3183 | transitivePeerDependencies: 3184 | - supports-color 3185 | dev: true 3186 | 3187 | /type-fest@0.12.0: 3188 | resolution: {integrity: sha512-53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg==} 3189 | engines: {node: '>=10'} 3190 | dev: true 3191 | 3192 | /typescript@5.2.2: 3193 | resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} 3194 | engines: {node: '>=14.17'} 3195 | hasBin: true 3196 | dev: true 3197 | 3198 | /typescript@5.4.5: 3199 | resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} 3200 | engines: {node: '>=14.17'} 3201 | hasBin: true 3202 | dev: true 3203 | 3204 | /undici-types@5.26.5: 3205 | resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} 3206 | dev: true 3207 | 3208 | /undici@5.28.4: 3209 | resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} 3210 | engines: {node: '>=14.0'} 3211 | dependencies: 3212 | '@fastify/busboy': 2.1.1 3213 | dev: true 3214 | 3215 | /unique-filename@3.0.0: 3216 | resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} 3217 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 3218 | dependencies: 3219 | unique-slug: 4.0.0 3220 | dev: true 3221 | 3222 | /unique-slug@4.0.0: 3223 | resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} 3224 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 3225 | dependencies: 3226 | imurmurhash: 0.1.4 3227 | dev: true 3228 | 3229 | /util-deprecate@1.0.2: 3230 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 3231 | dev: false 3232 | 3233 | /uuid@8.3.2: 3234 | resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} 3235 | hasBin: true 3236 | dev: true 3237 | 3238 | /v8-compile-cache-lib@3.0.1: 3239 | resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} 3240 | dev: true 3241 | 3242 | /v8-to-istanbul@9.2.0: 3243 | resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} 3244 | engines: {node: '>=10.12.0'} 3245 | dependencies: 3246 | '@jridgewell/trace-mapping': 0.3.25 3247 | '@types/istanbul-lib-coverage': 2.0.6 3248 | convert-source-map: 2.0.0 3249 | dev: true 3250 | 3251 | /validate-npm-package-license@3.0.4: 3252 | resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} 3253 | dependencies: 3254 | spdx-correct: 3.2.0 3255 | spdx-expression-parse: 3.0.1 3256 | dev: true 3257 | 3258 | /validate-npm-package-name@5.0.0: 3259 | resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==} 3260 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 3261 | dependencies: 3262 | builtins: 5.1.0 3263 | dev: true 3264 | 3265 | /walk-up-path@3.0.1: 3266 | resolution: {integrity: sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==} 3267 | dev: true 3268 | 3269 | /web-auto-extractor@1.0.17: 3270 | resolution: {integrity: sha512-V+ekXwPSD8c2FqZWpdxJ7P2fvlDbNiEgSdrp+pP5RTsUHOb4gzvfbdmG5ymd1b/6gtQ6seNPesqjZQ1DCMxIww==} 3271 | engines: {node: '>=4.4'} 3272 | dependencies: 3273 | babel-polyfill: 6.26.0 3274 | cheerio: 0.22.0 3275 | htmlparser2: 3.10.1 3276 | dev: false 3277 | 3278 | /which@2.0.2: 3279 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 3280 | engines: {node: '>= 8'} 3281 | hasBin: true 3282 | dependencies: 3283 | isexe: 2.0.0 3284 | dev: true 3285 | 3286 | /which@4.0.0: 3287 | resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} 3288 | engines: {node: ^16.13.0 || >=18.0.0} 3289 | hasBin: true 3290 | dependencies: 3291 | isexe: 3.1.1 3292 | dev: true 3293 | 3294 | /widest-line@4.0.1: 3295 | resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} 3296 | engines: {node: '>=12'} 3297 | dependencies: 3298 | string-width: 5.1.2 3299 | dev: true 3300 | 3301 | /workerd@1.20240405.0: 3302 | resolution: {integrity: sha512-AWrOSBh4Ll7sBWHuh0aywm8hDkKqsZmcwnDB0PVGszWZM5mndNBI5iJ/8haXVpdoyqkJQEVdhET9JDi4yU8tRg==} 3303 | engines: {node: '>=16'} 3304 | hasBin: true 3305 | requiresBuild: true 3306 | optionalDependencies: 3307 | '@cloudflare/workerd-darwin-64': 1.20240405.0 3308 | '@cloudflare/workerd-darwin-arm64': 1.20240405.0 3309 | '@cloudflare/workerd-linux-64': 1.20240405.0 3310 | '@cloudflare/workerd-linux-arm64': 1.20240405.0 3311 | '@cloudflare/workerd-windows-64': 1.20240405.0 3312 | dev: true 3313 | 3314 | /wrangler@3.50.0(@cloudflare/workers-types@4.20240405.0): 3315 | resolution: {integrity: sha512-JlLuch+6DtaC5HGp8YD9Au++XvMv34g3ySdlB5SyPbaObELi8P9ZID5vgyf9AA75djzxL7cuNOk1YdKCJEuq0w==} 3316 | engines: {node: '>=16.17.0'} 3317 | hasBin: true 3318 | peerDependencies: 3319 | '@cloudflare/workers-types': ^4.20240405.0 3320 | peerDependenciesMeta: 3321 | '@cloudflare/workers-types': 3322 | optional: true 3323 | dependencies: 3324 | '@cloudflare/kv-asset-handler': 0.3.1 3325 | '@cloudflare/workers-types': 4.20240405.0 3326 | '@esbuild-plugins/node-globals-polyfill': 0.2.3(esbuild@0.17.19) 3327 | '@esbuild-plugins/node-modules-polyfill': 0.2.2(esbuild@0.17.19) 3328 | blake3-wasm: 2.1.5 3329 | chokidar: 3.6.0 3330 | esbuild: 0.17.19 3331 | miniflare: 3.20240405.1 3332 | nanoid: 3.3.7 3333 | path-to-regexp: 6.2.2 3334 | resolve: 1.22.8 3335 | resolve.exports: 2.0.2 3336 | selfsigned: 2.4.1 3337 | source-map: 0.6.1 3338 | ts-json-schema-generator: 1.5.1 3339 | xxhash-wasm: 1.0.2 3340 | optionalDependencies: 3341 | fsevents: 2.3.3 3342 | transitivePeerDependencies: 3343 | - bufferutil 3344 | - supports-color 3345 | - utf-8-validate 3346 | dev: true 3347 | 3348 | /wrap-ansi@7.0.0: 3349 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 3350 | engines: {node: '>=10'} 3351 | dependencies: 3352 | ansi-styles: 4.3.0 3353 | string-width: 4.2.3 3354 | strip-ansi: 6.0.1 3355 | dev: true 3356 | 3357 | /wrap-ansi@8.1.0: 3358 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 3359 | engines: {node: '>=12'} 3360 | dependencies: 3361 | ansi-styles: 6.2.1 3362 | string-width: 5.1.2 3363 | strip-ansi: 7.1.0 3364 | dev: true 3365 | 3366 | /wrappy@1.0.2: 3367 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 3368 | dev: true 3369 | 3370 | /ws@8.16.0: 3371 | resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} 3372 | engines: {node: '>=10.0.0'} 3373 | peerDependencies: 3374 | bufferutil: ^4.0.1 3375 | utf-8-validate: '>=5.0.2' 3376 | peerDependenciesMeta: 3377 | bufferutil: 3378 | optional: true 3379 | utf-8-validate: 3380 | optional: true 3381 | dev: true 3382 | 3383 | /xxhash-wasm@1.0.2: 3384 | resolution: {integrity: sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==} 3385 | dev: true 3386 | 3387 | /y18n@5.0.8: 3388 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 3389 | engines: {node: '>=10'} 3390 | dev: true 3391 | 3392 | /yallist@4.0.0: 3393 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 3394 | dev: true 3395 | 3396 | /yaml-types@0.3.0(yaml@2.4.1): 3397 | resolution: {integrity: sha512-i9RxAO/LZBiE0NJUy9pbN5jFz5EasYDImzRkj8Y81kkInTi1laia3P3K/wlMKzOxFQutZip8TejvQP/DwgbU7A==} 3398 | engines: {node: '>= 16', npm: '>= 7'} 3399 | peerDependencies: 3400 | yaml: ^2.3.0 3401 | dependencies: 3402 | yaml: 2.4.1 3403 | dev: true 3404 | 3405 | /yaml@2.4.1: 3406 | resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} 3407 | engines: {node: '>= 14'} 3408 | hasBin: true 3409 | dev: true 3410 | 3411 | /yargs-parser@21.1.1: 3412 | resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} 3413 | engines: {node: '>=12'} 3414 | dev: true 3415 | 3416 | /yargs@17.7.2: 3417 | resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} 3418 | engines: {node: '>=12'} 3419 | dependencies: 3420 | cliui: 8.0.1 3421 | escalade: 3.1.2 3422 | get-caller-file: 2.0.5 3423 | require-directory: 2.1.1 3424 | string-width: 4.2.3 3425 | y18n: 5.0.8 3426 | yargs-parser: 21.1.1 3427 | dev: true 3428 | 3429 | /yocto-queue@0.1.0: 3430 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 3431 | engines: {node: '>=10'} 3432 | dev: true 3433 | 3434 | /yoga-wasm-web@0.3.3: 3435 | resolution: {integrity: sha512-N+d4UJSJbt/R3wqY7Coqs5pcV0aUj2j9IaQ3rNj9bVCLld8tTGKRa2USARjnvZJWVx1NDmQev8EknoczaOQDOA==} 3436 | dev: true 3437 | 3438 | /youch@3.3.3: 3439 | resolution: {integrity: sha512-qSFXUk3UZBLfggAW3dJKg0BMblG5biqSF8M34E06o5CSsZtH92u9Hqmj2RzGiHDi64fhe83+4tENFP2DB6t6ZA==} 3440 | dependencies: 3441 | cookie: 0.5.0 3442 | mustache: 4.2.0 3443 | stacktracey: 2.1.8 3444 | dev: true 3445 | 3446 | /zod@3.22.4: 3447 | resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} 3448 | dev: true 3449 | -------------------------------------------------------------------------------- /sources/__snapshots__/goodreads.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`GoodReads 1`] = ` 4 | Object { 5 | "goodreads": Array [ 6 | "25489625", 7 | ], 8 | } 9 | `; 10 | -------------------------------------------------------------------------------- /sources/__snapshots__/openlibrary.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`OpenLibrary 1`] = ` 4 | Object { 5 | "alibris_id": Array [ 6 | "9780812993547", 7 | ], 8 | "amazon": Array [ 9 | "0812993543", 10 | ], 11 | "goodreads": Array [ 12 | "25489625", 13 | ], 14 | "isbn10": Array [ 15 | "0812993543", 16 | ], 17 | "isbn13": Array [ 18 | "9780812993547", 19 | ], 20 | "lccn": Array [ 21 | "2015008120", 22 | ], 23 | "oclc": Array [ 24 | "923007023", 25 | ], 26 | "openlibrary": Array [ 27 | "OL25773328M", 28 | ], 29 | } 30 | `; 31 | -------------------------------------------------------------------------------- /sources/__snapshots__/worldcat.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`WorldCat 1`] = ` 4 | Object { 5 | "isbn10": Array [ 6 | "0812993543", 7 | ], 8 | "isbn13": Array [ 9 | "9780812993547", 10 | ], 11 | "oclc": undefined, 12 | } 13 | `; 14 | -------------------------------------------------------------------------------- /sources/goodreads.js: -------------------------------------------------------------------------------- 1 | import cheerio from "cheerio"; 2 | const GOODREADS_KEY = "H0A4fmIW7WF2btmo1ACpw"; 3 | const getXML = async (url) => 4 | cheerio.load(await fetch(url).then((r) => r.text()), { xmlMode: true }); 5 | 6 | // https://www.goodreads.com/api/index#book.isbn_to_id 7 | export default class GoodReads { 8 | constructor(ctx, base = "https://www.goodreads.com/book") { 9 | this.ctx = ctx.prefix("goodreads"); 10 | this.base = base; 11 | } 12 | async ISBN(isbn) { 13 | try { 14 | this.ctx.time(`request`); 15 | const body = await fetch( 16 | `${this.base}/isbn_to_id/${isbn}?key=${GOODREADS_KEY}`, 17 | ).then((r) => r.text()); 18 | this.ctx.timeEnd(`request`); 19 | return { 20 | goodreads: [body], 21 | permalinks: [`https://goodreads.com/book/show/${body}`], 22 | ...(await this.GoodReads(body)), 23 | }; 24 | } catch (e) { 25 | console.log(e); 26 | this.ctx.log("NOT FOUND"); 27 | } 28 | } 29 | async GoodReads(goodreads) { 30 | const url = `${this.base}/show/${goodreads}.json?key=${GOODREADS_KEY}`; 31 | this.ctx.time(`request`); 32 | this.ctx.log(`url=${url}`); 33 | const res = await getXML(url); 34 | this.ctx.timeEnd(`request`); 35 | const ids = {}; 36 | ["isbn", "isbn13", "asin"].forEach((type) => { 37 | const value = res(`GoodreadsResponse > book > ${type}`).text(); 38 | if (value) ids[type] = [value]; 39 | }); 40 | ids.title = res(`GoodreadsResponse > book > title`).text(); 41 | ids.authors = res(`GoodreadsResponse > book > authors > author > name`) 42 | .map((i, el) => cheerio(el).text()) 43 | .get(); 44 | return ids; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /sources/goodreads.test.js: -------------------------------------------------------------------------------- 1 | const GoodReads = require("./goodreads"); 2 | const Context = require("../").Context; 3 | const test = require("tap").test; 4 | 5 | test("GoodReads", async t => { 6 | const ctx = new Context(); 7 | const gr = new GoodReads(ctx); 8 | t.matchSnapshot(await gr.ISBN("0812993543")); 9 | }); 10 | -------------------------------------------------------------------------------- /sources/index.js: -------------------------------------------------------------------------------- 1 | import GoodReads from "./goodreads.js"; 2 | import OpenLibrary from "./openlibrary.js"; 3 | import WorldCat from "./worldcat.js"; 4 | 5 | export default function makeSources(ctx) { 6 | return { 7 | goodReads: new GoodReads(ctx), 8 | openLibrary: new OpenLibrary(ctx), 9 | worldCat: new WorldCat(ctx), 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /sources/openlibrary.js: -------------------------------------------------------------------------------- 1 | // https://openlibrary.org/dev/docs/api/books 2 | // 3 | // OpenLibrary, somewhat confusingly, doesn't return a 404 for unknown resources. 4 | // Instead, it just returns {}. 5 | // 6 | // TODO: handle 10 vs 13 7 | export default class OpenLibrary { 8 | constructor( 9 | ctx, 10 | base = "https://openlibrary.org/api/books?format=json&jscmd=data&bibkeys=", 11 | ) { 12 | this.ctx = ctx.prefix("openlibrary"); 13 | this.base = base; 14 | } 15 | async getType(type, val) { 16 | try { 17 | const url = `${this.base}${type}:${val}`; 18 | let before = Date.now(); 19 | this.ctx.log(`url=${url}`); 20 | this.ctx.time("request"); 21 | let body = await fetch(url).then((r) => r.json()); 22 | this.ctx.timeEnd("request"); 23 | 24 | if (!Object.keys(body).length) { 25 | this.ctx.log("NOT FOUND"); 26 | return null; 27 | } 28 | const { 29 | identifiers: { isbn_13, isbn_10, lccn, oclc, openlibrary }, 30 | title, 31 | authors, 32 | } = body[`${type}:${val}`]; 33 | 34 | return { 35 | isbn: [].concat(isbn_13).concat(isbn_10), 36 | lccn, 37 | title, 38 | authors: authors.map((a) => a.name), 39 | oclc, 40 | openlibrary, 41 | permalinks: [`https://openlibrary.org/books/${openlibrary}`], 42 | }; 43 | } catch (e) { 44 | this.ctx.log(`ERROR`); 45 | return null; 46 | } 47 | } 48 | async ISBN(isbn) { 49 | return this.getType("ISBN", isbn); 50 | } 51 | async LCCN(lccn) { 52 | return this.getType("LCCN", lccn); 53 | } 54 | async OLID(openlibrary) { 55 | return this.getType("OLID", openlibrary); 56 | } 57 | async OCLC(oclc) { 58 | return this.getType("OCLC", oclc); 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /sources/openlibrary.test.js: -------------------------------------------------------------------------------- 1 | const OpenLibrary = require("./openlibrary"); 2 | const Context = require("../").Context; 3 | const test = require("tap").test; 4 | 5 | test("OpenLibrary", async t => { 6 | const ctx = new Context(); 7 | const ol = new OpenLibrary(ctx); 8 | t.matchSnapshot(await ol.ISBN("0812993543")); 9 | }); 10 | -------------------------------------------------------------------------------- /sources/worldcat.js: -------------------------------------------------------------------------------- 1 | import wae from "web-auto-extractor"; 2 | 3 | function get(obj, path) { 4 | for (let p of path) obj = obj && obj[p]; 5 | return obj; 6 | } 7 | 8 | // TODO: handle 10 vs 13 9 | export default class WorldCat { 10 | constructor(ctx, base = "https://www.worldcat.org") { 11 | this.base = base; 12 | this.ctx = ctx.prefix("worldcat"); 13 | } 14 | async OCLC(oclc) { 15 | this.ctx.time("request"); 16 | const url = `http://experiment.worldcat.org/oclc/${oclc}.jsonld`; 17 | this.ctx.log(`url=${url}`); 18 | let body; 19 | try { 20 | body = await fetch(url).then((r) => r.json()); 21 | } catch (e) { 22 | this.ctx.log(`NOT FOUND`); 23 | return undefined; 24 | } 25 | this.ctx.timeEnd(`request`); 26 | const isbn = body["@graph"].find( 27 | (o) => o["@type"] === "schema:ProductModel", 28 | ); 29 | const book = body["@graph"].find((o) => 30 | [].concat(o["@type"]).includes("schema:CreativeWork"), 31 | ); 32 | if (isbn) { 33 | return { 34 | isbn: isbn.isbn, 35 | permalinks: [isbn["@id"], book["@id"]], 36 | }; 37 | } 38 | } 39 | async ISBN(id) { 40 | this.ctx.time("request"); 41 | const url = `${this.base}/isbn/${id}`; 42 | this.ctx.log(`url=${url}`); 43 | let body; 44 | try { 45 | body = await fetch(url).then((r) => r.text()); 46 | } catch (e) { 47 | this.ctx.log(`NOT FOUND`); 48 | return undefined; 49 | } 50 | const microdata = wae().parse(body); 51 | this.ctx.timeEnd(`request`); 52 | const title = get(microdata, ["rdfa", "Book", 0, "schema:name"]); 53 | const isbn = get(microdata, ["rdfa", "ProductModel", 0, "schema:isbn"]); 54 | const oclc = get(microdata, ["rdfa", "CreativeWork", 0, "library:oclcnum"]); 55 | return { 56 | isbn, 57 | title, 58 | oclc, 59 | permalinks: [url, `https://worldcat.org/oclc/${oclc}`], 60 | }; 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /sources/worldcat.test.js: -------------------------------------------------------------------------------- 1 | const WorldCat = require("./worldcat"); 2 | const Context = require("../").Context; 3 | const test = require("tap").test; 4 | 5 | test("WorldCat", async t => { 6 | const ctx = new Context(); 7 | const wc = new WorldCat(ctx); 8 | t.matchSnapshot(await wc.ISBN("0812993543")); 9 | }); 10 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Welcome to Cloudflare Workers! This is your first worker. 3 | * 4 | * - Run `wrangler dev src/index.ts` in your terminal to start a development server 5 | * - Open a browser tab at http://localhost:8787/ to see your worker in action 6 | * - Run `wrangler publish src/index.ts --name my-worker` to publish your worker 7 | * 8 | * Learn more at https://developers.cloudflare.com/workers/ 9 | */ 10 | 11 | export interface Env { 12 | // Example binding to KV. Learn more at https://developers.cloudflare.com/workers/runtime-apis/kv/ 13 | // MY_KV_NAMESPACE: KVNamespace; 14 | // 15 | // Example binding to Durable Object. Learn more at https://developers.cloudflare.com/workers/runtime-apis/durable-objects/ 16 | // MY_DURABLE_OBJECT: DurableObjectNamespace; 17 | // 18 | // Example binding to R2. Learn more at https://developers.cloudflare.com/workers/runtime-apis/r2/ 19 | // MY_BUCKET: R2Bucket; 20 | } 21 | 22 | const { guess, collapseResults, methods } = require("../api.js"); 23 | const Context = require("../context.js"); 24 | const makeSources = require("../sources/index.js"); 25 | 26 | export default { 27 | async fetch( 28 | req: Request, 29 | env: Env, 30 | _ctx: ExecutionContext 31 | ): Promise { 32 | const u = new URL(req.url); 33 | const id = u.searchParams.get("id"); 34 | const type = u.searchParams.get("type"); 35 | if (!id || !type) { 36 | return Response.json({ error: "Bad request" }); 37 | } 38 | const ctx = new Context(); 39 | const sources = makeSources(ctx); 40 | const method = methods.find(method => method.id === type); 41 | if (method) { 42 | ctx.time(`overall id=${id} type=${type}`); 43 | const results = await method.resolve(ctx, id, sources); 44 | ctx.timeEnd(`overall id=${id} type=${type}`); 45 | const { ids, permalinks } = collapseResults(results); 46 | return Response.json({ 47 | messages: ctx.getMessages(), 48 | results: ids, 49 | permalinks 50 | }); 51 | } 52 | if (type === "guess") { 53 | return Response.json(await guess(ctx, id)); 54 | } 55 | } 56 | }; 57 | -------------------------------------------------------------------------------- /tap-snapshots/sources-goodreads.test.js-TAP.test.js: -------------------------------------------------------------------------------- 1 | /* IMPORTANT 2 | * This snapshot file is auto-generated, but designed for humans. 3 | * It should be checked into source control and tracked carefully. 4 | * Re-generate by setting TAP_SNAPSHOT=1 and running tests. 5 | * Make sure to inspect the output below. Do not ignore changes! 6 | */ 7 | "use strict"; 8 | exports[`sources/goodreads.test.js TAP GoodReads > undefined 1`] = ` 9 | { goodreads: [ '25489625' ] } 10 | `; 11 | -------------------------------------------------------------------------------- /tap-snapshots/sources-openlibrary.test.js-TAP.test.js: -------------------------------------------------------------------------------- 1 | /* IMPORTANT 2 | * This snapshot file is auto-generated, but designed for humans. 3 | * It should be checked into source control and tracked carefully. 4 | * Re-generate by setting TAP_SNAPSHOT=1 and running tests. 5 | * Make sure to inspect the output below. Do not ignore changes! 6 | */ 7 | "use strict"; 8 | exports[`sources/openlibrary.test.js TAP OpenLibrary > undefined 1`] = ` 9 | { alibris_id: [ '9780812993547' ], 10 | lccn: [ '2015008120' ], 11 | openlibrary: [ 'OL25773328M' ], 12 | amazon: [ '0812993543' ], 13 | oclc: [ '923007023' ], 14 | goodreads: [ '25489625' ], 15 | isbn: [ '0812993543' ], 16 | isbn13: [ '9780812993547' ] } 17 | `; 18 | -------------------------------------------------------------------------------- /tap-snapshots/sources-worldcat.test.js-TAP.test.js: -------------------------------------------------------------------------------- 1 | /* IMPORTANT 2 | * This snapshot file is auto-generated, but designed for humans. 3 | * It should be checked into source control and tracked carefully. 4 | * Re-generate by setting TAP_SNAPSHOT=1 and running tests. 5 | * Make sure to inspect the output below. Do not ignore changes! 6 | */ 7 | "use strict"; 8 | exports[`sources/worldcat.test.js TAP WorldCat > undefined 1`] = ` 9 | { isbn: [ '0812993543' ], 10 | isbn13: [ '9780812993547' ], 11 | oclc: undefined } 12 | `; 13 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | /* Visit https://aka.ms/tsconfig.json to read more about this file */ 4 | 5 | /* Projects */ 6 | // "incremental": true, /* Enable incremental compilation */ 7 | // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ 8 | // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ 9 | // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ 10 | // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ 11 | // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ 12 | 13 | /* Language and Environment */ 14 | "target": "es2021" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, 15 | "lib": [ 16 | "es2021" 17 | ] /* Specify a set of bundled library declaration files that describe the target runtime environment. */, 18 | "jsx": "react" /* Specify what JSX code is generated. */, 19 | // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ 20 | // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ 21 | // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ 22 | // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ 23 | // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ 24 | // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ 25 | // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ 26 | // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ 27 | 28 | /* Modules */ 29 | "module": "es2022" /* Specify what module code is generated. */, 30 | // "rootDir": "./", /* Specify the root folder within your source files. */ 31 | "moduleResolution": "node" /* Specify how TypeScript looks up a file from a given module specifier. */, 32 | // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ 33 | // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ 34 | // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ 35 | // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ 36 | "types": [ 37 | "@cloudflare/workers-types" 38 | ] /* Specify type package names to be included without being referenced in a source file. */, 39 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ 40 | "resolveJsonModule": true /* Enable importing .json files */, 41 | // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ 42 | 43 | /* JavaScript Support */ 44 | "allowJs": true /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */, 45 | "checkJs": false /* Enable error reporting in type-checked JavaScript files. */, 46 | // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ 47 | 48 | /* Emit */ 49 | // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ 50 | // "declarationMap": true, /* Create sourcemaps for d.ts files. */ 51 | // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ 52 | // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ 53 | // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ 54 | // "outDir": "./", /* Specify an output folder for all emitted files. */ 55 | // "removeComments": true, /* Disable emitting comments. */ 56 | "noEmit": true /* Disable emitting files from a compilation. */, 57 | // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ 58 | // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ 59 | // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ 60 | // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ 61 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ 62 | // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ 63 | // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ 64 | // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ 65 | // "newLine": "crlf", /* Set the newline character for emitting files. */ 66 | // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ 67 | // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ 68 | // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ 69 | // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ 70 | // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ 71 | // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ 72 | 73 | /* Interop Constraints */ 74 | "isolatedModules": true /* Ensure that each file can be safely transpiled without relying on other imports. */, 75 | "allowSyntheticDefaultImports": true /* Allow 'import x from y' when a module doesn't have a default export. */, 76 | // "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */, 77 | // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ 78 | "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, 79 | 80 | /* Type Checking */ 81 | "strict": true /* Enable all strict type-checking options. */, 82 | // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ 83 | // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ 84 | // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ 85 | // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ 86 | // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ 87 | // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ 88 | // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ 89 | // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ 90 | // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ 91 | // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ 92 | // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ 93 | // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ 94 | // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ 95 | // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ 96 | // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ 97 | // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ 98 | // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ 99 | // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ 100 | 101 | /* Completeness */ 102 | // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ 103 | "skipLibCheck": true /* Skip type checking all .d.ts files. */ 104 | } 105 | } 106 | -------------------------------------------------------------------------------- /wrangler.toml: -------------------------------------------------------------------------------- 1 | name = "bookish-api" 2 | main = "src/index.ts" 3 | compatibility_date = "2024-04-14" 4 | node_compat = true 5 | --------------------------------------------------------------------------------