├── .DS_Store ├── .changeset ├── README.md └── config.json ├── .gitignore ├── CHANGELOG.md ├── README.md ├── package.json ├── pnpm-lock.yaml ├── src ├── index.d.ts ├── index.js └── index.ts └── tsconfig.json /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfonsusac/nextjs-better-unstable-cache/e4529adb84f675c103ea65a8969a06a36db4ae20/.DS_Store -------------------------------------------------------------------------------- /.changeset/README.md: -------------------------------------------------------------------------------- 1 | # Changesets 2 | 3 | Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works 4 | with multi-package repos, or single-package repos to help you version and publish your code. You can 5 | find the full documentation for it [in our repository](https://github.com/changesets/changesets) 6 | 7 | We have a quick list of common questions to get you started engaging with this project in 8 | [our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) 9 | 10 | 11 | -------------------------------------------------------------------------------- /.changeset/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://unpkg.com/@changesets/config@2.3.1/schema.json", 3 | "changelog": "@changesets/cli/changelog", 4 | "commit": false, 5 | "fixed": [], 6 | "linked": [], 7 | "access": "restricted", 8 | "baseBranch": "main", 9 | "updateInternalDependencies": "patch", 10 | "ignore": [] 11 | } 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | /lib -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # nextjs-better-unstable-cache 2 | 3 | ## 1.1.0 4 | 5 | ### Minor Changes 6 | 7 | - Warn usage in client and lack of cache function, also option to suppress warinng. 8 | 9 | ## 1.0.0 10 | 11 | ### Major Changes 12 | 13 | - Changed peer dependency of the project and publish the source code too for transparency 14 | 15 | Breaking change: It might break some things regarding the node_modules and how it behaves when imported 16 | 17 | Why: So that I dont have to update next version everytime they updates and so that you guys can see the source code in the IDE and adapt accordingly 18 | 19 | How: Just check everything works perfectly when installed. 20 | 21 | - Also fixed readme.md 22 | 23 | ## 0.1.12 24 | 25 | ### Patch Changes 26 | 27 | - improve readme 28 | 29 | ## 0.1.11 30 | 31 | ### Patch Changes 32 | 33 | - Fixed and improve readme 34 | 35 | ## 0.1.10 36 | 37 | ### Patch Changes 38 | 39 | - Fixed typo in readme 40 | 41 | ## 0.1.9 42 | 43 | ### Patch Changes 44 | 45 | - Patch:previous change not applied 46 | 47 | ## 0.1.8 48 | 49 | ### Patch Changes 50 | 51 | - Fixed typo in docs (#2) and added usage examples in docs (thanks @andrewkucz, @RuthwikReddy09) 52 | - Fixed logging for memoization. (#1) got miss and hit mixed up 53 | 54 | ## 0.1.7 55 | 56 | ### Patch Changes 57 | 58 | - fix return type 59 | 60 | ## 0.1.6 61 | 62 | ### Patch Changes 63 | 64 | - include libs 65 | 66 | ## 0.1.5 67 | 68 | ### Patch Changes 69 | 70 | - Improve Logging: recolor and prints param 71 | 72 | ## 0.1.4 73 | 74 | ### Patch Changes 75 | 76 | - Fixed return type 77 | 78 | ## 0.1.3 79 | 80 | ### Patch Changes 81 | 82 | - fixed out folder not in npm 83 | 84 | ## 0.1.2 85 | 86 | ### Patch Changes 87 | 88 | - Changed readme 89 | 90 | ## 0.1.1 91 | 92 | ### Patch Changes 93 | 94 | - Removed output folder from git 95 | 96 | ## 0.1.0 97 | 98 | ### Minor Changes 99 | 100 | - Added callback to retrieve parameters 101 | - Removed package-lock.json 102 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Better Unstable Cache 2 | 3 | Current implementation of `unstable_cache()` is only deduped within a scope. 4 | This version dedupe `unstable_cache()` using React's `cache()` while also 5 | providing useful logs. Note that all instability from unstable_cache() is still 6 | carries to this library. 7 | 8 | ``` 9 | npm i nextjs-better-unstable-cache 10 | ``` 11 | ```javascript 12 | import { memoize } from 'nextjs-better-unstable-cache' 13 | 14 | const cachedFn = memoize( 15 | async (slug) => await db.query('...', slug), 16 | { 17 | // Enable persistance between requests, default true 18 | persist: true, 19 | // Invalidation period, default Infinity 20 | duration: 60, 21 | // For next's revalidateTags() purposes. 22 | revalidateTags: (slug) => ['articles', slug], 23 | // Extra cache identifier to make cache unique from others 24 | additionalCacheKey: ['articles'], 25 | 26 | // Enable logs to see timer or whether it triggers ODR or BR 27 | log:['dedupe' , 'datacache' , 'verbose'], 28 | // Add custom string for logging 29 | logID: "Query Data" 30 | 31 | // Suppress warning if used in client side or 32 | // . without caching function 33 | suppressWarnings: true // default fals 34 | 35 | // `revalidateTags` and `additionalCache` can also receive 36 | // callbacks to retrieve the slug from the primary function 37 | } 38 | ) 39 | 40 | ``` 41 | 42 | ## Usage 43 | ```javascript 44 | // app/article/[slug]/data.js 45 | import getPageDetails from "@/lib/data" 46 | import { memoize } from 'nextjs-better-unstable-cache' 47 | 48 | export const getCachedPageDetails = memoize( 49 | getPageDetails, 50 | { 51 | duration: 3600 52 | revalidateTags: (slug) => ['articles', slug], 53 | log: ['datacache', 'verbose'], 54 | } 55 | ) 56 | 57 | // --- 58 | // app/article/[slug]/page.jsx 59 | import { getCachedPageDetails } from './data' 60 | 61 | export default async function Page({ params }) { 62 | const res = await getCachedPageDetails(params.slug) // 3600 BGR + ODR 63 | return ( 64 | ... 65 | ) 66 | } 67 | 68 | ``` 69 | Read more about the gotchas of unstable_cache [here](https://alfonsusardani.notion.site/unstable_cache-from-next-cache-f300b3184d6a472ea5282543d50b9f02) 70 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nextjs-better-unstable-cache", 3 | "version": "1.1.0", 4 | "description": "Improved version of unstable_cache with deduping and logging", 5 | "keywords": [ 6 | "nextjs", 7 | "next", 8 | "cache", 9 | "unstable_cache", 10 | "data cache", 11 | "memoization" 12 | ], 13 | "homepage": "https://github.com/alfonsusac/nextjs-better-unstable-cache", 14 | "bugs": { 15 | "url": "https://github.com/alfonsusac/nextjs-better-unstable-cache/issues" 16 | }, 17 | "author": { 18 | "name": "alfonsusac", 19 | "url": "https://github.com/alfonsusac" 20 | }, 21 | "license": "MIT", 22 | "main": "src/index.js", 23 | "types": "src/index.d.ts", 24 | "files": [ 25 | "src/**/*" 26 | ], 27 | "type": "module", 28 | "dependencies": { 29 | "chalk": "^4.1.2" 30 | }, 31 | "devDependencies": { 32 | "@changesets/cli": "^2.27.1", 33 | "@types/react": "^18.2.74", 34 | "typescript": "^5.4.4" 35 | }, 36 | "scripts": { 37 | "build": "tsc" 38 | }, 39 | "peerDependencies": { 40 | "next": ">=13.4", 41 | "react": ">=18.2.0" 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | dependencies: 8 | chalk: 9 | specifier: ^4.1.2 10 | version: 4.1.2 11 | next: 12 | specifier: '>=13.4' 13 | version: 14.1.4(react-dom@18.2.0)(react@18.2.0) 14 | react: 15 | specifier: '>=18.2.0' 16 | version: 18.2.0 17 | 18 | devDependencies: 19 | '@changesets/cli': 20 | specifier: ^2.27.1 21 | version: 2.27.1 22 | '@types/react': 23 | specifier: ^18.2.74 24 | version: 18.2.74 25 | typescript: 26 | specifier: ^5.4.4 27 | version: 5.4.4 28 | 29 | packages: 30 | 31 | /@babel/code-frame@7.24.2: 32 | resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} 33 | engines: {node: '>=6.9.0'} 34 | dependencies: 35 | '@babel/highlight': 7.24.2 36 | picocolors: 1.0.0 37 | dev: true 38 | 39 | /@babel/helper-validator-identifier@7.22.20: 40 | resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} 41 | engines: {node: '>=6.9.0'} 42 | dev: true 43 | 44 | /@babel/highlight@7.24.2: 45 | resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} 46 | engines: {node: '>=6.9.0'} 47 | dependencies: 48 | '@babel/helper-validator-identifier': 7.22.20 49 | chalk: 2.4.2 50 | js-tokens: 4.0.0 51 | picocolors: 1.0.0 52 | dev: true 53 | 54 | /@babel/runtime@7.24.4: 55 | resolution: {integrity: sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==} 56 | engines: {node: '>=6.9.0'} 57 | dependencies: 58 | regenerator-runtime: 0.14.1 59 | dev: true 60 | 61 | /@changesets/apply-release-plan@7.0.0: 62 | resolution: {integrity: sha512-vfi69JR416qC9hWmFGSxj7N6wA5J222XNBmezSVATPWDVPIF7gkd4d8CpbEbXmRWbVrkoli3oerGS6dcL/BGsQ==} 63 | dependencies: 64 | '@babel/runtime': 7.24.4 65 | '@changesets/config': 3.0.0 66 | '@changesets/get-version-range-type': 0.4.0 67 | '@changesets/git': 3.0.0 68 | '@changesets/types': 6.0.0 69 | '@manypkg/get-packages': 1.1.3 70 | detect-indent: 6.1.0 71 | fs-extra: 7.0.1 72 | lodash.startcase: 4.4.0 73 | outdent: 0.5.0 74 | prettier: 2.8.8 75 | resolve-from: 5.0.0 76 | semver: 7.6.0 77 | dev: true 78 | 79 | /@changesets/assemble-release-plan@6.0.0: 80 | resolution: {integrity: sha512-4QG7NuisAjisbW4hkLCmGW2lRYdPrKzro+fCtZaILX+3zdUELSvYjpL4GTv0E4aM9Mef3PuIQp89VmHJ4y2bfw==} 81 | dependencies: 82 | '@babel/runtime': 7.24.4 83 | '@changesets/errors': 0.2.0 84 | '@changesets/get-dependents-graph': 2.0.0 85 | '@changesets/types': 6.0.0 86 | '@manypkg/get-packages': 1.1.3 87 | semver: 7.6.0 88 | dev: true 89 | 90 | /@changesets/changelog-git@0.2.0: 91 | resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==} 92 | dependencies: 93 | '@changesets/types': 6.0.0 94 | dev: true 95 | 96 | /@changesets/cli@2.27.1: 97 | resolution: {integrity: sha512-iJ91xlvRnnrJnELTp4eJJEOPjgpF3NOh4qeQehM6Ugiz9gJPRZ2t+TsXun6E3AMN4hScZKjqVXl0TX+C7AB3ZQ==} 98 | hasBin: true 99 | dependencies: 100 | '@babel/runtime': 7.24.4 101 | '@changesets/apply-release-plan': 7.0.0 102 | '@changesets/assemble-release-plan': 6.0.0 103 | '@changesets/changelog-git': 0.2.0 104 | '@changesets/config': 3.0.0 105 | '@changesets/errors': 0.2.0 106 | '@changesets/get-dependents-graph': 2.0.0 107 | '@changesets/get-release-plan': 4.0.0 108 | '@changesets/git': 3.0.0 109 | '@changesets/logger': 0.1.0 110 | '@changesets/pre': 2.0.0 111 | '@changesets/read': 0.6.0 112 | '@changesets/types': 6.0.0 113 | '@changesets/write': 0.3.0 114 | '@manypkg/get-packages': 1.1.3 115 | '@types/semver': 7.5.8 116 | ansi-colors: 4.1.3 117 | chalk: 2.4.2 118 | ci-info: 3.9.0 119 | enquirer: 2.4.1 120 | external-editor: 3.1.0 121 | fs-extra: 7.0.1 122 | human-id: 1.0.2 123 | meow: 6.1.1 124 | outdent: 0.5.0 125 | p-limit: 2.3.0 126 | preferred-pm: 3.1.3 127 | resolve-from: 5.0.0 128 | semver: 7.6.0 129 | spawndamnit: 2.0.0 130 | term-size: 2.2.1 131 | tty-table: 4.2.3 132 | dev: true 133 | 134 | /@changesets/config@3.0.0: 135 | resolution: {integrity: sha512-o/rwLNnAo/+j9Yvw9mkBQOZySDYyOr/q+wptRLcAVGlU6djOeP9v1nlalbL9MFsobuBVQbZCTp+dIzdq+CLQUA==} 136 | dependencies: 137 | '@changesets/errors': 0.2.0 138 | '@changesets/get-dependents-graph': 2.0.0 139 | '@changesets/logger': 0.1.0 140 | '@changesets/types': 6.0.0 141 | '@manypkg/get-packages': 1.1.3 142 | fs-extra: 7.0.1 143 | micromatch: 4.0.5 144 | dev: true 145 | 146 | /@changesets/errors@0.2.0: 147 | resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} 148 | dependencies: 149 | extendable-error: 0.1.7 150 | dev: true 151 | 152 | /@changesets/get-dependents-graph@2.0.0: 153 | resolution: {integrity: sha512-cafUXponivK4vBgZ3yLu944mTvam06XEn2IZGjjKc0antpenkYANXiiE6GExV/yKdsCnE8dXVZ25yGqLYZmScA==} 154 | dependencies: 155 | '@changesets/types': 6.0.0 156 | '@manypkg/get-packages': 1.1.3 157 | chalk: 2.4.2 158 | fs-extra: 7.0.1 159 | semver: 7.6.0 160 | dev: true 161 | 162 | /@changesets/get-release-plan@4.0.0: 163 | resolution: {integrity: sha512-9L9xCUeD/Tb6L/oKmpm8nyzsOzhdNBBbt/ZNcjynbHC07WW4E1eX8NMGC5g5SbM5z/V+MOrYsJ4lRW41GCbg3w==} 164 | dependencies: 165 | '@babel/runtime': 7.24.4 166 | '@changesets/assemble-release-plan': 6.0.0 167 | '@changesets/config': 3.0.0 168 | '@changesets/pre': 2.0.0 169 | '@changesets/read': 0.6.0 170 | '@changesets/types': 6.0.0 171 | '@manypkg/get-packages': 1.1.3 172 | dev: true 173 | 174 | /@changesets/get-version-range-type@0.4.0: 175 | resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} 176 | dev: true 177 | 178 | /@changesets/git@3.0.0: 179 | resolution: {integrity: sha512-vvhnZDHe2eiBNRFHEgMiGd2CT+164dfYyrJDhwwxTVD/OW0FUD6G7+4DIx1dNwkwjHyzisxGAU96q0sVNBns0w==} 180 | dependencies: 181 | '@babel/runtime': 7.24.4 182 | '@changesets/errors': 0.2.0 183 | '@changesets/types': 6.0.0 184 | '@manypkg/get-packages': 1.1.3 185 | is-subdir: 1.2.0 186 | micromatch: 4.0.5 187 | spawndamnit: 2.0.0 188 | dev: true 189 | 190 | /@changesets/logger@0.1.0: 191 | resolution: {integrity: sha512-pBrJm4CQm9VqFVwWnSqKEfsS2ESnwqwH+xR7jETxIErZcfd1u2zBSqrHbRHR7xjhSgep9x2PSKFKY//FAshA3g==} 192 | dependencies: 193 | chalk: 2.4.2 194 | dev: true 195 | 196 | /@changesets/parse@0.4.0: 197 | resolution: {integrity: sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==} 198 | dependencies: 199 | '@changesets/types': 6.0.0 200 | js-yaml: 3.14.1 201 | dev: true 202 | 203 | /@changesets/pre@2.0.0: 204 | resolution: {integrity: sha512-HLTNYX/A4jZxc+Sq8D1AMBsv+1qD6rmmJtjsCJa/9MSRybdxh0mjbTvE6JYZQ/ZiQ0mMlDOlGPXTm9KLTU3jyw==} 205 | dependencies: 206 | '@babel/runtime': 7.24.4 207 | '@changesets/errors': 0.2.0 208 | '@changesets/types': 6.0.0 209 | '@manypkg/get-packages': 1.1.3 210 | fs-extra: 7.0.1 211 | dev: true 212 | 213 | /@changesets/read@0.6.0: 214 | resolution: {integrity: sha512-ZypqX8+/im1Fm98K4YcZtmLKgjs1kDQ5zHpc2U1qdtNBmZZfo/IBiG162RoP0CUF05tvp2y4IspH11PLnPxuuw==} 215 | dependencies: 216 | '@babel/runtime': 7.24.4 217 | '@changesets/git': 3.0.0 218 | '@changesets/logger': 0.1.0 219 | '@changesets/parse': 0.4.0 220 | '@changesets/types': 6.0.0 221 | chalk: 2.4.2 222 | fs-extra: 7.0.1 223 | p-filter: 2.1.0 224 | dev: true 225 | 226 | /@changesets/types@4.1.0: 227 | resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} 228 | dev: true 229 | 230 | /@changesets/types@6.0.0: 231 | resolution: {integrity: sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==} 232 | dev: true 233 | 234 | /@changesets/write@0.3.0: 235 | resolution: {integrity: sha512-slGLb21fxZVUYbyea+94uFiD6ntQW0M2hIKNznFizDhZPDgn2c/fv1UzzlW43RVzh1BEDuIqW6hzlJ1OflNmcw==} 236 | dependencies: 237 | '@babel/runtime': 7.24.4 238 | '@changesets/types': 6.0.0 239 | fs-extra: 7.0.1 240 | human-id: 1.0.2 241 | prettier: 2.8.8 242 | dev: true 243 | 244 | /@manypkg/find-root@1.1.0: 245 | resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} 246 | dependencies: 247 | '@babel/runtime': 7.24.4 248 | '@types/node': 12.20.55 249 | find-up: 4.1.0 250 | fs-extra: 8.1.0 251 | dev: true 252 | 253 | /@manypkg/get-packages@1.1.3: 254 | resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} 255 | dependencies: 256 | '@babel/runtime': 7.24.4 257 | '@changesets/types': 4.1.0 258 | '@manypkg/find-root': 1.1.0 259 | fs-extra: 8.1.0 260 | globby: 11.1.0 261 | read-yaml-file: 1.1.0 262 | dev: true 263 | 264 | /@next/env@14.1.4: 265 | resolution: {integrity: sha512-e7X7bbn3Z6DWnDi75UWn+REgAbLEqxI8Tq2pkFOFAMpWAWApz/YCUhtWMWn410h8Q2fYiYL7Yg5OlxMOCfFjJQ==} 266 | dev: false 267 | 268 | /@next/swc-darwin-arm64@14.1.4: 269 | resolution: {integrity: sha512-ubmUkbmW65nIAOmoxT1IROZdmmJMmdYvXIe8211send9ZYJu+SqxSnJM4TrPj9wmL6g9Atvj0S/2cFmMSS99jg==} 270 | engines: {node: '>= 10'} 271 | cpu: [arm64] 272 | os: [darwin] 273 | requiresBuild: true 274 | dev: false 275 | optional: true 276 | 277 | /@next/swc-darwin-x64@14.1.4: 278 | resolution: {integrity: sha512-b0Xo1ELj3u7IkZWAKcJPJEhBop117U78l70nfoQGo4xUSvv0PJSTaV4U9xQBLvZlnjsYkc8RwQN1HoH/oQmLlQ==} 279 | engines: {node: '>= 10'} 280 | cpu: [x64] 281 | os: [darwin] 282 | requiresBuild: true 283 | dev: false 284 | optional: true 285 | 286 | /@next/swc-linux-arm64-gnu@14.1.4: 287 | resolution: {integrity: sha512-457G0hcLrdYA/u1O2XkRMsDKId5VKe3uKPvrKVOyuARa6nXrdhJOOYU9hkKKyQTMru1B8qEP78IAhf/1XnVqKA==} 288 | engines: {node: '>= 10'} 289 | cpu: [arm64] 290 | os: [linux] 291 | requiresBuild: true 292 | dev: false 293 | optional: true 294 | 295 | /@next/swc-linux-arm64-musl@14.1.4: 296 | resolution: {integrity: sha512-l/kMG+z6MB+fKA9KdtyprkTQ1ihlJcBh66cf0HvqGP+rXBbOXX0dpJatjZbHeunvEHoBBS69GYQG5ry78JMy3g==} 297 | engines: {node: '>= 10'} 298 | cpu: [arm64] 299 | os: [linux] 300 | requiresBuild: true 301 | dev: false 302 | optional: true 303 | 304 | /@next/swc-linux-x64-gnu@14.1.4: 305 | resolution: {integrity: sha512-BapIFZ3ZRnvQ1uWbmqEGJuPT9cgLwvKtxhK/L2t4QYO7l+/DxXuIGjvp1x8rvfa/x1FFSsipERZK70pewbtJtw==} 306 | engines: {node: '>= 10'} 307 | cpu: [x64] 308 | os: [linux] 309 | requiresBuild: true 310 | dev: false 311 | optional: true 312 | 313 | /@next/swc-linux-x64-musl@14.1.4: 314 | resolution: {integrity: sha512-mqVxTwk4XuBl49qn2A5UmzFImoL1iLm0KQQwtdRJRKl21ylQwwGCxJtIYo2rbfkZHoSKlh/YgztY0qH3wG1xIg==} 315 | engines: {node: '>= 10'} 316 | cpu: [x64] 317 | os: [linux] 318 | requiresBuild: true 319 | dev: false 320 | optional: true 321 | 322 | /@next/swc-win32-arm64-msvc@14.1.4: 323 | resolution: {integrity: sha512-xzxF4ErcumXjO2Pvg/wVGrtr9QQJLk3IyQX1ddAC/fi6/5jZCZ9xpuL9Tzc4KPWMFq8GGWFVDMshZOdHGdkvag==} 324 | engines: {node: '>= 10'} 325 | cpu: [arm64] 326 | os: [win32] 327 | requiresBuild: true 328 | dev: false 329 | optional: true 330 | 331 | /@next/swc-win32-ia32-msvc@14.1.4: 332 | resolution: {integrity: sha512-WZiz8OdbkpRw6/IU/lredZWKKZopUMhcI2F+XiMAcPja0uZYdMTZQRoQ0WZcvinn9xZAidimE7tN9W5v9Yyfyw==} 333 | engines: {node: '>= 10'} 334 | cpu: [ia32] 335 | os: [win32] 336 | requiresBuild: true 337 | dev: false 338 | optional: true 339 | 340 | /@next/swc-win32-x64-msvc@14.1.4: 341 | resolution: {integrity: sha512-4Rto21sPfw555sZ/XNLqfxDUNeLhNYGO2dlPqsnuCg8N8a2a9u1ltqBOPQ4vj1Gf7eJC0W2hHG2eYUHuiXgY2w==} 342 | engines: {node: '>= 10'} 343 | cpu: [x64] 344 | os: [win32] 345 | requiresBuild: true 346 | dev: false 347 | optional: true 348 | 349 | /@nodelib/fs.scandir@2.1.5: 350 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 351 | engines: {node: '>= 8'} 352 | dependencies: 353 | '@nodelib/fs.stat': 2.0.5 354 | run-parallel: 1.2.0 355 | dev: true 356 | 357 | /@nodelib/fs.stat@2.0.5: 358 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 359 | engines: {node: '>= 8'} 360 | dev: true 361 | 362 | /@nodelib/fs.walk@1.2.8: 363 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 364 | engines: {node: '>= 8'} 365 | dependencies: 366 | '@nodelib/fs.scandir': 2.1.5 367 | fastq: 1.17.1 368 | dev: true 369 | 370 | /@swc/helpers@0.5.2: 371 | resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} 372 | dependencies: 373 | tslib: 2.6.2 374 | dev: false 375 | 376 | /@types/minimist@1.2.5: 377 | resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} 378 | dev: true 379 | 380 | /@types/node@12.20.55: 381 | resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} 382 | dev: true 383 | 384 | /@types/normalize-package-data@2.4.4: 385 | resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} 386 | dev: true 387 | 388 | /@types/prop-types@15.7.12: 389 | resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} 390 | dev: true 391 | 392 | /@types/react@18.2.74: 393 | resolution: {integrity: sha512-9AEqNZZyBx8OdZpxzQlaFEVCSFUM2YXJH46yPOiOpm078k6ZLOCcuAzGum/zK8YBwY+dbahVNbHrbgrAwIRlqw==} 394 | dependencies: 395 | '@types/prop-types': 15.7.12 396 | csstype: 3.1.3 397 | dev: true 398 | 399 | /@types/semver@7.5.8: 400 | resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} 401 | dev: true 402 | 403 | /ansi-colors@4.1.3: 404 | resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} 405 | engines: {node: '>=6'} 406 | dev: true 407 | 408 | /ansi-regex@5.0.1: 409 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 410 | engines: {node: '>=8'} 411 | dev: true 412 | 413 | /ansi-styles@3.2.1: 414 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 415 | engines: {node: '>=4'} 416 | dependencies: 417 | color-convert: 1.9.3 418 | dev: true 419 | 420 | /ansi-styles@4.3.0: 421 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 422 | engines: {node: '>=8'} 423 | dependencies: 424 | color-convert: 2.0.1 425 | 426 | /argparse@1.0.10: 427 | resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} 428 | dependencies: 429 | sprintf-js: 1.0.3 430 | dev: true 431 | 432 | /array-buffer-byte-length@1.0.1: 433 | resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} 434 | engines: {node: '>= 0.4'} 435 | dependencies: 436 | call-bind: 1.0.7 437 | is-array-buffer: 3.0.4 438 | dev: true 439 | 440 | /array-union@2.1.0: 441 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 442 | engines: {node: '>=8'} 443 | dev: true 444 | 445 | /array.prototype.flat@1.3.2: 446 | resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} 447 | engines: {node: '>= 0.4'} 448 | dependencies: 449 | call-bind: 1.0.7 450 | define-properties: 1.2.1 451 | es-abstract: 1.23.3 452 | es-shim-unscopables: 1.0.2 453 | dev: true 454 | 455 | /arraybuffer.prototype.slice@1.0.3: 456 | resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} 457 | engines: {node: '>= 0.4'} 458 | dependencies: 459 | array-buffer-byte-length: 1.0.1 460 | call-bind: 1.0.7 461 | define-properties: 1.2.1 462 | es-abstract: 1.23.3 463 | es-errors: 1.3.0 464 | get-intrinsic: 1.2.4 465 | is-array-buffer: 3.0.4 466 | is-shared-array-buffer: 1.0.3 467 | dev: true 468 | 469 | /arrify@1.0.1: 470 | resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} 471 | engines: {node: '>=0.10.0'} 472 | dev: true 473 | 474 | /available-typed-arrays@1.0.7: 475 | resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} 476 | engines: {node: '>= 0.4'} 477 | dependencies: 478 | possible-typed-array-names: 1.0.0 479 | dev: true 480 | 481 | /better-path-resolve@1.0.0: 482 | resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} 483 | engines: {node: '>=4'} 484 | dependencies: 485 | is-windows: 1.0.2 486 | dev: true 487 | 488 | /braces@3.0.2: 489 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 490 | engines: {node: '>=8'} 491 | dependencies: 492 | fill-range: 7.0.1 493 | dev: true 494 | 495 | /breakword@1.0.6: 496 | resolution: {integrity: sha512-yjxDAYyK/pBvws9H4xKYpLDpYKEH6CzrBPAuXq3x18I+c/2MkVtT3qAr7Oloi6Dss9qNhPVueAAVU1CSeNDIXw==} 497 | dependencies: 498 | wcwidth: 1.0.1 499 | dev: true 500 | 501 | /busboy@1.6.0: 502 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} 503 | engines: {node: '>=10.16.0'} 504 | dependencies: 505 | streamsearch: 1.1.0 506 | dev: false 507 | 508 | /call-bind@1.0.7: 509 | resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} 510 | engines: {node: '>= 0.4'} 511 | dependencies: 512 | es-define-property: 1.0.0 513 | es-errors: 1.3.0 514 | function-bind: 1.1.2 515 | get-intrinsic: 1.2.4 516 | set-function-length: 1.2.2 517 | dev: true 518 | 519 | /camelcase-keys@6.2.2: 520 | resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} 521 | engines: {node: '>=8'} 522 | dependencies: 523 | camelcase: 5.3.1 524 | map-obj: 4.3.0 525 | quick-lru: 4.0.1 526 | dev: true 527 | 528 | /camelcase@5.3.1: 529 | resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} 530 | engines: {node: '>=6'} 531 | dev: true 532 | 533 | /caniuse-lite@1.0.30001605: 534 | resolution: {integrity: sha512-nXwGlFWo34uliI9z3n6Qc0wZaf7zaZWA1CPZ169La5mV3I/gem7bst0vr5XQH5TJXZIMfDeZyOrZnSlVzKxxHQ==} 535 | dev: false 536 | 537 | /chalk@2.4.2: 538 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 539 | engines: {node: '>=4'} 540 | dependencies: 541 | ansi-styles: 3.2.1 542 | escape-string-regexp: 1.0.5 543 | supports-color: 5.5.0 544 | dev: true 545 | 546 | /chalk@4.1.2: 547 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 548 | engines: {node: '>=10'} 549 | dependencies: 550 | ansi-styles: 4.3.0 551 | supports-color: 7.2.0 552 | 553 | /chardet@0.7.0: 554 | resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} 555 | dev: true 556 | 557 | /ci-info@3.9.0: 558 | resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} 559 | engines: {node: '>=8'} 560 | dev: true 561 | 562 | /client-only@0.0.1: 563 | resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} 564 | dev: false 565 | 566 | /cliui@6.0.0: 567 | resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} 568 | dependencies: 569 | string-width: 4.2.3 570 | strip-ansi: 6.0.1 571 | wrap-ansi: 6.2.0 572 | dev: true 573 | 574 | /cliui@8.0.1: 575 | resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} 576 | engines: {node: '>=12'} 577 | dependencies: 578 | string-width: 4.2.3 579 | strip-ansi: 6.0.1 580 | wrap-ansi: 7.0.0 581 | dev: true 582 | 583 | /clone@1.0.4: 584 | resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} 585 | engines: {node: '>=0.8'} 586 | dev: true 587 | 588 | /color-convert@1.9.3: 589 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 590 | dependencies: 591 | color-name: 1.1.3 592 | dev: true 593 | 594 | /color-convert@2.0.1: 595 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 596 | engines: {node: '>=7.0.0'} 597 | dependencies: 598 | color-name: 1.1.4 599 | 600 | /color-name@1.1.3: 601 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 602 | dev: true 603 | 604 | /color-name@1.1.4: 605 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 606 | 607 | /cross-spawn@5.1.0: 608 | resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} 609 | dependencies: 610 | lru-cache: 4.1.5 611 | shebang-command: 1.2.0 612 | which: 1.3.1 613 | dev: true 614 | 615 | /csstype@3.1.3: 616 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 617 | dev: true 618 | 619 | /csv-generate@3.4.3: 620 | resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==} 621 | dev: true 622 | 623 | /csv-parse@4.16.3: 624 | resolution: {integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==} 625 | dev: true 626 | 627 | /csv-stringify@5.6.5: 628 | resolution: {integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==} 629 | dev: true 630 | 631 | /csv@5.5.3: 632 | resolution: {integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==} 633 | engines: {node: '>= 0.1.90'} 634 | dependencies: 635 | csv-generate: 3.4.3 636 | csv-parse: 4.16.3 637 | csv-stringify: 5.6.5 638 | stream-transform: 2.1.3 639 | dev: true 640 | 641 | /data-view-buffer@1.0.1: 642 | resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} 643 | engines: {node: '>= 0.4'} 644 | dependencies: 645 | call-bind: 1.0.7 646 | es-errors: 1.3.0 647 | is-data-view: 1.0.1 648 | dev: true 649 | 650 | /data-view-byte-length@1.0.1: 651 | resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} 652 | engines: {node: '>= 0.4'} 653 | dependencies: 654 | call-bind: 1.0.7 655 | es-errors: 1.3.0 656 | is-data-view: 1.0.1 657 | dev: true 658 | 659 | /data-view-byte-offset@1.0.0: 660 | resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} 661 | engines: {node: '>= 0.4'} 662 | dependencies: 663 | call-bind: 1.0.7 664 | es-errors: 1.3.0 665 | is-data-view: 1.0.1 666 | dev: true 667 | 668 | /decamelize-keys@1.1.1: 669 | resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} 670 | engines: {node: '>=0.10.0'} 671 | dependencies: 672 | decamelize: 1.2.0 673 | map-obj: 1.0.1 674 | dev: true 675 | 676 | /decamelize@1.2.0: 677 | resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} 678 | engines: {node: '>=0.10.0'} 679 | dev: true 680 | 681 | /defaults@1.0.4: 682 | resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} 683 | dependencies: 684 | clone: 1.0.4 685 | dev: true 686 | 687 | /define-data-property@1.1.4: 688 | resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} 689 | engines: {node: '>= 0.4'} 690 | dependencies: 691 | es-define-property: 1.0.0 692 | es-errors: 1.3.0 693 | gopd: 1.0.1 694 | dev: true 695 | 696 | /define-properties@1.2.1: 697 | resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} 698 | engines: {node: '>= 0.4'} 699 | dependencies: 700 | define-data-property: 1.1.4 701 | has-property-descriptors: 1.0.2 702 | object-keys: 1.1.1 703 | dev: true 704 | 705 | /detect-indent@6.1.0: 706 | resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} 707 | engines: {node: '>=8'} 708 | dev: true 709 | 710 | /dir-glob@3.0.1: 711 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 712 | engines: {node: '>=8'} 713 | dependencies: 714 | path-type: 4.0.0 715 | dev: true 716 | 717 | /emoji-regex@8.0.0: 718 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 719 | dev: true 720 | 721 | /enquirer@2.4.1: 722 | resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} 723 | engines: {node: '>=8.6'} 724 | dependencies: 725 | ansi-colors: 4.1.3 726 | strip-ansi: 6.0.1 727 | dev: true 728 | 729 | /error-ex@1.3.2: 730 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} 731 | dependencies: 732 | is-arrayish: 0.2.1 733 | dev: true 734 | 735 | /es-abstract@1.23.3: 736 | resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} 737 | engines: {node: '>= 0.4'} 738 | dependencies: 739 | array-buffer-byte-length: 1.0.1 740 | arraybuffer.prototype.slice: 1.0.3 741 | available-typed-arrays: 1.0.7 742 | call-bind: 1.0.7 743 | data-view-buffer: 1.0.1 744 | data-view-byte-length: 1.0.1 745 | data-view-byte-offset: 1.0.0 746 | es-define-property: 1.0.0 747 | es-errors: 1.3.0 748 | es-object-atoms: 1.0.0 749 | es-set-tostringtag: 2.0.3 750 | es-to-primitive: 1.2.1 751 | function.prototype.name: 1.1.6 752 | get-intrinsic: 1.2.4 753 | get-symbol-description: 1.0.2 754 | globalthis: 1.0.3 755 | gopd: 1.0.1 756 | has-property-descriptors: 1.0.2 757 | has-proto: 1.0.3 758 | has-symbols: 1.0.3 759 | hasown: 2.0.2 760 | internal-slot: 1.0.7 761 | is-array-buffer: 3.0.4 762 | is-callable: 1.2.7 763 | is-data-view: 1.0.1 764 | is-negative-zero: 2.0.3 765 | is-regex: 1.1.4 766 | is-shared-array-buffer: 1.0.3 767 | is-string: 1.0.7 768 | is-typed-array: 1.1.13 769 | is-weakref: 1.0.2 770 | object-inspect: 1.13.1 771 | object-keys: 1.1.1 772 | object.assign: 4.1.5 773 | regexp.prototype.flags: 1.5.2 774 | safe-array-concat: 1.1.2 775 | safe-regex-test: 1.0.3 776 | string.prototype.trim: 1.2.9 777 | string.prototype.trimend: 1.0.8 778 | string.prototype.trimstart: 1.0.8 779 | typed-array-buffer: 1.0.2 780 | typed-array-byte-length: 1.0.1 781 | typed-array-byte-offset: 1.0.2 782 | typed-array-length: 1.0.6 783 | unbox-primitive: 1.0.2 784 | which-typed-array: 1.1.15 785 | dev: true 786 | 787 | /es-define-property@1.0.0: 788 | resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} 789 | engines: {node: '>= 0.4'} 790 | dependencies: 791 | get-intrinsic: 1.2.4 792 | dev: true 793 | 794 | /es-errors@1.3.0: 795 | resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} 796 | engines: {node: '>= 0.4'} 797 | dev: true 798 | 799 | /es-object-atoms@1.0.0: 800 | resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} 801 | engines: {node: '>= 0.4'} 802 | dependencies: 803 | es-errors: 1.3.0 804 | dev: true 805 | 806 | /es-set-tostringtag@2.0.3: 807 | resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} 808 | engines: {node: '>= 0.4'} 809 | dependencies: 810 | get-intrinsic: 1.2.4 811 | has-tostringtag: 1.0.2 812 | hasown: 2.0.2 813 | dev: true 814 | 815 | /es-shim-unscopables@1.0.2: 816 | resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} 817 | dependencies: 818 | hasown: 2.0.2 819 | dev: true 820 | 821 | /es-to-primitive@1.2.1: 822 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} 823 | engines: {node: '>= 0.4'} 824 | dependencies: 825 | is-callable: 1.2.7 826 | is-date-object: 1.0.5 827 | is-symbol: 1.0.4 828 | dev: true 829 | 830 | /escalade@3.1.2: 831 | resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} 832 | engines: {node: '>=6'} 833 | dev: true 834 | 835 | /escape-string-regexp@1.0.5: 836 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 837 | engines: {node: '>=0.8.0'} 838 | dev: true 839 | 840 | /esprima@4.0.1: 841 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} 842 | engines: {node: '>=4'} 843 | hasBin: true 844 | dev: true 845 | 846 | /extendable-error@0.1.7: 847 | resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} 848 | dev: true 849 | 850 | /external-editor@3.1.0: 851 | resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} 852 | engines: {node: '>=4'} 853 | dependencies: 854 | chardet: 0.7.0 855 | iconv-lite: 0.4.24 856 | tmp: 0.0.33 857 | dev: true 858 | 859 | /fast-glob@3.3.2: 860 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 861 | engines: {node: '>=8.6.0'} 862 | dependencies: 863 | '@nodelib/fs.stat': 2.0.5 864 | '@nodelib/fs.walk': 1.2.8 865 | glob-parent: 5.1.2 866 | merge2: 1.4.1 867 | micromatch: 4.0.5 868 | dev: true 869 | 870 | /fastq@1.17.1: 871 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} 872 | dependencies: 873 | reusify: 1.0.4 874 | dev: true 875 | 876 | /fill-range@7.0.1: 877 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 878 | engines: {node: '>=8'} 879 | dependencies: 880 | to-regex-range: 5.0.1 881 | dev: true 882 | 883 | /find-up@4.1.0: 884 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} 885 | engines: {node: '>=8'} 886 | dependencies: 887 | locate-path: 5.0.0 888 | path-exists: 4.0.0 889 | dev: true 890 | 891 | /find-up@5.0.0: 892 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 893 | engines: {node: '>=10'} 894 | dependencies: 895 | locate-path: 6.0.0 896 | path-exists: 4.0.0 897 | dev: true 898 | 899 | /find-yarn-workspace-root2@1.2.16: 900 | resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} 901 | dependencies: 902 | micromatch: 4.0.5 903 | pkg-dir: 4.2.0 904 | dev: true 905 | 906 | /for-each@0.3.3: 907 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} 908 | dependencies: 909 | is-callable: 1.2.7 910 | dev: true 911 | 912 | /fs-extra@7.0.1: 913 | resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} 914 | engines: {node: '>=6 <7 || >=8'} 915 | dependencies: 916 | graceful-fs: 4.2.11 917 | jsonfile: 4.0.0 918 | universalify: 0.1.2 919 | dev: true 920 | 921 | /fs-extra@8.1.0: 922 | resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} 923 | engines: {node: '>=6 <7 || >=8'} 924 | dependencies: 925 | graceful-fs: 4.2.11 926 | jsonfile: 4.0.0 927 | universalify: 0.1.2 928 | dev: true 929 | 930 | /function-bind@1.1.2: 931 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 932 | dev: true 933 | 934 | /function.prototype.name@1.1.6: 935 | resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} 936 | engines: {node: '>= 0.4'} 937 | dependencies: 938 | call-bind: 1.0.7 939 | define-properties: 1.2.1 940 | es-abstract: 1.23.3 941 | functions-have-names: 1.2.3 942 | dev: true 943 | 944 | /functions-have-names@1.2.3: 945 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 946 | dev: true 947 | 948 | /get-caller-file@2.0.5: 949 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 950 | engines: {node: 6.* || 8.* || >= 10.*} 951 | dev: true 952 | 953 | /get-intrinsic@1.2.4: 954 | resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} 955 | engines: {node: '>= 0.4'} 956 | dependencies: 957 | es-errors: 1.3.0 958 | function-bind: 1.1.2 959 | has-proto: 1.0.3 960 | has-symbols: 1.0.3 961 | hasown: 2.0.2 962 | dev: true 963 | 964 | /get-symbol-description@1.0.2: 965 | resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} 966 | engines: {node: '>= 0.4'} 967 | dependencies: 968 | call-bind: 1.0.7 969 | es-errors: 1.3.0 970 | get-intrinsic: 1.2.4 971 | dev: true 972 | 973 | /glob-parent@5.1.2: 974 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 975 | engines: {node: '>= 6'} 976 | dependencies: 977 | is-glob: 4.0.3 978 | dev: true 979 | 980 | /globalthis@1.0.3: 981 | resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} 982 | engines: {node: '>= 0.4'} 983 | dependencies: 984 | define-properties: 1.2.1 985 | dev: true 986 | 987 | /globby@11.1.0: 988 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 989 | engines: {node: '>=10'} 990 | dependencies: 991 | array-union: 2.1.0 992 | dir-glob: 3.0.1 993 | fast-glob: 3.3.2 994 | ignore: 5.3.1 995 | merge2: 1.4.1 996 | slash: 3.0.0 997 | dev: true 998 | 999 | /gopd@1.0.1: 1000 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} 1001 | dependencies: 1002 | get-intrinsic: 1.2.4 1003 | dev: true 1004 | 1005 | /graceful-fs@4.2.11: 1006 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1007 | 1008 | /grapheme-splitter@1.0.4: 1009 | resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} 1010 | dev: true 1011 | 1012 | /hard-rejection@2.1.0: 1013 | resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} 1014 | engines: {node: '>=6'} 1015 | dev: true 1016 | 1017 | /has-bigints@1.0.2: 1018 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} 1019 | dev: true 1020 | 1021 | /has-flag@3.0.0: 1022 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 1023 | engines: {node: '>=4'} 1024 | dev: true 1025 | 1026 | /has-flag@4.0.0: 1027 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1028 | engines: {node: '>=8'} 1029 | 1030 | /has-property-descriptors@1.0.2: 1031 | resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} 1032 | dependencies: 1033 | es-define-property: 1.0.0 1034 | dev: true 1035 | 1036 | /has-proto@1.0.3: 1037 | resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} 1038 | engines: {node: '>= 0.4'} 1039 | dev: true 1040 | 1041 | /has-symbols@1.0.3: 1042 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 1043 | engines: {node: '>= 0.4'} 1044 | dev: true 1045 | 1046 | /has-tostringtag@1.0.2: 1047 | resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} 1048 | engines: {node: '>= 0.4'} 1049 | dependencies: 1050 | has-symbols: 1.0.3 1051 | dev: true 1052 | 1053 | /hasown@2.0.2: 1054 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 1055 | engines: {node: '>= 0.4'} 1056 | dependencies: 1057 | function-bind: 1.1.2 1058 | dev: true 1059 | 1060 | /hosted-git-info@2.8.9: 1061 | resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} 1062 | dev: true 1063 | 1064 | /human-id@1.0.2: 1065 | resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} 1066 | dev: true 1067 | 1068 | /iconv-lite@0.4.24: 1069 | resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} 1070 | engines: {node: '>=0.10.0'} 1071 | dependencies: 1072 | safer-buffer: 2.1.2 1073 | dev: true 1074 | 1075 | /ignore@5.3.1: 1076 | resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} 1077 | engines: {node: '>= 4'} 1078 | dev: true 1079 | 1080 | /indent-string@4.0.0: 1081 | resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} 1082 | engines: {node: '>=8'} 1083 | dev: true 1084 | 1085 | /internal-slot@1.0.7: 1086 | resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} 1087 | engines: {node: '>= 0.4'} 1088 | dependencies: 1089 | es-errors: 1.3.0 1090 | hasown: 2.0.2 1091 | side-channel: 1.0.6 1092 | dev: true 1093 | 1094 | /is-array-buffer@3.0.4: 1095 | resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} 1096 | engines: {node: '>= 0.4'} 1097 | dependencies: 1098 | call-bind: 1.0.7 1099 | get-intrinsic: 1.2.4 1100 | dev: true 1101 | 1102 | /is-arrayish@0.2.1: 1103 | resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} 1104 | dev: true 1105 | 1106 | /is-bigint@1.0.4: 1107 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} 1108 | dependencies: 1109 | has-bigints: 1.0.2 1110 | dev: true 1111 | 1112 | /is-boolean-object@1.1.2: 1113 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} 1114 | engines: {node: '>= 0.4'} 1115 | dependencies: 1116 | call-bind: 1.0.7 1117 | has-tostringtag: 1.0.2 1118 | dev: true 1119 | 1120 | /is-callable@1.2.7: 1121 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} 1122 | engines: {node: '>= 0.4'} 1123 | dev: true 1124 | 1125 | /is-core-module@2.13.1: 1126 | resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} 1127 | dependencies: 1128 | hasown: 2.0.2 1129 | dev: true 1130 | 1131 | /is-data-view@1.0.1: 1132 | resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} 1133 | engines: {node: '>= 0.4'} 1134 | dependencies: 1135 | is-typed-array: 1.1.13 1136 | dev: true 1137 | 1138 | /is-date-object@1.0.5: 1139 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} 1140 | engines: {node: '>= 0.4'} 1141 | dependencies: 1142 | has-tostringtag: 1.0.2 1143 | dev: true 1144 | 1145 | /is-extglob@2.1.1: 1146 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1147 | engines: {node: '>=0.10.0'} 1148 | dev: true 1149 | 1150 | /is-fullwidth-code-point@3.0.0: 1151 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1152 | engines: {node: '>=8'} 1153 | dev: true 1154 | 1155 | /is-glob@4.0.3: 1156 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1157 | engines: {node: '>=0.10.0'} 1158 | dependencies: 1159 | is-extglob: 2.1.1 1160 | dev: true 1161 | 1162 | /is-negative-zero@2.0.3: 1163 | resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} 1164 | engines: {node: '>= 0.4'} 1165 | dev: true 1166 | 1167 | /is-number-object@1.0.7: 1168 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} 1169 | engines: {node: '>= 0.4'} 1170 | dependencies: 1171 | has-tostringtag: 1.0.2 1172 | dev: true 1173 | 1174 | /is-number@7.0.0: 1175 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1176 | engines: {node: '>=0.12.0'} 1177 | dev: true 1178 | 1179 | /is-plain-obj@1.1.0: 1180 | resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} 1181 | engines: {node: '>=0.10.0'} 1182 | dev: true 1183 | 1184 | /is-regex@1.1.4: 1185 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} 1186 | engines: {node: '>= 0.4'} 1187 | dependencies: 1188 | call-bind: 1.0.7 1189 | has-tostringtag: 1.0.2 1190 | dev: true 1191 | 1192 | /is-shared-array-buffer@1.0.3: 1193 | resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} 1194 | engines: {node: '>= 0.4'} 1195 | dependencies: 1196 | call-bind: 1.0.7 1197 | dev: true 1198 | 1199 | /is-string@1.0.7: 1200 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} 1201 | engines: {node: '>= 0.4'} 1202 | dependencies: 1203 | has-tostringtag: 1.0.2 1204 | dev: true 1205 | 1206 | /is-subdir@1.2.0: 1207 | resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} 1208 | engines: {node: '>=4'} 1209 | dependencies: 1210 | better-path-resolve: 1.0.0 1211 | dev: true 1212 | 1213 | /is-symbol@1.0.4: 1214 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} 1215 | engines: {node: '>= 0.4'} 1216 | dependencies: 1217 | has-symbols: 1.0.3 1218 | dev: true 1219 | 1220 | /is-typed-array@1.1.13: 1221 | resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} 1222 | engines: {node: '>= 0.4'} 1223 | dependencies: 1224 | which-typed-array: 1.1.15 1225 | dev: true 1226 | 1227 | /is-weakref@1.0.2: 1228 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} 1229 | dependencies: 1230 | call-bind: 1.0.7 1231 | dev: true 1232 | 1233 | /is-windows@1.0.2: 1234 | resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} 1235 | engines: {node: '>=0.10.0'} 1236 | dev: true 1237 | 1238 | /isarray@2.0.5: 1239 | resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} 1240 | dev: true 1241 | 1242 | /isexe@2.0.0: 1243 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1244 | dev: true 1245 | 1246 | /js-tokens@4.0.0: 1247 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1248 | 1249 | /js-yaml@3.14.1: 1250 | resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} 1251 | hasBin: true 1252 | dependencies: 1253 | argparse: 1.0.10 1254 | esprima: 4.0.1 1255 | dev: true 1256 | 1257 | /json-parse-even-better-errors@2.3.1: 1258 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} 1259 | dev: true 1260 | 1261 | /jsonfile@4.0.0: 1262 | resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} 1263 | optionalDependencies: 1264 | graceful-fs: 4.2.11 1265 | dev: true 1266 | 1267 | /kind-of@6.0.3: 1268 | resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} 1269 | engines: {node: '>=0.10.0'} 1270 | dev: true 1271 | 1272 | /kleur@4.1.5: 1273 | resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} 1274 | engines: {node: '>=6'} 1275 | dev: true 1276 | 1277 | /lines-and-columns@1.2.4: 1278 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 1279 | dev: true 1280 | 1281 | /load-yaml-file@0.2.0: 1282 | resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} 1283 | engines: {node: '>=6'} 1284 | dependencies: 1285 | graceful-fs: 4.2.11 1286 | js-yaml: 3.14.1 1287 | pify: 4.0.1 1288 | strip-bom: 3.0.0 1289 | dev: true 1290 | 1291 | /locate-path@5.0.0: 1292 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} 1293 | engines: {node: '>=8'} 1294 | dependencies: 1295 | p-locate: 4.1.0 1296 | dev: true 1297 | 1298 | /locate-path@6.0.0: 1299 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1300 | engines: {node: '>=10'} 1301 | dependencies: 1302 | p-locate: 5.0.0 1303 | dev: true 1304 | 1305 | /lodash.startcase@4.4.0: 1306 | resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} 1307 | dev: true 1308 | 1309 | /loose-envify@1.4.0: 1310 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 1311 | hasBin: true 1312 | dependencies: 1313 | js-tokens: 4.0.0 1314 | dev: false 1315 | 1316 | /lru-cache@4.1.5: 1317 | resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} 1318 | dependencies: 1319 | pseudomap: 1.0.2 1320 | yallist: 2.1.2 1321 | dev: true 1322 | 1323 | /lru-cache@6.0.0: 1324 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 1325 | engines: {node: '>=10'} 1326 | dependencies: 1327 | yallist: 4.0.0 1328 | dev: true 1329 | 1330 | /map-obj@1.0.1: 1331 | resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} 1332 | engines: {node: '>=0.10.0'} 1333 | dev: true 1334 | 1335 | /map-obj@4.3.0: 1336 | resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} 1337 | engines: {node: '>=8'} 1338 | dev: true 1339 | 1340 | /meow@6.1.1: 1341 | resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==} 1342 | engines: {node: '>=8'} 1343 | dependencies: 1344 | '@types/minimist': 1.2.5 1345 | camelcase-keys: 6.2.2 1346 | decamelize-keys: 1.1.1 1347 | hard-rejection: 2.1.0 1348 | minimist-options: 4.1.0 1349 | normalize-package-data: 2.5.0 1350 | read-pkg-up: 7.0.1 1351 | redent: 3.0.0 1352 | trim-newlines: 3.0.1 1353 | type-fest: 0.13.1 1354 | yargs-parser: 18.1.3 1355 | dev: true 1356 | 1357 | /merge2@1.4.1: 1358 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1359 | engines: {node: '>= 8'} 1360 | dev: true 1361 | 1362 | /micromatch@4.0.5: 1363 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 1364 | engines: {node: '>=8.6'} 1365 | dependencies: 1366 | braces: 3.0.2 1367 | picomatch: 2.3.1 1368 | dev: true 1369 | 1370 | /min-indent@1.0.1: 1371 | resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} 1372 | engines: {node: '>=4'} 1373 | dev: true 1374 | 1375 | /minimist-options@4.1.0: 1376 | resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} 1377 | engines: {node: '>= 6'} 1378 | dependencies: 1379 | arrify: 1.0.1 1380 | is-plain-obj: 1.1.0 1381 | kind-of: 6.0.3 1382 | dev: true 1383 | 1384 | /mixme@0.5.10: 1385 | resolution: {integrity: sha512-5H76ANWinB1H3twpJ6JY8uvAtpmFvHNArpilJAjXRKXSDDLPIMoZArw5SH0q9z+lLs8IrMw7Q2VWpWimFKFT1Q==} 1386 | engines: {node: '>= 8.0.0'} 1387 | dev: true 1388 | 1389 | /nanoid@3.3.7: 1390 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 1391 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1392 | hasBin: true 1393 | dev: false 1394 | 1395 | /next@14.1.4(react-dom@18.2.0)(react@18.2.0): 1396 | resolution: {integrity: sha512-1WTaXeSrUwlz/XcnhGTY7+8eiaFvdet5z9u3V2jb+Ek1vFo0VhHKSAIJvDWfQpttWjnyw14kBeq28TPq7bTeEQ==} 1397 | engines: {node: '>=18.17.0'} 1398 | hasBin: true 1399 | peerDependencies: 1400 | '@opentelemetry/api': ^1.1.0 1401 | react: ^18.2.0 1402 | react-dom: ^18.2.0 1403 | sass: ^1.3.0 1404 | peerDependenciesMeta: 1405 | '@opentelemetry/api': 1406 | optional: true 1407 | sass: 1408 | optional: true 1409 | dependencies: 1410 | '@next/env': 14.1.4 1411 | '@swc/helpers': 0.5.2 1412 | busboy: 1.6.0 1413 | caniuse-lite: 1.0.30001605 1414 | graceful-fs: 4.2.11 1415 | postcss: 8.4.31 1416 | react: 18.2.0 1417 | react-dom: 18.2.0(react@18.2.0) 1418 | styled-jsx: 5.1.1(react@18.2.0) 1419 | optionalDependencies: 1420 | '@next/swc-darwin-arm64': 14.1.4 1421 | '@next/swc-darwin-x64': 14.1.4 1422 | '@next/swc-linux-arm64-gnu': 14.1.4 1423 | '@next/swc-linux-arm64-musl': 14.1.4 1424 | '@next/swc-linux-x64-gnu': 14.1.4 1425 | '@next/swc-linux-x64-musl': 14.1.4 1426 | '@next/swc-win32-arm64-msvc': 14.1.4 1427 | '@next/swc-win32-ia32-msvc': 14.1.4 1428 | '@next/swc-win32-x64-msvc': 14.1.4 1429 | transitivePeerDependencies: 1430 | - '@babel/core' 1431 | - babel-plugin-macros 1432 | dev: false 1433 | 1434 | /normalize-package-data@2.5.0: 1435 | resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} 1436 | dependencies: 1437 | hosted-git-info: 2.8.9 1438 | resolve: 1.22.8 1439 | semver: 5.7.2 1440 | validate-npm-package-license: 3.0.4 1441 | dev: true 1442 | 1443 | /object-inspect@1.13.1: 1444 | resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} 1445 | dev: true 1446 | 1447 | /object-keys@1.1.1: 1448 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 1449 | engines: {node: '>= 0.4'} 1450 | dev: true 1451 | 1452 | /object.assign@4.1.5: 1453 | resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} 1454 | engines: {node: '>= 0.4'} 1455 | dependencies: 1456 | call-bind: 1.0.7 1457 | define-properties: 1.2.1 1458 | has-symbols: 1.0.3 1459 | object-keys: 1.1.1 1460 | dev: true 1461 | 1462 | /os-tmpdir@1.0.2: 1463 | resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} 1464 | engines: {node: '>=0.10.0'} 1465 | dev: true 1466 | 1467 | /outdent@0.5.0: 1468 | resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} 1469 | dev: true 1470 | 1471 | /p-filter@2.1.0: 1472 | resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} 1473 | engines: {node: '>=8'} 1474 | dependencies: 1475 | p-map: 2.1.0 1476 | dev: true 1477 | 1478 | /p-limit@2.3.0: 1479 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 1480 | engines: {node: '>=6'} 1481 | dependencies: 1482 | p-try: 2.2.0 1483 | dev: true 1484 | 1485 | /p-limit@3.1.0: 1486 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1487 | engines: {node: '>=10'} 1488 | dependencies: 1489 | yocto-queue: 0.1.0 1490 | dev: true 1491 | 1492 | /p-locate@4.1.0: 1493 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} 1494 | engines: {node: '>=8'} 1495 | dependencies: 1496 | p-limit: 2.3.0 1497 | dev: true 1498 | 1499 | /p-locate@5.0.0: 1500 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1501 | engines: {node: '>=10'} 1502 | dependencies: 1503 | p-limit: 3.1.0 1504 | dev: true 1505 | 1506 | /p-map@2.1.0: 1507 | resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} 1508 | engines: {node: '>=6'} 1509 | dev: true 1510 | 1511 | /p-try@2.2.0: 1512 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 1513 | engines: {node: '>=6'} 1514 | dev: true 1515 | 1516 | /parse-json@5.2.0: 1517 | resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} 1518 | engines: {node: '>=8'} 1519 | dependencies: 1520 | '@babel/code-frame': 7.24.2 1521 | error-ex: 1.3.2 1522 | json-parse-even-better-errors: 2.3.1 1523 | lines-and-columns: 1.2.4 1524 | dev: true 1525 | 1526 | /path-exists@4.0.0: 1527 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1528 | engines: {node: '>=8'} 1529 | dev: true 1530 | 1531 | /path-parse@1.0.7: 1532 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1533 | dev: true 1534 | 1535 | /path-type@4.0.0: 1536 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1537 | engines: {node: '>=8'} 1538 | dev: true 1539 | 1540 | /picocolors@1.0.0: 1541 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 1542 | 1543 | /picomatch@2.3.1: 1544 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1545 | engines: {node: '>=8.6'} 1546 | dev: true 1547 | 1548 | /pify@4.0.1: 1549 | resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} 1550 | engines: {node: '>=6'} 1551 | dev: true 1552 | 1553 | /pkg-dir@4.2.0: 1554 | resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} 1555 | engines: {node: '>=8'} 1556 | dependencies: 1557 | find-up: 4.1.0 1558 | dev: true 1559 | 1560 | /possible-typed-array-names@1.0.0: 1561 | resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} 1562 | engines: {node: '>= 0.4'} 1563 | dev: true 1564 | 1565 | /postcss@8.4.31: 1566 | resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} 1567 | engines: {node: ^10 || ^12 || >=14} 1568 | dependencies: 1569 | nanoid: 3.3.7 1570 | picocolors: 1.0.0 1571 | source-map-js: 1.2.0 1572 | dev: false 1573 | 1574 | /preferred-pm@3.1.3: 1575 | resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==} 1576 | engines: {node: '>=10'} 1577 | dependencies: 1578 | find-up: 5.0.0 1579 | find-yarn-workspace-root2: 1.2.16 1580 | path-exists: 4.0.0 1581 | which-pm: 2.0.0 1582 | dev: true 1583 | 1584 | /prettier@2.8.8: 1585 | resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} 1586 | engines: {node: '>=10.13.0'} 1587 | hasBin: true 1588 | dev: true 1589 | 1590 | /pseudomap@1.0.2: 1591 | resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} 1592 | dev: true 1593 | 1594 | /queue-microtask@1.2.3: 1595 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1596 | dev: true 1597 | 1598 | /quick-lru@4.0.1: 1599 | resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} 1600 | engines: {node: '>=8'} 1601 | dev: true 1602 | 1603 | /react-dom@18.2.0(react@18.2.0): 1604 | resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} 1605 | peerDependencies: 1606 | react: ^18.2.0 1607 | dependencies: 1608 | loose-envify: 1.4.0 1609 | react: 18.2.0 1610 | scheduler: 0.23.0 1611 | dev: false 1612 | 1613 | /react@18.2.0: 1614 | resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} 1615 | engines: {node: '>=0.10.0'} 1616 | dependencies: 1617 | loose-envify: 1.4.0 1618 | dev: false 1619 | 1620 | /read-pkg-up@7.0.1: 1621 | resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} 1622 | engines: {node: '>=8'} 1623 | dependencies: 1624 | find-up: 4.1.0 1625 | read-pkg: 5.2.0 1626 | type-fest: 0.8.1 1627 | dev: true 1628 | 1629 | /read-pkg@5.2.0: 1630 | resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} 1631 | engines: {node: '>=8'} 1632 | dependencies: 1633 | '@types/normalize-package-data': 2.4.4 1634 | normalize-package-data: 2.5.0 1635 | parse-json: 5.2.0 1636 | type-fest: 0.6.0 1637 | dev: true 1638 | 1639 | /read-yaml-file@1.1.0: 1640 | resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} 1641 | engines: {node: '>=6'} 1642 | dependencies: 1643 | graceful-fs: 4.2.11 1644 | js-yaml: 3.14.1 1645 | pify: 4.0.1 1646 | strip-bom: 3.0.0 1647 | dev: true 1648 | 1649 | /redent@3.0.0: 1650 | resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} 1651 | engines: {node: '>=8'} 1652 | dependencies: 1653 | indent-string: 4.0.0 1654 | strip-indent: 3.0.0 1655 | dev: true 1656 | 1657 | /regenerator-runtime@0.14.1: 1658 | resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} 1659 | dev: true 1660 | 1661 | /regexp.prototype.flags@1.5.2: 1662 | resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} 1663 | engines: {node: '>= 0.4'} 1664 | dependencies: 1665 | call-bind: 1.0.7 1666 | define-properties: 1.2.1 1667 | es-errors: 1.3.0 1668 | set-function-name: 2.0.2 1669 | dev: true 1670 | 1671 | /require-directory@2.1.1: 1672 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} 1673 | engines: {node: '>=0.10.0'} 1674 | dev: true 1675 | 1676 | /require-main-filename@2.0.0: 1677 | resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} 1678 | dev: true 1679 | 1680 | /resolve-from@5.0.0: 1681 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 1682 | engines: {node: '>=8'} 1683 | dev: true 1684 | 1685 | /resolve@1.22.8: 1686 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 1687 | hasBin: true 1688 | dependencies: 1689 | is-core-module: 2.13.1 1690 | path-parse: 1.0.7 1691 | supports-preserve-symlinks-flag: 1.0.0 1692 | dev: true 1693 | 1694 | /reusify@1.0.4: 1695 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1696 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1697 | dev: true 1698 | 1699 | /run-parallel@1.2.0: 1700 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1701 | dependencies: 1702 | queue-microtask: 1.2.3 1703 | dev: true 1704 | 1705 | /safe-array-concat@1.1.2: 1706 | resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} 1707 | engines: {node: '>=0.4'} 1708 | dependencies: 1709 | call-bind: 1.0.7 1710 | get-intrinsic: 1.2.4 1711 | has-symbols: 1.0.3 1712 | isarray: 2.0.5 1713 | dev: true 1714 | 1715 | /safe-regex-test@1.0.3: 1716 | resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} 1717 | engines: {node: '>= 0.4'} 1718 | dependencies: 1719 | call-bind: 1.0.7 1720 | es-errors: 1.3.0 1721 | is-regex: 1.1.4 1722 | dev: true 1723 | 1724 | /safer-buffer@2.1.2: 1725 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 1726 | dev: true 1727 | 1728 | /scheduler@0.23.0: 1729 | resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} 1730 | dependencies: 1731 | loose-envify: 1.4.0 1732 | dev: false 1733 | 1734 | /semver@5.7.2: 1735 | resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} 1736 | hasBin: true 1737 | dev: true 1738 | 1739 | /semver@7.6.0: 1740 | resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} 1741 | engines: {node: '>=10'} 1742 | hasBin: true 1743 | dependencies: 1744 | lru-cache: 6.0.0 1745 | dev: true 1746 | 1747 | /set-blocking@2.0.0: 1748 | resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} 1749 | dev: true 1750 | 1751 | /set-function-length@1.2.2: 1752 | resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} 1753 | engines: {node: '>= 0.4'} 1754 | dependencies: 1755 | define-data-property: 1.1.4 1756 | es-errors: 1.3.0 1757 | function-bind: 1.1.2 1758 | get-intrinsic: 1.2.4 1759 | gopd: 1.0.1 1760 | has-property-descriptors: 1.0.2 1761 | dev: true 1762 | 1763 | /set-function-name@2.0.2: 1764 | resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} 1765 | engines: {node: '>= 0.4'} 1766 | dependencies: 1767 | define-data-property: 1.1.4 1768 | es-errors: 1.3.0 1769 | functions-have-names: 1.2.3 1770 | has-property-descriptors: 1.0.2 1771 | dev: true 1772 | 1773 | /shebang-command@1.2.0: 1774 | resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} 1775 | engines: {node: '>=0.10.0'} 1776 | dependencies: 1777 | shebang-regex: 1.0.0 1778 | dev: true 1779 | 1780 | /shebang-regex@1.0.0: 1781 | resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} 1782 | engines: {node: '>=0.10.0'} 1783 | dev: true 1784 | 1785 | /side-channel@1.0.6: 1786 | resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} 1787 | engines: {node: '>= 0.4'} 1788 | dependencies: 1789 | call-bind: 1.0.7 1790 | es-errors: 1.3.0 1791 | get-intrinsic: 1.2.4 1792 | object-inspect: 1.13.1 1793 | dev: true 1794 | 1795 | /signal-exit@3.0.7: 1796 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 1797 | dev: true 1798 | 1799 | /slash@3.0.0: 1800 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 1801 | engines: {node: '>=8'} 1802 | dev: true 1803 | 1804 | /smartwrap@2.0.2: 1805 | resolution: {integrity: sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==} 1806 | engines: {node: '>=6'} 1807 | hasBin: true 1808 | dependencies: 1809 | array.prototype.flat: 1.3.2 1810 | breakword: 1.0.6 1811 | grapheme-splitter: 1.0.4 1812 | strip-ansi: 6.0.1 1813 | wcwidth: 1.0.1 1814 | yargs: 15.4.1 1815 | dev: true 1816 | 1817 | /source-map-js@1.2.0: 1818 | resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} 1819 | engines: {node: '>=0.10.0'} 1820 | dev: false 1821 | 1822 | /spawndamnit@2.0.0: 1823 | resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} 1824 | dependencies: 1825 | cross-spawn: 5.1.0 1826 | signal-exit: 3.0.7 1827 | dev: true 1828 | 1829 | /spdx-correct@3.2.0: 1830 | resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} 1831 | dependencies: 1832 | spdx-expression-parse: 3.0.1 1833 | spdx-license-ids: 3.0.17 1834 | dev: true 1835 | 1836 | /spdx-exceptions@2.5.0: 1837 | resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} 1838 | dev: true 1839 | 1840 | /spdx-expression-parse@3.0.1: 1841 | resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} 1842 | dependencies: 1843 | spdx-exceptions: 2.5.0 1844 | spdx-license-ids: 3.0.17 1845 | dev: true 1846 | 1847 | /spdx-license-ids@3.0.17: 1848 | resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} 1849 | dev: true 1850 | 1851 | /sprintf-js@1.0.3: 1852 | resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} 1853 | dev: true 1854 | 1855 | /stream-transform@2.1.3: 1856 | resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==} 1857 | dependencies: 1858 | mixme: 0.5.10 1859 | dev: true 1860 | 1861 | /streamsearch@1.1.0: 1862 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} 1863 | engines: {node: '>=10.0.0'} 1864 | dev: false 1865 | 1866 | /string-width@4.2.3: 1867 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1868 | engines: {node: '>=8'} 1869 | dependencies: 1870 | emoji-regex: 8.0.0 1871 | is-fullwidth-code-point: 3.0.0 1872 | strip-ansi: 6.0.1 1873 | dev: true 1874 | 1875 | /string.prototype.trim@1.2.9: 1876 | resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} 1877 | engines: {node: '>= 0.4'} 1878 | dependencies: 1879 | call-bind: 1.0.7 1880 | define-properties: 1.2.1 1881 | es-abstract: 1.23.3 1882 | es-object-atoms: 1.0.0 1883 | dev: true 1884 | 1885 | /string.prototype.trimend@1.0.8: 1886 | resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} 1887 | dependencies: 1888 | call-bind: 1.0.7 1889 | define-properties: 1.2.1 1890 | es-object-atoms: 1.0.0 1891 | dev: true 1892 | 1893 | /string.prototype.trimstart@1.0.8: 1894 | resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} 1895 | engines: {node: '>= 0.4'} 1896 | dependencies: 1897 | call-bind: 1.0.7 1898 | define-properties: 1.2.1 1899 | es-object-atoms: 1.0.0 1900 | dev: true 1901 | 1902 | /strip-ansi@6.0.1: 1903 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1904 | engines: {node: '>=8'} 1905 | dependencies: 1906 | ansi-regex: 5.0.1 1907 | dev: true 1908 | 1909 | /strip-bom@3.0.0: 1910 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 1911 | engines: {node: '>=4'} 1912 | dev: true 1913 | 1914 | /strip-indent@3.0.0: 1915 | resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} 1916 | engines: {node: '>=8'} 1917 | dependencies: 1918 | min-indent: 1.0.1 1919 | dev: true 1920 | 1921 | /styled-jsx@5.1.1(react@18.2.0): 1922 | resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} 1923 | engines: {node: '>= 12.0.0'} 1924 | peerDependencies: 1925 | '@babel/core': '*' 1926 | babel-plugin-macros: '*' 1927 | react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' 1928 | peerDependenciesMeta: 1929 | '@babel/core': 1930 | optional: true 1931 | babel-plugin-macros: 1932 | optional: true 1933 | dependencies: 1934 | client-only: 0.0.1 1935 | react: 18.2.0 1936 | dev: false 1937 | 1938 | /supports-color@5.5.0: 1939 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 1940 | engines: {node: '>=4'} 1941 | dependencies: 1942 | has-flag: 3.0.0 1943 | dev: true 1944 | 1945 | /supports-color@7.2.0: 1946 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1947 | engines: {node: '>=8'} 1948 | dependencies: 1949 | has-flag: 4.0.0 1950 | 1951 | /supports-preserve-symlinks-flag@1.0.0: 1952 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1953 | engines: {node: '>= 0.4'} 1954 | dev: true 1955 | 1956 | /term-size@2.2.1: 1957 | resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} 1958 | engines: {node: '>=8'} 1959 | dev: true 1960 | 1961 | /tmp@0.0.33: 1962 | resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} 1963 | engines: {node: '>=0.6.0'} 1964 | dependencies: 1965 | os-tmpdir: 1.0.2 1966 | dev: true 1967 | 1968 | /to-regex-range@5.0.1: 1969 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1970 | engines: {node: '>=8.0'} 1971 | dependencies: 1972 | is-number: 7.0.0 1973 | dev: true 1974 | 1975 | /trim-newlines@3.0.1: 1976 | resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} 1977 | engines: {node: '>=8'} 1978 | dev: true 1979 | 1980 | /tslib@2.6.2: 1981 | resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} 1982 | dev: false 1983 | 1984 | /tty-table@4.2.3: 1985 | resolution: {integrity: sha512-Fs15mu0vGzCrj8fmJNP7Ynxt5J7praPXqFN0leZeZBXJwkMxv9cb2D454k1ltrtUSJbZ4yH4e0CynsHLxmUfFA==} 1986 | engines: {node: '>=8.0.0'} 1987 | hasBin: true 1988 | dependencies: 1989 | chalk: 4.1.2 1990 | csv: 5.5.3 1991 | kleur: 4.1.5 1992 | smartwrap: 2.0.2 1993 | strip-ansi: 6.0.1 1994 | wcwidth: 1.0.1 1995 | yargs: 17.7.2 1996 | dev: true 1997 | 1998 | /type-fest@0.13.1: 1999 | resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} 2000 | engines: {node: '>=10'} 2001 | dev: true 2002 | 2003 | /type-fest@0.6.0: 2004 | resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} 2005 | engines: {node: '>=8'} 2006 | dev: true 2007 | 2008 | /type-fest@0.8.1: 2009 | resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} 2010 | engines: {node: '>=8'} 2011 | dev: true 2012 | 2013 | /typed-array-buffer@1.0.2: 2014 | resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} 2015 | engines: {node: '>= 0.4'} 2016 | dependencies: 2017 | call-bind: 1.0.7 2018 | es-errors: 1.3.0 2019 | is-typed-array: 1.1.13 2020 | dev: true 2021 | 2022 | /typed-array-byte-length@1.0.1: 2023 | resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} 2024 | engines: {node: '>= 0.4'} 2025 | dependencies: 2026 | call-bind: 1.0.7 2027 | for-each: 0.3.3 2028 | gopd: 1.0.1 2029 | has-proto: 1.0.3 2030 | is-typed-array: 1.1.13 2031 | dev: true 2032 | 2033 | /typed-array-byte-offset@1.0.2: 2034 | resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} 2035 | engines: {node: '>= 0.4'} 2036 | dependencies: 2037 | available-typed-arrays: 1.0.7 2038 | call-bind: 1.0.7 2039 | for-each: 0.3.3 2040 | gopd: 1.0.1 2041 | has-proto: 1.0.3 2042 | is-typed-array: 1.1.13 2043 | dev: true 2044 | 2045 | /typed-array-length@1.0.6: 2046 | resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} 2047 | engines: {node: '>= 0.4'} 2048 | dependencies: 2049 | call-bind: 1.0.7 2050 | for-each: 0.3.3 2051 | gopd: 1.0.1 2052 | has-proto: 1.0.3 2053 | is-typed-array: 1.1.13 2054 | possible-typed-array-names: 1.0.0 2055 | dev: true 2056 | 2057 | /typescript@5.4.4: 2058 | resolution: {integrity: sha512-dGE2Vv8cpVvw28v8HCPqyb08EzbBURxDpuhJvTrusShUfGnhHBafDsLdS1EhhxyL6BJQE+2cT3dDPAv+MQ6oLw==} 2059 | engines: {node: '>=14.17'} 2060 | hasBin: true 2061 | dev: true 2062 | 2063 | /unbox-primitive@1.0.2: 2064 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} 2065 | dependencies: 2066 | call-bind: 1.0.7 2067 | has-bigints: 1.0.2 2068 | has-symbols: 1.0.3 2069 | which-boxed-primitive: 1.0.2 2070 | dev: true 2071 | 2072 | /universalify@0.1.2: 2073 | resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} 2074 | engines: {node: '>= 4.0.0'} 2075 | dev: true 2076 | 2077 | /validate-npm-package-license@3.0.4: 2078 | resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} 2079 | dependencies: 2080 | spdx-correct: 3.2.0 2081 | spdx-expression-parse: 3.0.1 2082 | dev: true 2083 | 2084 | /wcwidth@1.0.1: 2085 | resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} 2086 | dependencies: 2087 | defaults: 1.0.4 2088 | dev: true 2089 | 2090 | /which-boxed-primitive@1.0.2: 2091 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} 2092 | dependencies: 2093 | is-bigint: 1.0.4 2094 | is-boolean-object: 1.1.2 2095 | is-number-object: 1.0.7 2096 | is-string: 1.0.7 2097 | is-symbol: 1.0.4 2098 | dev: true 2099 | 2100 | /which-module@2.0.1: 2101 | resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} 2102 | dev: true 2103 | 2104 | /which-pm@2.0.0: 2105 | resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} 2106 | engines: {node: '>=8.15'} 2107 | dependencies: 2108 | load-yaml-file: 0.2.0 2109 | path-exists: 4.0.0 2110 | dev: true 2111 | 2112 | /which-typed-array@1.1.15: 2113 | resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} 2114 | engines: {node: '>= 0.4'} 2115 | dependencies: 2116 | available-typed-arrays: 1.0.7 2117 | call-bind: 1.0.7 2118 | for-each: 0.3.3 2119 | gopd: 1.0.1 2120 | has-tostringtag: 1.0.2 2121 | dev: true 2122 | 2123 | /which@1.3.1: 2124 | resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} 2125 | hasBin: true 2126 | dependencies: 2127 | isexe: 2.0.0 2128 | dev: true 2129 | 2130 | /wrap-ansi@6.2.0: 2131 | resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} 2132 | engines: {node: '>=8'} 2133 | dependencies: 2134 | ansi-styles: 4.3.0 2135 | string-width: 4.2.3 2136 | strip-ansi: 6.0.1 2137 | dev: true 2138 | 2139 | /wrap-ansi@7.0.0: 2140 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 2141 | engines: {node: '>=10'} 2142 | dependencies: 2143 | ansi-styles: 4.3.0 2144 | string-width: 4.2.3 2145 | strip-ansi: 6.0.1 2146 | dev: true 2147 | 2148 | /y18n@4.0.3: 2149 | resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} 2150 | dev: true 2151 | 2152 | /y18n@5.0.8: 2153 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 2154 | engines: {node: '>=10'} 2155 | dev: true 2156 | 2157 | /yallist@2.1.2: 2158 | resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} 2159 | dev: true 2160 | 2161 | /yallist@4.0.0: 2162 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 2163 | dev: true 2164 | 2165 | /yargs-parser@18.1.3: 2166 | resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} 2167 | engines: {node: '>=6'} 2168 | dependencies: 2169 | camelcase: 5.3.1 2170 | decamelize: 1.2.0 2171 | dev: true 2172 | 2173 | /yargs-parser@21.1.1: 2174 | resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} 2175 | engines: {node: '>=12'} 2176 | dev: true 2177 | 2178 | /yargs@15.4.1: 2179 | resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} 2180 | engines: {node: '>=8'} 2181 | dependencies: 2182 | cliui: 6.0.0 2183 | decamelize: 1.2.0 2184 | find-up: 4.1.0 2185 | get-caller-file: 2.0.5 2186 | require-directory: 2.1.1 2187 | require-main-filename: 2.0.0 2188 | set-blocking: 2.0.0 2189 | string-width: 4.2.3 2190 | which-module: 2.0.1 2191 | y18n: 4.0.3 2192 | yargs-parser: 18.1.3 2193 | dev: true 2194 | 2195 | /yargs@17.7.2: 2196 | resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} 2197 | engines: {node: '>=12'} 2198 | dependencies: 2199 | cliui: 8.0.1 2200 | escalade: 3.1.2 2201 | get-caller-file: 2.0.5 2202 | require-directory: 2.1.1 2203 | string-width: 4.2.3 2204 | y18n: 5.0.8 2205 | yargs-parser: 21.1.1 2206 | dev: true 2207 | 2208 | /yocto-queue@0.1.0: 2209 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 2210 | engines: {node: '>=10'} 2211 | dev: true 2212 | -------------------------------------------------------------------------------- /src/index.d.ts: -------------------------------------------------------------------------------- 1 | type Callback = (...args: Parameters) => ReturnType | Promise; 2 | export type MemoizeOptionType = { 3 | persist?: boolean; 4 | duration?: number; 5 | log?: ('dedupe' | 'datacache' | 'verbose')[]; 6 | logid?: string; 7 | revalidateTags?: ((...params: Parameters) => string[]) | string[]; 8 | additionalCacheKey?: ((...params: Parameters) => string[]) | string[]; 9 | suppressWarnings?: boolean; 10 | }; 11 | /** ### MEMOIZE: unstable_cache() + cache() 12 | A way to generalize the data caching function in Next.js 13 | **/ 14 | export declare function memoize

(cb: Callback, opts?: MemoizeOptionType

): (...args: P) => Promise; 15 | export {}; 16 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { 2 | function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } 3 | return new (P || (P = Promise))(function (resolve, reject) { 4 | function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } 5 | function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } 6 | function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } 7 | step((generator = generator.apply(thisArg, _arguments || [])).next()); 8 | }); 9 | }; 10 | var __generator = (this && this.__generator) || function (thisArg, body) { 11 | var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; 12 | return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; 13 | function verb(n) { return function (v) { return step([n, v]); }; } 14 | function step(op) { 15 | if (f) throw new TypeError("Generator is already executing."); 16 | while (g && (g = 0, op[0] && (_ = 0)), _) try { 17 | if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; 18 | if (y = 0, t) op = [op[0] & 2, t.value]; 19 | switch (op[0]) { 20 | case 0: case 1: t = op; break; 21 | case 4: _.label++; return { value: op[1], done: false }; 22 | case 5: _.label++; y = op[1]; op = [0]; continue; 23 | case 7: op = _.ops.pop(); _.trys.pop(); continue; 24 | default: 25 | if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } 26 | if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } 27 | if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } 28 | if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } 29 | if (t[2]) _.ops.pop(); 30 | _.trys.pop(); continue; 31 | } 32 | op = body.call(thisArg, _); 33 | } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } 34 | if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; 35 | } 36 | }; 37 | var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { 38 | if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { 39 | if (ar || !(i in from)) { 40 | if (!ar) ar = Array.prototype.slice.call(from, 0, i); 41 | ar[i] = from[i]; 42 | } 43 | } 44 | return to.concat(ar || Array.prototype.slice.call(from)); 45 | }; 46 | import chalk from "chalk"; 47 | import { unstable_cache } from "next/cache"; 48 | import { cache } from "react"; 49 | /** ### MEMOIZE: unstable_cache() + cache() 50 | A way to generalize the data caching function in Next.js 51 | **/ 52 | export function memoize(cb, opts) { 53 | var _this = this; 54 | if (typeof window !== "undefined") { 55 | // Fallback to original function if window is defined (client side) 56 | if (!(opts === null || opts === void 0 ? void 0 : opts.suppressWarnings)) { 57 | console.warn("⚠️ Memoize: this function will not work in the client environment."); 58 | } 59 | return function () { 60 | var args = []; 61 | for (var _i = 0; _i < arguments.length; _i++) { 62 | args[_i] = arguments[_i]; 63 | } 64 | return __awaiter(_this, void 0, void 0, function () { 65 | return __generator(this, function (_a) { 66 | return [2 /*return*/, cb.apply(void 0, args)]; 67 | }); 68 | }); 69 | }; 70 | } 71 | if (typeof cache === "undefined" && typeof unstable_cache === "undefined") { 72 | // Fallback to the original function if there's no caching functions (ex. on react native) 73 | if (!(opts === null || opts === void 0 ? void 0 : opts.suppressWarnings)) { 74 | console.warn("⚠️ Memoize: cache or unstable_cache function not found. Falling back to original function"); 75 | } 76 | return function () { 77 | var args = []; 78 | for (var _i = 0; _i < arguments.length; _i++) { 79 | args[_i] = arguments[_i]; 80 | } 81 | return __awaiter(_this, void 0, void 0, function () { 82 | return __generator(this, function (_a) { 83 | return [2 /*return*/, cb.apply(void 0, args)]; 84 | }); 85 | }); 86 | }; 87 | } 88 | var _a = opts !== null && opts !== void 0 ? opts : {}, // default values 89 | _b = _a.persist, // default values 90 | persist = _b === void 0 ? true : _b, _c = _a.duration, duration = _c === void 0 ? Infinity : _c, _d = _a.log, log = _d === void 0 ? [] : _d, revalidateTagsFn = _a.revalidateTags, additionalCacheKeyFn = _a.additionalCacheKey; 91 | var logDataCache = log.includes('datacache'); 92 | var logDedupe = log.includes('dedupe'); 93 | var logVerbose = log.includes('verbose'); 94 | var logID = (opts === null || opts === void 0 ? void 0 : opts.logid) ? "".concat(opts.logid, " ") : ''; 95 | var oldData; 96 | var renderCacheHit; 97 | renderCacheHit = false; 98 | var cachedFn = cache(function () { 99 | var args = []; 100 | for (var _i = 0; _i < arguments.length; _i++) { 101 | args[_i] = arguments[_i]; 102 | } 103 | return __awaiter(_this, void 0, void 0, function () { 104 | var additionalCacheKey, revalidateTags, cacheKey, nextOpts, dataCacheMiss_1, audit, data, time, isSame, data; 105 | var _this = this; 106 | var _a; 107 | return __generator(this, function (_b) { 108 | switch (_b.label) { 109 | case 0: 110 | renderCacheHit = true; 111 | if (!persist) return [3 /*break*/, 5]; 112 | additionalCacheKey = additionalCacheKeyFn ? 113 | typeof additionalCacheKeyFn === 'function' ? additionalCacheKeyFn.apply(void 0, args) : additionalCacheKeyFn 114 | : []; 115 | revalidateTags = revalidateTagsFn ? 116 | typeof revalidateTagsFn === 'function' ? revalidateTagsFn.apply(void 0, args) : revalidateTagsFn 117 | : []; 118 | cacheKey = __spreadArray([cb.toString(), JSON.stringify(args)], additionalCacheKey, true); 119 | nextOpts = { 120 | revalidate: duration, 121 | tags: __spreadArray(['all'], revalidateTags, true) 122 | }; 123 | if (!logDataCache) return [3 /*break*/, 2]; 124 | dataCacheMiss_1 = false; 125 | audit = new Audit(); 126 | return [4 /*yield*/, unstable_cache(function () { return __awaiter(_this, void 0, void 0, function () { 127 | return __generator(this, function (_a) { 128 | dataCacheMiss_1 = true; 129 | return [2 /*return*/, cb.apply(void 0, args)]; 130 | }); 131 | }); }, cacheKey, nextOpts)()]; 132 | case 1: 133 | data = _b.sent(); 134 | time = audit.getSec(); 135 | isSame = oldData === data; 136 | console.log("".concat(chalk.hex('AA7ADB').bold("Data Cache"), " - ") 137 | + "".concat(chalk.hex('A0AFBF')("".concat(logID).concat(cb.name)), " ").concat(chalk.hex('#AA7ADB').bold(dataCacheMiss_1 ? "MISS" : "HIT"), " ") 138 | + "".concat(chalk.hex('A0AFBF')(time.toPrecision(3) + 's'), " ") 139 | + "".concat(chalk.hex('AA7ADB').bold(dataCacheMiss_1 ? isSame ? 'background-revalidation' : 'on-demand revalidation' : ""), " ")); 140 | if (logVerbose) 141 | console.log("".concat(chalk.hex('6A7C8E').bold(" \u2514 ".concat((_a = cb.name) !== null && _a !== void 0 ? _a : "Anon Func", " ").concat(JSON.stringify(args))))); 142 | oldData = data; 143 | return [2 /*return*/, data]; 144 | case 2: return [4 /*yield*/, unstable_cache(function () { return __awaiter(_this, void 0, void 0, function () { 145 | return __generator(this, function (_a) { 146 | return [2 /*return*/, cb.apply(void 0, args)]; 147 | }); 148 | }); }, __spreadArray([cb.toString(), JSON.stringify(args)], additionalCacheKey, true), { 149 | revalidate: duration, 150 | tags: __spreadArray(['all'], revalidateTags, true) 151 | })()]; 152 | case 3: 153 | data = _b.sent(); 154 | return [2 /*return*/, data]; 155 | case 4: return [3 /*break*/, 6]; 156 | case 5: 157 | // return callback directly 158 | return [2 /*return*/, cb.apply(void 0, args)]; 159 | case 6: return [2 /*return*/]; 160 | } 161 | }); 162 | }); 163 | }); 164 | return function () { 165 | var args = []; 166 | for (var _i = 0; _i < arguments.length; _i++) { 167 | args[_i] = arguments[_i]; 168 | } 169 | return __awaiter(_this, void 0, void 0, function () { 170 | var audit2, data, time; 171 | return __generator(this, function (_a) { 172 | switch (_a.label) { 173 | case 0: 174 | if (!logDedupe) return [3 /*break*/, 2]; 175 | audit2 = new Audit(); 176 | return [4 /*yield*/, cachedFn.apply(void 0, args)]; 177 | case 1: 178 | data = _a.sent(); 179 | time = audit2.getSec(); 180 | console.log("".concat(chalk.hex('#FFB713').bold("Memoization"), " - ") 181 | + "".concat(chalk.hex('A0AFBF')("".concat(logID).concat(cb.name)), " ").concat(chalk.hex('#FFC94E').bold(renderCacheHit ? "HIT" : "MISS"), " ") 182 | + "".concat(chalk.hex('A0AFBF')(time.toPrecision(3) + 's'), " ")); 183 | renderCacheHit = false; 184 | return [2 /*return*/, data]; 185 | case 2: return [4 /*yield*/, cachedFn.apply(void 0, args)]; 186 | case 3: return [2 /*return*/, _a.sent()]; 187 | } 188 | }); 189 | }); 190 | }; 191 | } 192 | var Audit = /** @class */ (function () { 193 | function Audit() { 194 | this._start = performance.now(); 195 | this._end = null; 196 | } 197 | Audit.prototype.getSec = function () { 198 | this._end = performance.now(); 199 | return ((this._end - this._start) / 1000); 200 | }; 201 | return Audit; 202 | }()); 203 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import chalk from "chalk" 2 | import { unstable_cache } from "next/cache" 3 | import { cache } from "react" 4 | //@ts-expect-error 5 | import type { cache as cacheType } from "react/canary.d.ts" 6 | 7 | type Callback = (...args: Parameters) => ReturnType | Promise 8 | 9 | export type MemoizeOptionType = { 10 | persist?: boolean, 11 | duration?: number, 12 | log?: ('dedupe' | 'datacache' | 'verbose')[], 13 | logid?: string 14 | revalidateTags?: ((...params: Parameters) => string[]) | string[], 15 | additionalCacheKey?: ((...params: Parameters) => string[]) | string[], 16 | suppressWarnings?: boolean 17 | } 18 | 19 | /** ### MEMOIZE: unstable_cache() + cache() 20 | A way to generalize the data caching function in Next.js 21 | **/ 22 | 23 | export function memoize

( 24 | cb: Callback, 25 | opts?: MemoizeOptionType

26 | ) { 27 | if (typeof window !== "undefined") { 28 | // Fallback to original function if window is defined (client side) 29 | if (!opts?.suppressWarnings) { 30 | console.warn("⚠️ Memoize: this function will not work in the client environment.") 31 | } 32 | return async (...args: P) => { 33 | return cb(...args) 34 | }; 35 | } 36 | if (typeof cache === "undefined" && typeof unstable_cache === "undefined") { 37 | // Fallback to the original function if there's no caching functions (ex. on react native) 38 | if (!opts?.suppressWarnings) { 39 | console.warn("⚠️ Memoize: cache or unstable_cache function not found. Falling back to original function") 40 | } 41 | return async (...args: P) => { 42 | return cb(...args); 43 | }; 44 | } 45 | 46 | const { // default values 47 | persist = true, 48 | duration = Infinity, 49 | log = [], 50 | revalidateTags: revalidateTagsFn, 51 | additionalCacheKey: additionalCacheKeyFn 52 | } = opts ?? {} 53 | const logDataCache = log.includes('datacache') 54 | const logDedupe = log.includes('dedupe') 55 | const logVerbose = log.includes('verbose') 56 | const logID = opts?.logid ? `${opts.logid} ` : '' 57 | 58 | let oldData: any 59 | let renderCacheHit: boolean 60 | renderCacheHit = false 61 | 62 | const cachedFn = cache( 63 | async (...args: P) => { 64 | renderCacheHit = true 65 | if (persist) { 66 | // Initialize unstable_cache 67 | const additionalCacheKey = 68 | additionalCacheKeyFn ? 69 | typeof additionalCacheKeyFn === 'function' ? 70 | additionalCacheKeyFn(...args) : additionalCacheKeyFn 71 | : [] 72 | const revalidateTags = 73 | revalidateTagsFn ? 74 | typeof revalidateTagsFn === 'function' ? 75 | revalidateTagsFn(...args) : revalidateTagsFn 76 | : []; 77 | const cacheKey = [cb.toString(), JSON.stringify(args), ...additionalCacheKey] 78 | const nextOpts = { 79 | revalidate: duration, 80 | tags: ['all', ...revalidateTags] 81 | } 82 | if (logDataCache) { 83 | let dataCacheMiss = false 84 | const audit = new Audit() 85 | const data = await unstable_cache( 86 | async () => { 87 | dataCacheMiss = true 88 | return cb(...args) 89 | }, 90 | cacheKey, nextOpts 91 | )() 92 | const time = audit!.getSec() 93 | const isSame = oldData === data 94 | console.log( 95 | `${chalk.hex('AA7ADB').bold("Data Cache")} - ` 96 | + `${chalk.hex('A0AFBF')(`${logID}${cb.name}`)} ${chalk.hex('#AA7ADB').bold(dataCacheMiss ? "MISS" : "HIT")} ` 97 | + `${chalk.hex('A0AFBF')(time.toPrecision(3) + 's')} ` 98 | + `${chalk.hex('AA7ADB').bold(dataCacheMiss ? isSame ? 'background-revalidation' : 'on-demand revalidation' : "")} ` 99 | ) 100 | if (logVerbose) 101 | console.log(`${chalk.hex('6A7C8E').bold(` └ ${cb.name ?? "Anon Func"} ${JSON.stringify(args)}`)}`) 102 | oldData = data 103 | return data 104 | 105 | } else { 106 | const data = await unstable_cache( 107 | async () => { 108 | return cb(...args) 109 | }, [cb.toString(), JSON.stringify(args), ...additionalCacheKey], { 110 | revalidate: duration, 111 | tags: ['all', ...revalidateTags] 112 | } 113 | )() 114 | return data 115 | } 116 | } else { 117 | // return callback directly 118 | return cb(...args) 119 | } 120 | 121 | } 122 | ) 123 | return async (...args: P) => { 124 | 125 | if (logDedupe) { 126 | let audit2 = new Audit() 127 | let data = await cachedFn(...args) 128 | let time = audit2.getSec() 129 | console.log( 130 | `${chalk.hex('#FFB713').bold("Memoization")} - ` 131 | + `${chalk.hex('A0AFBF')(`${logID}${cb.name}`)} ${chalk.hex('#FFC94E').bold(renderCacheHit ? "HIT" : "MISS")} ` 132 | + `${chalk.hex('A0AFBF')(time.toPrecision(3) + 's')} ` 133 | ) 134 | renderCacheHit = false 135 | return data 136 | } else { 137 | return await cachedFn(...args) 138 | } 139 | } 140 | } 141 | 142 | 143 | 144 | class Audit { 145 | private _start: number = performance.now() 146 | private _end: number | null = null 147 | getSec() { 148 | this._end = performance.now() 149 | return ((this._end - this._start) / 1000) 150 | } 151 | } 152 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "module": "ESNext", 5 | "declaration": true, 6 | "outDir": "./src", 7 | "strict": true, 8 | "moduleResolution": "node", 9 | "allowSyntheticDefaultImports": true, 10 | // "skipLibCheck": true, 11 | // "resolveJsonModule": true, 12 | // "isolatedModules": true, 13 | // "jsx": "preserve", 14 | // "incremental": true, 15 | "lib": [ 16 | "dom", 17 | "dom.iterable", 18 | "esnext" 19 | ], 20 | "plugins": [ 21 | { 22 | "name": "next" 23 | } 24 | ], 25 | }, 26 | "include": [ 27 | "src", 28 | "next-env.d.ts", 29 | "**/*.tsx", 30 | ".next/types/**/*.ts", 31 | ], 32 | "exclude": [ 33 | "node_modules", 34 | ] 35 | } --------------------------------------------------------------------------------