├── server ├── src │ ├── constants.ts │ ├── employees.db │ ├── logic.ts │ ├── utils.ts │ ├── logger.ts │ ├── db.ts │ ├── router.ts │ └── controller.ts ├── .env ├── public │ └── database │ │ ├── employees.db │ │ └── chinook.sqlite ├── bin │ ├── start-server.sh │ └── stop-server.sh ├── .gitignore ├── tsconfig.json ├── app.ts ├── config │ └── pm2.json ├── server-test.http ├── README.md ├── package.json ├── index.ts ├── Dockerfile └── pnpm-lock.yaml ├── .gitignore ├── client ├── .gitignore ├── src │ ├── constants │ │ └── config.ts │ ├── assets │ │ ├── logo.png │ │ └── index.css │ ├── utils │ │ ├── index.ts │ │ ├── request.ts │ │ ├── helper.ts │ │ └── services.ts │ ├── plugins │ │ ├── pinia.ts │ │ ├── splitpanes.ts │ │ ├── i18n.ts │ │ ├── naive-ui.ts │ │ └── pinia-persist.ts │ ├── env.d.ts │ ├── main.ts │ ├── types │ │ └── index.ts │ ├── views │ │ ├── ReplEditor.vue │ │ ├── TableViewActions.vue │ │ ├── aside-panel │ │ │ ├── SavedQueries.vue │ │ │ ├── index.vue │ │ │ └── Connections.vue │ │ ├── EmptyHolder.vue │ │ ├── Header.vue │ │ ├── ReplEditorActions.vue │ │ ├── QuerySelector.vue │ │ └── TableView.vue │ ├── locales │ │ ├── zh.yml │ │ └── en.yml │ ├── composables │ │ ├── useDark.ts │ │ └── useShortcut.ts │ ├── store │ │ ├── sequelize.ts │ │ ├── aside.ts │ │ ├── tabs.ts │ │ └── repl.ts │ ├── App.vue │ └── components │ │ └── Codemirror.vue ├── .vscode │ ├── extensions.json │ └── settings.json ├── public │ └── favicon.ico ├── index.html ├── tsconfig.json ├── README.md ├── vite.config.ts ├── windi.config.ts └── package.json ├── preview.png ├── .vscode └── settings.json ├── package.json ├── LICENSE ├── README.md └── pnpm-lock.yaml /server/src/constants.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/.env: -------------------------------------------------------------------------------- 1 | API_VERSION=v1 2 | NODE_ENV="development" -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /client/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /client/src/constants/config.ts: -------------------------------------------------------------------------------- 1 | export const LOCAL_HOST = 'http://localhost:3232' -------------------------------------------------------------------------------- /preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoluoboding/sql-repl/HEAD/preview.png -------------------------------------------------------------------------------- /client/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["johnsoncodehk.volar"] 3 | } 4 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "i18n-ally.localesPaths": [ 3 | "client/src/locales" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /client/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoluoboding/sql-repl/HEAD/client/public/favicon.ico -------------------------------------------------------------------------------- /server/src/employees.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoluoboding/sql-repl/HEAD/server/src/employees.db -------------------------------------------------------------------------------- /client/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoluoboding/sql-repl/HEAD/client/src/assets/logo.png -------------------------------------------------------------------------------- /client/src/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './request' 2 | export * from './services' 3 | export * from './helper' 4 | -------------------------------------------------------------------------------- /server/public/database/employees.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoluoboding/sql-repl/HEAD/server/public/database/employees.db -------------------------------------------------------------------------------- /server/public/database/chinook.sqlite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoluoboding/sql-repl/HEAD/server/public/database/chinook.sqlite -------------------------------------------------------------------------------- /client/src/plugins/pinia.ts: -------------------------------------------------------------------------------- 1 | import { createPinia } from 'pinia' 2 | import persist from './pinia-persist' 3 | 4 | const pinia = createPinia() 5 | pinia.use(persist) 6 | 7 | export default pinia 8 | -------------------------------------------------------------------------------- /server/bin/start-server.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | user=$(whoami) 4 | if [ $user == "root" ] 5 | then 6 | su admin -c 'pm2 stop /app/config/pm2.json' 7 | else 8 | pm2 start /app/config/pm2.json 9 | fi -------------------------------------------------------------------------------- /server/bin/stop-server.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | user=$(whoami) 4 | if [ $user == "root" ] 5 | then 6 | su admin -c 'pm2 stop /app/config/pm2.json' 7 | else 8 | pm2 stop /app/config/pm2.json 9 | fi 10 | -------------------------------------------------------------------------------- /server/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | npm-debug.log* 3 | yarn-debug.log* 4 | yarn-error.log* 5 | 6 | .idea 7 | .vscode 8 | 9 | node_modules 10 | dist 11 | lib 12 | chromium 13 | logs 14 | fonts 15 | logs 16 | public/database/upload* 17 | -------------------------------------------------------------------------------- /server/src/logic.ts: -------------------------------------------------------------------------------- 1 | import { resolve } from 'path' 2 | 3 | import { logger } from './logger' 4 | 5 | class PuppeteerAPI { 6 | ctx: any 7 | 8 | constructor(ctx) { 9 | this.ctx = ctx 10 | } 11 | } 12 | 13 | export { 14 | PuppeteerAPI 15 | } -------------------------------------------------------------------------------- /server/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "outDir": "dist", 4 | "lib": ["ESNext", "DOM"], 5 | "declaration": true, 6 | "allowJs": true, 7 | "esModuleInterop": true, 8 | "moduleResolution": "Node" 9 | }, 10 | "include": [ 11 | "./**/*.ts" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /client/src/plugins/splitpanes.ts: -------------------------------------------------------------------------------- 1 | import { App } from 'vue' 2 | 3 | import { Splitpanes, Pane } from 'splitpanes' 4 | import 'splitpanes/dist/splitpanes.css' 5 | 6 | export default function install(app: App): void { 7 | app.component('Splitpanes', Splitpanes) 8 | app.component('Pane', Pane) 9 | } 10 | -------------------------------------------------------------------------------- /client/src/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare module '*.vue' { 4 | import { DefineComponent } from 'vue' 5 | // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types 6 | const component: DefineComponent<{}, {}, any> 7 | export default component 8 | } 9 | -------------------------------------------------------------------------------- /client/src/utils/request.ts: -------------------------------------------------------------------------------- 1 | import { AnyRecord } from '../types/index' 2 | 3 | export interface REQUEST_DATA { 4 | total: number 5 | data: AnyRecord | AnyRecord[] 6 | } 7 | 8 | const request = async (url: string) => { 9 | const res = await fetch(url) 10 | return res.json() 11 | } 12 | 13 | export { request } 14 | -------------------------------------------------------------------------------- /client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SQL REPL 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /client/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "esnext", 4 | "useDefineForClassFields": true, 5 | "module": "esnext", 6 | "moduleResolution": "node", 7 | "strict": true, 8 | "jsx": "preserve", 9 | "sourceMap": true, 10 | "resolveJsonModule": true, 11 | "esModuleInterop": true, 12 | "lib": ["esnext", "dom"], 13 | "skipLibCheck": true 14 | }, 15 | "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"] 16 | } 17 | -------------------------------------------------------------------------------- /client/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "typescript.tsdk": "node_modules/typescript/lib", 3 | "volar.tsPlugin": true, 4 | "volar.tsPluginStatus": false, 5 | "vite.autoStart": false, 6 | "editor.codeActionsOnSave": { 7 | "source.fixAll.eslint": true, 8 | }, 9 | "files.associations": { 10 | "*.css": "postcss", 11 | }, 12 | "i18n-ally.localesPaths": [ 13 | "src/locales" 14 | ], 15 | "i18n-ally.enabledParsers": [ 16 | "yaml" 17 | ], 18 | "i18n-ally.keystyle": "nested" 19 | } 20 | -------------------------------------------------------------------------------- /client/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | 4 | import SplitPanes from './plugins/splitpanes' 5 | import NaiveUI from './plugins/naive-ui' 6 | import i18n from './plugins/i18n' 7 | import pinia from './plugins/pinia' 8 | 9 | import 'virtual:windi.css' 10 | import 'virtual:windi-devtools' 11 | import './assets/index.css' 12 | 13 | const app = createApp(App) 14 | 15 | app.use(SplitPanes) 16 | app.use(NaiveUI) 17 | app.use(i18n) 18 | app.use(pinia) 19 | app.mount('#app') 20 | -------------------------------------------------------------------------------- /client/src/utils/helper.ts: -------------------------------------------------------------------------------- 1 | export const shortid = () => 2 | (String(1e7) + 1e3 + 4e3 + 8e3 + 1e11) 3 | .replace(/[018]/g, (c: string) => 4 | ( 5 | Number(c) ^ 6 | (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (Number(c) / 4))) 7 | ).toString(16) 8 | ) 9 | .slice(0, 16) 10 | 11 | export const debounce = (fn: Function, ms = 300) => { 12 | let timeoutId: ReturnType 13 | return function (this: any, ...args: any[]) { 14 | clearTimeout(timeoutId) 15 | timeoutId = setTimeout(() => fn.apply(this, args), ms) 16 | } 17 | } -------------------------------------------------------------------------------- /client/src/types/index.ts: -------------------------------------------------------------------------------- 1 | import { InjectionKey, Ref, inject } from 'vue' 2 | 3 | export type AnyRecord = Record 4 | 5 | export interface DATABASE_INFO { 6 | activeTable: string 7 | connected: boolean 8 | manualRun: boolean 9 | tableColumns: AnyRecord[] 10 | } 11 | 12 | export const IS_DARKMODE: InjectionKey> = Symbol() 13 | 14 | export const injectStrict = (key: InjectionKey, fallback?: T) => { 15 | const resolved = inject(key, fallback) 16 | if (!resolved) { 17 | throw new Error(`Could not resolve ${key.description}`) 18 | } 19 | 20 | return resolved 21 | } 22 | 23 | -------------------------------------------------------------------------------- /server/app.ts: -------------------------------------------------------------------------------- 1 | import dotenv from 'dotenv' 2 | import { app } from './index' 3 | 4 | dotenv.config() 5 | 6 | const env = process.env.NODE_ENV || 'development' 7 | const isProd = process.env.NODE_ENV === 'production' 8 | const port = process.env.PORT || (isProd ? 80 : 3232) 9 | // Here we're assigning the server to a variable because 10 | // we're going to want to manually rip down the server in testing 11 | export const server = app.listen(port) 12 | 13 | // eslint-disable-next-line no-console 14 | console.log(`Server running at ${port}`) 15 | 16 | // eslint-disable-next-line no-console 17 | console.log(`Running in ${env}`) 18 | -------------------------------------------------------------------------------- /server/src/utils.ts: -------------------------------------------------------------------------------- 1 | import os from 'os' 2 | import jsonWebToken from 'jsonwebtoken' 3 | 4 | export const sleep = (delay) => new Promise((resolve) => setTimeout(resolve, delay)) 5 | export const isMac = os.type().toLowerCase() === 'darwin' 6 | export const isWindows = os.type().toLowerCase() === 'windows_nt' 7 | 8 | export const getSecretErp = async (erp): Promise => { 9 | return new Promise((resolve, reject) => { 10 | const body = { username: erp } 11 | const privateKey = "Ix/tr2U6jp2GkAFd9AdbRTMK8pDONxCT8BTWvaZCHxs="; 12 | jsonWebToken.sign(body, privateKey, { expiresIn: 3600 }, function (err, token) { 13 | if (err) { reject(err) } 14 | resolve(token) 15 | }) 16 | }) 17 | } -------------------------------------------------------------------------------- /server/config/pm2.json: -------------------------------------------------------------------------------- 1 | { 2 | "apps": [ 3 | { 4 | "name": "pm2-http", 5 | "cwd": "/app", 6 | "script": "dist/app.js", 7 | "log_date_format": "YYYY-MM-DD HH:mm:ss", 8 | "error_file": "/export/Logs/pm2-error.log", 9 | "out_file": "/export/Logs/pm2.log", 10 | "pid_file": "pm2.pid", 11 | "instances": 1, 12 | "instance_var": "INSTANCE_ID", 13 | "min_uptime": "200s", 14 | "max_restarts": 10, 15 | "max_memory_restart": "1024M", 16 | "cron_restart": "3 0 * * *", 17 | "watch": false, 18 | "merge_logs": false, 19 | "exec_interpreter": "node", 20 | "exec_mode": "cluster", 21 | "autorestart": true, 22 | "vizion": false 23 | } 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /client/src/plugins/i18n.ts: -------------------------------------------------------------------------------- 1 | import { App } from 'vue' 2 | import { createI18n } from 'vue-i18n' 3 | 4 | const localPathPrefix = '../locales/' 5 | 6 | // import i18n resources 7 | // https://vitejs.dev/guide/features.html#glob-import 8 | const messages = Object.fromEntries( 9 | Object.entries(import.meta.globEager('../locales/*.y(a)?ml')).map( 10 | ([key, value]) => { 11 | const yaml = key.endsWith('.yaml') 12 | return [key.slice(localPathPrefix.length, yaml ? -5 : -4), value.default] 13 | } 14 | ) 15 | ) 16 | 17 | const install = (app: App) => { 18 | const i18n = createI18n({ 19 | legacy: false, 20 | locale: 'en', 21 | globalInjection: true, 22 | messages, 23 | }) 24 | 25 | app.use(i18n) 26 | } 27 | 28 | export default install 29 | -------------------------------------------------------------------------------- /client/src/plugins/naive-ui.ts: -------------------------------------------------------------------------------- 1 | import type { App } from 'vue' 2 | import { 3 | create, 4 | NButton, 5 | NButtonGroup, 6 | NDataTable, 7 | NInput, 8 | NMessageProvider, 9 | NModal, 10 | NPopover, 11 | NPopconfirm, 12 | NSpace, 13 | NTag, 14 | NTooltip, 15 | NTree, 16 | NUpload, 17 | NUploadDragger, 18 | } from 'naive-ui' 19 | 20 | const naive = create({ 21 | components: [ 22 | NButton, 23 | NButtonGroup, 24 | NDataTable, 25 | NInput, 26 | NMessageProvider, 27 | NModal, 28 | NPopover, 29 | NPopconfirm, 30 | NSpace, 31 | NTag, 32 | NTooltip, 33 | NTree, 34 | NUpload, 35 | NUploadDragger, 36 | ], 37 | }) 38 | 39 | const install = (app: App) => app.use(naive) 40 | 41 | export default install 42 | -------------------------------------------------------------------------------- /client/src/views/ReplEditor.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 20 | 21 | -------------------------------------------------------------------------------- /server/server-test.http: -------------------------------------------------------------------------------- 1 | ### datetime 2 | GET http://localhost:3232/api/v1/datetime 3 | 4 | ### [SQLite] 创建库连接 5 | # GET http://localhost:3232/api/v1/sqlite/connectDB/employees.db 6 | GET http://localhost:3232/api/v1/sqlite/connectDB/%2FUsers%2Fxiaoyunwei%2FDocuments%2FGitHub%2Fprivate%2Fsql-repl%2Fserver%2Fpublic%2Fdatabase%2Fchinook.sqlite 7 | 8 | ### [SQLite] 获取数据库 Schema 9 | GET http://localhost:3232/api/v1/sqlite/getDBSchema 10 | 11 | ### [SQLite] 查询表结构 12 | # GET http://localhost:3232/api/v1/sqlite/getTableColumns/employees 13 | GET http://localhost:3232/api/v1/sqlite/getTableColumns/Album 14 | 15 | ### [SQLite] 查询 SQL 16 | # GET http://localhost:3232/api/v1/sqlite/execSQL/select%20*%20from%20employees%20e%20where%20e.salary%20%3E%2018000 17 | GET http://localhost:3232/api/v1/sqlite/execSQL/select%20*%20from%20Album 18 | -------------------------------------------------------------------------------- /client/src/locales/zh.yml: -------------------------------------------------------------------------------- 1 | common: 2 | about: 关于 3 | back: 返回 4 | go: 确定 5 | home: 首页 6 | open: 打开 7 | save: 保存 8 | run: 运行 9 | cancel: 取消 10 | start: 开始 11 | shortcut: 快捷键 12 | button: 13 | toggle_dark: 切换深色模式 14 | toggle_langs: 切换语言 15 | options: 应用设置 16 | create_connection: 创建数据连接 17 | run_sql_queries: 执行查询语句(⌘E) 18 | save_sql_queries: 保存查询语句(⌘S) 19 | copy-sql-queries: 复制查询语句 20 | copy-table-result: 复制数据集合到剪贴板 21 | export-to-csv: 导出数据集合到CSV文件 22 | modal: 23 | save_title: 保存查询语句 24 | save_placeholder: 查询语句别名 25 | home: 26 | app_name: SQL REPL 27 | aside: 28 | database-connections: 数据库连接 29 | saved_sql_queries: 查询语句管理 30 | app: 31 | set-up-a-new-connection: 设置新的数据库连接 32 | new-tab: 新建标签页 33 | select-queries: 从左侧查询语句面板选择 34 | close-tab: 关闭标签页 35 | save-queries: 保存查询语句 36 | run-queries: 执行查询语句 37 | -------------------------------------------------------------------------------- /server/README.md: -------------------------------------------------------------------------------- 1 | # Easy BI API Server 2 | 3 | > Easy BI 前端 API 服务 4 | 5 | ## 目录结构 6 | 7 | ```bash 8 | . 9 | ├── Dockerfile 10 | ├── README.md 11 | ├── app.ts # 应用入口 12 | ├── bin 13 | │ ├── start-server.sh 14 | │ └── stop-server.sh 15 | ├── chromium # 本地 chromium 运行环境 16 | ├── config # 配置项 17 | │ └── pm2.json 18 | ├── dist # 输出路径 19 | ├── index.ts # 入口文件 20 | ├── logs # 本地日志 21 | ├── package.json 22 | ├── src # 源码文件 23 | │ ├── controller.ts # ├──接口处理逻辑 24 | │ ├── logger.ts # ├──日志配置 25 | │ ├── logic.ts # ├──Puppeteer调用逻辑 26 | │ ├── router.ts # ├──路由配置 27 | │ └── utils.ts # ├──助手类 28 | ├── tsconfig.json 29 | └── yarn.lock 30 | ``` 31 | 32 | ## License 33 | 34 | ISC 技术与数据中心-数据与智能部-系统研发部 35 | -------------------------------------------------------------------------------- /client/src/utils/services.ts: -------------------------------------------------------------------------------- 1 | import { AnyRecord } from '../types/index' 2 | import { request } from './request' 3 | 4 | const BASE_URL = '/api/v1/sqlite' 5 | 6 | export const connectDB = async (params: string) => { 7 | const url = `${BASE_URL}/connectDB/${params}` 8 | const res = await request(url) 9 | return res.data 10 | } 11 | 12 | export const getDBSchema = async () => { 13 | const url = `${BASE_URL}/getDBSchema` 14 | const res = await request(url) 15 | return JSON.parse(res.data[0].schemas) 16 | } 17 | 18 | export const getTableColumns = async (params: string) => { 19 | const url = `${BASE_URL}/getTableColumns/${params}` 20 | const res = await request(url) 21 | return res.data 22 | } 23 | 24 | export const execSQL = async (params: string): Promise => { 25 | const url = `${BASE_URL}/execSQL/${params}` 26 | const res = await request(url) 27 | return res 28 | } -------------------------------------------------------------------------------- /client/src/assets/index.css: -------------------------------------------------------------------------------- 1 | /* splitpanes pane style */ 2 | .splitpanes.default-theme .splitpanes__pane { 3 | @apply bg-transparent; 4 | } 5 | .splitpanes.default-theme .splitpanes__splitter { 6 | @apply min-w-4 min-h-4 bg-blue-gray-100 dark:bg-dark-800; 7 | } 8 | 9 | .splitpanes.default-theme .splitpanes__splitter::before, 10 | .splitpanes.default-theme .splitpanes__splitter::after { 11 | @apply bg-dark-100 opacity-50; 12 | } 13 | 14 | .splitpanes.default-theme .splitpanes__splitter:hover::before, 15 | .splitpanes.default-theme .splitpanes__splitter:hover::after { 16 | @apply bg-transparent; 17 | } 18 | 19 | .default-theme.splitpanes--vertical>.splitpanes__splitter, 20 | .default-theme .splitpanes--vertical>.splitpanes__splitter { 21 | @apply border-l border-r border-$border-color; 22 | } 23 | 24 | .default-theme.splitpanes--horizontal>.splitpanes__splitter, 25 | .default-theme .splitpanes--horizontal>.splitpanes__splitter { 26 | @apply border-t border-b border-$border-color; 27 | } 28 | -------------------------------------------------------------------------------- /client/README.md: -------------------------------------------------------------------------------- 1 | # Vue 3 + Typescript + Vite 2 | 3 | This template should help get you started developing with Vue 3 and Typescript in Vite. The template uses Vue 3 ` 53 | 54 | -------------------------------------------------------------------------------- /client/src/views/aside-panel/SavedQueries.vue: -------------------------------------------------------------------------------- 1 | 28 | 29 | 53 | 54 | -------------------------------------------------------------------------------- /client/src/plugins/pinia-persist.ts: -------------------------------------------------------------------------------- 1 | import { watch } from 'vue' 2 | import { PiniaPluginContext } from 'pinia' 3 | 4 | export interface PersistStrategy { 5 | key?: string 6 | storage?: Storage 7 | paths?: string[] 8 | } 9 | 10 | export interface PersistOptions { 11 | enabled: true 12 | strategies?: PersistStrategy[] 13 | } 14 | 15 | type Store = PiniaPluginContext['store'] 16 | type PartialState = Partial 17 | 18 | declare module 'pinia' { 19 | export interface DefineStoreOptions< 20 | Id extends string, 21 | S extends StateTree, 22 | G extends GettersTree, 23 | A 24 | > { 25 | persist?: PersistOptions 26 | } 27 | } 28 | 29 | const updateStorage = (strategy: PersistStrategy, store: Store) => { 30 | const storage = strategy.storage || localStorage 31 | const storeKey = strategy.key || store.$id 32 | 33 | if (strategy.paths) { 34 | const partialState = strategy.paths.reduce((finalObj, key) => { 35 | finalObj[key] = store.$state[key] 36 | return finalObj 37 | }, {} as PartialState) 38 | 39 | storage.setItem(storeKey, JSON.stringify(partialState)) 40 | } else { 41 | storage.setItem(storeKey, JSON.stringify(store.$state)) 42 | } 43 | } 44 | 45 | export default ({ options, store }: PiniaPluginContext): void => { 46 | if (options.persist?.enabled) { 47 | const defaultStrat: PersistStrategy[] = [ 48 | { 49 | key: store.$id, 50 | storage: localStorage, 51 | }, 52 | ] 53 | 54 | const strategies = options.persist?.strategies?.length 55 | ? options.persist?.strategies 56 | : defaultStrat 57 | 58 | strategies.forEach((strategy) => { 59 | const storage = strategy.storage || localStorage 60 | const storeKey = strategy.key || store.$id 61 | const storageResult = storage.getItem(storeKey) 62 | 63 | if (storageResult) { 64 | store.$patch(JSON.parse(storageResult)) 65 | updateStorage(strategy, store) 66 | } 67 | }) 68 | 69 | watch( 70 | () => store.$state, 71 | () => { 72 | strategies.forEach((strategy) => { 73 | updateStorage(strategy, store) 74 | }) 75 | }, 76 | { deep: true } 77 | ) 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /client/src/views/aside-panel/index.vue: -------------------------------------------------------------------------------- 1 | 33 | 34 | 41 | 42 | 75 | -------------------------------------------------------------------------------- /client/src/views/EmptyHolder.vue: -------------------------------------------------------------------------------- 1 | 34 | 35 | 57 | 58 | -------------------------------------------------------------------------------- /client/src/views/Header.vue: -------------------------------------------------------------------------------- 1 | 37 | 38 | 58 | 59 | 75 | -------------------------------------------------------------------------------- /client/src/store/tabs.ts: -------------------------------------------------------------------------------- 1 | import { defineStore } from 'pinia' 2 | import dayjs from 'dayjs' 3 | 4 | import { shortid } from '../utils' 5 | 6 | export interface TabInfo { 7 | id: string; 8 | idx: number; 9 | label: string; 10 | isSaved: boolean; 11 | savedAt: string; 12 | queries: string; 13 | } 14 | 15 | export type AnyTabInfo = Partial 16 | 17 | export const useTabsStore = defineStore({ 18 | id: 'replTabs', 19 | 20 | persist: { 21 | enabled: true, 22 | }, 23 | 24 | state: () => ({ 25 | queryTabs: [] as TabInfo[], 26 | activeTab: {} as TabInfo, 27 | activeTabIdx: 1, 28 | }), 29 | 30 | getters: { 31 | currentTab: (state) => { 32 | const idx = state.queryTabs.findIndex( 33 | (tab) => tab.idx === state.activeTabIdx 34 | ) 35 | return idx === -1 ? {} : state.queryTabs[idx] 36 | }, 37 | }, 38 | 39 | actions: { 40 | addTab(label: string, queries: string) { 41 | const id = shortid() 42 | const idx = 43 | this.queryTabs.length === 0 44 | ? 1 45 | : Math.max(...this.queryTabs.map((tab) => tab.idx)) + 1 46 | const newTab = { 47 | id, 48 | idx, 49 | label: label ? label : `Untitled-${idx}`, 50 | isSaved: true, 51 | savedAt: dayjs().format('YYYY-MM-DD HH:mm:ss'), 52 | queries, 53 | } 54 | 55 | this.queryTabs.push(newTab) 56 | this.activeTab = newTab 57 | this.activeTabIdx = idx 58 | }, 59 | removeTab() { 60 | this.queryTabs.splice( 61 | this.queryTabs.findIndex((tab) => tab.idx === this.activeTab.idx), 62 | 1 63 | ) 64 | 65 | const tabsLength = this.queryTabs.length 66 | if (tabsLength > 0) { 67 | this.setActiveTab(this.queryTabs[tabsLength - 1]) 68 | } else { 69 | this.activeTab = { 70 | id: shortid(), 71 | idx: 0, 72 | label: 'Untitled-1', 73 | isSaved: true, 74 | savedAt: dayjs().format('YYYY-MM-DD HH:mm:ss'), 75 | queries: '', 76 | } 77 | } 78 | }, 79 | updateTab(payload: AnyTabInfo) { 80 | const tab = this.currentTab 81 | Object.assign(tab, payload) 82 | }, 83 | setActiveTab(payload: TabInfo) { 84 | const { idx } = payload 85 | const tab = this.queryTabs.find((tab) => tab.idx === idx) 86 | 87 | if (tab) { 88 | this.activeTab = tab 89 | this.activeTabIdx = idx 90 | } 91 | }, 92 | saveTab() { 93 | const tab = this.activeTab 94 | 95 | if (tab) { 96 | tab.isSaved = true 97 | } 98 | }, 99 | }, 100 | }) -------------------------------------------------------------------------------- /client/src/views/aside-panel/Connections.vue: -------------------------------------------------------------------------------- 1 | 52 | 53 | 90 | 91 | -------------------------------------------------------------------------------- /client/src/App.vue: -------------------------------------------------------------------------------- 1 | 34 | 35 | 66 | 67 | 105 | -------------------------------------------------------------------------------- /server/src/controller.ts: -------------------------------------------------------------------------------- 1 | import { Database, Statement } from 'better-sqlite3' 2 | import { logger } from './logger' 3 | import { SqliteClient } from './db' 4 | // import { db } from './db' 5 | import { resolve } from 'path' 6 | 7 | class SqliteServer { 8 | private db: Database 9 | private stmt: Statement 10 | private isConnecting: boolean 11 | 12 | constructor() { 13 | } 14 | 15 | /** 16 | * 获取查询参数 17 | * @param ctx 18 | * @param next 19 | * @returns 20 | */ 21 | static getRequestParams(ctx, next) { 22 | logger.info(`运行环境:${process.env.NODE_ENV}`) 23 | const { params } = ctx 24 | logger.info(`查询参数:${JSON.stringify(params)}`) 25 | const { sql, database, table } = params 26 | 27 | if (!sql && !database && !table) { 28 | logger.error('INVALID_PARAMS') 29 | ctx.throw(400, 'INVALID_PARAMS') 30 | } 31 | 32 | next() 33 | 34 | return params 35 | } 36 | 37 | connectDB(ctx, next) { 38 | const { database } = SqliteServer.getRequestParams(ctx, next) 39 | console.log(database) 40 | this.db = new SqliteClient({ 41 | // database: resolve(__dirname, './employees.db'), 42 | database: resolve(__dirname, database), 43 | }) 44 | this.isConnecting = this.db.db.open 45 | 46 | console.log(this) 47 | 48 | ctx.body = { 49 | data: this.db 50 | } 51 | } 52 | 53 | getDBSchema(ctx, next) { 54 | const getSchemaSql = ` 55 | WITH columns as ( 56 | SELECT 57 | a.tbl_name, 58 | json_group_array( 59 | json_object('name', b.name,'type', IIF(b.type = '', 'N/A', b.type)) 60 | ) as column_json 61 | FROM sqlite_master a, pragma_table_info(a.name) b 62 | WHERE a.type in ('table','view') AND a.name NOT LIKE 'sqlite_%' group by tbl_name 63 | ) 64 | SELECT json_group_array(json_object('name',tbl_name, 'columns', json(column_json))) schemas 65 | FROM columns; 66 | ` 67 | const stmt = this.db.execSQL(getSchemaSql) 68 | const res = stmt.all() 69 | 70 | ctx.body = { 71 | total: res.length, 72 | data: res, 73 | } 74 | } 75 | 76 | getTableColumns(ctx, next) { 77 | const { table } = SqliteServer.getRequestParams(ctx, next) 78 | logger.info(this.db) 79 | 80 | if (!this.isConnecting) { 81 | logger.error('DB_NOT_CONNECTED') 82 | ctx.throw(400, 'DB_NOT_CONNECTED') 83 | } 84 | 85 | const sql = `SELECT * FROM ${table}` 86 | const stmt = this.db.execSQL(sql) 87 | const res = stmt.columns() 88 | logger.info(this.stmt) 89 | logger.info(res) 90 | 91 | ctx.body = { 92 | total: res.length, 93 | data: res, 94 | } 95 | } 96 | 97 | retriveResult(ctx, next) { 98 | const { sql } = SqliteServer.getRequestParams(ctx, next) 99 | 100 | const stmt = this.db.execSQL(sql) 101 | const res = stmt.all() 102 | const columns = stmt.columns() 103 | 104 | logger.info('sqlite3 execute query successed') 105 | 106 | ctx.body = { 107 | total: res.length, 108 | data: res, 109 | columns 110 | } 111 | } 112 | 113 | uploadDatabase(ctx, next) { 114 | const file = ctx.request.files.file 115 | ctx.body = { 116 | data: { 117 | file 118 | }, 119 | } 120 | } 121 | } 122 | 123 | export { SqliteServer } -------------------------------------------------------------------------------- /client/src/components/Codemirror.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 116 | 117 | -------------------------------------------------------------------------------- /client/src/store/repl.ts: -------------------------------------------------------------------------------- 1 | import { defineStore } from 'pinia' 2 | import { h } from 'vue' 3 | 4 | import { connectDB, getTableColumns, getDBSchema } from '../utils/services' 5 | import { useDark } from '../composables/useDark' 6 | 7 | type SQLITE_DB_SCHEMA_COLUMN = { 8 | name: string; 9 | type: string; 10 | } 11 | interface SQLITE_DB_SCHEMA { 12 | name: string 13 | columns: SQLITE_DB_SCHEMA_COLUMN[] 14 | } 15 | 16 | export const useReplStore = defineStore({ 17 | id: 'replStore', 18 | 19 | persist: { 20 | enabled: true, 21 | }, 22 | 23 | state: () => ({ 24 | isDarkmode: useDark(), 25 | databaseInfo: { 26 | name: '', 27 | type: 'sqlite', 28 | connected: false, 29 | activeDB: '', 30 | schemas: [] as SQLITE_DB_SCHEMA[], 31 | }, 32 | tableInfo: { 33 | sqlQueries: '', 34 | activeTable: '', 35 | tableColumns: [], 36 | manualRun: false, 37 | }, 38 | }), 39 | 40 | getters: { 41 | isDark: (state) => state.isDarkmode, 42 | dbSchemaTree: (state) => { 43 | // init database schema tree 44 | const initDatabaseSchemaTree = () => { 45 | const schemas = state.databaseInfo.schemas 46 | 47 | return schemas.map((table: any) => { 48 | return { 49 | label: table.name, 50 | key: table.name, 51 | children: table.columns.map((column: any) => { 52 | return { 53 | label: column.name, 54 | key: column.name, 55 | suffix: () => h('div', {}, { default: () => column.type }), 56 | } 57 | }), 58 | } 59 | }) 60 | } 61 | 62 | const dbName = state.databaseInfo.activeDB 63 | const tableColumns = initDatabaseSchemaTree() 64 | 65 | return [ 66 | { 67 | label: dbName, 68 | key: `root-${dbName}`, 69 | suffix: () => 70 | h('div', {}, { default: () => `(${tableColumns.length})` }), 71 | children: tableColumns, 72 | }, 73 | ] 74 | }, 75 | editorHintInfo: (state) => { 76 | const dbSchemas = state.databaseInfo.schemas 77 | let schema = {} as any 78 | 79 | const tables = dbSchemas.map((table) => ({ label: table.name.toLowerCase() })) 80 | 81 | dbSchemas.forEach((table) => { 82 | schema[table.name.toLowerCase()] = table.columns.map((col) => ({ label: col.name.toLowerCase() })) 83 | }) 84 | 85 | return { 86 | tables, 87 | schema, 88 | } 89 | }, 90 | expandedKeys: (state) => { 91 | return [`root-${state.databaseInfo.activeDB}`] 92 | } 93 | }, 94 | 95 | actions: { 96 | /** 97 | * Connected with Database 98 | */ 99 | async connectDatabase() { 100 | if (this.databaseInfo.connected) { 101 | console.warn('Database already connected') 102 | return 103 | } 104 | const res = await connectDB(encodeURIComponent(this.databaseInfo.name)) 105 | this.databaseInfo.name = res.db.name 106 | this.databaseInfo.connected = !!res 107 | }, 108 | /** 109 | * Get DB Schema 110 | */ 111 | async getDBSchema() { 112 | this.databaseInfo.schemas = await getDBSchema() 113 | }, 114 | /** 115 | * Initialize Table Columns 116 | */ 117 | async initTableColumns() { 118 | const params = encodeURIComponent(this.tableInfo.activeTable) 119 | this.tableInfo.tableColumns = await getTableColumns(params) 120 | }, 121 | }, 122 | }) 123 | -------------------------------------------------------------------------------- /client/src/views/ReplEditorActions.vue: -------------------------------------------------------------------------------- 1 | 50 | 51 | 125 | 126 | -------------------------------------------------------------------------------- /client/src/views/QuerySelector.vue: -------------------------------------------------------------------------------- 1 | 44 | 45 | 106 | 107 | 163 | -------------------------------------------------------------------------------- /client/src/views/TableView.vue: -------------------------------------------------------------------------------- 1 | 29 | 30 | 129 | 130 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.3 2 | 3 | specifiers: 4 | npm-run-all: ^4.1.5 5 | 6 | devDependencies: 7 | npm-run-all: 4.1.5 8 | 9 | packages: 10 | 11 | /ansi-styles/3.2.1: 12 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 13 | engines: {node: '>=4'} 14 | dependencies: 15 | color-convert: 1.9.3 16 | dev: true 17 | 18 | /balanced-match/1.0.2: 19 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 20 | dev: true 21 | 22 | /brace-expansion/1.1.11: 23 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 24 | dependencies: 25 | balanced-match: 1.0.2 26 | concat-map: 0.0.1 27 | dev: true 28 | 29 | /call-bind/1.0.2: 30 | resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} 31 | dependencies: 32 | function-bind: 1.1.1 33 | get-intrinsic: 1.1.1 34 | dev: true 35 | 36 | /chalk/2.4.2: 37 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 38 | engines: {node: '>=4'} 39 | dependencies: 40 | ansi-styles: 3.2.1 41 | escape-string-regexp: 1.0.5 42 | supports-color: 5.5.0 43 | dev: true 44 | 45 | /color-convert/1.9.3: 46 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 47 | dependencies: 48 | color-name: 1.1.3 49 | dev: true 50 | 51 | /color-name/1.1.3: 52 | resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} 53 | dev: true 54 | 55 | /concat-map/0.0.1: 56 | resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} 57 | dev: true 58 | 59 | /cross-spawn/6.0.5: 60 | resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} 61 | engines: {node: '>=4.8'} 62 | dependencies: 63 | nice-try: 1.0.5 64 | path-key: 2.0.1 65 | semver: 5.7.1 66 | shebang-command: 1.2.0 67 | which: 1.3.1 68 | dev: true 69 | 70 | /define-properties/1.1.3: 71 | resolution: {integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==} 72 | engines: {node: '>= 0.4'} 73 | dependencies: 74 | object-keys: 1.1.1 75 | dev: true 76 | 77 | /error-ex/1.3.2: 78 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} 79 | dependencies: 80 | is-arrayish: 0.2.1 81 | dev: true 82 | 83 | /es-abstract/1.19.1: 84 | resolution: {integrity: sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==} 85 | engines: {node: '>= 0.4'} 86 | dependencies: 87 | call-bind: 1.0.2 88 | es-to-primitive: 1.2.1 89 | function-bind: 1.1.1 90 | get-intrinsic: 1.1.1 91 | get-symbol-description: 1.0.0 92 | has: 1.0.3 93 | has-symbols: 1.0.2 94 | internal-slot: 1.0.3 95 | is-callable: 1.2.4 96 | is-negative-zero: 2.0.1 97 | is-regex: 1.1.4 98 | is-shared-array-buffer: 1.0.1 99 | is-string: 1.0.7 100 | is-weakref: 1.0.1 101 | object-inspect: 1.11.0 102 | object-keys: 1.1.1 103 | object.assign: 4.1.2 104 | string.prototype.trimend: 1.0.4 105 | string.prototype.trimstart: 1.0.4 106 | unbox-primitive: 1.0.1 107 | dev: true 108 | 109 | /es-to-primitive/1.2.1: 110 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} 111 | engines: {node: '>= 0.4'} 112 | dependencies: 113 | is-callable: 1.2.4 114 | is-date-object: 1.0.5 115 | is-symbol: 1.0.4 116 | dev: true 117 | 118 | /escape-string-regexp/1.0.5: 119 | resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} 120 | engines: {node: '>=0.8.0'} 121 | dev: true 122 | 123 | /function-bind/1.1.1: 124 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 125 | dev: true 126 | 127 | /get-intrinsic/1.1.1: 128 | resolution: {integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==} 129 | dependencies: 130 | function-bind: 1.1.1 131 | has: 1.0.3 132 | has-symbols: 1.0.2 133 | dev: true 134 | 135 | /get-symbol-description/1.0.0: 136 | resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} 137 | engines: {node: '>= 0.4'} 138 | dependencies: 139 | call-bind: 1.0.2 140 | get-intrinsic: 1.1.1 141 | dev: true 142 | 143 | /graceful-fs/4.2.8: 144 | resolution: {integrity: sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==} 145 | dev: true 146 | 147 | /has-bigints/1.0.1: 148 | resolution: {integrity: sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==} 149 | dev: true 150 | 151 | /has-flag/3.0.0: 152 | resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} 153 | engines: {node: '>=4'} 154 | dev: true 155 | 156 | /has-symbols/1.0.2: 157 | resolution: {integrity: sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==} 158 | engines: {node: '>= 0.4'} 159 | dev: true 160 | 161 | /has-tostringtag/1.0.0: 162 | resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} 163 | engines: {node: '>= 0.4'} 164 | dependencies: 165 | has-symbols: 1.0.2 166 | dev: true 167 | 168 | /has/1.0.3: 169 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 170 | engines: {node: '>= 0.4.0'} 171 | dependencies: 172 | function-bind: 1.1.1 173 | dev: true 174 | 175 | /hosted-git-info/2.8.9: 176 | resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} 177 | dev: true 178 | 179 | /internal-slot/1.0.3: 180 | resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} 181 | engines: {node: '>= 0.4'} 182 | dependencies: 183 | get-intrinsic: 1.1.1 184 | has: 1.0.3 185 | side-channel: 1.0.4 186 | dev: true 187 | 188 | /is-arrayish/0.2.1: 189 | resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=} 190 | dev: true 191 | 192 | /is-bigint/1.0.4: 193 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} 194 | dependencies: 195 | has-bigints: 1.0.1 196 | dev: true 197 | 198 | /is-boolean-object/1.1.2: 199 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} 200 | engines: {node: '>= 0.4'} 201 | dependencies: 202 | call-bind: 1.0.2 203 | has-tostringtag: 1.0.0 204 | dev: true 205 | 206 | /is-callable/1.2.4: 207 | resolution: {integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==} 208 | engines: {node: '>= 0.4'} 209 | dev: true 210 | 211 | /is-core-module/2.7.0: 212 | resolution: {integrity: sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==} 213 | dependencies: 214 | has: 1.0.3 215 | dev: true 216 | 217 | /is-date-object/1.0.5: 218 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} 219 | engines: {node: '>= 0.4'} 220 | dependencies: 221 | has-tostringtag: 1.0.0 222 | dev: true 223 | 224 | /is-negative-zero/2.0.1: 225 | resolution: {integrity: sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==} 226 | engines: {node: '>= 0.4'} 227 | dev: true 228 | 229 | /is-number-object/1.0.6: 230 | resolution: {integrity: sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==} 231 | engines: {node: '>= 0.4'} 232 | dependencies: 233 | has-tostringtag: 1.0.0 234 | dev: true 235 | 236 | /is-regex/1.1.4: 237 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} 238 | engines: {node: '>= 0.4'} 239 | dependencies: 240 | call-bind: 1.0.2 241 | has-tostringtag: 1.0.0 242 | dev: true 243 | 244 | /is-shared-array-buffer/1.0.1: 245 | resolution: {integrity: sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==} 246 | dev: true 247 | 248 | /is-string/1.0.7: 249 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} 250 | engines: {node: '>= 0.4'} 251 | dependencies: 252 | has-tostringtag: 1.0.0 253 | dev: true 254 | 255 | /is-symbol/1.0.4: 256 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} 257 | engines: {node: '>= 0.4'} 258 | dependencies: 259 | has-symbols: 1.0.2 260 | dev: true 261 | 262 | /is-weakref/1.0.1: 263 | resolution: {integrity: sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==} 264 | dependencies: 265 | call-bind: 1.0.2 266 | dev: true 267 | 268 | /isexe/2.0.0: 269 | resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} 270 | dev: true 271 | 272 | /json-parse-better-errors/1.0.2: 273 | resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} 274 | dev: true 275 | 276 | /load-json-file/4.0.0: 277 | resolution: {integrity: sha1-L19Fq5HjMhYjT9U62rZo607AmTs=} 278 | engines: {node: '>=4'} 279 | dependencies: 280 | graceful-fs: 4.2.8 281 | parse-json: 4.0.0 282 | pify: 3.0.0 283 | strip-bom: 3.0.0 284 | dev: true 285 | 286 | /memorystream/0.3.1: 287 | resolution: {integrity: sha1-htcJCzDORV1j+64S3aUaR93K+bI=} 288 | engines: {node: '>= 0.10.0'} 289 | dev: true 290 | 291 | /minimatch/3.0.4: 292 | resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} 293 | dependencies: 294 | brace-expansion: 1.1.11 295 | dev: true 296 | 297 | /nice-try/1.0.5: 298 | resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} 299 | dev: true 300 | 301 | /normalize-package-data/2.5.0: 302 | resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} 303 | dependencies: 304 | hosted-git-info: 2.8.9 305 | resolve: 1.20.0 306 | semver: 5.7.1 307 | validate-npm-package-license: 3.0.4 308 | dev: true 309 | 310 | /npm-run-all/4.1.5: 311 | resolution: {integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==} 312 | engines: {node: '>= 4'} 313 | hasBin: true 314 | dependencies: 315 | ansi-styles: 3.2.1 316 | chalk: 2.4.2 317 | cross-spawn: 6.0.5 318 | memorystream: 0.3.1 319 | minimatch: 3.0.4 320 | pidtree: 0.3.1 321 | read-pkg: 3.0.0 322 | shell-quote: 1.7.2 323 | string.prototype.padend: 3.1.3 324 | dev: true 325 | 326 | /object-inspect/1.11.0: 327 | resolution: {integrity: sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==} 328 | dev: true 329 | 330 | /object-keys/1.1.1: 331 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 332 | engines: {node: '>= 0.4'} 333 | dev: true 334 | 335 | /object.assign/4.1.2: 336 | resolution: {integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==} 337 | engines: {node: '>= 0.4'} 338 | dependencies: 339 | call-bind: 1.0.2 340 | define-properties: 1.1.3 341 | has-symbols: 1.0.2 342 | object-keys: 1.1.1 343 | dev: true 344 | 345 | /parse-json/4.0.0: 346 | resolution: {integrity: sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=} 347 | engines: {node: '>=4'} 348 | dependencies: 349 | error-ex: 1.3.2 350 | json-parse-better-errors: 1.0.2 351 | dev: true 352 | 353 | /path-key/2.0.1: 354 | resolution: {integrity: sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=} 355 | engines: {node: '>=4'} 356 | dev: true 357 | 358 | /path-parse/1.0.7: 359 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 360 | dev: true 361 | 362 | /path-type/3.0.0: 363 | resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} 364 | engines: {node: '>=4'} 365 | dependencies: 366 | pify: 3.0.0 367 | dev: true 368 | 369 | /pidtree/0.3.1: 370 | resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} 371 | engines: {node: '>=0.10'} 372 | hasBin: true 373 | dev: true 374 | 375 | /pify/3.0.0: 376 | resolution: {integrity: sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=} 377 | engines: {node: '>=4'} 378 | dev: true 379 | 380 | /read-pkg/3.0.0: 381 | resolution: {integrity: sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=} 382 | engines: {node: '>=4'} 383 | dependencies: 384 | load-json-file: 4.0.0 385 | normalize-package-data: 2.5.0 386 | path-type: 3.0.0 387 | dev: true 388 | 389 | /resolve/1.20.0: 390 | resolution: {integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==} 391 | dependencies: 392 | is-core-module: 2.7.0 393 | path-parse: 1.0.7 394 | dev: true 395 | 396 | /semver/5.7.1: 397 | resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} 398 | hasBin: true 399 | dev: true 400 | 401 | /shebang-command/1.2.0: 402 | resolution: {integrity: sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=} 403 | engines: {node: '>=0.10.0'} 404 | dependencies: 405 | shebang-regex: 1.0.0 406 | dev: true 407 | 408 | /shebang-regex/1.0.0: 409 | resolution: {integrity: sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=} 410 | engines: {node: '>=0.10.0'} 411 | dev: true 412 | 413 | /shell-quote/1.7.2: 414 | resolution: {integrity: sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==} 415 | dev: true 416 | 417 | /side-channel/1.0.4: 418 | resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} 419 | dependencies: 420 | call-bind: 1.0.2 421 | get-intrinsic: 1.1.1 422 | object-inspect: 1.11.0 423 | dev: true 424 | 425 | /spdx-correct/3.1.1: 426 | resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} 427 | dependencies: 428 | spdx-expression-parse: 3.0.1 429 | spdx-license-ids: 3.0.10 430 | dev: true 431 | 432 | /spdx-exceptions/2.3.0: 433 | resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} 434 | dev: true 435 | 436 | /spdx-expression-parse/3.0.1: 437 | resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} 438 | dependencies: 439 | spdx-exceptions: 2.3.0 440 | spdx-license-ids: 3.0.10 441 | dev: true 442 | 443 | /spdx-license-ids/3.0.10: 444 | resolution: {integrity: sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==} 445 | dev: true 446 | 447 | /string.prototype.padend/3.1.3: 448 | resolution: {integrity: sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg==} 449 | engines: {node: '>= 0.4'} 450 | dependencies: 451 | call-bind: 1.0.2 452 | define-properties: 1.1.3 453 | es-abstract: 1.19.1 454 | dev: true 455 | 456 | /string.prototype.trimend/1.0.4: 457 | resolution: {integrity: sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==} 458 | dependencies: 459 | call-bind: 1.0.2 460 | define-properties: 1.1.3 461 | dev: true 462 | 463 | /string.prototype.trimstart/1.0.4: 464 | resolution: {integrity: sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==} 465 | dependencies: 466 | call-bind: 1.0.2 467 | define-properties: 1.1.3 468 | dev: true 469 | 470 | /strip-bom/3.0.0: 471 | resolution: {integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=} 472 | engines: {node: '>=4'} 473 | dev: true 474 | 475 | /supports-color/5.5.0: 476 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 477 | engines: {node: '>=4'} 478 | dependencies: 479 | has-flag: 3.0.0 480 | dev: true 481 | 482 | /unbox-primitive/1.0.1: 483 | resolution: {integrity: sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==} 484 | dependencies: 485 | function-bind: 1.1.1 486 | has-bigints: 1.0.1 487 | has-symbols: 1.0.2 488 | which-boxed-primitive: 1.0.2 489 | dev: true 490 | 491 | /validate-npm-package-license/3.0.4: 492 | resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} 493 | dependencies: 494 | spdx-correct: 3.1.1 495 | spdx-expression-parse: 3.0.1 496 | dev: true 497 | 498 | /which-boxed-primitive/1.0.2: 499 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} 500 | dependencies: 501 | is-bigint: 1.0.4 502 | is-boolean-object: 1.1.2 503 | is-number-object: 1.0.6 504 | is-string: 1.0.7 505 | is-symbol: 1.0.4 506 | dev: true 507 | 508 | /which/1.3.1: 509 | resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} 510 | hasBin: true 511 | dependencies: 512 | isexe: 2.0.0 513 | dev: true 514 | -------------------------------------------------------------------------------- /server/pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.3 2 | 3 | specifiers: 4 | '@types/node': ^16.10.2 5 | better-sqlite3: ^7.4.3 6 | cross-env: ^7.0.3 7 | dayjs: ^1.10.6 8 | dotenv: ^10.0.0 9 | esno: ^0.9.1 10 | jsonwebtoken: ^8.5.1 11 | kcors: ^2.2.2 12 | koa: ^2.13.1 13 | koa-body: ^4.2.0 14 | koa-bodyparser: ^4.3.0 15 | koa-router: ^10.1.1 16 | log4js: ^6.3.0 17 | nodemon: ^2.0.12 18 | ts-node: ^10.2.1 19 | tsup: ^4.14.0 20 | typescript: ^4.4.2 21 | 22 | dependencies: 23 | better-sqlite3: 7.4.3 24 | dayjs: 1.10.7 25 | dotenv: 10.0.0 26 | kcors: 2.2.2 27 | koa: 2.13.3 28 | koa-body: 4.2.0 29 | koa-bodyparser: 4.3.0 30 | koa-router: 10.1.1 31 | log4js: 6.3.0 32 | 33 | devDependencies: 34 | '@types/node': 16.10.3 35 | cross-env: 7.0.3 36 | esno: 0.9.1 37 | jsonwebtoken: 8.5.1 38 | nodemon: 2.0.13 39 | ts-node: 10.2.1_8304ecd715830f7c190b4d1dea90b100 40 | tsup: 4.14.0_ts-node@10.2.1+typescript@4.4.3 41 | typescript: 4.4.3 42 | 43 | packages: 44 | 45 | /@cspotcode/source-map-consumer/0.8.0: 46 | resolution: {integrity: sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==} 47 | engines: {node: '>= 12'} 48 | dev: true 49 | 50 | /@cspotcode/source-map-support/0.6.1: 51 | resolution: {integrity: sha512-DX3Z+T5dt1ockmPdobJS/FAsQPW4V4SrWEhD2iYQT2Cb2tQsiMnYxrcUH9By/Z3B+v0S5LMBkQtV/XOBbpLEOg==} 52 | engines: {node: '>=12'} 53 | dependencies: 54 | '@cspotcode/source-map-consumer': 0.8.0 55 | dev: true 56 | 57 | /@nodelib/fs.scandir/2.1.5: 58 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 59 | engines: {node: '>= 8'} 60 | dependencies: 61 | '@nodelib/fs.stat': 2.0.5 62 | run-parallel: 1.2.0 63 | dev: true 64 | 65 | /@nodelib/fs.stat/2.0.5: 66 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 67 | engines: {node: '>= 8'} 68 | dev: true 69 | 70 | /@nodelib/fs.walk/1.2.8: 71 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 72 | engines: {node: '>= 8'} 73 | dependencies: 74 | '@nodelib/fs.scandir': 2.1.5 75 | fastq: 1.13.0 76 | dev: true 77 | 78 | /@sindresorhus/is/0.14.0: 79 | resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} 80 | engines: {node: '>=6'} 81 | dev: true 82 | 83 | /@szmarczak/http-timer/1.1.2: 84 | resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} 85 | engines: {node: '>=6'} 86 | dependencies: 87 | defer-to-connect: 1.1.3 88 | dev: true 89 | 90 | /@tsconfig/node10/1.0.8: 91 | resolution: {integrity: sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==} 92 | dev: true 93 | 94 | /@tsconfig/node12/1.0.9: 95 | resolution: {integrity: sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==} 96 | dev: true 97 | 98 | /@tsconfig/node14/1.0.1: 99 | resolution: {integrity: sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==} 100 | dev: true 101 | 102 | /@tsconfig/node16/1.0.2: 103 | resolution: {integrity: sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==} 104 | dev: true 105 | 106 | /@types/formidable/1.2.4: 107 | resolution: {integrity: sha512-Z+ICLPV/BPYK5pHYDryNKRk26etA9WCicg620XZM0Uqto5gOv6XySMIlXQ3Ae6V3tS7CZNpE8UdHuuxOZxWVfw==} 108 | dependencies: 109 | '@types/node': 16.10.9 110 | dev: false 111 | 112 | /@types/node/16.10.3: 113 | resolution: {integrity: sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==} 114 | dev: true 115 | 116 | /@types/node/16.10.9: 117 | resolution: {integrity: sha512-H9ReOt+yqIJPCutkTYjFjlyK6WEMQYT9hLZMlWtOjFQY2ItppsWZ6RJf8Aw+jz5qTYceuHvFgPIaKOHtLAEWBw==} 118 | dev: false 119 | 120 | /abbrev/1.1.1: 121 | resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} 122 | dev: true 123 | 124 | /accepts/1.3.7: 125 | resolution: {integrity: sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==} 126 | engines: {node: '>= 0.6'} 127 | dependencies: 128 | mime-types: 2.1.33 129 | negotiator: 0.6.2 130 | dev: false 131 | 132 | /acorn-walk/8.2.0: 133 | resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} 134 | engines: {node: '>=0.4.0'} 135 | dev: true 136 | 137 | /acorn/8.5.0: 138 | resolution: {integrity: sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==} 139 | engines: {node: '>=0.4.0'} 140 | hasBin: true 141 | dev: true 142 | 143 | /ansi-align/3.0.1: 144 | resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} 145 | dependencies: 146 | string-width: 4.2.3 147 | dev: true 148 | 149 | /ansi-regex/2.1.1: 150 | resolution: {integrity: sha1-w7M6te42DYbg5ijwRorn7yfWVN8=} 151 | engines: {node: '>=0.10.0'} 152 | dev: false 153 | 154 | /ansi-regex/5.0.1: 155 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 156 | engines: {node: '>=8'} 157 | dev: true 158 | 159 | /ansi-styles/4.3.0: 160 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 161 | engines: {node: '>=8'} 162 | dependencies: 163 | color-convert: 2.0.1 164 | dev: true 165 | 166 | /any-promise/1.3.0: 167 | resolution: {integrity: sha1-q8av7tzqUugJzcA3au0845Y10X8=} 168 | dev: true 169 | 170 | /anymatch/3.1.2: 171 | resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} 172 | engines: {node: '>= 8'} 173 | dependencies: 174 | normalize-path: 3.0.0 175 | picomatch: 2.3.0 176 | dev: true 177 | 178 | /aproba/1.2.0: 179 | resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==} 180 | dev: false 181 | 182 | /are-we-there-yet/1.1.7: 183 | resolution: {integrity: sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==} 184 | dependencies: 185 | delegates: 1.0.0 186 | readable-stream: 2.3.7 187 | dev: false 188 | 189 | /arg/4.1.3: 190 | resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} 191 | dev: true 192 | 193 | /array-union/2.1.0: 194 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 195 | engines: {node: '>=8'} 196 | dev: true 197 | 198 | /balanced-match/1.0.2: 199 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 200 | dev: true 201 | 202 | /base64-js/1.5.1: 203 | resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 204 | dev: false 205 | 206 | /better-sqlite3/7.4.3: 207 | resolution: {integrity: sha512-07bKjClZg/f4KMVRkzWtoIvazVPcF1gsvVKVIXlxwleC2DxuIhnra3KCMlUT1rFeRYXXckot2a46UciF2d9KLw==} 208 | requiresBuild: true 209 | dependencies: 210 | bindings: 1.5.0 211 | prebuild-install: 6.1.4 212 | tar: 6.1.11 213 | dev: false 214 | 215 | /binary-extensions/2.2.0: 216 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 217 | engines: {node: '>=8'} 218 | dev: true 219 | 220 | /bindings/1.5.0: 221 | resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} 222 | dependencies: 223 | file-uri-to-path: 1.0.0 224 | dev: false 225 | 226 | /bl/4.1.0: 227 | resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} 228 | dependencies: 229 | buffer: 5.7.1 230 | inherits: 2.0.4 231 | readable-stream: 3.6.0 232 | dev: false 233 | 234 | /boxen/5.1.2: 235 | resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} 236 | engines: {node: '>=10'} 237 | dependencies: 238 | ansi-align: 3.0.1 239 | camelcase: 6.2.0 240 | chalk: 4.1.2 241 | cli-boxes: 2.2.1 242 | string-width: 4.2.3 243 | type-fest: 0.20.2 244 | widest-line: 3.1.0 245 | wrap-ansi: 7.0.0 246 | dev: true 247 | 248 | /brace-expansion/1.1.11: 249 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 250 | dependencies: 251 | balanced-match: 1.0.2 252 | concat-map: 0.0.1 253 | dev: true 254 | 255 | /braces/3.0.2: 256 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 257 | engines: {node: '>=8'} 258 | dependencies: 259 | fill-range: 7.0.1 260 | dev: true 261 | 262 | /buffer-equal-constant-time/1.0.1: 263 | resolution: {integrity: sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=} 264 | dev: true 265 | 266 | /buffer/5.7.1: 267 | resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} 268 | dependencies: 269 | base64-js: 1.5.1 270 | ieee754: 1.2.1 271 | dev: false 272 | 273 | /bytes/3.1.0: 274 | resolution: {integrity: sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==} 275 | engines: {node: '>= 0.8'} 276 | dev: false 277 | 278 | /cac/6.7.8: 279 | resolution: {integrity: sha512-EozC0vCN4aX3LbcVAzN0tW0qKeDFDXZ74xIAfCviLP2B6yzWPMaYLlMP0EHi2oZKvNqRgY35bOKQtWc5xQ0dDA==} 280 | engines: {node: '>=8'} 281 | dev: true 282 | 283 | /cache-content-type/1.0.1: 284 | resolution: {integrity: sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==} 285 | engines: {node: '>= 6.0.0'} 286 | dependencies: 287 | mime-types: 2.1.33 288 | ylru: 1.2.1 289 | dev: false 290 | 291 | /cacheable-request/6.1.0: 292 | resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==} 293 | engines: {node: '>=8'} 294 | dependencies: 295 | clone-response: 1.0.2 296 | get-stream: 5.2.0 297 | http-cache-semantics: 4.1.0 298 | keyv: 3.1.0 299 | lowercase-keys: 2.0.0 300 | normalize-url: 4.5.1 301 | responselike: 1.0.2 302 | dev: true 303 | 304 | /call-bind/1.0.2: 305 | resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} 306 | dependencies: 307 | function-bind: 1.1.1 308 | get-intrinsic: 1.1.1 309 | dev: false 310 | 311 | /camelcase/6.2.0: 312 | resolution: {integrity: sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==} 313 | engines: {node: '>=10'} 314 | dev: true 315 | 316 | /chalk/4.1.2: 317 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 318 | engines: {node: '>=10'} 319 | dependencies: 320 | ansi-styles: 4.3.0 321 | supports-color: 7.2.0 322 | dev: true 323 | 324 | /chokidar/3.5.2: 325 | resolution: {integrity: sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==} 326 | engines: {node: '>= 8.10.0'} 327 | dependencies: 328 | anymatch: 3.1.2 329 | braces: 3.0.2 330 | glob-parent: 5.1.2 331 | is-binary-path: 2.1.0 332 | is-glob: 4.0.3 333 | normalize-path: 3.0.0 334 | readdirp: 3.6.0 335 | optionalDependencies: 336 | fsevents: 2.3.2 337 | dev: true 338 | 339 | /chownr/1.1.4: 340 | resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} 341 | dev: false 342 | 343 | /chownr/2.0.0: 344 | resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} 345 | engines: {node: '>=10'} 346 | dev: false 347 | 348 | /ci-info/2.0.0: 349 | resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} 350 | dev: true 351 | 352 | /cli-boxes/2.2.1: 353 | resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} 354 | engines: {node: '>=6'} 355 | dev: true 356 | 357 | /clone-response/1.0.2: 358 | resolution: {integrity: sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=} 359 | dependencies: 360 | mimic-response: 1.0.1 361 | dev: true 362 | 363 | /co-body/5.2.0: 364 | resolution: {integrity: sha512-sX/LQ7LqUhgyaxzbe7IqwPeTr2yfpfUIQ/dgpKo6ZI4y4lpQA0YxAomWIY+7I7rHWcG02PG+OuPREzMW/5tszQ==} 365 | dependencies: 366 | inflation: 2.0.0 367 | qs: 6.10.1 368 | raw-body: 2.4.1 369 | type-is: 1.6.18 370 | dev: false 371 | 372 | /co-body/6.1.0: 373 | resolution: {integrity: sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==} 374 | dependencies: 375 | inflation: 2.0.0 376 | qs: 6.10.1 377 | raw-body: 2.4.1 378 | type-is: 1.6.18 379 | dev: false 380 | 381 | /co/4.6.0: 382 | resolution: {integrity: sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=} 383 | engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} 384 | dev: false 385 | 386 | /code-point-at/1.1.0: 387 | resolution: {integrity: sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=} 388 | engines: {node: '>=0.10.0'} 389 | dev: false 390 | 391 | /color-convert/2.0.1: 392 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 393 | engines: {node: '>=7.0.0'} 394 | dependencies: 395 | color-name: 1.1.4 396 | dev: true 397 | 398 | /color-name/1.1.4: 399 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 400 | dev: true 401 | 402 | /commander/4.1.1: 403 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 404 | engines: {node: '>= 6'} 405 | dev: true 406 | 407 | /concat-map/0.0.1: 408 | resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} 409 | dev: true 410 | 411 | /configstore/5.0.1: 412 | resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==} 413 | engines: {node: '>=8'} 414 | dependencies: 415 | dot-prop: 5.3.0 416 | graceful-fs: 4.2.8 417 | make-dir: 3.1.0 418 | unique-string: 2.0.0 419 | write-file-atomic: 3.0.3 420 | xdg-basedir: 4.0.0 421 | dev: true 422 | 423 | /console-control-strings/1.1.0: 424 | resolution: {integrity: sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=} 425 | dev: false 426 | 427 | /content-disposition/0.5.3: 428 | resolution: {integrity: sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==} 429 | engines: {node: '>= 0.6'} 430 | dependencies: 431 | safe-buffer: 5.1.2 432 | dev: false 433 | 434 | /content-type/1.0.4: 435 | resolution: {integrity: sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==} 436 | engines: {node: '>= 0.6'} 437 | dev: false 438 | 439 | /cookies/0.8.0: 440 | resolution: {integrity: sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==} 441 | engines: {node: '>= 0.8'} 442 | dependencies: 443 | depd: 2.0.0 444 | keygrip: 1.1.0 445 | dev: false 446 | 447 | /copy-to/2.0.1: 448 | resolution: {integrity: sha1-JoD7uAaKSNCGVrYJgJK9r8kG9KU=} 449 | dev: false 450 | 451 | /core-util-is/1.0.3: 452 | resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} 453 | dev: false 454 | 455 | /create-require/1.1.1: 456 | resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} 457 | dev: true 458 | 459 | /cross-env/7.0.3: 460 | resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} 461 | engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} 462 | hasBin: true 463 | dependencies: 464 | cross-spawn: 7.0.3 465 | dev: true 466 | 467 | /cross-spawn/7.0.3: 468 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 469 | engines: {node: '>= 8'} 470 | dependencies: 471 | path-key: 3.1.1 472 | shebang-command: 2.0.0 473 | which: 2.0.2 474 | dev: true 475 | 476 | /crypto-random-string/2.0.0: 477 | resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} 478 | engines: {node: '>=8'} 479 | dev: true 480 | 481 | /date-format/2.1.0: 482 | resolution: {integrity: sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==} 483 | engines: {node: '>=4.0'} 484 | dev: false 485 | 486 | /date-format/3.0.0: 487 | resolution: {integrity: sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==} 488 | engines: {node: '>=4.0'} 489 | dev: false 490 | 491 | /dayjs/1.10.7: 492 | resolution: {integrity: sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==} 493 | dev: false 494 | 495 | /debug/2.6.9: 496 | resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} 497 | dependencies: 498 | ms: 2.0.0 499 | dev: true 500 | 501 | /debug/3.2.7: 502 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} 503 | dependencies: 504 | ms: 2.1.3 505 | dev: true 506 | 507 | /debug/4.3.2: 508 | resolution: {integrity: sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==} 509 | engines: {node: '>=6.0'} 510 | peerDependencies: 511 | supports-color: '*' 512 | peerDependenciesMeta: 513 | supports-color: 514 | optional: true 515 | dependencies: 516 | ms: 2.1.2 517 | 518 | /decompress-response/3.3.0: 519 | resolution: {integrity: sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=} 520 | engines: {node: '>=4'} 521 | dependencies: 522 | mimic-response: 1.0.1 523 | dev: true 524 | 525 | /decompress-response/4.2.1: 526 | resolution: {integrity: sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==} 527 | engines: {node: '>=8'} 528 | dependencies: 529 | mimic-response: 2.1.0 530 | dev: false 531 | 532 | /deep-equal/1.0.1: 533 | resolution: {integrity: sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=} 534 | dev: false 535 | 536 | /deep-extend/0.6.0: 537 | resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} 538 | engines: {node: '>=4.0.0'} 539 | 540 | /defer-to-connect/1.1.3: 541 | resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==} 542 | dev: true 543 | 544 | /delegates/1.0.0: 545 | resolution: {integrity: sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=} 546 | dev: false 547 | 548 | /depd/1.1.2: 549 | resolution: {integrity: sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=} 550 | engines: {node: '>= 0.6'} 551 | dev: false 552 | 553 | /depd/2.0.0: 554 | resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} 555 | engines: {node: '>= 0.8'} 556 | dev: false 557 | 558 | /destroy/1.0.4: 559 | resolution: {integrity: sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=} 560 | dev: false 561 | 562 | /detect-libc/1.0.3: 563 | resolution: {integrity: sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=} 564 | engines: {node: '>=0.10'} 565 | hasBin: true 566 | dev: false 567 | 568 | /diff/4.0.2: 569 | resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} 570 | engines: {node: '>=0.3.1'} 571 | dev: true 572 | 573 | /dir-glob/3.0.1: 574 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 575 | engines: {node: '>=8'} 576 | dependencies: 577 | path-type: 4.0.0 578 | dev: true 579 | 580 | /dot-prop/5.3.0: 581 | resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} 582 | engines: {node: '>=8'} 583 | dependencies: 584 | is-obj: 2.0.0 585 | dev: true 586 | 587 | /dotenv/10.0.0: 588 | resolution: {integrity: sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==} 589 | engines: {node: '>=10'} 590 | dev: false 591 | 592 | /duplexer3/0.1.4: 593 | resolution: {integrity: sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=} 594 | dev: true 595 | 596 | /ecdsa-sig-formatter/1.0.11: 597 | resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} 598 | dependencies: 599 | safe-buffer: 5.2.1 600 | dev: true 601 | 602 | /ee-first/1.1.1: 603 | resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=} 604 | dev: false 605 | 606 | /emoji-regex/8.0.0: 607 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 608 | dev: true 609 | 610 | /encodeurl/1.0.2: 611 | resolution: {integrity: sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=} 612 | engines: {node: '>= 0.8'} 613 | dev: false 614 | 615 | /end-of-stream/1.4.4: 616 | resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} 617 | dependencies: 618 | once: 1.4.0 619 | 620 | /esbuild-android-arm64/0.13.4: 621 | resolution: {integrity: sha512-elDJt+jNyoHFId0/dKsuVYUPke3EcquIyUwzJCH17a3ERglN3A9aMBI5zbz+xNZ+FbaDNdpn0RaJHCFLbZX+fA==} 622 | cpu: [arm64] 623 | os: [android] 624 | requiresBuild: true 625 | dev: true 626 | optional: true 627 | 628 | /esbuild-darwin-64/0.13.4: 629 | resolution: {integrity: sha512-zJQGyHRAdZUXlRzbN7W+7ykmEiGC+bq3Gc4GxKYjjWTgDRSEly98ym+vRNkDjXwXYD3gGzSwvH35+MiHAtWvLA==} 630 | cpu: [x64] 631 | os: [darwin] 632 | requiresBuild: true 633 | dev: true 634 | optional: true 635 | 636 | /esbuild-darwin-arm64/0.13.4: 637 | resolution: {integrity: sha512-r8oYvAtqSGq8HNTZCAx4TdLE7jZiGhX9ooGi5AQAey37MA6XNaP8ZNlw9OCpcgpx3ryU2WctXwIqPzkHO7a8dg==} 638 | cpu: [arm64] 639 | os: [darwin] 640 | requiresBuild: true 641 | dev: true 642 | optional: true 643 | 644 | /esbuild-freebsd-64/0.13.4: 645 | resolution: {integrity: sha512-u9DRGkn09EN8+lCh6z7FKle7awi17PJRBuAKdRNgSo5ZrH/3m+mYaJK2PR2URHMpAfXiwJX341z231tSdVe3Yw==} 646 | cpu: [x64] 647 | os: [freebsd] 648 | requiresBuild: true 649 | dev: true 650 | optional: true 651 | 652 | /esbuild-freebsd-arm64/0.13.4: 653 | resolution: {integrity: sha512-q3B2k68Uf6gfjATjcK16DqxvjqRQkHL8aPoOfj4op+lSqegdXvBacB1d8jw8PxbWJ8JHpdTLdAVUYU80kotQXA==} 654 | cpu: [arm64] 655 | os: [freebsd] 656 | requiresBuild: true 657 | dev: true 658 | optional: true 659 | 660 | /esbuild-linux-32/0.13.4: 661 | resolution: {integrity: sha512-UUYJPHSiKAO8KoN3Ls/iZtgDLZvK5HarES96aolDPWZnq9FLx4dIHM/x2z4Rxv9IYqQ/DxlPoE2Co1UPBIYYeA==} 662 | cpu: [ia32] 663 | os: [linux] 664 | requiresBuild: true 665 | dev: true 666 | optional: true 667 | 668 | /esbuild-linux-64/0.13.4: 669 | resolution: {integrity: sha512-+RnohAKiiUW4UHLGRkNR1AnENW1gCuDWuygEtd4jxTNPIoeC7lbXGor7rtgjj9AdUzFgOEvAXyNNX01kJ8NueQ==} 670 | cpu: [x64] 671 | os: [linux] 672 | requiresBuild: true 673 | dev: true 674 | optional: true 675 | 676 | /esbuild-linux-arm/0.13.4: 677 | resolution: {integrity: sha512-BH5gKve4jglS7UPSsfwHSX79I5agC/lm4eKoRUEyo8lwQs89frQSRp2Xup+6SFQnxt3md5EsKcd2Dbkqeb3gPA==} 678 | cpu: [arm] 679 | os: [linux] 680 | requiresBuild: true 681 | dev: true 682 | optional: true 683 | 684 | /esbuild-linux-arm64/0.13.4: 685 | resolution: {integrity: sha512-+A188cAdd6QuSRxMIwRrWLjgphQA0LDAQ/ECVlrPVJwnx+1i64NjDZivoqPYLOTkSPIKntiWwMhhf0U5/RrPHQ==} 686 | cpu: [arm64] 687 | os: [linux] 688 | requiresBuild: true 689 | dev: true 690 | optional: true 691 | 692 | /esbuild-linux-mips64le/0.13.4: 693 | resolution: {integrity: sha512-0xkwtPaUkG5xMTFGaQPe1AadSe5QAiQuD4Gix1O9k5Xo/U8xGIkw9UFUTvfEUeu71vFb6ZgsIacfP1NLoFjWNw==} 694 | cpu: [mips64el] 695 | os: [linux] 696 | requiresBuild: true 697 | dev: true 698 | optional: true 699 | 700 | /esbuild-linux-ppc64le/0.13.4: 701 | resolution: {integrity: sha512-E1+oJPP7A+j23GPo3CEpBhGwG1bni4B8IbTA3/3rvzjURwUMZdcN3Fhrz24rnjzdLSHmULtOE4VsbT42h1Om4Q==} 702 | cpu: [ppc64] 703 | os: [linux] 704 | requiresBuild: true 705 | dev: true 706 | optional: true 707 | 708 | /esbuild-node-loader/0.3.2: 709 | resolution: {integrity: sha512-4Y6sTwvB5pH+A7gmpd/xzyPkOZC4nmEWRoGBi4BQoE0DhZvrrzHqSmT+jb4x7m1rwv4BCuNbajN13LN8D0PGoA==} 710 | dependencies: 711 | esbuild: 0.13.4 712 | dev: true 713 | 714 | /esbuild-openbsd-64/0.13.4: 715 | resolution: {integrity: sha512-xEkI1o5HYxDzbv9jSox0EsDxpwraG09SRiKKv0W8pH6O3bt+zPSlnoK7+I7Q69tkvONkpIq5n2o+c55uq0X7cw==} 716 | cpu: [x64] 717 | os: [openbsd] 718 | requiresBuild: true 719 | dev: true 720 | optional: true 721 | 722 | /esbuild-register/3.0.0_esbuild@0.12.29: 723 | resolution: {integrity: sha512-No7U3ZUd6gPrrC6gqdb3XFcf2lNqzn8nvQXcgcyOl8szMVuN6YUvOplnmakxWyogI9d8SiJMl0uzBzJck+Aoxw==} 724 | peerDependencies: 725 | esbuild: '>=0.12 <1' 726 | dependencies: 727 | esbuild: 0.12.29 728 | jsonc-parser: 3.0.0 729 | dev: true 730 | 731 | /esbuild-sunos-64/0.13.4: 732 | resolution: {integrity: sha512-bjXUMcODMnB6hQicLBBmmnBl7OMDyVpFahKvHGXJfDChIi5udiIRKCmFUFIRn+AUAKVlfrofRKdyPC7kBsbvGQ==} 733 | cpu: [x64] 734 | os: [sunos] 735 | requiresBuild: true 736 | dev: true 737 | optional: true 738 | 739 | /esbuild-windows-32/0.13.4: 740 | resolution: {integrity: sha512-z4CH07pfyVY0XF98TCsGmLxKCl0kyvshKDbdpTekW9f2d+dJqn5mmoUyWhpSVJ0SfYWJg86FoD9nMbbaMVyGdg==} 741 | cpu: [ia32] 742 | os: [win32] 743 | requiresBuild: true 744 | dev: true 745 | optional: true 746 | 747 | /esbuild-windows-64/0.13.4: 748 | resolution: {integrity: sha512-uVL11vORRPjocGLYam67rwFLd0LvkrHEs+JG+1oJN4UD9MQmNGZPa4gBHo6hDpF+kqRJ9kXgQSeDqUyRy0tj/Q==} 749 | cpu: [x64] 750 | os: [win32] 751 | requiresBuild: true 752 | dev: true 753 | optional: true 754 | 755 | /esbuild-windows-arm64/0.13.4: 756 | resolution: {integrity: sha512-vA6GLvptgftRcDcWngD5cMlL4f4LbL8JjU2UMT9yJ0MT5ra6hdZNFWnOeOoEtY4GtJ6OjZ0i+81sTqhAB0fMkg==} 757 | cpu: [arm64] 758 | os: [win32] 759 | requiresBuild: true 760 | dev: true 761 | optional: true 762 | 763 | /esbuild/0.12.29: 764 | resolution: {integrity: sha512-w/XuoBCSwepyiZtIRsKsetiLDUVGPVw1E/R3VTFSecIy8UR7Cq3SOtwKHJMFoVqqVG36aGkzh4e8BvpO1Fdc7g==} 765 | hasBin: true 766 | requiresBuild: true 767 | dev: true 768 | 769 | /esbuild/0.13.4: 770 | resolution: {integrity: sha512-wMA5eUwpavTBiNl+It6j8OQuKVh69l6z4DKDLzoTIqC+gChnPpcmqdA8WNHptUHRnfyML+mKEQPlW7Mybj8gHg==} 771 | hasBin: true 772 | requiresBuild: true 773 | optionalDependencies: 774 | esbuild-android-arm64: 0.13.4 775 | esbuild-darwin-64: 0.13.4 776 | esbuild-darwin-arm64: 0.13.4 777 | esbuild-freebsd-64: 0.13.4 778 | esbuild-freebsd-arm64: 0.13.4 779 | esbuild-linux-32: 0.13.4 780 | esbuild-linux-64: 0.13.4 781 | esbuild-linux-arm: 0.13.4 782 | esbuild-linux-arm64: 0.13.4 783 | esbuild-linux-mips64le: 0.13.4 784 | esbuild-linux-ppc64le: 0.13.4 785 | esbuild-openbsd-64: 0.13.4 786 | esbuild-sunos-64: 0.13.4 787 | esbuild-windows-32: 0.13.4 788 | esbuild-windows-64: 0.13.4 789 | esbuild-windows-arm64: 0.13.4 790 | dev: true 791 | 792 | /escape-goat/2.1.1: 793 | resolution: {integrity: sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==} 794 | engines: {node: '>=8'} 795 | dev: true 796 | 797 | /escape-html/1.0.3: 798 | resolution: {integrity: sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=} 799 | dev: false 800 | 801 | /esno/0.9.1: 802 | resolution: {integrity: sha512-3pnZ7fI0+8R7kJSTwuOfzAvXNXun7eaZsTSE5avkNRrxTokq3Jm32gaah3Zgl5opHQ1K9SJasoQQySzmfN8alw==} 803 | hasBin: true 804 | dependencies: 805 | cross-spawn: 7.0.3 806 | esbuild: 0.12.29 807 | esbuild-node-loader: 0.3.2 808 | esbuild-register: 3.0.0_esbuild@0.12.29 809 | dev: true 810 | 811 | /execa/5.1.1: 812 | resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} 813 | engines: {node: '>=10'} 814 | dependencies: 815 | cross-spawn: 7.0.3 816 | get-stream: 6.0.1 817 | human-signals: 2.1.0 818 | is-stream: 2.0.1 819 | merge-stream: 2.0.0 820 | npm-run-path: 4.0.1 821 | onetime: 5.1.2 822 | signal-exit: 3.0.5 823 | strip-final-newline: 2.0.0 824 | dev: true 825 | 826 | /expand-template/2.0.3: 827 | resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} 828 | engines: {node: '>=6'} 829 | dev: false 830 | 831 | /fast-glob/3.2.7: 832 | resolution: {integrity: sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==} 833 | engines: {node: '>=8'} 834 | dependencies: 835 | '@nodelib/fs.stat': 2.0.5 836 | '@nodelib/fs.walk': 1.2.8 837 | glob-parent: 5.1.2 838 | merge2: 1.4.1 839 | micromatch: 4.0.4 840 | dev: true 841 | 842 | /fastq/1.13.0: 843 | resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} 844 | dependencies: 845 | reusify: 1.0.4 846 | dev: true 847 | 848 | /file-uri-to-path/1.0.0: 849 | resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} 850 | dev: false 851 | 852 | /fill-range/7.0.1: 853 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 854 | engines: {node: '>=8'} 855 | dependencies: 856 | to-regex-range: 5.0.1 857 | dev: true 858 | 859 | /flatted/2.0.2: 860 | resolution: {integrity: sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==} 861 | dev: false 862 | 863 | /formidable/1.2.2: 864 | resolution: {integrity: sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q==} 865 | dev: false 866 | 867 | /fresh/0.5.2: 868 | resolution: {integrity: sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=} 869 | engines: {node: '>= 0.6'} 870 | dev: false 871 | 872 | /fs-constants/1.0.0: 873 | resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} 874 | dev: false 875 | 876 | /fs-extra/8.1.0: 877 | resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} 878 | engines: {node: '>=6 <7 || >=8'} 879 | dependencies: 880 | graceful-fs: 4.2.8 881 | jsonfile: 4.0.0 882 | universalify: 0.1.2 883 | dev: false 884 | 885 | /fs-minipass/2.1.0: 886 | resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} 887 | engines: {node: '>= 8'} 888 | dependencies: 889 | minipass: 3.1.5 890 | dev: false 891 | 892 | /fs.realpath/1.0.0: 893 | resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} 894 | dev: true 895 | 896 | /fsevents/2.3.2: 897 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 898 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 899 | os: [darwin] 900 | requiresBuild: true 901 | dev: true 902 | optional: true 903 | 904 | /function-bind/1.1.1: 905 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 906 | dev: false 907 | 908 | /gauge/2.7.4: 909 | resolution: {integrity: sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=} 910 | dependencies: 911 | aproba: 1.2.0 912 | console-control-strings: 1.1.0 913 | has-unicode: 2.0.1 914 | object-assign: 4.1.1 915 | signal-exit: 3.0.5 916 | string-width: 1.0.2 917 | strip-ansi: 3.0.1 918 | wide-align: 1.1.3 919 | dev: false 920 | 921 | /get-intrinsic/1.1.1: 922 | resolution: {integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==} 923 | dependencies: 924 | function-bind: 1.1.1 925 | has: 1.0.3 926 | has-symbols: 1.0.2 927 | dev: false 928 | 929 | /get-stream/4.1.0: 930 | resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} 931 | engines: {node: '>=6'} 932 | dependencies: 933 | pump: 3.0.0 934 | dev: true 935 | 936 | /get-stream/5.2.0: 937 | resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} 938 | engines: {node: '>=8'} 939 | dependencies: 940 | pump: 3.0.0 941 | dev: true 942 | 943 | /get-stream/6.0.1: 944 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 945 | engines: {node: '>=10'} 946 | dev: true 947 | 948 | /github-from-package/0.0.0: 949 | resolution: {integrity: sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=} 950 | dev: false 951 | 952 | /glob-parent/5.1.2: 953 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 954 | engines: {node: '>= 6'} 955 | dependencies: 956 | is-glob: 4.0.3 957 | dev: true 958 | 959 | /glob/7.1.6: 960 | resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} 961 | dependencies: 962 | fs.realpath: 1.0.0 963 | inflight: 1.0.6 964 | inherits: 2.0.4 965 | minimatch: 3.0.4 966 | once: 1.4.0 967 | path-is-absolute: 1.0.1 968 | dev: true 969 | 970 | /global-dirs/3.0.0: 971 | resolution: {integrity: sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==} 972 | engines: {node: '>=10'} 973 | dependencies: 974 | ini: 2.0.0 975 | dev: true 976 | 977 | /globby/11.0.4: 978 | resolution: {integrity: sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==} 979 | engines: {node: '>=10'} 980 | dependencies: 981 | array-union: 2.1.0 982 | dir-glob: 3.0.1 983 | fast-glob: 3.2.7 984 | ignore: 5.1.8 985 | merge2: 1.4.1 986 | slash: 3.0.0 987 | dev: true 988 | 989 | /got/9.6.0: 990 | resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==} 991 | engines: {node: '>=8.6'} 992 | dependencies: 993 | '@sindresorhus/is': 0.14.0 994 | '@szmarczak/http-timer': 1.1.2 995 | cacheable-request: 6.1.0 996 | decompress-response: 3.3.0 997 | duplexer3: 0.1.4 998 | get-stream: 4.1.0 999 | lowercase-keys: 1.0.1 1000 | mimic-response: 1.0.1 1001 | p-cancelable: 1.1.0 1002 | to-readable-stream: 1.0.0 1003 | url-parse-lax: 3.0.0 1004 | dev: true 1005 | 1006 | /graceful-fs/4.2.8: 1007 | resolution: {integrity: sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==} 1008 | 1009 | /has-flag/3.0.0: 1010 | resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} 1011 | engines: {node: '>=4'} 1012 | dev: true 1013 | 1014 | /has-flag/4.0.0: 1015 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1016 | engines: {node: '>=8'} 1017 | dev: true 1018 | 1019 | /has-symbols/1.0.2: 1020 | resolution: {integrity: sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==} 1021 | engines: {node: '>= 0.4'} 1022 | dev: false 1023 | 1024 | /has-tostringtag/1.0.0: 1025 | resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} 1026 | engines: {node: '>= 0.4'} 1027 | dependencies: 1028 | has-symbols: 1.0.2 1029 | dev: false 1030 | 1031 | /has-unicode/2.0.1: 1032 | resolution: {integrity: sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=} 1033 | dev: false 1034 | 1035 | /has-yarn/2.1.0: 1036 | resolution: {integrity: sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==} 1037 | engines: {node: '>=8'} 1038 | dev: true 1039 | 1040 | /has/1.0.3: 1041 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 1042 | engines: {node: '>= 0.4.0'} 1043 | dependencies: 1044 | function-bind: 1.1.1 1045 | dev: false 1046 | 1047 | /http-assert/1.5.0: 1048 | resolution: {integrity: sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==} 1049 | engines: {node: '>= 0.8'} 1050 | dependencies: 1051 | deep-equal: 1.0.1 1052 | http-errors: 1.8.0 1053 | dev: false 1054 | 1055 | /http-cache-semantics/4.1.0: 1056 | resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==} 1057 | dev: true 1058 | 1059 | /http-errors/1.7.3: 1060 | resolution: {integrity: sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==} 1061 | engines: {node: '>= 0.6'} 1062 | dependencies: 1063 | depd: 1.1.2 1064 | inherits: 2.0.4 1065 | setprototypeof: 1.1.1 1066 | statuses: 1.5.0 1067 | toidentifier: 1.0.0 1068 | dev: false 1069 | 1070 | /http-errors/1.8.0: 1071 | resolution: {integrity: sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==} 1072 | engines: {node: '>= 0.6'} 1073 | dependencies: 1074 | depd: 1.1.2 1075 | inherits: 2.0.4 1076 | setprototypeof: 1.2.0 1077 | statuses: 1.5.0 1078 | toidentifier: 1.0.0 1079 | dev: false 1080 | 1081 | /human-signals/2.1.0: 1082 | resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} 1083 | engines: {node: '>=10.17.0'} 1084 | dev: true 1085 | 1086 | /iconv-lite/0.4.24: 1087 | resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} 1088 | engines: {node: '>=0.10.0'} 1089 | dependencies: 1090 | safer-buffer: 2.1.2 1091 | dev: false 1092 | 1093 | /ieee754/1.2.1: 1094 | resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} 1095 | dev: false 1096 | 1097 | /ignore-by-default/1.0.1: 1098 | resolution: {integrity: sha1-SMptcvbGo68Aqa1K5odr44ieKwk=} 1099 | dev: true 1100 | 1101 | /ignore/5.1.8: 1102 | resolution: {integrity: sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==} 1103 | engines: {node: '>= 4'} 1104 | dev: true 1105 | 1106 | /import-cwd/3.0.0: 1107 | resolution: {integrity: sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==} 1108 | engines: {node: '>=8'} 1109 | dependencies: 1110 | import-from: 3.0.0 1111 | dev: true 1112 | 1113 | /import-from/3.0.0: 1114 | resolution: {integrity: sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==} 1115 | engines: {node: '>=8'} 1116 | dependencies: 1117 | resolve-from: 5.0.0 1118 | dev: true 1119 | 1120 | /import-lazy/2.1.0: 1121 | resolution: {integrity: sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=} 1122 | engines: {node: '>=4'} 1123 | dev: true 1124 | 1125 | /imurmurhash/0.1.4: 1126 | resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=} 1127 | engines: {node: '>=0.8.19'} 1128 | dev: true 1129 | 1130 | /inflation/2.0.0: 1131 | resolution: {integrity: sha1-i0F+R8KPklpFEz2RTKH9OJEH8w8=} 1132 | engines: {node: '>= 0.8.0'} 1133 | dev: false 1134 | 1135 | /inflight/1.0.6: 1136 | resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} 1137 | dependencies: 1138 | once: 1.4.0 1139 | wrappy: 1.0.2 1140 | dev: true 1141 | 1142 | /inherits/2.0.4: 1143 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1144 | 1145 | /ini/1.3.8: 1146 | resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} 1147 | 1148 | /ini/2.0.0: 1149 | resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} 1150 | engines: {node: '>=10'} 1151 | dev: true 1152 | 1153 | /is-binary-path/2.1.0: 1154 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 1155 | engines: {node: '>=8'} 1156 | dependencies: 1157 | binary-extensions: 2.2.0 1158 | dev: true 1159 | 1160 | /is-ci/2.0.0: 1161 | resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} 1162 | hasBin: true 1163 | dependencies: 1164 | ci-info: 2.0.0 1165 | dev: true 1166 | 1167 | /is-extglob/2.1.1: 1168 | resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} 1169 | engines: {node: '>=0.10.0'} 1170 | dev: true 1171 | 1172 | /is-fullwidth-code-point/1.0.0: 1173 | resolution: {integrity: sha1-754xOG8DGn8NZDr4L95QxFfvAMs=} 1174 | engines: {node: '>=0.10.0'} 1175 | dependencies: 1176 | number-is-nan: 1.0.1 1177 | dev: false 1178 | 1179 | /is-fullwidth-code-point/3.0.0: 1180 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1181 | engines: {node: '>=8'} 1182 | dev: true 1183 | 1184 | /is-generator-function/1.0.10: 1185 | resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} 1186 | engines: {node: '>= 0.4'} 1187 | dependencies: 1188 | has-tostringtag: 1.0.0 1189 | dev: false 1190 | 1191 | /is-glob/4.0.3: 1192 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1193 | engines: {node: '>=0.10.0'} 1194 | dependencies: 1195 | is-extglob: 2.1.1 1196 | dev: true 1197 | 1198 | /is-installed-globally/0.4.0: 1199 | resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} 1200 | engines: {node: '>=10'} 1201 | dependencies: 1202 | global-dirs: 3.0.0 1203 | is-path-inside: 3.0.3 1204 | dev: true 1205 | 1206 | /is-npm/5.0.0: 1207 | resolution: {integrity: sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==} 1208 | engines: {node: '>=10'} 1209 | dev: true 1210 | 1211 | /is-number/7.0.0: 1212 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1213 | engines: {node: '>=0.12.0'} 1214 | dev: true 1215 | 1216 | /is-obj/2.0.0: 1217 | resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} 1218 | engines: {node: '>=8'} 1219 | dev: true 1220 | 1221 | /is-path-inside/3.0.3: 1222 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 1223 | engines: {node: '>=8'} 1224 | dev: true 1225 | 1226 | /is-stream/2.0.1: 1227 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} 1228 | engines: {node: '>=8'} 1229 | dev: true 1230 | 1231 | /is-typedarray/1.0.0: 1232 | resolution: {integrity: sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=} 1233 | dev: true 1234 | 1235 | /is-yarn-global/0.3.0: 1236 | resolution: {integrity: sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==} 1237 | dev: true 1238 | 1239 | /isarray/1.0.0: 1240 | resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=} 1241 | dev: false 1242 | 1243 | /isexe/2.0.0: 1244 | resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} 1245 | dev: true 1246 | 1247 | /joycon/3.0.1: 1248 | resolution: {integrity: sha512-SJcJNBg32dGgxhPtM0wQqxqV0ax9k/9TaUskGDSJkSFSQOEWWvQ3zzWdGQRIUry2j1zA5+ReH13t0Mf3StuVZA==} 1249 | engines: {node: '>=10'} 1250 | dev: true 1251 | 1252 | /json-buffer/3.0.0: 1253 | resolution: {integrity: sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=} 1254 | dev: true 1255 | 1256 | /jsonc-parser/3.0.0: 1257 | resolution: {integrity: sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==} 1258 | dev: true 1259 | 1260 | /jsonfile/4.0.0: 1261 | resolution: {integrity: sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=} 1262 | optionalDependencies: 1263 | graceful-fs: 4.2.8 1264 | dev: false 1265 | 1266 | /jsonwebtoken/8.5.1: 1267 | resolution: {integrity: sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==} 1268 | engines: {node: '>=4', npm: '>=1.4.28'} 1269 | dependencies: 1270 | jws: 3.2.2 1271 | lodash.includes: 4.3.0 1272 | lodash.isboolean: 3.0.3 1273 | lodash.isinteger: 4.0.4 1274 | lodash.isnumber: 3.0.3 1275 | lodash.isplainobject: 4.0.6 1276 | lodash.isstring: 4.0.1 1277 | lodash.once: 4.1.1 1278 | ms: 2.1.3 1279 | semver: 5.7.1 1280 | dev: true 1281 | 1282 | /jwa/1.4.1: 1283 | resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} 1284 | dependencies: 1285 | buffer-equal-constant-time: 1.0.1 1286 | ecdsa-sig-formatter: 1.0.11 1287 | safe-buffer: 5.2.1 1288 | dev: true 1289 | 1290 | /jws/3.2.2: 1291 | resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} 1292 | dependencies: 1293 | jwa: 1.4.1 1294 | safe-buffer: 5.2.1 1295 | dev: true 1296 | 1297 | /kcors/2.2.2: 1298 | resolution: {integrity: sha512-rIqbKa2S0gT0wC/790jsQM6hNpABHBNWQ7+XYS1xJV6zOGxlanW+RtCmlDn6wPZsGpRk371yy8abfBgl2OTavg==} 1299 | engines: {node: '>= 6.0.0'} 1300 | dev: false 1301 | 1302 | /keygrip/1.1.0: 1303 | resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==} 1304 | engines: {node: '>= 0.6'} 1305 | dependencies: 1306 | tsscmp: 1.0.6 1307 | dev: false 1308 | 1309 | /keyv/3.1.0: 1310 | resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==} 1311 | dependencies: 1312 | json-buffer: 3.0.0 1313 | dev: true 1314 | 1315 | /koa-body/4.2.0: 1316 | resolution: {integrity: sha512-wdGu7b9amk4Fnk/ytH8GuWwfs4fsB5iNkY8kZPpgQVb04QZSv85T0M8reb+cJmvLE8cjPYvBzRikD3s6qz8OoA==} 1317 | dependencies: 1318 | '@types/formidable': 1.2.4 1319 | co-body: 5.2.0 1320 | formidable: 1.2.2 1321 | dev: false 1322 | 1323 | /koa-bodyparser/4.3.0: 1324 | resolution: {integrity: sha512-uyV8G29KAGwZc4q/0WUAjH+Tsmuv9ImfBUF2oZVyZtaeo0husInagyn/JH85xMSxM0hEk/mbCII5ubLDuqW/Rw==} 1325 | engines: {node: '>=8.0.0'} 1326 | dependencies: 1327 | co-body: 6.1.0 1328 | copy-to: 2.0.1 1329 | dev: false 1330 | 1331 | /koa-compose/4.1.0: 1332 | resolution: {integrity: sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==} 1333 | dev: false 1334 | 1335 | /koa-convert/2.0.0: 1336 | resolution: {integrity: sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==} 1337 | engines: {node: '>= 10'} 1338 | dependencies: 1339 | co: 4.6.0 1340 | koa-compose: 4.1.0 1341 | dev: false 1342 | 1343 | /koa-router/10.1.1: 1344 | resolution: {integrity: sha512-z/OzxVjf5NyuNO3t9nJpx7e1oR3FSBAauiwXtMQu4ppcnuNZzTaQ4p21P8A6r2Es8uJJM339oc4oVW+qX7SqnQ==} 1345 | engines: {node: '>= 8.0.0'} 1346 | dependencies: 1347 | debug: 4.3.2 1348 | http-errors: 1.8.0 1349 | koa-compose: 4.1.0 1350 | methods: 1.1.2 1351 | path-to-regexp: 6.2.0 1352 | transitivePeerDependencies: 1353 | - supports-color 1354 | dev: false 1355 | 1356 | /koa/2.13.3: 1357 | resolution: {integrity: sha512-XhXIoR+ylAwqG3HhXwnMPQAM/4xfywz52OvxZNmxmTWGGHsvmBv4NSIhURha6yMuvEex1WdtplUTHnxnKpQiGw==} 1358 | engines: {node: ^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4} 1359 | dependencies: 1360 | accepts: 1.3.7 1361 | cache-content-type: 1.0.1 1362 | content-disposition: 0.5.3 1363 | content-type: 1.0.4 1364 | cookies: 0.8.0 1365 | debug: 4.3.2 1366 | delegates: 1.0.0 1367 | depd: 2.0.0 1368 | destroy: 1.0.4 1369 | encodeurl: 1.0.2 1370 | escape-html: 1.0.3 1371 | fresh: 0.5.2 1372 | http-assert: 1.5.0 1373 | http-errors: 1.8.0 1374 | is-generator-function: 1.0.10 1375 | koa-compose: 4.1.0 1376 | koa-convert: 2.0.0 1377 | on-finished: 2.3.0 1378 | only: 0.0.2 1379 | parseurl: 1.3.3 1380 | statuses: 1.5.0 1381 | type-is: 1.6.18 1382 | vary: 1.1.2 1383 | transitivePeerDependencies: 1384 | - supports-color 1385 | dev: false 1386 | 1387 | /latest-version/5.1.0: 1388 | resolution: {integrity: sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==} 1389 | engines: {node: '>=8'} 1390 | dependencies: 1391 | package-json: 6.5.0 1392 | dev: true 1393 | 1394 | /lilconfig/2.0.3: 1395 | resolution: {integrity: sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg==} 1396 | engines: {node: '>=10'} 1397 | dev: true 1398 | 1399 | /lines-and-columns/1.1.6: 1400 | resolution: {integrity: sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=} 1401 | dev: true 1402 | 1403 | /lodash.includes/4.3.0: 1404 | resolution: {integrity: sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=} 1405 | dev: true 1406 | 1407 | /lodash.isboolean/3.0.3: 1408 | resolution: {integrity: sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=} 1409 | dev: true 1410 | 1411 | /lodash.isinteger/4.0.4: 1412 | resolution: {integrity: sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=} 1413 | dev: true 1414 | 1415 | /lodash.isnumber/3.0.3: 1416 | resolution: {integrity: sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=} 1417 | dev: true 1418 | 1419 | /lodash.isplainobject/4.0.6: 1420 | resolution: {integrity: sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=} 1421 | dev: true 1422 | 1423 | /lodash.isstring/4.0.1: 1424 | resolution: {integrity: sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=} 1425 | dev: true 1426 | 1427 | /lodash.once/4.1.1: 1428 | resolution: {integrity: sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=} 1429 | dev: true 1430 | 1431 | /log4js/6.3.0: 1432 | resolution: {integrity: sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==} 1433 | engines: {node: '>=8.0'} 1434 | dependencies: 1435 | date-format: 3.0.0 1436 | debug: 4.3.2 1437 | flatted: 2.0.2 1438 | rfdc: 1.3.0 1439 | streamroller: 2.2.4 1440 | transitivePeerDependencies: 1441 | - supports-color 1442 | dev: false 1443 | 1444 | /lowercase-keys/1.0.1: 1445 | resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} 1446 | engines: {node: '>=0.10.0'} 1447 | dev: true 1448 | 1449 | /lowercase-keys/2.0.0: 1450 | resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} 1451 | engines: {node: '>=8'} 1452 | dev: true 1453 | 1454 | /lru-cache/6.0.0: 1455 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 1456 | engines: {node: '>=10'} 1457 | dependencies: 1458 | yallist: 4.0.0 1459 | dev: true 1460 | 1461 | /make-dir/3.1.0: 1462 | resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} 1463 | engines: {node: '>=8'} 1464 | dependencies: 1465 | semver: 6.3.0 1466 | dev: true 1467 | 1468 | /make-error/1.3.6: 1469 | resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} 1470 | dev: true 1471 | 1472 | /media-typer/0.3.0: 1473 | resolution: {integrity: sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=} 1474 | engines: {node: '>= 0.6'} 1475 | dev: false 1476 | 1477 | /merge-stream/2.0.0: 1478 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 1479 | dev: true 1480 | 1481 | /merge2/1.4.1: 1482 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1483 | engines: {node: '>= 8'} 1484 | dev: true 1485 | 1486 | /methods/1.1.2: 1487 | resolution: {integrity: sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=} 1488 | engines: {node: '>= 0.6'} 1489 | dev: false 1490 | 1491 | /micromatch/4.0.4: 1492 | resolution: {integrity: sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==} 1493 | engines: {node: '>=8.6'} 1494 | dependencies: 1495 | braces: 3.0.2 1496 | picomatch: 2.3.0 1497 | dev: true 1498 | 1499 | /mime-db/1.50.0: 1500 | resolution: {integrity: sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==} 1501 | engines: {node: '>= 0.6'} 1502 | dev: false 1503 | 1504 | /mime-types/2.1.33: 1505 | resolution: {integrity: sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==} 1506 | engines: {node: '>= 0.6'} 1507 | dependencies: 1508 | mime-db: 1.50.0 1509 | dev: false 1510 | 1511 | /mimic-fn/2.1.0: 1512 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 1513 | engines: {node: '>=6'} 1514 | dev: true 1515 | 1516 | /mimic-response/1.0.1: 1517 | resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} 1518 | engines: {node: '>=4'} 1519 | dev: true 1520 | 1521 | /mimic-response/2.1.0: 1522 | resolution: {integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==} 1523 | engines: {node: '>=8'} 1524 | dev: false 1525 | 1526 | /minimatch/3.0.4: 1527 | resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} 1528 | dependencies: 1529 | brace-expansion: 1.1.11 1530 | dev: true 1531 | 1532 | /minimist/1.2.5: 1533 | resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==} 1534 | 1535 | /minipass/3.1.5: 1536 | resolution: {integrity: sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==} 1537 | engines: {node: '>=8'} 1538 | dependencies: 1539 | yallist: 4.0.0 1540 | dev: false 1541 | 1542 | /minizlib/2.1.2: 1543 | resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} 1544 | engines: {node: '>= 8'} 1545 | dependencies: 1546 | minipass: 3.1.5 1547 | yallist: 4.0.0 1548 | dev: false 1549 | 1550 | /mkdirp-classic/0.5.3: 1551 | resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} 1552 | dev: false 1553 | 1554 | /mkdirp/1.0.4: 1555 | resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} 1556 | engines: {node: '>=10'} 1557 | hasBin: true 1558 | dev: false 1559 | 1560 | /ms/2.0.0: 1561 | resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=} 1562 | dev: true 1563 | 1564 | /ms/2.1.2: 1565 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1566 | 1567 | /ms/2.1.3: 1568 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1569 | dev: true 1570 | 1571 | /mz/2.7.0: 1572 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 1573 | dependencies: 1574 | any-promise: 1.3.0 1575 | object-assign: 4.1.1 1576 | thenify-all: 1.6.0 1577 | dev: true 1578 | 1579 | /napi-build-utils/1.0.2: 1580 | resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} 1581 | dev: false 1582 | 1583 | /negotiator/0.6.2: 1584 | resolution: {integrity: sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==} 1585 | engines: {node: '>= 0.6'} 1586 | dev: false 1587 | 1588 | /node-abi/2.30.1: 1589 | resolution: {integrity: sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==} 1590 | dependencies: 1591 | semver: 5.7.1 1592 | dev: false 1593 | 1594 | /node-modules-regexp/1.0.0: 1595 | resolution: {integrity: sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=} 1596 | engines: {node: '>=0.10.0'} 1597 | dev: true 1598 | 1599 | /nodemon/2.0.13: 1600 | resolution: {integrity: sha512-UMXMpsZsv1UXUttCn6gv8eQPhn6DR4BW+txnL3IN5IHqrCwcrT/yWHfL35UsClGXknTH79r5xbu+6J1zNHuSyA==} 1601 | engines: {node: '>=8.10.0'} 1602 | hasBin: true 1603 | requiresBuild: true 1604 | dependencies: 1605 | chokidar: 3.5.2 1606 | debug: 3.2.7 1607 | ignore-by-default: 1.0.1 1608 | minimatch: 3.0.4 1609 | pstree.remy: 1.1.8 1610 | semver: 5.7.1 1611 | supports-color: 5.5.0 1612 | touch: 3.1.0 1613 | undefsafe: 2.0.3 1614 | update-notifier: 5.1.0 1615 | dev: true 1616 | 1617 | /nopt/1.0.10: 1618 | resolution: {integrity: sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=} 1619 | hasBin: true 1620 | dependencies: 1621 | abbrev: 1.1.1 1622 | dev: true 1623 | 1624 | /normalize-path/3.0.0: 1625 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1626 | engines: {node: '>=0.10.0'} 1627 | dev: true 1628 | 1629 | /normalize-url/4.5.1: 1630 | resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==} 1631 | engines: {node: '>=8'} 1632 | dev: true 1633 | 1634 | /npm-run-path/4.0.1: 1635 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} 1636 | engines: {node: '>=8'} 1637 | dependencies: 1638 | path-key: 3.1.1 1639 | dev: true 1640 | 1641 | /npmlog/4.1.2: 1642 | resolution: {integrity: sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==} 1643 | dependencies: 1644 | are-we-there-yet: 1.1.7 1645 | console-control-strings: 1.1.0 1646 | gauge: 2.7.4 1647 | set-blocking: 2.0.0 1648 | dev: false 1649 | 1650 | /number-is-nan/1.0.1: 1651 | resolution: {integrity: sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=} 1652 | engines: {node: '>=0.10.0'} 1653 | dev: false 1654 | 1655 | /object-assign/4.1.1: 1656 | resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=} 1657 | engines: {node: '>=0.10.0'} 1658 | 1659 | /object-inspect/1.11.0: 1660 | resolution: {integrity: sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==} 1661 | dev: false 1662 | 1663 | /on-finished/2.3.0: 1664 | resolution: {integrity: sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=} 1665 | engines: {node: '>= 0.8'} 1666 | dependencies: 1667 | ee-first: 1.1.1 1668 | dev: false 1669 | 1670 | /once/1.4.0: 1671 | resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} 1672 | dependencies: 1673 | wrappy: 1.0.2 1674 | 1675 | /onetime/5.1.2: 1676 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 1677 | engines: {node: '>=6'} 1678 | dependencies: 1679 | mimic-fn: 2.1.0 1680 | dev: true 1681 | 1682 | /only/0.0.2: 1683 | resolution: {integrity: sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q=} 1684 | dev: false 1685 | 1686 | /p-cancelable/1.1.0: 1687 | resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==} 1688 | engines: {node: '>=6'} 1689 | dev: true 1690 | 1691 | /package-json/6.5.0: 1692 | resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==} 1693 | engines: {node: '>=8'} 1694 | dependencies: 1695 | got: 9.6.0 1696 | registry-auth-token: 4.2.1 1697 | registry-url: 5.1.0 1698 | semver: 6.3.0 1699 | dev: true 1700 | 1701 | /parseurl/1.3.3: 1702 | resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} 1703 | engines: {node: '>= 0.8'} 1704 | dev: false 1705 | 1706 | /path-is-absolute/1.0.1: 1707 | resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=} 1708 | engines: {node: '>=0.10.0'} 1709 | dev: true 1710 | 1711 | /path-key/3.1.1: 1712 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1713 | engines: {node: '>=8'} 1714 | dev: true 1715 | 1716 | /path-to-regexp/6.2.0: 1717 | resolution: {integrity: sha512-f66KywYG6+43afgE/8j/GoiNyygk/bnoCbps++3ErRKsIYkGGupyv07R2Ok5m9i67Iqc+T2g1eAUGUPzWhYTyg==} 1718 | dev: false 1719 | 1720 | /path-type/4.0.0: 1721 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1722 | engines: {node: '>=8'} 1723 | dev: true 1724 | 1725 | /picomatch/2.3.0: 1726 | resolution: {integrity: sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==} 1727 | engines: {node: '>=8.6'} 1728 | dev: true 1729 | 1730 | /pirates/4.0.1: 1731 | resolution: {integrity: sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==} 1732 | engines: {node: '>= 6'} 1733 | dependencies: 1734 | node-modules-regexp: 1.0.0 1735 | dev: true 1736 | 1737 | /postcss-load-config/3.1.0_ts-node@10.2.1: 1738 | resolution: {integrity: sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g==} 1739 | engines: {node: '>= 10'} 1740 | peerDependencies: 1741 | ts-node: '>=9.0.0' 1742 | peerDependenciesMeta: 1743 | ts-node: 1744 | optional: true 1745 | dependencies: 1746 | import-cwd: 3.0.0 1747 | lilconfig: 2.0.3 1748 | ts-node: 10.2.1_8304ecd715830f7c190b4d1dea90b100 1749 | yaml: 1.10.2 1750 | dev: true 1751 | 1752 | /prebuild-install/6.1.4: 1753 | resolution: {integrity: sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==} 1754 | engines: {node: '>=6'} 1755 | hasBin: true 1756 | dependencies: 1757 | detect-libc: 1.0.3 1758 | expand-template: 2.0.3 1759 | github-from-package: 0.0.0 1760 | minimist: 1.2.5 1761 | mkdirp-classic: 0.5.3 1762 | napi-build-utils: 1.0.2 1763 | node-abi: 2.30.1 1764 | npmlog: 4.1.2 1765 | pump: 3.0.0 1766 | rc: 1.2.8 1767 | simple-get: 3.1.0 1768 | tar-fs: 2.1.1 1769 | tunnel-agent: 0.6.0 1770 | dev: false 1771 | 1772 | /prepend-http/2.0.0: 1773 | resolution: {integrity: sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=} 1774 | engines: {node: '>=4'} 1775 | dev: true 1776 | 1777 | /process-nextick-args/2.0.1: 1778 | resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} 1779 | dev: false 1780 | 1781 | /pstree.remy/1.1.8: 1782 | resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} 1783 | dev: true 1784 | 1785 | /pump/3.0.0: 1786 | resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} 1787 | dependencies: 1788 | end-of-stream: 1.4.4 1789 | once: 1.4.0 1790 | 1791 | /pupa/2.1.1: 1792 | resolution: {integrity: sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==} 1793 | engines: {node: '>=8'} 1794 | dependencies: 1795 | escape-goat: 2.1.1 1796 | dev: true 1797 | 1798 | /qs/6.10.1: 1799 | resolution: {integrity: sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==} 1800 | engines: {node: '>=0.6'} 1801 | dependencies: 1802 | side-channel: 1.0.4 1803 | dev: false 1804 | 1805 | /queue-microtask/1.2.3: 1806 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1807 | dev: true 1808 | 1809 | /raw-body/2.4.1: 1810 | resolution: {integrity: sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==} 1811 | engines: {node: '>= 0.8'} 1812 | dependencies: 1813 | bytes: 3.1.0 1814 | http-errors: 1.7.3 1815 | iconv-lite: 0.4.24 1816 | unpipe: 1.0.0 1817 | dev: false 1818 | 1819 | /rc/1.2.8: 1820 | resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} 1821 | hasBin: true 1822 | dependencies: 1823 | deep-extend: 0.6.0 1824 | ini: 1.3.8 1825 | minimist: 1.2.5 1826 | strip-json-comments: 2.0.1 1827 | 1828 | /readable-stream/2.3.7: 1829 | resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==} 1830 | dependencies: 1831 | core-util-is: 1.0.3 1832 | inherits: 2.0.4 1833 | isarray: 1.0.0 1834 | process-nextick-args: 2.0.1 1835 | safe-buffer: 5.1.2 1836 | string_decoder: 1.1.1 1837 | util-deprecate: 1.0.2 1838 | dev: false 1839 | 1840 | /readable-stream/3.6.0: 1841 | resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==} 1842 | engines: {node: '>= 6'} 1843 | dependencies: 1844 | inherits: 2.0.4 1845 | string_decoder: 1.3.0 1846 | util-deprecate: 1.0.2 1847 | dev: false 1848 | 1849 | /readdirp/3.6.0: 1850 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1851 | engines: {node: '>=8.10.0'} 1852 | dependencies: 1853 | picomatch: 2.3.0 1854 | dev: true 1855 | 1856 | /registry-auth-token/4.2.1: 1857 | resolution: {integrity: sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==} 1858 | engines: {node: '>=6.0.0'} 1859 | dependencies: 1860 | rc: 1.2.8 1861 | dev: true 1862 | 1863 | /registry-url/5.1.0: 1864 | resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==} 1865 | engines: {node: '>=8'} 1866 | dependencies: 1867 | rc: 1.2.8 1868 | dev: true 1869 | 1870 | /resolve-from/5.0.0: 1871 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 1872 | engines: {node: '>=8'} 1873 | dev: true 1874 | 1875 | /responselike/1.0.2: 1876 | resolution: {integrity: sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=} 1877 | dependencies: 1878 | lowercase-keys: 1.0.1 1879 | dev: true 1880 | 1881 | /reusify/1.0.4: 1882 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1883 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1884 | dev: true 1885 | 1886 | /rfdc/1.3.0: 1887 | resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} 1888 | dev: false 1889 | 1890 | /rollup/2.58.0: 1891 | resolution: {integrity: sha512-NOXpusKnaRpbS7ZVSzcEXqxcLDOagN6iFS8p45RkoiMqPHDLwJm758UF05KlMoCRbLBTZsPOIa887gZJ1AiXvw==} 1892 | engines: {node: '>=10.0.0'} 1893 | hasBin: true 1894 | optionalDependencies: 1895 | fsevents: 2.3.2 1896 | dev: true 1897 | 1898 | /run-parallel/1.2.0: 1899 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1900 | dependencies: 1901 | queue-microtask: 1.2.3 1902 | dev: true 1903 | 1904 | /safe-buffer/5.1.2: 1905 | resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} 1906 | dev: false 1907 | 1908 | /safe-buffer/5.2.1: 1909 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 1910 | 1911 | /safer-buffer/2.1.2: 1912 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 1913 | dev: false 1914 | 1915 | /semver-diff/3.1.1: 1916 | resolution: {integrity: sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==} 1917 | engines: {node: '>=8'} 1918 | dependencies: 1919 | semver: 6.3.0 1920 | dev: true 1921 | 1922 | /semver/5.7.1: 1923 | resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} 1924 | hasBin: true 1925 | 1926 | /semver/6.3.0: 1927 | resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} 1928 | hasBin: true 1929 | dev: true 1930 | 1931 | /semver/7.3.5: 1932 | resolution: {integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==} 1933 | engines: {node: '>=10'} 1934 | hasBin: true 1935 | dependencies: 1936 | lru-cache: 6.0.0 1937 | dev: true 1938 | 1939 | /set-blocking/2.0.0: 1940 | resolution: {integrity: sha1-BF+XgtARrppoA93TgrJDkrPYkPc=} 1941 | dev: false 1942 | 1943 | /setprototypeof/1.1.1: 1944 | resolution: {integrity: sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==} 1945 | dev: false 1946 | 1947 | /setprototypeof/1.2.0: 1948 | resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} 1949 | dev: false 1950 | 1951 | /shebang-command/2.0.0: 1952 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1953 | engines: {node: '>=8'} 1954 | dependencies: 1955 | shebang-regex: 3.0.0 1956 | dev: true 1957 | 1958 | /shebang-regex/3.0.0: 1959 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1960 | engines: {node: '>=8'} 1961 | dev: true 1962 | 1963 | /side-channel/1.0.4: 1964 | resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} 1965 | dependencies: 1966 | call-bind: 1.0.2 1967 | get-intrinsic: 1.1.1 1968 | object-inspect: 1.11.0 1969 | dev: false 1970 | 1971 | /signal-exit/3.0.5: 1972 | resolution: {integrity: sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==} 1973 | 1974 | /simple-concat/1.0.1: 1975 | resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} 1976 | dev: false 1977 | 1978 | /simple-get/3.1.0: 1979 | resolution: {integrity: sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==} 1980 | dependencies: 1981 | decompress-response: 4.2.1 1982 | once: 1.4.0 1983 | simple-concat: 1.0.1 1984 | dev: false 1985 | 1986 | /slash/3.0.0: 1987 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 1988 | engines: {node: '>=8'} 1989 | dev: true 1990 | 1991 | /statuses/1.5.0: 1992 | resolution: {integrity: sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=} 1993 | engines: {node: '>= 0.6'} 1994 | dev: false 1995 | 1996 | /streamroller/2.2.4: 1997 | resolution: {integrity: sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==} 1998 | engines: {node: '>=8.0'} 1999 | dependencies: 2000 | date-format: 2.1.0 2001 | debug: 4.3.2 2002 | fs-extra: 8.1.0 2003 | transitivePeerDependencies: 2004 | - supports-color 2005 | dev: false 2006 | 2007 | /string-width/1.0.2: 2008 | resolution: {integrity: sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=} 2009 | engines: {node: '>=0.10.0'} 2010 | dependencies: 2011 | code-point-at: 1.1.0 2012 | is-fullwidth-code-point: 1.0.0 2013 | strip-ansi: 3.0.1 2014 | dev: false 2015 | 2016 | /string-width/4.2.3: 2017 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 2018 | engines: {node: '>=8'} 2019 | dependencies: 2020 | emoji-regex: 8.0.0 2021 | is-fullwidth-code-point: 3.0.0 2022 | strip-ansi: 6.0.1 2023 | dev: true 2024 | 2025 | /string_decoder/1.1.1: 2026 | resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} 2027 | dependencies: 2028 | safe-buffer: 5.1.2 2029 | dev: false 2030 | 2031 | /string_decoder/1.3.0: 2032 | resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} 2033 | dependencies: 2034 | safe-buffer: 5.2.1 2035 | dev: false 2036 | 2037 | /strip-ansi/3.0.1: 2038 | resolution: {integrity: sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=} 2039 | engines: {node: '>=0.10.0'} 2040 | dependencies: 2041 | ansi-regex: 2.1.1 2042 | dev: false 2043 | 2044 | /strip-ansi/6.0.1: 2045 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 2046 | engines: {node: '>=8'} 2047 | dependencies: 2048 | ansi-regex: 5.0.1 2049 | dev: true 2050 | 2051 | /strip-final-newline/2.0.0: 2052 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} 2053 | engines: {node: '>=6'} 2054 | dev: true 2055 | 2056 | /strip-json-comments/2.0.1: 2057 | resolution: {integrity: sha1-PFMZQukIwml8DsNEhYwobHygpgo=} 2058 | engines: {node: '>=0.10.0'} 2059 | 2060 | /sucrase/3.20.2: 2061 | resolution: {integrity: sha512-EdJ5M6VEvToIZwIWiZ71cxe4CklDRG8PdSjUSst+BZCUGlaEhnrdQo/LOXsuq3MjWRbfepg1XTffClK0Tmo0HQ==} 2062 | engines: {node: '>=8'} 2063 | hasBin: true 2064 | dependencies: 2065 | commander: 4.1.1 2066 | glob: 7.1.6 2067 | lines-and-columns: 1.1.6 2068 | mz: 2.7.0 2069 | pirates: 4.0.1 2070 | ts-interface-checker: 0.1.13 2071 | dev: true 2072 | 2073 | /supports-color/5.5.0: 2074 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 2075 | engines: {node: '>=4'} 2076 | dependencies: 2077 | has-flag: 3.0.0 2078 | dev: true 2079 | 2080 | /supports-color/7.2.0: 2081 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 2082 | engines: {node: '>=8'} 2083 | dependencies: 2084 | has-flag: 4.0.0 2085 | dev: true 2086 | 2087 | /tar-fs/2.1.1: 2088 | resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} 2089 | dependencies: 2090 | chownr: 1.1.4 2091 | mkdirp-classic: 0.5.3 2092 | pump: 3.0.0 2093 | tar-stream: 2.2.0 2094 | dev: false 2095 | 2096 | /tar-stream/2.2.0: 2097 | resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} 2098 | engines: {node: '>=6'} 2099 | dependencies: 2100 | bl: 4.1.0 2101 | end-of-stream: 1.4.4 2102 | fs-constants: 1.0.0 2103 | inherits: 2.0.4 2104 | readable-stream: 3.6.0 2105 | dev: false 2106 | 2107 | /tar/6.1.11: 2108 | resolution: {integrity: sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==} 2109 | engines: {node: '>= 10'} 2110 | dependencies: 2111 | chownr: 2.0.0 2112 | fs-minipass: 2.1.0 2113 | minipass: 3.1.5 2114 | minizlib: 2.1.2 2115 | mkdirp: 1.0.4 2116 | yallist: 4.0.0 2117 | dev: false 2118 | 2119 | /thenify-all/1.6.0: 2120 | resolution: {integrity: sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=} 2121 | engines: {node: '>=0.8'} 2122 | dependencies: 2123 | thenify: 3.3.1 2124 | dev: true 2125 | 2126 | /thenify/3.3.1: 2127 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 2128 | dependencies: 2129 | any-promise: 1.3.0 2130 | dev: true 2131 | 2132 | /to-readable-stream/1.0.0: 2133 | resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==} 2134 | engines: {node: '>=6'} 2135 | dev: true 2136 | 2137 | /to-regex-range/5.0.1: 2138 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 2139 | engines: {node: '>=8.0'} 2140 | dependencies: 2141 | is-number: 7.0.0 2142 | dev: true 2143 | 2144 | /toidentifier/1.0.0: 2145 | resolution: {integrity: sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==} 2146 | engines: {node: '>=0.6'} 2147 | dev: false 2148 | 2149 | /touch/3.1.0: 2150 | resolution: {integrity: sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==} 2151 | hasBin: true 2152 | dependencies: 2153 | nopt: 1.0.10 2154 | dev: true 2155 | 2156 | /tree-kill/1.2.2: 2157 | resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} 2158 | hasBin: true 2159 | dev: true 2160 | 2161 | /ts-interface-checker/0.1.13: 2162 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 2163 | dev: true 2164 | 2165 | /ts-node/10.2.1_8304ecd715830f7c190b4d1dea90b100: 2166 | resolution: {integrity: sha512-hCnyOyuGmD5wHleOQX6NIjJtYVIO8bPP8F2acWkB4W06wdlkgyvJtubO/I9NkI88hCFECbsEgoLc0VNkYmcSfw==} 2167 | engines: {node: '>=12.0.0'} 2168 | hasBin: true 2169 | peerDependencies: 2170 | '@swc/core': '>=1.2.50' 2171 | '@swc/wasm': '>=1.2.50' 2172 | '@types/node': '*' 2173 | typescript: '>=2.7' 2174 | peerDependenciesMeta: 2175 | '@swc/core': 2176 | optional: true 2177 | '@swc/wasm': 2178 | optional: true 2179 | dependencies: 2180 | '@cspotcode/source-map-support': 0.6.1 2181 | '@tsconfig/node10': 1.0.8 2182 | '@tsconfig/node12': 1.0.9 2183 | '@tsconfig/node14': 1.0.1 2184 | '@tsconfig/node16': 1.0.2 2185 | '@types/node': 16.10.3 2186 | acorn: 8.5.0 2187 | acorn-walk: 8.2.0 2188 | arg: 4.1.3 2189 | create-require: 1.1.1 2190 | diff: 4.0.2 2191 | make-error: 1.3.6 2192 | typescript: 4.4.3 2193 | yn: 3.1.1 2194 | dev: true 2195 | 2196 | /tsscmp/1.0.6: 2197 | resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} 2198 | engines: {node: '>=0.6.x'} 2199 | dev: false 2200 | 2201 | /tsup/4.14.0_ts-node@10.2.1+typescript@4.4.3: 2202 | resolution: {integrity: sha512-77rWdzhikTP9mQ34XMRzK83tw++LF6f4ox/HNERlgesB7g6g5VQ1iJlueG9O0P9HAZGVKavUwyoZv0+322p6rg==} 2203 | hasBin: true 2204 | peerDependencies: 2205 | typescript: ^4.2.3 2206 | peerDependenciesMeta: 2207 | typescript: 2208 | optional: true 2209 | dependencies: 2210 | cac: 6.7.8 2211 | chalk: 4.1.2 2212 | chokidar: 3.5.2 2213 | debug: 4.3.2 2214 | esbuild: 0.12.29 2215 | execa: 5.1.1 2216 | globby: 11.0.4 2217 | joycon: 3.0.1 2218 | postcss-load-config: 3.1.0_ts-node@10.2.1 2219 | resolve-from: 5.0.0 2220 | rollup: 2.58.0 2221 | sucrase: 3.20.2 2222 | tree-kill: 1.2.2 2223 | typescript: 4.4.3 2224 | transitivePeerDependencies: 2225 | - supports-color 2226 | - ts-node 2227 | dev: true 2228 | 2229 | /tunnel-agent/0.6.0: 2230 | resolution: {integrity: sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=} 2231 | dependencies: 2232 | safe-buffer: 5.2.1 2233 | dev: false 2234 | 2235 | /type-fest/0.20.2: 2236 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 2237 | engines: {node: '>=10'} 2238 | dev: true 2239 | 2240 | /type-is/1.6.18: 2241 | resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} 2242 | engines: {node: '>= 0.6'} 2243 | dependencies: 2244 | media-typer: 0.3.0 2245 | mime-types: 2.1.33 2246 | dev: false 2247 | 2248 | /typedarray-to-buffer/3.1.5: 2249 | resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} 2250 | dependencies: 2251 | is-typedarray: 1.0.0 2252 | dev: true 2253 | 2254 | /typescript/4.4.3: 2255 | resolution: {integrity: sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA==} 2256 | engines: {node: '>=4.2.0'} 2257 | hasBin: true 2258 | dev: true 2259 | 2260 | /undefsafe/2.0.3: 2261 | resolution: {integrity: sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==} 2262 | dependencies: 2263 | debug: 2.6.9 2264 | dev: true 2265 | 2266 | /unique-string/2.0.0: 2267 | resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} 2268 | engines: {node: '>=8'} 2269 | dependencies: 2270 | crypto-random-string: 2.0.0 2271 | dev: true 2272 | 2273 | /universalify/0.1.2: 2274 | resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} 2275 | engines: {node: '>= 4.0.0'} 2276 | dev: false 2277 | 2278 | /unpipe/1.0.0: 2279 | resolution: {integrity: sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=} 2280 | engines: {node: '>= 0.8'} 2281 | dev: false 2282 | 2283 | /update-notifier/5.1.0: 2284 | resolution: {integrity: sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==} 2285 | engines: {node: '>=10'} 2286 | dependencies: 2287 | boxen: 5.1.2 2288 | chalk: 4.1.2 2289 | configstore: 5.0.1 2290 | has-yarn: 2.1.0 2291 | import-lazy: 2.1.0 2292 | is-ci: 2.0.0 2293 | is-installed-globally: 0.4.0 2294 | is-npm: 5.0.0 2295 | is-yarn-global: 0.3.0 2296 | latest-version: 5.1.0 2297 | pupa: 2.1.1 2298 | semver: 7.3.5 2299 | semver-diff: 3.1.1 2300 | xdg-basedir: 4.0.0 2301 | dev: true 2302 | 2303 | /url-parse-lax/3.0.0: 2304 | resolution: {integrity: sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=} 2305 | engines: {node: '>=4'} 2306 | dependencies: 2307 | prepend-http: 2.0.0 2308 | dev: true 2309 | 2310 | /util-deprecate/1.0.2: 2311 | resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=} 2312 | dev: false 2313 | 2314 | /vary/1.1.2: 2315 | resolution: {integrity: sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=} 2316 | engines: {node: '>= 0.8'} 2317 | dev: false 2318 | 2319 | /which/2.0.2: 2320 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 2321 | engines: {node: '>= 8'} 2322 | hasBin: true 2323 | dependencies: 2324 | isexe: 2.0.0 2325 | dev: true 2326 | 2327 | /wide-align/1.1.3: 2328 | resolution: {integrity: sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==} 2329 | dependencies: 2330 | string-width: 1.0.2 2331 | dev: false 2332 | 2333 | /widest-line/3.1.0: 2334 | resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} 2335 | engines: {node: '>=8'} 2336 | dependencies: 2337 | string-width: 4.2.3 2338 | dev: true 2339 | 2340 | /wrap-ansi/7.0.0: 2341 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 2342 | engines: {node: '>=10'} 2343 | dependencies: 2344 | ansi-styles: 4.3.0 2345 | string-width: 4.2.3 2346 | strip-ansi: 6.0.1 2347 | dev: true 2348 | 2349 | /wrappy/1.0.2: 2350 | resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} 2351 | 2352 | /write-file-atomic/3.0.3: 2353 | resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} 2354 | dependencies: 2355 | imurmurhash: 0.1.4 2356 | is-typedarray: 1.0.0 2357 | signal-exit: 3.0.5 2358 | typedarray-to-buffer: 3.1.5 2359 | dev: true 2360 | 2361 | /xdg-basedir/4.0.0: 2362 | resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==} 2363 | engines: {node: '>=8'} 2364 | dev: true 2365 | 2366 | /yallist/4.0.0: 2367 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 2368 | 2369 | /yaml/1.10.2: 2370 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} 2371 | engines: {node: '>= 6'} 2372 | dev: true 2373 | 2374 | /ylru/1.2.1: 2375 | resolution: {integrity: sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ==} 2376 | engines: {node: '>= 4.0.0'} 2377 | dev: false 2378 | 2379 | /yn/3.1.1: 2380 | resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} 2381 | engines: {node: '>=6'} 2382 | dev: true 2383 | --------------------------------------------------------------------------------