├── .env.example ├── .gitattributes ├── src ├── shared │ ├── constants.ts │ └── tsconfig.json ├── server │ ├── setup.ts │ ├── @types │ │ └── index.d.ts │ ├── tsconfig.json │ └── index.ts └── client │ ├── @types │ └── index.d.ts │ ├── tsconfig.json │ └── index.ts ├── .editorconfig ├── conf.json ├── LICENSE ├── tsconfig.base.json ├── package.json ├── .gitignore ├── README.md ├── scripts └── rollup.config.js └── pnpm-lock.yaml /.env.example: -------------------------------------------------------------------------------- 1 | PRODUCTION_MODE=false 2 | COMPILER_USE_SWC=true 3 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | * text eol=lf 3 | *.png binary 4 | -------------------------------------------------------------------------------- /src/shared/constants.ts: -------------------------------------------------------------------------------- 1 | export const SHARED_CONSTANTS = { 2 | HELLO_WORLD: 'HELLO WORLD!' 3 | }; 4 | -------------------------------------------------------------------------------- /src/shared/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "include": ["./**/*.ts"] 4 | } 5 | -------------------------------------------------------------------------------- /src/server/setup.ts: -------------------------------------------------------------------------------- 1 | import path from 'path'; 2 | import { config } from 'dotenv'; 3 | 4 | config({ 5 | path: path.resolve('.env') 6 | }); 7 | -------------------------------------------------------------------------------- /src/client/@types/index.d.ts: -------------------------------------------------------------------------------- 1 | declare global { 2 | interface PlayerMp { 3 | customProperty: number; 4 | 5 | customMethod(): void; 6 | } 7 | } 8 | 9 | export {}; 10 | -------------------------------------------------------------------------------- /src/server/@types/index.d.ts: -------------------------------------------------------------------------------- 1 | declare global { 2 | interface PlayerMp { 3 | customProperty: number; 4 | 5 | customMethod(): void; 6 | } 7 | } 8 | 9 | export {}; 10 | -------------------------------------------------------------------------------- /src/client/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["../../node_modules/@ragempcommunity/types-client", "./@types"], 5 | "baseUrl": "./", 6 | "paths": { 7 | "@shared/*": ["../shared/*"], 8 | "@/*": ["./*"] 9 | } 10 | }, 11 | "include": ["./**/*.ts", "../shared/**/*.ts"], 12 | "exclude": ["../shared/**/*.d.ts"] 13 | } 14 | -------------------------------------------------------------------------------- /src/server/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["../../node_modules/@ragempcommunity/types-server", "./@types"], 5 | "baseUrl": "./", 6 | "paths": { 7 | "@shared/*": ["../shared/*"], 8 | "@/*": ["./*"] 9 | } 10 | }, 11 | "include": ["./**/*.ts", "../shared/**/*.ts"], 12 | "exclude": ["../shared/**/*.d.ts"] 13 | } 14 | -------------------------------------------------------------------------------- /src/server/index.ts: -------------------------------------------------------------------------------- 1 | import './setup'; 2 | 3 | import { SHARED_CONSTANTS } from '@shared/constants'; 4 | 5 | mp.events.add('playerReady', (player) => { 6 | console.log(`${player.name} is ready!`); 7 | 8 | player.customProperty = 1; 9 | 10 | player.customMethod = () => { 11 | console.log('customMethod called.'); 12 | }; 13 | 14 | player.customMethod(); 15 | }); 16 | 17 | console.log(SHARED_CONSTANTS.HELLO_WORLD); 18 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | insert_final_newline = true 7 | trim_trailing_whitespace = true 8 | 9 | [*.{js,ts}] 10 | indent_size = 4 11 | indent_style = tab 12 | block_comment_start = /* 13 | block_comment = * 14 | block_comment_end = */ 15 | 16 | [*.{yml,yaml}] 17 | indent_size = 2 18 | indent_style = space 19 | 20 | [*.{md,rmd,mkd,mkdn,mdwn,mdown,markdown,litcoffee}] 21 | tab_width = 4 22 | trim_trailing_whitespace = false 23 | -------------------------------------------------------------------------------- /conf.json: -------------------------------------------------------------------------------- 1 | { 2 | "maxplayers": 1000, 3 | "name": "RAGEMP Typescript", 4 | "gamemode": "RP", 5 | "stream-distance": 500.0, 6 | "announce": false, 7 | "csharp": "disabled", 8 | "bind": "127.0.0.1", 9 | "port": 22005, 10 | "encryption": false, 11 | "url": "https://rage.mp", 12 | "language": "en", 13 | "allow-cef-debugging": true, 14 | "enable-http-security": false, 15 | "voice-chat": true, 16 | "voice-chat-sample-rate": 24000, 17 | "resources-compression-level": 0 18 | } 19 | -------------------------------------------------------------------------------- /src/client/index.ts: -------------------------------------------------------------------------------- 1 | import { SHARED_CONSTANTS } from '@shared/constants'; 2 | 3 | mp.events.add('playerReady', () => { 4 | mp.console.logInfo(`${mp.players.local.name} is ready!`); 5 | mp.console.logInfo(SHARED_CONSTANTS.HELLO_WORLD); 6 | 7 | mp.players.local.customProperty = 1; 8 | mp.console.logInfo(`customProperty: ${mp.players.local.customProperty}`); 9 | 10 | mp.players.local.customMethod = () => { 11 | mp.console.logInfo(`customMethod called.`); 12 | }; 13 | 14 | mp.players.local.customMethod(); 15 | }); 16 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Narcis B. 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 | -------------------------------------------------------------------------------- /tsconfig.base.json: -------------------------------------------------------------------------------- 1 | { 2 | "exclude": ["node_modules", "dist"], 3 | "compileOnSave": true, 4 | "compilerOptions": { 5 | "skipLibCheck": false, 6 | "target": "esnext", 7 | "module": "esnext", 8 | "moduleResolution": "node", 9 | "lib": ["es6", "esnext", "DOM"], 10 | "rootDir": ".", 11 | "outDir": "dist", 12 | "strict": true, 13 | "removeComments": false, 14 | "noUnusedLocals": true, 15 | "noUnusedParameters": true, 16 | "noImplicitReturns": true, 17 | "noFallthroughCasesInSwitch": true, 18 | "allowSyntheticDefaultImports": true, 19 | "importHelpers": true, 20 | "esModuleInterop": true, 21 | "resolveJsonModule": true, 22 | "forceConsistentCasingInFileNames": true, 23 | "emitDecoratorMetadata": true, 24 | "experimentalDecorators": true, 25 | "allowJs": true, 26 | "declaration": false, 27 | "declarationMap": false, 28 | "sourceMap": false, 29 | "alwaysStrict": true, 30 | "importsNotUsedAsValues": "remove", 31 | "incremental": true, 32 | "newLine": "lf", 33 | "noEmitHelpers": true, 34 | "preserveConstEnums": true, 35 | "pretty": true, 36 | "useDefineForClassFields": true, 37 | "baseUrl": "./" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ragemp-typescript", 3 | "version": "2.2.1", 4 | "scripts": { 5 | "format": "prettier --write {src,scripts}/**/*.ts", 6 | "build:production": "rollup -c ./scripts/rollup.config.js --environment NODE_ENV:production", 7 | "build": "rollup -c ./scripts/rollup.config.js", 8 | "watch": "rollup -w -c ./scripts/rollup.config.js" 9 | }, 10 | "repository": { 11 | "type": "git", 12 | "url": "git+https://github.com/LeonardSSH/ragemp-typescript.git" 13 | }, 14 | "license": "MIT", 15 | "bugs": { 16 | "url": "https://github.com/LeonardSSH/ragemp-typescript/issues" 17 | }, 18 | "homepage": "https://github.com/LeonardSSH/ragemp-typescript#readme", 19 | "devDependencies": { 20 | "@ragempcommunity/types-client": "^2.0.2", 21 | "@ragempcommunity/types-server": "^2.0.2", 22 | "@rollup/plugin-commonjs": "^21.0.1", 23 | "@rollup/plugin-json": "^4.1.0", 24 | "@rollup/plugin-node-resolve": "^13.0.6", 25 | "@rollup/plugin-replace": "^4.0.0", 26 | "@swc/core": "^1.2.118", 27 | "@swc/helpers": "^0.3.2", 28 | "@types/node": "^17.0.23", 29 | "builtin-modules": "^3.2.0", 30 | "fs-jetpack": "^4.2.0", 31 | "prettier": "^2.5.0", 32 | "rollup": "^2.60.1", 33 | "rollup-plugin-swc3": "^0.1.4", 34 | "rollup-plugin-terser": "^7.0.2", 35 | "rollup-plugin-tsconfig-paths": "^1.0.15", 36 | "rollup-plugin-typescript2": "^0.31.1", 37 | "typescript": "^4.5.2" 38 | }, 39 | "dependencies": { 40 | "colorette": "^2.0.16", 41 | "dotenv": "^16.0.0" 42 | }, 43 | "prettier": { 44 | "$schema": "http://json.schemastore.org/prettierrc", 45 | "endOfLine": "lf", 46 | "printWidth": 150, 47 | "quoteProps": "as-needed", 48 | "semi": true, 49 | "singleQuote": true, 50 | "tabWidth": 4, 51 | "trailingComma": "none", 52 | "useTabs": true, 53 | "overrides": [ 54 | { 55 | "files": "*.yml", 56 | "options": { 57 | "tabWidth": 2, 58 | "useTabs": false 59 | } 60 | } 61 | ] 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | 9 | # Diagnostic reports (https://nodejs.org/api/report.html) 10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 11 | 12 | # Runtime data 13 | pids 14 | *.pid 15 | *.seed 16 | *.pid.lock 17 | 18 | # Directory for instrumented libs generated by jscoverage/JSCover 19 | lib-cov 20 | 21 | # Coverage directory used by tools like istanbul 22 | coverage 23 | *.lcov 24 | 25 | # nyc test coverage 26 | .nyc_output 27 | 28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 29 | .grunt 30 | 31 | # Bower dependency directory (https://bower.io/) 32 | bower_components 33 | 34 | # node-waf configuration 35 | .lock-wscript 36 | 37 | # Compiled binary addons (https://nodejs.org/api/addons.html) 38 | build/Release 39 | 40 | # Dependency directories 41 | node_modules/ 42 | jspm_packages/ 43 | 44 | # TypeScript v1 declaration files 45 | typings/ 46 | 47 | # TypeScript cache 48 | *.tsbuildinfo 49 | 50 | # Optional npm cache directory 51 | .npm 52 | 53 | # Optional eslint cache 54 | .eslintcache 55 | 56 | # Microbundle cache 57 | .rpt2_cache/ 58 | .rts2_cache_cjs/ 59 | .rts2_cache_es/ 60 | .rts2_cache_umd/ 61 | 62 | # Optional REPL history 63 | .node_repl_history 64 | 65 | # Output of 'npm pack' 66 | *.tgz 67 | 68 | # Yarn Integrity file 69 | .yarn-integrity 70 | 71 | # dotenv environment variables file 72 | .env 73 | .env.test 74 | 75 | # parcel-bundler cache (https://parceljs.org/) 76 | .cache 77 | 78 | # Next.js build output 79 | .next 80 | 81 | # Nuxt.js build / generate output 82 | .nuxt 83 | dist 84 | 85 | # Gatsby files 86 | .cache/ 87 | # Comment in the public line in if your project uses Gatsby and *not* Next.js 88 | # https://nextjs.org/blog/next-9-1#public-directory-support 89 | # public 90 | 91 | # vuepress build output 92 | .vuepress/dist 93 | 94 | # Serverless directories 95 | .serverless/ 96 | 97 | # FuseBox cache 98 | .fusebox/ 99 | 100 | # DynamoDB Local files 101 | .dynamodb/ 102 | 103 | # TernJS port file 104 | .tern-port 105 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | A Typescript Boilerplate for RAGE:MP with simple setup and usage. 3 |

4 | 5 |
6 | 7 | Remember to 🌟 this Github if you 💖 it. 8 | 9 | > For Javascript Edition, see: [ragemp-javascript](https://github.com/leonardssh/ragemp-javascript) 10 | 11 | ## 📌 Features 12 | 13 | - Full RAGE:MP Type Support for VSCode 14 | - Built in rollup config for transpile and auto-copy (incredibly fast using the [SWC](https://github.com/swc-project/swc)) 15 | - Prettier Configuration for code formatting. 16 | 17 | ## 📥 Installation 18 | 19 | ### Prerequisites 20 | 21 | - [Install NodeJS 16+](https://nodejs.org/en/download/current/) 22 | - [Install GIT](https://git-scm.com/downloads) 23 | 24 | ### Clone the Repository 25 | 26 | Use the command below in any terminal, command prompt, etc. 27 | 28 | ```sh 29 | git clone https://github.com/leonardssh/ragemp-typescript.git 30 | ``` 31 | 32 | ### Install the necessary modules 33 | 34 | Use the command below in any terminal, command prompt, etc. 35 | 36 | ```sh 37 | cd ragemp-typescript 38 | npm install 39 | ``` 40 | 41 | ### Rename the `.env.example` file to `.env` 42 | 43 | Without it, rollup will not be able to copy the files properly 44 | 45 | ### Compiler Configuration 46 | 47 | The boilerplate comes with 2 compilers: 48 | 49 | 1. [SWC](https://swc.rs/) - ⚡ultra fast (no support for const enums) 50 | 2. [Typescript](https://www.npmjs.com/package/rollup-plugin-typescript2) - 🐢 very slow (support for const enums) 51 | 52 | > To use SWC, set `COMPILER_USE_SWC` to true, and for `TYPESCRIPT` to false 53 | 54 | ```bash 55 | PRODUCTION_MODE=false 56 | COMPILER_USE_SWC=true // <--- CHANGE THE COMPILER BETWEEN SWC & TYPESCRIPT 57 | ``` 58 | 59 | ### Build the server 60 | 61 | Use the command below in any terminal, command prompt, etc. This will transpile and copy the files to the `dist` folder. Folder which is used for production. 62 | 63 | ```sh 64 | npm run build 65 | ``` 66 | 67 | ![](https://i.imgur.com/p6hbXmg.png) 68 | 69 | ### Get Server Files 70 | 71 | Grab the server files from `RAGEMP/server-files` and drop them in the `dist` folder. 72 | 73 | ### Start the Server 74 | 75 | ```sh 76 | cd ./dist 77 | ./ragemp-server.exe 78 | ``` 79 | 80 | ## 👨‍💻 Contributing 81 | 82 | To contribute to this repository, feel free to create a new fork of the repository and submit a pull request. 83 | 84 | 1. Fork / Clone and select the `main` branch. 85 | 2. Create a new branch in your fork. 86 | 3. Make your changes. 87 | 4. Commit your changes, and push them. 88 | 5. Submit a Pull Request [here](https://github.com/LeonardSSH/ragemp-typescript/pulls)! 89 | 90 | ## 📋 License 91 | 92 | This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. 93 | -------------------------------------------------------------------------------- /scripts/rollup.config.js: -------------------------------------------------------------------------------- 1 | import jetpack from 'fs-jetpack'; 2 | import path from 'path'; 3 | import { config } from 'dotenv'; 4 | import nodeResolvePlugin from '@rollup/plugin-node-resolve'; 5 | import { swc } from 'rollup-plugin-swc3'; 6 | import jsonPlugin from '@rollup/plugin-json'; 7 | import { blueBright, greenBright, redBright } from 'colorette'; 8 | import builtinModules from 'builtin-modules'; 9 | import commonjsPlugin from '@rollup/plugin-commonjs'; 10 | import tsPaths from 'rollup-plugin-tsconfig-paths'; 11 | import typescriptPlugin from 'rollup-plugin-typescript2'; 12 | import { terser } from 'rollup-plugin-terser'; 13 | 14 | config({ 15 | path: path.resolve('.env') 16 | }); 17 | 18 | const buildOutput = 'dist'; 19 | const isProduction = process.env.PRODUCTION_MODE === 'true'; 20 | const useSWC = process.env.COMPILER_USE_SWC === 'true'; 21 | const sourcePath = path.resolve('src'); 22 | const pkgJson = jetpack.read('package.json', 'json'); 23 | const localInstalledPackages = [...Object.keys(pkgJson.dependencies)]; 24 | 25 | /** 26 | * Resolve given path by fs-jetpack 27 | */ 28 | function resolvePath(pathParts) { 29 | return jetpack.path(...pathParts); 30 | } 31 | 32 | /** 33 | * Generate success console message 34 | */ 35 | function successMessage(message, type = 'Success') { 36 | console.log(`[${greenBright(type)}] ${message}`); 37 | } 38 | 39 | /** 40 | * Generate error console message 41 | */ 42 | function errorMessage(message, type = 'Error') { 43 | console.log(`[${redBright(type)}] ${message}`); 44 | } 45 | 46 | /** 47 | * Copy given source to destination 48 | */ 49 | function copy(source, destination, options = { overwrite: true }) { 50 | return jetpack.copy(source, destination, options); 51 | } 52 | 53 | /** 54 | * CleanUp the build output 55 | */ 56 | function cleanUp() { 57 | if (!jetpack.exists(buildOutput)) { 58 | return; 59 | } 60 | 61 | const preserved = [ 62 | 'node_modules/**/*', 63 | 'ragemp-server*', 64 | '.env', 65 | 'BugTrap-x64.dll', 66 | 'bin/**/*', 67 | 'dotnet/**/*', 68 | 'maps/**/*', 69 | 'plugins/**/*', 70 | 'client_packages/game_resources/dlcpacks/**/*', 71 | 'pnpm-lock.yaml', 72 | 'package-lock.json', 73 | 'yarn.lock' 74 | ]; 75 | 76 | const removeablePaths = jetpack.find('dist', { 77 | matching: preserved.map((path) => `!${path}`), 78 | directories: false 79 | }); 80 | 81 | removeablePaths.forEach((path) => { 82 | jetpack.remove(path); 83 | errorMessage(path, 'Removed'); 84 | }); 85 | } 86 | 87 | /** 88 | * Copy all static files they needed 89 | */ 90 | function copyFiles() { 91 | const prepareForCopy = []; 92 | 93 | prepareForCopy.push( 94 | { 95 | from: jetpack.path('package.json'), 96 | to: jetpack.path(buildOutput, 'package.json') 97 | }, 98 | { 99 | from: jetpack.path('.env'), 100 | to: jetpack.path(buildOutput, '.env') 101 | }, 102 | { 103 | from: jetpack.path('conf.json'), 104 | to: jetpack.path(buildOutput, 'conf.json') 105 | } 106 | ); 107 | 108 | prepareForCopy.forEach((item) => { 109 | copy(item.from, item.to); 110 | successMessage(blueBright(`${item.from} -> ${item.to}`), 'Copied'); 111 | }); 112 | } 113 | 114 | cleanUp(); 115 | copyFiles(); 116 | 117 | // use terser only if it is the typescript compiler in use 118 | const terserMinify = 119 | isProduction && !useSWC 120 | ? terser({ 121 | keep_classnames: true, 122 | keep_fnames: true, 123 | output: { 124 | comments: false 125 | } 126 | }) 127 | : []; 128 | 129 | const generateConfig = (options = {}) => { 130 | const { isServer } = options; 131 | 132 | const outputFile = isServer 133 | ? resolvePath([buildOutput, 'packages', 'core', 'index.js']) 134 | : resolvePath([buildOutput, 'client_packages', 'index.js']); 135 | 136 | const serverPlugins = []; 137 | const plugins = [terserMinify]; 138 | 139 | const external = [...builtinModules, ...localInstalledPackages]; 140 | const tsConfigPath = resolvePath([sourcePath, isServer ? 'server' : 'client', 'tsconfig.json']); 141 | 142 | return { 143 | input: resolvePath([sourcePath, isServer ? 'server' : 'client', 'index.ts']), 144 | output: { 145 | file: outputFile, 146 | format: 'cjs' 147 | }, 148 | plugins: [ 149 | tsPaths({ tsConfigPath }), 150 | nodeResolvePlugin(), 151 | jsonPlugin(), 152 | commonjsPlugin(), 153 | useSWC 154 | ? swc({ 155 | tsconfig: tsConfigPath, 156 | minify: isProduction, 157 | jsc: { 158 | target: 'es2020', 159 | parser: { 160 | syntax: 'typescript', 161 | dynamicImport: true, 162 | decorators: true 163 | }, 164 | transform: { 165 | legacyDecorator: true, 166 | decoratorMetadata: true 167 | }, 168 | externalHelpers: true, 169 | keepClassNames: true, 170 | loose: true 171 | } 172 | }) 173 | : typescriptPlugin({ 174 | check: false, 175 | tsconfig: tsConfigPath 176 | }), 177 | isServer ? [...serverPlugins] : null, 178 | ...plugins 179 | ], 180 | external: isServer ? [...external] : null, 181 | inlineDynamicImports: true 182 | }; 183 | }; 184 | 185 | export default [generateConfig({ isServer: true }), generateConfig({ isServer: false })]; 186 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.3 2 | 3 | specifiers: 4 | '@ragempcommunity/types-client': ^2.0.2 5 | '@ragempcommunity/types-server': ^2.0.2 6 | '@rollup/plugin-commonjs': ^21.0.1 7 | '@rollup/plugin-json': ^4.1.0 8 | '@rollup/plugin-node-resolve': ^13.0.6 9 | '@rollup/plugin-replace': ^4.0.0 10 | '@swc/core': ^1.2.118 11 | '@swc/helpers': ^0.3.2 12 | '@types/node': ^17.0.23 13 | builtin-modules: ^3.2.0 14 | colorette: ^2.0.16 15 | dotenv: ^16.0.0 16 | fs-jetpack: ^4.2.0 17 | prettier: ^2.5.0 18 | rollup: ^2.60.1 19 | rollup-plugin-swc3: ^0.1.4 20 | rollup-plugin-terser: ^7.0.2 21 | rollup-plugin-tsconfig-paths: ^1.0.15 22 | rollup-plugin-typescript2: ^0.31.1 23 | typescript: ^4.5.2 24 | 25 | dependencies: 26 | colorette: 2.0.16 27 | dotenv: 16.0.0 28 | 29 | devDependencies: 30 | '@ragempcommunity/types-client': 2.0.2 31 | '@ragempcommunity/types-server': 2.0.2 32 | '@rollup/plugin-commonjs': 21.0.3_rollup@2.70.1 33 | '@rollup/plugin-json': 4.1.0_rollup@2.70.1 34 | '@rollup/plugin-node-resolve': 13.1.3_rollup@2.70.1 35 | '@rollup/plugin-replace': 4.0.0_rollup@2.70.1 36 | '@swc/core': 1.2.162 37 | '@swc/helpers': 0.3.8 38 | '@types/node': 17.0.23 39 | builtin-modules: 3.2.0 40 | fs-jetpack: 4.3.1 41 | prettier: 2.6.1 42 | rollup: 2.70.1 43 | rollup-plugin-swc3: 0.1.4_@swc+core@1.2.162+rollup@2.70.1 44 | rollup-plugin-terser: 7.0.2_rollup@2.70.1 45 | rollup-plugin-tsconfig-paths: 1.1.6_rollup@2.70.1+typescript@4.6.3 46 | rollup-plugin-typescript2: 0.31.2_6ec1f5fc5b13027c350d7531c17255fe 47 | typescript: 4.6.3 48 | 49 | packages: 50 | 51 | /@babel/code-frame/7.16.7: 52 | resolution: {integrity: sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==} 53 | engines: {node: '>=6.9.0'} 54 | dependencies: 55 | '@babel/highlight': 7.16.10 56 | dev: true 57 | 58 | /@babel/helper-validator-identifier/7.16.7: 59 | resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==} 60 | engines: {node: '>=6.9.0'} 61 | dev: true 62 | 63 | /@babel/highlight/7.16.10: 64 | resolution: {integrity: sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==} 65 | engines: {node: '>=6.9.0'} 66 | dependencies: 67 | '@babel/helper-validator-identifier': 7.16.7 68 | chalk: 2.4.2 69 | js-tokens: 4.0.0 70 | dev: true 71 | 72 | /@ragempcommunity/types-client/2.0.2: 73 | resolution: {integrity: sha512-0Ca5F3So10V3hD6dJtv08vYda2IletKpvOFXFfvYQvcK9aFghkHjtU4bnpHqAUFIvEms9CxgTSZFGJq8DTJTBg==} 74 | dev: true 75 | 76 | /@ragempcommunity/types-server/2.0.2: 77 | resolution: {integrity: sha512-nlicSskEN9htdpuybcLyCoOeWmk2JcDg80a3xZm3mE2iuMBYqRbYvi6+Zsnk7KocRjUkOLdXtidlX9RfyUWFOg==} 78 | dev: true 79 | 80 | /@rollup/plugin-commonjs/21.0.3_rollup@2.70.1: 81 | resolution: {integrity: sha512-ThGfwyvcLc6cfP/MWxA5ACF+LZCvsuhUq7V5134Az1oQWsiC7lNpLT4mJI86WQunK7BYmpUiHmMk2Op6OAHs0g==} 82 | engines: {node: '>= 8.0.0'} 83 | peerDependencies: 84 | rollup: ^2.38.3 85 | dependencies: 86 | '@rollup/pluginutils': 3.1.0_rollup@2.70.1 87 | commondir: 1.0.1 88 | estree-walker: 2.0.2 89 | glob: 7.2.0 90 | is-reference: 1.2.1 91 | magic-string: 0.25.9 92 | resolve: 1.22.0 93 | rollup: 2.70.1 94 | dev: true 95 | 96 | /@rollup/plugin-json/4.1.0_rollup@2.70.1: 97 | resolution: {integrity: sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==} 98 | peerDependencies: 99 | rollup: ^1.20.0 || ^2.0.0 100 | dependencies: 101 | '@rollup/pluginutils': 3.1.0_rollup@2.70.1 102 | rollup: 2.70.1 103 | dev: true 104 | 105 | /@rollup/plugin-node-resolve/13.1.3_rollup@2.70.1: 106 | resolution: {integrity: sha512-BdxNk+LtmElRo5d06MGY4zoepyrXX1tkzX2hrnPEZ53k78GuOMWLqmJDGIIOPwVRIFZrLQOo+Yr6KtCuLIA0AQ==} 107 | engines: {node: '>= 10.0.0'} 108 | peerDependencies: 109 | rollup: ^2.42.0 110 | dependencies: 111 | '@rollup/pluginutils': 3.1.0_rollup@2.70.1 112 | '@types/resolve': 1.17.1 113 | builtin-modules: 3.2.0 114 | deepmerge: 4.2.2 115 | is-module: 1.0.0 116 | resolve: 1.22.0 117 | rollup: 2.70.1 118 | dev: true 119 | 120 | /@rollup/plugin-replace/4.0.0_rollup@2.70.1: 121 | resolution: {integrity: sha512-+rumQFiaNac9y64OHtkHGmdjm7us9bo1PlbgQfdihQtuNxzjpaB064HbRnewUOggLQxVCCyINfStkgmBeQpv1g==} 122 | peerDependencies: 123 | rollup: ^1.20.0 || ^2.0.0 124 | dependencies: 125 | '@rollup/pluginutils': 3.1.0_rollup@2.70.1 126 | magic-string: 0.25.9 127 | rollup: 2.70.1 128 | dev: true 129 | 130 | /@rollup/pluginutils/3.1.0_rollup@2.70.1: 131 | resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} 132 | engines: {node: '>= 8.0.0'} 133 | peerDependencies: 134 | rollup: ^1.20.0||^2.0.0 135 | dependencies: 136 | '@types/estree': 0.0.39 137 | estree-walker: 1.0.1 138 | picomatch: 2.3.1 139 | rollup: 2.70.1 140 | dev: true 141 | 142 | /@rollup/pluginutils/4.2.0: 143 | resolution: {integrity: sha512-2WUyJNRkyH5p487pGnn4tWAsxhEFKN/pT8CMgHshd5H+IXkOnKvKZwsz5ZWz+YCXkleZRAU5kwbfgF8CPfDRqA==} 144 | engines: {node: '>= 8.0.0'} 145 | dependencies: 146 | estree-walker: 2.0.2 147 | picomatch: 2.3.1 148 | dev: true 149 | 150 | /@swc/core-android-arm-eabi/1.2.162: 151 | resolution: {integrity: sha512-mQSuLspB1qBAYXyDP0Da60tPumhwD0CIm7tMjAFiOplEJN+9YKBlZ3EV9Xc1wF5bdWzJpmzmqEdN9FEfOQqlwQ==} 152 | engines: {node: '>=10'} 153 | cpu: [arm] 154 | os: [android] 155 | requiresBuild: true 156 | dev: true 157 | optional: true 158 | 159 | /@swc/core-android-arm64/1.2.162: 160 | resolution: {integrity: sha512-9TuuTrsrxbw1W1xUfcmRuEIKImJC725S/4McSFpoylYRIoHzD1DPpgP4fquU0/fzq7rldVD1tu4tg3xvEL8auw==} 161 | engines: {node: '>=10'} 162 | cpu: [arm64] 163 | os: [android] 164 | requiresBuild: true 165 | dev: true 166 | optional: true 167 | 168 | /@swc/core-darwin-arm64/1.2.162: 169 | resolution: {integrity: sha512-gWJjD7NqKVxGFSJ4BeTXfBpRRRkxaQcWmmkwoXDQ1tmLRUX6K3V8MXp41mTdg7jJWDyKq4VTN6D8zLQcCUEhmQ==} 170 | engines: {node: '>=10'} 171 | cpu: [arm64] 172 | os: [darwin] 173 | requiresBuild: true 174 | dev: true 175 | optional: true 176 | 177 | /@swc/core-darwin-x64/1.2.162: 178 | resolution: {integrity: sha512-+3foKCmxiMuPp1UCIPUg3N8CuzFRDPoPEQagz3TKT8W7Bkv9SXeIL8LPuwfH970rIcx1Ie/Q2UWXJwbckVmMHQ==} 179 | engines: {node: '>=10'} 180 | cpu: [x64] 181 | os: [darwin] 182 | requiresBuild: true 183 | dev: true 184 | optional: true 185 | 186 | /@swc/core-freebsd-x64/1.2.162: 187 | resolution: {integrity: sha512-YdfQgALPwJ6ZCvfqLlytCvZG/r/ZgBlOa0gaZvMGl6WMpnWgoVPA5OYBA5qzstg/OEWjMu6fldi+lElsvq8v2Q==} 188 | engines: {node: '>=10'} 189 | cpu: [x64] 190 | os: [freebsd] 191 | requiresBuild: true 192 | dev: true 193 | optional: true 194 | 195 | /@swc/core-linux-arm-gnueabihf/1.2.162: 196 | resolution: {integrity: sha512-4elULEP2JWvSpEEI7JmhoI25cRQ2/ffBtf3+4vLlcAgJCdCrkYvHJO2fbWlN1fpydj34QabMsOROYS4ff4p0Og==} 197 | engines: {node: '>=10'} 198 | cpu: [arm] 199 | os: [linux] 200 | requiresBuild: true 201 | dev: true 202 | optional: true 203 | 204 | /@swc/core-linux-arm64-gnu/1.2.162: 205 | resolution: {integrity: sha512-ZgR1J8H4qI7EuADgHEeDBtiiF8yt6vrznVtaBvEInDPdV9W10QNKsTqhuFkTfOqaHAO2u1+MkZRuvALGahdDaQ==} 206 | engines: {node: '>=10'} 207 | cpu: [arm64] 208 | os: [linux] 209 | requiresBuild: true 210 | dev: true 211 | optional: true 212 | 213 | /@swc/core-linux-arm64-musl/1.2.162: 214 | resolution: {integrity: sha512-1Egev+v8wlr7zPaS715sG7flzbGE0OLtcCR7p7oUqD/NbKwlA6czMch5JwNWvdRMjLThTYEeJ/ID+/xG8BqXUg==} 215 | engines: {node: '>=10'} 216 | cpu: [arm64] 217 | os: [linux] 218 | requiresBuild: true 219 | dev: true 220 | optional: true 221 | 222 | /@swc/core-linux-x64-gnu/1.2.162: 223 | resolution: {integrity: sha512-LFWV+8h6S3KmzVgHXRYpGYsaytGt+Vrbm8554ugUdzk465JnHyKzw3e6VRcJTxAGgXa+o1qUEkeBg7Wc/WWkmQ==} 224 | engines: {node: '>=10'} 225 | cpu: [x64] 226 | os: [linux] 227 | requiresBuild: true 228 | dev: true 229 | optional: true 230 | 231 | /@swc/core-linux-x64-musl/1.2.162: 232 | resolution: {integrity: sha512-q5insucuYBVCjpDp8/EG3dbt2PFwGAo2vFzofr/lOlOo9p90jCzFRL0+eXg4Ar1YG6BL+T9o5LhFRggY+YHIBg==} 233 | engines: {node: '>=10'} 234 | cpu: [x64] 235 | os: [linux] 236 | requiresBuild: true 237 | dev: true 238 | optional: true 239 | 240 | /@swc/core-win32-arm64-msvc/1.2.162: 241 | resolution: {integrity: sha512-xzksaPOqB3a8gxLoE0ZMi5w2NX9zzYDylmM3qbCVqft6IZid2XFG2lPFIwxJV1xfW68xMgAe0IECnjp/nQsS8g==} 242 | engines: {node: '>=10'} 243 | cpu: [arm64] 244 | os: [win32] 245 | requiresBuild: true 246 | dev: true 247 | optional: true 248 | 249 | /@swc/core-win32-ia32-msvc/1.2.162: 250 | resolution: {integrity: sha512-hUvS7UaSW+h16SSH7GwH571L2GnqWHPsiSKIDUvv1b/lca7dLcCY8RzsKafB/GLU+5EBQIN3nab3nH0vOWRkvw==} 251 | engines: {node: '>=10'} 252 | cpu: [ia32] 253 | os: [win32] 254 | requiresBuild: true 255 | dev: true 256 | optional: true 257 | 258 | /@swc/core-win32-x64-msvc/1.2.162: 259 | resolution: {integrity: sha512-Eb0SehVYWO5TpYeaPAD3T3iIPpgJa1q/rmvgMDvL0hi4UnOJlvj43kC4Dhuor6opLd6fJkCS7gBq9SxtGtb8bQ==} 260 | engines: {node: '>=10'} 261 | cpu: [x64] 262 | os: [win32] 263 | requiresBuild: true 264 | dev: true 265 | optional: true 266 | 267 | /@swc/core/1.2.162: 268 | resolution: {integrity: sha512-MFBmoV2qgGvi5bPX1tH3NLtWV4exa5jTCkC/30mdP5PTwEsxKJ5u+m1fuYOlgzDiBlytx8AihVZy2TmXhWZByw==} 269 | engines: {node: '>=10'} 270 | hasBin: true 271 | optionalDependencies: 272 | '@swc/core-android-arm-eabi': 1.2.162 273 | '@swc/core-android-arm64': 1.2.162 274 | '@swc/core-darwin-arm64': 1.2.162 275 | '@swc/core-darwin-x64': 1.2.162 276 | '@swc/core-freebsd-x64': 1.2.162 277 | '@swc/core-linux-arm-gnueabihf': 1.2.162 278 | '@swc/core-linux-arm64-gnu': 1.2.162 279 | '@swc/core-linux-arm64-musl': 1.2.162 280 | '@swc/core-linux-x64-gnu': 1.2.162 281 | '@swc/core-linux-x64-musl': 1.2.162 282 | '@swc/core-win32-arm64-msvc': 1.2.162 283 | '@swc/core-win32-ia32-msvc': 1.2.162 284 | '@swc/core-win32-x64-msvc': 1.2.162 285 | dev: true 286 | 287 | /@swc/helpers/0.3.8: 288 | resolution: {integrity: sha512-aWItSZvJj4+GI6FWkjZR13xPNPctq2RRakzo+O6vN7bC2yjwdg5EFpgaSAUn95b7BGSgcflvzVDPoKmJv24IOg==} 289 | dev: true 290 | 291 | /@types/estree/0.0.39: 292 | resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} 293 | dev: true 294 | 295 | /@types/estree/0.0.51: 296 | resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} 297 | dev: true 298 | 299 | /@types/node/17.0.23: 300 | resolution: {integrity: sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==} 301 | dev: true 302 | 303 | /@types/resolve/1.17.1: 304 | resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} 305 | dependencies: 306 | '@types/node': 17.0.23 307 | dev: true 308 | 309 | /@yarn-tool/resolve-package/1.0.46_@types+node@17.0.23: 310 | resolution: {integrity: sha512-RJcBGTVywUqYGRtGkPSgJC/ozf0wK/xjUy66tXkbpL35U0o1oef4S0v23euxA/CiukqBWr2fRGtGY6FidESdTg==} 311 | dependencies: 312 | pkg-dir: 5.0.0 313 | tslib: 2.3.1 314 | upath2: 3.1.12_@types+node@17.0.23 315 | transitivePeerDependencies: 316 | - '@types/node' 317 | dev: true 318 | 319 | /acorn/8.7.0: 320 | resolution: {integrity: sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==} 321 | engines: {node: '>=0.4.0'} 322 | hasBin: true 323 | dev: true 324 | 325 | /ansi-styles/3.2.1: 326 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 327 | engines: {node: '>=4'} 328 | dependencies: 329 | color-convert: 1.9.3 330 | dev: true 331 | 332 | /balanced-match/1.0.2: 333 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 334 | dev: true 335 | 336 | /brace-expansion/1.1.11: 337 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 338 | dependencies: 339 | balanced-match: 1.0.2 340 | concat-map: 0.0.1 341 | dev: true 342 | 343 | /buffer-from/1.1.2: 344 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 345 | dev: true 346 | 347 | /builtin-modules/3.2.0: 348 | resolution: {integrity: sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==} 349 | engines: {node: '>=6'} 350 | dev: true 351 | 352 | /chalk/2.4.2: 353 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 354 | engines: {node: '>=4'} 355 | dependencies: 356 | ansi-styles: 3.2.1 357 | escape-string-regexp: 1.0.5 358 | supports-color: 5.5.0 359 | dev: true 360 | 361 | /color-convert/1.9.3: 362 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 363 | dependencies: 364 | color-name: 1.1.3 365 | dev: true 366 | 367 | /color-name/1.1.3: 368 | resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} 369 | dev: true 370 | 371 | /colorette/2.0.16: 372 | resolution: {integrity: sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==} 373 | dev: false 374 | 375 | /commander/2.20.3: 376 | resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} 377 | dev: true 378 | 379 | /commondir/1.0.1: 380 | resolution: {integrity: sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=} 381 | dev: true 382 | 383 | /concat-map/0.0.1: 384 | resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} 385 | dev: true 386 | 387 | /deepmerge/4.2.2: 388 | resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} 389 | engines: {node: '>=0.10.0'} 390 | dev: true 391 | 392 | /dotenv/16.0.0: 393 | resolution: {integrity: sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q==} 394 | engines: {node: '>=12'} 395 | dev: false 396 | 397 | /escape-string-regexp/1.0.5: 398 | resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} 399 | engines: {node: '>=0.8.0'} 400 | dev: true 401 | 402 | /estree-walker/1.0.1: 403 | resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} 404 | dev: true 405 | 406 | /estree-walker/2.0.2: 407 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 408 | dev: true 409 | 410 | /find-cache-dir/3.3.2: 411 | resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} 412 | engines: {node: '>=8'} 413 | dependencies: 414 | commondir: 1.0.1 415 | make-dir: 3.1.0 416 | pkg-dir: 4.2.0 417 | dev: true 418 | 419 | /find-up/4.1.0: 420 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} 421 | engines: {node: '>=8'} 422 | dependencies: 423 | locate-path: 5.0.0 424 | path-exists: 4.0.0 425 | dev: true 426 | 427 | /find-up/5.0.0: 428 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 429 | engines: {node: '>=10'} 430 | dependencies: 431 | locate-path: 6.0.0 432 | path-exists: 4.0.0 433 | dev: true 434 | 435 | /fs-extra/10.0.1: 436 | resolution: {integrity: sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==} 437 | engines: {node: '>=12'} 438 | dependencies: 439 | graceful-fs: 4.2.9 440 | jsonfile: 6.1.0 441 | universalify: 2.0.0 442 | dev: true 443 | 444 | /fs-jetpack/4.3.1: 445 | resolution: {integrity: sha512-dbeOK84F6BiQzk2yqqCVwCPWTxAvVGJ3fMQc6E2wuEohS28mR6yHngbrKuVCK1KHRx/ccByDylqu4H5PCP2urQ==} 446 | dependencies: 447 | minimatch: 3.1.2 448 | rimraf: 2.7.1 449 | dev: true 450 | 451 | /fs.realpath/1.0.0: 452 | resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} 453 | dev: true 454 | 455 | /fsevents/2.3.2: 456 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 457 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 458 | os: [darwin] 459 | requiresBuild: true 460 | dev: true 461 | optional: true 462 | 463 | /function-bind/1.1.1: 464 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 465 | dev: true 466 | 467 | /glob/7.2.0: 468 | resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} 469 | dependencies: 470 | fs.realpath: 1.0.0 471 | inflight: 1.0.6 472 | inherits: 2.0.4 473 | minimatch: 3.1.2 474 | once: 1.4.0 475 | path-is-absolute: 1.0.1 476 | dev: true 477 | 478 | /graceful-fs/4.2.9: 479 | resolution: {integrity: sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==} 480 | dev: true 481 | 482 | /has-flag/3.0.0: 483 | resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} 484 | engines: {node: '>=4'} 485 | dev: true 486 | 487 | /has-flag/4.0.0: 488 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 489 | engines: {node: '>=8'} 490 | dev: true 491 | 492 | /has/1.0.3: 493 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 494 | engines: {node: '>= 0.4.0'} 495 | dependencies: 496 | function-bind: 1.1.1 497 | dev: true 498 | 499 | /inflight/1.0.6: 500 | resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} 501 | dependencies: 502 | once: 1.4.0 503 | wrappy: 1.0.2 504 | dev: true 505 | 506 | /inherits/2.0.4: 507 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 508 | dev: true 509 | 510 | /is-core-module/2.8.1: 511 | resolution: {integrity: sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==} 512 | dependencies: 513 | has: 1.0.3 514 | dev: true 515 | 516 | /is-module/1.0.0: 517 | resolution: {integrity: sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=} 518 | dev: true 519 | 520 | /is-reference/1.2.1: 521 | resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} 522 | dependencies: 523 | '@types/estree': 0.0.51 524 | dev: true 525 | 526 | /jest-worker/26.6.2: 527 | resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} 528 | engines: {node: '>= 10.13.0'} 529 | dependencies: 530 | '@types/node': 17.0.23 531 | merge-stream: 2.0.0 532 | supports-color: 7.2.0 533 | dev: true 534 | 535 | /joycon/3.1.1: 536 | resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} 537 | engines: {node: '>=10'} 538 | dev: true 539 | 540 | /js-tokens/4.0.0: 541 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 542 | dev: true 543 | 544 | /jsonc-parser/3.0.0: 545 | resolution: {integrity: sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==} 546 | dev: true 547 | 548 | /jsonfile/6.1.0: 549 | resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} 550 | dependencies: 551 | universalify: 2.0.0 552 | optionalDependencies: 553 | graceful-fs: 4.2.9 554 | dev: true 555 | 556 | /locate-path/5.0.0: 557 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} 558 | engines: {node: '>=8'} 559 | dependencies: 560 | p-locate: 4.1.0 561 | dev: true 562 | 563 | /locate-path/6.0.0: 564 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 565 | engines: {node: '>=10'} 566 | dependencies: 567 | p-locate: 5.0.0 568 | dev: true 569 | 570 | /magic-string/0.25.9: 571 | resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} 572 | dependencies: 573 | sourcemap-codec: 1.4.8 574 | dev: true 575 | 576 | /make-dir/3.1.0: 577 | resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} 578 | engines: {node: '>=8'} 579 | dependencies: 580 | semver: 6.3.0 581 | dev: true 582 | 583 | /merge-stream/2.0.0: 584 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 585 | dev: true 586 | 587 | /minimatch/3.1.2: 588 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 589 | dependencies: 590 | brace-expansion: 1.1.11 591 | dev: true 592 | 593 | /once/1.4.0: 594 | resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} 595 | dependencies: 596 | wrappy: 1.0.2 597 | dev: true 598 | 599 | /p-limit/2.3.0: 600 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 601 | engines: {node: '>=6'} 602 | dependencies: 603 | p-try: 2.2.0 604 | dev: true 605 | 606 | /p-limit/3.1.0: 607 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 608 | engines: {node: '>=10'} 609 | dependencies: 610 | yocto-queue: 0.1.0 611 | dev: true 612 | 613 | /p-locate/4.1.0: 614 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} 615 | engines: {node: '>=8'} 616 | dependencies: 617 | p-limit: 2.3.0 618 | dev: true 619 | 620 | /p-locate/5.0.0: 621 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 622 | engines: {node: '>=10'} 623 | dependencies: 624 | p-limit: 3.1.0 625 | dev: true 626 | 627 | /p-try/2.2.0: 628 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 629 | engines: {node: '>=6'} 630 | dev: true 631 | 632 | /path-exists/4.0.0: 633 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 634 | engines: {node: '>=8'} 635 | dev: true 636 | 637 | /path-is-absolute/1.0.1: 638 | resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=} 639 | engines: {node: '>=0.10.0'} 640 | dev: true 641 | 642 | /path-is-network-drive/1.0.13: 643 | resolution: {integrity: sha512-Hg74mRN6mmXV+gTm3INjFK40ncAmC/Lo4qoQaSZ+GT3hZzlKdWQSqAjqyPeW0SvObP2W073WyYEBWY9d3wOm3A==} 644 | dependencies: 645 | tslib: 2.3.1 646 | dev: true 647 | 648 | /path-parse/1.0.7: 649 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 650 | dev: true 651 | 652 | /path-strip-sep/1.0.10: 653 | resolution: {integrity: sha512-JpCy+8LAJQQTO1bQsb/84s1g+/Stm3h39aOpPRBQ/paMUGVPPZChLTOTKHoaCkc/6sKuF7yVsnq5Pe1S6xQGcA==} 654 | dependencies: 655 | tslib: 2.3.1 656 | dev: true 657 | 658 | /picomatch/2.3.1: 659 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 660 | engines: {node: '>=8.6'} 661 | dev: true 662 | 663 | /pkg-dir/4.2.0: 664 | resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} 665 | engines: {node: '>=8'} 666 | dependencies: 667 | find-up: 4.1.0 668 | dev: true 669 | 670 | /pkg-dir/5.0.0: 671 | resolution: {integrity: sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==} 672 | engines: {node: '>=10'} 673 | dependencies: 674 | find-up: 5.0.0 675 | dev: true 676 | 677 | /prettier/2.6.1: 678 | resolution: {integrity: sha512-8UVbTBYGwN37Bs9LERmxCPjdvPxlEowx2urIL6urHzdb3SDq4B/Z6xLFCblrSnE4iKWcS6ziJ3aOYrc1kz/E2A==} 679 | engines: {node: '>=10.13.0'} 680 | hasBin: true 681 | dev: true 682 | 683 | /randombytes/2.1.0: 684 | resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} 685 | dependencies: 686 | safe-buffer: 5.2.1 687 | dev: true 688 | 689 | /resolve/1.22.0: 690 | resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==} 691 | hasBin: true 692 | dependencies: 693 | is-core-module: 2.8.1 694 | path-parse: 1.0.7 695 | supports-preserve-symlinks-flag: 1.0.0 696 | dev: true 697 | 698 | /rimraf/2.7.1: 699 | resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} 700 | hasBin: true 701 | dependencies: 702 | glob: 7.2.0 703 | dev: true 704 | 705 | /rollup-plugin-swc3/0.1.4_@swc+core@1.2.162+rollup@2.70.1: 706 | resolution: {integrity: sha512-zvGzDScF2CQC+riaAsoOpkvszWzg29SyqkcZ/88Cg+9gVznzHLe+zaVwecieGm7qEucJB7Lol4oCEBy40tih7A==} 707 | engines: {node: '>=12'} 708 | peerDependencies: 709 | '@swc/core': '>=1.2.111' 710 | rollup: ^2.0.0 711 | dependencies: 712 | '@rollup/pluginutils': 4.2.0 713 | '@swc/core': 1.2.162 714 | deepmerge: 4.2.2 715 | joycon: 3.1.1 716 | jsonc-parser: 3.0.0 717 | rollup: 2.70.1 718 | dev: true 719 | 720 | /rollup-plugin-terser/7.0.2_rollup@2.70.1: 721 | resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==} 722 | peerDependencies: 723 | rollup: ^2.0.0 724 | dependencies: 725 | '@babel/code-frame': 7.16.7 726 | jest-worker: 26.6.2 727 | rollup: 2.70.1 728 | serialize-javascript: 4.0.0 729 | terser: 5.12.1 730 | dev: true 731 | 732 | /rollup-plugin-tsconfig-paths/1.1.6_rollup@2.70.1+typescript@4.6.3: 733 | resolution: {integrity: sha512-g+SOMt2jfjgUekeCqLDuw9HQhxogzp9pU8Hccb8bR7o+ebNLKkuIeGHnbdva2XN4a7JnMKpKqKwtlZzPTM5rDQ==} 734 | peerDependencies: 735 | rollup: ^2 736 | dependencies: 737 | rollup: 2.70.1 738 | typescript-paths: 1.3.1_typescript@4.6.3 739 | transitivePeerDependencies: 740 | - typescript 741 | dev: true 742 | 743 | /rollup-plugin-typescript2/0.31.2_6ec1f5fc5b13027c350d7531c17255fe: 744 | resolution: {integrity: sha512-hRwEYR1C8xDGVVMFJQdEVnNAeWRvpaY97g5mp3IeLnzhNXzSVq78Ye/BJ9PAaUfN4DXa/uDnqerifMOaMFY54Q==} 745 | peerDependencies: 746 | rollup: '>=1.26.3' 747 | typescript: '>=2.4.0' 748 | dependencies: 749 | '@rollup/pluginutils': 4.2.0 750 | '@yarn-tool/resolve-package': 1.0.46_@types+node@17.0.23 751 | find-cache-dir: 3.3.2 752 | fs-extra: 10.0.1 753 | resolve: 1.22.0 754 | rollup: 2.70.1 755 | tslib: 2.3.1 756 | typescript: 4.6.3 757 | transitivePeerDependencies: 758 | - '@types/node' 759 | dev: true 760 | 761 | /rollup/2.70.1: 762 | resolution: {integrity: sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==} 763 | engines: {node: '>=10.0.0'} 764 | hasBin: true 765 | optionalDependencies: 766 | fsevents: 2.3.2 767 | dev: true 768 | 769 | /safe-buffer/5.2.1: 770 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 771 | dev: true 772 | 773 | /semver/6.3.0: 774 | resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} 775 | hasBin: true 776 | dev: true 777 | 778 | /serialize-javascript/4.0.0: 779 | resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} 780 | dependencies: 781 | randombytes: 2.1.0 782 | dev: true 783 | 784 | /source-map-support/0.5.21: 785 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 786 | dependencies: 787 | buffer-from: 1.1.2 788 | source-map: 0.6.1 789 | dev: true 790 | 791 | /source-map/0.6.1: 792 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 793 | engines: {node: '>=0.10.0'} 794 | dev: true 795 | 796 | /source-map/0.7.3: 797 | resolution: {integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==} 798 | engines: {node: '>= 8'} 799 | dev: true 800 | 801 | /sourcemap-codec/1.4.8: 802 | resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} 803 | dev: true 804 | 805 | /supports-color/5.5.0: 806 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 807 | engines: {node: '>=4'} 808 | dependencies: 809 | has-flag: 3.0.0 810 | dev: true 811 | 812 | /supports-color/7.2.0: 813 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 814 | engines: {node: '>=8'} 815 | dependencies: 816 | has-flag: 4.0.0 817 | dev: true 818 | 819 | /supports-preserve-symlinks-flag/1.0.0: 820 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 821 | engines: {node: '>= 0.4'} 822 | dev: true 823 | 824 | /terser/5.12.1: 825 | resolution: {integrity: sha512-NXbs+7nisos5E+yXwAD+y7zrcTkMqb0dEJxIGtSKPdCBzopf7ni4odPul2aechpV7EXNvOudYOX2bb5tln1jbQ==} 826 | engines: {node: '>=10'} 827 | hasBin: true 828 | dependencies: 829 | acorn: 8.7.0 830 | commander: 2.20.3 831 | source-map: 0.7.3 832 | source-map-support: 0.5.21 833 | dev: true 834 | 835 | /tslib/2.3.1: 836 | resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==} 837 | dev: true 838 | 839 | /typescript-paths/1.3.1_typescript@4.6.3: 840 | resolution: {integrity: sha512-K/idYNIohZAaQTd5hIlVNJnRc2g65mgAno4kfz5VXHTFHh34Ai6Q4Jf2u8B+QkRSJWzNSprOGXnmb6yaYKzOyg==} 841 | peerDependencies: 842 | typescript: ^4.1.2 843 | dependencies: 844 | typescript: 4.6.3 845 | dev: true 846 | 847 | /typescript/4.6.3: 848 | resolution: {integrity: sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==} 849 | engines: {node: '>=4.2.0'} 850 | hasBin: true 851 | dev: true 852 | 853 | /universalify/2.0.0: 854 | resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} 855 | engines: {node: '>= 10.0.0'} 856 | dev: true 857 | 858 | /upath2/3.1.12_@types+node@17.0.23: 859 | resolution: {integrity: sha512-yC3eZeCyCXFWjy7Nu4pgjLhXNYjuzuUmJiRgSSw6TJp8Emc+E4951HGPJf+bldFC5SL7oBLeNbtm1fGzXn2gxw==} 860 | peerDependencies: 861 | '@types/node': '*' 862 | dependencies: 863 | '@types/node': 17.0.23 864 | path-is-network-drive: 1.0.13 865 | path-strip-sep: 1.0.10 866 | tslib: 2.3.1 867 | dev: true 868 | 869 | /wrappy/1.0.2: 870 | resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} 871 | dev: true 872 | 873 | /yocto-queue/0.1.0: 874 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 875 | engines: {node: '>=10'} 876 | dev: true 877 | --------------------------------------------------------------------------------