├── .eslintignore ├── .eslintrc.js ├── .gitignore ├── .npmignore ├── .prettierrc ├── LICENSE ├── README.md ├── index.d.ts ├── index.js ├── index.ts ├── lib ├── index.ts ├── interfaces │ ├── index.ts │ └── redis-module-options.interface.ts ├── redis-cache.helper.ts ├── redis.constants.ts ├── redis.decorator.ts └── redis.module.ts ├── package-lock.json ├── package.json └── tsconfig.json /.eslintignore: -------------------------------------------------------------------------------- 1 | lib/**/*.test.ts 2 | lib/**/files/** 3 | test/** -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | node: true, 5 | jest: true, 6 | }, 7 | extends: [ 8 | 'eslint:recommended', 9 | 'plugin:@typescript-eslint/recommended', 10 | 'plugin:prettier/recommended', 11 | ], 12 | parser: '@typescript-eslint/parser', 13 | parserOptions: { 14 | project: 'tsconfig.json', 15 | sourceType: 'module', 16 | }, 17 | plugins: ['@typescript-eslint'], 18 | rules: { 19 | '@typescript-eslint/interface-name-prefix': 'off', 20 | '@typescript-eslint/explicit-function-return-type': 'off', 21 | '@typescript-eslint/no-explicit-any': 'off', 22 | '@typescript-eslint/no-use-before-define': 'off', 23 | '@typescript-eslint/no-non-null-assertion': 'off', 24 | '@typescript-eslint/ban-types': 'off', 25 | '@typescript-eslint/explicit-module-boundary-types': 'off', 26 | }, 27 | }; 28 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | .DS_Store 9 | 10 | # Diagnostic reports (https://nodejs.org/api/report.html) 11 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 12 | 13 | # Runtime data 14 | pids 15 | *.pid 16 | *.seed 17 | *.pid.lock 18 | 19 | # Directory for instrumented libs generated by jscoverage/JSCover 20 | lib-cov 21 | 22 | # Coverage directory used by tools like istanbul 23 | coverage 24 | *.lcov 25 | 26 | # nyc test coverage 27 | .nyc_output 28 | 29 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 30 | .grunt 31 | 32 | # Bower dependency directory (https://bower.io/) 33 | bower_components 34 | 35 | # node-waf configuration 36 | .lock-wscript 37 | 38 | # Compiled binary addons (https://nodejs.org/api/addons.html) 39 | build/Release 40 | 41 | # Dependency directories 42 | node_modules/ 43 | jspm_packages/ 44 | 45 | # TypeScript v1 declaration files 46 | typings/ 47 | 48 | # TypeScript cache 49 | *.tsbuildinfo 50 | 51 | # Optional npm cache directory 52 | .npm 53 | 54 | # Optional eslint cache 55 | .eslintcache 56 | 57 | # Microbundle cache 58 | .rpt2_cache/ 59 | .rts2_cache_cjs/ 60 | .rts2_cache_es/ 61 | .rts2_cache_umd/ 62 | 63 | # Optional REPL history 64 | .node_repl_history 65 | 66 | # Output of 'npm pack' 67 | *.tgz 68 | 69 | # Yarn Integrity file 70 | .yarn-integrity 71 | 72 | # dotenv environment variables file 73 | .env 74 | .env.test 75 | 76 | # parcel-bundler cache (https://parceljs.org/) 77 | .cache 78 | 79 | # Next.js build output 80 | .next 81 | 82 | # Nuxt.js build / generate output 83 | .nuxt 84 | dist 85 | 86 | # Gatsby files 87 | .cache/ 88 | # Comment in the public line in if your project uses Gatsby and *not* Next.js 89 | # https://nextjs.org/blog/next-9-1#public-directory-support 90 | # public 91 | 92 | # vuepress build output 93 | .vuepress/dist 94 | 95 | # Serverless directories 96 | .serverless/ 97 | 98 | # FuseBox cache 99 | .fusebox/ 100 | 101 | # DynamoDB Local files 102 | .dynamodb/ 103 | 104 | # TernJS port file 105 | .tern-port 106 | 107 | # IDE 108 | /.idea 109 | /.awcache 110 | /.vscode 111 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | # source 2 | lib 3 | tests 4 | index.ts 5 | package-lock.json 6 | tslint.json 7 | tsconfig.json 8 | .prettierrc 9 | .eslintignore 10 | .eslintrc.js 11 | .vscode 12 | 13 | # github 14 | .github 15 | CONTRIBUTING.md 16 | renovate.json 17 | 18 | # ci 19 | .circleci 20 | 21 | rendering.jpg -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "trailingComma": "all", 3 | "singleQuote": true 4 | } 5 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 jasonsoft 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | JasonSoft Logo 3 | Nest Logo 4 | ioredis Logo 5 |

6 | 7 | # nestjs-redis 8 | 9 | Redis(ioredis) module for Nest framework (node.js) 🚀 10 | 11 | [![NPM version][npm-img]][npm-url] 12 | [![NPM Downloads][downloads-image]][npm-url] 13 | [![License][license-img]][license-url] 14 | 15 | ## Installation 16 | 17 | ```bash 18 | $ npm i --save @jasonsoft/nestjs-redis ioredis 19 | ``` 20 | 21 | ## Usage 22 | 23 | Import `RedisModule`: 24 | 25 | ```typescript 26 | @Module({ 27 | imports: [ 28 | RedisModule.forRoot({ 29 | url: 'redis://username:password@localhost:6379', 30 | }), 31 | ], 32 | providers: [...], 33 | }) 34 | export class AppModule {} 35 | ``` 36 | 37 | ```typescript 38 | @Module({ 39 | imports: [ 40 | RedisModule.forRoot({ 41 | port: 6379, // Redis port 42 | host: 'localhost', // Redis host 43 | username: 'default', // needs Redis >= 6 44 | password: 'password', 45 | db: 0, // Defaults to 0 46 | }), 47 | ], 48 | providers: [...], 49 | }) 50 | export class AppModule {} 51 | ``` 52 | 53 | Inject `RedisCacheHelper`: 54 | 55 | ```typescript 56 | @Injectable() 57 | export class AppService { 58 | constructor(private readonly redisCacheHelper: RedisCacheHelper) {} 59 | } 60 | ``` 61 | 62 | ## Async options 63 | 64 | Quite often you might want to asynchronously pass your module options instead of passing them beforehand. In such case, use `forRootAsync()` method. 65 | 66 | ```typescript 67 | RedisModule.forRootAsync({ 68 | imports: [ConfigModule], 69 | useFactory: (configService: ConfigService) => ({ 70 | url: configService.get('REDIS_URL'), 71 | }), 72 | inject: [ConfigService], 73 | }), 74 | ``` 75 | 76 | ## Example 77 | 78 | ```typescript 79 | import { RedisCacheHelper } from '@jasonsoft/nestjs-redis'; 80 | import { Injectable } from '@nestjs/common'; 81 | 82 | export interface User { 83 | id: number; 84 | name: string; 85 | age: number; 86 | } 87 | 88 | export const USERS: User[] = [ 89 | { 90 | id: 1, 91 | name: 'Jason Song', 92 | age: 18, 93 | }, 94 | { 95 | id: 2, 96 | name: '成长的小猪', 97 | age: 30, 98 | }, 99 | ]; 100 | 101 | @Injectable() 102 | export class AppService { 103 | constructor(private readonly redisCacheHelper: RedisCacheHelper) {} 104 | 105 | async getUser(id: number): Promise { 106 | const cacheKey = `user:${id}`; 107 | let user = await this.redisCacheHelper.getAsObj(cacheKey); 108 | if (!user) { 109 | user = USERS.find((user) => user.id === id); 110 | if (user) { 111 | await this.redisCacheHelper.set(cacheKey, user); 112 | } 113 | } 114 | return user; 115 | } 116 | 117 | async commonOperation() { 118 | /** string type */ 119 | await this.redisCacheHelper.set('string:type', 'test', 60); 120 | const stringValue = await this.redisCacheHelper.getAsStr('string:type'); 121 | 122 | /** number type */ 123 | await this.redisCacheHelper.set('number:type', 1, '30m'); 124 | const numberValue = await this.redisCacheHelper.getAsNum('number:type'); 125 | 126 | /** boolean type */ 127 | await this.redisCacheHelper.set('boolean:type', true, '8h'); 128 | const booleanValue = await this.redisCacheHelper.getAsBool('boolean:type'); 129 | 130 | /** object:type */ 131 | const user = USERS.find((user) => user.name === 'Jason Song'); 132 | await this.redisCacheHelper.set('object:type', user, '7d'); 133 | const objectValue = await this.redisCacheHelper.getAsObj( 134 | 'object:type', 135 | ); 136 | } 137 | } 138 | ``` 139 | 140 | ## ioredis usage 141 | 142 | > To use ioredis built-in usage 143 | 144 | ```typescript 145 | /** Import `InjectRedis` and `Redis` from `@jasonsoft/nestjs-redis` */ 146 | import { InjectRedis, Redis } from '@jasonsoft/nestjs-redis'; 147 | import { Injectable } from '@nestjs/common'; 148 | 149 | @Injectable() 150 | export class AppService { 151 | /** The @InjectRedis() decorator provides injection into Redis */ 152 | constructor(@InjectRedis() private readonly redis: Redis) {} 153 | 154 | async getUser(): Promise { 155 | const names = ['jason', 'jasonsoft', '成长的小猪']; 156 | await this.redis.lpush('names', ...names); 157 | return await this.redis.lpop('names'); 158 | } 159 | 160 | /** ioredis basic usage */ 161 | async basicUsage() { 162 | await this.redis.set('mykey', 'value'); 163 | 164 | let result = await this.redis.get('mykey'); 165 | console.log(result); // Prints "value" 166 | 167 | result = await this.redis.get('mykey'); 168 | console.log(result); // Prints "value" 169 | 170 | await this.redis.zadd( 171 | 'sortedSet', 172 | 1, 173 | 'one', 174 | 2, 175 | 'dos', 176 | 4, 177 | 'quatro', 178 | 3, 179 | 'three', 180 | ); 181 | const elements = await this.redis.zrange('sortedSet', 0, 2, 'WITHSCORES'); 182 | console.log(elements); 183 | // ["one", "1", "dos", "2", "three", "3"] as if the command was `redis> ZRANGE sortedSet 0 2 WITHSCORES` 184 | } 185 | } 186 | ``` 187 | 188 | [npm-img]: https://img.shields.io/npm/v/@jasonsoft/nestjs-redis.svg?style=flat-square 189 | [npm-url]: https://npmjs.org/package/@jasonsoft/nestjs-redis 190 | [license-img]: https://img.shields.io/badge/license-MIT-green.svg?style=flat-square 191 | [license-url]: LICENSE 192 | [downloads-image]: https://img.shields.io/npm/dt/@jasonsoft/nestjs-redis.svg?style=flat-square 193 | [project-icon]: https://avatars.githubusercontent.com/u/22167571?v=4 194 | -------------------------------------------------------------------------------- /index.d.ts: -------------------------------------------------------------------------------- 1 | export * from './dist'; 2 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | function __export(m) { 3 | for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; 4 | } 5 | exports.__esModule = true; 6 | __export(require("./dist")); 7 | -------------------------------------------------------------------------------- /index.ts: -------------------------------------------------------------------------------- 1 | export * from './dist'; 2 | -------------------------------------------------------------------------------- /lib/index.ts: -------------------------------------------------------------------------------- 1 | export * from './interfaces'; 2 | export * from './redis.module'; 3 | export * from './redis.decorator'; 4 | export * from './redis-cache.helper'; 5 | -------------------------------------------------------------------------------- /lib/interfaces/index.ts: -------------------------------------------------------------------------------- 1 | export * from './redis-module-options.interface'; 2 | -------------------------------------------------------------------------------- /lib/interfaces/redis-module-options.interface.ts: -------------------------------------------------------------------------------- 1 | import { FactoryProvider, ModuleMetadata, Type } from '@nestjs/common'; 2 | import { Redis, RedisOptions } from 'ioredis'; 3 | 4 | export { Redis }; 5 | 6 | /** 7 | * Redis Module Options interface 8 | * Added by Jason.Song (成长的小猪) on 2023/03/16 23:02:57 9 | */ 10 | export interface RedisModuleOptions extends RedisOptions { 11 | /** 12 | * URI scheme to be used to specify connection options as a redis:// URL or rediss:// URL. 13 | * @example 14 | * ```ts 15 | * // Connect to 127.0.0.1:6380, db 4, using password "authpassword": 16 | * 'redis://:authpassword@127.0.0.1:6380/4' 17 | * 18 | * // Username can also be passed via URI. 19 | * 'redis://username:authpassword@127.0.0.1:6380/4' 20 | * ``` 21 | */ 22 | url?: string; 23 | } 24 | 25 | export interface RedisModuleOptionsFactory { 26 | createRedisModuleOptions(): Promise | RedisModuleOptions; 27 | } 28 | 29 | /** 30 | * Redis Module Async Options interface 31 | */ 32 | export interface RedisModuleAsyncOptions 33 | extends Pick { 34 | /** 35 | * Existing Provider to be used. 36 | */ 37 | useExisting?: Type; 38 | 39 | /** 40 | * Type (class name) of provider (instance to be registered and injected). 41 | */ 42 | useClass?: Type; 43 | 44 | /** 45 | * Factory function that returns an instance of the provider to be injected. 46 | */ 47 | useFactory?: ( 48 | ...args: any[] 49 | ) => Promise | RedisModuleOptions; 50 | 51 | /** 52 | * Optional list of providers to be injected into the context of the Factory function. 53 | */ 54 | inject?: FactoryProvider['inject']; 55 | } 56 | -------------------------------------------------------------------------------- /lib/redis-cache.helper.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@nestjs/common'; 2 | import { Redis } from './interfaces'; 3 | import { InjectRedis } from './redis.decorator'; 4 | 5 | /** 6 | * Redis Cache Helper 7 | * Added by Jason.Song (成长的小猪) on 2023/03/16 23:59:41 8 | */ 9 | @Injectable() 10 | export class RedisCacheHelper { 11 | constructor(@InjectRedis() private readonly redis: Redis) {} 12 | 13 | /** 14 | * Set specified type data 15 | * Added by Jason.Song (成长的小猪) on 2023/03/17 00:01:01 16 | * @param key 17 | * @param value 18 | * @param expire Set a key's time to live in seconds, for example: 60, "30m", "8h", "7d". Values are interpreted as counts of seconds. If you use strings, make sure to provide time units (minutes, hours, days, etc.) 19 | * @returns 20 | */ 21 | async set( 22 | key: string, 23 | value: string | number | boolean | object, 24 | expire?: number | string, 25 | ): Promise { 26 | let result: string; 27 | if (typeof value === 'object') { 28 | result = await this.redis.set(key, Buffer.from(JSON.stringify(value))); 29 | } else if (typeof value === 'boolean') { 30 | result = await this.redis.set(key, value.toString()); 31 | } else { 32 | result = await this.redis.set(key, value); 33 | } 34 | if (expire) { 35 | let seconds: number; 36 | if (typeof expire === 'string') { 37 | const matchArray = expire.match(/(\d+)([mhd])/); 38 | if (!matchArray) { 39 | throw new Error( 40 | 'Invalid ttl format, if you use strings, make sure to provide time units (minutes, hours, days, etc.), for example: "30m", "8h", "7d"', 41 | ); 42 | } 43 | const [, num, unit] = matchArray; 44 | const multiplier: Record = { 45 | m: 60, 46 | h: 60 * 60, 47 | d: 24 * 60 * 60, 48 | }; 49 | seconds = Math.floor(parseInt(num) * multiplier[unit]); 50 | } else { 51 | seconds = expire; 52 | } 53 | await this.redis.expire(key, seconds); 54 | } 55 | return result === 'OK'; 56 | } 57 | 58 | /** 59 | * delete key 60 | * Added by Jason.Song (成长的小猪) on 2023/03/17 00:12:53 61 | * @param keys 62 | * @returns 63 | */ 64 | async del(...keys: string[]): Promise { 65 | return this.redis.del(keys); 66 | } 67 | 68 | /** 69 | * Get string type data by key 70 | * Added by Jason.Song (成长的小猪) on 2023/03/17 00:13:31 71 | * @param key 72 | * @param defaults 73 | * @returns 74 | */ 75 | async getAsStr(key: string, defaults?: string): Promise { 76 | const value = await this.redis.get(key); 77 | if (!value) { 78 | return defaults; 79 | } 80 | return value; 81 | } 82 | 83 | /** 84 | * Get number type data by key 85 | * Added by Jason.Song (成长的小猪) on 2023/03/17 00:14:39 86 | * @param key 87 | * @param defaults 88 | * @returns 89 | */ 90 | async getAsNum(key: string, defaults?: number): Promise { 91 | const value = await this.redis.get(key); 92 | if (!value) { 93 | return defaults; 94 | } 95 | return +value; 96 | } 97 | 98 | /** 99 | * Get boolean type data by key 100 | * Added by Jason.Song (成长的小猪) on 2023/03/17 00:18:03 101 | * @param key 102 | * @param defaults 103 | * @returns 104 | */ 105 | async getAsBool( 106 | key: string, 107 | defaults?: boolean, 108 | ): Promise { 109 | const value = await this.redis.get(key); 110 | if (!value) { 111 | return defaults; 112 | } 113 | return ['true', 'True', '1'].includes(value); 114 | } 115 | 116 | /** 117 | * Get object type data by key 118 | * Added by Jason.Song (成长的小猪) on 2023/03/17 00:21:07 119 | * @param key 120 | * @param defaults 121 | * @returns 122 | */ 123 | async getAsObj(key: string, defaults?: T): Promise { 124 | const value = await this.redis.get(key); 125 | if (!value) { 126 | return defaults; 127 | } 128 | return JSON.parse(value) as T; 129 | } 130 | } 131 | -------------------------------------------------------------------------------- /lib/redis.constants.ts: -------------------------------------------------------------------------------- 1 | export const JASONSOFT_REDIS = Symbol('JASONSOFT_REDIS'); 2 | 3 | export const JASONSOFT_REDIS_OPTIONS = Symbol('JASONSOFT_REDIS_OPTIONS'); 4 | -------------------------------------------------------------------------------- /lib/redis.decorator.ts: -------------------------------------------------------------------------------- 1 | import { Inject } from '@nestjs/common'; 2 | import { JASONSOFT_REDIS } from './redis.constants'; 3 | 4 | /** 5 | * Inject Jasonsoft Redis client 6 | * Added by Jason.Song (成长的小猪) on 2023/03/16 23:05:25 7 | */ 8 | export const InjectRedis = (): ParameterDecorator => 9 | Inject(JASONSOFT_REDIS) as ParameterDecorator; 10 | -------------------------------------------------------------------------------- /lib/redis.module.ts: -------------------------------------------------------------------------------- 1 | import { DynamicModule, Module, Provider, Type } from '@nestjs/common'; 2 | import Redis from 'ioredis'; 3 | import { 4 | RedisModuleOptions, 5 | RedisModuleAsyncOptions, 6 | RedisModuleOptionsFactory, 7 | } from './interfaces'; 8 | import { RedisCacheHelper } from './redis-cache.helper'; 9 | import { JASONSOFT_REDIS, JASONSOFT_REDIS_OPTIONS } from './redis.constants'; 10 | 11 | /** 12 | * JasonSoft Redis Module 13 | * Added by Jason.Song (成长的小猪) on 2023/03/16 23:02:18 14 | */ 15 | @Module({}) 16 | export class RedisModule { 17 | static forRoot(options: RedisModuleOptions): DynamicModule { 18 | return { 19 | module: RedisModule, 20 | global: true, 21 | providers: [ 22 | { 23 | provide: JASONSOFT_REDIS_OPTIONS, 24 | useValue: options, 25 | }, 26 | { 27 | provide: JASONSOFT_REDIS, 28 | useFactory: () => { 29 | return this.createRedisClient(options); 30 | }, 31 | }, 32 | RedisCacheHelper, 33 | ], 34 | exports: [JASONSOFT_REDIS, RedisCacheHelper], 35 | }; 36 | } 37 | 38 | private static createRedisClient(options: RedisModuleOptions) { 39 | const { url, ...redisOptions } = options; 40 | if (url) { 41 | return new Redis(url, redisOptions); 42 | } 43 | return new Redis(options); 44 | } 45 | 46 | static forRootAsync(options: RedisModuleAsyncOptions): DynamicModule { 47 | return { 48 | module: RedisModule, 49 | global: true, 50 | imports: options.imports || [], 51 | providers: [ 52 | ...this.createAsyncProviders(options), 53 | { 54 | provide: JASONSOFT_REDIS, 55 | useFactory: (options: RedisModuleOptions) => { 56 | return this.createRedisClient(options); 57 | }, 58 | inject: [JASONSOFT_REDIS_OPTIONS], 59 | }, 60 | RedisCacheHelper, 61 | ], 62 | exports: [JASONSOFT_REDIS, RedisCacheHelper], 63 | }; 64 | } 65 | 66 | private static createAsyncProviders( 67 | options: RedisModuleAsyncOptions, 68 | ): Provider[] { 69 | if (options.useExisting || options.useFactory) { 70 | return [this.createAsyncOptionsProvider(options)]; 71 | } 72 | const useClass = options.useClass as Type; 73 | return [ 74 | this.createAsyncOptionsProvider(options), 75 | { 76 | provide: useClass, 77 | useClass, 78 | }, 79 | ]; 80 | } 81 | 82 | private static createAsyncOptionsProvider( 83 | asyncOptions: RedisModuleAsyncOptions, 84 | ): Provider { 85 | if (asyncOptions.useFactory) { 86 | return { 87 | provide: JASONSOFT_REDIS_OPTIONS, 88 | useFactory: asyncOptions.useFactory, 89 | inject: asyncOptions.inject || [], 90 | }; 91 | } 92 | 93 | return { 94 | provide: JASONSOFT_REDIS_OPTIONS, 95 | useFactory: async (optionsFactory: RedisModuleOptionsFactory) => 96 | optionsFactory.createRedisModuleOptions(), 97 | inject: [ 98 | (asyncOptions.useClass || 99 | asyncOptions.useExisting) as Type, 100 | ], 101 | }; 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@jasonsoft/nestjs-redis", 3 | "version": "1.0.2", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "@jasonsoft/nestjs-redis", 9 | "version": "1.0.2", 10 | "license": "MIT", 11 | "devDependencies": { 12 | "@nestjs/common": "10.0.5", 13 | "@types/node": "20.4.1", 14 | "@typescript-eslint/eslint-plugin": "6.0.0", 15 | "@typescript-eslint/parser": "6.0.0", 16 | "eslint": "8.44.0", 17 | "eslint-config-prettier": "8.8.0", 18 | "eslint-plugin-prettier": "5.0.0", 19 | "ioredis": "5.3.2", 20 | "prettier": "3.0.0", 21 | "rimraf": "5.0.1", 22 | "typescript": "5.1.6" 23 | }, 24 | "peerDependencies": { 25 | "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0", 26 | "ioredis": "^4.0.0 || ^5.0.0" 27 | } 28 | }, 29 | "node_modules/@aashutoshrathi/word-wrap": { 30 | "version": "1.2.6", 31 | "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", 32 | "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", 33 | "dev": true, 34 | "engines": { 35 | "node": ">=0.10.0" 36 | } 37 | }, 38 | "node_modules/@eslint-community/eslint-utils": { 39 | "version": "4.4.0", 40 | "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", 41 | "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", 42 | "dev": true, 43 | "dependencies": { 44 | "eslint-visitor-keys": "^3.3.0" 45 | }, 46 | "engines": { 47 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 48 | }, 49 | "peerDependencies": { 50 | "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" 51 | } 52 | }, 53 | "node_modules/@eslint-community/regexpp": { 54 | "version": "4.5.1", 55 | "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", 56 | "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", 57 | "dev": true, 58 | "engines": { 59 | "node": "^12.0.0 || ^14.0.0 || >=16.0.0" 60 | } 61 | }, 62 | "node_modules/@eslint/eslintrc": { 63 | "version": "2.1.0", 64 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.0.tgz", 65 | "integrity": "sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==", 66 | "dev": true, 67 | "dependencies": { 68 | "ajv": "^6.12.4", 69 | "debug": "^4.3.2", 70 | "espree": "^9.6.0", 71 | "globals": "^13.19.0", 72 | "ignore": "^5.2.0", 73 | "import-fresh": "^3.2.1", 74 | "js-yaml": "^4.1.0", 75 | "minimatch": "^3.1.2", 76 | "strip-json-comments": "^3.1.1" 77 | }, 78 | "engines": { 79 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 80 | }, 81 | "funding": { 82 | "url": "https://opencollective.com/eslint" 83 | } 84 | }, 85 | "node_modules/@eslint/js": { 86 | "version": "8.44.0", 87 | "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.44.0.tgz", 88 | "integrity": "sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==", 89 | "dev": true, 90 | "engines": { 91 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 92 | } 93 | }, 94 | "node_modules/@humanwhocodes/config-array": { 95 | "version": "0.11.10", 96 | "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", 97 | "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", 98 | "dev": true, 99 | "dependencies": { 100 | "@humanwhocodes/object-schema": "^1.2.1", 101 | "debug": "^4.1.1", 102 | "minimatch": "^3.0.5" 103 | }, 104 | "engines": { 105 | "node": ">=10.10.0" 106 | } 107 | }, 108 | "node_modules/@humanwhocodes/module-importer": { 109 | "version": "1.0.1", 110 | "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", 111 | "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", 112 | "dev": true, 113 | "engines": { 114 | "node": ">=12.22" 115 | }, 116 | "funding": { 117 | "type": "github", 118 | "url": "https://github.com/sponsors/nzakas" 119 | } 120 | }, 121 | "node_modules/@humanwhocodes/object-schema": { 122 | "version": "1.2.1", 123 | "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", 124 | "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", 125 | "dev": true 126 | }, 127 | "node_modules/@ioredis/commands": { 128 | "version": "1.2.0", 129 | "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz", 130 | "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==", 131 | "dev": true 132 | }, 133 | "node_modules/@isaacs/cliui": { 134 | "version": "8.0.2", 135 | "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", 136 | "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", 137 | "dev": true, 138 | "dependencies": { 139 | "string-width": "^5.1.2", 140 | "string-width-cjs": "npm:string-width@^4.2.0", 141 | "strip-ansi": "^7.0.1", 142 | "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", 143 | "wrap-ansi": "^8.1.0", 144 | "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" 145 | }, 146 | "engines": { 147 | "node": ">=12" 148 | } 149 | }, 150 | "node_modules/@isaacs/cliui/node_modules/ansi-regex": { 151 | "version": "6.0.1", 152 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", 153 | "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", 154 | "dev": true, 155 | "engines": { 156 | "node": ">=12" 157 | }, 158 | "funding": { 159 | "url": "https://github.com/chalk/ansi-regex?sponsor=1" 160 | } 161 | }, 162 | "node_modules/@isaacs/cliui/node_modules/strip-ansi": { 163 | "version": "7.1.0", 164 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 165 | "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 166 | "dev": true, 167 | "dependencies": { 168 | "ansi-regex": "^6.0.1" 169 | }, 170 | "engines": { 171 | "node": ">=12" 172 | }, 173 | "funding": { 174 | "url": "https://github.com/chalk/strip-ansi?sponsor=1" 175 | } 176 | }, 177 | "node_modules/@lukeed/csprng": { 178 | "version": "1.1.0", 179 | "resolved": "https://registry.npmjs.org/@lukeed/csprng/-/csprng-1.1.0.tgz", 180 | "integrity": "sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==", 181 | "dev": true, 182 | "engines": { 183 | "node": ">=8" 184 | } 185 | }, 186 | "node_modules/@nestjs/common": { 187 | "version": "10.0.5", 188 | "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-10.0.5.tgz", 189 | "integrity": "sha512-0E+SBI+SKswXbFG+Nwtnctrei5dvdFJ7b9/fQDL6KzDBtZwsglJpD86S3ooxnc7ek4vRG57oN2iLmMTjrcesMg==", 190 | "dev": true, 191 | "dependencies": { 192 | "iterare": "1.2.1", 193 | "tslib": "2.6.0", 194 | "uid": "2.0.2" 195 | }, 196 | "funding": { 197 | "type": "opencollective", 198 | "url": "https://opencollective.com/nest" 199 | }, 200 | "peerDependencies": { 201 | "class-transformer": "*", 202 | "class-validator": "*", 203 | "reflect-metadata": "^0.1.12", 204 | "rxjs": "^7.1.0" 205 | }, 206 | "peerDependenciesMeta": { 207 | "class-transformer": { 208 | "optional": true 209 | }, 210 | "class-validator": { 211 | "optional": true 212 | } 213 | } 214 | }, 215 | "node_modules/@nodelib/fs.scandir": { 216 | "version": "2.1.5", 217 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 218 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 219 | "dev": true, 220 | "dependencies": { 221 | "@nodelib/fs.stat": "2.0.5", 222 | "run-parallel": "^1.1.9" 223 | }, 224 | "engines": { 225 | "node": ">= 8" 226 | } 227 | }, 228 | "node_modules/@nodelib/fs.stat": { 229 | "version": "2.0.5", 230 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 231 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 232 | "dev": true, 233 | "engines": { 234 | "node": ">= 8" 235 | } 236 | }, 237 | "node_modules/@nodelib/fs.walk": { 238 | "version": "1.2.8", 239 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 240 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 241 | "dev": true, 242 | "dependencies": { 243 | "@nodelib/fs.scandir": "2.1.5", 244 | "fastq": "^1.6.0" 245 | }, 246 | "engines": { 247 | "node": ">= 8" 248 | } 249 | }, 250 | "node_modules/@pkgjs/parseargs": { 251 | "version": "0.11.0", 252 | "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", 253 | "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", 254 | "dev": true, 255 | "optional": true, 256 | "engines": { 257 | "node": ">=14" 258 | } 259 | }, 260 | "node_modules/@pkgr/utils": { 261 | "version": "2.4.2", 262 | "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz", 263 | "integrity": "sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==", 264 | "dev": true, 265 | "dependencies": { 266 | "cross-spawn": "^7.0.3", 267 | "fast-glob": "^3.3.0", 268 | "is-glob": "^4.0.3", 269 | "open": "^9.1.0", 270 | "picocolors": "^1.0.0", 271 | "tslib": "^2.6.0" 272 | }, 273 | "engines": { 274 | "node": "^12.20.0 || ^14.18.0 || >=16.0.0" 275 | }, 276 | "funding": { 277 | "url": "https://opencollective.com/unts" 278 | } 279 | }, 280 | "node_modules/@types/json-schema": { 281 | "version": "7.0.12", 282 | "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", 283 | "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", 284 | "dev": true 285 | }, 286 | "node_modules/@types/node": { 287 | "version": "20.4.1", 288 | "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.1.tgz", 289 | "integrity": "sha512-JIzsAvJeA/5iY6Y/OxZbv1lUcc8dNSE77lb2gnBH+/PJ3lFR1Ccvgwl5JWnHAkNHcRsT0TbpVOsiMKZ1F/yyJg==", 290 | "dev": true 291 | }, 292 | "node_modules/@types/semver": { 293 | "version": "7.5.0", 294 | "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", 295 | "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", 296 | "dev": true 297 | }, 298 | "node_modules/@typescript-eslint/eslint-plugin": { 299 | "version": "6.0.0", 300 | "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.0.0.tgz", 301 | "integrity": "sha512-xuv6ghKGoiq856Bww/yVYnXGsKa588kY3M0XK7uUW/3fJNNULKRfZfSBkMTSpqGG/8ZCXCadfh8G/z/B4aqS/A==", 302 | "dev": true, 303 | "dependencies": { 304 | "@eslint-community/regexpp": "^4.5.0", 305 | "@typescript-eslint/scope-manager": "6.0.0", 306 | "@typescript-eslint/type-utils": "6.0.0", 307 | "@typescript-eslint/utils": "6.0.0", 308 | "@typescript-eslint/visitor-keys": "6.0.0", 309 | "debug": "^4.3.4", 310 | "grapheme-splitter": "^1.0.4", 311 | "graphemer": "^1.4.0", 312 | "ignore": "^5.2.4", 313 | "natural-compare": "^1.4.0", 314 | "natural-compare-lite": "^1.4.0", 315 | "semver": "^7.5.0", 316 | "ts-api-utils": "^1.0.1" 317 | }, 318 | "engines": { 319 | "node": "^16.0.0 || >=18.0.0" 320 | }, 321 | "funding": { 322 | "type": "opencollective", 323 | "url": "https://opencollective.com/typescript-eslint" 324 | }, 325 | "peerDependencies": { 326 | "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", 327 | "eslint": "^7.0.0 || ^8.0.0" 328 | }, 329 | "peerDependenciesMeta": { 330 | "typescript": { 331 | "optional": true 332 | } 333 | } 334 | }, 335 | "node_modules/@typescript-eslint/parser": { 336 | "version": "6.0.0", 337 | "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.0.0.tgz", 338 | "integrity": "sha512-TNaufYSPrr1U8n+3xN+Yp9g31vQDJqhXzzPSHfQDLcaO4tU+mCfODPxCwf4H530zo7aUBE3QIdxCXamEnG04Tg==", 339 | "dev": true, 340 | "dependencies": { 341 | "@typescript-eslint/scope-manager": "6.0.0", 342 | "@typescript-eslint/types": "6.0.0", 343 | "@typescript-eslint/typescript-estree": "6.0.0", 344 | "@typescript-eslint/visitor-keys": "6.0.0", 345 | "debug": "^4.3.4" 346 | }, 347 | "engines": { 348 | "node": "^16.0.0 || >=18.0.0" 349 | }, 350 | "funding": { 351 | "type": "opencollective", 352 | "url": "https://opencollective.com/typescript-eslint" 353 | }, 354 | "peerDependencies": { 355 | "eslint": "^7.0.0 || ^8.0.0" 356 | }, 357 | "peerDependenciesMeta": { 358 | "typescript": { 359 | "optional": true 360 | } 361 | } 362 | }, 363 | "node_modules/@typescript-eslint/scope-manager": { 364 | "version": "6.0.0", 365 | "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.0.0.tgz", 366 | "integrity": "sha512-o4q0KHlgCZTqjuaZ25nw5W57NeykZT9LiMEG4do/ovwvOcPnDO1BI5BQdCsUkjxFyrCL0cSzLjvIMfR9uo7cWg==", 367 | "dev": true, 368 | "dependencies": { 369 | "@typescript-eslint/types": "6.0.0", 370 | "@typescript-eslint/visitor-keys": "6.0.0" 371 | }, 372 | "engines": { 373 | "node": "^16.0.0 || >=18.0.0" 374 | }, 375 | "funding": { 376 | "type": "opencollective", 377 | "url": "https://opencollective.com/typescript-eslint" 378 | } 379 | }, 380 | "node_modules/@typescript-eslint/type-utils": { 381 | "version": "6.0.0", 382 | "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.0.0.tgz", 383 | "integrity": "sha512-ah6LJvLgkoZ/pyJ9GAdFkzeuMZ8goV6BH7eC9FPmojrnX9yNCIsfjB+zYcnex28YO3RFvBkV6rMV6WpIqkPvoQ==", 384 | "dev": true, 385 | "dependencies": { 386 | "@typescript-eslint/typescript-estree": "6.0.0", 387 | "@typescript-eslint/utils": "6.0.0", 388 | "debug": "^4.3.4", 389 | "ts-api-utils": "^1.0.1" 390 | }, 391 | "engines": { 392 | "node": "^16.0.0 || >=18.0.0" 393 | }, 394 | "funding": { 395 | "type": "opencollective", 396 | "url": "https://opencollective.com/typescript-eslint" 397 | }, 398 | "peerDependencies": { 399 | "eslint": "^7.0.0 || ^8.0.0" 400 | }, 401 | "peerDependenciesMeta": { 402 | "typescript": { 403 | "optional": true 404 | } 405 | } 406 | }, 407 | "node_modules/@typescript-eslint/types": { 408 | "version": "6.0.0", 409 | "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.0.0.tgz", 410 | "integrity": "sha512-Zk9KDggyZM6tj0AJWYYKgF0yQyrcnievdhG0g5FqyU3Y2DRxJn4yWY21sJC0QKBckbsdKKjYDV2yVrrEvuTgxg==", 411 | "dev": true, 412 | "engines": { 413 | "node": "^16.0.0 || >=18.0.0" 414 | }, 415 | "funding": { 416 | "type": "opencollective", 417 | "url": "https://opencollective.com/typescript-eslint" 418 | } 419 | }, 420 | "node_modules/@typescript-eslint/typescript-estree": { 421 | "version": "6.0.0", 422 | "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.0.0.tgz", 423 | "integrity": "sha512-2zq4O7P6YCQADfmJ5OTDQTP3ktajnXIRrYAtHM9ofto/CJZV3QfJ89GEaM2BNGeSr1KgmBuLhEkz5FBkS2RQhQ==", 424 | "dev": true, 425 | "dependencies": { 426 | "@typescript-eslint/types": "6.0.0", 427 | "@typescript-eslint/visitor-keys": "6.0.0", 428 | "debug": "^4.3.4", 429 | "globby": "^11.1.0", 430 | "is-glob": "^4.0.3", 431 | "semver": "^7.5.0", 432 | "ts-api-utils": "^1.0.1" 433 | }, 434 | "engines": { 435 | "node": "^16.0.0 || >=18.0.0" 436 | }, 437 | "funding": { 438 | "type": "opencollective", 439 | "url": "https://opencollective.com/typescript-eslint" 440 | }, 441 | "peerDependenciesMeta": { 442 | "typescript": { 443 | "optional": true 444 | } 445 | } 446 | }, 447 | "node_modules/@typescript-eslint/utils": { 448 | "version": "6.0.0", 449 | "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.0.0.tgz", 450 | "integrity": "sha512-SOr6l4NB6HE4H/ktz0JVVWNXqCJTOo/mHnvIte1ZhBQ0Cvd04x5uKZa3zT6tiodL06zf5xxdK8COiDvPnQ27JQ==", 451 | "dev": true, 452 | "dependencies": { 453 | "@eslint-community/eslint-utils": "^4.3.0", 454 | "@types/json-schema": "^7.0.11", 455 | "@types/semver": "^7.3.12", 456 | "@typescript-eslint/scope-manager": "6.0.0", 457 | "@typescript-eslint/types": "6.0.0", 458 | "@typescript-eslint/typescript-estree": "6.0.0", 459 | "eslint-scope": "^5.1.1", 460 | "semver": "^7.5.0" 461 | }, 462 | "engines": { 463 | "node": "^16.0.0 || >=18.0.0" 464 | }, 465 | "funding": { 466 | "type": "opencollective", 467 | "url": "https://opencollective.com/typescript-eslint" 468 | }, 469 | "peerDependencies": { 470 | "eslint": "^7.0.0 || ^8.0.0" 471 | } 472 | }, 473 | "node_modules/@typescript-eslint/visitor-keys": { 474 | "version": "6.0.0", 475 | "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.0.0.tgz", 476 | "integrity": "sha512-cvJ63l8c0yXdeT5POHpL0Q1cZoRcmRKFCtSjNGJxPkcP571EfZMcNbzWAc7oK3D1dRzm/V5EwtkANTZxqvuuUA==", 477 | "dev": true, 478 | "dependencies": { 479 | "@typescript-eslint/types": "6.0.0", 480 | "eslint-visitor-keys": "^3.4.1" 481 | }, 482 | "engines": { 483 | "node": "^16.0.0 || >=18.0.0" 484 | }, 485 | "funding": { 486 | "type": "opencollective", 487 | "url": "https://opencollective.com/typescript-eslint" 488 | } 489 | }, 490 | "node_modules/acorn": { 491 | "version": "8.10.0", 492 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", 493 | "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", 494 | "dev": true, 495 | "bin": { 496 | "acorn": "bin/acorn" 497 | }, 498 | "engines": { 499 | "node": ">=0.4.0" 500 | } 501 | }, 502 | "node_modules/acorn-jsx": { 503 | "version": "5.3.2", 504 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", 505 | "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", 506 | "dev": true, 507 | "peerDependencies": { 508 | "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" 509 | } 510 | }, 511 | "node_modules/ajv": { 512 | "version": "6.12.6", 513 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 514 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 515 | "dev": true, 516 | "dependencies": { 517 | "fast-deep-equal": "^3.1.1", 518 | "fast-json-stable-stringify": "^2.0.0", 519 | "json-schema-traverse": "^0.4.1", 520 | "uri-js": "^4.2.2" 521 | }, 522 | "funding": { 523 | "type": "github", 524 | "url": "https://github.com/sponsors/epoberezkin" 525 | } 526 | }, 527 | "node_modules/ansi-regex": { 528 | "version": "5.0.1", 529 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 530 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 531 | "dev": true, 532 | "engines": { 533 | "node": ">=8" 534 | } 535 | }, 536 | "node_modules/ansi-styles": { 537 | "version": "4.3.0", 538 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 539 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 540 | "dev": true, 541 | "dependencies": { 542 | "color-convert": "^2.0.1" 543 | }, 544 | "engines": { 545 | "node": ">=8" 546 | }, 547 | "funding": { 548 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 549 | } 550 | }, 551 | "node_modules/argparse": { 552 | "version": "2.0.1", 553 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 554 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", 555 | "dev": true 556 | }, 557 | "node_modules/array-union": { 558 | "version": "2.1.0", 559 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", 560 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", 561 | "dev": true, 562 | "engines": { 563 | "node": ">=8" 564 | } 565 | }, 566 | "node_modules/balanced-match": { 567 | "version": "1.0.2", 568 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 569 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 570 | "dev": true 571 | }, 572 | "node_modules/big-integer": { 573 | "version": "1.6.51", 574 | "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", 575 | "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", 576 | "dev": true, 577 | "engines": { 578 | "node": ">=0.6" 579 | } 580 | }, 581 | "node_modules/bplist-parser": { 582 | "version": "0.2.0", 583 | "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", 584 | "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", 585 | "dev": true, 586 | "dependencies": { 587 | "big-integer": "^1.6.44" 588 | }, 589 | "engines": { 590 | "node": ">= 5.10.0" 591 | } 592 | }, 593 | "node_modules/brace-expansion": { 594 | "version": "1.1.11", 595 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 596 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 597 | "dev": true, 598 | "dependencies": { 599 | "balanced-match": "^1.0.0", 600 | "concat-map": "0.0.1" 601 | } 602 | }, 603 | "node_modules/braces": { 604 | "version": "3.0.2", 605 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 606 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 607 | "dev": true, 608 | "dependencies": { 609 | "fill-range": "^7.0.1" 610 | }, 611 | "engines": { 612 | "node": ">=8" 613 | } 614 | }, 615 | "node_modules/bundle-name": { 616 | "version": "3.0.0", 617 | "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", 618 | "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", 619 | "dev": true, 620 | "dependencies": { 621 | "run-applescript": "^5.0.0" 622 | }, 623 | "engines": { 624 | "node": ">=12" 625 | }, 626 | "funding": { 627 | "url": "https://github.com/sponsors/sindresorhus" 628 | } 629 | }, 630 | "node_modules/callsites": { 631 | "version": "3.1.0", 632 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 633 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 634 | "dev": true, 635 | "engines": { 636 | "node": ">=6" 637 | } 638 | }, 639 | "node_modules/chalk": { 640 | "version": "4.1.2", 641 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 642 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 643 | "dev": true, 644 | "dependencies": { 645 | "ansi-styles": "^4.1.0", 646 | "supports-color": "^7.1.0" 647 | }, 648 | "engines": { 649 | "node": ">=10" 650 | }, 651 | "funding": { 652 | "url": "https://github.com/chalk/chalk?sponsor=1" 653 | } 654 | }, 655 | "node_modules/cluster-key-slot": { 656 | "version": "1.1.2", 657 | "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", 658 | "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", 659 | "dev": true, 660 | "engines": { 661 | "node": ">=0.10.0" 662 | } 663 | }, 664 | "node_modules/color-convert": { 665 | "version": "2.0.1", 666 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 667 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 668 | "dev": true, 669 | "dependencies": { 670 | "color-name": "~1.1.4" 671 | }, 672 | "engines": { 673 | "node": ">=7.0.0" 674 | } 675 | }, 676 | "node_modules/color-name": { 677 | "version": "1.1.4", 678 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 679 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 680 | "dev": true 681 | }, 682 | "node_modules/concat-map": { 683 | "version": "0.0.1", 684 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 685 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 686 | "dev": true 687 | }, 688 | "node_modules/cross-spawn": { 689 | "version": "7.0.3", 690 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 691 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 692 | "dev": true, 693 | "dependencies": { 694 | "path-key": "^3.1.0", 695 | "shebang-command": "^2.0.0", 696 | "which": "^2.0.1" 697 | }, 698 | "engines": { 699 | "node": ">= 8" 700 | } 701 | }, 702 | "node_modules/debug": { 703 | "version": "4.3.4", 704 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 705 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 706 | "dev": true, 707 | "dependencies": { 708 | "ms": "2.1.2" 709 | }, 710 | "engines": { 711 | "node": ">=6.0" 712 | }, 713 | "peerDependenciesMeta": { 714 | "supports-color": { 715 | "optional": true 716 | } 717 | } 718 | }, 719 | "node_modules/deep-is": { 720 | "version": "0.1.4", 721 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", 722 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", 723 | "dev": true 724 | }, 725 | "node_modules/default-browser": { 726 | "version": "4.0.0", 727 | "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", 728 | "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", 729 | "dev": true, 730 | "dependencies": { 731 | "bundle-name": "^3.0.0", 732 | "default-browser-id": "^3.0.0", 733 | "execa": "^7.1.1", 734 | "titleize": "^3.0.0" 735 | }, 736 | "engines": { 737 | "node": ">=14.16" 738 | }, 739 | "funding": { 740 | "url": "https://github.com/sponsors/sindresorhus" 741 | } 742 | }, 743 | "node_modules/default-browser-id": { 744 | "version": "3.0.0", 745 | "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", 746 | "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", 747 | "dev": true, 748 | "dependencies": { 749 | "bplist-parser": "^0.2.0", 750 | "untildify": "^4.0.0" 751 | }, 752 | "engines": { 753 | "node": ">=12" 754 | }, 755 | "funding": { 756 | "url": "https://github.com/sponsors/sindresorhus" 757 | } 758 | }, 759 | "node_modules/define-lazy-prop": { 760 | "version": "3.0.0", 761 | "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", 762 | "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", 763 | "dev": true, 764 | "engines": { 765 | "node": ">=12" 766 | }, 767 | "funding": { 768 | "url": "https://github.com/sponsors/sindresorhus" 769 | } 770 | }, 771 | "node_modules/denque": { 772 | "version": "2.1.0", 773 | "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", 774 | "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", 775 | "dev": true, 776 | "engines": { 777 | "node": ">=0.10" 778 | } 779 | }, 780 | "node_modules/dir-glob": { 781 | "version": "3.0.1", 782 | "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", 783 | "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", 784 | "dev": true, 785 | "dependencies": { 786 | "path-type": "^4.0.0" 787 | }, 788 | "engines": { 789 | "node": ">=8" 790 | } 791 | }, 792 | "node_modules/doctrine": { 793 | "version": "3.0.0", 794 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", 795 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", 796 | "dev": true, 797 | "dependencies": { 798 | "esutils": "^2.0.2" 799 | }, 800 | "engines": { 801 | "node": ">=6.0.0" 802 | } 803 | }, 804 | "node_modules/eastasianwidth": { 805 | "version": "0.2.0", 806 | "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", 807 | "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", 808 | "dev": true 809 | }, 810 | "node_modules/emoji-regex": { 811 | "version": "9.2.2", 812 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", 813 | "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", 814 | "dev": true 815 | }, 816 | "node_modules/escape-string-regexp": { 817 | "version": "4.0.0", 818 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 819 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 820 | "dev": true, 821 | "engines": { 822 | "node": ">=10" 823 | }, 824 | "funding": { 825 | "url": "https://github.com/sponsors/sindresorhus" 826 | } 827 | }, 828 | "node_modules/eslint": { 829 | "version": "8.44.0", 830 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.44.0.tgz", 831 | "integrity": "sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A==", 832 | "dev": true, 833 | "dependencies": { 834 | "@eslint-community/eslint-utils": "^4.2.0", 835 | "@eslint-community/regexpp": "^4.4.0", 836 | "@eslint/eslintrc": "^2.1.0", 837 | "@eslint/js": "8.44.0", 838 | "@humanwhocodes/config-array": "^0.11.10", 839 | "@humanwhocodes/module-importer": "^1.0.1", 840 | "@nodelib/fs.walk": "^1.2.8", 841 | "ajv": "^6.10.0", 842 | "chalk": "^4.0.0", 843 | "cross-spawn": "^7.0.2", 844 | "debug": "^4.3.2", 845 | "doctrine": "^3.0.0", 846 | "escape-string-regexp": "^4.0.0", 847 | "eslint-scope": "^7.2.0", 848 | "eslint-visitor-keys": "^3.4.1", 849 | "espree": "^9.6.0", 850 | "esquery": "^1.4.2", 851 | "esutils": "^2.0.2", 852 | "fast-deep-equal": "^3.1.3", 853 | "file-entry-cache": "^6.0.1", 854 | "find-up": "^5.0.0", 855 | "glob-parent": "^6.0.2", 856 | "globals": "^13.19.0", 857 | "graphemer": "^1.4.0", 858 | "ignore": "^5.2.0", 859 | "import-fresh": "^3.0.0", 860 | "imurmurhash": "^0.1.4", 861 | "is-glob": "^4.0.0", 862 | "is-path-inside": "^3.0.3", 863 | "js-yaml": "^4.1.0", 864 | "json-stable-stringify-without-jsonify": "^1.0.1", 865 | "levn": "^0.4.1", 866 | "lodash.merge": "^4.6.2", 867 | "minimatch": "^3.1.2", 868 | "natural-compare": "^1.4.0", 869 | "optionator": "^0.9.3", 870 | "strip-ansi": "^6.0.1", 871 | "strip-json-comments": "^3.1.0", 872 | "text-table": "^0.2.0" 873 | }, 874 | "bin": { 875 | "eslint": "bin/eslint.js" 876 | }, 877 | "engines": { 878 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 879 | }, 880 | "funding": { 881 | "url": "https://opencollective.com/eslint" 882 | } 883 | }, 884 | "node_modules/eslint-config-prettier": { 885 | "version": "8.8.0", 886 | "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz", 887 | "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==", 888 | "dev": true, 889 | "bin": { 890 | "eslint-config-prettier": "bin/cli.js" 891 | }, 892 | "peerDependencies": { 893 | "eslint": ">=7.0.0" 894 | } 895 | }, 896 | "node_modules/eslint-plugin-prettier": { 897 | "version": "5.0.0", 898 | "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.0.tgz", 899 | "integrity": "sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w==", 900 | "dev": true, 901 | "dependencies": { 902 | "prettier-linter-helpers": "^1.0.0", 903 | "synckit": "^0.8.5" 904 | }, 905 | "engines": { 906 | "node": "^14.18.0 || >=16.0.0" 907 | }, 908 | "funding": { 909 | "url": "https://opencollective.com/prettier" 910 | }, 911 | "peerDependencies": { 912 | "@types/eslint": ">=8.0.0", 913 | "eslint": ">=8.0.0", 914 | "prettier": ">=3.0.0" 915 | }, 916 | "peerDependenciesMeta": { 917 | "@types/eslint": { 918 | "optional": true 919 | }, 920 | "eslint-config-prettier": { 921 | "optional": true 922 | } 923 | } 924 | }, 925 | "node_modules/eslint-scope": { 926 | "version": "5.1.1", 927 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", 928 | "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", 929 | "dev": true, 930 | "dependencies": { 931 | "esrecurse": "^4.3.0", 932 | "estraverse": "^4.1.1" 933 | }, 934 | "engines": { 935 | "node": ">=8.0.0" 936 | } 937 | }, 938 | "node_modules/eslint-visitor-keys": { 939 | "version": "3.4.1", 940 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", 941 | "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", 942 | "dev": true, 943 | "engines": { 944 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 945 | }, 946 | "funding": { 947 | "url": "https://opencollective.com/eslint" 948 | } 949 | }, 950 | "node_modules/eslint/node_modules/eslint-scope": { 951 | "version": "7.2.0", 952 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", 953 | "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", 954 | "dev": true, 955 | "dependencies": { 956 | "esrecurse": "^4.3.0", 957 | "estraverse": "^5.2.0" 958 | }, 959 | "engines": { 960 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 961 | }, 962 | "funding": { 963 | "url": "https://opencollective.com/eslint" 964 | } 965 | }, 966 | "node_modules/eslint/node_modules/estraverse": { 967 | "version": "5.3.0", 968 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 969 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 970 | "dev": true, 971 | "engines": { 972 | "node": ">=4.0" 973 | } 974 | }, 975 | "node_modules/espree": { 976 | "version": "9.6.0", 977 | "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.0.tgz", 978 | "integrity": "sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A==", 979 | "dev": true, 980 | "dependencies": { 981 | "acorn": "^8.9.0", 982 | "acorn-jsx": "^5.3.2", 983 | "eslint-visitor-keys": "^3.4.1" 984 | }, 985 | "engines": { 986 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 987 | }, 988 | "funding": { 989 | "url": "https://opencollective.com/eslint" 990 | } 991 | }, 992 | "node_modules/esquery": { 993 | "version": "1.5.0", 994 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", 995 | "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", 996 | "dev": true, 997 | "dependencies": { 998 | "estraverse": "^5.1.0" 999 | }, 1000 | "engines": { 1001 | "node": ">=0.10" 1002 | } 1003 | }, 1004 | "node_modules/esquery/node_modules/estraverse": { 1005 | "version": "5.3.0", 1006 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 1007 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 1008 | "dev": true, 1009 | "engines": { 1010 | "node": ">=4.0" 1011 | } 1012 | }, 1013 | "node_modules/esrecurse": { 1014 | "version": "4.3.0", 1015 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", 1016 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 1017 | "dev": true, 1018 | "dependencies": { 1019 | "estraverse": "^5.2.0" 1020 | }, 1021 | "engines": { 1022 | "node": ">=4.0" 1023 | } 1024 | }, 1025 | "node_modules/esrecurse/node_modules/estraverse": { 1026 | "version": "5.3.0", 1027 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 1028 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 1029 | "dev": true, 1030 | "engines": { 1031 | "node": ">=4.0" 1032 | } 1033 | }, 1034 | "node_modules/estraverse": { 1035 | "version": "4.3.0", 1036 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", 1037 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", 1038 | "dev": true, 1039 | "engines": { 1040 | "node": ">=4.0" 1041 | } 1042 | }, 1043 | "node_modules/esutils": { 1044 | "version": "2.0.3", 1045 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 1046 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 1047 | "dev": true, 1048 | "engines": { 1049 | "node": ">=0.10.0" 1050 | } 1051 | }, 1052 | "node_modules/execa": { 1053 | "version": "7.1.1", 1054 | "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", 1055 | "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", 1056 | "dev": true, 1057 | "dependencies": { 1058 | "cross-spawn": "^7.0.3", 1059 | "get-stream": "^6.0.1", 1060 | "human-signals": "^4.3.0", 1061 | "is-stream": "^3.0.0", 1062 | "merge-stream": "^2.0.0", 1063 | "npm-run-path": "^5.1.0", 1064 | "onetime": "^6.0.0", 1065 | "signal-exit": "^3.0.7", 1066 | "strip-final-newline": "^3.0.0" 1067 | }, 1068 | "engines": { 1069 | "node": "^14.18.0 || ^16.14.0 || >=18.0.0" 1070 | }, 1071 | "funding": { 1072 | "url": "https://github.com/sindresorhus/execa?sponsor=1" 1073 | } 1074 | }, 1075 | "node_modules/execa/node_modules/signal-exit": { 1076 | "version": "3.0.7", 1077 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", 1078 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", 1079 | "dev": true 1080 | }, 1081 | "node_modules/fast-deep-equal": { 1082 | "version": "3.1.3", 1083 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 1084 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 1085 | "dev": true 1086 | }, 1087 | "node_modules/fast-diff": { 1088 | "version": "1.2.0", 1089 | "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", 1090 | "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", 1091 | "dev": true 1092 | }, 1093 | "node_modules/fast-glob": { 1094 | "version": "3.3.0", 1095 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", 1096 | "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", 1097 | "dev": true, 1098 | "dependencies": { 1099 | "@nodelib/fs.stat": "^2.0.2", 1100 | "@nodelib/fs.walk": "^1.2.3", 1101 | "glob-parent": "^5.1.2", 1102 | "merge2": "^1.3.0", 1103 | "micromatch": "^4.0.4" 1104 | }, 1105 | "engines": { 1106 | "node": ">=8.6.0" 1107 | } 1108 | }, 1109 | "node_modules/fast-glob/node_modules/glob-parent": { 1110 | "version": "5.1.2", 1111 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 1112 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 1113 | "dev": true, 1114 | "dependencies": { 1115 | "is-glob": "^4.0.1" 1116 | }, 1117 | "engines": { 1118 | "node": ">= 6" 1119 | } 1120 | }, 1121 | "node_modules/fast-json-stable-stringify": { 1122 | "version": "2.1.0", 1123 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 1124 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 1125 | "dev": true 1126 | }, 1127 | "node_modules/fast-levenshtein": { 1128 | "version": "2.0.6", 1129 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 1130 | "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", 1131 | "dev": true 1132 | }, 1133 | "node_modules/fastq": { 1134 | "version": "1.15.0", 1135 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", 1136 | "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", 1137 | "dev": true, 1138 | "dependencies": { 1139 | "reusify": "^1.0.4" 1140 | } 1141 | }, 1142 | "node_modules/file-entry-cache": { 1143 | "version": "6.0.1", 1144 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", 1145 | "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", 1146 | "dev": true, 1147 | "dependencies": { 1148 | "flat-cache": "^3.0.4" 1149 | }, 1150 | "engines": { 1151 | "node": "^10.12.0 || >=12.0.0" 1152 | } 1153 | }, 1154 | "node_modules/fill-range": { 1155 | "version": "7.0.1", 1156 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 1157 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 1158 | "dev": true, 1159 | "dependencies": { 1160 | "to-regex-range": "^5.0.1" 1161 | }, 1162 | "engines": { 1163 | "node": ">=8" 1164 | } 1165 | }, 1166 | "node_modules/find-up": { 1167 | "version": "5.0.0", 1168 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", 1169 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", 1170 | "dev": true, 1171 | "dependencies": { 1172 | "locate-path": "^6.0.0", 1173 | "path-exists": "^4.0.0" 1174 | }, 1175 | "engines": { 1176 | "node": ">=10" 1177 | }, 1178 | "funding": { 1179 | "url": "https://github.com/sponsors/sindresorhus" 1180 | } 1181 | }, 1182 | "node_modules/flat-cache": { 1183 | "version": "3.0.4", 1184 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", 1185 | "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", 1186 | "dev": true, 1187 | "dependencies": { 1188 | "flatted": "^3.1.0", 1189 | "rimraf": "^3.0.2" 1190 | }, 1191 | "engines": { 1192 | "node": "^10.12.0 || >=12.0.0" 1193 | } 1194 | }, 1195 | "node_modules/flat-cache/node_modules/glob": { 1196 | "version": "7.2.3", 1197 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", 1198 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", 1199 | "dev": true, 1200 | "dependencies": { 1201 | "fs.realpath": "^1.0.0", 1202 | "inflight": "^1.0.4", 1203 | "inherits": "2", 1204 | "minimatch": "^3.1.1", 1205 | "once": "^1.3.0", 1206 | "path-is-absolute": "^1.0.0" 1207 | }, 1208 | "engines": { 1209 | "node": "*" 1210 | }, 1211 | "funding": { 1212 | "url": "https://github.com/sponsors/isaacs" 1213 | } 1214 | }, 1215 | "node_modules/flat-cache/node_modules/rimraf": { 1216 | "version": "3.0.2", 1217 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 1218 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 1219 | "dev": true, 1220 | "dependencies": { 1221 | "glob": "^7.1.3" 1222 | }, 1223 | "bin": { 1224 | "rimraf": "bin.js" 1225 | }, 1226 | "funding": { 1227 | "url": "https://github.com/sponsors/isaacs" 1228 | } 1229 | }, 1230 | "node_modules/flatted": { 1231 | "version": "3.2.2", 1232 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", 1233 | "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", 1234 | "dev": true 1235 | }, 1236 | "node_modules/foreground-child": { 1237 | "version": "3.1.1", 1238 | "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", 1239 | "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", 1240 | "dev": true, 1241 | "dependencies": { 1242 | "cross-spawn": "^7.0.0", 1243 | "signal-exit": "^4.0.1" 1244 | }, 1245 | "engines": { 1246 | "node": ">=14" 1247 | }, 1248 | "funding": { 1249 | "url": "https://github.com/sponsors/isaacs" 1250 | } 1251 | }, 1252 | "node_modules/fs.realpath": { 1253 | "version": "1.0.0", 1254 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1255 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", 1256 | "dev": true 1257 | }, 1258 | "node_modules/get-stream": { 1259 | "version": "6.0.1", 1260 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", 1261 | "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", 1262 | "dev": true, 1263 | "engines": { 1264 | "node": ">=10" 1265 | }, 1266 | "funding": { 1267 | "url": "https://github.com/sponsors/sindresorhus" 1268 | } 1269 | }, 1270 | "node_modules/glob": { 1271 | "version": "10.3.3", 1272 | "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.3.tgz", 1273 | "integrity": "sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==", 1274 | "dev": true, 1275 | "dependencies": { 1276 | "foreground-child": "^3.1.0", 1277 | "jackspeak": "^2.0.3", 1278 | "minimatch": "^9.0.1", 1279 | "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", 1280 | "path-scurry": "^1.10.1" 1281 | }, 1282 | "bin": { 1283 | "glob": "dist/cjs/src/bin.js" 1284 | }, 1285 | "engines": { 1286 | "node": ">=16 || 14 >=14.17" 1287 | }, 1288 | "funding": { 1289 | "url": "https://github.com/sponsors/isaacs" 1290 | } 1291 | }, 1292 | "node_modules/glob-parent": { 1293 | "version": "6.0.2", 1294 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 1295 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 1296 | "dev": true, 1297 | "dependencies": { 1298 | "is-glob": "^4.0.3" 1299 | }, 1300 | "engines": { 1301 | "node": ">=10.13.0" 1302 | } 1303 | }, 1304 | "node_modules/glob/node_modules/brace-expansion": { 1305 | "version": "2.0.1", 1306 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", 1307 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", 1308 | "dev": true, 1309 | "dependencies": { 1310 | "balanced-match": "^1.0.0" 1311 | } 1312 | }, 1313 | "node_modules/glob/node_modules/minimatch": { 1314 | "version": "9.0.3", 1315 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", 1316 | "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", 1317 | "dev": true, 1318 | "dependencies": { 1319 | "brace-expansion": "^2.0.1" 1320 | }, 1321 | "engines": { 1322 | "node": ">=16 || 14 >=14.17" 1323 | }, 1324 | "funding": { 1325 | "url": "https://github.com/sponsors/isaacs" 1326 | } 1327 | }, 1328 | "node_modules/globals": { 1329 | "version": "13.20.0", 1330 | "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", 1331 | "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", 1332 | "dev": true, 1333 | "dependencies": { 1334 | "type-fest": "^0.20.2" 1335 | }, 1336 | "engines": { 1337 | "node": ">=8" 1338 | }, 1339 | "funding": { 1340 | "url": "https://github.com/sponsors/sindresorhus" 1341 | } 1342 | }, 1343 | "node_modules/globby": { 1344 | "version": "11.1.0", 1345 | "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", 1346 | "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", 1347 | "dev": true, 1348 | "dependencies": { 1349 | "array-union": "^2.1.0", 1350 | "dir-glob": "^3.0.1", 1351 | "fast-glob": "^3.2.9", 1352 | "ignore": "^5.2.0", 1353 | "merge2": "^1.4.1", 1354 | "slash": "^3.0.0" 1355 | }, 1356 | "engines": { 1357 | "node": ">=10" 1358 | }, 1359 | "funding": { 1360 | "url": "https://github.com/sponsors/sindresorhus" 1361 | } 1362 | }, 1363 | "node_modules/grapheme-splitter": { 1364 | "version": "1.0.4", 1365 | "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", 1366 | "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", 1367 | "dev": true 1368 | }, 1369 | "node_modules/graphemer": { 1370 | "version": "1.4.0", 1371 | "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", 1372 | "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", 1373 | "dev": true 1374 | }, 1375 | "node_modules/has-flag": { 1376 | "version": "4.0.0", 1377 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 1378 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 1379 | "dev": true, 1380 | "engines": { 1381 | "node": ">=8" 1382 | } 1383 | }, 1384 | "node_modules/human-signals": { 1385 | "version": "4.3.1", 1386 | "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", 1387 | "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", 1388 | "dev": true, 1389 | "engines": { 1390 | "node": ">=14.18.0" 1391 | } 1392 | }, 1393 | "node_modules/ignore": { 1394 | "version": "5.2.4", 1395 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", 1396 | "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", 1397 | "dev": true, 1398 | "engines": { 1399 | "node": ">= 4" 1400 | } 1401 | }, 1402 | "node_modules/import-fresh": { 1403 | "version": "3.3.0", 1404 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", 1405 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", 1406 | "dev": true, 1407 | "dependencies": { 1408 | "parent-module": "^1.0.0", 1409 | "resolve-from": "^4.0.0" 1410 | }, 1411 | "engines": { 1412 | "node": ">=6" 1413 | }, 1414 | "funding": { 1415 | "url": "https://github.com/sponsors/sindresorhus" 1416 | } 1417 | }, 1418 | "node_modules/imurmurhash": { 1419 | "version": "0.1.4", 1420 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 1421 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 1422 | "dev": true, 1423 | "engines": { 1424 | "node": ">=0.8.19" 1425 | } 1426 | }, 1427 | "node_modules/inflight": { 1428 | "version": "1.0.6", 1429 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1430 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 1431 | "dev": true, 1432 | "dependencies": { 1433 | "once": "^1.3.0", 1434 | "wrappy": "1" 1435 | } 1436 | }, 1437 | "node_modules/inherits": { 1438 | "version": "2.0.4", 1439 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1440 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 1441 | "dev": true 1442 | }, 1443 | "node_modules/ioredis": { 1444 | "version": "5.3.2", 1445 | "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.3.2.tgz", 1446 | "integrity": "sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA==", 1447 | "dev": true, 1448 | "dependencies": { 1449 | "@ioredis/commands": "^1.1.1", 1450 | "cluster-key-slot": "^1.1.0", 1451 | "debug": "^4.3.4", 1452 | "denque": "^2.1.0", 1453 | "lodash.defaults": "^4.2.0", 1454 | "lodash.isarguments": "^3.1.0", 1455 | "redis-errors": "^1.2.0", 1456 | "redis-parser": "^3.0.0", 1457 | "standard-as-callback": "^2.1.0" 1458 | }, 1459 | "engines": { 1460 | "node": ">=12.22.0" 1461 | }, 1462 | "funding": { 1463 | "type": "opencollective", 1464 | "url": "https://opencollective.com/ioredis" 1465 | } 1466 | }, 1467 | "node_modules/is-docker": { 1468 | "version": "3.0.0", 1469 | "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", 1470 | "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", 1471 | "dev": true, 1472 | "bin": { 1473 | "is-docker": "cli.js" 1474 | }, 1475 | "engines": { 1476 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 1477 | }, 1478 | "funding": { 1479 | "url": "https://github.com/sponsors/sindresorhus" 1480 | } 1481 | }, 1482 | "node_modules/is-extglob": { 1483 | "version": "2.1.1", 1484 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 1485 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 1486 | "dev": true, 1487 | "engines": { 1488 | "node": ">=0.10.0" 1489 | } 1490 | }, 1491 | "node_modules/is-fullwidth-code-point": { 1492 | "version": "3.0.0", 1493 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 1494 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 1495 | "dev": true, 1496 | "engines": { 1497 | "node": ">=8" 1498 | } 1499 | }, 1500 | "node_modules/is-glob": { 1501 | "version": "4.0.3", 1502 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 1503 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 1504 | "dev": true, 1505 | "dependencies": { 1506 | "is-extglob": "^2.1.1" 1507 | }, 1508 | "engines": { 1509 | "node": ">=0.10.0" 1510 | } 1511 | }, 1512 | "node_modules/is-inside-container": { 1513 | "version": "1.0.0", 1514 | "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", 1515 | "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", 1516 | "dev": true, 1517 | "dependencies": { 1518 | "is-docker": "^3.0.0" 1519 | }, 1520 | "bin": { 1521 | "is-inside-container": "cli.js" 1522 | }, 1523 | "engines": { 1524 | "node": ">=14.16" 1525 | }, 1526 | "funding": { 1527 | "url": "https://github.com/sponsors/sindresorhus" 1528 | } 1529 | }, 1530 | "node_modules/is-number": { 1531 | "version": "7.0.0", 1532 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 1533 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 1534 | "dev": true, 1535 | "engines": { 1536 | "node": ">=0.12.0" 1537 | } 1538 | }, 1539 | "node_modules/is-path-inside": { 1540 | "version": "3.0.3", 1541 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", 1542 | "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", 1543 | "dev": true, 1544 | "engines": { 1545 | "node": ">=8" 1546 | } 1547 | }, 1548 | "node_modules/is-stream": { 1549 | "version": "3.0.0", 1550 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", 1551 | "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", 1552 | "dev": true, 1553 | "engines": { 1554 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 1555 | }, 1556 | "funding": { 1557 | "url": "https://github.com/sponsors/sindresorhus" 1558 | } 1559 | }, 1560 | "node_modules/is-wsl": { 1561 | "version": "2.2.0", 1562 | "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", 1563 | "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", 1564 | "dev": true, 1565 | "dependencies": { 1566 | "is-docker": "^2.0.0" 1567 | }, 1568 | "engines": { 1569 | "node": ">=8" 1570 | } 1571 | }, 1572 | "node_modules/is-wsl/node_modules/is-docker": { 1573 | "version": "2.2.1", 1574 | "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", 1575 | "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", 1576 | "dev": true, 1577 | "bin": { 1578 | "is-docker": "cli.js" 1579 | }, 1580 | "engines": { 1581 | "node": ">=8" 1582 | }, 1583 | "funding": { 1584 | "url": "https://github.com/sponsors/sindresorhus" 1585 | } 1586 | }, 1587 | "node_modules/isexe": { 1588 | "version": "2.0.0", 1589 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 1590 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 1591 | "dev": true 1592 | }, 1593 | "node_modules/iterare": { 1594 | "version": "1.2.1", 1595 | "resolved": "https://registry.npmjs.org/iterare/-/iterare-1.2.1.tgz", 1596 | "integrity": "sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==", 1597 | "dev": true, 1598 | "engines": { 1599 | "node": ">=6" 1600 | } 1601 | }, 1602 | "node_modules/jackspeak": { 1603 | "version": "2.2.1", 1604 | "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.1.tgz", 1605 | "integrity": "sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw==", 1606 | "dev": true, 1607 | "dependencies": { 1608 | "@isaacs/cliui": "^8.0.2" 1609 | }, 1610 | "engines": { 1611 | "node": ">=14" 1612 | }, 1613 | "funding": { 1614 | "url": "https://github.com/sponsors/isaacs" 1615 | }, 1616 | "optionalDependencies": { 1617 | "@pkgjs/parseargs": "^0.11.0" 1618 | } 1619 | }, 1620 | "node_modules/js-yaml": { 1621 | "version": "4.1.0", 1622 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 1623 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 1624 | "dev": true, 1625 | "dependencies": { 1626 | "argparse": "^2.0.1" 1627 | }, 1628 | "bin": { 1629 | "js-yaml": "bin/js-yaml.js" 1630 | } 1631 | }, 1632 | "node_modules/json-schema-traverse": { 1633 | "version": "0.4.1", 1634 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 1635 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 1636 | "dev": true 1637 | }, 1638 | "node_modules/json-stable-stringify-without-jsonify": { 1639 | "version": "1.0.1", 1640 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 1641 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", 1642 | "dev": true 1643 | }, 1644 | "node_modules/levn": { 1645 | "version": "0.4.1", 1646 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", 1647 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", 1648 | "dev": true, 1649 | "dependencies": { 1650 | "prelude-ls": "^1.2.1", 1651 | "type-check": "~0.4.0" 1652 | }, 1653 | "engines": { 1654 | "node": ">= 0.8.0" 1655 | } 1656 | }, 1657 | "node_modules/locate-path": { 1658 | "version": "6.0.0", 1659 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", 1660 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", 1661 | "dev": true, 1662 | "dependencies": { 1663 | "p-locate": "^5.0.0" 1664 | }, 1665 | "engines": { 1666 | "node": ">=10" 1667 | }, 1668 | "funding": { 1669 | "url": "https://github.com/sponsors/sindresorhus" 1670 | } 1671 | }, 1672 | "node_modules/lodash.defaults": { 1673 | "version": "4.2.0", 1674 | "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", 1675 | "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", 1676 | "dev": true 1677 | }, 1678 | "node_modules/lodash.isarguments": { 1679 | "version": "3.1.0", 1680 | "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", 1681 | "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==", 1682 | "dev": true 1683 | }, 1684 | "node_modules/lodash.merge": { 1685 | "version": "4.6.2", 1686 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", 1687 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", 1688 | "dev": true 1689 | }, 1690 | "node_modules/lru-cache": { 1691 | "version": "10.0.0", 1692 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz", 1693 | "integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==", 1694 | "dev": true, 1695 | "engines": { 1696 | "node": "14 || >=16.14" 1697 | } 1698 | }, 1699 | "node_modules/merge-stream": { 1700 | "version": "2.0.0", 1701 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", 1702 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", 1703 | "dev": true 1704 | }, 1705 | "node_modules/merge2": { 1706 | "version": "1.4.1", 1707 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 1708 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 1709 | "dev": true, 1710 | "engines": { 1711 | "node": ">= 8" 1712 | } 1713 | }, 1714 | "node_modules/micromatch": { 1715 | "version": "4.0.5", 1716 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", 1717 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", 1718 | "dev": true, 1719 | "dependencies": { 1720 | "braces": "^3.0.2", 1721 | "picomatch": "^2.3.1" 1722 | }, 1723 | "engines": { 1724 | "node": ">=8.6" 1725 | } 1726 | }, 1727 | "node_modules/mimic-fn": { 1728 | "version": "4.0.0", 1729 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", 1730 | "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", 1731 | "dev": true, 1732 | "engines": { 1733 | "node": ">=12" 1734 | }, 1735 | "funding": { 1736 | "url": "https://github.com/sponsors/sindresorhus" 1737 | } 1738 | }, 1739 | "node_modules/minimatch": { 1740 | "version": "3.1.2", 1741 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 1742 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 1743 | "dev": true, 1744 | "dependencies": { 1745 | "brace-expansion": "^1.1.7" 1746 | }, 1747 | "engines": { 1748 | "node": "*" 1749 | } 1750 | }, 1751 | "node_modules/minipass": { 1752 | "version": "7.0.2", 1753 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.2.tgz", 1754 | "integrity": "sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA==", 1755 | "dev": true, 1756 | "engines": { 1757 | "node": ">=16 || 14 >=14.17" 1758 | } 1759 | }, 1760 | "node_modules/ms": { 1761 | "version": "2.1.2", 1762 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1763 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 1764 | "dev": true 1765 | }, 1766 | "node_modules/natural-compare": { 1767 | "version": "1.4.0", 1768 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 1769 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", 1770 | "dev": true 1771 | }, 1772 | "node_modules/natural-compare-lite": { 1773 | "version": "1.4.0", 1774 | "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", 1775 | "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", 1776 | "dev": true 1777 | }, 1778 | "node_modules/npm-run-path": { 1779 | "version": "5.1.0", 1780 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", 1781 | "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", 1782 | "dev": true, 1783 | "dependencies": { 1784 | "path-key": "^4.0.0" 1785 | }, 1786 | "engines": { 1787 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 1788 | }, 1789 | "funding": { 1790 | "url": "https://github.com/sponsors/sindresorhus" 1791 | } 1792 | }, 1793 | "node_modules/npm-run-path/node_modules/path-key": { 1794 | "version": "4.0.0", 1795 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", 1796 | "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", 1797 | "dev": true, 1798 | "engines": { 1799 | "node": ">=12" 1800 | }, 1801 | "funding": { 1802 | "url": "https://github.com/sponsors/sindresorhus" 1803 | } 1804 | }, 1805 | "node_modules/once": { 1806 | "version": "1.4.0", 1807 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1808 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 1809 | "dev": true, 1810 | "dependencies": { 1811 | "wrappy": "1" 1812 | } 1813 | }, 1814 | "node_modules/onetime": { 1815 | "version": "6.0.0", 1816 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", 1817 | "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", 1818 | "dev": true, 1819 | "dependencies": { 1820 | "mimic-fn": "^4.0.0" 1821 | }, 1822 | "engines": { 1823 | "node": ">=12" 1824 | }, 1825 | "funding": { 1826 | "url": "https://github.com/sponsors/sindresorhus" 1827 | } 1828 | }, 1829 | "node_modules/open": { 1830 | "version": "9.1.0", 1831 | "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", 1832 | "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", 1833 | "dev": true, 1834 | "dependencies": { 1835 | "default-browser": "^4.0.0", 1836 | "define-lazy-prop": "^3.0.0", 1837 | "is-inside-container": "^1.0.0", 1838 | "is-wsl": "^2.2.0" 1839 | }, 1840 | "engines": { 1841 | "node": ">=14.16" 1842 | }, 1843 | "funding": { 1844 | "url": "https://github.com/sponsors/sindresorhus" 1845 | } 1846 | }, 1847 | "node_modules/optionator": { 1848 | "version": "0.9.3", 1849 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", 1850 | "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", 1851 | "dev": true, 1852 | "dependencies": { 1853 | "@aashutoshrathi/word-wrap": "^1.2.3", 1854 | "deep-is": "^0.1.3", 1855 | "fast-levenshtein": "^2.0.6", 1856 | "levn": "^0.4.1", 1857 | "prelude-ls": "^1.2.1", 1858 | "type-check": "^0.4.0" 1859 | }, 1860 | "engines": { 1861 | "node": ">= 0.8.0" 1862 | } 1863 | }, 1864 | "node_modules/p-limit": { 1865 | "version": "3.1.0", 1866 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", 1867 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", 1868 | "dev": true, 1869 | "dependencies": { 1870 | "yocto-queue": "^0.1.0" 1871 | }, 1872 | "engines": { 1873 | "node": ">=10" 1874 | }, 1875 | "funding": { 1876 | "url": "https://github.com/sponsors/sindresorhus" 1877 | } 1878 | }, 1879 | "node_modules/p-locate": { 1880 | "version": "5.0.0", 1881 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", 1882 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", 1883 | "dev": true, 1884 | "dependencies": { 1885 | "p-limit": "^3.0.2" 1886 | }, 1887 | "engines": { 1888 | "node": ">=10" 1889 | }, 1890 | "funding": { 1891 | "url": "https://github.com/sponsors/sindresorhus" 1892 | } 1893 | }, 1894 | "node_modules/parent-module": { 1895 | "version": "1.0.1", 1896 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 1897 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 1898 | "dev": true, 1899 | "dependencies": { 1900 | "callsites": "^3.0.0" 1901 | }, 1902 | "engines": { 1903 | "node": ">=6" 1904 | } 1905 | }, 1906 | "node_modules/path-exists": { 1907 | "version": "4.0.0", 1908 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 1909 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 1910 | "dev": true, 1911 | "engines": { 1912 | "node": ">=8" 1913 | } 1914 | }, 1915 | "node_modules/path-is-absolute": { 1916 | "version": "1.0.1", 1917 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1918 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", 1919 | "dev": true, 1920 | "engines": { 1921 | "node": ">=0.10.0" 1922 | } 1923 | }, 1924 | "node_modules/path-key": { 1925 | "version": "3.1.1", 1926 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 1927 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 1928 | "dev": true, 1929 | "engines": { 1930 | "node": ">=8" 1931 | } 1932 | }, 1933 | "node_modules/path-scurry": { 1934 | "version": "1.10.1", 1935 | "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", 1936 | "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", 1937 | "dev": true, 1938 | "dependencies": { 1939 | "lru-cache": "^9.1.1 || ^10.0.0", 1940 | "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" 1941 | }, 1942 | "engines": { 1943 | "node": ">=16 || 14 >=14.17" 1944 | }, 1945 | "funding": { 1946 | "url": "https://github.com/sponsors/isaacs" 1947 | } 1948 | }, 1949 | "node_modules/path-type": { 1950 | "version": "4.0.0", 1951 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", 1952 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", 1953 | "dev": true, 1954 | "engines": { 1955 | "node": ">=8" 1956 | } 1957 | }, 1958 | "node_modules/picocolors": { 1959 | "version": "1.0.0", 1960 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 1961 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", 1962 | "dev": true 1963 | }, 1964 | "node_modules/picomatch": { 1965 | "version": "2.3.1", 1966 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 1967 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 1968 | "dev": true, 1969 | "engines": { 1970 | "node": ">=8.6" 1971 | }, 1972 | "funding": { 1973 | "url": "https://github.com/sponsors/jonschlinkert" 1974 | } 1975 | }, 1976 | "node_modules/prelude-ls": { 1977 | "version": "1.2.1", 1978 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", 1979 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", 1980 | "dev": true, 1981 | "engines": { 1982 | "node": ">= 0.8.0" 1983 | } 1984 | }, 1985 | "node_modules/prettier": { 1986 | "version": "3.0.0", 1987 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.0.tgz", 1988 | "integrity": "sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==", 1989 | "dev": true, 1990 | "bin": { 1991 | "prettier": "bin/prettier.cjs" 1992 | }, 1993 | "engines": { 1994 | "node": ">=14" 1995 | }, 1996 | "funding": { 1997 | "url": "https://github.com/prettier/prettier?sponsor=1" 1998 | } 1999 | }, 2000 | "node_modules/prettier-linter-helpers": { 2001 | "version": "1.0.0", 2002 | "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", 2003 | "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", 2004 | "dev": true, 2005 | "dependencies": { 2006 | "fast-diff": "^1.1.2" 2007 | }, 2008 | "engines": { 2009 | "node": ">=6.0.0" 2010 | } 2011 | }, 2012 | "node_modules/punycode": { 2013 | "version": "2.3.0", 2014 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", 2015 | "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", 2016 | "dev": true, 2017 | "engines": { 2018 | "node": ">=6" 2019 | } 2020 | }, 2021 | "node_modules/queue-microtask": { 2022 | "version": "1.2.3", 2023 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 2024 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 2025 | "dev": true, 2026 | "funding": [ 2027 | { 2028 | "type": "github", 2029 | "url": "https://github.com/sponsors/feross" 2030 | }, 2031 | { 2032 | "type": "patreon", 2033 | "url": "https://www.patreon.com/feross" 2034 | }, 2035 | { 2036 | "type": "consulting", 2037 | "url": "https://feross.org/support" 2038 | } 2039 | ] 2040 | }, 2041 | "node_modules/redis-errors": { 2042 | "version": "1.2.0", 2043 | "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", 2044 | "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==", 2045 | "dev": true, 2046 | "engines": { 2047 | "node": ">=4" 2048 | } 2049 | }, 2050 | "node_modules/redis-parser": { 2051 | "version": "3.0.0", 2052 | "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", 2053 | "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", 2054 | "dev": true, 2055 | "dependencies": { 2056 | "redis-errors": "^1.0.0" 2057 | }, 2058 | "engines": { 2059 | "node": ">=4" 2060 | } 2061 | }, 2062 | "node_modules/reflect-metadata": { 2063 | "version": "0.1.13", 2064 | "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", 2065 | "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", 2066 | "dev": true, 2067 | "peer": true 2068 | }, 2069 | "node_modules/resolve-from": { 2070 | "version": "4.0.0", 2071 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 2072 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 2073 | "dev": true, 2074 | "engines": { 2075 | "node": ">=4" 2076 | } 2077 | }, 2078 | "node_modules/reusify": { 2079 | "version": "1.0.4", 2080 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 2081 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 2082 | "dev": true, 2083 | "engines": { 2084 | "iojs": ">=1.0.0", 2085 | "node": ">=0.10.0" 2086 | } 2087 | }, 2088 | "node_modules/rimraf": { 2089 | "version": "5.0.1", 2090 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.1.tgz", 2091 | "integrity": "sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==", 2092 | "dev": true, 2093 | "dependencies": { 2094 | "glob": "^10.2.5" 2095 | }, 2096 | "bin": { 2097 | "rimraf": "dist/cjs/src/bin.js" 2098 | }, 2099 | "engines": { 2100 | "node": ">=14" 2101 | }, 2102 | "funding": { 2103 | "url": "https://github.com/sponsors/isaacs" 2104 | } 2105 | }, 2106 | "node_modules/run-applescript": { 2107 | "version": "5.0.0", 2108 | "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", 2109 | "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", 2110 | "dev": true, 2111 | "dependencies": { 2112 | "execa": "^5.0.0" 2113 | }, 2114 | "engines": { 2115 | "node": ">=12" 2116 | }, 2117 | "funding": { 2118 | "url": "https://github.com/sponsors/sindresorhus" 2119 | } 2120 | }, 2121 | "node_modules/run-applescript/node_modules/execa": { 2122 | "version": "5.1.1", 2123 | "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", 2124 | "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", 2125 | "dev": true, 2126 | "dependencies": { 2127 | "cross-spawn": "^7.0.3", 2128 | "get-stream": "^6.0.0", 2129 | "human-signals": "^2.1.0", 2130 | "is-stream": "^2.0.0", 2131 | "merge-stream": "^2.0.0", 2132 | "npm-run-path": "^4.0.1", 2133 | "onetime": "^5.1.2", 2134 | "signal-exit": "^3.0.3", 2135 | "strip-final-newline": "^2.0.0" 2136 | }, 2137 | "engines": { 2138 | "node": ">=10" 2139 | }, 2140 | "funding": { 2141 | "url": "https://github.com/sindresorhus/execa?sponsor=1" 2142 | } 2143 | }, 2144 | "node_modules/run-applescript/node_modules/human-signals": { 2145 | "version": "2.1.0", 2146 | "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", 2147 | "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", 2148 | "dev": true, 2149 | "engines": { 2150 | "node": ">=10.17.0" 2151 | } 2152 | }, 2153 | "node_modules/run-applescript/node_modules/is-stream": { 2154 | "version": "2.0.1", 2155 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", 2156 | "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", 2157 | "dev": true, 2158 | "engines": { 2159 | "node": ">=8" 2160 | }, 2161 | "funding": { 2162 | "url": "https://github.com/sponsors/sindresorhus" 2163 | } 2164 | }, 2165 | "node_modules/run-applescript/node_modules/mimic-fn": { 2166 | "version": "2.1.0", 2167 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", 2168 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", 2169 | "dev": true, 2170 | "engines": { 2171 | "node": ">=6" 2172 | } 2173 | }, 2174 | "node_modules/run-applescript/node_modules/npm-run-path": { 2175 | "version": "4.0.1", 2176 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", 2177 | "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", 2178 | "dev": true, 2179 | "dependencies": { 2180 | "path-key": "^3.0.0" 2181 | }, 2182 | "engines": { 2183 | "node": ">=8" 2184 | } 2185 | }, 2186 | "node_modules/run-applescript/node_modules/onetime": { 2187 | "version": "5.1.2", 2188 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", 2189 | "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", 2190 | "dev": true, 2191 | "dependencies": { 2192 | "mimic-fn": "^2.1.0" 2193 | }, 2194 | "engines": { 2195 | "node": ">=6" 2196 | }, 2197 | "funding": { 2198 | "url": "https://github.com/sponsors/sindresorhus" 2199 | } 2200 | }, 2201 | "node_modules/run-applescript/node_modules/signal-exit": { 2202 | "version": "3.0.7", 2203 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", 2204 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", 2205 | "dev": true 2206 | }, 2207 | "node_modules/run-applescript/node_modules/strip-final-newline": { 2208 | "version": "2.0.0", 2209 | "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", 2210 | "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", 2211 | "dev": true, 2212 | "engines": { 2213 | "node": ">=6" 2214 | } 2215 | }, 2216 | "node_modules/run-parallel": { 2217 | "version": "1.2.0", 2218 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 2219 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 2220 | "dev": true, 2221 | "funding": [ 2222 | { 2223 | "type": "github", 2224 | "url": "https://github.com/sponsors/feross" 2225 | }, 2226 | { 2227 | "type": "patreon", 2228 | "url": "https://www.patreon.com/feross" 2229 | }, 2230 | { 2231 | "type": "consulting", 2232 | "url": "https://feross.org/support" 2233 | } 2234 | ], 2235 | "dependencies": { 2236 | "queue-microtask": "^1.2.2" 2237 | } 2238 | }, 2239 | "node_modules/rxjs": { 2240 | "version": "7.3.0", 2241 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.3.0.tgz", 2242 | "integrity": "sha512-p2yuGIg9S1epc3vrjKf6iVb3RCaAYjYskkO+jHIaV0IjOPlJop4UnodOoFb2xeNwlguqLYvGw1b1McillYb5Gw==", 2243 | "dev": true, 2244 | "peer": true, 2245 | "dependencies": { 2246 | "tslib": "~2.1.0" 2247 | } 2248 | }, 2249 | "node_modules/rxjs/node_modules/tslib": { 2250 | "version": "2.1.0", 2251 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", 2252 | "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", 2253 | "dev": true, 2254 | "peer": true 2255 | }, 2256 | "node_modules/semver": { 2257 | "version": "7.5.4", 2258 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", 2259 | "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", 2260 | "dev": true, 2261 | "dependencies": { 2262 | "lru-cache": "^6.0.0" 2263 | }, 2264 | "bin": { 2265 | "semver": "bin/semver.js" 2266 | }, 2267 | "engines": { 2268 | "node": ">=10" 2269 | } 2270 | }, 2271 | "node_modules/semver/node_modules/lru-cache": { 2272 | "version": "6.0.0", 2273 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 2274 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 2275 | "dev": true, 2276 | "dependencies": { 2277 | "yallist": "^4.0.0" 2278 | }, 2279 | "engines": { 2280 | "node": ">=10" 2281 | } 2282 | }, 2283 | "node_modules/shebang-command": { 2284 | "version": "2.0.0", 2285 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 2286 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 2287 | "dev": true, 2288 | "dependencies": { 2289 | "shebang-regex": "^3.0.0" 2290 | }, 2291 | "engines": { 2292 | "node": ">=8" 2293 | } 2294 | }, 2295 | "node_modules/shebang-regex": { 2296 | "version": "3.0.0", 2297 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 2298 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 2299 | "dev": true, 2300 | "engines": { 2301 | "node": ">=8" 2302 | } 2303 | }, 2304 | "node_modules/signal-exit": { 2305 | "version": "4.0.2", 2306 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", 2307 | "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", 2308 | "dev": true, 2309 | "engines": { 2310 | "node": ">=14" 2311 | }, 2312 | "funding": { 2313 | "url": "https://github.com/sponsors/isaacs" 2314 | } 2315 | }, 2316 | "node_modules/slash": { 2317 | "version": "3.0.0", 2318 | "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", 2319 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", 2320 | "dev": true, 2321 | "engines": { 2322 | "node": ">=8" 2323 | } 2324 | }, 2325 | "node_modules/standard-as-callback": { 2326 | "version": "2.1.0", 2327 | "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", 2328 | "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==", 2329 | "dev": true 2330 | }, 2331 | "node_modules/string-width": { 2332 | "version": "5.1.2", 2333 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", 2334 | "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", 2335 | "dev": true, 2336 | "dependencies": { 2337 | "eastasianwidth": "^0.2.0", 2338 | "emoji-regex": "^9.2.2", 2339 | "strip-ansi": "^7.0.1" 2340 | }, 2341 | "engines": { 2342 | "node": ">=12" 2343 | }, 2344 | "funding": { 2345 | "url": "https://github.com/sponsors/sindresorhus" 2346 | } 2347 | }, 2348 | "node_modules/string-width-cjs": { 2349 | "name": "string-width", 2350 | "version": "4.2.3", 2351 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 2352 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 2353 | "dev": true, 2354 | "dependencies": { 2355 | "emoji-regex": "^8.0.0", 2356 | "is-fullwidth-code-point": "^3.0.0", 2357 | "strip-ansi": "^6.0.1" 2358 | }, 2359 | "engines": { 2360 | "node": ">=8" 2361 | } 2362 | }, 2363 | "node_modules/string-width-cjs/node_modules/emoji-regex": { 2364 | "version": "8.0.0", 2365 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 2366 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 2367 | "dev": true 2368 | }, 2369 | "node_modules/string-width/node_modules/ansi-regex": { 2370 | "version": "6.0.1", 2371 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", 2372 | "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", 2373 | "dev": true, 2374 | "engines": { 2375 | "node": ">=12" 2376 | }, 2377 | "funding": { 2378 | "url": "https://github.com/chalk/ansi-regex?sponsor=1" 2379 | } 2380 | }, 2381 | "node_modules/string-width/node_modules/strip-ansi": { 2382 | "version": "7.1.0", 2383 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 2384 | "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 2385 | "dev": true, 2386 | "dependencies": { 2387 | "ansi-regex": "^6.0.1" 2388 | }, 2389 | "engines": { 2390 | "node": ">=12" 2391 | }, 2392 | "funding": { 2393 | "url": "https://github.com/chalk/strip-ansi?sponsor=1" 2394 | } 2395 | }, 2396 | "node_modules/strip-ansi": { 2397 | "version": "6.0.1", 2398 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 2399 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 2400 | "dev": true, 2401 | "dependencies": { 2402 | "ansi-regex": "^5.0.1" 2403 | }, 2404 | "engines": { 2405 | "node": ">=8" 2406 | } 2407 | }, 2408 | "node_modules/strip-ansi-cjs": { 2409 | "name": "strip-ansi", 2410 | "version": "6.0.1", 2411 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 2412 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 2413 | "dev": true, 2414 | "dependencies": { 2415 | "ansi-regex": "^5.0.1" 2416 | }, 2417 | "engines": { 2418 | "node": ">=8" 2419 | } 2420 | }, 2421 | "node_modules/strip-final-newline": { 2422 | "version": "3.0.0", 2423 | "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", 2424 | "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", 2425 | "dev": true, 2426 | "engines": { 2427 | "node": ">=12" 2428 | }, 2429 | "funding": { 2430 | "url": "https://github.com/sponsors/sindresorhus" 2431 | } 2432 | }, 2433 | "node_modules/strip-json-comments": { 2434 | "version": "3.1.1", 2435 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 2436 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 2437 | "dev": true, 2438 | "engines": { 2439 | "node": ">=8" 2440 | }, 2441 | "funding": { 2442 | "url": "https://github.com/sponsors/sindresorhus" 2443 | } 2444 | }, 2445 | "node_modules/supports-color": { 2446 | "version": "7.2.0", 2447 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 2448 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 2449 | "dev": true, 2450 | "dependencies": { 2451 | "has-flag": "^4.0.0" 2452 | }, 2453 | "engines": { 2454 | "node": ">=8" 2455 | } 2456 | }, 2457 | "node_modules/synckit": { 2458 | "version": "0.8.5", 2459 | "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz", 2460 | "integrity": "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==", 2461 | "dev": true, 2462 | "dependencies": { 2463 | "@pkgr/utils": "^2.3.1", 2464 | "tslib": "^2.5.0" 2465 | }, 2466 | "engines": { 2467 | "node": "^14.18.0 || >=16.0.0" 2468 | }, 2469 | "funding": { 2470 | "url": "https://opencollective.com/unts" 2471 | } 2472 | }, 2473 | "node_modules/text-table": { 2474 | "version": "0.2.0", 2475 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 2476 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", 2477 | "dev": true 2478 | }, 2479 | "node_modules/titleize": { 2480 | "version": "3.0.0", 2481 | "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", 2482 | "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", 2483 | "dev": true, 2484 | "engines": { 2485 | "node": ">=12" 2486 | }, 2487 | "funding": { 2488 | "url": "https://github.com/sponsors/sindresorhus" 2489 | } 2490 | }, 2491 | "node_modules/to-regex-range": { 2492 | "version": "5.0.1", 2493 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 2494 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 2495 | "dev": true, 2496 | "dependencies": { 2497 | "is-number": "^7.0.0" 2498 | }, 2499 | "engines": { 2500 | "node": ">=8.0" 2501 | } 2502 | }, 2503 | "node_modules/ts-api-utils": { 2504 | "version": "1.0.1", 2505 | "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.1.tgz", 2506 | "integrity": "sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==", 2507 | "dev": true, 2508 | "engines": { 2509 | "node": ">=16.13.0" 2510 | }, 2511 | "peerDependencies": { 2512 | "typescript": ">=4.2.0" 2513 | } 2514 | }, 2515 | "node_modules/tslib": { 2516 | "version": "2.6.0", 2517 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", 2518 | "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==", 2519 | "dev": true 2520 | }, 2521 | "node_modules/type-check": { 2522 | "version": "0.4.0", 2523 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", 2524 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", 2525 | "dev": true, 2526 | "dependencies": { 2527 | "prelude-ls": "^1.2.1" 2528 | }, 2529 | "engines": { 2530 | "node": ">= 0.8.0" 2531 | } 2532 | }, 2533 | "node_modules/type-fest": { 2534 | "version": "0.20.2", 2535 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", 2536 | "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", 2537 | "dev": true, 2538 | "engines": { 2539 | "node": ">=10" 2540 | }, 2541 | "funding": { 2542 | "url": "https://github.com/sponsors/sindresorhus" 2543 | } 2544 | }, 2545 | "node_modules/typescript": { 2546 | "version": "5.1.6", 2547 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", 2548 | "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", 2549 | "dev": true, 2550 | "bin": { 2551 | "tsc": "bin/tsc", 2552 | "tsserver": "bin/tsserver" 2553 | }, 2554 | "engines": { 2555 | "node": ">=14.17" 2556 | } 2557 | }, 2558 | "node_modules/uid": { 2559 | "version": "2.0.2", 2560 | "resolved": "https://registry.npmjs.org/uid/-/uid-2.0.2.tgz", 2561 | "integrity": "sha512-u3xV3X7uzvi5b1MncmZo3i2Aw222Zk1keqLA1YkHldREkAhAqi65wuPfe7lHx8H/Wzy+8CE7S7uS3jekIM5s8g==", 2562 | "dev": true, 2563 | "dependencies": { 2564 | "@lukeed/csprng": "^1.0.0" 2565 | }, 2566 | "engines": { 2567 | "node": ">=8" 2568 | } 2569 | }, 2570 | "node_modules/untildify": { 2571 | "version": "4.0.0", 2572 | "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", 2573 | "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", 2574 | "dev": true, 2575 | "engines": { 2576 | "node": ">=8" 2577 | } 2578 | }, 2579 | "node_modules/uri-js": { 2580 | "version": "4.4.1", 2581 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 2582 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 2583 | "dev": true, 2584 | "dependencies": { 2585 | "punycode": "^2.1.0" 2586 | } 2587 | }, 2588 | "node_modules/which": { 2589 | "version": "2.0.2", 2590 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 2591 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 2592 | "dev": true, 2593 | "dependencies": { 2594 | "isexe": "^2.0.0" 2595 | }, 2596 | "bin": { 2597 | "node-which": "bin/node-which" 2598 | }, 2599 | "engines": { 2600 | "node": ">= 8" 2601 | } 2602 | }, 2603 | "node_modules/wrap-ansi": { 2604 | "version": "8.1.0", 2605 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", 2606 | "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", 2607 | "dev": true, 2608 | "dependencies": { 2609 | "ansi-styles": "^6.1.0", 2610 | "string-width": "^5.0.1", 2611 | "strip-ansi": "^7.0.1" 2612 | }, 2613 | "engines": { 2614 | "node": ">=12" 2615 | }, 2616 | "funding": { 2617 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 2618 | } 2619 | }, 2620 | "node_modules/wrap-ansi-cjs": { 2621 | "name": "wrap-ansi", 2622 | "version": "7.0.0", 2623 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 2624 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 2625 | "dev": true, 2626 | "dependencies": { 2627 | "ansi-styles": "^4.0.0", 2628 | "string-width": "^4.1.0", 2629 | "strip-ansi": "^6.0.0" 2630 | }, 2631 | "engines": { 2632 | "node": ">=10" 2633 | }, 2634 | "funding": { 2635 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 2636 | } 2637 | }, 2638 | "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { 2639 | "version": "8.0.0", 2640 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 2641 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 2642 | "dev": true 2643 | }, 2644 | "node_modules/wrap-ansi-cjs/node_modules/string-width": { 2645 | "version": "4.2.3", 2646 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 2647 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 2648 | "dev": true, 2649 | "dependencies": { 2650 | "emoji-regex": "^8.0.0", 2651 | "is-fullwidth-code-point": "^3.0.0", 2652 | "strip-ansi": "^6.0.1" 2653 | }, 2654 | "engines": { 2655 | "node": ">=8" 2656 | } 2657 | }, 2658 | "node_modules/wrap-ansi/node_modules/ansi-regex": { 2659 | "version": "6.0.1", 2660 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", 2661 | "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", 2662 | "dev": true, 2663 | "engines": { 2664 | "node": ">=12" 2665 | }, 2666 | "funding": { 2667 | "url": "https://github.com/chalk/ansi-regex?sponsor=1" 2668 | } 2669 | }, 2670 | "node_modules/wrap-ansi/node_modules/ansi-styles": { 2671 | "version": "6.2.1", 2672 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", 2673 | "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", 2674 | "dev": true, 2675 | "engines": { 2676 | "node": ">=12" 2677 | }, 2678 | "funding": { 2679 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 2680 | } 2681 | }, 2682 | "node_modules/wrap-ansi/node_modules/strip-ansi": { 2683 | "version": "7.1.0", 2684 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 2685 | "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 2686 | "dev": true, 2687 | "dependencies": { 2688 | "ansi-regex": "^6.0.1" 2689 | }, 2690 | "engines": { 2691 | "node": ">=12" 2692 | }, 2693 | "funding": { 2694 | "url": "https://github.com/chalk/strip-ansi?sponsor=1" 2695 | } 2696 | }, 2697 | "node_modules/wrappy": { 2698 | "version": "1.0.2", 2699 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2700 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", 2701 | "dev": true 2702 | }, 2703 | "node_modules/yallist": { 2704 | "version": "4.0.0", 2705 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 2706 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", 2707 | "dev": true 2708 | }, 2709 | "node_modules/yocto-queue": { 2710 | "version": "0.1.0", 2711 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", 2712 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", 2713 | "dev": true, 2714 | "engines": { 2715 | "node": ">=10" 2716 | }, 2717 | "funding": { 2718 | "url": "https://github.com/sponsors/sindresorhus" 2719 | } 2720 | } 2721 | }, 2722 | "dependencies": { 2723 | "@aashutoshrathi/word-wrap": { 2724 | "version": "1.2.6", 2725 | "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", 2726 | "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", 2727 | "dev": true 2728 | }, 2729 | "@eslint-community/eslint-utils": { 2730 | "version": "4.4.0", 2731 | "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", 2732 | "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", 2733 | "dev": true, 2734 | "requires": { 2735 | "eslint-visitor-keys": "^3.3.0" 2736 | } 2737 | }, 2738 | "@eslint-community/regexpp": { 2739 | "version": "4.5.1", 2740 | "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", 2741 | "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", 2742 | "dev": true 2743 | }, 2744 | "@eslint/eslintrc": { 2745 | "version": "2.1.0", 2746 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.0.tgz", 2747 | "integrity": "sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==", 2748 | "dev": true, 2749 | "requires": { 2750 | "ajv": "^6.12.4", 2751 | "debug": "^4.3.2", 2752 | "espree": "^9.6.0", 2753 | "globals": "^13.19.0", 2754 | "ignore": "^5.2.0", 2755 | "import-fresh": "^3.2.1", 2756 | "js-yaml": "^4.1.0", 2757 | "minimatch": "^3.1.2", 2758 | "strip-json-comments": "^3.1.1" 2759 | } 2760 | }, 2761 | "@eslint/js": { 2762 | "version": "8.44.0", 2763 | "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.44.0.tgz", 2764 | "integrity": "sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==", 2765 | "dev": true 2766 | }, 2767 | "@humanwhocodes/config-array": { 2768 | "version": "0.11.10", 2769 | "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", 2770 | "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", 2771 | "dev": true, 2772 | "requires": { 2773 | "@humanwhocodes/object-schema": "^1.2.1", 2774 | "debug": "^4.1.1", 2775 | "minimatch": "^3.0.5" 2776 | } 2777 | }, 2778 | "@humanwhocodes/module-importer": { 2779 | "version": "1.0.1", 2780 | "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", 2781 | "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", 2782 | "dev": true 2783 | }, 2784 | "@humanwhocodes/object-schema": { 2785 | "version": "1.2.1", 2786 | "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", 2787 | "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", 2788 | "dev": true 2789 | }, 2790 | "@ioredis/commands": { 2791 | "version": "1.2.0", 2792 | "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz", 2793 | "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==", 2794 | "dev": true 2795 | }, 2796 | "@isaacs/cliui": { 2797 | "version": "8.0.2", 2798 | "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", 2799 | "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", 2800 | "dev": true, 2801 | "requires": { 2802 | "string-width": "^5.1.2", 2803 | "string-width-cjs": "npm:string-width@^4.2.0", 2804 | "strip-ansi": "^7.0.1", 2805 | "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", 2806 | "wrap-ansi": "^8.1.0", 2807 | "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" 2808 | }, 2809 | "dependencies": { 2810 | "ansi-regex": { 2811 | "version": "6.0.1", 2812 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", 2813 | "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", 2814 | "dev": true 2815 | }, 2816 | "strip-ansi": { 2817 | "version": "7.1.0", 2818 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 2819 | "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 2820 | "dev": true, 2821 | "requires": { 2822 | "ansi-regex": "^6.0.1" 2823 | } 2824 | } 2825 | } 2826 | }, 2827 | "@lukeed/csprng": { 2828 | "version": "1.1.0", 2829 | "resolved": "https://registry.npmjs.org/@lukeed/csprng/-/csprng-1.1.0.tgz", 2830 | "integrity": "sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==", 2831 | "dev": true 2832 | }, 2833 | "@nestjs/common": { 2834 | "version": "10.0.5", 2835 | "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-10.0.5.tgz", 2836 | "integrity": "sha512-0E+SBI+SKswXbFG+Nwtnctrei5dvdFJ7b9/fQDL6KzDBtZwsglJpD86S3ooxnc7ek4vRG57oN2iLmMTjrcesMg==", 2837 | "dev": true, 2838 | "requires": { 2839 | "iterare": "1.2.1", 2840 | "tslib": "2.6.0", 2841 | "uid": "2.0.2" 2842 | } 2843 | }, 2844 | "@nodelib/fs.scandir": { 2845 | "version": "2.1.5", 2846 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 2847 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 2848 | "dev": true, 2849 | "requires": { 2850 | "@nodelib/fs.stat": "2.0.5", 2851 | "run-parallel": "^1.1.9" 2852 | } 2853 | }, 2854 | "@nodelib/fs.stat": { 2855 | "version": "2.0.5", 2856 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 2857 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 2858 | "dev": true 2859 | }, 2860 | "@nodelib/fs.walk": { 2861 | "version": "1.2.8", 2862 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 2863 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 2864 | "dev": true, 2865 | "requires": { 2866 | "@nodelib/fs.scandir": "2.1.5", 2867 | "fastq": "^1.6.0" 2868 | } 2869 | }, 2870 | "@pkgjs/parseargs": { 2871 | "version": "0.11.0", 2872 | "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", 2873 | "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", 2874 | "dev": true, 2875 | "optional": true 2876 | }, 2877 | "@pkgr/utils": { 2878 | "version": "2.4.2", 2879 | "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz", 2880 | "integrity": "sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==", 2881 | "dev": true, 2882 | "requires": { 2883 | "cross-spawn": "^7.0.3", 2884 | "fast-glob": "^3.3.0", 2885 | "is-glob": "^4.0.3", 2886 | "open": "^9.1.0", 2887 | "picocolors": "^1.0.0", 2888 | "tslib": "^2.6.0" 2889 | } 2890 | }, 2891 | "@types/json-schema": { 2892 | "version": "7.0.12", 2893 | "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", 2894 | "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", 2895 | "dev": true 2896 | }, 2897 | "@types/node": { 2898 | "version": "20.4.1", 2899 | "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.1.tgz", 2900 | "integrity": "sha512-JIzsAvJeA/5iY6Y/OxZbv1lUcc8dNSE77lb2gnBH+/PJ3lFR1Ccvgwl5JWnHAkNHcRsT0TbpVOsiMKZ1F/yyJg==", 2901 | "dev": true 2902 | }, 2903 | "@types/semver": { 2904 | "version": "7.5.0", 2905 | "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", 2906 | "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", 2907 | "dev": true 2908 | }, 2909 | "@typescript-eslint/eslint-plugin": { 2910 | "version": "6.0.0", 2911 | "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.0.0.tgz", 2912 | "integrity": "sha512-xuv6ghKGoiq856Bww/yVYnXGsKa588kY3M0XK7uUW/3fJNNULKRfZfSBkMTSpqGG/8ZCXCadfh8G/z/B4aqS/A==", 2913 | "dev": true, 2914 | "requires": { 2915 | "@eslint-community/regexpp": "^4.5.0", 2916 | "@typescript-eslint/scope-manager": "6.0.0", 2917 | "@typescript-eslint/type-utils": "6.0.0", 2918 | "@typescript-eslint/utils": "6.0.0", 2919 | "@typescript-eslint/visitor-keys": "6.0.0", 2920 | "debug": "^4.3.4", 2921 | "grapheme-splitter": "^1.0.4", 2922 | "graphemer": "^1.4.0", 2923 | "ignore": "^5.2.4", 2924 | "natural-compare": "^1.4.0", 2925 | "natural-compare-lite": "^1.4.0", 2926 | "semver": "^7.5.0", 2927 | "ts-api-utils": "^1.0.1" 2928 | } 2929 | }, 2930 | "@typescript-eslint/parser": { 2931 | "version": "6.0.0", 2932 | "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.0.0.tgz", 2933 | "integrity": "sha512-TNaufYSPrr1U8n+3xN+Yp9g31vQDJqhXzzPSHfQDLcaO4tU+mCfODPxCwf4H530zo7aUBE3QIdxCXamEnG04Tg==", 2934 | "dev": true, 2935 | "requires": { 2936 | "@typescript-eslint/scope-manager": "6.0.0", 2937 | "@typescript-eslint/types": "6.0.0", 2938 | "@typescript-eslint/typescript-estree": "6.0.0", 2939 | "@typescript-eslint/visitor-keys": "6.0.0", 2940 | "debug": "^4.3.4" 2941 | } 2942 | }, 2943 | "@typescript-eslint/scope-manager": { 2944 | "version": "6.0.0", 2945 | "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.0.0.tgz", 2946 | "integrity": "sha512-o4q0KHlgCZTqjuaZ25nw5W57NeykZT9LiMEG4do/ovwvOcPnDO1BI5BQdCsUkjxFyrCL0cSzLjvIMfR9uo7cWg==", 2947 | "dev": true, 2948 | "requires": { 2949 | "@typescript-eslint/types": "6.0.0", 2950 | "@typescript-eslint/visitor-keys": "6.0.0" 2951 | } 2952 | }, 2953 | "@typescript-eslint/type-utils": { 2954 | "version": "6.0.0", 2955 | "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.0.0.tgz", 2956 | "integrity": "sha512-ah6LJvLgkoZ/pyJ9GAdFkzeuMZ8goV6BH7eC9FPmojrnX9yNCIsfjB+zYcnex28YO3RFvBkV6rMV6WpIqkPvoQ==", 2957 | "dev": true, 2958 | "requires": { 2959 | "@typescript-eslint/typescript-estree": "6.0.0", 2960 | "@typescript-eslint/utils": "6.0.0", 2961 | "debug": "^4.3.4", 2962 | "ts-api-utils": "^1.0.1" 2963 | } 2964 | }, 2965 | "@typescript-eslint/types": { 2966 | "version": "6.0.0", 2967 | "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.0.0.tgz", 2968 | "integrity": "sha512-Zk9KDggyZM6tj0AJWYYKgF0yQyrcnievdhG0g5FqyU3Y2DRxJn4yWY21sJC0QKBckbsdKKjYDV2yVrrEvuTgxg==", 2969 | "dev": true 2970 | }, 2971 | "@typescript-eslint/typescript-estree": { 2972 | "version": "6.0.0", 2973 | "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.0.0.tgz", 2974 | "integrity": "sha512-2zq4O7P6YCQADfmJ5OTDQTP3ktajnXIRrYAtHM9ofto/CJZV3QfJ89GEaM2BNGeSr1KgmBuLhEkz5FBkS2RQhQ==", 2975 | "dev": true, 2976 | "requires": { 2977 | "@typescript-eslint/types": "6.0.0", 2978 | "@typescript-eslint/visitor-keys": "6.0.0", 2979 | "debug": "^4.3.4", 2980 | "globby": "^11.1.0", 2981 | "is-glob": "^4.0.3", 2982 | "semver": "^7.5.0", 2983 | "ts-api-utils": "^1.0.1" 2984 | } 2985 | }, 2986 | "@typescript-eslint/utils": { 2987 | "version": "6.0.0", 2988 | "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.0.0.tgz", 2989 | "integrity": "sha512-SOr6l4NB6HE4H/ktz0JVVWNXqCJTOo/mHnvIte1ZhBQ0Cvd04x5uKZa3zT6tiodL06zf5xxdK8COiDvPnQ27JQ==", 2990 | "dev": true, 2991 | "requires": { 2992 | "@eslint-community/eslint-utils": "^4.3.0", 2993 | "@types/json-schema": "^7.0.11", 2994 | "@types/semver": "^7.3.12", 2995 | "@typescript-eslint/scope-manager": "6.0.0", 2996 | "@typescript-eslint/types": "6.0.0", 2997 | "@typescript-eslint/typescript-estree": "6.0.0", 2998 | "eslint-scope": "^5.1.1", 2999 | "semver": "^7.5.0" 3000 | } 3001 | }, 3002 | "@typescript-eslint/visitor-keys": { 3003 | "version": "6.0.0", 3004 | "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.0.0.tgz", 3005 | "integrity": "sha512-cvJ63l8c0yXdeT5POHpL0Q1cZoRcmRKFCtSjNGJxPkcP571EfZMcNbzWAc7oK3D1dRzm/V5EwtkANTZxqvuuUA==", 3006 | "dev": true, 3007 | "requires": { 3008 | "@typescript-eslint/types": "6.0.0", 3009 | "eslint-visitor-keys": "^3.4.1" 3010 | } 3011 | }, 3012 | "acorn": { 3013 | "version": "8.10.0", 3014 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", 3015 | "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", 3016 | "dev": true 3017 | }, 3018 | "acorn-jsx": { 3019 | "version": "5.3.2", 3020 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", 3021 | "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", 3022 | "dev": true, 3023 | "requires": {} 3024 | }, 3025 | "ajv": { 3026 | "version": "6.12.6", 3027 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 3028 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 3029 | "dev": true, 3030 | "requires": { 3031 | "fast-deep-equal": "^3.1.1", 3032 | "fast-json-stable-stringify": "^2.0.0", 3033 | "json-schema-traverse": "^0.4.1", 3034 | "uri-js": "^4.2.2" 3035 | } 3036 | }, 3037 | "ansi-regex": { 3038 | "version": "5.0.1", 3039 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 3040 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 3041 | "dev": true 3042 | }, 3043 | "ansi-styles": { 3044 | "version": "4.3.0", 3045 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 3046 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 3047 | "dev": true, 3048 | "requires": { 3049 | "color-convert": "^2.0.1" 3050 | } 3051 | }, 3052 | "argparse": { 3053 | "version": "2.0.1", 3054 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 3055 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", 3056 | "dev": true 3057 | }, 3058 | "array-union": { 3059 | "version": "2.1.0", 3060 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", 3061 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", 3062 | "dev": true 3063 | }, 3064 | "balanced-match": { 3065 | "version": "1.0.2", 3066 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 3067 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 3068 | "dev": true 3069 | }, 3070 | "big-integer": { 3071 | "version": "1.6.51", 3072 | "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", 3073 | "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", 3074 | "dev": true 3075 | }, 3076 | "bplist-parser": { 3077 | "version": "0.2.0", 3078 | "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", 3079 | "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", 3080 | "dev": true, 3081 | "requires": { 3082 | "big-integer": "^1.6.44" 3083 | } 3084 | }, 3085 | "brace-expansion": { 3086 | "version": "1.1.11", 3087 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 3088 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 3089 | "dev": true, 3090 | "requires": { 3091 | "balanced-match": "^1.0.0", 3092 | "concat-map": "0.0.1" 3093 | } 3094 | }, 3095 | "braces": { 3096 | "version": "3.0.2", 3097 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 3098 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 3099 | "dev": true, 3100 | "requires": { 3101 | "fill-range": "^7.0.1" 3102 | } 3103 | }, 3104 | "bundle-name": { 3105 | "version": "3.0.0", 3106 | "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", 3107 | "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", 3108 | "dev": true, 3109 | "requires": { 3110 | "run-applescript": "^5.0.0" 3111 | } 3112 | }, 3113 | "callsites": { 3114 | "version": "3.1.0", 3115 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 3116 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 3117 | "dev": true 3118 | }, 3119 | "chalk": { 3120 | "version": "4.1.2", 3121 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 3122 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 3123 | "dev": true, 3124 | "requires": { 3125 | "ansi-styles": "^4.1.0", 3126 | "supports-color": "^7.1.0" 3127 | } 3128 | }, 3129 | "cluster-key-slot": { 3130 | "version": "1.1.2", 3131 | "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", 3132 | "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", 3133 | "dev": true 3134 | }, 3135 | "color-convert": { 3136 | "version": "2.0.1", 3137 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 3138 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 3139 | "dev": true, 3140 | "requires": { 3141 | "color-name": "~1.1.4" 3142 | } 3143 | }, 3144 | "color-name": { 3145 | "version": "1.1.4", 3146 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 3147 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 3148 | "dev": true 3149 | }, 3150 | "concat-map": { 3151 | "version": "0.0.1", 3152 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 3153 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 3154 | "dev": true 3155 | }, 3156 | "cross-spawn": { 3157 | "version": "7.0.3", 3158 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 3159 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 3160 | "dev": true, 3161 | "requires": { 3162 | "path-key": "^3.1.0", 3163 | "shebang-command": "^2.0.0", 3164 | "which": "^2.0.1" 3165 | } 3166 | }, 3167 | "debug": { 3168 | "version": "4.3.4", 3169 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 3170 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 3171 | "dev": true, 3172 | "requires": { 3173 | "ms": "2.1.2" 3174 | } 3175 | }, 3176 | "deep-is": { 3177 | "version": "0.1.4", 3178 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", 3179 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", 3180 | "dev": true 3181 | }, 3182 | "default-browser": { 3183 | "version": "4.0.0", 3184 | "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", 3185 | "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", 3186 | "dev": true, 3187 | "requires": { 3188 | "bundle-name": "^3.0.0", 3189 | "default-browser-id": "^3.0.0", 3190 | "execa": "^7.1.1", 3191 | "titleize": "^3.0.0" 3192 | } 3193 | }, 3194 | "default-browser-id": { 3195 | "version": "3.0.0", 3196 | "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", 3197 | "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", 3198 | "dev": true, 3199 | "requires": { 3200 | "bplist-parser": "^0.2.0", 3201 | "untildify": "^4.0.0" 3202 | } 3203 | }, 3204 | "define-lazy-prop": { 3205 | "version": "3.0.0", 3206 | "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", 3207 | "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", 3208 | "dev": true 3209 | }, 3210 | "denque": { 3211 | "version": "2.1.0", 3212 | "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", 3213 | "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", 3214 | "dev": true 3215 | }, 3216 | "dir-glob": { 3217 | "version": "3.0.1", 3218 | "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", 3219 | "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", 3220 | "dev": true, 3221 | "requires": { 3222 | "path-type": "^4.0.0" 3223 | } 3224 | }, 3225 | "doctrine": { 3226 | "version": "3.0.0", 3227 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", 3228 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", 3229 | "dev": true, 3230 | "requires": { 3231 | "esutils": "^2.0.2" 3232 | } 3233 | }, 3234 | "eastasianwidth": { 3235 | "version": "0.2.0", 3236 | "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", 3237 | "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", 3238 | "dev": true 3239 | }, 3240 | "emoji-regex": { 3241 | "version": "9.2.2", 3242 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", 3243 | "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", 3244 | "dev": true 3245 | }, 3246 | "escape-string-regexp": { 3247 | "version": "4.0.0", 3248 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 3249 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 3250 | "dev": true 3251 | }, 3252 | "eslint": { 3253 | "version": "8.44.0", 3254 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.44.0.tgz", 3255 | "integrity": "sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A==", 3256 | "dev": true, 3257 | "requires": { 3258 | "@eslint-community/eslint-utils": "^4.2.0", 3259 | "@eslint-community/regexpp": "^4.4.0", 3260 | "@eslint/eslintrc": "^2.1.0", 3261 | "@eslint/js": "8.44.0", 3262 | "@humanwhocodes/config-array": "^0.11.10", 3263 | "@humanwhocodes/module-importer": "^1.0.1", 3264 | "@nodelib/fs.walk": "^1.2.8", 3265 | "ajv": "^6.10.0", 3266 | "chalk": "^4.0.0", 3267 | "cross-spawn": "^7.0.2", 3268 | "debug": "^4.3.2", 3269 | "doctrine": "^3.0.0", 3270 | "escape-string-regexp": "^4.0.0", 3271 | "eslint-scope": "^7.2.0", 3272 | "eslint-visitor-keys": "^3.4.1", 3273 | "espree": "^9.6.0", 3274 | "esquery": "^1.4.2", 3275 | "esutils": "^2.0.2", 3276 | "fast-deep-equal": "^3.1.3", 3277 | "file-entry-cache": "^6.0.1", 3278 | "find-up": "^5.0.0", 3279 | "glob-parent": "^6.0.2", 3280 | "globals": "^13.19.0", 3281 | "graphemer": "^1.4.0", 3282 | "ignore": "^5.2.0", 3283 | "import-fresh": "^3.0.0", 3284 | "imurmurhash": "^0.1.4", 3285 | "is-glob": "^4.0.0", 3286 | "is-path-inside": "^3.0.3", 3287 | "js-yaml": "^4.1.0", 3288 | "json-stable-stringify-without-jsonify": "^1.0.1", 3289 | "levn": "^0.4.1", 3290 | "lodash.merge": "^4.6.2", 3291 | "minimatch": "^3.1.2", 3292 | "natural-compare": "^1.4.0", 3293 | "optionator": "^0.9.3", 3294 | "strip-ansi": "^6.0.1", 3295 | "strip-json-comments": "^3.1.0", 3296 | "text-table": "^0.2.0" 3297 | }, 3298 | "dependencies": { 3299 | "eslint-scope": { 3300 | "version": "7.2.0", 3301 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", 3302 | "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", 3303 | "dev": true, 3304 | "requires": { 3305 | "esrecurse": "^4.3.0", 3306 | "estraverse": "^5.2.0" 3307 | } 3308 | }, 3309 | "estraverse": { 3310 | "version": "5.3.0", 3311 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 3312 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 3313 | "dev": true 3314 | } 3315 | } 3316 | }, 3317 | "eslint-config-prettier": { 3318 | "version": "8.8.0", 3319 | "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz", 3320 | "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==", 3321 | "dev": true, 3322 | "requires": {} 3323 | }, 3324 | "eslint-plugin-prettier": { 3325 | "version": "5.0.0", 3326 | "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.0.tgz", 3327 | "integrity": "sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w==", 3328 | "dev": true, 3329 | "requires": { 3330 | "prettier-linter-helpers": "^1.0.0", 3331 | "synckit": "^0.8.5" 3332 | } 3333 | }, 3334 | "eslint-scope": { 3335 | "version": "5.1.1", 3336 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", 3337 | "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", 3338 | "dev": true, 3339 | "requires": { 3340 | "esrecurse": "^4.3.0", 3341 | "estraverse": "^4.1.1" 3342 | } 3343 | }, 3344 | "eslint-visitor-keys": { 3345 | "version": "3.4.1", 3346 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", 3347 | "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", 3348 | "dev": true 3349 | }, 3350 | "espree": { 3351 | "version": "9.6.0", 3352 | "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.0.tgz", 3353 | "integrity": "sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A==", 3354 | "dev": true, 3355 | "requires": { 3356 | "acorn": "^8.9.0", 3357 | "acorn-jsx": "^5.3.2", 3358 | "eslint-visitor-keys": "^3.4.1" 3359 | } 3360 | }, 3361 | "esquery": { 3362 | "version": "1.5.0", 3363 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", 3364 | "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", 3365 | "dev": true, 3366 | "requires": { 3367 | "estraverse": "^5.1.0" 3368 | }, 3369 | "dependencies": { 3370 | "estraverse": { 3371 | "version": "5.3.0", 3372 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 3373 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 3374 | "dev": true 3375 | } 3376 | } 3377 | }, 3378 | "esrecurse": { 3379 | "version": "4.3.0", 3380 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", 3381 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 3382 | "dev": true, 3383 | "requires": { 3384 | "estraverse": "^5.2.0" 3385 | }, 3386 | "dependencies": { 3387 | "estraverse": { 3388 | "version": "5.3.0", 3389 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 3390 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 3391 | "dev": true 3392 | } 3393 | } 3394 | }, 3395 | "estraverse": { 3396 | "version": "4.3.0", 3397 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", 3398 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", 3399 | "dev": true 3400 | }, 3401 | "esutils": { 3402 | "version": "2.0.3", 3403 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 3404 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 3405 | "dev": true 3406 | }, 3407 | "execa": { 3408 | "version": "7.1.1", 3409 | "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", 3410 | "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", 3411 | "dev": true, 3412 | "requires": { 3413 | "cross-spawn": "^7.0.3", 3414 | "get-stream": "^6.0.1", 3415 | "human-signals": "^4.3.0", 3416 | "is-stream": "^3.0.0", 3417 | "merge-stream": "^2.0.0", 3418 | "npm-run-path": "^5.1.0", 3419 | "onetime": "^6.0.0", 3420 | "signal-exit": "^3.0.7", 3421 | "strip-final-newline": "^3.0.0" 3422 | }, 3423 | "dependencies": { 3424 | "signal-exit": { 3425 | "version": "3.0.7", 3426 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", 3427 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", 3428 | "dev": true 3429 | } 3430 | } 3431 | }, 3432 | "fast-deep-equal": { 3433 | "version": "3.1.3", 3434 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 3435 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 3436 | "dev": true 3437 | }, 3438 | "fast-diff": { 3439 | "version": "1.2.0", 3440 | "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", 3441 | "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", 3442 | "dev": true 3443 | }, 3444 | "fast-glob": { 3445 | "version": "3.3.0", 3446 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", 3447 | "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", 3448 | "dev": true, 3449 | "requires": { 3450 | "@nodelib/fs.stat": "^2.0.2", 3451 | "@nodelib/fs.walk": "^1.2.3", 3452 | "glob-parent": "^5.1.2", 3453 | "merge2": "^1.3.0", 3454 | "micromatch": "^4.0.4" 3455 | }, 3456 | "dependencies": { 3457 | "glob-parent": { 3458 | "version": "5.1.2", 3459 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 3460 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 3461 | "dev": true, 3462 | "requires": { 3463 | "is-glob": "^4.0.1" 3464 | } 3465 | } 3466 | } 3467 | }, 3468 | "fast-json-stable-stringify": { 3469 | "version": "2.1.0", 3470 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 3471 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 3472 | "dev": true 3473 | }, 3474 | "fast-levenshtein": { 3475 | "version": "2.0.6", 3476 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 3477 | "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", 3478 | "dev": true 3479 | }, 3480 | "fastq": { 3481 | "version": "1.15.0", 3482 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", 3483 | "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", 3484 | "dev": true, 3485 | "requires": { 3486 | "reusify": "^1.0.4" 3487 | } 3488 | }, 3489 | "file-entry-cache": { 3490 | "version": "6.0.1", 3491 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", 3492 | "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", 3493 | "dev": true, 3494 | "requires": { 3495 | "flat-cache": "^3.0.4" 3496 | } 3497 | }, 3498 | "fill-range": { 3499 | "version": "7.0.1", 3500 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 3501 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 3502 | "dev": true, 3503 | "requires": { 3504 | "to-regex-range": "^5.0.1" 3505 | } 3506 | }, 3507 | "find-up": { 3508 | "version": "5.0.0", 3509 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", 3510 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", 3511 | "dev": true, 3512 | "requires": { 3513 | "locate-path": "^6.0.0", 3514 | "path-exists": "^4.0.0" 3515 | } 3516 | }, 3517 | "flat-cache": { 3518 | "version": "3.0.4", 3519 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", 3520 | "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", 3521 | "dev": true, 3522 | "requires": { 3523 | "flatted": "^3.1.0", 3524 | "rimraf": "^3.0.2" 3525 | }, 3526 | "dependencies": { 3527 | "glob": { 3528 | "version": "7.2.3", 3529 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", 3530 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", 3531 | "dev": true, 3532 | "requires": { 3533 | "fs.realpath": "^1.0.0", 3534 | "inflight": "^1.0.4", 3535 | "inherits": "2", 3536 | "minimatch": "^3.1.1", 3537 | "once": "^1.3.0", 3538 | "path-is-absolute": "^1.0.0" 3539 | } 3540 | }, 3541 | "rimraf": { 3542 | "version": "3.0.2", 3543 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 3544 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 3545 | "dev": true, 3546 | "requires": { 3547 | "glob": "^7.1.3" 3548 | } 3549 | } 3550 | } 3551 | }, 3552 | "flatted": { 3553 | "version": "3.2.2", 3554 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", 3555 | "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", 3556 | "dev": true 3557 | }, 3558 | "foreground-child": { 3559 | "version": "3.1.1", 3560 | "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", 3561 | "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", 3562 | "dev": true, 3563 | "requires": { 3564 | "cross-spawn": "^7.0.0", 3565 | "signal-exit": "^4.0.1" 3566 | } 3567 | }, 3568 | "fs.realpath": { 3569 | "version": "1.0.0", 3570 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 3571 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", 3572 | "dev": true 3573 | }, 3574 | "get-stream": { 3575 | "version": "6.0.1", 3576 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", 3577 | "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", 3578 | "dev": true 3579 | }, 3580 | "glob": { 3581 | "version": "10.3.3", 3582 | "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.3.tgz", 3583 | "integrity": "sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==", 3584 | "dev": true, 3585 | "requires": { 3586 | "foreground-child": "^3.1.0", 3587 | "jackspeak": "^2.0.3", 3588 | "minimatch": "^9.0.1", 3589 | "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", 3590 | "path-scurry": "^1.10.1" 3591 | }, 3592 | "dependencies": { 3593 | "brace-expansion": { 3594 | "version": "2.0.1", 3595 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", 3596 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", 3597 | "dev": true, 3598 | "requires": { 3599 | "balanced-match": "^1.0.0" 3600 | } 3601 | }, 3602 | "minimatch": { 3603 | "version": "9.0.3", 3604 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", 3605 | "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", 3606 | "dev": true, 3607 | "requires": { 3608 | "brace-expansion": "^2.0.1" 3609 | } 3610 | } 3611 | } 3612 | }, 3613 | "glob-parent": { 3614 | "version": "6.0.2", 3615 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 3616 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 3617 | "dev": true, 3618 | "requires": { 3619 | "is-glob": "^4.0.3" 3620 | } 3621 | }, 3622 | "globals": { 3623 | "version": "13.20.0", 3624 | "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", 3625 | "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", 3626 | "dev": true, 3627 | "requires": { 3628 | "type-fest": "^0.20.2" 3629 | } 3630 | }, 3631 | "globby": { 3632 | "version": "11.1.0", 3633 | "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", 3634 | "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", 3635 | "dev": true, 3636 | "requires": { 3637 | "array-union": "^2.1.0", 3638 | "dir-glob": "^3.0.1", 3639 | "fast-glob": "^3.2.9", 3640 | "ignore": "^5.2.0", 3641 | "merge2": "^1.4.1", 3642 | "slash": "^3.0.0" 3643 | } 3644 | }, 3645 | "grapheme-splitter": { 3646 | "version": "1.0.4", 3647 | "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", 3648 | "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", 3649 | "dev": true 3650 | }, 3651 | "graphemer": { 3652 | "version": "1.4.0", 3653 | "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", 3654 | "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", 3655 | "dev": true 3656 | }, 3657 | "has-flag": { 3658 | "version": "4.0.0", 3659 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 3660 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 3661 | "dev": true 3662 | }, 3663 | "human-signals": { 3664 | "version": "4.3.1", 3665 | "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", 3666 | "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", 3667 | "dev": true 3668 | }, 3669 | "ignore": { 3670 | "version": "5.2.4", 3671 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", 3672 | "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", 3673 | "dev": true 3674 | }, 3675 | "import-fresh": { 3676 | "version": "3.3.0", 3677 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", 3678 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", 3679 | "dev": true, 3680 | "requires": { 3681 | "parent-module": "^1.0.0", 3682 | "resolve-from": "^4.0.0" 3683 | } 3684 | }, 3685 | "imurmurhash": { 3686 | "version": "0.1.4", 3687 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 3688 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 3689 | "dev": true 3690 | }, 3691 | "inflight": { 3692 | "version": "1.0.6", 3693 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 3694 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 3695 | "dev": true, 3696 | "requires": { 3697 | "once": "^1.3.0", 3698 | "wrappy": "1" 3699 | } 3700 | }, 3701 | "inherits": { 3702 | "version": "2.0.4", 3703 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 3704 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 3705 | "dev": true 3706 | }, 3707 | "ioredis": { 3708 | "version": "5.3.2", 3709 | "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.3.2.tgz", 3710 | "integrity": "sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA==", 3711 | "dev": true, 3712 | "requires": { 3713 | "@ioredis/commands": "^1.1.1", 3714 | "cluster-key-slot": "^1.1.0", 3715 | "debug": "^4.3.4", 3716 | "denque": "^2.1.0", 3717 | "lodash.defaults": "^4.2.0", 3718 | "lodash.isarguments": "^3.1.0", 3719 | "redis-errors": "^1.2.0", 3720 | "redis-parser": "^3.0.0", 3721 | "standard-as-callback": "^2.1.0" 3722 | } 3723 | }, 3724 | "is-docker": { 3725 | "version": "3.0.0", 3726 | "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", 3727 | "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", 3728 | "dev": true 3729 | }, 3730 | "is-extglob": { 3731 | "version": "2.1.1", 3732 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 3733 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 3734 | "dev": true 3735 | }, 3736 | "is-fullwidth-code-point": { 3737 | "version": "3.0.0", 3738 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 3739 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 3740 | "dev": true 3741 | }, 3742 | "is-glob": { 3743 | "version": "4.0.3", 3744 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 3745 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 3746 | "dev": true, 3747 | "requires": { 3748 | "is-extglob": "^2.1.1" 3749 | } 3750 | }, 3751 | "is-inside-container": { 3752 | "version": "1.0.0", 3753 | "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", 3754 | "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", 3755 | "dev": true, 3756 | "requires": { 3757 | "is-docker": "^3.0.0" 3758 | } 3759 | }, 3760 | "is-number": { 3761 | "version": "7.0.0", 3762 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 3763 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 3764 | "dev": true 3765 | }, 3766 | "is-path-inside": { 3767 | "version": "3.0.3", 3768 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", 3769 | "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", 3770 | "dev": true 3771 | }, 3772 | "is-stream": { 3773 | "version": "3.0.0", 3774 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", 3775 | "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", 3776 | "dev": true 3777 | }, 3778 | "is-wsl": { 3779 | "version": "2.2.0", 3780 | "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", 3781 | "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", 3782 | "dev": true, 3783 | "requires": { 3784 | "is-docker": "^2.0.0" 3785 | }, 3786 | "dependencies": { 3787 | "is-docker": { 3788 | "version": "2.2.1", 3789 | "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", 3790 | "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", 3791 | "dev": true 3792 | } 3793 | } 3794 | }, 3795 | "isexe": { 3796 | "version": "2.0.0", 3797 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 3798 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 3799 | "dev": true 3800 | }, 3801 | "iterare": { 3802 | "version": "1.2.1", 3803 | "resolved": "https://registry.npmjs.org/iterare/-/iterare-1.2.1.tgz", 3804 | "integrity": "sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==", 3805 | "dev": true 3806 | }, 3807 | "jackspeak": { 3808 | "version": "2.2.1", 3809 | "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.1.tgz", 3810 | "integrity": "sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw==", 3811 | "dev": true, 3812 | "requires": { 3813 | "@isaacs/cliui": "^8.0.2", 3814 | "@pkgjs/parseargs": "^0.11.0" 3815 | } 3816 | }, 3817 | "js-yaml": { 3818 | "version": "4.1.0", 3819 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 3820 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 3821 | "dev": true, 3822 | "requires": { 3823 | "argparse": "^2.0.1" 3824 | } 3825 | }, 3826 | "json-schema-traverse": { 3827 | "version": "0.4.1", 3828 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 3829 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 3830 | "dev": true 3831 | }, 3832 | "json-stable-stringify-without-jsonify": { 3833 | "version": "1.0.1", 3834 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 3835 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", 3836 | "dev": true 3837 | }, 3838 | "levn": { 3839 | "version": "0.4.1", 3840 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", 3841 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", 3842 | "dev": true, 3843 | "requires": { 3844 | "prelude-ls": "^1.2.1", 3845 | "type-check": "~0.4.0" 3846 | } 3847 | }, 3848 | "locate-path": { 3849 | "version": "6.0.0", 3850 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", 3851 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", 3852 | "dev": true, 3853 | "requires": { 3854 | "p-locate": "^5.0.0" 3855 | } 3856 | }, 3857 | "lodash.defaults": { 3858 | "version": "4.2.0", 3859 | "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", 3860 | "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", 3861 | "dev": true 3862 | }, 3863 | "lodash.isarguments": { 3864 | "version": "3.1.0", 3865 | "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", 3866 | "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==", 3867 | "dev": true 3868 | }, 3869 | "lodash.merge": { 3870 | "version": "4.6.2", 3871 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", 3872 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", 3873 | "dev": true 3874 | }, 3875 | "lru-cache": { 3876 | "version": "10.0.0", 3877 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz", 3878 | "integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==", 3879 | "dev": true 3880 | }, 3881 | "merge-stream": { 3882 | "version": "2.0.0", 3883 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", 3884 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", 3885 | "dev": true 3886 | }, 3887 | "merge2": { 3888 | "version": "1.4.1", 3889 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 3890 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 3891 | "dev": true 3892 | }, 3893 | "micromatch": { 3894 | "version": "4.0.5", 3895 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", 3896 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", 3897 | "dev": true, 3898 | "requires": { 3899 | "braces": "^3.0.2", 3900 | "picomatch": "^2.3.1" 3901 | } 3902 | }, 3903 | "mimic-fn": { 3904 | "version": "4.0.0", 3905 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", 3906 | "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", 3907 | "dev": true 3908 | }, 3909 | "minimatch": { 3910 | "version": "3.1.2", 3911 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 3912 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 3913 | "dev": true, 3914 | "requires": { 3915 | "brace-expansion": "^1.1.7" 3916 | } 3917 | }, 3918 | "minipass": { 3919 | "version": "7.0.2", 3920 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.2.tgz", 3921 | "integrity": "sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA==", 3922 | "dev": true 3923 | }, 3924 | "ms": { 3925 | "version": "2.1.2", 3926 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 3927 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 3928 | "dev": true 3929 | }, 3930 | "natural-compare": { 3931 | "version": "1.4.0", 3932 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 3933 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", 3934 | "dev": true 3935 | }, 3936 | "natural-compare-lite": { 3937 | "version": "1.4.0", 3938 | "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", 3939 | "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", 3940 | "dev": true 3941 | }, 3942 | "npm-run-path": { 3943 | "version": "5.1.0", 3944 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", 3945 | "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", 3946 | "dev": true, 3947 | "requires": { 3948 | "path-key": "^4.0.0" 3949 | }, 3950 | "dependencies": { 3951 | "path-key": { 3952 | "version": "4.0.0", 3953 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", 3954 | "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", 3955 | "dev": true 3956 | } 3957 | } 3958 | }, 3959 | "once": { 3960 | "version": "1.4.0", 3961 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 3962 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 3963 | "dev": true, 3964 | "requires": { 3965 | "wrappy": "1" 3966 | } 3967 | }, 3968 | "onetime": { 3969 | "version": "6.0.0", 3970 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", 3971 | "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", 3972 | "dev": true, 3973 | "requires": { 3974 | "mimic-fn": "^4.0.0" 3975 | } 3976 | }, 3977 | "open": { 3978 | "version": "9.1.0", 3979 | "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", 3980 | "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", 3981 | "dev": true, 3982 | "requires": { 3983 | "default-browser": "^4.0.0", 3984 | "define-lazy-prop": "^3.0.0", 3985 | "is-inside-container": "^1.0.0", 3986 | "is-wsl": "^2.2.0" 3987 | } 3988 | }, 3989 | "optionator": { 3990 | "version": "0.9.3", 3991 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", 3992 | "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", 3993 | "dev": true, 3994 | "requires": { 3995 | "@aashutoshrathi/word-wrap": "^1.2.3", 3996 | "deep-is": "^0.1.3", 3997 | "fast-levenshtein": "^2.0.6", 3998 | "levn": "^0.4.1", 3999 | "prelude-ls": "^1.2.1", 4000 | "type-check": "^0.4.0" 4001 | } 4002 | }, 4003 | "p-limit": { 4004 | "version": "3.1.0", 4005 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", 4006 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", 4007 | "dev": true, 4008 | "requires": { 4009 | "yocto-queue": "^0.1.0" 4010 | } 4011 | }, 4012 | "p-locate": { 4013 | "version": "5.0.0", 4014 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", 4015 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", 4016 | "dev": true, 4017 | "requires": { 4018 | "p-limit": "^3.0.2" 4019 | } 4020 | }, 4021 | "parent-module": { 4022 | "version": "1.0.1", 4023 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 4024 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 4025 | "dev": true, 4026 | "requires": { 4027 | "callsites": "^3.0.0" 4028 | } 4029 | }, 4030 | "path-exists": { 4031 | "version": "4.0.0", 4032 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 4033 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 4034 | "dev": true 4035 | }, 4036 | "path-is-absolute": { 4037 | "version": "1.0.1", 4038 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 4039 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", 4040 | "dev": true 4041 | }, 4042 | "path-key": { 4043 | "version": "3.1.1", 4044 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 4045 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 4046 | "dev": true 4047 | }, 4048 | "path-scurry": { 4049 | "version": "1.10.1", 4050 | "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", 4051 | "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", 4052 | "dev": true, 4053 | "requires": { 4054 | "lru-cache": "^9.1.1 || ^10.0.0", 4055 | "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" 4056 | } 4057 | }, 4058 | "path-type": { 4059 | "version": "4.0.0", 4060 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", 4061 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", 4062 | "dev": true 4063 | }, 4064 | "picocolors": { 4065 | "version": "1.0.0", 4066 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 4067 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", 4068 | "dev": true 4069 | }, 4070 | "picomatch": { 4071 | "version": "2.3.1", 4072 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 4073 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 4074 | "dev": true 4075 | }, 4076 | "prelude-ls": { 4077 | "version": "1.2.1", 4078 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", 4079 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", 4080 | "dev": true 4081 | }, 4082 | "prettier": { 4083 | "version": "3.0.0", 4084 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.0.tgz", 4085 | "integrity": "sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==", 4086 | "dev": true 4087 | }, 4088 | "prettier-linter-helpers": { 4089 | "version": "1.0.0", 4090 | "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", 4091 | "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", 4092 | "dev": true, 4093 | "requires": { 4094 | "fast-diff": "^1.1.2" 4095 | } 4096 | }, 4097 | "punycode": { 4098 | "version": "2.3.0", 4099 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", 4100 | "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", 4101 | "dev": true 4102 | }, 4103 | "queue-microtask": { 4104 | "version": "1.2.3", 4105 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 4106 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 4107 | "dev": true 4108 | }, 4109 | "redis-errors": { 4110 | "version": "1.2.0", 4111 | "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", 4112 | "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==", 4113 | "dev": true 4114 | }, 4115 | "redis-parser": { 4116 | "version": "3.0.0", 4117 | "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", 4118 | "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", 4119 | "dev": true, 4120 | "requires": { 4121 | "redis-errors": "^1.0.0" 4122 | } 4123 | }, 4124 | "reflect-metadata": { 4125 | "version": "0.1.13", 4126 | "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", 4127 | "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", 4128 | "dev": true, 4129 | "peer": true 4130 | }, 4131 | "resolve-from": { 4132 | "version": "4.0.0", 4133 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 4134 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 4135 | "dev": true 4136 | }, 4137 | "reusify": { 4138 | "version": "1.0.4", 4139 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 4140 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 4141 | "dev": true 4142 | }, 4143 | "rimraf": { 4144 | "version": "5.0.1", 4145 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.1.tgz", 4146 | "integrity": "sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==", 4147 | "dev": true, 4148 | "requires": { 4149 | "glob": "^10.2.5" 4150 | } 4151 | }, 4152 | "run-applescript": { 4153 | "version": "5.0.0", 4154 | "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", 4155 | "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", 4156 | "dev": true, 4157 | "requires": { 4158 | "execa": "^5.0.0" 4159 | }, 4160 | "dependencies": { 4161 | "execa": { 4162 | "version": "5.1.1", 4163 | "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", 4164 | "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", 4165 | "dev": true, 4166 | "requires": { 4167 | "cross-spawn": "^7.0.3", 4168 | "get-stream": "^6.0.0", 4169 | "human-signals": "^2.1.0", 4170 | "is-stream": "^2.0.0", 4171 | "merge-stream": "^2.0.0", 4172 | "npm-run-path": "^4.0.1", 4173 | "onetime": "^5.1.2", 4174 | "signal-exit": "^3.0.3", 4175 | "strip-final-newline": "^2.0.0" 4176 | } 4177 | }, 4178 | "human-signals": { 4179 | "version": "2.1.0", 4180 | "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", 4181 | "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", 4182 | "dev": true 4183 | }, 4184 | "is-stream": { 4185 | "version": "2.0.1", 4186 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", 4187 | "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", 4188 | "dev": true 4189 | }, 4190 | "mimic-fn": { 4191 | "version": "2.1.0", 4192 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", 4193 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", 4194 | "dev": true 4195 | }, 4196 | "npm-run-path": { 4197 | "version": "4.0.1", 4198 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", 4199 | "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", 4200 | "dev": true, 4201 | "requires": { 4202 | "path-key": "^3.0.0" 4203 | } 4204 | }, 4205 | "onetime": { 4206 | "version": "5.1.2", 4207 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", 4208 | "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", 4209 | "dev": true, 4210 | "requires": { 4211 | "mimic-fn": "^2.1.0" 4212 | } 4213 | }, 4214 | "signal-exit": { 4215 | "version": "3.0.7", 4216 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", 4217 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", 4218 | "dev": true 4219 | }, 4220 | "strip-final-newline": { 4221 | "version": "2.0.0", 4222 | "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", 4223 | "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", 4224 | "dev": true 4225 | } 4226 | } 4227 | }, 4228 | "run-parallel": { 4229 | "version": "1.2.0", 4230 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 4231 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 4232 | "dev": true, 4233 | "requires": { 4234 | "queue-microtask": "^1.2.2" 4235 | } 4236 | }, 4237 | "rxjs": { 4238 | "version": "7.3.0", 4239 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.3.0.tgz", 4240 | "integrity": "sha512-p2yuGIg9S1epc3vrjKf6iVb3RCaAYjYskkO+jHIaV0IjOPlJop4UnodOoFb2xeNwlguqLYvGw1b1McillYb5Gw==", 4241 | "dev": true, 4242 | "peer": true, 4243 | "requires": { 4244 | "tslib": "~2.1.0" 4245 | }, 4246 | "dependencies": { 4247 | "tslib": { 4248 | "version": "2.1.0", 4249 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", 4250 | "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", 4251 | "dev": true, 4252 | "peer": true 4253 | } 4254 | } 4255 | }, 4256 | "semver": { 4257 | "version": "7.5.4", 4258 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", 4259 | "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", 4260 | "dev": true, 4261 | "requires": { 4262 | "lru-cache": "^6.0.0" 4263 | }, 4264 | "dependencies": { 4265 | "lru-cache": { 4266 | "version": "6.0.0", 4267 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 4268 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 4269 | "dev": true, 4270 | "requires": { 4271 | "yallist": "^4.0.0" 4272 | } 4273 | } 4274 | } 4275 | }, 4276 | "shebang-command": { 4277 | "version": "2.0.0", 4278 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 4279 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 4280 | "dev": true, 4281 | "requires": { 4282 | "shebang-regex": "^3.0.0" 4283 | } 4284 | }, 4285 | "shebang-regex": { 4286 | "version": "3.0.0", 4287 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 4288 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 4289 | "dev": true 4290 | }, 4291 | "signal-exit": { 4292 | "version": "4.0.2", 4293 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", 4294 | "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", 4295 | "dev": true 4296 | }, 4297 | "slash": { 4298 | "version": "3.0.0", 4299 | "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", 4300 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", 4301 | "dev": true 4302 | }, 4303 | "standard-as-callback": { 4304 | "version": "2.1.0", 4305 | "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", 4306 | "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==", 4307 | "dev": true 4308 | }, 4309 | "string-width": { 4310 | "version": "5.1.2", 4311 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", 4312 | "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", 4313 | "dev": true, 4314 | "requires": { 4315 | "eastasianwidth": "^0.2.0", 4316 | "emoji-regex": "^9.2.2", 4317 | "strip-ansi": "^7.0.1" 4318 | }, 4319 | "dependencies": { 4320 | "ansi-regex": { 4321 | "version": "6.0.1", 4322 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", 4323 | "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", 4324 | "dev": true 4325 | }, 4326 | "strip-ansi": { 4327 | "version": "7.1.0", 4328 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 4329 | "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 4330 | "dev": true, 4331 | "requires": { 4332 | "ansi-regex": "^6.0.1" 4333 | } 4334 | } 4335 | } 4336 | }, 4337 | "string-width-cjs": { 4338 | "version": "npm:string-width@4.2.3", 4339 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 4340 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 4341 | "dev": true, 4342 | "requires": { 4343 | "emoji-regex": "^8.0.0", 4344 | "is-fullwidth-code-point": "^3.0.0", 4345 | "strip-ansi": "^6.0.1" 4346 | }, 4347 | "dependencies": { 4348 | "emoji-regex": { 4349 | "version": "8.0.0", 4350 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 4351 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 4352 | "dev": true 4353 | } 4354 | } 4355 | }, 4356 | "strip-ansi": { 4357 | "version": "6.0.1", 4358 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 4359 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 4360 | "dev": true, 4361 | "requires": { 4362 | "ansi-regex": "^5.0.1" 4363 | } 4364 | }, 4365 | "strip-ansi-cjs": { 4366 | "version": "npm:strip-ansi@6.0.1", 4367 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 4368 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 4369 | "dev": true, 4370 | "requires": { 4371 | "ansi-regex": "^5.0.1" 4372 | } 4373 | }, 4374 | "strip-final-newline": { 4375 | "version": "3.0.0", 4376 | "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", 4377 | "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", 4378 | "dev": true 4379 | }, 4380 | "strip-json-comments": { 4381 | "version": "3.1.1", 4382 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 4383 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 4384 | "dev": true 4385 | }, 4386 | "supports-color": { 4387 | "version": "7.2.0", 4388 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 4389 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 4390 | "dev": true, 4391 | "requires": { 4392 | "has-flag": "^4.0.0" 4393 | } 4394 | }, 4395 | "synckit": { 4396 | "version": "0.8.5", 4397 | "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz", 4398 | "integrity": "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==", 4399 | "dev": true, 4400 | "requires": { 4401 | "@pkgr/utils": "^2.3.1", 4402 | "tslib": "^2.5.0" 4403 | } 4404 | }, 4405 | "text-table": { 4406 | "version": "0.2.0", 4407 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 4408 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", 4409 | "dev": true 4410 | }, 4411 | "titleize": { 4412 | "version": "3.0.0", 4413 | "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", 4414 | "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", 4415 | "dev": true 4416 | }, 4417 | "to-regex-range": { 4418 | "version": "5.0.1", 4419 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 4420 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 4421 | "dev": true, 4422 | "requires": { 4423 | "is-number": "^7.0.0" 4424 | } 4425 | }, 4426 | "ts-api-utils": { 4427 | "version": "1.0.1", 4428 | "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.1.tgz", 4429 | "integrity": "sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==", 4430 | "dev": true, 4431 | "requires": {} 4432 | }, 4433 | "tslib": { 4434 | "version": "2.6.0", 4435 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", 4436 | "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==", 4437 | "dev": true 4438 | }, 4439 | "type-check": { 4440 | "version": "0.4.0", 4441 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", 4442 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", 4443 | "dev": true, 4444 | "requires": { 4445 | "prelude-ls": "^1.2.1" 4446 | } 4447 | }, 4448 | "type-fest": { 4449 | "version": "0.20.2", 4450 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", 4451 | "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", 4452 | "dev": true 4453 | }, 4454 | "typescript": { 4455 | "version": "5.1.6", 4456 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", 4457 | "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", 4458 | "dev": true 4459 | }, 4460 | "uid": { 4461 | "version": "2.0.2", 4462 | "resolved": "https://registry.npmjs.org/uid/-/uid-2.0.2.tgz", 4463 | "integrity": "sha512-u3xV3X7uzvi5b1MncmZo3i2Aw222Zk1keqLA1YkHldREkAhAqi65wuPfe7lHx8H/Wzy+8CE7S7uS3jekIM5s8g==", 4464 | "dev": true, 4465 | "requires": { 4466 | "@lukeed/csprng": "^1.0.0" 4467 | } 4468 | }, 4469 | "untildify": { 4470 | "version": "4.0.0", 4471 | "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", 4472 | "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", 4473 | "dev": true 4474 | }, 4475 | "uri-js": { 4476 | "version": "4.4.1", 4477 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 4478 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 4479 | "dev": true, 4480 | "requires": { 4481 | "punycode": "^2.1.0" 4482 | } 4483 | }, 4484 | "which": { 4485 | "version": "2.0.2", 4486 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 4487 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 4488 | "dev": true, 4489 | "requires": { 4490 | "isexe": "^2.0.0" 4491 | } 4492 | }, 4493 | "wrap-ansi": { 4494 | "version": "8.1.0", 4495 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", 4496 | "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", 4497 | "dev": true, 4498 | "requires": { 4499 | "ansi-styles": "^6.1.0", 4500 | "string-width": "^5.0.1", 4501 | "strip-ansi": "^7.0.1" 4502 | }, 4503 | "dependencies": { 4504 | "ansi-regex": { 4505 | "version": "6.0.1", 4506 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", 4507 | "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", 4508 | "dev": true 4509 | }, 4510 | "ansi-styles": { 4511 | "version": "6.2.1", 4512 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", 4513 | "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", 4514 | "dev": true 4515 | }, 4516 | "strip-ansi": { 4517 | "version": "7.1.0", 4518 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 4519 | "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 4520 | "dev": true, 4521 | "requires": { 4522 | "ansi-regex": "^6.0.1" 4523 | } 4524 | } 4525 | } 4526 | }, 4527 | "wrap-ansi-cjs": { 4528 | "version": "npm:wrap-ansi@7.0.0", 4529 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 4530 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 4531 | "dev": true, 4532 | "requires": { 4533 | "ansi-styles": "^4.0.0", 4534 | "string-width": "^4.1.0", 4535 | "strip-ansi": "^6.0.0" 4536 | }, 4537 | "dependencies": { 4538 | "emoji-regex": { 4539 | "version": "8.0.0", 4540 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 4541 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 4542 | "dev": true 4543 | }, 4544 | "string-width": { 4545 | "version": "4.2.3", 4546 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 4547 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 4548 | "dev": true, 4549 | "requires": { 4550 | "emoji-regex": "^8.0.0", 4551 | "is-fullwidth-code-point": "^3.0.0", 4552 | "strip-ansi": "^6.0.1" 4553 | } 4554 | } 4555 | } 4556 | }, 4557 | "wrappy": { 4558 | "version": "1.0.2", 4559 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 4560 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", 4561 | "dev": true 4562 | }, 4563 | "yallist": { 4564 | "version": "4.0.0", 4565 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 4566 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", 4567 | "dev": true 4568 | }, 4569 | "yocto-queue": { 4570 | "version": "0.1.0", 4571 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", 4572 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", 4573 | "dev": true 4574 | } 4575 | } 4576 | } 4577 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@jasonsoft/nestjs-redis", 3 | "version": "1.0.2", 4 | "description": "Redis module for Nest framework (node.js)", 5 | "scripts": { 6 | "build": "rimraf -rf dist && tsc -p tsconfig.json", 7 | "format": "prettier **/**/*.ts --ignore-path ./.prettierignore --write", 8 | "lint": "eslint 'lib/**/*.ts' --fix", 9 | "prepublish:npm": "npm run build", 10 | "publish:npm": "npm publish --access public", 11 | "test": "echo \"Error: no test specified\" && exit 1" 12 | }, 13 | "repository": { 14 | "type": "git", 15 | "url": "git+https://github.com/jasonsoft/nestjs-redis.git" 16 | }, 17 | "keywords": [ 18 | "@jasonsoft/nestjs-redis", 19 | "jasonsoft", 20 | "nestjs-redis", 21 | "nestjs", 22 | "redis", 23 | "ioredis" 24 | ], 25 | "author": "jason song", 26 | "license": "MIT", 27 | "bugs": { 28 | "url": "https://github.com/jasonsoft/nestjs-redis/issues" 29 | }, 30 | "homepage": "https://github.com/jasonsoft/nestjs-redis#readme", 31 | "devDependencies": { 32 | "@nestjs/common": "10.0.5", 33 | "@types/node": "20.4.1", 34 | "@typescript-eslint/eslint-plugin": "6.0.0", 35 | "@typescript-eslint/parser": "6.0.0", 36 | "eslint": "8.44.0", 37 | "eslint-config-prettier": "8.8.0", 38 | "eslint-plugin-prettier": "5.0.0", 39 | "ioredis": "5.3.2", 40 | "prettier": "3.0.0", 41 | "rimraf": "5.0.1", 42 | "typescript": "5.1.6" 43 | }, 44 | "peerDependencies": { 45 | "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0", 46 | "ioredis": "^4.0.0 || ^5.0.0" 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "commonjs", 4 | "declaration": true, 5 | "strict": true, 6 | "removeComments": false, 7 | "noLib": false, 8 | "emitDecoratorMetadata": true, 9 | "esModuleInterop": true, 10 | "experimentalDecorators": true, 11 | "target": "ES2017", 12 | "sourceMap": false, 13 | "outDir": "./dist", 14 | "rootDir": "./lib", 15 | "skipLibCheck": true 16 | }, 17 | "include": [".eslintrc.js", "./lib/**/*"], 18 | "exclude": ["node_modules", "**/*.spec.ts", "tests"] 19 | } 20 | --------------------------------------------------------------------------------