From 338ed5d7fa0659f82871c3f95c159a199ea4ed5a Mon Sep 17 00:00:00 2001 From: 1549469775 <1549469775@qq.com> Date: Wed, 20 Jul 2022 17:11:43 +0800 Subject: [PATCH] fixed bug --- .env | 3 - .env.development | 3 + .env.production | 3 + .gitignore | 3 +- docs/a.md | 2 +- package.json | 13 +- packages/hapi-router/dist/hapi-router.cjs.js | 2 +- packages/hapi-router/dist/hapi-router.cjs.js.map | 2 +- packages/hapi-router/src/util/index.ts | 2 +- pnpm-lock.yaml | 1127 ++++++++++++++++++++-- readme.md | 7 +- source/main.ts | 2 +- source/route/views/index/index.ts | 5 +- source/util/index.ts | 5 +- test/index.js | 4 - tsconfig.json | 2 +- 16 files changed, 1083 insertions(+), 102 deletions(-) delete mode 100644 .env create mode 100644 .env.development create mode 100644 .env.production delete mode 100644 test/index.js diff --git a/.env b/.env deleted file mode 100644 index b02dcf3..0000000 --- a/.env +++ /dev/null @@ -1,3 +0,0 @@ -NODE_ENV=development -# https://www.bookstack.cn/read/hapijs-zh/2f6997ac6d3fb529.md -KEY = dsRhw1Y5UZqB8SjfClbkrX9PF7yuDMV3JItcW0G4vgpaxONo6mzenHLQET2AiKyPUjjdDko10amjPaba diff --git a/.env.development b/.env.development new file mode 100644 index 0000000..b02dcf3 --- /dev/null +++ b/.env.development @@ -0,0 +1,3 @@ +NODE_ENV=development +# https://www.bookstack.cn/read/hapijs-zh/2f6997ac6d3fb529.md +KEY = dsRhw1Y5UZqB8SjfClbkrX9PF7yuDMV3JItcW0G4vgpaxONo6mzenHLQET2AiKyPUjjdDko10amjPaba diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..1e1040f --- /dev/null +++ b/.env.production @@ -0,0 +1,3 @@ +NODE_ENV=production +# https://www.bookstack.cn/read/hapijs-zh/2f6997ac6d3fb529.md +KEY = dsRhw1Y5UZqB8SjfClbkrX9PF7yuDMV3JItcW0G4vgpaxONo6mzenHLQET2AiKyPUjjdDko10amjPaba diff --git a/.gitignore b/.gitignore index 35f4a93..2c5cb22 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .vscode .idea node_modules -log \ No newline at end of file +log +dist \ No newline at end of file diff --git a/docs/a.md b/docs/a.md index 38d86df..4529c59 100644 --- a/docs/a.md +++ b/docs/a.md @@ -1 +1 @@ -sdad \ No newline at end of file +## Hello World \ No newline at end of file diff --git a/package.json b/package.json index ca7c89a..5c5a273 100644 --- a/package.json +++ b/package.json @@ -6,9 +6,11 @@ "main": "index.js", "scripts": { "init": "ts-node --respawn --project ./tsconfig.json -r tsconfig-paths/register source/db/init.ts alter", - "start": "ts-node-dev --watch ./source/route --ignore-watch ./source/route/route.txt --respawn --project ./tsconfig.json -r tsconfig-paths/register ./source/main.ts", - "dev": "npm start", - "deva": "nodemon --exec 'ts-node --project ./tsconfig.json -r tsconfig-paths/register ./source/main.ts'" + "build": "tsc && tsc-alias", + "start": "node -r dotenv/config dist/main.js dotenv_config_path=.env.production", + "dev": "ts-node-dev --watch ./source/route --ignore-watch ./source/route/route.txt --respawn --project ./tsconfig.json -r tsconfig-paths/register -r dotenv/config ./source/main.ts dotenv_config_path=.env.development", + "deva": "nodemon --exec 'ts-node --project ./tsconfig.json -r tsconfig-paths/register ./source/main.ts'", + "test": "lab --require tsconfig-paths/register --typescript -P test -v" }, "keywords": [], "author": "", @@ -31,6 +33,7 @@ "joi": "^17.4.0", "json-merge-patch": "^1.0.1", "jsonwebtoken": "^8.5.1", + "jstransformer-markdown-it": "^3.0.0", "multiparty": "^4.2.2", "nodemon": "^2.0.7", "pug": "^3.0.2", @@ -38,12 +41,15 @@ "sqlite3": "^5.0.2" }, "devDependencies": { + "@hapi/code": "^9.0.1", + "@hapi/lab": "^25.0.1", "@hapi/vision": "^6.1.0", "@noderun/hapi-router": "link:packages\\hapi-router", "@types/fs-extra": "^9.0.13", "@types/hapi__cookie": "^10.1.4", "@types/hapi__crumb": "^7.3.3", "@types/node": "^17.0.21", + "cross-env": "^7.0.3", "dotenv": "^10.0.0", "ejs": "^3.1.6", "fast-glob": "^3.2.11", @@ -51,6 +57,7 @@ "log4js": "^6.4.1", "ts-node": "^10.0.0", "ts-node-dev": "^1.1.6", + "tsc-alias": "^1.7.0", "tsconfig-paths": "^3.9.0", "typescript": "^4.3.2" } diff --git a/packages/hapi-router/dist/hapi-router.cjs.js b/packages/hapi-router/dist/hapi-router.cjs.js index 98d8639..4cbc063 100644 --- a/packages/hapi-router/dist/hapi-router.cjs.js +++ b/packages/hapi-router/dist/hapi-router.cjs.js @@ -105,7 +105,7 @@ function isIndexEnd(str) { return str.length == 1 && str.endsWith("/"); } function walkDir(filePath, exclude) { - if (exclude === void 0) { exclude = ["node_modules", "^_", ".git", ".idea", ".gitignore", "client", "\.txt$"]; } + if (exclude === void 0) { exclude = ["node_modules", "^_", ".git", ".idea", ".gitignore", "client", "\.txt$", "\.test\.js$", "\.test\.ts$"]; } var files = []; function Data(opts) { this.relativeDir = opts.relativeDir; diff --git a/packages/hapi-router/dist/hapi-router.cjs.js.map b/packages/hapi-router/dist/hapi-router.cjs.js.map index ca70aad..f695e01 100644 --- a/packages/hapi-router/dist/hapi-router.cjs.js.map +++ b/packages/hapi-router/dist/hapi-router.cjs.js.map @@ -1 +1 @@ -{"version":3,"file":"hapi-router.cjs.js","sources":["../src/util/index.ts","../src/util/decorators.ts","../src/index.ts"],"sourcesContent":["// @ts-nocheck\r\n\r\nconst path = require(\"path\")\r\nconst fs = require(\"fs\")\r\n\r\nexport function removeIndex(ss:any) {\r\n const remove = (str:any) => {\r\n if (str.endsWith(\"/index\")) {\r\n return str.slice(0, -6);\r\n }\r\n if (str.endsWith(\"index\")) {\r\n return str.slice(0, -5);\r\n }\r\n return str ? str : \"/\";\r\n };\r\n let r = true;\r\n let rr = ss;\r\n while (r) {\r\n if (rr.endsWith(\"/index\")) {\r\n rr = remove(rr);\r\n } else {\r\n r = false;\r\n }\r\n }\r\n return rr ? rr : \"/\";\r\n}\r\n\r\nexport function isIndexEnd(str:any) {\r\n return str.length == 1 && str.endsWith(\"/\");\r\n}\r\n\r\n\r\nexport function walkDir(\r\n filePath:any,\r\n exclude = [\"node_modules\", \"^_\", \".git\", \".idea\", \".gitignore\", \"client\",\"\\.txt$\"]\r\n) {\r\n let files:any[] = [];\r\n function Data(opts:any) {\r\n this.relativeDir = opts.relativeDir;\r\n this.relativeFile = opts.relativeFile;\r\n this.filename = opts.filename;\r\n this.file = opts.file;\r\n this.absoluteFile = opts.absoluteFile;\r\n this.relativeFileNoExt = opts.relativeFileNoExt;\r\n this.absoluteDir = opts.absoluteDir;\r\n }\r\n function readDir(filePath, dirname = \".\") {\r\n let res = fs.readdirSync(filePath);\r\n res.forEach((filename) => {\r\n const filepath = path.resolve(filePath, filename);\r\n const stat = fs.statSync(filepath);\r\n const name = filepath.split(path.sep).slice(-1)[0];\r\n if (typeof exclude === \"string\" && new RegExp(exclude).test(name)) {\r\n return;\r\n }\r\n if (Array.isArray(exclude)) {\r\n for (let i = 0; i < exclude.length; i++) {\r\n const excludeItem = exclude[i];\r\n if (new RegExp(excludeItem).test(name)) {\r\n return;\r\n }\r\n }\r\n }\r\n if (!stat.isFile()) {\r\n readDir(filepath, dirname + path.sep + name);\r\n } else {\r\n const data = new Data({\r\n relativeDir: dirname,\r\n relativeFile: dirname + path.sep + path.parse(filepath).base,\r\n relativeFileNoExt: dirname + path.sep + path.parse(filepath).name,\r\n file: path.parse(filepath).base,\r\n filename: path.parse(filepath).name,\r\n absoluteFile: filepath,\r\n absoluteDir: path.parse(filepath).dir,\r\n });\r\n files.push(data);\r\n }\r\n });\r\n }\r\n readDir(filePath);\r\n return files;\r\n}\r\n","// @ts-nocheck\r\n\r\nexport function method(opts?:string|Array) {\r\n return function (target, propertyKey: string, descriptor: PropertyDescriptor) {\r\n target[propertyKey].$method = opts\r\n }\r\n}\r\nexport function route(route?:string) {\r\n return function (target, propertyKey: string, descriptor: PropertyDescriptor) {\r\n target[propertyKey].$route = route\r\n }\r\n}\r\n\r\nexport function config(options:Object) {\r\n return function (target, propertyKey: string, descriptor: PropertyDescriptor) {\r\n target[propertyKey].$options = options\r\n }\r\n}\r\n\r\nexport function auth(isAuth:boolean | \"try\" | \"required\" | \"optional\" = true) {\r\n return function (target, propertyKey: string, descriptor: PropertyDescriptor) {\r\n target[propertyKey].$auth = isAuth\r\n }\r\n}\r\n\r\nexport function validate(validate:Object) {\r\n return function (target, propertyKey: string, descriptor: PropertyDescriptor) {\r\n target[propertyKey].$validate = validate\r\n }\r\n}\r\n\r\nexport function swagger(desc,notes,tags) {\r\n return function (target, propertyKey: string, descriptor: PropertyDescriptor) {\r\n target[propertyKey].$swagger = [desc,notes,tags]\r\n }\r\n}\r\n","// @ts-nocheck\r\n\r\nimport { walkDir, removeIndex, isIndexEnd } from \"./util\";\r\nimport * as Joi from \"joi\";\r\nconst path = require(\"path\");\r\nconst fs = require(\"fs\");\r\n\r\nclass routePlugin {\r\n public name: string = \"routePlugin\";\r\n public version: string = \"0.0.1\";\r\n public register(server: any, opts: any) {\r\n const sourceDir = opts.sourceDir;\r\n const type = opts.type || \"jwt\";\r\n const auth = opts.auth || [];\r\n let array = [];\r\n for (let i = 0; i < sourceDir.length; i++) {\r\n const dir = sourceDir[i];\r\n console.log(dir);\r\n array.push(dir.dir + \"对应路径:\");\r\n array = array.concat(\r\n this.registerRoute(server, dir.dir, dir.prefix || \"\", auth, type)\r\n );\r\n }\r\n fs.writeFileSync(\r\n path.resolve(process.cwd(), \"route.txt\"),\r\n array.join(\"\\n\"),\r\n {\r\n encoding: \"utf-8\",\r\n }\r\n );\r\n }\r\n registerRoute(server, sourceDir, prefix, auth, type) {\r\n const files = walkDir(sourceDir);\r\n const routes = [];\r\n files.forEach((file) => {\r\n let filename = file.relativeFileNoExt;\r\n let array = filename.split(path.sep).slice(1);\r\n let fileNoExt = removeIndex(\"/\" + array.join(\"/\"));\r\n const moduleName = path.resolve(sourceDir, filename);\r\n const obj = require(moduleName);\r\n if (obj.default) {\r\n const func = new (obj.default || obj)();\r\n const prototype = Object.getPrototypeOf(func);\r\n const keys = Reflect.ownKeys(prototype);\r\n for (const key of keys) {\r\n if (key !== \"constructor\") {\r\n let ff = func[key];\r\n // 默认方法\r\n const method = ff.$method || \"GET\";\r\n // 路由收集规则\r\n let route = \"\";\r\n if (ff.$route) {\r\n if (isIndexEnd(fileNoExt)) {\r\n route = ff.$route;\r\n } else {\r\n route = fileNoExt + ff.$route;\r\n }\r\n } else {\r\n if (isIndexEnd(fileNoExt)) {\r\n route = fileNoExt + key.toString();\r\n } else {\r\n route = fileNoExt + \"/\" + key.toString();\r\n }\r\n }\r\n route = removeIndex(route);\r\n route = prefix ? route[0] + prefix + \"/\" + route.slice(1) : route;\r\n // 配置规则\r\n const options = ff.$options ? ff.$options : {};\r\n if (!options.auth) {\r\n if (ff.$auth == undefined) {\r\n if (\r\n auth &&\r\n auth.length &&\r\n auth.filter((v) => route.startsWith(v)).length\r\n ) {\r\n options.auth = type;\r\n } else {\r\n options.auth = false;\r\n }\r\n } else if (ff.$auth) {\r\n options.auth =\r\n typeof ff.$auth === \"boolean\"\r\n ? type\r\n : {\r\n strategy: type,\r\n mode: ff.$auth,\r\n };\r\n } else {\r\n options.auth = false;\r\n }\r\n }\r\n if (!options.validate) {\r\n let validateObj = ff.$validate || {};\r\n if (options.auth && type === \"jwt\") {\r\n if (validateObj.headers) {\r\n validateObj.headers = validateObj.headers.keys({\r\n Authorization: Joi.string(),\r\n });\r\n } else {\r\n validateObj.headers = Joi.object({\r\n headers: Joi.object({\r\n Authorization: Joi.string(),\r\n }).unknown(), // 注意加上这个\r\n });\r\n }\r\n }\r\n if (validateObj) {\r\n options.validate = validateObj;\r\n }\r\n }\r\n // && route.startsWith(\"/api\")\r\n if (ff.$swagger) {\r\n options.description = ff.$swagger[0];\r\n options.notes = ff.$swagger[1];\r\n options.tags = ff.$swagger[2];\r\n }\r\n let str = route;\r\n if (\r\n (typeof options.auth === \"string\" && options.auth) ||\r\n (typeof options.auth === \"object\" &&\r\n options.auth.mode === \"required\")\r\n ) {\r\n str =\r\n \" 需要权限 : \" + \" \" + full(method) + \" \" + str;\r\n } else if (\r\n typeof options.auth === \"object\" &&\r\n options.auth.mode === \"optional\"\r\n ) {\r\n str =\r\n \" 不需权限(提供即需验证): \" + \" \" + full(method) + \" \" + str;\r\n } else if (\r\n typeof options.auth === \"object\" &&\r\n options.auth.mode === \"try\"\r\n ) {\r\n str =\r\n \" 不需权限(提供无需验证): \" + \" \" + full(method) + \" \" + str;\r\n } else {\r\n str =\r\n \" 不需权限 : \" + \" \" + full(method) + \" \" + str;\r\n }\r\n routes.push(str);\r\n server.route({\r\n method: method,\r\n path: route,\r\n handler: ff,\r\n options: options,\r\n });\r\n }\r\n }\r\n }\r\n });\r\n return routes;\r\n }\r\n}\r\n\r\nfunction full(str: string, length = 10) {\r\n let len = str.length;\r\n let need = length - len;\r\n if (need <= 0) return str;\r\n return str + [...Array(need)].map((v, i) => \" \").join(\"\");\r\n}\r\n\r\nconst plugin = new routePlugin();\r\n\r\nexport { plugin };\r\nexport * from \"./util/decorators\";\r\n"],"names":["path","fs","Joi"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"hapi-router.cjs.js","sources":["../src/util/index.ts","../src/util/decorators.ts","../src/index.ts"],"sourcesContent":["// @ts-nocheck\r\n\r\nconst path = require(\"path\")\r\nconst fs = require(\"fs\")\r\n\r\nexport function removeIndex(ss:any) {\r\n const remove = (str:any) => {\r\n if (str.endsWith(\"/index\")) {\r\n return str.slice(0, -6);\r\n }\r\n if (str.endsWith(\"index\")) {\r\n return str.slice(0, -5);\r\n }\r\n return str ? str : \"/\";\r\n };\r\n let r = true;\r\n let rr = ss;\r\n while (r) {\r\n if (rr.endsWith(\"/index\")) {\r\n rr = remove(rr);\r\n } else {\r\n r = false;\r\n }\r\n }\r\n return rr ? rr : \"/\";\r\n}\r\n\r\nexport function isIndexEnd(str:any) {\r\n return str.length == 1 && str.endsWith(\"/\");\r\n}\r\n\r\n\r\nexport function walkDir(\r\n filePath:any,\r\n exclude = [\"node_modules\", \"^_\", \".git\", \".idea\", \".gitignore\", \"client\",\"\\.txt$\",\"\\.test\\.js$\",\"\\.test\\.ts$\"]\r\n) {\r\n let files:any[] = [];\r\n function Data(opts:any) {\r\n this.relativeDir = opts.relativeDir;\r\n this.relativeFile = opts.relativeFile;\r\n this.filename = opts.filename;\r\n this.file = opts.file;\r\n this.absoluteFile = opts.absoluteFile;\r\n this.relativeFileNoExt = opts.relativeFileNoExt;\r\n this.absoluteDir = opts.absoluteDir;\r\n }\r\n function readDir(filePath, dirname = \".\") {\r\n let res = fs.readdirSync(filePath);\r\n res.forEach((filename) => {\r\n const filepath = path.resolve(filePath, filename);\r\n const stat = fs.statSync(filepath);\r\n const name = filepath.split(path.sep).slice(-1)[0];\r\n if (typeof exclude === \"string\" && new RegExp(exclude).test(name)) {\r\n return;\r\n }\r\n if (Array.isArray(exclude)) {\r\n for (let i = 0; i < exclude.length; i++) {\r\n const excludeItem = exclude[i];\r\n if (new RegExp(excludeItem).test(name)) {\r\n return;\r\n }\r\n }\r\n }\r\n if (!stat.isFile()) {\r\n readDir(filepath, dirname + path.sep + name);\r\n } else {\r\n const data = new Data({\r\n relativeDir: dirname,\r\n relativeFile: dirname + path.sep + path.parse(filepath).base,\r\n relativeFileNoExt: dirname + path.sep + path.parse(filepath).name,\r\n file: path.parse(filepath).base,\r\n filename: path.parse(filepath).name,\r\n absoluteFile: filepath,\r\n absoluteDir: path.parse(filepath).dir,\r\n });\r\n files.push(data);\r\n }\r\n });\r\n }\r\n readDir(filePath);\r\n return files;\r\n}\r\n","// @ts-nocheck\r\n/**\r\n * 方法\r\n * @param opts 参数\r\n*/\r\nexport function method(opts?:string|Array) {\r\n return function (target, propertyKey: string, descriptor: PropertyDescriptor) {\r\n target[propertyKey].$method = opts\r\n }\r\n}\r\nexport function route(route?:string) {\r\n return function (target, propertyKey: string, descriptor: PropertyDescriptor) {\r\n target[propertyKey].$route = route\r\n }\r\n}\r\n\r\nexport function config(options:Object) {\r\n return function (target, propertyKey: string, descriptor: PropertyDescriptor) {\r\n target[propertyKey].$options = options\r\n }\r\n}\r\n\r\nexport function auth(isAuth:boolean | \"try\" | \"required\" | \"optional\" = true) {\r\n return function (target, propertyKey: string, descriptor: PropertyDescriptor) {\r\n target[propertyKey].$auth = isAuth\r\n }\r\n}\r\n\r\nexport function validate(validate:Object) {\r\n return function (target, propertyKey: string, descriptor: PropertyDescriptor) {\r\n target[propertyKey].$validate = validate\r\n }\r\n}\r\n\r\nexport function swagger(desc,notes,tags) {\r\n return function (target, propertyKey: string, descriptor: PropertyDescriptor) {\r\n target[propertyKey].$swagger = [desc,notes,tags]\r\n }\r\n}\r\n","// @ts-nocheck\r\n\r\nimport { walkDir, removeIndex, isIndexEnd } from \"./util\";\r\nimport * as Joi from \"joi\";\r\nconst path = require(\"path\");\r\nconst fs = require(\"fs\");\r\n\r\nclass routePlugin {\r\n public name: string = \"routePlugin\";\r\n public version: string = \"0.0.1\";\r\n public register(server: any, opts: any) {\r\n const sourceDir = opts.sourceDir;\r\n const type = opts.type || \"jwt\";\r\n const auth = opts.auth || [];\r\n let array = [];\r\n for (let i = 0; i < sourceDir.length; i++) {\r\n const dir = sourceDir[i];\r\n console.log(dir);\r\n array.push(dir.dir + \"对应路径:\");\r\n array = array.concat(\r\n this.registerRoute(server, dir.dir, dir.prefix || \"\", auth, type)\r\n );\r\n }\r\n fs.writeFileSync(\r\n path.resolve(process.cwd(), \"route.txt\"),\r\n array.join(\"\\n\"),\r\n {\r\n encoding: \"utf-8\",\r\n }\r\n );\r\n }\r\n registerRoute(server, sourceDir, prefix, auth, type) {\r\n const files = walkDir(sourceDir);\r\n const routes = [];\r\n files.forEach((file) => {\r\n let filename = file.relativeFileNoExt;\r\n let array = filename.split(path.sep).slice(1);\r\n let fileNoExt = removeIndex(\"/\" + array.join(\"/\"));\r\n const moduleName = path.resolve(sourceDir, filename);\r\n const obj = require(moduleName);\r\n if (obj.default) {\r\n const func = new (obj.default || obj)();\r\n const prototype = Object.getPrototypeOf(func);\r\n const keys = Reflect.ownKeys(prototype);\r\n for (const key of keys) {\r\n if (key !== \"constructor\") {\r\n let ff = func[key];\r\n // 默认方法\r\n const method = ff.$method || \"GET\";\r\n // 路由收集规则\r\n let route = \"\";\r\n if (ff.$route) {\r\n if (isIndexEnd(fileNoExt)) {\r\n route = ff.$route;\r\n } else {\r\n route = fileNoExt + ff.$route;\r\n }\r\n } else {\r\n if (isIndexEnd(fileNoExt)) {\r\n route = fileNoExt + key.toString();\r\n } else {\r\n route = fileNoExt + \"/\" + key.toString();\r\n }\r\n }\r\n route = removeIndex(route);\r\n route = prefix ? route[0] + prefix + \"/\" + route.slice(1) : route;\r\n // 配置规则\r\n const options = ff.$options ? ff.$options : {};\r\n if (!options.auth) {\r\n if (ff.$auth == undefined) {\r\n if (\r\n auth &&\r\n auth.length &&\r\n auth.filter((v) => route.startsWith(v)).length\r\n ) {\r\n options.auth = type;\r\n } else {\r\n options.auth = false;\r\n }\r\n } else if (ff.$auth) {\r\n options.auth =\r\n typeof ff.$auth === \"boolean\"\r\n ? type\r\n : {\r\n strategy: type,\r\n mode: ff.$auth,\r\n };\r\n } else {\r\n options.auth = false;\r\n }\r\n }\r\n if (!options.validate) {\r\n let validateObj = ff.$validate || {};\r\n if (options.auth && type === \"jwt\") {\r\n if (validateObj.headers) {\r\n validateObj.headers = validateObj.headers.keys({\r\n Authorization: Joi.string(),\r\n });\r\n } else {\r\n validateObj.headers = Joi.object({\r\n headers: Joi.object({\r\n Authorization: Joi.string(),\r\n }).unknown(), // 注意加上这个\r\n });\r\n }\r\n }\r\n if (validateObj) {\r\n options.validate = validateObj;\r\n }\r\n }\r\n // && route.startsWith(\"/api\")\r\n if (ff.$swagger) {\r\n options.description = ff.$swagger[0];\r\n options.notes = ff.$swagger[1];\r\n options.tags = ff.$swagger[2];\r\n }\r\n let str = route;\r\n if (\r\n (typeof options.auth === \"string\" && options.auth) ||\r\n (typeof options.auth === \"object\" &&\r\n options.auth.mode === \"required\")\r\n ) {\r\n str =\r\n \" 需要权限 : \" + \" \" + full(method) + \" \" + str;\r\n } else if (\r\n typeof options.auth === \"object\" &&\r\n options.auth.mode === \"optional\"\r\n ) {\r\n str =\r\n \" 不需权限(提供即需验证): \" + \" \" + full(method) + \" \" + str;\r\n } else if (\r\n typeof options.auth === \"object\" &&\r\n options.auth.mode === \"try\"\r\n ) {\r\n str =\r\n \" 不需权限(提供无需验证): \" + \" \" + full(method) + \" \" + str;\r\n } else {\r\n str =\r\n \" 不需权限 : \" + \" \" + full(method) + \" \" + str;\r\n }\r\n routes.push(str);\r\n server.route({\r\n method: method,\r\n path: route,\r\n handler: ff,\r\n options: options,\r\n });\r\n }\r\n }\r\n }\r\n });\r\n return routes;\r\n }\r\n}\r\n\r\nfunction full(str: string, length = 10) {\r\n let len = str.length;\r\n let need = length - len;\r\n if (need <= 0) return str;\r\n return str + [...Array(need)].map((v, i) => \" \").join(\"\");\r\n}\r\n\r\nconst plugin = new routePlugin();\r\n\r\nexport { plugin };\r\nexport * from \"./util/decorators\";\r\n"],"names":["path","fs","Joi"],"mappings":"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"} \ No newline at end of file diff --git a/packages/hapi-router/src/util/index.ts b/packages/hapi-router/src/util/index.ts index 8a955fb..f445892 100644 --- a/packages/hapi-router/src/util/index.ts +++ b/packages/hapi-router/src/util/index.ts @@ -32,7 +32,7 @@ export function isIndexEnd(str:any) { export function walkDir( filePath:any, - exclude = ["node_modules", "^_", ".git", ".idea", ".gitignore", "client","\.txt$"] + exclude = ["node_modules", "^_", ".git", ".idea", ".gitignore", "client","\.txt$","\.test\.js$","\.test\.ts$"] ) { let files:any[] = []; function Data(opts:any) { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 088e9fe..c7a7c50 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,11 +1,13 @@ lockfileVersion: 5.4 specifiers: + '@hapi/code': ^9.0.1 '@hapi/cookie': ^11.0.2 '@hapi/crumb': ^8.0.1 '@hapi/hapi': ^20.1.2 '@hapi/hoek': ^10.0.0 '@hapi/inert': ^6.0.3 + '@hapi/lab': ^25.0.1 '@hapi/vision': ^6.1.0 '@hapi/yar': ^10.1.1 '@noderun/hapi-router': link:packages\hapi-router @@ -17,6 +19,7 @@ specifiers: '@types/hapi__yar': ^10.1.1 '@types/node': ^17.0.21 bcrypt: ^5.0.1 + cross-env: ^7.0.3 dotenv: ^10.0.0 ejs: ^3.1.6 fast-glob: ^3.2.11 @@ -28,6 +31,7 @@ specifiers: joi: ^17.4.0 json-merge-patch: ^1.0.1 jsonwebtoken: ^8.5.1 + jstransformer-markdown-it: ^3.0.0 log4js: ^6.4.1 multiparty: ^4.2.2 nodemon: ^2.0.7 @@ -36,6 +40,7 @@ specifiers: sqlite3: ^5.0.2 ts-node: ^10.0.0 ts-node-dev: ^1.1.6 + tsc-alias: ^1.7.0 tsconfig-paths: ^3.9.0 typescript: ^4.3.2 @@ -57,6 +62,7 @@ dependencies: joi: 17.4.0 json-merge-patch: 1.0.1 jsonwebtoken: 8.5.1 + jstransformer-markdown-it: 3.0.0 multiparty: 4.2.2 nodemon: 2.0.7 pug: 3.0.2 @@ -64,12 +70,15 @@ dependencies: sqlite3: 5.0.2 devDependencies: + '@hapi/code': 9.0.1 + '@hapi/lab': 25.0.1_typescript@4.3.2 '@hapi/vision': 6.1.0 '@noderun/hapi-router': link:packages/hapi-router '@types/fs-extra': 9.0.13 '@types/hapi__cookie': 10.1.4 '@types/hapi__crumb': 7.3.3 '@types/node': 17.0.21 + cross-env: 7.0.3 dotenv: 10.0.0 ejs: 3.1.6 fast-glob: 3.2.11 @@ -77,31 +86,234 @@ devDependencies: log4js: 6.4.1 ts-node: 10.0.0_tfhj3vxmzmwirfyh7roeacsfam ts-node-dev: 1.1.6_typescript@4.3.2 + tsc-alias: 1.7.0 tsconfig-paths: 3.9.0 typescript: 4.3.2 packages: - /@babel/helper-validator-identifier/7.14.5: - resolution: {integrity: sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==} + /@ampproject/remapping/2.2.0: + resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.1.1 + '@jridgewell/trace-mapping': 0.3.14 + dev: true + + /@babel/code-frame/7.18.6: + resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} engines: {node: '>=6.9.0'} - dev: false + dependencies: + '@babel/highlight': 7.18.6 + dev: true + + /@babel/compat-data/7.18.8: + resolution: {integrity: sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/core/7.18.9_supports-color@8.1.1: + resolution: {integrity: sha512-1LIb1eL8APMy91/IMW+31ckrfBM4yCoLaVzoDhZUKSM4cu1L1nIidyxkCgzPAgrC5WEz36IPEr/eSeSF9pIn+g==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.0 + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.18.9 + '@babel/helper-compilation-targets': 7.18.9_@babel+core@7.18.9 + '@babel/helper-module-transforms': 7.18.9_supports-color@8.1.1 + '@babel/helpers': 7.18.9_supports-color@8.1.1 + '@babel/parser': 7.18.9 + '@babel/template': 7.18.6 + '@babel/traverse': 7.18.9_supports-color@8.1.1 + '@babel/types': 7.18.9 + convert-source-map: 1.8.0 + debug: 4.3.3_supports-color@8.1.1 + gensync: 1.0.0-beta.2 + json5: 2.2.1 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/eslint-parser/7.18.9_454u7sltq2wfyzqnoclqps3oeu: + resolution: {integrity: sha512-KzSGpMBggz4fKbRbWLNyPVTuQr6cmCcBhOyXTw/fieOVaw5oYAwcAj4a7UKcDYCPxQq+CG1NCDZH9e2JTXquiQ==} + engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} + peerDependencies: + '@babel/core': '>=7.11.0' + eslint: ^7.5.0 || ^8.0.0 + dependencies: + '@babel/core': 7.18.9_supports-color@8.1.1 + eslint: 8.20.0_supports-color@8.1.1 + eslint-scope: 5.1.1 + eslint-visitor-keys: 2.1.0 + semver: 6.3.0 + dev: true + + /@babel/generator/7.18.9: + resolution: {integrity: sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.18.9 + '@jridgewell/gen-mapping': 0.3.2 + jsesc: 2.5.2 + dev: true + + /@babel/helper-compilation-targets/7.18.9_@babel+core@7.18.9: + resolution: {integrity: sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.18.8 + '@babel/core': 7.18.9_supports-color@8.1.1 + '@babel/helper-validator-option': 7.18.6 + browserslist: 4.21.2 + semver: 6.3.0 + dev: true + + /@babel/helper-environment-visitor/7.18.9: + resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-function-name/7.18.9: + resolution: {integrity: sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.18.6 + '@babel/types': 7.18.9 + dev: true + + /@babel/helper-hoist-variables/7.18.6: + resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.18.9 + dev: true + + /@babel/helper-module-imports/7.18.6: + resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.18.9 + dev: true + + /@babel/helper-module-transforms/7.18.9_supports-color@8.1.1: + resolution: {integrity: sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-simple-access': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/helper-validator-identifier': 7.18.6 + '@babel/template': 7.18.6 + '@babel/traverse': 7.18.9_supports-color@8.1.1 + '@babel/types': 7.18.9 + transitivePeerDependencies: + - supports-color + dev: true - /@babel/parser/7.14.6: - resolution: {integrity: sha512-oG0ej7efjEXxb4UgE+klVx+3j4MVo+A2vCzm7OUN4CLo6WhQ+vSOD2yJ8m7B+DghObxtLxt3EfgMWpq+AsWehQ==} + /@babel/helper-simple-access/7.18.6: + resolution: {integrity: sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.18.9 + dev: true + + /@babel/helper-split-export-declaration/7.18.6: + resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.18.9 + dev: true + + /@babel/helper-validator-identifier/7.18.6: + resolution: {integrity: sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-option/7.18.6: + resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helpers/7.18.9_supports-color@8.1.1: + resolution: {integrity: sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.18.6 + '@babel/traverse': 7.18.9_supports-color@8.1.1 + '@babel/types': 7.18.9 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/highlight/7.18.6: + resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.18.6 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + + /@babel/parser/7.18.9: + resolution: {integrity: sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.14.5 - dev: false + '@babel/types': 7.18.9 + + /@babel/template/7.18.6: + resolution: {integrity: sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/parser': 7.18.9 + '@babel/types': 7.18.9 + dev: true + + /@babel/traverse/7.18.9_supports-color@8.1.1: + resolution: {integrity: sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.18.9 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.18.9 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/parser': 7.18.9 + '@babel/types': 7.18.9 + debug: 4.3.3_supports-color@8.1.1 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true - /@babel/types/7.14.5: - resolution: {integrity: sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==} + /@babel/types/7.18.9: + resolution: {integrity: sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.14.5 + '@babel/helper-validator-identifier': 7.18.6 to-fast-properties: 2.0.0 - dev: false + + /@eslint/eslintrc/1.3.0_supports-color@8.1.1: + resolution: {integrity: sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.3_supports-color@8.1.1 + espree: 9.3.2 + globals: 13.16.0 + ignore: 5.2.0 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true /@hapi/accept/5.0.2: resolution: {integrity: sha512-CmzBx/bXUR8451fnZRuZAJRlzgm0Jgu5dltTX/bszmR2lheb9BpyN47Q1RbaGTsvFzn0PXAEs+lXDKfshccYZw==} @@ -121,19 +333,46 @@ packages: dependencies: '@hapi/hoek': 9.2.0 + /@hapi/boom/10.0.0: + resolution: {integrity: sha512-1YVs9tLHhypBqqinKQRqh7FUERIolarQApO37OWkzD+z6y6USi871Sv746zBPKcIOBuI6g6y4FrwX87mmJ90Gg==} + dependencies: + '@hapi/hoek': 10.0.0 + dev: true + /@hapi/boom/9.1.2: resolution: {integrity: sha512-uJEJtiNHzKw80JpngDGBCGAmWjBtzxDCz17A9NO2zCi8LLBlb5Frpq4pXwyN+2JQMod4pKz5BALwyneCgDg89Q==} dependencies: '@hapi/hoek': 9.2.0 + /@hapi/bossy/6.0.0: + resolution: {integrity: sha512-e/ub5zzfQ8fw6Fl7cIj+vRvLcBIg08Y4C66hsXEy3LFlKNoYCH99tH1/Ag+DclcOnz1qnwRoyR6TEu3uCx54Zg==} + dependencies: + '@hapi/boom': 10.0.0 + '@hapi/bounce': 3.0.0 + '@hapi/bourne': 3.0.0 + '@hapi/hoek': 10.0.0 + '@hapi/validate': 2.0.0 + dev: true + /@hapi/bounce/2.0.0: resolution: {integrity: sha512-JesW92uyzOOyuzJKjoLHM1ThiOvHPOLDHw01YV8yh5nCso7sDwJho1h0Ad2N+E62bZyz46TG3xhAi/78Gsct6A==} dependencies: '@hapi/boom': 9.1.2 '@hapi/hoek': 9.2.0 + /@hapi/bounce/3.0.0: + resolution: {integrity: sha512-L0G4NcwwOYRhpcXeL76hNrLTUcObqtZMB3z4kcRVUZcR/w3v6C5Q1cTElV4/V7og1fG+wOyDR55UMFA+tWfhtA==} + dependencies: + '@hapi/boom': 10.0.0 + '@hapi/hoek': 10.0.0 + dev: true + /@hapi/bourne/2.0.0: - resolution: {integrity: sha512-WEezM1FWztfbzqIUbsDzFRVMxSoLy3HugVcux6KDDtTqzPsLE8NDRHfXvev66aH1i2oOKKar3/XDjbvh/OUBdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@hapi/bourne/-/bourne-2.0.0.tgz} + resolution: {integrity: sha512-WEezM1FWztfbzqIUbsDzFRVMxSoLy3HugVcux6KDDtTqzPsLE8NDRHfXvev66aH1i2oOKKar3/XDjbvh/OUBdg==} + + /@hapi/bourne/3.0.0: + resolution: {integrity: sha512-Waj1cwPXJDucOib4a3bAISsKJVb15MKi9IvmTI/7ssVEm6sywXGjVJDhl6/umt1pK1ZS7PacXU3A1PmFKHEZ2w==} + dev: true /@hapi/call/8.0.1: resolution: {integrity: sha512-bOff6GTdOnoe5b8oXRV3lwkQSb/LAWylvDMae6RgEWWntd0SHtkYbQukDHKlfaYtVnSAgIavJ0kqszF/AIBb6g==} @@ -158,6 +397,12 @@ packages: '@hapi/validate': 1.1.3 dev: false + /@hapi/code/9.0.1: + resolution: {integrity: sha512-mJS+UNpGHo3O2+tazy8W7Bsh8ozLnDfZsCbUxrc74LVSqRcC4la6Ue8kM5e+xMWh79zA4E+8tOJTnrydFiEELQ==} + dependencies: + '@hapi/hoek': 10.0.0 + dev: true + /@hapi/content/5.0.2: resolution: {integrity: sha512-mre4dl1ygd4ZyOH3tiYBrOUBzV7Pu/EOs8VLGf58vtOEECWed8Uuw6B4iR9AN/8uQt42tB04qpVaMyoMQh0oMw==} dependencies: @@ -188,6 +433,21 @@ packages: dependencies: '@hapi/boom': 9.1.2 + /@hapi/eslint-plugin/6.0.0_wqcvymnvjgsbm7r7tbeuxzyrdi: + resolution: {integrity: sha512-6eN1fnBO742nTTSpQtYB35aFGAT9I7r4u2v/+R2c9ToYTQp4QBoPOBA5R3+C7+Az3I0ugs+lTIqAsMPDLpsRAg==} + peerDependencies: + '@babel/core': ^7.14.3 + '@babel/eslint-parser': ^7.14.3 + peerDependenciesMeta: + '@babel/core': + optional: true + '@babel/eslint-parser': + optional: true + dependencies: + '@babel/core': 7.18.9_supports-color@8.1.1 + '@babel/eslint-parser': 7.18.9_454u7sltq2wfyzqnoclqps3oeu + dev: true + /@hapi/file/2.0.0: resolution: {integrity: sha512-WSrlgpvEqgPWkI18kkGELEZfXr0bYLtr16iIN4Krh9sRnzBZN6nnWxHFxtsnP684wueEySBbXPDg/WfA9xJdBQ==} dev: false @@ -226,7 +486,6 @@ packages: /@hapi/hoek/10.0.0: resolution: {integrity: sha512-CeNFz1JcLZ5xE8Vc9aau37cgHw9bxXqSDK/D55GF2GAOv0n0XjyyjSodHtKahB7A1tV3FlgCpijp3zkSITmBdA==} - dev: false /@hapi/hoek/9.2.0: resolution: {integrity: sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug==} @@ -251,6 +510,34 @@ packages: '@hapi/cryptiles': 5.1.0 '@hapi/hoek': 9.2.0 + /@hapi/lab/25.0.1_typescript@4.3.2: + resolution: {integrity: sha512-4gppsby/vl5KEK+pjDioqtCEDksY5ajFC7xxpUoGlfGEv6wY9gMLomHOh4VFLPFn4D4dzRx40NOr6sTLHAExMg==} + hasBin: true + peerDependencies: + typescript: '>=3.6.5' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@babel/core': 7.18.9_supports-color@8.1.1 + '@babel/eslint-parser': 7.18.9_454u7sltq2wfyzqnoclqps3oeu + '@hapi/bossy': 6.0.0 + '@hapi/eslint-plugin': 6.0.0_wqcvymnvjgsbm7r7tbeuxzyrdi + '@hapi/hoek': 10.0.0 + diff: 5.1.0 + eslint: 8.20.0_supports-color@8.1.1 + find-rc: 4.0.1 + globby: 11.1.0 + handlebars: 4.7.7 + mo-walk: 1.2.0 + seedrandom: 3.0.5 + source-map: 0.7.4 + source-map-support: 0.5.19 + supports-color: 8.1.1 + typescript: 4.3.2 + will-call: 1.0.1 + dev: true + /@hapi/mimos/6.0.0: resolution: {integrity: sha512-Op/67tr1I+JafN3R3XN5DucVSxKRT/Tc+tUszDwENoNpolxeXkhrJ2Czt6B6AAqrespHoivhgZBWYSuANN9QXg==} dependencies: @@ -330,12 +617,25 @@ packages: dependencies: '@hapi/hoek': 9.2.0 + /@hapi/topo/6.0.0: + resolution: {integrity: sha512-aorJvN1Q1n5xrZuA50Z4X6adI6VAM2NalIVm46ALL9LUvdoqhof3JPY69jdJH8asM3PsWr2SUVYzp57EqUP41A==} + dependencies: + '@hapi/hoek': 10.0.0 + dev: true + /@hapi/validate/1.1.3: resolution: {integrity: sha512-/XMR0N0wjw0Twzq2pQOzPBZlDzkekGcoCtzO314BpIEsbXdYGthQUbxgkGDf4nhk1+IPDAsXqWjMohRQYO06UA==} dependencies: '@hapi/hoek': 9.2.0 '@hapi/topo': 5.0.0 + /@hapi/validate/2.0.0: + resolution: {integrity: sha512-w5m8MvBgqGndbMIB+AWmXTb8CLtF1DlIxbnbAHNAo7aFuNQuI1Ywc2e0zDLK5fbFXDoqRzNrHnC7JjNJ+hDigw==} + dependencies: + '@hapi/hoek': 10.0.0 + '@hapi/topo': 6.0.0 + dev: true + /@hapi/vise/4.0.0: resolution: {integrity: sha512-eYyLkuUiFZTer59h+SGy7hUm+qE9p+UemePTHLlIWppEd+wExn3Df5jO04bFQTm7nleF5V8CtuYQYb+VFpZ6Sg==} dependencies: @@ -367,6 +667,59 @@ packages: uuid: 8.3.2 dev: false + /@humanwhocodes/config-array/0.9.5_supports-color@8.1.1: + resolution: {integrity: sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.3_supports-color@8.1.1 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/object-schema/1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + dev: true + + /@jridgewell/gen-mapping/0.1.1: + resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + + /@jridgewell/gen-mapping/0.3.2: + resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/trace-mapping': 0.3.14 + dev: true + + /@jridgewell/resolve-uri/3.1.0: + resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/set-array/1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/sourcemap-codec/1.4.14: + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + dev: true + + /@jridgewell/trace-mapping/0.3.14: + resolution: {integrity: sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + /@mapbox/node-pre-gyp/1.0.5: resolution: {integrity: sha512-4srsKPXWlIxp5Vbqz5uLfBN+du2fJChBoYn/f2h991WLdk7jUvcSk/McVLSv/X+xQIPI8eGD5GjrnygdyHnhPA==} hasBin: true @@ -557,12 +910,26 @@ packages: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} dev: false + /acorn-jsx/5.3.2_acorn@8.7.1: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.7.1 + dev: true + /acorn/7.4.1: resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} engines: {node: '>=0.4.0'} hasBin: true dev: false + /acorn/8.7.1: + resolution: {integrity: sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + /agent-base/6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} @@ -579,8 +946,6 @@ packages: fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 - dev: false - optional: true /ansi-align/3.0.0: resolution: {integrity: sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==} @@ -589,7 +954,7 @@ packages: dev: false /ansi-regex/2.1.1: - resolution: {integrity: sha1-w7M6te42DYbg5ijwRorn7yfWVN8=} + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} engines: {node: '>=0.10.0'} dev: false @@ -598,10 +963,9 @@ packages: engines: {node: '>=6'} dev: false - /ansi-regex/5.0.0: - resolution: {integrity: sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==} + /ansi-regex/5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - dev: false /ansi-styles/3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} @@ -615,7 +979,6 @@ packages: engines: {node: '>=8'} dependencies: color-convert: 2.0.1 - dev: false /any-promise/1.3.0: resolution: {integrity: sha1-q8av7tzqUugJzcA3au0845Y10X8=} @@ -649,11 +1012,19 @@ packages: sprintf-js: 1.0.3 dev: false + /argparse/2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + /array-find-index/1.0.2: resolution: {integrity: sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=} engines: {node: '>=0.10.0'} dev: true + /array-union/2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + /asap/2.0.6: resolution: {integrity: sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=} dev: false @@ -703,11 +1074,11 @@ packages: resolution: {integrity: sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==} engines: {node: '>= 10.0.0'} dependencies: - '@babel/types': 7.14.5 + '@babel/types': 7.18.9 dev: false /balanced-match/1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/balanced-match/-/balanced-match-1.0.2.tgz} + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} /bcrypt-pbkdf/1.0.2: resolution: {integrity: sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=} @@ -754,7 +1125,7 @@ packages: dev: false /brace-expansion/1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/brace-expansion/-/brace-expansion-1.1.11.tgz} + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 @@ -765,6 +1136,17 @@ packages: dependencies: fill-range: 7.0.1 + /browserslist/4.21.2: + resolution: {integrity: sha512-MonuOgAtUB46uP5CezYbRaYKBNt2LxP0yX+Pmj4LkcDFGkn9Cbpi83d9sCjwQDErXsIJSzY5oKGDbgOlF/LPAA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001367 + electron-to-chromium: 1.4.195 + node-releases: 2.0.6 + update-browserslist-db: 1.0.5_browserslist@4.21.2 + dev: true + /buffer-equal-constant-time/1.0.1: resolution: {integrity: sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=} dev: false @@ -797,6 +1179,11 @@ packages: resolution: {integrity: sha1-JtII6onje1y95gJQoV8DHBak1ms=} dev: false + /callsites/3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + /camelcase-keys/2.1.0: resolution: {integrity: sha1-MIvur/3ygRkFHvodkyITyRuPkuc=} engines: {node: '>=0.10.0'} @@ -815,6 +1202,10 @@ packages: engines: {node: '>=6'} dev: false + /caniuse-lite/1.0.30001367: + resolution: {integrity: sha512-XDgbeOHfifWV3GEES2B8rtsrADx4Jf+juKX2SICJcaUhjYBO3bR96kvEIHa15VU6ohtOhBZuPGGYGbXMRn0NCw==} + dev: true + /caseless/0.12.0: resolution: {integrity: sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=} dev: false @@ -837,6 +1228,14 @@ packages: supports-color: 7.2.0 dev: false + /chalk/4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + /character-parser/2.2.0: resolution: {integrity: sha1-x84o821LzZdE5f/CxfzeHHMmH8A=} dependencies: @@ -851,11 +1250,26 @@ packages: braces: 3.0.2 glob-parent: 5.1.2 is-binary-path: 2.1.0 - is-glob: 4.0.1 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.2 + + /chokidar/3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.2 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 normalize-path: 3.0.0 readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.2 + dev: true /chownr/1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} @@ -897,15 +1311,13 @@ packages: engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 - dev: false /color-name/1.1.3: - resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} dev: true /color-name/1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - dev: false /combined-stream/1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} @@ -921,8 +1333,13 @@ packages: dev: false optional: true + /commander/9.4.0: + resolution: {integrity: sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==} + engines: {node: ^12.20.0 || >=14} + dev: true + /concat-map/0.0.1: - resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=, tarball: concat-map/download/concat-map-0.0.1.tgz} + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} /configstore/5.0.1: resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==} @@ -943,10 +1360,16 @@ packages: /constantinople/4.0.1: resolution: {integrity: sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==} dependencies: - '@babel/parser': 7.14.6 - '@babel/types': 7.14.5 + '@babel/parser': 7.18.9 + '@babel/types': 7.18.9 dev: false + /convert-source-map/1.8.0: + resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} + dependencies: + safe-buffer: 5.1.2 + dev: true + /cookie/0.4.1: resolution: {integrity: sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==} engines: {node: '>= 0.6'} @@ -966,6 +1389,23 @@ packages: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} dev: true + /cross-env/7.0.3: + resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} + engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + hasBin: true + dependencies: + cross-spawn: 7.0.3 + dev: true + + /cross-spawn/7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + /crypto-random-string/2.0.0: resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} engines: {node: '>=8'} @@ -1000,7 +1440,7 @@ packages: dev: true /debug/2.6.9_supports-color@5.5.0: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/debug/-/debug-2.6.9.tgz} + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: supports-color: '*' peerDependenciesMeta: @@ -1057,6 +1497,19 @@ packages: dependencies: ms: 2.1.2 + /debug/4.3.3_supports-color@8.1.1: + resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/debug/-/debug-4.3.3.tgz} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + supports-color: 8.1.1 + dev: true + /decamelize/1.2.0: resolution: {integrity: sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=} engines: {node: '>=0.10.0'} @@ -1094,6 +1547,10 @@ packages: engines: {node: '>=4.0.0'} dev: false + /deep-is/0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true + /defer-to-connect/1.1.3: resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==} dev: false @@ -1131,6 +1588,25 @@ packages: engines: {node: '>=0.3.1'} dev: true + /diff/5.1.0: + resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} + engines: {node: '>=0.3.1'} + dev: true + + /dir-glob/3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /doctrine/3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: true + /doctypes/1.1.0: resolution: {integrity: sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=} dev: false @@ -1183,6 +1659,10 @@ packages: jake: 10.8.2 dev: true + /electron-to-chromium/1.4.195: + resolution: {integrity: sha512-vefjEh0sk871xNmR5whJf9TEngX+KTKS3hOHpjoMpauKkwlGwtMz1H8IaIjAT/GNnX0TbGwAdmVoXCAzXf+PPg==} + dev: true + /emoji-regex/7.0.3: resolution: {integrity: sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==} dev: false @@ -1197,6 +1677,11 @@ packages: once: 1.4.0 dev: false + /entities/3.0.1: + resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==} + engines: {node: '>=0.12'} + dev: false + /error-ex/1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: @@ -1247,14 +1732,113 @@ packages: is-symbol: 1.0.4 dev: false + /escalade/3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: true + /escape-goat/2.1.1: resolution: {integrity: sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==} engines: {node: '>=8'} dev: false - /escape-string-regexp/1.0.5: - resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} - engines: {node: '>=0.8.0'} + /escape-string-regexp/1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + dev: true + + /escape-string-regexp/4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: true + + /eslint-scope/5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: true + + /eslint-scope/7.1.1: + resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + + /eslint-utils/3.0.0_eslint@8.20.0: + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' + dependencies: + eslint: 8.20.0_supports-color@8.1.1 + eslint-visitor-keys: 2.1.0 + dev: true + + /eslint-visitor-keys/2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + dev: true + + /eslint-visitor-keys/3.3.0: + resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint/8.20.0_supports-color@8.1.1: + resolution: {integrity: sha512-d4ixhz5SKCa1D6SCPrivP7yYVi7nyD6A4vs6HIAul9ujBzcEmZVM3/0NN/yu5nKhmO1wjp5xQ46iRfmDGlOviA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint/eslintrc': 1.3.0_supports-color@8.1.1 + '@humanwhocodes/config-array': 0.9.5_supports-color@8.1.1 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.3_supports-color@8.1.1 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.1.1 + eslint-utils: 3.0.0_eslint@8.20.0 + eslint-visitor-keys: 3.3.0 + espree: 9.3.2 + esquery: 1.4.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + functional-red-black-tree: 1.0.1 + glob-parent: 6.0.2 + globals: 13.16.0 + ignore: 5.2.0 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.1 + regexpp: 3.2.0 + strip-ansi: 6.0.1 + strip-json-comments: 3.1.1 + text-table: 0.2.0 + v8-compile-cache: 2.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /espree/9.3.2: + resolution: {integrity: sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.7.1 + acorn-jsx: 5.3.2_acorn@8.7.1 + eslint-visitor-keys: 3.3.0 dev: true /esprima/4.0.1: @@ -1263,6 +1847,35 @@ packages: hasBin: true dev: false + /esquery/1.4.0: + resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: true + + /esrecurse/4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: true + + /estraverse/4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + dev: true + + /estraverse/5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: true + + /esutils/2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true + /extend/3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} dev: false @@ -1276,8 +1889,6 @@ packages: /fast-deep-equal/3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - dev: false - optional: true /fast-glob/3.2.11: resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==} @@ -1292,8 +1903,10 @@ packages: /fast-json-stable-stringify/2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - dev: false - optional: true + + /fast-levenshtein/2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: true /fastq/1.13.0: resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} @@ -1301,6 +1914,13 @@ packages: reusify: 1.0.4 dev: true + /file-entry-cache/6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.0.4 + dev: true + /file-type/16.5.0: resolution: {integrity: sha512-OxgWA9tbL8N/WP00GD1z8O0MiwQKFyWRs1q+3FhjdvcGgKqwxcejyGWso3n4/IMU6DdwV+ARZ4A7TTnPkDcSiw==} engines: {node: '>=8'} @@ -1313,7 +1933,7 @@ packages: /filelist/1.0.2: resolution: {integrity: sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==} dependencies: - minimatch: 3.0.4 + minimatch: 3.1.2 dev: true /fill-range/7.0.1: @@ -1322,14 +1942,33 @@ packages: dependencies: to-regex-range: 5.0.1 + /find-rc/4.0.1: + resolution: {integrity: sha512-YEox27Ie95/zoqkxm6BYSPguJsvYz9d9G1YuaNKhxjSgZbjMC9q5blmvbL4+Ail8yacQIE0OObhDb+ZwvfJafw==} + dev: true + /find-up/1.1.2: - resolution: {integrity: sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=} + resolution: {integrity: sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==} engines: {node: '>=0.10.0'} dependencies: path-exists: 2.1.0 pinkie-promise: 2.0.1 dev: true + /find-up/3.0.0: + resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} + engines: {node: '>=6'} + dependencies: + locate-path: 3.0.0 + dev: true + + /flat-cache/3.0.4: + resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.2.5 + rimraf: 3.0.2 + dev: true + /flatted/3.2.5: resolution: {integrity: sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/flatted/-/flatted-3.2.5.tgz} dev: true @@ -1402,6 +2041,10 @@ packages: /function-bind/1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + /functional-red-black-tree/1.0.1: + resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} + dev: true + /gauge/2.7.4: resolution: {integrity: sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=} dependencies: @@ -1415,6 +2058,11 @@ packages: wide-align: 1.1.3 dev: false + /gensync/1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + dev: true + /get-intrinsic/1.1.1: resolution: {integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==} dependencies: @@ -1453,7 +2101,14 @@ packages: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} dependencies: - is-glob: 4.0.1 + is-glob: 4.0.3 + + /glob-parent/6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: true /glob/7.1.7: resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/glob/-/glob-7.1.7.tgz} @@ -1472,6 +2127,30 @@ packages: ini: 1.3.7 dev: false + /globals/11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + dev: true + + /globals/13.16.0: + resolution: {integrity: sha512-A1lrQfpNF+McdPOnnFqY3kSN0AFTy485bTi1bkLk4mVPODIUEcSfhHgRqA+QdXPksrSTTztYXx37NFV+GpGk3Q==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + + /globby/11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.2.11 + ignore: 5.2.0 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + /got/9.6.0: resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==} engines: {node: '>=8.6'} @@ -1495,7 +2174,7 @@ packages: resolution: {integrity: sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==} /handlebars/4.7.7: - resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/handlebars/-/handlebars-4.7.7.tgz} + resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==} engines: {node: '>=0.4.7'} hasBin: true dependencies: @@ -1505,7 +2184,6 @@ packages: wordwrap: 1.0.0 optionalDependencies: uglify-js: 3.13.9 - dev: false /hapi-auth-jwt2/10.2.0: resolution: {integrity: sha512-6Xkt0LHNBglYWOlFulNgf5pUPqRGMKpAHZjwEZqC8/07TVlgxr240pENctrthcLi8k/yCunm7x2xCSLNyTGKmg==} @@ -1571,13 +2249,12 @@ packages: dev: false /has-flag/3.0.0: - resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} /has-flag/4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - dev: false /has-symbols/1.0.2: resolution: {integrity: sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==} @@ -1661,18 +2338,30 @@ packages: /ignore-walk/3.0.4: resolution: {integrity: sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==} dependencies: - minimatch: 3.0.4 + minimatch: 3.1.2 dev: false + /ignore/5.2.0: + resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} + engines: {node: '>= 4'} + dev: true + + /import-fresh/3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + /import-lazy/2.1.0: resolution: {integrity: sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=} engines: {node: '>=4'} dev: false /imurmurhash/0.1.4: - resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=} + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} - dev: false /indent-string/2.1.0: resolution: {integrity: sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=} @@ -1761,7 +2450,7 @@ packages: dev: false /is-extglob/2.1.1: - resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} /is-finite/1.1.0: @@ -1786,8 +2475,8 @@ packages: engines: {node: '>=8'} dev: false - /is-glob/4.0.1: - resolution: {integrity: sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==} + /is-glob/4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 @@ -1901,9 +2590,7 @@ packages: dev: false /isexe/2.0.0: - resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} - dev: false - optional: true + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} /isstream/0.1.2: resolution: {integrity: sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=} @@ -1942,6 +2629,10 @@ packages: resolution: {integrity: sha1-Fzb939lyTyijaCrcYjCufk6Weds=} dev: false + /js-tokens/4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: true + /js-yaml/3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true @@ -1950,11 +2641,24 @@ packages: esprima: 4.0.1 dev: false + /js-yaml/4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + /jsbn/0.1.1: resolution: {integrity: sha1-peZUwuWi3rXyAdls77yoDA7y9RM=} dev: false optional: true + /jsesc/2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + dev: true + /json-buffer/3.0.0: resolution: {integrity: sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=} dev: false @@ -1986,14 +2690,16 @@ packages: /json-schema-traverse/0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - dev: false - optional: true /json-schema/0.2.3: resolution: {integrity: sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=} dev: false optional: true + /json-stable-stringify-without-jsonify/1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true + /json-stringify-safe/5.0.1: resolution: {integrity: sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=} dev: false @@ -2006,6 +2712,12 @@ packages: minimist: 1.2.5 dev: true + /json5/2.2.1: + resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==} + engines: {node: '>=6'} + hasBin: true + dev: true + /jsonfile/6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: @@ -2040,6 +2752,13 @@ packages: dev: false optional: true + /jstransformer-markdown-it/3.0.0: + resolution: {integrity: sha512-/2fNT0ir/D0NYI5roBTVRwDV2YBjMfU3f/wSeraKLfOMNxcrIJatjJQy4zPmwQBxqKxUojXBN8hmfQBMTLZ3KA==} + engines: {node: '>=7'} + dependencies: + markdown-it: 13.0.1 + dev: false + /jstransformer/1.0.0: resolution: {integrity: sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=} dependencies: @@ -2075,6 +2794,20 @@ packages: package-json: 6.5.0 dev: false + /levn/0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /linkify-it/4.0.1: + resolution: {integrity: sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==} + dependencies: + uc.micro: 1.0.6 + dev: false + /load-json-file/1.1.0: resolution: {integrity: sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=} engines: {node: '>=0.10.0'} @@ -2086,6 +2819,14 @@ packages: strip-bom: 2.0.0 dev: true + /locate-path/3.0.0: + resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} + engines: {node: '>=6'} + dependencies: + p-locate: 3.0.0 + path-exists: 3.0.0 + dev: true + /lodash.get/4.4.2: resolution: {integrity: sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=} dev: false @@ -2118,6 +2859,10 @@ packages: resolution: {integrity: sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=} dev: false + /lodash.merge/4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true + /lodash.once/4.1.1: resolution: {integrity: sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=} dev: false @@ -2180,6 +2925,21 @@ packages: engines: {node: '>=0.10.0'} dev: true + /markdown-it/13.0.1: + resolution: {integrity: sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==} + hasBin: true + dependencies: + argparse: 2.0.1 + entities: 3.0.1 + linkify-it: 4.0.1 + mdurl: 1.0.1 + uc.micro: 1.0.6 + dev: false + + /mdurl/1.0.1: + resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} + dev: false + /meow/3.7.0: resolution: {integrity: sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=} engines: {node: '>=0.10.0'} @@ -2232,6 +2992,11 @@ packages: dependencies: brace-expansion: 1.1.11 + /minimatch/3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + /minimist/1.2.5: resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==} @@ -2275,6 +3040,13 @@ packages: engines: {node: '>=10'} hasBin: true + /mo-walk/1.2.0: + resolution: {integrity: sha512-rat9d/EMjr08N56/u2MwMaykb/bGuByYmTgG8eJIJbUxPtSuoW76el6Tm1+cUqY0lmhuss4IIO3x2lWLojmRTA==} + engines: {node: '>=12'} + dependencies: + pkg-up: 3.1.0 + dev: true + /moment-timezone/0.5.33: resolution: {integrity: sha512-PTc2vcT8K9J5/9rDEPe5czSIKgLoGsH8UNpA4qZTVw0Vd/Uz19geE9abbIOQKaAQFcnQ3v5YEXrbSc5BpshH+w==} dependencies: @@ -2305,6 +3077,15 @@ packages: uid-safe: 2.1.5 dev: false + /mylas/2.1.11: + resolution: {integrity: sha512-krnPUl3n9/k52FGCltWMYcqp9SttxjRJEy0sWLk+g7mIa7wnZrmNSZ40Acx7ghzRSOsxt2rEqMbaq4jWlnTDKg==} + engines: {node: '>=12.0.0'} + dev: true + + /natural-compare/1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true + /needle/2.6.0: resolution: {integrity: sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg==} engines: {node: '>= 4.4.x'} @@ -2318,8 +3099,7 @@ packages: dev: false /neo-async/2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/neo-async/-/neo-async-2.6.2.tgz} - dev: false + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} /node-addon-api/3.2.1: resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==} @@ -2370,6 +3150,10 @@ packages: - supports-color dev: false + /node-releases/2.0.6: + resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} + dev: true + /nodemon/2.0.7: resolution: {integrity: sha512-XHzK69Awgnec9UzHr1kc8EomQh4sjTQ8oRf8TsGrSmHDx9/UmiGG9E/mM3BuTfNeFwdNBvrqQq/RHL0xIeyFOA==} engines: {node: '>=8.10.0'} @@ -2516,6 +3300,18 @@ packages: format-util: 1.0.5 dev: false + /optionator/0.9.1: + resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.3 + dev: true + /os-homedir/1.0.2: resolution: {integrity: sha1-/7xJiDNuDoM94MFox+8VISGqf7M=} engines: {node: '>=0.10.0'} @@ -2538,6 +3334,25 @@ packages: engines: {node: '>=6'} dev: false + /p-limit/2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + dev: true + + /p-locate/3.0.0: + resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} + engines: {node: '>=6'} + dependencies: + p-limit: 2.3.0 + dev: true + + /p-try/2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: true + /package-json/6.5.0: resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==} engines: {node: '>=8'} @@ -2548,6 +3363,13 @@ packages: semver: 6.3.0 dev: false + /parent-module/1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: true + /parse-json/2.2.0: resolution: {integrity: sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=} engines: {node: '>=0.10.0'} @@ -2556,21 +3378,31 @@ packages: dev: true /path-exists/2.1.0: - resolution: {integrity: sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=} + resolution: {integrity: sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==} engines: {node: '>=0.10.0'} dependencies: pinkie-promise: 2.0.1 dev: true + /path-exists/3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + dev: true + /path-is-absolute/1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz} engines: {node: '>=0.10.0'} + /path-key/3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + /path-parse/1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} /path-type/1.1.0: - resolution: {integrity: sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=} + resolution: {integrity: sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==} engines: {node: '>=0.10.0'} dependencies: graceful-fs: 4.2.6 @@ -2578,6 +3410,11 @@ packages: pinkie-promise: 2.0.1 dev: true + /path-type/4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + /peek-readable/3.1.3: resolution: {integrity: sha512-mpAcysyRJxmICBcBa5IXH7SZPvWkcghm6Fk8RekoS3v+BpbSzlZzuWbMx+GXrlUwESi9qHar4nVEZNMKylIHvg==} engines: {node: '>=8'} @@ -2588,6 +3425,10 @@ packages: dev: false optional: true + /picocolors/1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: true + /picomatch/2.3.0: resolution: {integrity: sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==} engines: {node: '>=8.6'} @@ -2609,6 +3450,24 @@ packages: engines: {node: '>=0.10.0'} dev: true + /pkg-up/3.1.0: + resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} + engines: {node: '>=8'} + dependencies: + find-up: 3.0.0 + dev: true + + /plimit-lit/1.2.7: + resolution: {integrity: sha512-ce/kfCHFJ2sIK1IuSnXfVBxoMaIwuAF9J5NjFwxng1j+r8XguGxXMK87dBSODQfY+se2Raj/grpx5EAK9kapEA==} + dependencies: + queue-lit: 1.2.8 + dev: true + + /prelude-ls/1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true + /prepend-http/2.0.0: resolution: {integrity: sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=} engines: {node: '>=4'} @@ -2734,8 +3593,6 @@ packages: /punycode/2.1.1: resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} engines: {node: '>=6'} - dev: false - optional: true /pupa/2.1.1: resolution: {integrity: sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==} @@ -2750,6 +3607,10 @@ packages: dev: false optional: true + /queue-lit/1.2.8: + resolution: {integrity: sha512-CR0/8Xb0oRk4rZrteSZcjrrPhWfXGBAWa/ATxYCqpdM4fnZu8M3zob5ajLxLUCXmpOzhHZ1+zgscrlzQtEOM0A==} + dev: true + /queue-microtask/1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true @@ -2837,6 +3698,11 @@ packages: define-properties: 1.1.3 dev: false + /regexpp/3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} + dev: true + /registry-auth-token/4.2.1: resolution: {integrity: sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==} engines: {node: '>=6.0.0'} @@ -2886,6 +3752,11 @@ packages: dev: false optional: true + /resolve-from/4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true + /resolve/1.20.0: resolution: {integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==} dependencies: @@ -2924,7 +3795,6 @@ packages: hasBin: true dependencies: glob: 7.1.7 - dev: false /run-parallel/1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -2934,7 +3804,6 @@ packages: /safe-buffer/5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - dev: false /safe-buffer/5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} @@ -2947,6 +3816,10 @@ packages: resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} dev: false + /seedrandom/3.0.5: + resolution: {integrity: sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==} + dev: true + /semver-diff/3.1.1: resolution: {integrity: sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==} engines: {node: '>=8'} @@ -2955,7 +3828,7 @@ packages: dev: false /semver/5.3.0: - resolution: {integrity: sha1-myzl094C0XxgEq0yaqa00M9U+U8=} + resolution: {integrity: sha512-mfmm3/H9+67MCVix1h+IXTpDwL6710LyHuk7+cWC9T1mE0qz4iHhh6r4hU2wrIT9iTsAAC2XQRvfblL028cpLw==} hasBin: true dev: false optional: true @@ -2967,7 +3840,6 @@ packages: /semver/6.3.0: resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} hasBin: true - dev: false /semver/7.3.5: resolution: {integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==} @@ -3032,6 +3904,18 @@ packages: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} dev: false + /shebang-command/2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex/3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true + /side-channel/1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: @@ -3043,6 +3927,11 @@ packages: /signal-exit/3.0.3: resolution: {integrity: sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==} + /slash/3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + /source-map-support/0.5.19: resolution: {integrity: sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==} dependencies: @@ -3054,6 +3943,11 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + /source-map/0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + dev: true + /spdx-correct/3.1.1: resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} dependencies: @@ -3152,7 +4046,7 @@ packages: dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.0 + strip-ansi: 6.0.1 dev: false /string.prototype.trimend/1.0.4: @@ -3182,7 +4076,7 @@ packages: dev: true /strip-ansi/3.0.1: - resolution: {integrity: sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=} + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} engines: {node: '>=0.10.0'} dependencies: ansi-regex: 2.1.1 @@ -3195,12 +4089,11 @@ packages: ansi-regex: 4.1.0 dev: false - /strip-ansi/6.0.0: - resolution: {integrity: sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==} + /strip-ansi/6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} dependencies: - ansi-regex: 5.0.0 - dev: false + ansi-regex: 5.0.1 /strip-bom/2.0.0: resolution: {integrity: sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=} @@ -3226,6 +4119,11 @@ packages: resolution: {integrity: sha1-PFMZQukIwml8DsNEhYwobHygpgo=} engines: {node: '>=0.10.0'} + /strip-json-comments/3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true + /strtok3/6.0.8: resolution: {integrity: sha512-QLgv+oiXwXgCgp2PdPPa+Jpp4D9imK9e/0BsyfeFMr6QL6wMVqoVn9+OXQ9I7MZbmUzN6lmitTJ09uwS2OmGcw==} engines: {node: '>=8'} @@ -3246,7 +4144,13 @@ packages: engines: {node: '>=8'} dependencies: has-flag: 4.0.0 - dev: false + + /supports-color/8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + dependencies: + has-flag: 4.0.0 + dev: true /swagger-methods/1.0.8: resolution: {integrity: sha512-G6baCwuHA+C5jf4FNOrosE4XlmGsdjbOjdBK4yuiDDj/ro9uR4Srj3OR84oQMT8F3qKp00tYNv0YN730oTHPZA==} @@ -3313,10 +4217,13 @@ packages: engines: {node: '>=8'} dev: false + /text-table/0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true + /to-fast-properties/2.0.0: - resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=} + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} - dev: false /to-readable-stream/1.0.0: resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==} @@ -3446,6 +4353,18 @@ packages: yn: 3.1.1 dev: true + /tsc-alias/1.7.0: + resolution: {integrity: sha512-n/K6g8S7Ec7Y/A2Z77Ikp2Uv1S1ERtT63ni69XV4W1YPT4rnNmz8ItgIiJYvKfFnKfqcZQ81UPjoKpMTxaC/rg==} + hasBin: true + dependencies: + chokidar: 3.5.3 + commander: 9.4.0 + globby: 11.1.0 + mylas: 2.1.11 + normalize-path: 3.0.0 + plimit-lit: 1.2.7 + dev: true + /tsconfig-paths/3.9.0: resolution: {integrity: sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==} dependencies: @@ -3476,6 +4395,18 @@ packages: dev: false optional: true + /type-check/0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: true + + /type-fest/0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true + /type-fest/0.8.1: resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} engines: {node: '>=8'} @@ -3493,12 +4424,15 @@ packages: hasBin: true dev: true + /uc.micro/1.0.6: + resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} + dev: false + /uglify-js/3.13.9: resolution: {integrity: sha512-wZbyTQ1w6Y7fHdt8sJnHfSIuWeDgk6B5rCb4E/AM6QNNPbOMIZph21PW5dRB3h7Df0GszN+t7RuUH6sWK5bF0g==} engines: {node: '>=0.8.0'} hasBin: true requiresBuild: true - dev: false optional: true /uid-safe/2.1.5: @@ -3536,6 +4470,17 @@ packages: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} engines: {node: '>= 10.0.0'} + /update-browserslist-db/1.0.5_browserslist@4.21.2: + resolution: {integrity: sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.2 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + /update-notifier/4.1.3: resolution: {integrity: sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==} engines: {node: '>=8'} @@ -3559,8 +4504,6 @@ packages: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.1.1 - dev: false - optional: true /url-parse-lax/3.0.0: resolution: {integrity: sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=} @@ -3584,6 +4527,10 @@ packages: hasBin: true dev: false + /v8-compile-cache/2.3.0: + resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} + dev: true + /validate-npm-package-license/3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} dependencies: @@ -3651,6 +4598,14 @@ packages: dev: false optional: true + /which/2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + /wide-align/1.1.3: resolution: {integrity: sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==} dependencies: @@ -3664,12 +4619,16 @@ packages: string-width: 4.2.2 dev: false + /will-call/1.0.1: + resolution: {integrity: sha512-1hEeV8SfBYhNRc/bNXeQfyUBX8Dl9SCYME3qXh99iZP9wJcnhnlBsoBw8Y0lXVZ3YuPsoxImTzBiol1ouNR/hg==} + dev: true + /with/7.0.2: resolution: {integrity: sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==} engines: {node: '>= 10.0.0'} dependencies: - '@babel/parser': 7.14.6 - '@babel/types': 7.14.5 + '@babel/parser': 7.18.9 + '@babel/types': 7.18.9 assert-never: 1.2.1 babel-walk: 3.0.0-canary-5 dev: false @@ -3680,9 +4639,13 @@ packages: '@types/node': 17.0.21 dev: false + /word-wrap/1.2.3: + resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} + engines: {node: '>=0.10.0'} + dev: true + /wordwrap/1.0.0: - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/wordwrap/-/wordwrap-1.0.0.tgz} - dev: false + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} /wrappy/1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/wrappy/-/wrappy-1.0.2.tgz} diff --git a/readme.md b/readme.md index ab8fb11..e7435da 100644 --- a/readme.md +++ b/readme.md @@ -5,4 +5,9 @@ * https://blog.meathill.com/tech/fe/interpolation-in-pug-with-extends.html 可参考项目 -- https://github.com/hks-epod/paydash \ No newline at end of file +- https://github.com/hks-epod/paydash + +增加测试库 +- @hapi/code +- @hapi/lab +暂时不太清楚怎么结合使用 \ No newline at end of file diff --git a/source/main.ts b/source/main.ts index deff501..139667e 100644 --- a/source/main.ts +++ b/source/main.ts @@ -1,4 +1,4 @@ -require("dotenv").config(); +// require("dotenv").config(); import { configure, getLogger } from "log4js"; import log4jsConfig from "./log4js_config"; diff --git a/source/route/views/index/index.ts b/source/route/views/index/index.ts index b313e66..fc4214f 100644 --- a/source/route/views/index/index.ts +++ b/source/route/views/index/index.ts @@ -62,7 +62,10 @@ export default class Index { // console.log(await glob("docs/"+"*.md")); const mdPath = path.resolve(baseDir, "docs/"+req.params.path) if(fs.existsSync(mdPath)){ - console.log("哈哈"); + const str = fs.readFileSync(mdPath, "utf8") + return h.view("views/css.pug", { + content: str.toString() + }); } // 解析文档 return h.view("views/css.pug"); diff --git a/source/util/index.ts b/source/util/index.ts index eb8bf09..a2913fd 100644 --- a/source/util/index.ts +++ b/source/util/index.ts @@ -1,9 +1,12 @@ import path from "path"; export * from "./res-helper"; +export const isDev = process.env.NODE_ENV === "development" +export const isProd = process.env.NODE_ENV === "production" + export const baseDir = path.resolve(__dirname, "../../"); -export const sourceDir = path.resolve(__dirname, "../../source"); +export const sourceDir = isProd? path.resolve(__dirname, "../../dist") : path.resolve(__dirname, "../../source"); export const publicDir = path.resolve(__dirname, "../../public"); export const uploadDir = path.resolve(publicDir, "upload"); export const uploadPath = "/public/upload"; // 图片上传地址 diff --git a/test/index.js b/test/index.js deleted file mode 100644 index 4c4f222..0000000 --- a/test/index.js +++ /dev/null @@ -1,4 +0,0 @@ -const path = require("path") - -console.log(path.parse("wallpaper.png")); -console.log(path.format("walll",)); \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index a76106e..516331f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -17,6 +17,6 @@ "#/*": ["types/*"] } }, - "include": ["source", "types"], + "include": ["source", "types", "test"], "exclude": ["node_modules"] }