From 24ca69bc08b36d9585a9bf3c9e96593fecb31512 Mon Sep 17 00:00:00 2001 From: xcy <871622040@qq.com> Date: Tue, 19 Dec 2023 22:30:01 +0800 Subject: [PATCH 01/41] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E5=BC=80=E6=9C=8D?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E9=82=AE=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api_cross/email/ApiDelCrossEmail.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api_cross/email/ApiDelCrossEmail.ts b/src/api_cross/email/ApiDelCrossEmail.ts index 72fee11..d958688 100644 --- a/src/api_cross/email/ApiDelCrossEmail.ts +++ b/src/api_cross/email/ApiDelCrossEmail.ts @@ -5,7 +5,7 @@ export default async function (call: ApiCall let eids = call.req.eids; G.mongodb.collection("email").updateMany({ _id: {$in: eids.map((i) => G.mongodb.conversionId(i))} - }, {isdel: true}) + }, {$set: {isdel: true}}) call.succ({result:true}) } \ No newline at end of file From 0b9da722799aad385b8f447888a4b8e0b4526945 Mon Sep 17 00:00:00 2001 From: ciniao <4041990@qq.com> Date: Tue, 19 Dec 2023 17:00:25 +0800 Subject: [PATCH 02/41] =?UTF-8?q?=E5=A2=9E=E5=8A=A0gc=20Test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js_pm2.config.js | 4 + package-lock.json | 31 ++++++++ package.json | 1 + src/api_o2s/games/Apiheapdump.ts | 23 ++++++ src/monopoly/protocols/games/Ptlheapdump.ts | 18 +++++ src/monopoly/protocols/serviceProto.ts | 84 ++++++++++++++++----- src/setHttp.ts | 3 +- 7 files changed, 145 insertions(+), 19 deletions(-) create mode 100644 src/api_o2s/games/Apiheapdump.ts create mode 100644 src/monopoly/protocols/games/Ptlheapdump.ts diff --git a/js_pm2.config.js b/js_pm2.config.js index 0efa009..bb6f27d 100644 --- a/js_pm2.config.js +++ b/js_pm2.config.js @@ -60,6 +60,8 @@ const localApps = [ instances: instancesNum, // 传递给脚本的参数 args: '-serverType msg', + //允许强制gc + node_args: '--expose-gc', // 是否启用监控模式,默认是false。如果设置成true,当应用程序变动时,pm2会自动重载。这里也可以设置你要监控的文件。 watch: false, // 不用监听的文件 @@ -86,6 +88,8 @@ const crossApps = [ cwd: './', // 传递给脚本的参数 args: '-serverType cross', + //允许强制gc + node_args: '--expose-gc', // 是否启用监控模式,默认是false。如果设置成true,当应用程序变动时,pm2会自动重载。这里也可以设置你要监控的文件。 watch: false, // 不用监听的文件 diff --git a/package-lock.json b/package-lock.json index 824ac2d..c0fc9f0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "axios": "^1.4.0", "crypto-js": "^4.1.1", "express": "^4.18.2", + "heapdump": "^0.3.15", "ioredis": "^5.3.2", "json5": "^2.2.3", "mathjs": "^11.4.0", @@ -2545,6 +2546,18 @@ "he": "bin/he" } }, + "node_modules/heapdump": { + "version": "0.3.15", + "resolved": "https://registry.npmjs.org/heapdump/-/heapdump-0.3.15.tgz", + "integrity": "sha512-n8aSFscI9r3gfhOcAECAtXFaQ1uy4QSke6bnaL+iymYZ/dWs9cqDqHM+rALfsHUwukUbxsdlECZ0pKmJdQ/4OA==", + "hasInstallScript": true, + "dependencies": { + "nan": "^2.13.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/http-basic": { "version": "8.1.3", "resolved": "https://registry.npmmirror.com/http-basic/-/http-basic-8.1.3.tgz", @@ -3199,6 +3212,11 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, + "node_modules/nan": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", + "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==" + }, "node_modules/nanoid": { "version": "3.3.1", "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.1.tgz", @@ -6645,6 +6663,14 @@ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, + "heapdump": { + "version": "0.3.15", + "resolved": "https://registry.npmjs.org/heapdump/-/heapdump-0.3.15.tgz", + "integrity": "sha512-n8aSFscI9r3gfhOcAECAtXFaQ1uy4QSke6bnaL+iymYZ/dWs9cqDqHM+rALfsHUwukUbxsdlECZ0pKmJdQ/4OA==", + "requires": { + "nan": "^2.13.2" + } + }, "http-basic": { "version": "8.1.3", "resolved": "https://registry.npmmirror.com/http-basic/-/http-basic-8.1.3.tgz", @@ -7163,6 +7189,11 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, + "nan": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", + "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==" + }, "nanoid": { "version": "3.3.1", "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.1.tgz", diff --git a/package.json b/package.json index 99faaea..2f06bdb 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,7 @@ "axios": "^1.4.0", "crypto-js": "^4.1.1", "express": "^4.18.2", + "heapdump": "^0.3.15", "ioredis": "^5.3.2", "json5": "^2.2.3", "mathjs": "^11.4.0", diff --git a/src/api_o2s/games/Apiheapdump.ts b/src/api_o2s/games/Apiheapdump.ts new file mode 100644 index 0000000..e4b923d --- /dev/null +++ b/src/api_o2s/games/Apiheapdump.ts @@ -0,0 +1,23 @@ +import { ApiCall } from "tsrpc"; +import { Reqheapdump, Resheapdump } from "../../monopoly/protocols/games/Ptlheapdump"; +var heapdump = require('heapdump'); + +export default async function (call: ApiCall) { + + if(call.req.act == "heapdump"){ + let name = Date.now() + '.heapsnapshot' + heapdump.writeSnapshot(name); + call.succ({ + code:200, + data:name + }) + } + + if(call.req.act == "gc"){ + global.gc(); + call.succ({ + code:200, + data:"gc..." + }) + } +} \ No newline at end of file diff --git a/src/monopoly/protocols/games/Ptlheapdump.ts b/src/monopoly/protocols/games/Ptlheapdump.ts new file mode 100644 index 0000000..bd93a7f --- /dev/null +++ b/src/monopoly/protocols/games/Ptlheapdump.ts @@ -0,0 +1,18 @@ +import { StringTypeSchema } from "tsbuffer-schema"; + +/** + * 区服初始化 + */ +export type Reqheapdump = { + act:string, + data:any +}; + + +export type Resheapdump = { + /** + * 如果发送成功 将返回 + */ + code: number + data: any; +}; \ No newline at end of file diff --git a/src/monopoly/protocols/serviceProto.ts b/src/monopoly/protocols/serviceProto.ts index 782cc14..6ca08f2 100644 --- a/src/monopoly/protocols/serviceProto.ts +++ b/src/monopoly/protocols/serviceProto.ts @@ -1,6 +1,7 @@ import { ServiceProto } from 'tsrpc-proto'; import { Reqsendemail, Ressendemail } from './email/Ptlsendemail'; import { Reqdeploy, Resdeploy } from './games/Ptldeploy'; +import { Reqheapdump, Resheapdump } from './games/Ptlheapdump'; import { Reqmetrics, Resmetrics } from './games/Ptlmetrics'; import { Reqnotification, Resnotification } from './games/Ptlnotification'; import { Reqopen, Resopen } from './games/Ptlopen'; @@ -31,6 +32,10 @@ export interface ServiceType { req: Reqdeploy, res: Resdeploy }, + "games/heapdump": { + req: Reqheapdump, + res: Resheapdump + }, "games/metrics": { req: Reqmetrics, res: Resmetrics @@ -127,96 +132,101 @@ export const serviceProto: ServiceProto = { }, { "id": 2, - "name": "games/metrics", + "name": "games/heapdump", "type": "api" }, { "id": 3, - "name": "games/notification", + "name": "games/metrics", "type": "api" }, { "id": 4, - "name": "games/open", + "name": "games/notification", "type": "api" }, { "id": 5, - "name": "games/ranking", + "name": "games/open", "type": "api" }, { "id": 6, - "name": "gift/popup", + "name": "games/ranking", "type": "api" }, { "id": 7, - "name": "gm/Pay", + "name": "gift/popup", "type": "api" }, { "id": 8, - "name": "gm/SendPrize", + "name": "gm/Pay", "type": "api" }, { "id": 9, - "name": "hdinfo/details", + "name": "gm/SendPrize", "type": "api" }, { "id": 10, - "name": "AddHuoDong", + "name": "hdinfo/details", "type": "api" }, { "id": 11, - "name": "CatAllhd", + "name": "AddHuoDong", "type": "api" }, { "id": 12, - "name": "DelHuoDong", + "name": "CatAllhd", "type": "api" }, { "id": 13, - "name": "Email", + "name": "DelHuoDong", "type": "api" }, { "id": 14, - "name": "GetLog", + "name": "Email", "type": "api" }, { "id": 15, - "name": "healthz", + "name": "GetLog", "type": "api" }, { "id": 16, - "name": "union/rename", + "name": "healthz", "type": "api" }, { "id": 17, - "name": "user/data", + "name": "union/rename", "type": "api" }, { "id": 18, - "name": "user/disable", + "name": "user/data", "type": "api" }, { "id": 19, - "name": "user/getdata", + "name": "user/disable", "type": "api" }, { "id": 20, + "name": "user/getdata", + "type": "api" + }, + { + "id": 21, "name": "user/rename", "type": "api" } @@ -367,6 +377,44 @@ export const serviceProto: ServiceProto = { } ] }, + "games/Ptlheapdump/Reqheapdump": { + "type": "Interface", + "properties": [ + { + "id": 0, + "name": "act", + "type": { + "type": "String" + } + }, + { + "id": 1, + "name": "data", + "type": { + "type": "Any" + } + } + ] + }, + "games/Ptlheapdump/Resheapdump": { + "type": "Interface", + "properties": [ + { + "id": 0, + "name": "code", + "type": { + "type": "Number" + } + }, + { + "id": 1, + "name": "data", + "type": { + "type": "Any" + } + } + ] + }, "games/Ptlmetrics/Reqmetrics": { "type": "Interface" }, diff --git a/src/setHttp.ts b/src/setHttp.ts index 6c10173..62af391 100644 --- a/src/setHttp.ts +++ b/src/setHttp.ts @@ -10,7 +10,8 @@ export async function createHttp() { json: true, cors: '*', port: G.config.httpPort, - logLevel: G.argv.logModel as LogLevel + logLevel: G.argv.logModel as LogLevel, + apiTimeout:300000, }); setHttp(G.http); await G.http.autoImplementApi(resolve(__dirname, 'api_o2s'), true); From 3c84f4092aee08717a9387027bcf10b7e264801b Mon Sep 17 00:00:00 2001 From: ciniao <4041990@qq.com> Date: Wed, 20 Dec 2023 12:29:19 +0800 Subject: [PATCH 03/41] =?UTF-8?q?=E7=8E=8B=E8=80=85=E8=8D=A3=E8=80=80?= =?UTF-8?q?=E6=80=A7=E8=83=BD=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api_cross/wzry/ApiRank.ts | 12 +++++++++--- src/public/scheduler/scheduler_wzry.ts | 13 +++++++------ 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/api_cross/wzry/ApiRank.ts b/src/api_cross/wzry/ApiRank.ts index 767fdc8..77ccad7 100644 --- a/src/api_cross/wzry/ApiRank.ts +++ b/src/api_cross/wzry/ApiRank.ts @@ -1,23 +1,29 @@ import {ApiCall} from "tsrpc"; import {ReqRank, ResRank} from "../../cross/protocols/wzry/PtlRank"; import {player} from "../../shared/protocols/user/type"; -import {FindOptions} from "mongodb"; +import {Filter, FindOptions, OptionalId} from "mongodb"; +import { CollectionRankList } from "../../module/collection_rank"; -export async function getRankList(limit?: number, projection?: any) { +export async function getRankList(limit?: number, projection?: any, _where?:any) { let option: FindOptions = { sort: { 'data.valArr': -1, 'data.player.power': -1 } } + let filter:Filter> = {type: 'wzryCross'}; + if (limit != null) { option.limit = limit; } if (projection != null) { option.projection = projection; } + if (_where != null) { + Object.assign(filter, _where); + } - let listArr = await G.mongodb.collection('rankList').find({type: 'wzryCross'}, option).toArray(); + let listArr = await G.mongodb.collection('rankList').find(filter, option).toArray(); let list = listArr.map(l => l.data); return list; diff --git a/src/public/scheduler/scheduler_wzry.ts b/src/public/scheduler/scheduler_wzry.ts index 2ae2094..02d3a8a 100644 --- a/src/public/scheduler/scheduler_wzry.ts +++ b/src/public/scheduler/scheduler_wzry.ts @@ -102,9 +102,10 @@ export class SchedulerWzryDlDjinji extends SchedulerWzryAutoBaoMing { return } - let _zuanshiUser = await getRankList(null,{ + let _zuanshiUser = await getRankList(256,{ 'data.player.uid':1 - }); //Rank.list.wzryCross.getRankListAll() + },{'data.player.isNpc':{$exists:false}}); + if (_zuanshiUser.length < 256) { console.log("本期无玩家,此次不执行") await this.record() @@ -117,10 +118,10 @@ export class SchedulerWzryDlDjinji extends SchedulerWzryAutoBaoMing { for (let index = 0; index < _zuanshiUser.length; index++) { const element = _zuanshiUser[index]; _userList.push(element.player.uid) - if (element.player.uid.indexOf('npc_') != -1) { - if (_userList.length >= 256) break - continue - } + // if (element.player.uid.indexOf('npc_') != -1) { + // if (_userList.length >= 256) break + // continue + // } // 发送晋级钻石赛奖励 prize.length > 0 && EmailFun.addEmail({ uid: element.player.uid, From 7bf1595149b950fdd3644c58d424ab7ac9e8160f Mon Sep 17 00:00:00 2001 From: dy Date: Wed, 20 Dec 2023 15:27:31 +0800 Subject: [PATCH 04/41] package --- package-lock.json | 1792 ++++++++++++++++++++++++++++++++++++++++++++- package.json | 1 + 2 files changed, 1753 insertions(+), 40 deletions(-) diff --git a/package-lock.json b/package-lock.json index c0fc9f0..7ba4421 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,6 +16,7 @@ "json5": "^2.2.3", "mathjs": "^11.4.0", "mongodb": "^4.17.1", + "node-gyp": "^10.0.1", "ramda": "^0.29.1", "redis": "^4.3.1", "shelljs": "^0.8.5", @@ -1071,6 +1072,95 @@ "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz", "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==" }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.0", "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", @@ -1105,6 +1195,79 @@ "sparse-bitfield": "^3.0.3" } }, + "node_modules/@npmcli/agent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.0.tgz", + "integrity": "sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q==", + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/agent/node_modules/lru-cache": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/@npmcli/fs": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", + "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/fs/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/fs/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/fs/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@redis/bloom": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@redis/bloom/-/bloom-1.0.2.tgz", @@ -1293,6 +1456,14 @@ "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, + "node_modules/abbrev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -1334,6 +1505,50 @@ "node": ">=0.8" } }, + "node_modules/agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/agent-base/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/agent-base/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmmirror.com/ansi-colors/-/ansi-colors-4.1.1.tgz", @@ -1359,7 +1574,6 @@ "version": "5.0.1", "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "engines": { "node": ">=8" } @@ -1584,6 +1798,79 @@ "node": ">= 0.8" } }, + "node_modules/cacache": { + "version": "18.0.1", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.1.tgz", + "integrity": "sha512-g4Uf2CFZPaxtJKre6qr4zqLDOOPU7bNVhWjlNhvzc51xaTOx2noMOLhfFkTAqwtrAZAKQUuDfyjitzilpA8WsQ==", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/cacache/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/cacache/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/cacache/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/call-bind": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz", @@ -1669,6 +1956,22 @@ "fsevents": "~2.3.2" } }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "engines": { + "node": ">=6" + } + }, "node_modules/cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmmirror.com/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -1891,7 +2194,6 @@ "version": "7.0.3", "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -1910,7 +2212,6 @@ "version": "4.3.3", "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.3.tgz", "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -1926,8 +2227,7 @@ "node_modules/debug/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/decamelize": { "version": "4.0.0", @@ -1994,6 +2294,11 @@ "node": ">=0.3.1" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, "node_modules/editorconfig": { "version": "0.15.3", "resolved": "https://registry.npmmirror.com/editorconfig/-/editorconfig-0.15.3.tgz", @@ -2017,8 +2322,7 @@ "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/encodeurl": { "version": "1.0.2", @@ -2028,6 +2332,27 @@ "node": ">= 0.8" } }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -2037,6 +2362,19 @@ "once": "^1.4.0" } }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" + }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz", @@ -2093,6 +2431,11 @@ "node": ">=10" } }, + "node_modules/exponential-backoff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==" + }, "node_modules/express": { "version": "4.18.2", "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", @@ -2281,6 +2624,32 @@ } } }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/form-data": { "version": "2.5.1", "resolved": "https://registry.npmmirror.com/form-data/-/form-data-2.5.1.tgz", @@ -2340,6 +2709,17 @@ "node": ">=12" } }, + "node_modules/fs-minipass": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -2487,8 +2867,7 @@ "node_modules/graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, "node_modules/growl": { "version": "1.10.5", @@ -2572,6 +2951,11 @@ "node": ">=6.0.0" } }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, "node_modules/http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", @@ -2587,6 +2971,39 @@ "node": ">= 0.8" } }, + "node_modules/http-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", + "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-proxy-agent/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/http-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, "node_modules/http-response-object": { "version": "3.0.2", "resolved": "https://registry.npmmirror.com/http-response-object/-/http-response-object-3.0.2.tgz", @@ -2600,6 +3017,18 @@ "resolved": "https://registry.npmmirror.com/@types/node/-/node-10.17.60.tgz", "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" }, + "node_modules/https-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/human-signals": { "version": "1.1.1", "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-1.1.1.tgz", @@ -2634,6 +3063,22 @@ "node": ">= 4" } }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" + } + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", @@ -2784,7 +3229,6 @@ "version": "3.0.0", "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "engines": { "node": ">=8" } @@ -2810,6 +3254,11 @@ "node": ">=8" } }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==" + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", @@ -2855,8 +3304,24 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } }, "node_modules/javascript-natural-sort": { "version": "0.7.1", @@ -2998,6 +3463,27 @@ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, + "node_modules/make-fetch-happen": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", + "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", + "dependencies": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, "node_modules/map-age-cleaner": { "version": "0.1.3", "resolved": "https://registry.npmmirror.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", @@ -3136,6 +3622,161 @@ "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", "dev": true }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-collect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-fetch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz", + "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-flush/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/mocha": { "version": "9.2.2", "resolved": "https://registry.npmmirror.com/mocha/-/mocha-9.2.2.tgz", @@ -3237,6 +3878,138 @@ "node": ">= 0.6" } }, + "node_modules/node-gyp": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.0.1.tgz", + "integrity": "sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==", + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^4.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/node-gyp/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/node-gyp/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-gyp/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "engines": { + "node": ">=16" + } + }, + "node_modules/node-gyp/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-gyp/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-gyp/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-gyp/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/node-gyp/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/nopt": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz", + "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==", + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", @@ -3397,6 +4170,20 @@ "node": ">=10" } }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/parse-cache-control": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/parse-cache-control/-/parse-cache-control-1.0.1.tgz", @@ -3431,7 +4218,6 @@ "version": "3.1.1", "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, "engines": { "node": ">=8" } @@ -3441,6 +4227,29 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", + "engines": { + "node": "14 || >=16.14" + } + }, "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -3455,6 +4264,14 @@ "node": ">=8.6" } }, + "node_modules/proc-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", + "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -3468,6 +4285,18 @@ "asap": "~2.0.6" } }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -3672,6 +4501,14 @@ "node": ">=8" } }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "engines": { + "node": ">= 4" + } + }, "node_modules/run-async": { "version": "2.4.1", "resolved": "https://registry.npmmirror.com/run-async/-/run-async-2.4.1.tgz", @@ -3782,7 +4619,6 @@ "version": "2.0.0", "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -3794,7 +4630,6 @@ "version": "3.0.0", "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, "engines": { "node": ">=8" } @@ -3859,6 +4694,40 @@ "npm": ">= 3.0.0" } }, + "node_modules/socks-proxy-agent": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", + "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "socks": "^2.7.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/socks-proxy-agent/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socks-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, "node_modules/sparse-bitfield": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", @@ -3879,6 +4748,17 @@ "node": ">=0.8" } }, + "node_modules/ssri": { + "version": "10.0.5", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", + "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/standard-as-callback": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", @@ -3905,7 +4785,20 @@ "version": "4.2.3", "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -3919,7 +4812,18 @@ "version": "6.0.1", "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -3995,6 +4899,57 @@ "get-port": "^3.1.0" } }, + "node_modules/tar": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, "node_modules/then-request": { "version": "6.0.2", "resolved": "https://registry.npmmirror.com/then-request/-/then-request-6.0.2.tgz", @@ -4336,6 +5291,28 @@ "typescript": "^2.1.6 || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev" } }, + "node_modules/unique-filename": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/unique-slug": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/universalify": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz", @@ -4421,7 +5398,6 @@ "version": "2.0.2", "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "dependencies": { "isexe": "^2.0.0" }, @@ -4468,6 +5444,23 @@ "node": ">=10" } }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", @@ -5474,6 +6467,64 @@ "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz", "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==" }, + "@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "requires": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + }, + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "requires": { + "ansi-regex": "^6.0.1" + } + }, + "wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "requires": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + } + } + } + }, "@jridgewell/resolve-uri": { "version": "3.1.0", "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", @@ -5505,6 +6556,62 @@ "sparse-bitfield": "^3.0.3" } }, + "@npmcli/agent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.0.tgz", + "integrity": "sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q==", + "requires": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.1" + }, + "dependencies": { + "lru-cache": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==" + } + } + }, + "@npmcli/fs": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", + "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", + "requires": { + "semver": "^7.3.5" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true + }, "@redis/bloom": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@redis/bloom/-/bloom-1.0.2.tgz", @@ -5678,6 +6785,11 @@ "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, + "abbrev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==" + }, "accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -5704,6 +6816,38 @@ "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz", "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==" }, + "agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "requires": { + "debug": "^4.3.4" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, "ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmmirror.com/ansi-colors/-/ansi-colors-4.1.1.tgz", @@ -5722,8 +6866,7 @@ "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { "version": "4.3.0", @@ -5910,6 +7053,60 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" }, + "cacache": { + "version": "18.0.1", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.1.tgz", + "integrity": "sha512-g4Uf2CFZPaxtJKre6qr4zqLDOOPU7bNVhWjlNhvzc51xaTOx2noMOLhfFkTAqwtrAZAKQUuDfyjitzilpA8WsQ==", + "requires": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "requires": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + } + }, + "lru-cache": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==" + }, + "minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, "call-bind": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz", @@ -5980,6 +7177,16 @@ "readdirp": "~3.6.0" } }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + }, "cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmmirror.com/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -6159,7 +7366,6 @@ "version": "7.0.3", "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -6175,7 +7381,6 @@ "version": "4.3.3", "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.3.tgz", "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, "requires": { "ms": "2.1.2" }, @@ -6183,8 +7388,7 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" } } }, @@ -6234,6 +7438,11 @@ "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true }, + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, "editorconfig": { "version": "0.15.3", "resolved": "https://registry.npmmirror.com/editorconfig/-/editorconfig-0.15.3.tgz", @@ -6254,14 +7463,33 @@ "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "optional": true, + "requires": { + "iconv-lite": "^0.6.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -6271,6 +7499,16 @@ "once": "^1.4.0" } }, + "env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==" + }, + "err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" + }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz", @@ -6315,6 +7553,11 @@ "strip-final-newline": "^2.0.0" } }, + "exponential-backoff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==" + }, "express": { "version": "4.18.2", "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", @@ -6464,6 +7707,22 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" }, + "foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "dependencies": { + "signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==" + } + } + }, "form-data": { "version": "2.5.1", "resolved": "https://registry.npmmirror.com/form-data/-/form-data-2.5.1.tgz", @@ -6505,6 +7764,14 @@ "universalify": "^2.0.0" } }, + "fs-minipass": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "requires": { + "minipass": "^7.0.3" + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -6622,8 +7889,7 @@ "graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, "growl": { "version": "1.10.5", @@ -6682,6 +7948,11 @@ "parse-cache-control": "^1.0.1" } }, + "http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, "http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", @@ -6694,6 +7965,30 @@ "toidentifier": "1.0.1" } }, + "http-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", + "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", + "requires": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, "http-response-object": { "version": "3.0.2", "resolved": "https://registry.npmmirror.com/http-response-object/-/http-response-object-3.0.2.tgz", @@ -6709,6 +8004,15 @@ } } }, + "https-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", + "requires": { + "agent-base": "^7.0.2", + "debug": "4" + } + }, "human-signals": { "version": "1.1.1", "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-1.1.1.tgz", @@ -6734,6 +8038,16 @@ "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", "dev": true }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", @@ -6849,8 +8163,7 @@ "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "is-glob": { "version": "4.0.3", @@ -6867,6 +8180,11 @@ "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true }, + "is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==" + }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", @@ -6900,8 +8218,16 @@ "isexe": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "requires": { + "@isaacs/cliui": "^8.0.2", + "@pkgjs/parseargs": "^0.11.0" + } }, "javascript-natural-sort": { "version": "0.7.1", @@ -7023,6 +8349,24 @@ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, + "make-fetch-happen": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", + "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", + "requires": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + } + }, "map-age-cleaner": { "version": "0.1.3", "resolved": "https://registry.npmmirror.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", @@ -7125,6 +8469,128 @@ "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", "dev": true }, + "minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" + }, + "minipass-collect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", + "requires": { + "minipass": "^7.0.3" + } + }, + "minipass-fetch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz", + "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", + "requires": { + "encoding": "^0.1.13", + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, "mocha": { "version": "9.2.2", "resolved": "https://registry.npmmirror.com/mocha/-/mocha-9.2.2.tgz", @@ -7205,6 +8671,95 @@ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" }, + "node-gyp": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.0.1.tgz", + "integrity": "sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==", + "requires": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^4.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "requires": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + } + }, + "isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "requires": { + "isexe": "^3.1.1" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "nopt": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz", + "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==", + "requires": { + "abbrev": "^2.0.0" + } + }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", @@ -7329,6 +8884,14 @@ "p-limit": "^3.0.2" } }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "requires": { + "aggregate-error": "^3.0.0" + } + }, "parse-cache-control": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/parse-cache-control/-/parse-cache-control-1.0.1.tgz", @@ -7353,14 +8916,29 @@ "path-key": { "version": "3.1.1", "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, "path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, + "path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "requires": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==" + } + } + }, "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -7372,6 +8950,11 @@ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, + "proc-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", + "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==" + }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -7385,6 +8968,15 @@ "asap": "~2.0.6" } }, + "promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "requires": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + } + }, "proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -7543,6 +9135,11 @@ "signal-exit": "^3.0.2" } }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==" + }, "run-async": { "version": "2.4.1", "resolved": "https://registry.npmmirror.com/run-async/-/run-async-2.4.1.tgz", @@ -7645,7 +9242,6 @@ "version": "2.0.0", "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "requires": { "shebang-regex": "^3.0.0" } @@ -7653,8 +9249,7 @@ "shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" }, "shelljs": { "version": "0.8.5", @@ -7702,6 +9297,31 @@ "smart-buffer": "^4.2.0" } }, + "socks-proxy-agent": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", + "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", + "requires": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "socks": "^2.7.1" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, "sparse-bitfield": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", @@ -7719,6 +9339,14 @@ "frac": "~1.1.2" } }, + "ssri": { + "version": "10.0.5", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", + "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", + "requires": { + "minipass": "^7.0.3" + } + }, "standard-as-callback": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", @@ -7742,7 +9370,16 @@ "version": "4.2.3", "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string-width-cjs": { + "version": "npm:string-width@4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -7753,7 +9390,14 @@ "version": "6.0.1", "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-ansi-cjs": { + "version": "npm:strip-ansi@6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { "ansi-regex": "^5.0.1" } @@ -7808,6 +9452,49 @@ "get-port": "^3.1.0" } }, + "tar": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + } + } + }, + "minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, "then-request": { "version": "6.0.2", "resolved": "https://registry.npmmirror.com/then-request/-/then-request-6.0.2.tgz", @@ -8077,6 +9764,22 @@ "editorconfig": "^0.15.0" } }, + "unique-filename": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "requires": { + "unique-slug": "^4.0.0" + } + }, + "unique-slug": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "requires": { + "imurmurhash": "^0.1.4" + } + }, "universalify": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz", @@ -8141,7 +9844,6 @@ "version": "2.0.2", "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "requires": { "isexe": "^2.0.0" } @@ -8173,6 +9875,16 @@ "strip-ansi": "^6.0.0" } }, + "wrap-ansi-cjs": { + "version": "npm:wrap-ansi@7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", diff --git a/package.json b/package.json index 2f06bdb..fb00982 100644 --- a/package.json +++ b/package.json @@ -42,6 +42,7 @@ "json5": "^2.2.3", "mathjs": "^11.4.0", "mongodb": "^4.17.1", + "node-gyp": "^10.0.1", "ramda": "^0.29.1", "redis": "^4.3.1", "shelljs": "^0.8.5", From 88a3c51e9d982489dcd41e47797168204dd50822 Mon Sep 17 00:00:00 2001 From: dy Date: Wed, 20 Dec 2023 15:27:31 +0800 Subject: [PATCH 05/41] package --- package-lock.json | 1792 ++++++++++++++++++++++++++++++++++++++++++++- package.json | 1 + 2 files changed, 1753 insertions(+), 40 deletions(-) diff --git a/package-lock.json b/package-lock.json index c0fc9f0..7ba4421 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,6 +16,7 @@ "json5": "^2.2.3", "mathjs": "^11.4.0", "mongodb": "^4.17.1", + "node-gyp": "^10.0.1", "ramda": "^0.29.1", "redis": "^4.3.1", "shelljs": "^0.8.5", @@ -1071,6 +1072,95 @@ "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz", "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==" }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.0", "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", @@ -1105,6 +1195,79 @@ "sparse-bitfield": "^3.0.3" } }, + "node_modules/@npmcli/agent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.0.tgz", + "integrity": "sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q==", + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/agent/node_modules/lru-cache": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/@npmcli/fs": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", + "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/fs/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/fs/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/fs/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@redis/bloom": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@redis/bloom/-/bloom-1.0.2.tgz", @@ -1293,6 +1456,14 @@ "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, + "node_modules/abbrev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -1334,6 +1505,50 @@ "node": ">=0.8" } }, + "node_modules/agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/agent-base/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/agent-base/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmmirror.com/ansi-colors/-/ansi-colors-4.1.1.tgz", @@ -1359,7 +1574,6 @@ "version": "5.0.1", "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "engines": { "node": ">=8" } @@ -1584,6 +1798,79 @@ "node": ">= 0.8" } }, + "node_modules/cacache": { + "version": "18.0.1", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.1.tgz", + "integrity": "sha512-g4Uf2CFZPaxtJKre6qr4zqLDOOPU7bNVhWjlNhvzc51xaTOx2noMOLhfFkTAqwtrAZAKQUuDfyjitzilpA8WsQ==", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/cacache/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/cacache/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/cacache/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/call-bind": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz", @@ -1669,6 +1956,22 @@ "fsevents": "~2.3.2" } }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "engines": { + "node": ">=6" + } + }, "node_modules/cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmmirror.com/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -1891,7 +2194,6 @@ "version": "7.0.3", "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -1910,7 +2212,6 @@ "version": "4.3.3", "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.3.tgz", "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -1926,8 +2227,7 @@ "node_modules/debug/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/decamelize": { "version": "4.0.0", @@ -1994,6 +2294,11 @@ "node": ">=0.3.1" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, "node_modules/editorconfig": { "version": "0.15.3", "resolved": "https://registry.npmmirror.com/editorconfig/-/editorconfig-0.15.3.tgz", @@ -2017,8 +2322,7 @@ "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/encodeurl": { "version": "1.0.2", @@ -2028,6 +2332,27 @@ "node": ">= 0.8" } }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -2037,6 +2362,19 @@ "once": "^1.4.0" } }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" + }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz", @@ -2093,6 +2431,11 @@ "node": ">=10" } }, + "node_modules/exponential-backoff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==" + }, "node_modules/express": { "version": "4.18.2", "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", @@ -2281,6 +2624,32 @@ } } }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/form-data": { "version": "2.5.1", "resolved": "https://registry.npmmirror.com/form-data/-/form-data-2.5.1.tgz", @@ -2340,6 +2709,17 @@ "node": ">=12" } }, + "node_modules/fs-minipass": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -2487,8 +2867,7 @@ "node_modules/graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, "node_modules/growl": { "version": "1.10.5", @@ -2572,6 +2951,11 @@ "node": ">=6.0.0" } }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, "node_modules/http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", @@ -2587,6 +2971,39 @@ "node": ">= 0.8" } }, + "node_modules/http-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", + "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-proxy-agent/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/http-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, "node_modules/http-response-object": { "version": "3.0.2", "resolved": "https://registry.npmmirror.com/http-response-object/-/http-response-object-3.0.2.tgz", @@ -2600,6 +3017,18 @@ "resolved": "https://registry.npmmirror.com/@types/node/-/node-10.17.60.tgz", "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" }, + "node_modules/https-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/human-signals": { "version": "1.1.1", "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-1.1.1.tgz", @@ -2634,6 +3063,22 @@ "node": ">= 4" } }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" + } + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", @@ -2784,7 +3229,6 @@ "version": "3.0.0", "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "engines": { "node": ">=8" } @@ -2810,6 +3254,11 @@ "node": ">=8" } }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==" + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", @@ -2855,8 +3304,24 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } }, "node_modules/javascript-natural-sort": { "version": "0.7.1", @@ -2998,6 +3463,27 @@ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, + "node_modules/make-fetch-happen": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", + "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", + "dependencies": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, "node_modules/map-age-cleaner": { "version": "0.1.3", "resolved": "https://registry.npmmirror.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", @@ -3136,6 +3622,161 @@ "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", "dev": true }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-collect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-fetch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz", + "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-flush/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/mocha": { "version": "9.2.2", "resolved": "https://registry.npmmirror.com/mocha/-/mocha-9.2.2.tgz", @@ -3237,6 +3878,138 @@ "node": ">= 0.6" } }, + "node_modules/node-gyp": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.0.1.tgz", + "integrity": "sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==", + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^4.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/node-gyp/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/node-gyp/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-gyp/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "engines": { + "node": ">=16" + } + }, + "node_modules/node-gyp/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-gyp/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-gyp/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-gyp/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/node-gyp/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/nopt": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz", + "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==", + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", @@ -3397,6 +4170,20 @@ "node": ">=10" } }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/parse-cache-control": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/parse-cache-control/-/parse-cache-control-1.0.1.tgz", @@ -3431,7 +4218,6 @@ "version": "3.1.1", "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, "engines": { "node": ">=8" } @@ -3441,6 +4227,29 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", + "engines": { + "node": "14 || >=16.14" + } + }, "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -3455,6 +4264,14 @@ "node": ">=8.6" } }, + "node_modules/proc-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", + "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -3468,6 +4285,18 @@ "asap": "~2.0.6" } }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -3672,6 +4501,14 @@ "node": ">=8" } }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "engines": { + "node": ">= 4" + } + }, "node_modules/run-async": { "version": "2.4.1", "resolved": "https://registry.npmmirror.com/run-async/-/run-async-2.4.1.tgz", @@ -3782,7 +4619,6 @@ "version": "2.0.0", "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -3794,7 +4630,6 @@ "version": "3.0.0", "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, "engines": { "node": ">=8" } @@ -3859,6 +4694,40 @@ "npm": ">= 3.0.0" } }, + "node_modules/socks-proxy-agent": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", + "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "socks": "^2.7.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/socks-proxy-agent/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socks-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, "node_modules/sparse-bitfield": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", @@ -3879,6 +4748,17 @@ "node": ">=0.8" } }, + "node_modules/ssri": { + "version": "10.0.5", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", + "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/standard-as-callback": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", @@ -3905,7 +4785,20 @@ "version": "4.2.3", "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -3919,7 +4812,18 @@ "version": "6.0.1", "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -3995,6 +4899,57 @@ "get-port": "^3.1.0" } }, + "node_modules/tar": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, "node_modules/then-request": { "version": "6.0.2", "resolved": "https://registry.npmmirror.com/then-request/-/then-request-6.0.2.tgz", @@ -4336,6 +5291,28 @@ "typescript": "^2.1.6 || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev" } }, + "node_modules/unique-filename": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/unique-slug": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/universalify": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz", @@ -4421,7 +5398,6 @@ "version": "2.0.2", "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "dependencies": { "isexe": "^2.0.0" }, @@ -4468,6 +5444,23 @@ "node": ">=10" } }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", @@ -5474,6 +6467,64 @@ "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz", "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==" }, + "@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "requires": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + }, + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "requires": { + "ansi-regex": "^6.0.1" + } + }, + "wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "requires": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + } + } + } + }, "@jridgewell/resolve-uri": { "version": "3.1.0", "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", @@ -5505,6 +6556,62 @@ "sparse-bitfield": "^3.0.3" } }, + "@npmcli/agent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.0.tgz", + "integrity": "sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q==", + "requires": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.1" + }, + "dependencies": { + "lru-cache": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==" + } + } + }, + "@npmcli/fs": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", + "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", + "requires": { + "semver": "^7.3.5" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true + }, "@redis/bloom": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@redis/bloom/-/bloom-1.0.2.tgz", @@ -5678,6 +6785,11 @@ "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, + "abbrev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==" + }, "accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -5704,6 +6816,38 @@ "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz", "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==" }, + "agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "requires": { + "debug": "^4.3.4" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, "ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmmirror.com/ansi-colors/-/ansi-colors-4.1.1.tgz", @@ -5722,8 +6866,7 @@ "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { "version": "4.3.0", @@ -5910,6 +7053,60 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" }, + "cacache": { + "version": "18.0.1", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.1.tgz", + "integrity": "sha512-g4Uf2CFZPaxtJKre6qr4zqLDOOPU7bNVhWjlNhvzc51xaTOx2noMOLhfFkTAqwtrAZAKQUuDfyjitzilpA8WsQ==", + "requires": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "requires": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + } + }, + "lru-cache": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==" + }, + "minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, "call-bind": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz", @@ -5980,6 +7177,16 @@ "readdirp": "~3.6.0" } }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + }, "cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmmirror.com/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -6159,7 +7366,6 @@ "version": "7.0.3", "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -6175,7 +7381,6 @@ "version": "4.3.3", "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.3.tgz", "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, "requires": { "ms": "2.1.2" }, @@ -6183,8 +7388,7 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" } } }, @@ -6234,6 +7438,11 @@ "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true }, + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, "editorconfig": { "version": "0.15.3", "resolved": "https://registry.npmmirror.com/editorconfig/-/editorconfig-0.15.3.tgz", @@ -6254,14 +7463,33 @@ "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "optional": true, + "requires": { + "iconv-lite": "^0.6.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -6271,6 +7499,16 @@ "once": "^1.4.0" } }, + "env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==" + }, + "err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" + }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz", @@ -6315,6 +7553,11 @@ "strip-final-newline": "^2.0.0" } }, + "exponential-backoff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==" + }, "express": { "version": "4.18.2", "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", @@ -6464,6 +7707,22 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" }, + "foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "dependencies": { + "signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==" + } + } + }, "form-data": { "version": "2.5.1", "resolved": "https://registry.npmmirror.com/form-data/-/form-data-2.5.1.tgz", @@ -6505,6 +7764,14 @@ "universalify": "^2.0.0" } }, + "fs-minipass": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "requires": { + "minipass": "^7.0.3" + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -6622,8 +7889,7 @@ "graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, "growl": { "version": "1.10.5", @@ -6682,6 +7948,11 @@ "parse-cache-control": "^1.0.1" } }, + "http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, "http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", @@ -6694,6 +7965,30 @@ "toidentifier": "1.0.1" } }, + "http-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", + "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", + "requires": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, "http-response-object": { "version": "3.0.2", "resolved": "https://registry.npmmirror.com/http-response-object/-/http-response-object-3.0.2.tgz", @@ -6709,6 +8004,15 @@ } } }, + "https-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", + "requires": { + "agent-base": "^7.0.2", + "debug": "4" + } + }, "human-signals": { "version": "1.1.1", "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-1.1.1.tgz", @@ -6734,6 +8038,16 @@ "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", "dev": true }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", @@ -6849,8 +8163,7 @@ "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "is-glob": { "version": "4.0.3", @@ -6867,6 +8180,11 @@ "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true }, + "is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==" + }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", @@ -6900,8 +8218,16 @@ "isexe": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "requires": { + "@isaacs/cliui": "^8.0.2", + "@pkgjs/parseargs": "^0.11.0" + } }, "javascript-natural-sort": { "version": "0.7.1", @@ -7023,6 +8349,24 @@ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, + "make-fetch-happen": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", + "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", + "requires": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + } + }, "map-age-cleaner": { "version": "0.1.3", "resolved": "https://registry.npmmirror.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", @@ -7125,6 +8469,128 @@ "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", "dev": true }, + "minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" + }, + "minipass-collect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", + "requires": { + "minipass": "^7.0.3" + } + }, + "minipass-fetch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz", + "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", + "requires": { + "encoding": "^0.1.13", + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, "mocha": { "version": "9.2.2", "resolved": "https://registry.npmmirror.com/mocha/-/mocha-9.2.2.tgz", @@ -7205,6 +8671,95 @@ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" }, + "node-gyp": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.0.1.tgz", + "integrity": "sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==", + "requires": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^4.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "requires": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + } + }, + "isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "requires": { + "isexe": "^3.1.1" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "nopt": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz", + "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==", + "requires": { + "abbrev": "^2.0.0" + } + }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", @@ -7329,6 +8884,14 @@ "p-limit": "^3.0.2" } }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "requires": { + "aggregate-error": "^3.0.0" + } + }, "parse-cache-control": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/parse-cache-control/-/parse-cache-control-1.0.1.tgz", @@ -7353,14 +8916,29 @@ "path-key": { "version": "3.1.1", "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, "path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, + "path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "requires": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==" + } + } + }, "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -7372,6 +8950,11 @@ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, + "proc-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", + "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==" + }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -7385,6 +8968,15 @@ "asap": "~2.0.6" } }, + "promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "requires": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + } + }, "proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -7543,6 +9135,11 @@ "signal-exit": "^3.0.2" } }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==" + }, "run-async": { "version": "2.4.1", "resolved": "https://registry.npmmirror.com/run-async/-/run-async-2.4.1.tgz", @@ -7645,7 +9242,6 @@ "version": "2.0.0", "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "requires": { "shebang-regex": "^3.0.0" } @@ -7653,8 +9249,7 @@ "shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" }, "shelljs": { "version": "0.8.5", @@ -7702,6 +9297,31 @@ "smart-buffer": "^4.2.0" } }, + "socks-proxy-agent": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", + "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", + "requires": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "socks": "^2.7.1" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, "sparse-bitfield": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", @@ -7719,6 +9339,14 @@ "frac": "~1.1.2" } }, + "ssri": { + "version": "10.0.5", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", + "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", + "requires": { + "minipass": "^7.0.3" + } + }, "standard-as-callback": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", @@ -7742,7 +9370,16 @@ "version": "4.2.3", "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string-width-cjs": { + "version": "npm:string-width@4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -7753,7 +9390,14 @@ "version": "6.0.1", "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-ansi-cjs": { + "version": "npm:strip-ansi@6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { "ansi-regex": "^5.0.1" } @@ -7808,6 +9452,49 @@ "get-port": "^3.1.0" } }, + "tar": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + } + } + }, + "minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, "then-request": { "version": "6.0.2", "resolved": "https://registry.npmmirror.com/then-request/-/then-request-6.0.2.tgz", @@ -8077,6 +9764,22 @@ "editorconfig": "^0.15.0" } }, + "unique-filename": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "requires": { + "unique-slug": "^4.0.0" + } + }, + "unique-slug": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "requires": { + "imurmurhash": "^0.1.4" + } + }, "universalify": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz", @@ -8141,7 +9844,6 @@ "version": "2.0.2", "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "requires": { "isexe": "^2.0.0" } @@ -8173,6 +9875,16 @@ "strip-ansi": "^6.0.0" } }, + "wrap-ansi-cjs": { + "version": "npm:wrap-ansi@7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", diff --git a/package.json b/package.json index 2f06bdb..fb00982 100644 --- a/package.json +++ b/package.json @@ -42,6 +42,7 @@ "json5": "^2.2.3", "mathjs": "^11.4.0", "mongodb": "^4.17.1", + "node-gyp": "^10.0.1", "ramda": "^0.29.1", "redis": "^4.3.1", "shelljs": "^0.8.5", From e2d9eea5ed9a5d3db1336987f04ce6478127ff9c Mon Sep 17 00:00:00 2001 From: xcy <871622040@qq.com> Date: Wed, 20 Dec 2023 16:31:32 +0800 Subject: [PATCH 06/41] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8DClass=5Ftask=5F1?= =?UTF-8?q?34=E4=BB=BB=E5=8A=A1=E7=9B=91=E5=90=AC=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E5=AF=BC=E8=87=B4=E7=9A=84=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/public/task.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/public/task.ts b/src/public/task.ts index f9f4171..055ed64 100644 --- a/src/public/task.ts +++ b/src/public/task.ts @@ -788,7 +788,7 @@ export class TaskAllEmitFun { let _val = node.call.req.num; G.emit("Class_task_136", 'Class_task_136', node.call, _val, 0); // todo 统计藏品修复胶,此处只是临时处理,防止线上任务数据出错,正确做法是,统计修复胶的消耗,走136任务的统计 - G.emit("Class_task_134", 'Class_task_134', node.call, _val, 0, {}); + G.emit("Class_task_134", 'Class_task_134', node.call, _val, 0, []); } if (node.call.service.name == 'peijian/LvUp' && node.return.isSucc) { From dacd312bfefa355692307a452e1365d91133eb2a Mon Sep 17 00:00:00 2001 From: xcy <871622040@qq.com> Date: Wed, 20 Dec 2023 16:56:23 +0800 Subject: [PATCH 07/41] =?UTF-8?q?fix:=20=E6=97=A5=E5=B8=B8=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=88=9D=E5=A7=8B=E5=80=BC=E9=97=AE=E9=A2=98=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/public/taskclass.ts | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/src/public/taskclass.ts b/src/public/taskclass.ts index 5266c85..7271b4e 100644 --- a/src/public/taskclass.ts +++ b/src/public/taskclass.ts @@ -390,7 +390,10 @@ export module manager { async initVal(call: ApiCall, con) { const data = await TanXianFun.getData(call); - return data.useFastGuaJiNum || 0 + if (data?.resetTime > PublicShared.getToDayZeroTime()) { + return data.useFastGuaJiNum || 0 + } + return 0 } } @@ -401,7 +404,10 @@ export module manager { async initVal(call: ApiCall, con) { let data = await JJCFun.getData(call); - return data?.useFightNum || 0 + if (data?.resetTime >= PublicShared.getToDayZeroTime()) { + return data?.useFightNum || 0 + } + return 0 } } @@ -418,7 +424,10 @@ export module manager { async initVal(call: ApiCall, con) { let myData = await G.mongodb.cPlayerInfo('meirishilian').findOne({uid: call.uid, type: 'meirishilian'}); - return R.compose(R.sum(), R.map(i => i[0].useFightNum), R.values())(myData.data.numInfo) || 0 + if (myData.data.refreshTime > PublicShared.getToDayZeroTime()) { + return R.compose(R.sum(), R.map(i => i[0].useFightNum), R.values())(myData.data.numInfo) || 0 + } + return 0 } } @@ -435,7 +444,10 @@ export module manager { async initVal(call: ApiCall, con) { let myData = await G.mongodb.cPlayerInfo('qjzzd').findOne({uid: call.uid, type: 'qjzzd'}); - return myData.useFightNum || 0 + if (myData?.refreFightTime > PublicShared.getToDayZeroTime()) { + return myData?.useFightNum || 0 + } + return 0 } } @@ -491,7 +503,10 @@ export module manager { async initVal(call: ApiCall, con) { let data: Partial = await G.mongodb.collection('wanted').findOne({uid: call.uid}) || {}; - return data.toDayUseNum || 0 + if (data.refreshTime > PublicShared.getToDayZeroTime()) { + return data.toDayUseNum || 0 + } + return 0 } } @@ -766,6 +781,7 @@ export module manager { return call.conn.gud?.helpHeros?.length || 0; } } + // 第56个任务 完成圣诞活动小游戏 export class Class_task_154 extends BaseClass { stype = 154 @@ -775,6 +791,7 @@ export module manager { return 1; } } + // 第57个任务 领取每日任务最终宝箱 export class Class_task_155 extends BaseClass { stype = 155 From 23e1941812e0df08dc72f60bd8b167a502910899 Mon Sep 17 00:00:00 2001 From: xcy <871622040@qq.com> Date: Wed, 20 Dec 2023 19:05:09 +0800 Subject: [PATCH 08/41] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=AE=9A?= =?UTF-8?q?=E6=97=B6=E5=99=A8=E9=87=8D=E5=A4=8D=E6=89=A7=E8=A1=8C=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E9=82=AE=E4=BB=B6=E9=87=8D=E5=A4=8D=E5=8F=91=E9=80=81?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/clusterUtils.ts | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/src/clusterUtils.ts b/src/clusterUtils.ts index 3836098..05b3006 100644 --- a/src/clusterUtils.ts +++ b/src/clusterUtils.ts @@ -2,13 +2,14 @@ import {RedisClientType, createClient} from "redis"; import {redisClient} from "./setRedis"; import {ConnectionStatus, WsServer} from "tsrpc"; import cluster from 'cluster'; -import { clusterFun } from "./clusterFunction"; +import {clusterFun} from "./clusterFunction"; //维护当前uid和pid的对应关系 let uid2processId = {}; //订阅redis let subscribeRedis: RedisClientType let firstPid = null; + //发布和可写redis复用原 setRedis 里的redisClient @@ -20,10 +21,10 @@ let firstPid = null; */ export function clusterSubscribe(key: string, callback: Function) { subscribeRedis.subscribe(G.redis.fromatKey(key), function (msg) { - try{ + try { callback(msg); - }catch(e){ - console.error("clusterSubscribe error",e); + } catch (e) { + console.error("clusterSubscribe error", e); } }); } @@ -43,14 +44,19 @@ export function clusterPublish(key: string, data: any) { * 在集群的N个进程中,只运行一次,在业务逻辑中也可使用 */ export function clusterRunOnce(fun) { + console.log(`${process.pid}环境变量pm_id===>${process.env.pm_id}`); if (process.env.pm_id == null || process.env.pm_id === '0') { //非pm2启动的,或是pm2下启动的第一个进程 + console.log("run clusterRunOnce1 ===>", process.pid) fun(); return; } - if(firstPid == process.pid){ + if(G.config.isG123)return; + + if (firstPid == process.pid) { //pm2的其中一个进程 + console.log("run clusterRunOnce2 ===>", process.pid) fun(); return; } @@ -60,16 +66,16 @@ export function clusterRunOnce(fun) { * 对外方法: * 在uid所在的进程执行fun方法,如果uid不在任何进程的话,则在当前进程执行 */ -export function clusterFunctionRunAtUidProcess(uid:string, fun:string, ...arg:any[]) { - if(!uid2processId[uid] || uid2processId[uid] == process.pid){ - clusterFun[ fun ].call(this, ...arg); +export function clusterFunctionRunAtUidProcess(uid: string, fun: string, ...arg: any[]) { + if (!uid2processId[uid] || uid2processId[uid] == process.pid) { + clusterFun[fun].call(this, ...arg); return; } clusterPublish("RunclusterFunction", JSON.stringify({ "uid": uid, "fun": fun, - "arg" : arg + "arg": arg })) } @@ -159,17 +165,17 @@ async function initSubscribeRedis() { clusterSubscribe('broadcastClusterMsg', function (msg) { let data = JSON.parse(msg); - if(!data.filter){ + if (!data.filter) { //如果不是有条件发送的话 G.server.broadcastMsg(data.msgName, data.msg); - }else { + } else { //但是如果是有条件发送的话 //条件里可能需要进程内的信息,则需要每个进程都分别筛选后执行 if (data.filter.ghId != null) { //指定公会 let conns = G.server.connections; conns = conns.filter(c => c?.gud?.ghId == data.filter.ghId); - conns.length>0 && G.server.broadcastMsg(data.msgName, data.msg, conns); + conns.length > 0 && G.server.broadcastMsg(data.msgName, data.msg, conns); } } }); @@ -178,7 +184,7 @@ async function initSubscribeRedis() { clusterSubscribe('RunclusterFunction', function (msg) { let data = JSON.parse(msg); if (uid2processId[data.uid] == process.pid) { - clusterFun[ data.fun ].call(this, ...data.arg); + clusterFun[data.fun].call(this, ...data.arg); } }); } @@ -193,8 +199,8 @@ export async function clusterMain() { }); //初始化订阅redis await initSubscribeRedis(); - - if(process.env.pm_id != null){ + + if (process.env.pm_id != null) { //pm2启动的,设置key为我的pid firstPid = await redisClient.get(G.redis.fromatKey("firstPid")); if (!firstPid) { @@ -207,7 +213,7 @@ export async function clusterMain() { redisClient.del(G.redis.fromatKey("uid2processId")); }); } - + //初始化玩家pid信息 await initUid2processId(); From 48e656e65289c5f25d193cfb81ebc267fd5fba22 Mon Sep 17 00:00:00 2001 From: dy Date: Wed, 20 Dec 2023 19:17:17 +0800 Subject: [PATCH 09/41] =?UTF-8?q?=E7=8E=A9=E5=AE=B6=E5=A4=B4=E5=83=8F?= =?UTF-8?q?=E6=A1=86=EF=BC=8C=E9=80=A0=E5=9E=8B=EF=BC=8C=E5=A4=B4=E5=83=8F?= =?UTF-8?q?=EF=BC=8C=E5=AF=B9=E8=AF=9D=E6=A1=86=E5=A2=9E=E5=8A=A0model?= =?UTF-8?q?=E8=A7=A3=E9=94=81=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api_s2c/user/ApiChangeInfo.ts | 23 ++++++++++++++++------- src/shared/public/user.ts | 8 ++++---- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/src/api_s2c/user/ApiChangeInfo.ts b/src/api_s2c/user/ApiChangeInfo.ts index 4d221d3..012bb9f 100644 --- a/src/api_s2c/user/ApiChangeInfo.ts +++ b/src/api_s2c/user/ApiChangeInfo.ts @@ -1,16 +1,25 @@ -import { ApiCall } from "tsrpc"; -import { PlayerFun } from '../../public/player'; -import { ReqChangeInfo, ResChangeInfo } from "../../shared/protocols/user/PtlChangeInfo"; -import { ResLogin } from '../../shared/protocols/user/PtlLogin'; -import { UserShared } from '../../shared/public/user'; +import {ApiCall} from "tsrpc"; +import {PlayerFun} from '../../public/player'; +import {ReqChangeInfo, ResChangeInfo} from "../../shared/protocols/user/PtlChangeInfo"; +import {ResLogin} from '../../shared/protocols/user/PtlLogin'; +import {UserShared} from '../../shared/public/user'; export default async function (call: ApiCall) { if (call.req.type == 'model' && !call.req.pos) return call.error(globalThis.lng.shiwu_6); - const active = (await G.mongodb.collection('playerInfo', 'playerInfo').findOne({ uid: call.uid, type: 'playerInfo' }))?.active || {}; + const active = (await G.mongodb.collection('playerInfo', 'playerInfo').findOne({ + uid: call.uid, + type: 'playerInfo' + }))?.active || {}; const fmtId = UserShared.getInfoId(call.req.type, call.req.id, call.req.pos || ''); - const isMeet = UserShared.chechIsActive(fmtId, { lv: call.conn.gud.lv, vip: call.conn.gud.vip, lsyx: call.conn.lshd.hero, active: active }); + const isMeet = UserShared.chechIsActive(fmtId, { + lv: call.conn.gud.lv, + vip: call.conn.gud.vip, + lsyx: call.conn.lshd.hero, + model: call.conn.gud.model, + active: active + }); if (!isMeet && call.req.type != 'headFrame' && call.req.type != 'chatFrame') return call.error(globalThis.lng.user_1); diff --git a/src/shared/public/user.ts b/src/shared/public/user.ts index 086fed9..55361c3 100644 --- a/src/shared/public/user.ts +++ b/src/shared/public/user.ts @@ -1,15 +1,14 @@ - - export class UserShared { /**获取头像之类id */ static getInfoId(type: 'head' | 'headFrame' | 'chatFrame' | 'model', id: string, pos?: string) { return Array.from(arguments).filter(s => s != '').join('_'); } + /** - * 判断头像之类是否激活 + * 判断头像之类是否激活 * @param id 请使用 UserShared.getInfo 转化后的id */ - static chechIsActive(fmtId: string, collection: Partial<{ lv: number, vip: number, lsyx: k_v, active: k_v; }>) { + static chechIsActive(fmtId: string, collection: Partial<{ lv: number, vip: number, lsyx: k_v, model: k_v, active: k_v; }>) { const [type, id, pos] = fmtId.split('_'); const jsonName = 'player' + type.slice(0, 1).toLocaleUpperCase() + type.slice(1); @@ -20,6 +19,7 @@ export class UserShared { else if (conf.cond[0] == 'vip') return collection.vip >= conf.cond[1]; else if (conf.cond[0] == 'hero') return collection.lsyx[conf.cond[1]] > 0; else if (conf.cond[0] == 'time') return collection.active[fmtId] == -1 || collection.active[fmtId] > G.time; + else if (conf.cond[0] == 'model') return Object.values(collection.model).find(i=>i.id==conf.cond[1]); else return false; } } \ No newline at end of file From 9429dacc638b5ba330f99c1bc2a5b464582adc06 Mon Sep 17 00:00:00 2001 From: dy Date: Wed, 20 Dec 2023 19:22:51 +0800 Subject: [PATCH 10/41] =?UTF-8?q?=E5=85=AC=E8=B7=AF=E7=8B=82=E9=A3=99?= =?UTF-8?q?=E6=80=A7=E8=83=BD=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api_s2c/gonglukuangbiao/ApiOpen.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/api_s2c/gonglukuangbiao/ApiOpen.ts b/src/api_s2c/gonglukuangbiao/ApiOpen.ts index bb484b4..98fcb44 100644 --- a/src/api_s2c/gonglukuangbiao/ApiOpen.ts +++ b/src/api_s2c/gonglukuangbiao/ApiOpen.ts @@ -59,7 +59,7 @@ let enemyObject: object = {} async function checkAndRefreshEnemy() { if (lastRefreshTime + 3600 > G.time) return lastRefreshTime = G.time - for (let i = 3; i <= 8; i ++) { + for (let i = 3; i <= 8; i++) { let users = await G.mongodb.collection('user').aggregate([ { $match: { @@ -85,7 +85,9 @@ async function checkAndRefreshEnemy() { export async function refreshEnemys(call: ApiCall) { if (!lastRefreshTime) await checkAndRefreshEnemy() - let dbUser = enemyObject[Math.floor(call.conn.gud.lv / 10)] + let lvDw = Math.floor(call.conn.gud.lv / 10 > 8 ? 8 : call.conn.gud.lv / 10) + + let dbUser = enemyObject[lvDw] || [] let enemys: joinFightData[] = []; From 715f564848c6209ce25866af8d2218df8e93268b Mon Sep 17 00:00:00 2001 From: dy Date: Wed, 20 Dec 2023 21:59:23 +0800 Subject: [PATCH 11/41] =?UTF-8?q?=E9=80=A0=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api_s2c/item/ApiUse.ts | 13 +- src/json/item.json | 44 +++++- src/json/playerHead.json | 108 ++++++++----- src/json/playerHeadFrame.json | 17 ++ src/json/playerModel.json | 138 ++++++++-------- src/json/tuisonglibao.json | 288 ++++++++++++++++++++++++++++++++-- src/jsonType.ts | 4 +- src/public/user.ts | 118 ++++++++++---- 8 files changed, 565 insertions(+), 165 deletions(-) diff --git a/src/api_s2c/item/ApiUse.ts b/src/api_s2c/item/ApiUse.ts index 7b850e0..65f786c 100644 --- a/src/api_s2c/item/ApiUse.ts +++ b/src/api_s2c/item/ApiUse.ts @@ -6,7 +6,7 @@ import {PublicShared} from '../../shared/public/public'; import {TanXianShared} from '../../shared/public/tanxian'; import {event_dldh_addPrize} from '../event/diaoluoduihuan/ApiOpen'; import {getEventPrize} from '../tanxian/ApiEvent'; -import { getItemByItemId } from "../../public/item"; +import {getItemByItemId} from "../../public/item"; const iType = { 3: 'hero', @@ -15,10 +15,10 @@ const iType = { }; export default async function (call: ApiCall) { - - //ȥ��item Redis��� - let itemInfo = await getItemByItemId(call.uid,call.req.itemId); //call.conn.item[call.req.itemId]; - if(!itemInfo[call.req.itemId]) return call.error(globalThis.lng.item_1); + + //ȥ��item Redis��� + let itemInfo = await getItemByItemId(call.uid, call.req.itemId); //call.conn.item[call.req.itemId]; + if (!itemInfo[call.req.itemId]) return call.error(globalThis.lng.item_1); let item = itemInfo[call.req.itemId]; let useNum = call.req.useNum; @@ -105,8 +105,9 @@ export default async function (call: ApiCall) { n: useNum } ]; - } else if ([7, 8].includes(itemConf.type)) { + } else if ([6, 7, 8].includes(itemConf.type)) { if (useNum > item.num) return call.error(globalThis.lng.item_3); + if (itemConf.type == 6) UserFun.activeModel(call.uid, itemConf.diaoluo.toString(), useNum); if (itemConf.type == 7) UserFun.activeHeadFrame(call.uid, itemConf.diaoluo.toString(), useNum); if (itemConf.type == 8) UserFun.activeChatFrame(call.uid, itemConf.diaoluo.toString(), useNum); diff --git a/src/json/item.json b/src/json/item.json index 1802cff..a5551b3 100644 --- a/src/json/item.json +++ b/src/json/item.json @@ -3860,6 +3860,7 @@ "way": [], "go": "", "icon": "txk_019", + "sicon": "txk_019", "describe": "intr_item_describe_50001", "diaoluo": 3, "useNeed": [], @@ -3878,6 +3879,7 @@ "way": [], "go": "", "icon": "txk_016", + "sicon": "txk_016", "describe": "intr_item_describe_50002", "diaoluo": 4, "useNeed": [], @@ -3896,6 +3898,7 @@ "way": [], "go": "", "icon": "txk_023", + "sicon": "txk_023", "describe": "intr_item_describe_50003", "diaoluo": 6, "useNeed": [], @@ -3914,6 +3917,7 @@ "way": [], "go": "", "icon": "txk_009", + "sicon": "txk_009", "describe": "intr_item_describe_50004", "diaoluo": 7, "useNeed": [], @@ -3932,6 +3936,7 @@ "way": [], "go": "", "icon": "txk_026", + "sicon": "txk_026", "describe": "intr_item_describe_50005", "diaoluo": 8, "useNeed": [], @@ -3950,6 +3955,7 @@ "way": [], "go": "", "icon": "txk_018", + "sicon": "txk_018", "describe": "intr_item_describe_50006", "diaoluo": 9, "useNeed": [], @@ -3968,6 +3974,7 @@ "way": [], "go": "", "icon": "txk_014", + "sicon": "txk_014", "describe": "intr_item_describe_50007", "diaoluo": 10, "useNeed": [], @@ -3986,6 +3993,7 @@ "way": [], "go": "", "icon": "txk_022", + "sicon": "txk_022", "describe": "intr_item_describe_50008", "diaoluo": 11, "useNeed": [], @@ -4004,6 +4012,7 @@ "way": [], "go": "", "icon": "txk_028", + "sicon": "txk_028", "describe": "intr_item_describe_50009", "diaoluo": 23, "useNeed": [], @@ -4012,6 +4021,24 @@ "payId": "", "advancedEffects": "" }, + "50010": { + "id": 50010, + "name": "playerheadFrame_name_24", + "type": 7, + "sort": 1, + "colour": 4, + "way": [], + "go": "", + "icon": "txk_025", + "sicon": "txk_025", + "describe": "intr_item_describe_50010", + "diaoluo": 24, + "useNeed": [], + "usePrize": [], + "selecPrize": [], + "payId": "", + "advancedEffects": "" + }, "50101": { "id": 50101, "name": "playerChatFrame_name_6", @@ -4022,6 +4049,7 @@ "way": [], "go": "", "icon": "lt_dhk11", + "sicon": "lt_dhk11", "describe": "intr_item_describe_50101", "diaoluo": 6, "useNeed": [], @@ -4040,6 +4068,7 @@ "way": [], "go": "", "icon": "lt_dhk10", + "sicon": "lt_dhk10", "describe": "intr_item_describe_50102", "diaoluo": 7, "useNeed": [], @@ -4058,6 +4087,7 @@ "way": [], "go": "", "icon": "txk_020", + "sicon": "txk_020", "describe": "intr_item_describe_50103", "diaoluo": 15, "useNeed": [], @@ -4076,6 +4106,7 @@ "way": [], "go": "", "icon": "lt_dhk14", + "sicon": "lt_dhk14", "describe": "intr_item_describe_50104", "diaoluo": 8, "useNeed": [], @@ -4094,6 +4125,7 @@ "way": [], "go": "", "icon": "txk_017", + "sicon": "txk_017", "describe": "intr_item_describe_50201", "diaoluo": 16, "useNeed": [], @@ -4112,6 +4144,7 @@ "way": [], "go": "", "icon": "txk_011", + "sicon": "txk_011", "describe": "intr_item_describe_50202", "diaoluo": 17, "useNeed": [], @@ -4130,6 +4163,7 @@ "way": [], "go": "", "icon": "txk_005", + "sicon": "txk_005", "describe": "intr_item_describe_50203", "diaoluo": 18, "useNeed": [], @@ -4148,6 +4182,7 @@ "way": [], "go": "", "icon": "txk_004", + "sicon": "txk_004", "describe": "intr_item_describe_50204", "diaoluo": 19, "useNeed": [], @@ -4166,6 +4201,7 @@ "way": [], "go": "", "icon": "txk_024", + "sicon": "txk_024", "describe": "intr_item_describe_50205", "diaoluo": 20, "useNeed": [], @@ -4184,6 +4220,7 @@ "way": [], "go": "", "icon": "txk_013", + "sicon": "txk_013", "describe": "intr_item_describe_50206", "diaoluo": 21, "useNeed": [], @@ -4202,6 +4239,7 @@ "way": [], "go": "", "icon": "txk_021", + "sicon": "txk_021", "describe": "intr_item_describe_50207", "diaoluo": 22, "useNeed": [], @@ -4220,7 +4258,8 @@ "way": [], "go": "", "icon": 100011, - "describe": "intr_item_describe_50208", + "sicon": 100011, + "describe": "intr_item_describe_50301", "diaoluo": 3, "useNeed": [], "usePrize": [], @@ -4238,7 +4277,8 @@ "way": [], "go": "", "icon": 100021, - "describe": "intr_item_describe_50209", + "sicon": 100021, + "describe": "intr_item_describe_50302", "diaoluo": 4, "useNeed": [], "usePrize": [], diff --git a/src/json/playerHead.json b/src/json/playerHead.json index 04f1367..37bf3c9 100644 --- a/src/json/playerHead.json +++ b/src/json/playerHead.json @@ -29,6 +29,36 @@ "colour": 1, "ani": "" }, + "3": { + "id": 3, + "name": "intr_playerinfo_name_3", + "undefined": "获得圣诞活动皮肤【圣诞庆典:男】后解锁", + "img": 100011, + "cond": [ + "model", + 3 + ], + "intr": "intr_playerinfo_intr_3", + "sort": 3, + "buff": {}, + "colour": 1, + "ani": "" + }, + "4": { + "id": 4, + "name": "intr_playerinfo_name_4", + "undefined": "获得圣诞活动皮肤【圣诞庆典:女】后解锁", + "img": 100021, + "cond": [ + "model", + 4 + ], + "intr": "intr_playerinfo_intr_4", + "sort": 4, + "buff": {}, + "colour": 1, + "ani": "" + }, "1001": { "id": 1001, "name": "intr_playerinfo_name_1001", @@ -39,7 +69,7 @@ 1001 ], "intr": "intr_playerinfo_intr_1001", - "sort": 40, + "sort": 42, "buff": {}, "colour": 1, "ani": "" @@ -54,7 +84,7 @@ 1002 ], "intr": "intr_playerinfo_intr_1002", - "sort": 41, + "sort": 43, "buff": {}, "colour": 1, "ani": "" @@ -69,7 +99,7 @@ 2001 ], "intr": "intr_playerinfo_intr_2001", - "sort": 38, + "sort": 40, "buff": {}, "colour": 1, "ani": "" @@ -84,7 +114,7 @@ 2002 ], "intr": "intr_playerinfo_intr_2002", - "sort": 39, + "sort": 41, "buff": {}, "colour": 1, "ani": "" @@ -99,7 +129,7 @@ 3001 ], "intr": "intr_playerinfo_intr_3001", - "sort": 23, + "sort": 25, "buff": {}, "colour": 1, "ani": "" @@ -114,7 +144,7 @@ 3002 ], "intr": "intr_playerinfo_intr_3002", - "sort": 24, + "sort": 26, "buff": {}, "colour": 1, "ani": "" @@ -129,7 +159,7 @@ 3003 ], "intr": "intr_playerinfo_intr_3003", - "sort": 25, + "sort": 27, "buff": {}, "colour": 1, "ani": "" @@ -144,7 +174,7 @@ 3004 ], "intr": "intr_playerinfo_intr_3004", - "sort": 26, + "sort": 28, "buff": {}, "colour": 1, "ani": "" @@ -159,7 +189,7 @@ 3005 ], "intr": "intr_playerinfo_intr_3005", - "sort": 27, + "sort": 29, "buff": {}, "colour": 1, "ani": "" @@ -174,7 +204,7 @@ 3006 ], "intr": "intr_playerinfo_intr_3006", - "sort": 28, + "sort": 30, "buff": {}, "colour": 1, "ani": "" @@ -189,7 +219,7 @@ 3007 ], "intr": "intr_playerinfo_intr_3007", - "sort": 29, + "sort": 31, "buff": {}, "colour": 1, "ani": "" @@ -204,7 +234,7 @@ 3008 ], "intr": "intr_playerinfo_intr_3008", - "sort": 30, + "sort": 32, "buff": {}, "colour": 1, "ani": "" @@ -219,7 +249,7 @@ 3009 ], "intr": "intr_playerinfo_intr_3009", - "sort": 31, + "sort": 33, "buff": {}, "colour": 1, "ani": "" @@ -234,7 +264,7 @@ 3010 ], "intr": "intr_playerinfo_intr_3010", - "sort": 32, + "sort": 34, "buff": {}, "colour": 1, "ani": "" @@ -249,7 +279,7 @@ 3011 ], "intr": "intr_playerinfo_intr_3011", - "sort": 33, + "sort": 35, "buff": {}, "colour": 1, "ani": "" @@ -264,7 +294,7 @@ 3012 ], "intr": "intr_playerinfo_intr_3012", - "sort": 34, + "sort": 36, "buff": {}, "colour": 1, "ani": "" @@ -279,7 +309,7 @@ 3013 ], "intr": "intr_playerinfo_intr_3013", - "sort": 35, + "sort": 37, "buff": {}, "colour": 1, "ani": "" @@ -294,7 +324,7 @@ 3014 ], "intr": "intr_playerinfo_intr_3014", - "sort": 36, + "sort": 38, "buff": {}, "colour": 1, "ani": "" @@ -309,7 +339,7 @@ 3015 ], "intr": "intr_playerinfo_intr_3015", - "sort": 37, + "sort": 39, "buff": {}, "colour": 1, "ani": "" @@ -324,7 +354,7 @@ 4001 ], "intr": "intr_playerinfo_intr_4001", - "sort": 8, + "sort": 10, "buff": {}, "colour": 1, "ani": "" @@ -339,7 +369,7 @@ 4002 ], "intr": "intr_playerinfo_intr_4002", - "sort": 9, + "sort": 11, "buff": {}, "colour": 1, "ani": "" @@ -354,7 +384,7 @@ 4003 ], "intr": "intr_playerinfo_intr_4003", - "sort": 10, + "sort": 12, "buff": {}, "colour": 1, "ani": "" @@ -369,7 +399,7 @@ 4004 ], "intr": "intr_playerinfo_intr_4004", - "sort": 11, + "sort": 13, "buff": {}, "colour": 1, "ani": "" @@ -384,7 +414,7 @@ 4005 ], "intr": "intr_playerinfo_intr_4005", - "sort": 12, + "sort": 14, "buff": {}, "colour": 1, "ani": "" @@ -399,7 +429,7 @@ 4006 ], "intr": "intr_playerinfo_intr_4006", - "sort": 13, + "sort": 15, "buff": {}, "colour": 1, "ani": "" @@ -414,7 +444,7 @@ 4007 ], "intr": "intr_playerinfo_intr_4007", - "sort": 14, + "sort": 16, "buff": {}, "colour": 1, "ani": "" @@ -429,7 +459,7 @@ 4008 ], "intr": "intr_playerinfo_intr_4008", - "sort": 15, + "sort": 17, "buff": {}, "colour": 1, "ani": "" @@ -444,7 +474,7 @@ 4009 ], "intr": "intr_playerinfo_intr_4009", - "sort": 16, + "sort": 18, "buff": {}, "colour": 1, "ani": "" @@ -459,7 +489,7 @@ 4010 ], "intr": "intr_playerinfo_intr_4010", - "sort": 17, + "sort": 19, "buff": {}, "colour": 1, "ani": "" @@ -474,7 +504,7 @@ 4011 ], "intr": "intr_playerinfo_intr_4011", - "sort": 18, + "sort": 20, "buff": {}, "colour": 1, "ani": "" @@ -489,7 +519,7 @@ 4012 ], "intr": "intr_playerinfo_intr_4012", - "sort": 19, + "sort": 21, "buff": {}, "colour": 1, "ani": "" @@ -504,7 +534,7 @@ 4013 ], "intr": "intr_playerinfo_intr_4013", - "sort": 20, + "sort": 22, "buff": {}, "colour": 1, "ani": "" @@ -519,7 +549,7 @@ 4014 ], "intr": "intr_playerinfo_intr_4014", - "sort": 21, + "sort": 23, "buff": {}, "colour": 1, "ani": "" @@ -534,7 +564,7 @@ 4015 ], "intr": "intr_playerinfo_intr_4015", - "sort": 22, + "sort": 24, "buff": {}, "colour": 1, "ani": "" @@ -549,7 +579,7 @@ 5001 ], "intr": "intr_playerinfo_intr_5001", - "sort": 3, + "sort": 5, "buff": {}, "colour": 1, "ani": "" @@ -564,7 +594,7 @@ 5002 ], "intr": "intr_playerinfo_intr_5002", - "sort": 4, + "sort": 6, "buff": {}, "colour": 1, "ani": "" @@ -579,7 +609,7 @@ 5003 ], "intr": "intr_playerinfo_intr_5003", - "sort": 5, + "sort": 7, "buff": {}, "colour": 1, "ani": "" @@ -594,7 +624,7 @@ 5004 ], "intr": "intr_playerinfo_intr_5004", - "sort": 6, + "sort": 8, "buff": {}, "colour": 1, "ani": "" @@ -609,7 +639,7 @@ 5005 ], "intr": "intr_playerinfo_intr_5005", - "sort": 7, + "sort": 9, "buff": {}, "colour": 1, "ani": "" diff --git a/src/json/playerHeadFrame.json b/src/json/playerHeadFrame.json index 485c541..a52191d 100644 --- a/src/json/playerHeadFrame.json +++ b/src/json/playerHeadFrame.json @@ -391,5 +391,22 @@ }, "colour": 4, "ani": "" + }, + "24": { + "id": 24, + "name": "playerheadFrame_name_24", + "undefined": "消费竞赛活动前三名获得,解锁后伤害加成+1%(限时7天)", + "img": "txk_025", + "cond": [ + "time", + 604800 + ], + "intr": "playerheadFrame_des_24", + "sort": 24, + "buff": { + "dpspro": 0.01 + }, + "colour": 5, + "ani": "" } } \ No newline at end of file diff --git a/src/json/playerModel.json b/src/json/playerModel.json index dcf972b..634d211 100644 --- a/src/json/playerModel.json +++ b/src/json/playerModel.json @@ -1,76 +1,74 @@ { "1": { - "1": { - "type": 1, - "id": 1, - "name": "playerModel_name_1", - "head": 10001, - "img": "zhu_10001", - "cond": [ - "lv", - 1 - ], - "intr": "playerModel_des_1", - "sort": 1, - "buff": {}, - "colour": 1, - "mwSpine": "ani_mingwangnan", - "fireHead": "img_lih2" + "id": 1, + "type": 1, + "name": "playerModel_name_1", + "head": 10001, + "img": "zhu_10001", + "cond": [ + "lv", + 1 + ], + "intr": "playerModel_des_1", + "sort": 1, + "buff": {}, + "colour": 1, + "mwSpine": "ani_mingwangnan", + "fireHead": "img_lih2" + }, + "2": { + "id": 2, + "type": 1, + "name": "playerModel_name_2", + "head": 10002, + "img": "zhu_10002", + "cond": [ + "lv", + 1 + ], + "intr": "playerModel_des_2", + "sort": 2, + "buff": {}, + "colour": 1, + "mwSpine": "ani_mingwangnv", + "fireHead": "img_lih1" + }, + "3": { + "id": 3, + "type": 1, + "name": "playerModel_name_3", + "head": 100011, + "img": 100011, + "cond": [ + "time", + -1 + ], + "intr": "playerModel_des_3", + "sort": 3, + "buff": { + "defpro": 0.02 }, - "2": { - "type": 1, - "id": 2, - "name": "playerModel_name_2", - "head": 10002, - "img": "zhu_10002", - "cond": [ - "lv", - 1 - ], - "intr": "playerModel_des_2", - "sort": 2, - "buff": {}, - "colour": 1, - "mwSpine": "ani_mingwangnv", - "fireHead": "img_lih1" + "colour": 5, + "mwSpine": "ani_mingwangnan", + "fireHead": "img_lih21" + }, + "4": { + "id": 4, + "type": 1, + "name": "playerModel_name_4", + "head": 100021, + "img": 100021, + "cond": [ + "time", + -1 + ], + "intr": "playerModel_des_4", + "sort": 4, + "buff": { + "atkpro": 0.02 }, - "3": { - "type": 1, - "id": 3, - "name": "playerModel_name_3", - "head": 100011, - "img": 100011, - "cond": [ - "time", - -1 - ], - "intr": "playerModel_des_3", - "sort": 3, - "buff": { - "defpro": 0.02 - }, - "colour": 5, - "mwSpine": "ani_mingwangnan", - "fireHead": "img_lih21" - }, - "4": { - "type": 1, - "id": 4, - "name": "playerModel_name_4", - "head": 100021, - "img": 100021, - "cond": [ - "time", - -1 - ], - "intr": "playerModel_des_4", - "sort": 4, - "buff": { - "atkpro": 0.02 - }, - "colour": 5, - "mwSpine": "ani_mingwangnv", - "fireHead": "img_lih11" - } + "colour": 5, + "mwSpine": "ani_mingwangnv", + "fireHead": "img_lih11" } } \ No newline at end of file diff --git a/src/json/tuisonglibao.json b/src/json/tuisonglibao.json index 737dbc1..20f6783 100644 --- a/src/json/tuisonglibao.json +++ b/src/json/tuisonglibao.json @@ -2,6 +2,7 @@ "1": { "id": 1, "type": 1, + "typeName": "tuisonglibao_name_2", "num": [ 5 ], @@ -17,6 +18,7 @@ "2": { "id": 2, "type": 1, + "typeName": "tuisonglibao_name_2", "num": [ 10 ], @@ -31,6 +33,7 @@ "3": { "id": 3, "type": 1, + "typeName": "tuisonglibao_name_2", "num": [ 20 ], @@ -44,7 +47,8 @@ }, "4": { "id": 4, - "type": 2, + "type": 1, + "typeName": "tuisonglibao_name_2", "num": [ { "a": "item", @@ -61,7 +65,8 @@ }, "5": { "id": 5, - "type": 2, + "type": 1, + "typeName": "tuisonglibao_name_2", "num": [ { "a": "item", @@ -78,7 +83,8 @@ }, "6": { "id": 6, - "type": 2, + "type": 1, + "typeName": "tuisonglibao_name_2", "num": [ { "a": "attr", @@ -96,7 +102,8 @@ }, "7": { "id": 7, - "type": 3, + "type": 1, + "typeName": "tuisonglibao_name_2", "num": [ 1 ], @@ -111,7 +118,8 @@ }, "8": { "id": 8, - "type": 4, + "type": 1, + "typeName": "tuisonglibao_name_2", "num": [ 3 ], @@ -126,7 +134,8 @@ }, "9": { "id": 9, - "type": 5, + "type": 1, + "typeName": "tuisonglibao_name_2", "num": [ 31 ], @@ -139,7 +148,8 @@ }, "10": { "id": 10, - "type": 5, + "type": 1, + "typeName": "tuisonglibao_name_2", "num": [ 45 ], @@ -152,7 +162,8 @@ }, "11": { "id": 11, - "type": 5, + "type": 1, + "typeName": "tuisonglibao_name_2", "num": [ 50 ], @@ -165,7 +176,8 @@ }, "12": { "id": 12, - "type": 5, + "type": 1, + "typeName": "tuisonglibao_name_2", "num": [ 53 ], @@ -178,7 +190,8 @@ }, "13": { "id": 13, - "type": 5, + "type": 1, + "typeName": "tuisonglibao_name_2", "num": [ 56 ], @@ -191,7 +204,8 @@ }, "14": { "id": 14, - "type": 5, + "type": 1, + "typeName": "tuisonglibao_name_2", "num": [ 60 ], @@ -204,7 +218,8 @@ }, "15": { "id": 15, - "type": 5, + "type": 1, + "typeName": "tuisonglibao_name_2", "num": [ 63 ], @@ -217,7 +232,8 @@ }, "16": { "id": 16, - "type": 5, + "type": 1, + "typeName": "tuisonglibao_name_2", "num": [ 66 ], @@ -230,7 +246,8 @@ }, "17": { "id": 17, - "type": 5, + "type": 1, + "typeName": "tuisonglibao_name_2", "num": [ 68 ], @@ -243,7 +260,233 @@ }, "18": { "id": 18, + "type": 1, + "typeName": "tuisonglibao_name_2", + "num": [ + 760 + ], + "payId": [ + "guanqialibao_1", + "guanqialibao_2", + "guanqialibao_4" + ], + "time": 3600, + "displayCD": 3600, + "scale": 3000 + }, + "101": { + "id": 101, + "type": 2, + "typeName": "tuisonglibao_name_3", + "num": [ + { + "a": "item", + "t": "9" + } + ], + "payId": [ + "daojulibao_1", + "daojulibao_2", + "daojulibao_3" + ], + "time": 3600, + "displayCD": 86400, + "scale": 3000 + }, + "102": { + "id": 102, + "type": 2, + "typeName": "tuisonglibao_name_3", + "num": [ + { + "a": "item", + "t": "28" + } + ], + "payId": [ + "daojulibao_4", + "daojulibao_5", + "daojulibao_6" + ], + "time": 3600, + "displayCD": 86400, + "scale": 3000 + }, + "103": { + "id": 103, + "type": 2, + "typeName": "tuisonglibao_name_3", + "num": [ + { + "a": "item", + "t": "18" + } + ], + "payId": [ + "daojulibao_7", + "daojulibao_8", + "daojulibao_9" + ], + "time": 3600, + "displayCD": 86400, + "scale": 3000 + }, + "104": { + "id": 104, + "type": 2, + "typeName": "tuisonglibao_name_3", + "num": [ + { + "a": "item", + "t": "19" + } + ], + "payId": [ + "daojulibao_10", + "daojulibao_11", + "daojulibao_12" + ], + "time": 3600, + "displayCD": 86400, + "scale": 3000 + }, + "401": { + "id": 401, "type": 5, + "typeName": "tuisonglibao_name_1", + "num": [ + 15 + ], + "payId": [ + "lv15" + ], + "time": 3600, + "displayCD": 3600, + "scale": 3000 + }, + "402": { + "id": 402, + "type": 5, + "typeName": "tuisonglibao_name_1", + "num": [ + 25 + ], + "payId": [ + "lv25" + ], + "time": 3600, + "displayCD": 3600, + "scale": 3000 + }, + "403": { + "id": 403, + "type": 5, + "typeName": "tuisonglibao_name_1", + "num": [ + 40 + ], + "payId": [ + "lv40", + "lv40_1" + ], + "time": 3600, + "displayCD": 3600, + "scale": 3000 + }, + "404": { + "id": 404, + "type": 5, + "typeName": "tuisonglibao_name_1", + "num": [ + 50 + ], + "payId": [ + "lv50_1", + "lv50_2" + ], + "time": 3600, + "displayCD": 3600, + "scale": 3000 + }, + "405": { + "id": 405, + "type": 5, + "typeName": "tuisonglibao_name_1", + "num": [ + 55 + ], + "payId": [ + "lv55", + "lv55_1" + ], + "time": 3600, + "displayCD": 3600, + "scale": 3000 + }, + "406": { + "id": 406, + "type": 5, + "typeName": "tuisonglibao_name_1", + "num": [ + 60 + ], + "payId": [ + "lv60", + "lv60_1" + ], + "time": 3600, + "displayCD": 3600, + "scale": 3000 + }, + "407": { + "id": 407, + "type": 5, + "typeName": "tuisonglibao_name_1", + "num": [ + 63 + ], + "payId": [ + "lv63", + "lv63_1" + ], + "time": 3600, + "displayCD": 3600, + "scale": 3000 + }, + "408": { + "id": 408, + "type": 5, + "typeName": "tuisonglibao_name_1", + "num": [ + 66 + ], + "payId": [ + "lv66", + "lv66_1" + ], + "time": 3600, + "displayCD": 3600, + "scale": 3000 + }, + "409": { + "id": 409, + "type": 5, + "typeName": "tuisonglibao_name_1", + "num": [ + 69 + ], + "payId": [ + "lv69", + "lv69_1" + ], + "time": 3600, + "displayCD": 3600, + "scale": 3000 + }, + "410": { + "id": 410, + "type": 5, + "typeName": "tuisonglibao_name_1", "num": [ 70 ], @@ -252,6 +495,21 @@ ], "time": 3600, "displayCD": 3600, - "scale": 1800 + "scale": 3000 + }, + "411": { + "id": 411, + "type": 5, + "typeName": "tuisonglibao_name_1", + "num": [ + 82 + ], + "payId": [ + "lv82_1", + "lv82_2" + ], + "time": 3600, + "displayCD": 3600, + "scale": 3000 } } \ No newline at end of file diff --git a/src/jsonType.ts b/src/jsonType.ts index 43654a4..e822019 100644 --- a/src/jsonType.ts +++ b/src/jsonType.ts @@ -1032,7 +1032,7 @@ type gc_playerLv = k_v<{ 'tujianlv': number }>; -type gc_playerModel = k_v>; +}>; type gc_pmd = { "get_hero_star5_pmd": string, "glkb_pmd": string, "jinjie_peijian": string, "guild_pmd": string, "tlsd_pmd": string, "hbzb_pmd1": string, "hbzb_pmd2": string, "hbzb_pmd3": string, [x: string]: any } diff --git a/src/public/user.ts b/src/public/user.ts index 0189473..ff9dcc1 100644 --- a/src/public/user.ts +++ b/src/public/user.ts @@ -1,14 +1,14 @@ import CryptoJS from 'crypto-js'; -import { ObjectId, OptionalId, WithId } from 'mongodb'; -import { BaseConnection } from 'tsrpc'; -import { Wjjl } from '../module/collection_wjjl'; -import { ServiceType } from '../shared/protocols/serviceProto'; -import { ReqLogin, ResLogin, playerAppend, playerAttr, playerInfo } from '../shared/protocols/user/PtlLogin'; -import { player } from '../shared/protocols/user/type'; -import { PublicShared } from '../shared/public/public'; -import { PlayerFun } from './player'; -import { ZhanLingTasks } from './zhanling'; -import { getGud, setGud } from './gud'; +import {ObjectId, OptionalId, WithId} from 'mongodb'; +import {BaseConnection} from 'tsrpc'; +import {Wjjl} from '../module/collection_wjjl'; +import {ServiceType} from '../shared/protocols/serviceProto'; +import {ReqLogin, ResLogin, playerAppend, playerAttr, playerInfo} from '../shared/protocols/user/PtlLogin'; +import {player} from '../shared/protocols/user/type'; +import {PublicShared} from '../shared/public/public'; +import {PlayerFun} from './player'; +import {ZhanLingTasks} from './zhanling'; +import {getGud, setGud} from './gud'; export const defaultUserInfo: playerInfo = { lv: 1, @@ -30,14 +30,12 @@ export const defaultUserAttr: playerAttr = { export const defaultUserAppend: playerAppend = { name: '', tujianLv: 0, - head: { id: "1", time: -1 }, - headFrame: { id: "1", time: -1 }, - chatFrame: { id: "1", time: -1 }, + head: {id: "1", time: -1}, + headFrame: {id: "1", time: -1}, + chatFrame: {id: "1", time: -1}, model: { - 1: { id: "1", time: -1 }, - 2: { id: "1", time: -1 }, - 3: { id: "1", time: -1 }, - 4: { id: "1", time: -1 }, + 1: {id: "1", time: -1}, + 2: {id: "2", time: -1} }, renown: 0, wxcLv: { @@ -60,12 +58,12 @@ export const defaultUserAppend: playerAppend = { ghId: '', ghName: '', ghLevel: 0, - ghwz: { 1: 0, 2: 0, 3: 0, 4: 0 } + ghwz: {1: 0, 2: 0, 3: 0, 4: 0} }; export class UserFun { static create(bUid: string) { - let { bindUid, ...userInfo } = defaultUserInfo; + let {bindUid, ...userInfo} = defaultUserInfo; return { bindUid: bUid, @@ -73,6 +71,7 @@ export class UserFun { ...defaultUserAttr }; } + static async check(gud: ResLogin['gud'], req: ReqLogin) { let obj: k_v = {}; let add: k_v = {}; @@ -126,14 +125,14 @@ export class UserFun { if (h_ids.length < 1) { gud.fightHeros = []; } else { - let dHeros = await G.mongodb.collection('hero').find({ _id: { $in: h_ids.map(id => G.mongodb.conversionId(id)) } }).toArray(); + let dHeros = await G.mongodb.collection('hero').find({_id: {$in: h_ids.map(id => G.mongodb.conversionId(id))}}).toArray(); gud.fightHeros = dHeros.map(h => h.heroId.toString()); } add.fightHeros = gud.fightHeros; } if (!gud.matrixPos) { - gud.matrixPos = Object.fromEntries(Object.keys(G.gc.fightPlan).map(pos => [pos, { ...gud.heroPos }])); + gud.matrixPos = Object.fromEntries(Object.keys(G.gc.fightPlan).map(pos => [pos, {...gud.heroPos}])); add.matrixPos = gud.matrixPos; } @@ -197,7 +196,7 @@ export class UserFun { add.loginTime = G.time; if (Object.keys(add).length > 0) { - G.mongodb.collection('user').updateOne({ bindUid: gud.bindUid,sid:gud.sid }, { + G.mongodb.collection('user').updateOne({bindUid: gud.bindUid, sid: gud.sid}, { $set: { ...add } @@ -211,24 +210,25 @@ export class UserFun { return obj; } - + // 检查空数据并修复 static async checkUidOrName() { - let users = await G.mongodb.collection('user').findOne({$or: [{uid: {$in:['', null]}},{name: {$in: ['', null]}}]}) - if(users) { + let users = await G.mongodb.collection('user').findOne({$or: [{uid: {$in: ['', null]}}, {name: {$in: ['', null]}}]}) + if (users) { let {bindUid, sid, _id} = users let uid = users.uid || (sid + '_' + _id) // 随机创建name let b64 = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(bindUid + sid)); let name = users.name || `temp_${b64}`.toLocaleLowerCase(); - await G.mongodb.collection('user').updateOne({ bindUid, sid }, { + await G.mongodb.collection('user').updateOne({bindUid, sid}, { $set: { uid, name } }); } - return + return } + /**创建账号数据 */ static async createUser(client: BaseConnection, bindUid: string, sid: number): Promise>> { // 开启事务 @@ -258,14 +258,17 @@ export class UserFun { // session.endSession() // 结束事务 return gud as WithId>; } + /**获取玩家附带的buff加成 */ static getOtherBuff(gud: ResLogin['gud']) { return gud; } + static async getGud(uid: string) { //return await G.redis.get('user', uid); return await getGud(uid); } + /**激活头像框 */ static async activeHeadFrame(uid: string, k: string, v: number) { let gud: player; @@ -312,11 +315,12 @@ export class UserFun { } if (change) { - PlayerFun.changeAttr(uid, { headFrames: gud.headFrames }); - G.server.sendMsgByUid(uid, 'msg_s2c/PlayerChange', { headFrames: gud.headFrames }); + PlayerFun.changeAttr(uid, {headFrames: gud.headFrames}); + G.server.sendMsgByUid(uid, 'msg_s2c/PlayerChange', {headFrames: gud.headFrames}); G.server.uid_connections[uid]?.refreshPower(); } } + /**激活聊天框 */ static async activeChatFrame(uid: string, k: string, v: number) { let gud: player; @@ -363,8 +367,60 @@ export class UserFun { } if (change) { - PlayerFun.changeAttr(uid, { chatFrames: gud.chatFrames }); - G.server.sendMsgByUid(uid, 'msg_s2c/PlayerChange', { chatFrames: gud.chatFrames }); + PlayerFun.changeAttr(uid, {chatFrames: gud.chatFrames}); + G.server.sendMsgByUid(uid, 'msg_s2c/PlayerChange', {chatFrames: gud.chatFrames}); + G.server.uid_connections[uid]?.refreshPower(); + } + } + + /**激活造型 */ + static async activeModel(uid: string, k: string, v: number) { + let gud: player; + // if (G.server.uid_connections[uid]) { + // gud = G.server.uid_connections[uid].gud; + // } else { + // gud = await G.redis.get('user', uid); + // } + gud = await getGud(uid); + + let change = false; + let model = G.gc.playerModel; + let checks = Object.values(model).filter(v => v.cond[0] == k); + if (checks.length > 0) { + checks.forEach(conf => { + let val = v; + if (k == 'wxcLv') val = gud.wxcLv.lv; + else if (gud[k] != undefined) val = gud[k]; + + if (k == 'jjc_rank' && !gud.model[conf.id] && val <= conf.cond[1]) { + gud.model[conf.id] = {id: conf.id + '', time: -1}; + change = true; + } else if (!gud.model[conf.id] && val >= conf.cond[1]) { + gud.model[conf.id] = {id: conf.id + '', time: -1}; + change = true; + } + }); + } else { + let conf = model[k]; + if (conf?.cond?.[0] == 'time') { + let val = conf.cond[1]; + + if (val == -1 && gud.model[conf.id]) { + change = true; + gud.model[conf.id] = {id: conf.id + '', time: -1}; + } else if (!gud.model[conf.id] || gud.model[conf.id].time < G.time) { + change = true; + gud.model[conf.id] = {id: conf.id + '', time: G.time + val * v}; + } else { + change = true; + gud.model[conf.id] = {id: conf.id + '', time: gud.model[conf.id].time += val * v} + } + } + } + + if (change) { + PlayerFun.changeAttr(uid, {model: gud.model}); + G.server.sendMsgByUid(uid, 'msg_s2c/PlayerChange', {model: gud.model}); G.server.uid_connections[uid]?.refreshPower(); } } From 87ccce1875e712a2ebec70395686b7792e722037 Mon Sep 17 00:00:00 2001 From: chenkai Date: Thu, 21 Dec 2023 09:45:08 +0800 Subject: [PATCH 12/41] =?UTF-8?q?fix:=20=E5=AF=B9=E4=B8=BB=E8=A7=92?= =?UTF-8?q?=E6=8A=80=E8=83=BD=20buff=20=E9=80=A0=E6=88=90=E7=9A=84?= =?UTF-8?q?=E4=BC=A4=E5=AE=B3=E6=B7=BB=E5=8A=A0=E4=B8=8A=E9=99=90=E9=99=90?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/shared/fightControl/fightDPS.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/shared/fightControl/fightDPS.ts b/src/shared/fightControl/fightDPS.ts index 3509d39..6129e1a 100644 --- a/src/shared/fightControl/fightDPS.ts +++ b/src/shared/fightControl/fightDPS.ts @@ -37,7 +37,7 @@ export function getFightDPS(fromRole: FightObj, toRole: FightObj, extData: DPS_E 运算速度 自身速度*随机浮动值 随机浮动值 0.9-1.1(1位小数) (-10,10) */ - + if (fromRole.isDead || toRole.isDead) return { num: 0, dps: 0, miss: false, baoji: false, fromRole: fromRole, toRole: toRole }; let miss = false, baoji = false, dps = 0; let fromRoleLv = fromRole.getData('lv'), toRoleLv = toRole.getData('lv'); @@ -182,6 +182,18 @@ export function getBuffDPS(toRole: FightObj, fromRole: FightObj, extData: { xiao // todo 主角技能还没有限制百分比的最大伤害,以下判断修复技能buff没有伤害 if (fromRole.getData('pos') != 7){ dps = dps > maxDps ? maxDps : dps; + } else { + // 主角技能伤害最大值: avg(所有上场干部的maxDps) * 2 + let sumHeroMaxDps = 0, heroCount = 0; + const fromRoleSide = fromRole.getData('side'); + fromRole.fightControl.fightRolesArr.forEach(role => { + if (role.getData('pos') < 7 && role.getData('side') === fromRoleSide) { + sumHeroMaxDps += role.getData('maxdps'); + heroCount++; + } + }); + maxDps = sumHeroMaxDps / heroCount * 2; + dps = dps > maxDps ? maxDps : dps; } return { num: -dps, dps: -dps, miss: miss, baoji: baoji, fromRole: fromRole, toRole: toRole }; From d633d52d80f1a9a3b53fbad0a021ea5fea21cca9 Mon Sep 17 00:00:00 2001 From: dy Date: Thu, 21 Dec 2023 10:14:21 +0800 Subject: [PATCH 13/41] =?UTF-8?q?=E9=80=A0=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api_s2c/user/ApiChangeInfo.ts | 6 +++--- src/shared/public/user.ts | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/api_s2c/user/ApiChangeInfo.ts b/src/api_s2c/user/ApiChangeInfo.ts index 012bb9f..fdb78f5 100644 --- a/src/api_s2c/user/ApiChangeInfo.ts +++ b/src/api_s2c/user/ApiChangeInfo.ts @@ -6,13 +6,13 @@ import {UserShared} from '../../shared/public/user'; export default async function (call: ApiCall) { - if (call.req.type == 'model' && !call.req.pos) return call.error(globalThis.lng.shiwu_6); + // if (call.req.type == 'model' && !call.req.pos) return call.error(globalThis.lng.shiwu_6); const active = (await G.mongodb.collection('playerInfo', 'playerInfo').findOne({ uid: call.uid, type: 'playerInfo' }))?.active || {}; - const fmtId = UserShared.getInfoId(call.req.type, call.req.id, call.req.pos || ''); + const fmtId = UserShared.getInfoId(call.req.type, call.req.id); const isMeet = UserShared.chechIsActive(fmtId, { lv: call.conn.gud.lv, vip: call.conn.gud.vip, @@ -27,7 +27,7 @@ export default async function (call: ApiCall) { if (call.req.type == 'model') { let d = JSON.parse(JSON.stringify(call.conn.gud.model)); - d[call.req.pos] = { + d[call.req.id] = { id: call.req.id, time: active[fmtId] || -1 }; diff --git a/src/shared/public/user.ts b/src/shared/public/user.ts index 55361c3..26b3bc5 100644 --- a/src/shared/public/user.ts +++ b/src/shared/public/user.ts @@ -10,10 +10,10 @@ export class UserShared { */ static chechIsActive(fmtId: string, collection: Partial<{ lv: number, vip: number, lsyx: k_v, model: k_v, active: k_v; }>) { - const [type, id, pos] = fmtId.split('_'); + const [type, id] = fmtId.split('_'); const jsonName = 'player' + type.slice(0, 1).toLocaleUpperCase() + type.slice(1); const json = G.gc[jsonName] as any; - const conf: _gcType['playerHead'][''] = pos ? json[pos][id] : json[id]; + const conf: _gcType['playerHead'] = json[id]; if (conf.cond[0] == 'lv') return collection.lv >= conf.cond[1]; else if (conf.cond[0] == 'vip') return collection.vip >= conf.cond[1]; From 552da7995190a7d365d2589c2b5a9d69a14df1ec Mon Sep 17 00:00:00 2001 From: dy Date: Thu, 21 Dec 2023 11:32:15 +0800 Subject: [PATCH 14/41] =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=A4=B4=E5=83=8F?= =?UTF-8?q?=E9=80=A0=E5=9E=8B=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api_s2c/user/ApiChangeInfo.ts | 4 +++- src/shared/public/user.ts | 21 +++++++++++++++++++-- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/api_s2c/user/ApiChangeInfo.ts b/src/api_s2c/user/ApiChangeInfo.ts index fdb78f5..cc04798 100644 --- a/src/api_s2c/user/ApiChangeInfo.ts +++ b/src/api_s2c/user/ApiChangeInfo.ts @@ -8,11 +8,13 @@ export default async function (call: ApiCall) { // if (call.req.type == 'model' && !call.req.pos) return call.error(globalThis.lng.shiwu_6); - const active = (await G.mongodb.collection('playerInfo', 'playerInfo').findOne({ + let active = (await G.mongodb.collection('playerInfo', 'playerInfo').findOne({ uid: call.uid, type: 'playerInfo' }))?.active || {}; const fmtId = UserShared.getInfoId(call.req.type, call.req.id); + if (R.values(active).length == 0) active = UserShared.getActive(fmtId, call.conn.gud, call.req.type, call.req.id) + const isMeet = UserShared.chechIsActive(fmtId, { lv: call.conn.gud.lv, vip: call.conn.gud.vip, diff --git a/src/shared/public/user.ts b/src/shared/public/user.ts index 26b3bc5..11fcf6c 100644 --- a/src/shared/public/user.ts +++ b/src/shared/public/user.ts @@ -4,6 +4,22 @@ export class UserShared { return Array.from(arguments).filter(s => s != '').join('_'); } + // todo active始终为空,暂时获取对应的avtive,解决打包上线的圣诞版本, + // 后续要理清数据格式,填入playerinfo的active,包括user/infoOpen接口的返回 + static getActive(fmtId, player, type, id?) { + switch (type) { + case 'head': + return {[fmtId]: player.head?.time} + case 'headFrame': + return {[fmtId]: player.headFrames[id]} + case 'chatFrame': + return {[fmtId]: player.chatFrames[id]} + case 'model': + return {[fmtId]: player.model?.[id]?.time} + } + return {} + } + /** * 判断头像之类是否激活 * @param id 请使用 UserShared.getInfo 转化后的id @@ -18,8 +34,9 @@ export class UserShared { if (conf.cond[0] == 'lv') return collection.lv >= conf.cond[1]; else if (conf.cond[0] == 'vip') return collection.vip >= conf.cond[1]; else if (conf.cond[0] == 'hero') return collection.lsyx[conf.cond[1]] > 0; - else if (conf.cond[0] == 'time') return collection.active[fmtId] == -1 || collection.active[fmtId] > G.time; - else if (conf.cond[0] == 'model') return Object.values(collection.model).find(i=>i.id==conf.cond[1]); + // else if (conf.cond[0] == 'time') return collection.active[fmtId] == -1 || collection.active[fmtId] > G.time; + else if (conf.cond[0] == 'time') return conf.cond[1] == -1 || collection.active[fmtId] > G.time; + else if (conf.cond[0] == 'model') return Object.values(collection.model).find(i => i.id == conf.cond[1]); else return false; } } \ No newline at end of file From 4ceaeb8a5ec0955e14f858d053859117305e2294 Mon Sep 17 00:00:00 2001 From: dy Date: Thu, 21 Dec 2023 11:36:53 +0800 Subject: [PATCH 15/41] =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=A4=B4=E5=83=8F?= =?UTF-8?q?=E9=80=A0=E5=9E=8B=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/shared/public/user.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/shared/public/user.ts b/src/shared/public/user.ts index 11fcf6c..fe19f59 100644 --- a/src/shared/public/user.ts +++ b/src/shared/public/user.ts @@ -35,7 +35,7 @@ export class UserShared { else if (conf.cond[0] == 'vip') return collection.vip >= conf.cond[1]; else if (conf.cond[0] == 'hero') return collection.lsyx[conf.cond[1]] > 0; // else if (conf.cond[0] == 'time') return collection.active[fmtId] == -1 || collection.active[fmtId] > G.time; - else if (conf.cond[0] == 'time') return conf.cond[1] == -1 || collection.active[fmtId] > G.time; + else if (conf.cond[0] == 'time') return conf.cond[1] == -1 || collection.active?.[fmtId] > G.time; else if (conf.cond[0] == 'model') return Object.values(collection.model).find(i => i.id == conf.cond[1]); else return false; } From cd6c79f6ac7171c3577a4016c0ef149828e320fe Mon Sep 17 00:00:00 2001 From: dy Date: Thu, 21 Dec 2023 11:55:32 +0800 Subject: [PATCH 16/41] =?UTF-8?q?=E5=86=85=E5=AD=98=E6=B3=84=E9=9C=B2?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 2 + src/tsbufferIndex.js | 1122 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1124 insertions(+) create mode 100644 src/tsbufferIndex.js diff --git a/Dockerfile b/Dockerfile index a6e8b01..d6f9983 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,4 +11,6 @@ WORKDIR /app RUN npm config set registry http://registry.npm.taobao.org/ && npm install pm2@5.2.2 -g +RUN rm -rf node_modules/tsbuffer-validator/index.js && cp tsbufferIndex.js node_modules/tsbuffer-validator/index.js + CMD cd /app && sh zoeninfo.sh "Asia/Tokyo" && pm2-runtime start js_pm2.config.js -- ${Param} diff --git a/src/tsbufferIndex.js b/src/tsbufferIndex.js new file mode 100644 index 0000000..f9ac364 --- /dev/null +++ b/src/tsbufferIndex.js @@ -0,0 +1,1122 @@ +/*! + * TSBuffer Validator v2.1.1 + * ----------------------------------------- + * MIT LICENSE + * KingWorks (C) Copyright 2022 + * https://github.com/k8w/tsbuffer-validator + */ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +require('k8w-extend-native'); +var tslib = require('tslib'); +var tsbufferSchema = require('tsbuffer-schema'); + +var ProtoHelper = /** @class */ (function () { + function ProtoHelper(proto) { + //this._schemaWithUuids = []; + this._uuidIndex = 1; + //this._unionPropertiesCache = {}; + //this._flatInterfaceSchemaCache = {}; + this.proto = proto; + } + /** 将ReferenceTypeSchema层层转换为它最终实际引用的类型 */ + ProtoHelper.prototype.parseReference = function (schema) { + // Reference + if (schema.type === tsbufferSchema.SchemaType.Reference) { + var parsedSchema = this.proto[schema.target]; + if (!parsedSchema) { + throw new Error("Cannot find reference target: ".concat(schema.target)); + } + if (this.isTypeReference(parsedSchema)) { + return this.parseReference(parsedSchema); + } + else { + return parsedSchema; + } + } + // IndexedAccess + else if (schema.type === tsbufferSchema.SchemaType.IndexedAccess) { + if (!this.isInterface(schema.objectType)) { + throw new Error("Error objectType: ".concat(schema.objectType.type)); + } + // find prop item + var flat = this.getFlatInterfaceSchema(schema.objectType); + var propItem = flat.properties.find(function (v) { return v.name === schema.index; }); + var propType = void 0; + if (propItem) { + propType = propItem.type; + } + else { + if (flat.indexSignature) { + propType = flat.indexSignature.type; + } + else { + throw new Error("Error index: ".concat(schema.index)); + } + } + // optional -> | undefined + if (propItem && propItem.optional && // 引用的字段是optional + (propItem.type.type !== tsbufferSchema.SchemaType.Union // 自身不为Union + // 或自身为Union,但没有undefined成员条件 + || propItem.type.members.findIndex(function (v) { return v.type.type === tsbufferSchema.SchemaType.Literal && v.type.literal === undefined; }) === -1)) { + propType = { + type: tsbufferSchema.SchemaType.Union, + members: [ + { id: 0, type: propType }, + { + id: 1, + type: { + type: tsbufferSchema.SchemaType.Literal, + literal: undefined + } + } + ] + }; + } + return this.isTypeReference(propType) ? this.parseReference(propType) : propType; + } + else if (schema.type === tsbufferSchema.SchemaType.Keyof) { + var flatInterface = this.getFlatInterfaceSchema(schema.target); + return { + type: tsbufferSchema.SchemaType.Union, + members: flatInterface.properties.map(function (v, i) { return ({ + id: i, + type: { + type: tsbufferSchema.SchemaType.Literal, + literal: v.name + } + }); }) + }; + } + else { + return schema; + } + }; + ProtoHelper.prototype.isInterface = function (schema, excludeReference) { + if (excludeReference === void 0) { excludeReference = false; } + if (!excludeReference && this.isTypeReference(schema)) { + var parsed = this.parseReference(schema); + return this.isInterface(parsed, excludeReference); + } + else { + return schema.type === tsbufferSchema.SchemaType.Interface || this.isMappedType(schema) && this.parseMappedType(schema).type === tsbufferSchema.SchemaType.Interface; + } + }; + ProtoHelper.prototype.isMappedType = function (schema) { + return schema.type === tsbufferSchema.SchemaType.Pick || + schema.type === tsbufferSchema.SchemaType.Partial || + schema.type === tsbufferSchema.SchemaType.Omit || + schema.type === tsbufferSchema.SchemaType.Overwrite; + }; + ProtoHelper.prototype.isTypeReference = function (schema) { + return schema.type === tsbufferSchema.SchemaType.Reference || schema.type === tsbufferSchema.SchemaType.IndexedAccess || schema.type === tsbufferSchema.SchemaType.Keyof; + }; + ProtoHelper.prototype._getSchemaUuid = function (schema) { + var schemaWithUuid = schema; + if (!schemaWithUuid.uuid) { + //schemaWithUuid.uuid = this._schemaWithUuids.push(schemaWithUuid); + schemaWithUuid.uuid = this._uuidIndex; + this._uuidIndex++; + } + return schemaWithUuid.uuid; + }; + ProtoHelper.prototype.getUnionProperties = function (schema) { + return this._addUnionProperties([], schema.members.map(function (v) { return v.type; }));; + + // var uuid = this._getSchemaUuid(schema); + // if (!this._unionPropertiesCache[uuid]) { + // this._unionPropertiesCache[uuid] = this._addUnionProperties([], schema.members.map(function (v) { return v.type; })); + // } + // return this._unionPropertiesCache[uuid]; + }; + /** + * unionProperties: 在Union或Intersection类型中,出现在任意member中的字段 + */ + ProtoHelper.prototype._addUnionProperties = function (unionProperties, schemas) { + for (var i = 0, len = schemas.length; i < len; ++i) { + var schema = this.parseReference(schemas[i]); + // Interface及其Ref 加入interfaces + if (this.isInterface(schema)) { + var flat = this.getFlatInterfaceSchema(schema); + flat.properties.forEach(function (v) { + unionProperties.binaryInsert(v.name, true); + }); + if (flat.indexSignature) { + var key = "[[".concat(flat.indexSignature.keyType, "]]"); + unionProperties.binaryInsert(key, true); + } + } + // Intersection/Union 递归合并unionProperties + else if (schema.type === tsbufferSchema.SchemaType.Intersection || schema.type === tsbufferSchema.SchemaType.Union) { + this._addUnionProperties(unionProperties, schema.members.map(function (v) { return v.type; })); + } + else if (this.isMappedType(schema)) { + this._addUnionProperties(unionProperties, [this.parseMappedType(schema)]); + } + } + return unionProperties; + }; + /** + * 将unionProperties 扩展到 InterfaceTypeSchema中(optional的any类型) + * 以此来跳过对它们的检查(用于Intersection/Union) + */ + ProtoHelper.prototype.applyUnionProperties = function (schema, unionProperties) { + var newSchema = tslib.__assign(tslib.__assign({}, schema), { properties: schema.properties.slice() }); + var _loop_1 = function (prop) { + if (prop === '[[String]]') { + newSchema.indexSignature = newSchema.indexSignature || { + keyType: tsbufferSchema.SchemaType.String, + type: { type: tsbufferSchema.SchemaType.Any } + }; + } + else if (prop === '[[Number]]') { + newSchema.indexSignature = newSchema.indexSignature || { + keyType: tsbufferSchema.SchemaType.Number, + type: { type: tsbufferSchema.SchemaType.Any } + }; + } + else if (!schema.properties.find(function (v) { return v.name === prop; })) { + newSchema.properties.push({ + id: -1, + name: prop, + optional: true, + type: { + type: tsbufferSchema.SchemaType.Any + } + }); + } + }; + for (var _i = 0, unionProperties_1 = unionProperties; _i < unionProperties_1.length; _i++) { + var prop = unionProperties_1[_i]; + _loop_1(prop); + } + return newSchema; + }; + /** + * 将interface及其引用转换为展平的schema + */ + ProtoHelper.prototype.getFlatInterfaceSchema = function (schema) { + let res; + if (this.isTypeReference(schema)) { + var parsed = this.parseReference(schema); + if (parsed.type !== tsbufferSchema.SchemaType.Interface) { + throw new Error("Cannot flatten non interface type: ".concat(parsed.type)); + } + res = this.getFlatInterfaceSchema(parsed); + } + else if (schema.type === tsbufferSchema.SchemaType.Interface) { + res = this._flattenInterface(schema); + } + else if (this.isMappedType(schema)) { + res = this._flattenMappedType(schema); + } + else { + // @ts-expect-error + throw new Error('Invalid interface type: ' + schema.type); + } + return res; + + // var uuid = this._getSchemaUuid(schema); + // // from cache + // if (this._flatInterfaceSchemaCache[uuid]) { + // return this._flatInterfaceSchemaCache[uuid]; + // } + // if (this.isTypeReference(schema)) { + // var parsed = this.parseReference(schema); + // if (parsed.type !== tsbufferSchema.SchemaType.Interface) { + // throw new Error("Cannot flatten non interface type: ".concat(parsed.type)); + // } + // this._flatInterfaceSchemaCache[uuid] = this.getFlatInterfaceSchema(parsed); + // } + // else if (schema.type === tsbufferSchema.SchemaType.Interface) { + // this._flatInterfaceSchemaCache[uuid] = this._flattenInterface(schema); + // } + // else if (this.isMappedType(schema)) { + // this._flatInterfaceSchemaCache[uuid] = this._flattenMappedType(schema); + // } + // else { + // // @ts-expect-error + // throw new Error('Invalid interface type: ' + schema.type); + // } + // return this._flatInterfaceSchemaCache[uuid]; + }; + /** + * 展平interface + */ + ProtoHelper.prototype._flattenInterface = function (schema) { + var properties = {}; + var indexSignature; + // 自身定义的properties和indexSignature优先级最高 + if (schema.properties) { + for (var _i = 0, _a = schema.properties; _i < _a.length; _i++) { + var prop = _a[_i]; + properties[prop.name] = { + optional: prop.optional, + type: prop.type + }; + } + } + if (schema.indexSignature) { + indexSignature = schema.indexSignature; + } + // extends的优先级次之,补全没有定义的字段 + if (schema.extends) { + for (var _b = 0, _c = schema.extends; _b < _c.length; _b++) { + var extend = _c[_b]; + // 解引用 + var parsedExtRef = this.parseReference(extend.type); + if (this.isMappedType(parsedExtRef)) { + parsedExtRef = this._flattenMappedType(parsedExtRef); + } + if (!this.isInterface(parsedExtRef)) { + throw new Error('SchemaError: extends must from interface but from ' + parsedExtRef.type); + } + // 递归展平extends + var flatenExtendsSchema = this.getFlatInterfaceSchema(parsedExtRef); + // properties + if (flatenExtendsSchema.properties) { + for (var _d = 0, _e = flatenExtendsSchema.properties; _d < _e.length; _d++) { + var prop = _e[_d]; + if (!properties[prop.name]) { + properties[prop.name] = { + optional: prop.optional, + type: prop.type + }; + } + } + } + // indexSignature + if (flatenExtendsSchema.indexSignature && !indexSignature) { + indexSignature = flatenExtendsSchema.indexSignature; + } + } + } + return { + type: tsbufferSchema.SchemaType.Interface, + properties: Object.entries(properties).map(function (v, i) { return ({ + id: i, + name: v[0], + optional: v[1].optional, + type: v[1].type + }); }), + indexSignature: indexSignature + }; + }; + /** 将MappedTypeSchema转换为展平的Interface + */ + ProtoHelper.prototype._flattenMappedType = function (schema) { + // target 解引用 + var target; + if (this.isTypeReference(schema.target)) { + var parsed = this.parseReference(schema.target); + target = parsed; + } + else { + target = schema.target; + } + var flatTarget; + // 内层仍然为MappedType 递归之 + if (target.type === tsbufferSchema.SchemaType.Pick || target.type === tsbufferSchema.SchemaType.Partial || target.type === tsbufferSchema.SchemaType.Omit || target.type === tsbufferSchema.SchemaType.Overwrite) { + flatTarget = this._flattenMappedType(target); + } + else if (target.type === tsbufferSchema.SchemaType.Interface) { + flatTarget = this._flattenInterface(target); + } + else { + throw new Error("Invalid target.type: ".concat(target.type)); + } + // 开始执行Mapped逻辑 + if (schema.type === tsbufferSchema.SchemaType.Pick) { + var properties = []; + var _loop_2 = function (key) { + var propItem = flatTarget.properties.find(function (v) { return v.name === key; }); + if (propItem) { + properties.push({ + id: properties.length, + name: key, + optional: propItem.optional, + type: propItem.type + }); + } + else if (flatTarget.indexSignature) { + properties.push({ + id: properties.length, + name: key, + type: flatTarget.indexSignature.type + }); + } + }; + for (var _i = 0, _a = schema.keys; _i < _a.length; _i++) { + var key = _a[_i]; + _loop_2(key); + } + return { + type: tsbufferSchema.SchemaType.Interface, + properties: properties + }; + } + else if (schema.type === tsbufferSchema.SchemaType.Partial) { + for (var _b = 0, _c = flatTarget.properties; _b < _c.length; _b++) { + var v = _c[_b]; + v.optional = true; + } + return flatTarget; + } + else if (schema.type === tsbufferSchema.SchemaType.Omit) { + var _loop_3 = function (key) { + flatTarget.properties.removeOne(function (v) { return v.name === key; }); + }; + for (var _d = 0, _e = schema.keys; _d < _e.length; _d++) { + var key = _e[_d]; + _loop_3(key); + } + return flatTarget; + } + else if (schema.type === tsbufferSchema.SchemaType.Overwrite) { + var overwrite = this.getFlatInterfaceSchema(schema.overwrite); + if (overwrite.indexSignature) { + flatTarget.indexSignature = overwrite.indexSignature; + } + var _loop_4 = function (prop) { + flatTarget.properties.removeOne(function (v) { return v.name === prop.name; }); + flatTarget.properties.push(prop); + }; + for (var _f = 0, _g = overwrite.properties; _f < _g.length; _f++) { + var prop = _g[_f]; + _loop_4(prop); + } + return flatTarget; + } + else { + throw new Error("Unknown type: ".concat(schema.type)); + } + }; + ProtoHelper.prototype.parseMappedType = function (schema) { + // 解嵌套,例如:Pick>> + var parents = []; + var child = schema; + do { + parents.push(child); + child = this.parseReference(child.target); + } while (this.isMappedType(child)); + // 最内层是 interface,直接返回(validator 会验证 key 匹配) + if (child.type === tsbufferSchema.SchemaType.Interface) { + return child; + } + // PickOmit === PickOmit | PickOmit + else if (child.type === tsbufferSchema.SchemaType.Union || child.type === tsbufferSchema.SchemaType.Intersection) { + var newSchema = { + type: child.type, + members: child.members.map(function (v) { + // 从里面往外装 + var type = v.type; + for (var i = parents.length - 1; i > -1; --i) { + var parent_1 = parents[i]; + type = tslib.__assign(tslib.__assign({}, parent_1), { target: type }); + } + return { + id: v.id, + type: type + }; + }) + }; + return newSchema; + } + else { + throw new Error("Unsupported pattern ".concat(schema.type, "<").concat(child.type, ">")); + } + }; + return ProtoHelper; +}()); + +var _a; +/** @internal */ +var ErrorType; +(function (ErrorType) { + ErrorType["TypeError"] = "TypeError"; + ErrorType["InvalidScalarType"] = "InvalidScalarType"; + ErrorType["TupleOverLength"] = "TupleOverLength"; + ErrorType["InvalidEnumValue"] = "InvalidEnumValue"; + ErrorType["InvalidLiteralValue"] = "InvalidLiteralValue"; + ErrorType["MissingRequiredProperty"] = "MissingRequiredProperty"; + ErrorType["ExcessProperty"] = "ExcessProperty"; + ErrorType["InvalidNumberKey"] = "InvalidNumberKey"; + ErrorType["UnionTypesNotMatch"] = "UnionTypesNotMatch"; + ErrorType["UnionMembersNotMatch"] = "UnionMembersNotMatch"; + ErrorType["CustomError"] = "CustomError"; +})(ErrorType || (ErrorType = {})); +/** @internal */ +var ErrorMsg = (_a = {}, + _a[ErrorType.TypeError] = function (expect, actual) { return "Expected type to be `".concat(expect, "`, actually `").concat(actual, "`."); }, + _a[ErrorType.InvalidScalarType] = function (value, scalarType) { return "`".concat(value, "` is not a valid `").concat(scalarType, "`."); }, + _a[ErrorType.TupleOverLength] = function (valueLength, schemaLength) { return "Value has ".concat(valueLength, " elements but schema allows only ").concat(schemaLength, "."); }, + _a[ErrorType.InvalidEnumValue] = function (value) { return "`".concat(value, "` is not a valid enum member."); }, + _a[ErrorType.InvalidLiteralValue] = function (expected, actual) { return "Expected to equals `".concat(stringify(expected), "`, actually `").concat(stringify(actual), "`"); }, + _a[ErrorType.MissingRequiredProperty] = function (propName) { return "Missing required property `".concat(propName, "`."); }, + _a[ErrorType.ExcessProperty] = function (propName) { return "Excess property `".concat(propName, "` should not exists."); }, + _a[ErrorType.InvalidNumberKey] = function (key) { return "`".concat(key, "` is not a valid key, the key here should be a `number`."); }, + // Union + _a[ErrorType.UnionTypesNotMatch] = function (value, types) { return "`".concat(stringify(value), "` is not matched to `").concat(types.join(' | '), "`"); }, + _a[ErrorType.UnionMembersNotMatch] = function (memberErrors) { return "No union member matched, detail:\n".concat(memberErrors.map(function (v, i) { return " <".concat(i, "> ").concat(v.errMsg); }).join('\n')); }, + _a[ErrorType.CustomError] = function (errMsg) { return errMsg; }, + _a); +/** @internal */ +function stringify(value) { + if (typeof value === 'string') { + var output = JSON.stringify(value); + return "'" + output.substr(1, output.length - 2) + "'"; + } + return JSON.stringify(value); +} + +/** @internal */ +var ValidateResultError = /** @class */ (function () { + function ValidateResultError(error) { + this.isSucc = false; + this.error = error; + } + Object.defineProperty(ValidateResultError.prototype, "errMsg", { + get: function () { + return ValidateResultError.getErrMsg(this.error); + }, + enumerable: false, + configurable: true + }); + ValidateResultError.getErrMsg = function (error) { + var _a; + var errMsg = ErrorMsg[error.type].apply(ErrorMsg, error.params); + if ((_a = error.inner) === null || _a === void 0 ? void 0 : _a.property.length) { + return "Property `".concat(error.inner.property.join('.'), "`: ").concat(errMsg); + } + else { + return errMsg; + } + }; + return ValidateResultError; +}()); +/** @internal */ +var ValidateResultUtil = /** @class */ (function () { + function ValidateResultUtil() { + } + ValidateResultUtil.error = function (type) { + var params = []; + for (var _i = 1; _i < arguments.length; _i++) { + params[_i - 1] = arguments[_i]; + } + return new ValidateResultError({ + type: type, + params: params + }); + }; + ValidateResultUtil.innerError = function (property, value, schema, error) { + var _a; + if (error.error.inner) { + if (typeof property === 'string') { + error.error.inner.property.unshift(property); + } + else { + (_a = error.error.inner.property).unshift.apply(_a, property); + } + } + else { + error.error.inner = { + property: typeof property === 'string' ? [property] : property, + value: value, + schema: schema + }; + } + return error; + }; + ValidateResultUtil.succ = { isSucc: true }; + return ValidateResultUtil; +}()); + +var typedArrays = { + Int8Array: Int8Array, + Int16Array: Int16Array, + Int32Array: Int32Array, + BigInt64Array: typeof BigInt64Array !== 'undefined' ? BigInt64Array : undefined, + Uint8Array: Uint8Array, + Uint16Array: Uint16Array, + Uint32Array: Uint32Array, + BigUint64Array: typeof BigUint64Array !== 'undefined' ? BigUint64Array : undefined, + Float32Array: Float32Array, + Float64Array: Float64Array +}; +/** + * TSBuffer Schema Validator + * @public + */ +var TSBufferValidator = /** @class */ (function () { + function TSBufferValidator(proto, options) { + /** + * Default options + */ + this.options = { + excessPropertyChecks: true, + strictNullChecks: false, + cloneProto: true + }; + if (options) { + this.options = tslib.__assign(tslib.__assign({}, this.options), options); + } + this.proto = this.options.cloneProto ? Object.merge({}, proto) : proto; + this.protoHelper = new ProtoHelper(this.proto); + } + /** + * Validate whether the value is valid to the schema + * @param value - Value to be validated. + * @param schemaId - Schema or schema ID. + * For example, the schema ID for type `Test` in `a/b.ts` may be `a/b/Test`. + */ + TSBufferValidator.prototype.validate = function (value, schemaOrId, options) { + var _a, _b; + var schema; + var schemaId; + // Get schema + if (typeof schemaOrId === 'string') { + schemaId = schemaOrId; + schema = this.proto[schemaId]; + if (!schema) { + throw new Error("Cannot find schema: ".concat(schemaId)); + } + } + else { + schema = schemaOrId; + } + // Merge default options + return this._validate(value, schema, tslib.__assign(tslib.__assign({}, options), { excessPropertyChecks: (_a = options === null || options === void 0 ? void 0 : options.excessPropertyChecks) !== null && _a !== void 0 ? _a : this.options.excessPropertyChecks, strictNullChecks: (_b = options === null || options === void 0 ? void 0 : options.strictNullChecks) !== null && _b !== void 0 ? _b : this.options.strictNullChecks })); + }; + TSBufferValidator.prototype._validate = function (value, schema, options) { + var _a; + var vRes; + // Validate + switch (schema.type) { + case tsbufferSchema.SchemaType.Boolean: + vRes = this._validateBooleanType(value, schema); + break; + case tsbufferSchema.SchemaType.Number: + vRes = this._validateNumberType(value, schema); + break; + case tsbufferSchema.SchemaType.String: + vRes = this._validateStringType(value, schema); + break; + case tsbufferSchema.SchemaType.Array: + vRes = this._validateArrayType(value, schema, options); + break; + case tsbufferSchema.SchemaType.Tuple: + vRes = this._validateTupleType(value, schema, options); + break; + case tsbufferSchema.SchemaType.Enum: + vRes = this._validateEnumType(value, schema); + break; + case tsbufferSchema.SchemaType.Any: + vRes = this._validateAnyType(value); + break; + case tsbufferSchema.SchemaType.Literal: + vRes = this._validateLiteralType(value, schema, (_a = options === null || options === void 0 ? void 0 : options.strictNullChecks) !== null && _a !== void 0 ? _a : this.options.strictNullChecks); + break; + case tsbufferSchema.SchemaType.Object: + vRes = this._validateObjectType(value, schema); + break; + case tsbufferSchema.SchemaType.Interface: + vRes = this._validateInterfaceType(value, schema, options); + break; + case tsbufferSchema.SchemaType.Buffer: + vRes = this._validateBufferType(value, schema); + break; + case tsbufferSchema.SchemaType.IndexedAccess: + case tsbufferSchema.SchemaType.Reference: + case tsbufferSchema.SchemaType.Keyof: + vRes = this._validateReferenceType(value, schema, options); + break; + case tsbufferSchema.SchemaType.Union: + vRes = this._validateUnionType(value, schema, options); + break; + case tsbufferSchema.SchemaType.Intersection: + vRes = this._validateIntersectionType(value, schema, options); + break; + case tsbufferSchema.SchemaType.Pick: + case tsbufferSchema.SchemaType.Omit: + case tsbufferSchema.SchemaType.Partial: + case tsbufferSchema.SchemaType.Overwrite: + vRes = this._validateMappedType(value, schema, options); + break; + case tsbufferSchema.SchemaType.Date: + vRes = this._validateDateType(value); + break; + case tsbufferSchema.SchemaType.NonNullable: + vRes = this._validateNonNullableType(value, schema, options); + break; + case tsbufferSchema.SchemaType.Custom: + var res = schema.validate(value); + vRes = res.isSucc ? ValidateResultUtil.succ : ValidateResultUtil.error(ErrorType.CustomError, res.errMsg); + break; + // 错误的type + default: + // @ts-expect-error + throw new Error("Unsupported schema type: ".concat(schema.type)); + } + //vRes = ValidateResultUtil.succ; + // prune + if (options === null || options === void 0 ? void 0 : options.prune) { + // don't need prune, return original value + if (options.prune.output === undefined) { + options.prune.output = value; + } + // output to parent + if (options.prune.parent) { + options.prune.parent.value[options.prune.parent.key] = options.prune.output; + } + } + return vRes; + }; + /** + * 修剪 Object,移除 Schema 中未定义的 Key + * 需要确保 value 类型合法 + * @param value - value to be validated + * @param schemaOrId -Schema or schema ID. + * @returns Validate result and pruned value. if validate failed, `pruneOutput` would be undefined. + */ + TSBufferValidator.prototype.prune = function (value, schemaOrId, options) { + var _a; + var schema = typeof schemaOrId === 'string' ? this.proto[schemaOrId] : schemaOrId; + if (!schema) { + throw new Error('Cannot find schema: ' + schemaOrId); + } + var prune = {}; + var vRes = this._validate(value, schema, tslib.__assign(tslib.__assign({}, options), { prune: prune, excessPropertyChecks: false, strictNullChecks: (_a = options === null || options === void 0 ? void 0 : options.strictNullChecks) !== null && _a !== void 0 ? _a : this.options.strictNullChecks })); + if (vRes.isSucc) { + vRes.pruneOutput = prune.output; + } + return vRes; + }; + TSBufferValidator.prototype._validateBooleanType = function (value, schema) { + var type = this._getTypeof(value); + if (type === 'boolean') { + return ValidateResultUtil.succ; + } + else { + return ValidateResultUtil.error(ErrorType.TypeError, 'boolean', type); + } + }; + TSBufferValidator.prototype._validateNumberType = function (value, schema) { + // 默认为double + var scalarType = schema.scalarType || 'double'; + // Wrong Type + var type = this._getTypeof(value); + var rightType = scalarType.indexOf('big') > -1 ? 'bigint' : 'number'; + if (type !== rightType) { + return ValidateResultUtil.error(ErrorType.TypeError, rightType, type); + } + // scalarType类型检测 + // 整形却为小数 + if (scalarType !== 'double' && type === 'number' && !Number.isInteger(value)) { + return ValidateResultUtil.error(ErrorType.InvalidScalarType, value, scalarType); + } + // 无符号整形却为负数 + if (scalarType.indexOf('uint') > -1 && value < 0) { + return ValidateResultUtil.error(ErrorType.InvalidScalarType, value, scalarType); + } + return ValidateResultUtil.succ; + }; + TSBufferValidator.prototype._validateStringType = function (value, schema) { + var type = this._getTypeof(value); + return type === 'string' ? ValidateResultUtil.succ : ValidateResultUtil.error(ErrorType.TypeError, 'string', type); + }; + TSBufferValidator.prototype._validateArrayType = function (value, schema, options) { + // is Array type + var type = this._getTypeof(value); + if (type !== tsbufferSchema.SchemaType.Array) { + return ValidateResultUtil.error(ErrorType.TypeError, tsbufferSchema.SchemaType.Array, type); + } + // prune output + var prune = options.prune; + if (prune) { + prune.output = Array.from({ length: value.length }); + } + // validate elementType + for (var i = 0; i < value.length; ++i) { + var elemValidateResult = this._validate(value[i], schema.elementType, tslib.__assign(tslib.__assign({}, options), { prune: (prune === null || prune === void 0 ? void 0 : prune.output) ? { + parent: { + value: prune.output, + key: i + } + } : undefined })); + if (!elemValidateResult.isSucc) { + return ValidateResultUtil.innerError('' + i, value[i], schema.elementType, elemValidateResult); + } + } + return ValidateResultUtil.succ; + }; + TSBufferValidator.prototype._validateTupleType = function (value, schema, options) { + // is Array type + var type = this._getTypeof(value); + if (type !== tsbufferSchema.SchemaType.Array) { + return ValidateResultUtil.error(ErrorType.TypeError, tsbufferSchema.SchemaType.Array, type); + } + var prune = options.prune; + // validate length + // excessPropertyChecks 与 prune互斥 + if (!prune && options.excessPropertyChecks && value.length > schema.elementTypes.length) { + return ValidateResultUtil.error(ErrorType.TupleOverLength, value.length, schema.elementTypes.length); + } + // prune output + if (prune) { + prune.output = Array.from({ length: Math.min(value.length, schema.elementTypes.length) }); + } + // validate elementType + for (var i = 0; i < schema.elementTypes.length; ++i) { + // MissingRequiredProperty: NotOptional && is undefined + if (value[i] === undefined || value[i] === null && !options.strictNullChecks) { + var canBeNull = this._canBeNull(schema.elementTypes[i]); + var canBeUndefined = schema.optionalStartIndex !== undefined && i >= schema.optionalStartIndex || this._canBeUndefined(schema.elementTypes[i]); + var isOptional = canBeUndefined || !options.strictNullChecks && canBeNull; + // skip undefined property + if (isOptional) { + // Prune null & undefined->null + if (prune === null || prune === void 0 ? void 0 : prune.output) { + if (value[i] === null && canBeNull + || value[i] === undefined && !canBeUndefined && canBeNull) { + prune.output[i] = null; + } + } + continue; + } + else { + return ValidateResultUtil.error(ErrorType.MissingRequiredProperty, i); + } + } + // element type check + var elemValidateResult = this._validate(value[i], schema.elementTypes[i], { + prune: (prune === null || prune === void 0 ? void 0 : prune.output) ? { + parent: { + value: prune.output, + key: i + } + } : undefined, + strictNullChecks: options.strictNullChecks, + excessPropertyChecks: options.excessPropertyChecks + }); + if (!elemValidateResult.isSucc) { + return ValidateResultUtil.innerError('' + i, value[i], schema.elementTypes[i], elemValidateResult); + } + } + return ValidateResultUtil.succ; + }; + TSBufferValidator.prototype._canBeUndefined = function (schema) { + var _this = this; + if (schema.type === tsbufferSchema.SchemaType.Union) { + return schema.members.some(function (v) { return _this._canBeUndefined(v.type); }); + } + if (schema.type === tsbufferSchema.SchemaType.Literal && schema.literal === undefined) { + return true; + } + return false; + }; + TSBufferValidator.prototype._canBeNull = function (schema) { + var _this = this; + if (schema.type === tsbufferSchema.SchemaType.Union) { + return schema.members.some(function (v) { return _this._canBeNull(v.type); }); + } + if (schema.type === tsbufferSchema.SchemaType.Literal && schema.literal === null) { + return true; + } + return false; + }; + TSBufferValidator.prototype._validateEnumType = function (value, schema) { + // must be string or number + var type = this._getTypeof(value); + if (type !== 'string' && type !== 'number') { + return ValidateResultUtil.error(ErrorType.TypeError, 'string | number', type); + } + // 有值与预设相同 + if (schema.members.some(function (v) { return v.value === value; })) { + return ValidateResultUtil.succ; + } + else { + return ValidateResultUtil.error(ErrorType.InvalidEnumValue, value); + } + }; + TSBufferValidator.prototype._validateAnyType = function (value) { + return ValidateResultUtil.succ; + }; + TSBufferValidator.prototype._validateLiteralType = function (value, schema, strictNullChecks) { + // 非strictNullChecks严格模式,null undefined同等对待 + if (!strictNullChecks && (schema.literal === null || schema.literal === undefined)) { + return value === null || value === undefined ? + ValidateResultUtil.succ + : ValidateResultUtil.error(ErrorType.InvalidLiteralValue, schema.literal, value); + } + return value === schema.literal ? + ValidateResultUtil.succ + : ValidateResultUtil.error(ErrorType.InvalidLiteralValue, schema.literal, value); + }; + TSBufferValidator.prototype._validateObjectType = function (value, schema) { + var type = this._getTypeof(value); + return type === 'Object' || type === 'Array' ? ValidateResultUtil.succ : ValidateResultUtil.error(ErrorType.TypeError, 'Object', type); + }; + TSBufferValidator.prototype._validateInterfaceType = function (value, schema, options) { + var type = this._getTypeof(value); + if (type !== 'Object') { + return ValidateResultUtil.error(ErrorType.TypeError, 'Object', type); + } + // 先展平 + var flatSchema = this.protoHelper.getFlatInterfaceSchema(schema); + // From union or intersecton type + if (options.unionProperties) { + flatSchema = this.protoHelper.applyUnionProperties(flatSchema, options.unionProperties); + } + return this._validateFlatInterface(value, flatSchema, options); + }; + TSBufferValidator.prototype._validateMappedType = function (value, schema, options) { + var parsed = this.protoHelper.parseMappedType(schema); + if (parsed.type === tsbufferSchema.SchemaType.Interface) { + return this._validateInterfaceType(value, schema, options); + } + else if (parsed.type === tsbufferSchema.SchemaType.Union) { + return this._validateUnionType(value, parsed, options); + } + else if (parsed.type === tsbufferSchema.SchemaType.Intersection) { + return this._validateIntersectionType(value, parsed, options); + } + // @ts-expect-error + throw new Error("Invalid ".concat(schema.type, " target type: ").concat(parsed.type)); + }; + TSBufferValidator.prototype._validateFlatInterface = function (value, schema, options) { + // interfaceSignature强制了key必须是数字的情况 + if (schema.indexSignature && schema.indexSignature.keyType === tsbufferSchema.SchemaType.Number) { + for (var key in value) { + if (!this._isNumberKey(key)) { + return ValidateResultUtil.error(ErrorType.InvalidNumberKey, key); + } + } + } + var prune = options.prune; + if (prune) { + prune.output = {}; + } + // Excess property check (与prune互斥) + if (!prune && options.excessPropertyChecks && !schema.indexSignature) { + var validProperties_1 = schema.properties.map(function (v) { return v.name; }); + var firstExcessProperty = Object.keys(value).find(function (v) { return validProperties_1.indexOf(v) === -1; }); + if (firstExcessProperty) { + return ValidateResultUtil.error(ErrorType.ExcessProperty, firstExcessProperty); + } + } + // 校验properties + if (schema.properties) { + for (var _i = 0, _a = schema.properties; _i < _a.length; _i++) { + var property = _a[_i]; + // MissingRequiredProperty: is undefined && !isOptional + if (value[property.name] === undefined || value[property.name] === null && !options.strictNullChecks) { + var canBeNull = this._canBeNull(property.type); + var canBeUndefined = property.optional || this._canBeUndefined(property.type); + var isOptional = canBeUndefined || !options.strictNullChecks && canBeNull; + // skip undefined optional property + if (isOptional) { + // Prune null & undefined->null + if (prune === null || prune === void 0 ? void 0 : prune.output) { + if (value[property.name] === null && canBeNull + || value[property.name] === undefined && !canBeUndefined && canBeNull) { + prune.output[property.name] = null; + } + } + continue; + } + else { + return ValidateResultUtil.error(ErrorType.MissingRequiredProperty, property.name); + } + } + // property本身验证 + var vRes = this._validate(value[property.name], property.type, { + prune: (prune === null || prune === void 0 ? void 0 : prune.output) && property.id > -1 ? { + parent: { + value: prune.output, + key: property.name + } + } : undefined, + strictNullChecks: options.strictNullChecks, + excessPropertyChecks: options.excessPropertyChecks + }); + if (!vRes.isSucc) { + return ValidateResultUtil.innerError(property.name, value[property.name], property.type, vRes); + } + } + } + // 检测indexSignature + if (schema.indexSignature) { + for (var key in value) { + // only prune is (property is pruned already) + // let memberPrune: ValidatePruneOptions | undefined = schema.properties.some(v => v.name === key) ? undefined : {}; + // validate each field + var vRes = this._validate(value[key], schema.indexSignature.type, { + prune: (prune === null || prune === void 0 ? void 0 : prune.output) ? { + parent: { + value: prune.output, + key: key + } + } : undefined, + strictNullChecks: options.strictNullChecks, + excessPropertyChecks: options.excessPropertyChecks + }); + if (!vRes.isSucc) { + return ValidateResultUtil.innerError(key, value[key], schema.indexSignature.type, vRes); + } + } + } + return ValidateResultUtil.succ; + }; + TSBufferValidator.prototype._validateBufferType = function (value, schema) { + var _a, _b; + var type = this._getTypeof(value); + if (type !== 'Object') { + return ValidateResultUtil.error(ErrorType.TypeError, schema.arrayType || 'ArrayBuffer', type); + } + else if (schema.arrayType) { + var typeArrayClass = typedArrays[schema.arrayType]; + if (!typeArrayClass) { + throw new Error("Error TypedArray type: ".concat(schema.arrayType)); + } + return value instanceof typeArrayClass ? ValidateResultUtil.succ : ValidateResultUtil.error(ErrorType.TypeError, schema.arrayType, (_a = value === null || value === void 0 ? void 0 : value.constructor) === null || _a === void 0 ? void 0 : _a.name); + } + else { + return value instanceof ArrayBuffer ? ValidateResultUtil.succ : ValidateResultUtil.error(ErrorType.TypeError, 'ArrayBuffer', (_b = value === null || value === void 0 ? void 0 : value.constructor) === null || _b === void 0 ? void 0 : _b.name); + } + }; + TSBufferValidator.prototype._validateReferenceType = function (value, schema, options) { + return this._validate(value, this.protoHelper.parseReference(schema), options); + }; + TSBufferValidator.prototype._validateUnionType = function (value, schema, options) { + var _this = this; + options.unionProperties = options.unionProperties || this.protoHelper.getUnionProperties(schema); + var isObjectPrune = false; + var prune = options.prune; + if (prune && value && Object.getPrototypeOf(value) === Object.prototype) { + isObjectPrune = true; + prune.output = {}; + } + // 有一成功则成功 + var isSomeSucc = false; + var memberErrors = []; + for (var i = 0; i < schema.members.length; ++i) { + var member = schema.members[i]; + var memberType = this.protoHelper.isTypeReference(member.type) ? this.protoHelper.parseReference(member.type) : member.type; + var memberPrune = prune ? {} : undefined; + var vRes = this._validate(value, memberType, tslib.__assign(tslib.__assign({}, options), { prune: memberPrune })); + if (vRes.isSucc) { + isSomeSucc = true; + // if prune object: must prune all members + if (isObjectPrune) { + prune.output = tslib.__assign(tslib.__assign({}, prune.output), memberPrune.output); + } + // not prune object: stop checking after 1st member matched + else { + break; + } + } + else { + memberErrors.push(vRes); + } + } + // 有一成功则成功; + if (isSomeSucc) { + return ValidateResultUtil.succ; + } + // 全部失败,则失败 + else { + // All member error is the same, return the first + var msg0_1 = memberErrors[0].errMsg; + if (memberErrors.every(function (v) { return v.errMsg === msg0_1; })) { + return memberErrors[0]; + } + // mutual exclusion: return the only one + var nonLiteralErrors = memberErrors.filter(function (v) { return v.error.type !== ErrorType.InvalidLiteralValue; }); + if (nonLiteralErrors.length === 1) { + return nonLiteralErrors[0]; + } + // All member error without inner: show simple msg + if (memberErrors.every(function (v) { return !v.error.inner && (v.error.type === ErrorType.TypeError || v.error.type === ErrorType.InvalidLiteralValue); })) { + var valueType = this._getTypeof(value); + var expectedTypes = memberErrors.map(function (v) { return v.error.type === ErrorType.TypeError ? v.error.params[0] : _this._getTypeof(v.error.params[0]); }).distinct(); + // Expected type A|B|C, actually type D + if (expectedTypes.indexOf(valueType) === -1) { + return ValidateResultUtil.error(ErrorType.TypeError, expectedTypes.join(' | '), this._getTypeof(value)); + } + // `'D'` is not matched to `'A'|'B'|'C'` + if (valueType !== 'Object' && valueType !== tsbufferSchema.SchemaType.Array) { + var types = memberErrors.map(function (v) { return v.error.type === ErrorType.TypeError ? v.error.params[0] : stringify(v.error.params[0]); }).distinct(); + return ValidateResultUtil.error(ErrorType.UnionTypesNotMatch, value, types); + } + } + // other errors + return ValidateResultUtil.error(ErrorType.UnionMembersNotMatch, memberErrors); + } + }; + TSBufferValidator.prototype._validateIntersectionType = function (value, schema, options) { + options.unionProperties = options.unionProperties || this.protoHelper.getUnionProperties(schema); + var isObjectPrune = false; + var prune = options.prune; + if (prune && value && Object.getPrototypeOf(value) === Object.prototype) { + prune.output = {}; + isObjectPrune = true; + } + // 有一失败则失败 + for (var i = 0, len = schema.members.length; i < len; ++i) { + // 验证member + var memberType = schema.members[i].type; + memberType = this.protoHelper.isTypeReference(memberType) ? this.protoHelper.parseReference(memberType) : memberType; + var memberPrune = prune ? {} : undefined; + var vRes = this._validate(value, memberType, tslib.__assign(tslib.__assign({}, options), { prune: memberPrune })); + // 有一失败则失败 + if (!vRes.isSucc) { + return vRes; + } + if (isObjectPrune) { + prune.output = tslib.__assign(tslib.__assign({}, prune.output), memberPrune.output); + } + } + // 全成功则成功 + return ValidateResultUtil.succ; + }; + TSBufferValidator.prototype._validateDateType = function (value) { + if (value instanceof Date) { + return ValidateResultUtil.succ; + } + else { + return ValidateResultUtil.error(ErrorType.TypeError, 'Date', this._getTypeof(value)); + } + }; + TSBufferValidator.prototype._validateNonNullableType = function (value, schema, options) { + var type = this._getTypeof(value); + if ((type === 'null' || type === 'undefined') && schema.target.type !== 'Any') { + return ValidateResultUtil.error(ErrorType.TypeError, 'NonNullable', type); + } + return this._validate(value, schema.target, options); + }; + TSBufferValidator.prototype._isNumberKey = function (key) { + var int = parseInt(key); + return !(isNaN(int) || ('' + int) !== key); + }; + TSBufferValidator.prototype._getTypeof = function (value) { + var type = typeof value; + if (type === 'object') { + if (value === null) { + return 'null'; + } + else if (Array.isArray(value)) { + return tsbufferSchema.SchemaType.Array; + } + else { + return 'Object'; + } + } + return type; + }; + return TSBufferValidator; +}()); + +exports.ProtoHelper = ProtoHelper; +exports.TSBufferValidator = TSBufferValidator; From 59720a4a2b01853b3798f038b1a00d923e98c471 Mon Sep 17 00:00:00 2001 From: dy Date: Thu, 21 Dec 2023 12:01:00 +0800 Subject: [PATCH 17/41] =?UTF-8?q?=E5=86=85=E5=AD=98=E6=B3=84=E9=9C=B2?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 6 +++--- src/tsbufferIndex.js => tsbufferIndex.js | 0 2 files changed, 3 insertions(+), 3 deletions(-) rename src/tsbufferIndex.js => tsbufferIndex.js (100%) diff --git a/package.json b/package.json index fb00982..d55ec03 100644 --- a/package.json +++ b/package.json @@ -6,9 +6,9 @@ "private": true, "scripts": { "dev": "tsrpc-cli dev", - "build": "tsrpc-cli build && copy js_pm2.config.js dist && copy zoeninfo.sh dist && mkdir dist\\json && xcopy src\\json dist\\json /e ", - "build_win": "tsrpc-cli build && copy js_pm2.config.js dist && copy zoeninfo.sh dist && mkdir dist\\json && xcopy src\\json dist\\json /e ", - "build_linux": "tsrpc-cli build && cp js_pm2.config.js dist && cp zoeninfo.sh dist && cp src/json/ -a dist ", + "build": "tsrpc-cli build && copy js_pm2.config.js dist && copy zoeninfo.sh dist && copy tsbufferIndex.js dist && mkdir dist\\json && xcopy src\\json dist\\json /e ", + "build_win": "tsrpc-cli build && copy js_pm2.config.js dist && copy zoeninfo.sh dist && copy tsbufferIndex.js dist && mkdir dist\\json && xcopy src\\json dist\\json /e ", + "build_linux": "tsrpc-cli build && cp js_pm2.config.js dist && cp zoeninfo.sh dist && cp tsbufferIndex.js dist && cp src/json/ -a dist ", "build_docker_win": "npm run build_win && cd dist && npm i --omit=dev", "build_docker_linux": "npm run build_linux && cd dist && npm i --omit=dev", "doc": "tsrpc-cli doc && node js_uploadDoc.js", diff --git a/src/tsbufferIndex.js b/tsbufferIndex.js similarity index 100% rename from src/tsbufferIndex.js rename to tsbufferIndex.js From 3194dc6449c2df11547be198f61ab67f2c64d46f Mon Sep 17 00:00:00 2001 From: dy Date: Thu, 21 Dec 2023 12:37:39 +0800 Subject: [PATCH 18/41] =?UTF-8?q?=E9=80=A0=E5=9E=8B=E6=9B=B4=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api_s2c/user/ApiChangeInfo.ts | 6 +- src/cross/protocols/serviceProto.ts | 85 ++++++--- src/monopoly/protocols/serviceProto.ts | 85 ++++++--- src/shared/protocols/serviceProto.ts | 255 ++++++++++++++++--------- src/shared/protocols/user/PtlLogin.ts | 9 +- 5 files changed, 282 insertions(+), 158 deletions(-) diff --git a/src/api_s2c/user/ApiChangeInfo.ts b/src/api_s2c/user/ApiChangeInfo.ts index cc04798..5bfac14 100644 --- a/src/api_s2c/user/ApiChangeInfo.ts +++ b/src/api_s2c/user/ApiChangeInfo.ts @@ -29,10 +29,12 @@ export default async function (call: ApiCall) { if (call.req.type == 'model') { let d = JSON.parse(JSON.stringify(call.conn.gud.model)); - d[call.req.id] = { + let changeItem = { id: call.req.id, time: active[fmtId] || -1 - }; + } + d[call.req.id] = changeItem + change.upModel = changeItem change.model = d; } else { change[call.req.type] = { diff --git a/src/cross/protocols/serviceProto.ts b/src/cross/protocols/serviceProto.ts index 8dcedb7..e99cd52 100644 --- a/src/cross/protocols/serviceProto.ts +++ b/src/cross/protocols/serviceProto.ts @@ -875,6 +875,29 @@ export const serviceProto: ServiceProto = { }, { "id": 5, + "name": "upModel", + "type": { + "type": "Interface", + "properties": [ + { + "id": 0, + "name": "id", + "type": { + "type": "String" + } + }, + { + "id": 1, + "name": "time", + "type": { + "type": "Number" + } + } + ] + } + }, + { + "id": 6, "name": "model", "type": { "type": "Interface", @@ -903,14 +926,14 @@ export const serviceProto: ServiceProto = { } }, { - "id": 6, + "id": 7, "name": "renown", "type": { "type": "Number" } }, { - "id": 7, + "id": 8, "name": "wxcLv", "type": { "type": "Interface", @@ -936,14 +959,14 @@ export const serviceProto: ServiceProto = { } }, { - "id": 8, + "id": 9, "name": "mapId", "type": { "type": "Number" } }, { - "id": 9, + "id": 10, "name": "shoucangping", "type": { "type": "Interface", @@ -956,14 +979,14 @@ export const serviceProto: ServiceProto = { } }, { - "id": 10, + "id": 11, "name": "useTujianLvPoint", "type": { "type": "Number" } }, { - "id": 11, + "id": 12, "name": "skills", "type": { "type": "Interface", @@ -976,7 +999,7 @@ export const serviceProto: ServiceProto = { } }, { - "id": 12, + "id": 13, "name": "fightSkills", "type": { "type": "Interface", @@ -989,7 +1012,7 @@ export const serviceProto: ServiceProto = { } }, { - "id": 13, + "id": 14, "name": "heroPos", "type": { "type": "Interface", @@ -1002,21 +1025,21 @@ export const serviceProto: ServiceProto = { } }, { - "id": 14, + "id": 15, "name": "ghId", "type": { "type": "String" } }, { - "id": 15, + "id": 16, "name": "ghName", "type": { "type": "String" } }, { - "id": 16, + "id": 17, "name": "ghLevel", "type": { "type": "Reference", @@ -1024,7 +1047,7 @@ export const serviceProto: ServiceProto = { } }, { - "id": 17, + "id": 18, "name": "ghwz", "type": { "type": "Interface", @@ -1038,7 +1061,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 18, + "id": 19, "name": "ghExitTime", "type": { "type": "Number" @@ -1046,7 +1069,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 19, + "id": 20, "name": "loginTime", "type": { "type": "Number" @@ -1054,7 +1077,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 20, + "id": 21, "name": "logoutTime", "type": { "type": "Number" @@ -1062,7 +1085,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 21, + "id": 22, "name": "cTime", "type": { "type": "Number" @@ -1070,7 +1093,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 22, + "id": 23, "name": "loginDays", "type": { "type": "Number" @@ -1078,7 +1101,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 23, + "id": 24, "name": "serverName", "type": { "type": "String" @@ -1086,7 +1109,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 24, + "id": 25, "name": "sid", "type": { "type": "Number" @@ -1094,7 +1117,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 25, + "id": 26, "name": "onlineTime", "type": { "type": "Number" @@ -1102,7 +1125,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 26, + "id": 27, "name": "newonlinetime", "type": { "type": "Number" @@ -1110,7 +1133,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 27, + "id": 28, "name": "isNpc", "type": { "type": "Boolean" @@ -1118,7 +1141,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 28, + "id": 29, "name": "matrix", "type": { "type": "Interface", @@ -1132,7 +1155,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 29, + "id": 30, "name": "matrixPos", "type": { "type": "Interface", @@ -1152,7 +1175,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 30, + "id": 31, "name": "selectMatrix", "type": { "type": "String" @@ -1160,7 +1183,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 31, + "id": 32, "name": "fightHeros", "type": { "type": "Array", @@ -1171,7 +1194,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 32, + "id": 33, "name": "helpHeros", "type": { "type": "Array", @@ -1248,7 +1271,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 33, + "id": 34, "name": "changeNameNum", "type": { "type": "Number" @@ -1256,7 +1279,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 34, + "id": 35, "name": "peijianUnlock", "type": { "type": "Interface", @@ -1270,7 +1293,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 35, + "id": 36, "name": "headFrames", "type": { "type": "Interface", @@ -1284,7 +1307,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 36, + "id": 37, "name": "chatFrames", "type": { "type": "Interface", diff --git a/src/monopoly/protocols/serviceProto.ts b/src/monopoly/protocols/serviceProto.ts index 782cc14..9eea14e 100644 --- a/src/monopoly/protocols/serviceProto.ts +++ b/src/monopoly/protocols/serviceProto.ts @@ -2145,6 +2145,29 @@ export const serviceProto: ServiceProto = { }, { "id": 5, + "name": "upModel", + "type": { + "type": "Interface", + "properties": [ + { + "id": 0, + "name": "id", + "type": { + "type": "String" + } + }, + { + "id": 1, + "name": "time", + "type": { + "type": "Number" + } + } + ] + } + }, + { + "id": 6, "name": "model", "type": { "type": "Interface", @@ -2173,14 +2196,14 @@ export const serviceProto: ServiceProto = { } }, { - "id": 6, + "id": 7, "name": "renown", "type": { "type": "Number" } }, { - "id": 7, + "id": 8, "name": "wxcLv", "type": { "type": "Interface", @@ -2206,14 +2229,14 @@ export const serviceProto: ServiceProto = { } }, { - "id": 8, + "id": 9, "name": "mapId", "type": { "type": "Number" } }, { - "id": 9, + "id": 10, "name": "shoucangping", "type": { "type": "Interface", @@ -2226,14 +2249,14 @@ export const serviceProto: ServiceProto = { } }, { - "id": 10, + "id": 11, "name": "useTujianLvPoint", "type": { "type": "Number" } }, { - "id": 11, + "id": 12, "name": "skills", "type": { "type": "Interface", @@ -2246,7 +2269,7 @@ export const serviceProto: ServiceProto = { } }, { - "id": 12, + "id": 13, "name": "fightSkills", "type": { "type": "Interface", @@ -2259,7 +2282,7 @@ export const serviceProto: ServiceProto = { } }, { - "id": 13, + "id": 14, "name": "heroPos", "type": { "type": "Interface", @@ -2272,21 +2295,21 @@ export const serviceProto: ServiceProto = { } }, { - "id": 14, + "id": 15, "name": "ghId", "type": { "type": "String" } }, { - "id": 15, + "id": 16, "name": "ghName", "type": { "type": "String" } }, { - "id": 16, + "id": 17, "name": "ghLevel", "type": { "type": "Reference", @@ -2294,7 +2317,7 @@ export const serviceProto: ServiceProto = { } }, { - "id": 17, + "id": 18, "name": "ghwz", "type": { "type": "Interface", @@ -2308,7 +2331,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 18, + "id": 19, "name": "ghExitTime", "type": { "type": "Number" @@ -2316,7 +2339,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 19, + "id": 20, "name": "loginTime", "type": { "type": "Number" @@ -2324,7 +2347,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 20, + "id": 21, "name": "logoutTime", "type": { "type": "Number" @@ -2332,7 +2355,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 21, + "id": 22, "name": "cTime", "type": { "type": "Number" @@ -2340,7 +2363,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 22, + "id": 23, "name": "loginDays", "type": { "type": "Number" @@ -2348,7 +2371,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 23, + "id": 24, "name": "serverName", "type": { "type": "String" @@ -2356,7 +2379,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 24, + "id": 25, "name": "sid", "type": { "type": "Number" @@ -2364,7 +2387,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 25, + "id": 26, "name": "onlineTime", "type": { "type": "Number" @@ -2372,7 +2395,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 26, + "id": 27, "name": "newonlinetime", "type": { "type": "Number" @@ -2380,7 +2403,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 27, + "id": 28, "name": "isNpc", "type": { "type": "Boolean" @@ -2388,7 +2411,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 28, + "id": 29, "name": "matrix", "type": { "type": "Interface", @@ -2402,7 +2425,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 29, + "id": 30, "name": "matrixPos", "type": { "type": "Interface", @@ -2422,7 +2445,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 30, + "id": 31, "name": "selectMatrix", "type": { "type": "String" @@ -2430,7 +2453,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 31, + "id": 32, "name": "fightHeros", "type": { "type": "Array", @@ -2441,7 +2464,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 32, + "id": 33, "name": "helpHeros", "type": { "type": "Array", @@ -2518,7 +2541,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 33, + "id": 34, "name": "changeNameNum", "type": { "type": "Number" @@ -2526,7 +2549,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 34, + "id": 35, "name": "peijianUnlock", "type": { "type": "Interface", @@ -2540,7 +2563,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 35, + "id": 36, "name": "headFrames", "type": { "type": "Interface", @@ -2554,7 +2577,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 36, + "id": 37, "name": "chatFrames", "type": { "type": "Interface", diff --git a/src/shared/protocols/serviceProto.ts b/src/shared/protocols/serviceProto.ts index c60ab37..62ac7ca 100644 --- a/src/shared/protocols/serviceProto.ts +++ b/src/shared/protocols/serviceProto.ts @@ -3954,6 +3954,29 @@ export const serviceProto: ServiceProto = { }, { "id": 5, + "name": "upModel", + "type": { + "type": "Interface", + "properties": [ + { + "id": 0, + "name": "id", + "type": { + "type": "String" + } + }, + { + "id": 1, + "name": "time", + "type": { + "type": "Number" + } + } + ] + } + }, + { + "id": 6, "name": "model", "type": { "type": "Interface", @@ -3982,14 +4005,14 @@ export const serviceProto: ServiceProto = { } }, { - "id": 6, + "id": 7, "name": "renown", "type": { "type": "Number" } }, { - "id": 7, + "id": 8, "name": "wxcLv", "type": { "type": "Interface", @@ -4015,14 +4038,14 @@ export const serviceProto: ServiceProto = { } }, { - "id": 8, + "id": 9, "name": "mapId", "type": { "type": "Number" } }, { - "id": 9, + "id": 10, "name": "shoucangping", "type": { "type": "Interface", @@ -4035,14 +4058,14 @@ export const serviceProto: ServiceProto = { } }, { - "id": 10, + "id": 11, "name": "useTujianLvPoint", "type": { "type": "Number" } }, { - "id": 11, + "id": 12, "name": "skills", "type": { "type": "Interface", @@ -4055,7 +4078,7 @@ export const serviceProto: ServiceProto = { } }, { - "id": 12, + "id": 13, "name": "fightSkills", "type": { "type": "Interface", @@ -4068,7 +4091,7 @@ export const serviceProto: ServiceProto = { } }, { - "id": 13, + "id": 14, "name": "heroPos", "type": { "type": "Interface", @@ -4081,21 +4104,21 @@ export const serviceProto: ServiceProto = { } }, { - "id": 14, + "id": 15, "name": "ghId", "type": { "type": "String" } }, { - "id": 15, + "id": 16, "name": "ghName", "type": { "type": "String" } }, { - "id": 16, + "id": 17, "name": "ghLevel", "type": { "type": "Reference", @@ -4103,7 +4126,7 @@ export const serviceProto: ServiceProto = { } }, { - "id": 17, + "id": 18, "name": "ghwz", "type": { "type": "Interface", @@ -4117,7 +4140,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 18, + "id": 19, "name": "ghExitTime", "type": { "type": "Number" @@ -4125,7 +4148,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 19, + "id": 20, "name": "loginTime", "type": { "type": "Number" @@ -4133,7 +4156,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 20, + "id": 21, "name": "logoutTime", "type": { "type": "Number" @@ -4141,7 +4164,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 21, + "id": 22, "name": "cTime", "type": { "type": "Number" @@ -4149,7 +4172,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 22, + "id": 23, "name": "loginDays", "type": { "type": "Number" @@ -4157,7 +4180,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 23, + "id": 24, "name": "serverName", "type": { "type": "String" @@ -4165,7 +4188,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 24, + "id": 25, "name": "sid", "type": { "type": "Number" @@ -4173,7 +4196,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 25, + "id": 26, "name": "onlineTime", "type": { "type": "Number" @@ -4181,7 +4204,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 26, + "id": 27, "name": "newonlinetime", "type": { "type": "Number" @@ -4189,7 +4212,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 27, + "id": 28, "name": "isNpc", "type": { "type": "Boolean" @@ -4197,7 +4220,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 28, + "id": 29, "name": "matrix", "type": { "type": "Interface", @@ -4211,7 +4234,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 29, + "id": 30, "name": "matrixPos", "type": { "type": "Interface", @@ -4231,7 +4254,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 30, + "id": 31, "name": "selectMatrix", "type": { "type": "String" @@ -4239,7 +4262,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 31, + "id": 32, "name": "fightHeros", "type": { "type": "Array", @@ -4250,7 +4273,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 32, + "id": 33, "name": "helpHeros", "type": { "type": "Array", @@ -4327,7 +4350,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 33, + "id": 34, "name": "changeNameNum", "type": { "type": "Number" @@ -4335,7 +4358,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 34, + "id": 35, "name": "peijianUnlock", "type": { "type": "Interface", @@ -4349,7 +4372,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 35, + "id": 36, "name": "headFrames", "type": { "type": "Interface", @@ -4363,7 +4386,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 36, + "id": 37, "name": "chatFrames", "type": { "type": "Interface", @@ -5175,6 +5198,29 @@ export const serviceProto: ServiceProto = { }, { "id": 5, + "name": "upModel", + "type": { + "type": "Interface", + "properties": [ + { + "id": 0, + "name": "id", + "type": { + "type": "String" + } + }, + { + "id": 1, + "name": "time", + "type": { + "type": "Number" + } + } + ] + } + }, + { + "id": 6, "name": "model", "type": { "type": "Interface", @@ -5203,14 +5249,14 @@ export const serviceProto: ServiceProto = { } }, { - "id": 6, + "id": 7, "name": "renown", "type": { "type": "Number" } }, { - "id": 7, + "id": 8, "name": "wxcLv", "type": { "type": "Interface", @@ -5236,14 +5282,14 @@ export const serviceProto: ServiceProto = { } }, { - "id": 8, + "id": 9, "name": "mapId", "type": { "type": "Number" } }, { - "id": 9, + "id": 10, "name": "shoucangping", "type": { "type": "Interface", @@ -5256,14 +5302,14 @@ export const serviceProto: ServiceProto = { } }, { - "id": 10, + "id": 11, "name": "useTujianLvPoint", "type": { "type": "Number" } }, { - "id": 11, + "id": 12, "name": "skills", "type": { "type": "Interface", @@ -5276,7 +5322,7 @@ export const serviceProto: ServiceProto = { } }, { - "id": 12, + "id": 13, "name": "fightSkills", "type": { "type": "Interface", @@ -5289,7 +5335,7 @@ export const serviceProto: ServiceProto = { } }, { - "id": 13, + "id": 14, "name": "heroPos", "type": { "type": "Interface", @@ -5302,21 +5348,21 @@ export const serviceProto: ServiceProto = { } }, { - "id": 14, + "id": 15, "name": "ghId", "type": { "type": "String" } }, { - "id": 15, + "id": 16, "name": "ghName", "type": { "type": "String" } }, { - "id": 16, + "id": 17, "name": "ghLevel", "type": { "type": "Reference", @@ -5324,7 +5370,7 @@ export const serviceProto: ServiceProto = { } }, { - "id": 17, + "id": 18, "name": "ghwz", "type": { "type": "Interface", @@ -5338,7 +5384,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 18, + "id": 19, "name": "ghExitTime", "type": { "type": "Number" @@ -5346,7 +5392,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 19, + "id": 20, "name": "loginTime", "type": { "type": "Number" @@ -5354,7 +5400,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 20, + "id": 21, "name": "logoutTime", "type": { "type": "Number" @@ -5362,7 +5408,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 21, + "id": 22, "name": "cTime", "type": { "type": "Number" @@ -5370,7 +5416,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 22, + "id": 23, "name": "loginDays", "type": { "type": "Number" @@ -5378,7 +5424,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 23, + "id": 24, "name": "serverName", "type": { "type": "String" @@ -5386,7 +5432,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 24, + "id": 25, "name": "sid", "type": { "type": "Number" @@ -5394,7 +5440,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 25, + "id": 26, "name": "onlineTime", "type": { "type": "Number" @@ -5402,7 +5448,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 26, + "id": 27, "name": "newonlinetime", "type": { "type": "Number" @@ -5410,7 +5456,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 27, + "id": 28, "name": "isNpc", "type": { "type": "Boolean" @@ -5418,7 +5464,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 28, + "id": 29, "name": "matrix", "type": { "type": "Interface", @@ -5432,7 +5478,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 29, + "id": 30, "name": "matrixPos", "type": { "type": "Interface", @@ -5452,7 +5498,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 30, + "id": 31, "name": "selectMatrix", "type": { "type": "String" @@ -5460,7 +5506,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 31, + "id": 32, "name": "fightHeros", "type": { "type": "Array", @@ -5471,7 +5517,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 32, + "id": 33, "name": "helpHeros", "type": { "type": "Array", @@ -5548,7 +5594,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 33, + "id": 34, "name": "changeNameNum", "type": { "type": "Number" @@ -5556,7 +5602,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 34, + "id": 35, "name": "peijianUnlock", "type": { "type": "Interface", @@ -5570,7 +5616,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 35, + "id": 36, "name": "headFrames", "type": { "type": "Interface", @@ -5584,7 +5630,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 36, + "id": 37, "name": "chatFrames", "type": { "type": "Interface", @@ -22862,6 +22908,29 @@ export const serviceProto: ServiceProto = { }, { "id": 5, + "name": "upModel", + "type": { + "type": "Interface", + "properties": [ + { + "id": 0, + "name": "id", + "type": { + "type": "String" + } + }, + { + "id": 1, + "name": "time", + "type": { + "type": "Number" + } + } + ] + } + }, + { + "id": 6, "name": "model", "type": { "type": "Interface", @@ -22890,14 +22959,14 @@ export const serviceProto: ServiceProto = { } }, { - "id": 6, + "id": 7, "name": "renown", "type": { "type": "Number" } }, { - "id": 7, + "id": 8, "name": "wxcLv", "type": { "type": "Interface", @@ -22923,14 +22992,14 @@ export const serviceProto: ServiceProto = { } }, { - "id": 8, + "id": 9, "name": "mapId", "type": { "type": "Number" } }, { - "id": 9, + "id": 10, "name": "shoucangping", "type": { "type": "Interface", @@ -22943,14 +23012,14 @@ export const serviceProto: ServiceProto = { } }, { - "id": 10, + "id": 11, "name": "useTujianLvPoint", "type": { "type": "Number" } }, { - "id": 11, + "id": 12, "name": "skills", "type": { "type": "Interface", @@ -22963,7 +23032,7 @@ export const serviceProto: ServiceProto = { } }, { - "id": 12, + "id": 13, "name": "fightSkills", "type": { "type": "Interface", @@ -22976,7 +23045,7 @@ export const serviceProto: ServiceProto = { } }, { - "id": 13, + "id": 14, "name": "heroPos", "type": { "type": "Interface", @@ -22989,21 +23058,21 @@ export const serviceProto: ServiceProto = { } }, { - "id": 14, + "id": 15, "name": "ghId", "type": { "type": "String" } }, { - "id": 15, + "id": 16, "name": "ghName", "type": { "type": "String" } }, { - "id": 16, + "id": 17, "name": "ghLevel", "type": { "type": "Reference", @@ -23011,7 +23080,7 @@ export const serviceProto: ServiceProto = { } }, { - "id": 17, + "id": 18, "name": "ghwz", "type": { "type": "Interface", @@ -23025,7 +23094,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 18, + "id": 19, "name": "ghExitTime", "type": { "type": "Number" @@ -23033,7 +23102,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 19, + "id": 20, "name": "loginTime", "type": { "type": "Number" @@ -23041,7 +23110,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 20, + "id": 21, "name": "logoutTime", "type": { "type": "Number" @@ -23049,7 +23118,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 21, + "id": 22, "name": "cTime", "type": { "type": "Number" @@ -23057,7 +23126,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 22, + "id": 23, "name": "loginDays", "type": { "type": "Number" @@ -23065,7 +23134,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 23, + "id": 24, "name": "serverName", "type": { "type": "String" @@ -23073,7 +23142,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 24, + "id": 25, "name": "sid", "type": { "type": "Number" @@ -23081,7 +23150,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 25, + "id": 26, "name": "onlineTime", "type": { "type": "Number" @@ -23089,7 +23158,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 26, + "id": 27, "name": "newonlinetime", "type": { "type": "Number" @@ -23097,7 +23166,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 27, + "id": 28, "name": "isNpc", "type": { "type": "Boolean" @@ -23105,7 +23174,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 28, + "id": 29, "name": "matrix", "type": { "type": "Interface", @@ -23119,7 +23188,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 29, + "id": 30, "name": "matrixPos", "type": { "type": "Interface", @@ -23139,7 +23208,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 30, + "id": 31, "name": "selectMatrix", "type": { "type": "String" @@ -23147,7 +23216,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 31, + "id": 32, "name": "fightHeros", "type": { "type": "Array", @@ -23158,7 +23227,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 32, + "id": 33, "name": "helpHeros", "type": { "type": "Array", @@ -23235,7 +23304,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 33, + "id": 34, "name": "changeNameNum", "type": { "type": "Number" @@ -23243,7 +23312,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 34, + "id": 35, "name": "peijianUnlock", "type": { "type": "Interface", @@ -23257,7 +23326,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 35, + "id": 36, "name": "headFrames", "type": { "type": "Interface", @@ -23271,7 +23340,7 @@ export const serviceProto: ServiceProto = { "optional": true }, { - "id": 36, + "id": 37, "name": "chatFrames", "type": { "type": "Interface", diff --git a/src/shared/protocols/user/PtlLogin.ts b/src/shared/protocols/user/PtlLogin.ts index 3ac09f0..49f56e3 100644 --- a/src/shared/protocols/user/PtlLogin.ts +++ b/src/shared/protocols/user/PtlLogin.ts @@ -19,7 +19,7 @@ export type ResLogin = { /** * 开服天数 */ - openDay:number; + openDay: number; /**当前时间 */ curTime: number; /**是否第一次登录 */ @@ -94,6 +94,13 @@ export type playerAppend = { }; /**名字 */ name: string; + /**正在使用的造型 */ + upModel: { + /**id */ + id: string, + /**到期时间戳 -1:永久 */ + time: number; + }; /**造型 */ model: { [k: string]: { From 54c483bed09c3281444c6c243161c63dd1a8804e Mon Sep 17 00:00:00 2001 From: dy Date: Thu, 21 Dec 2023 12:43:25 +0800 Subject: [PATCH 19/41] =?UTF-8?q?=E9=80=A0=E5=9E=8B=E6=9B=B4=E6=8D=A2bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/public/user.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/public/user.ts b/src/public/user.ts index ff9dcc1..a5cb191 100644 --- a/src/public/user.ts +++ b/src/public/user.ts @@ -33,6 +33,7 @@ export const defaultUserAppend: playerAppend = { head: {id: "1", time: -1}, headFrame: {id: "1", time: -1}, chatFrame: {id: "1", time: -1}, + upModel: {id: "1", time: -1}, model: { 1: {id: "1", time: -1}, 2: {id: "2", time: -1} From 0ea1acac4327928d2bf4e2d9279dc6697dfe0c43 Mon Sep 17 00:00:00 2001 From: dy Date: Thu, 21 Dec 2023 13:33:33 +0800 Subject: [PATCH 20/41] cehua json --- src/json/huodong.json5 | 294 +++++- src/json/item.json | 44 +- src/json/openCond.json | 32 +- src/json/pay.json | 1770 +++++++++++++++++++++++++++++---- src/json/playerHead.json | 108 +- src/json/playerHeadFrame.json | 17 + src/json/playerModel.json | 138 ++- src/json/shop.json | 6 +- src/json/shopItem.json | 52 +- src/json/shopcom.json | 17 + src/json/tuisonglibao.json | 520 +++++++--- 11 files changed, 2528 insertions(+), 470 deletions(-) diff --git a/src/json/huodong.json5 b/src/json/huodong.json5 index 48ff890..e66b88a 100644 --- a/src/json/huodong.json5 +++ b/src/json/huodong.json5 @@ -3828,7 +3828,7 @@ "hdid" : 10000, // 唯一活动id 超值好礼 "htype" : 10, // 后端唯一识别标识 "stype" : 1000, // 前端唯一识别标识(看前端需要是否修改) - "ttype" : 0, // 0 按照开服时间计算,1 玩家注册时间计算 4 屏蔽此活动 + "ttype" : 4, // 0 按照开服时间计算,1 玩家注册时间计算 4 屏蔽此活动 "stime" : 0, // 活动开始天数 "rtime" : 30, // 活动显示结束天数 "etime" : 30, // 活动实际结束 @@ -3849,27 +3849,33 @@ free: false, payId: 'czlb_1', buyNum: 1, + equal: 15000, prize: [ { "a": "item", "t": "13", - "n": 600 + "n": 601 } - ], - "recPrize1": [ + ], + "recPrize1": [ { "a": "item", - "t": "13", + "t": "12", "n": 600 + }, + { + "a": "attr", + "t": "rmbmoney", + "n": 333 } - ], - "recPrize2": [ + ], + "recPrize2": [ { "a": "item", - "t": "13", - "n": 600 + "t": "4", + "n": 10 } - ] + ] }, { id: '2', @@ -3878,27 +3884,62 @@ free: false, payId: 'czlb_2', buyNum: 1, + equal: 35000, prize: [ { "a": "item", - "t": "13", - "n": 600 + "t": "1", + "n": 1200 } - ], - "recPrize1": [ + ], + "recPrize1": [ { "a": "item", - "t": "13", - "n": 600 + "t": "2", + "n": 4400 } - ], - "recPrize2": [ + ], + "recPrize2": [ { "a": "item", + "t": "9", + "n": 63300 + }, + { + "a": "attr", + "t": "jinbi", + "n": 114514 + }, + { + "a": "attr", + "t": "rmbmoney", + "n": 31313 + }, + { + "a": "item", + "t": "2", + "n": 111 + }, + { + "a": "item", "t": "13", - "n": 600 + "n": 515 + },{ + "a": "item", + "t": "601", + "n": 1 + }, + { + "a": "item", + "t": "633", + "n": 2 + }, + { + "a": "hero", + "t": "5001", + "n": 1 } - ] + ] }, { id: '3', @@ -3907,27 +3948,28 @@ free: false, payId: 'czlb_3', buyNum: 1, + equal: 65000, prize: [ { "a": "item", "t": "13", - "n": 600 + "n": 123 } - ], - "recPrize1": [ + ], + "recPrize1": [ { "a": "item", "t": "13", - "n": 600 + "n": 321 } - ], - "recPrize2": [ + ], + "recPrize2": [ { "a": "item", "t": "13", - "n": 600 + "n": 548 } - ] + ] } ] } @@ -3986,5 +4028,201 @@ } ] } + }, + { + "hdid" : 12000, // 唯一活动id 累计购买礼包 + "htype" : 12, // 后端唯一识别标识 + "stype" : 1200, // 前端唯一识别标识(看前端需要是否修改) + "ttype" : 0, // 0 按照开服时间计算,1 玩家注册时间计算 4 屏蔽此活动 + "stime" : 0, // 活动开始天数 + "rtime" : 30, // 活动显示结束天数 + "etime" : 30, // 活动实际结束 + "name": "ljlibao", + "icon": "icon_ljlibao", + "showtime" : "仅供参考,会复写正确值", // 自选礼包,如果存在多个活动,计费点不要设置一样;如果是一样,可能会存在付费一次,购买多次。 + "data" : { + //活动文本描述 + intr: "ljlibaotips_1", + intr: "ljlibaotips_2", + //礼包 + gift: [ + { + id: '1', + name: 'ljlibaotips_3', + need:[], + free: false, + payId: 'ljlibao_1', + scale: 200, + buynum: 1, + prize:[ + { + "a": "item", + "t": "13", + "n": 123 + } + ] + }, + { + id: '2', + name: 'ljlibaotips_4', + need:[], + free: false, + payId: 'ljlibao_2', + buynum: 1, + scale: 201, + prize:[ + { + "a": "item", + "t": "12", + "n": 111 + } + ] + }, + { + id: '3', + name: 'ljlibaotips_5', + need:[], + free: false, + payId: 'ljlibao_3', + buynum: 1, + scale: 203, + prize:[ + { + "a": "item", + "t": "1", + "n": 111111 + } + ] + }, + { + id: '4', + name: 'ljlibaotips_6', + need:[], + free: false, + payId: 'ljlibao_4', + buynum: 1, + scale: 204, + prize:[ + { + "a": "item", + "t": "13", + "n": 123 + }, + { + "a": "item", + "t": "2", + "n": 123 + } + ] + }, + { + id: '5', + name: 'ljlibaotips_7', + need:[], + free: false, + payId: 'ljlibao_5', + buynum: 1, + scale: 201, + prize:[ + { + "a": "item", + "t": "13", + "n": 12 + }, + { + "a": "item", + "t": "1", + "n": 31 + } + ] + }, + { + id: '6', + name: 'ljlibaotips_8', + need:[], + free: false, + payId: 'ljlibao_6', + buynum: 1, + scale: 200, + prize:[ + { + "a": "item", + "t": "1", + "n": 123 + }, + { + "a": "item", + "t": "2", + "n": 123 + } + ] + }, + { + id: '7', + name: 'ljlibaotips_9', + need:[], + free: false, + payId: 'ljlibao_7', + buynum: 1, + scale: 300, + prize:[ + { + "a": "item", + "t": "4", + "n": 123 + }, + { + "a": "item", + "t": "2", + "n": 123 + } + ] + }, + ], + //自选框掉落池 + dlz: [ + { + "1": {"a": "item", "t":"600", "n": 20}, + "2": {"a": "item", "t":"5002", "n": 10}, + "3": {"a": "item", "t":"5004", "n": 10} + }, + { + "1": {"a": "item", "t":"600", "n": 20}, + "2": {"a": "item", "t":"5002", "n": 10}, + "3": {"a": "item", "t":"5004", "n": 10} + }, + { + "1": {"a": "item", "t":"1", "n": 10000000}, + "2": {"a": "item", "t":"12", "n": 1000}, + "3": {"a": "item", "t":"2", "n": 2000}, + "4": {"a": "item", "t":"18", "n": 500} + }, + { + "1": {"a": "item", "t":"600", "n": 20}, + "2": {"a": "item", "t":"5002", "n": 10}, + "3": {"a": "item", "t":"5004", "n": 10} + }, + { + "1": {"a": "item", "t":"600", "n": 20}, + "2": {"a": "item", "t":"5002", "n": 10}, + "3": {"a": "item", "t":"5004", "n": 10} + }, + { + "1": {"a": "item", "t":"600", "n": 20}, + "2": {"a": "item", "t":"5002", "n": 10}, + "3": {"a": "item", "t":"5004", "n": 10} + }, + { + "1": {"a": "item", "t":"600", "n": 20}, + "2": {"a": "item", "t":"5002", "n": 10}, + "3": {"a": "item", "t":"5004", "n": 10} + }, + { + "1": {"a": "item", "t":"600", "n": 20}, + "2": {"a": "item", "t":"5002", "n": 10}, + "3": {"a": "item", "t":"5004", "n": 10} + } + ] + } } ] \ No newline at end of file diff --git a/src/json/item.json b/src/json/item.json index 1802cff..a5551b3 100644 --- a/src/json/item.json +++ b/src/json/item.json @@ -3860,6 +3860,7 @@ "way": [], "go": "", "icon": "txk_019", + "sicon": "txk_019", "describe": "intr_item_describe_50001", "diaoluo": 3, "useNeed": [], @@ -3878,6 +3879,7 @@ "way": [], "go": "", "icon": "txk_016", + "sicon": "txk_016", "describe": "intr_item_describe_50002", "diaoluo": 4, "useNeed": [], @@ -3896,6 +3898,7 @@ "way": [], "go": "", "icon": "txk_023", + "sicon": "txk_023", "describe": "intr_item_describe_50003", "diaoluo": 6, "useNeed": [], @@ -3914,6 +3917,7 @@ "way": [], "go": "", "icon": "txk_009", + "sicon": "txk_009", "describe": "intr_item_describe_50004", "diaoluo": 7, "useNeed": [], @@ -3932,6 +3936,7 @@ "way": [], "go": "", "icon": "txk_026", + "sicon": "txk_026", "describe": "intr_item_describe_50005", "diaoluo": 8, "useNeed": [], @@ -3950,6 +3955,7 @@ "way": [], "go": "", "icon": "txk_018", + "sicon": "txk_018", "describe": "intr_item_describe_50006", "diaoluo": 9, "useNeed": [], @@ -3968,6 +3974,7 @@ "way": [], "go": "", "icon": "txk_014", + "sicon": "txk_014", "describe": "intr_item_describe_50007", "diaoluo": 10, "useNeed": [], @@ -3986,6 +3993,7 @@ "way": [], "go": "", "icon": "txk_022", + "sicon": "txk_022", "describe": "intr_item_describe_50008", "diaoluo": 11, "useNeed": [], @@ -4004,6 +4012,7 @@ "way": [], "go": "", "icon": "txk_028", + "sicon": "txk_028", "describe": "intr_item_describe_50009", "diaoluo": 23, "useNeed": [], @@ -4012,6 +4021,24 @@ "payId": "", "advancedEffects": "" }, + "50010": { + "id": 50010, + "name": "playerheadFrame_name_24", + "type": 7, + "sort": 1, + "colour": 4, + "way": [], + "go": "", + "icon": "txk_025", + "sicon": "txk_025", + "describe": "intr_item_describe_50010", + "diaoluo": 24, + "useNeed": [], + "usePrize": [], + "selecPrize": [], + "payId": "", + "advancedEffects": "" + }, "50101": { "id": 50101, "name": "playerChatFrame_name_6", @@ -4022,6 +4049,7 @@ "way": [], "go": "", "icon": "lt_dhk11", + "sicon": "lt_dhk11", "describe": "intr_item_describe_50101", "diaoluo": 6, "useNeed": [], @@ -4040,6 +4068,7 @@ "way": [], "go": "", "icon": "lt_dhk10", + "sicon": "lt_dhk10", "describe": "intr_item_describe_50102", "diaoluo": 7, "useNeed": [], @@ -4058,6 +4087,7 @@ "way": [], "go": "", "icon": "txk_020", + "sicon": "txk_020", "describe": "intr_item_describe_50103", "diaoluo": 15, "useNeed": [], @@ -4076,6 +4106,7 @@ "way": [], "go": "", "icon": "lt_dhk14", + "sicon": "lt_dhk14", "describe": "intr_item_describe_50104", "diaoluo": 8, "useNeed": [], @@ -4094,6 +4125,7 @@ "way": [], "go": "", "icon": "txk_017", + "sicon": "txk_017", "describe": "intr_item_describe_50201", "diaoluo": 16, "useNeed": [], @@ -4112,6 +4144,7 @@ "way": [], "go": "", "icon": "txk_011", + "sicon": "txk_011", "describe": "intr_item_describe_50202", "diaoluo": 17, "useNeed": [], @@ -4130,6 +4163,7 @@ "way": [], "go": "", "icon": "txk_005", + "sicon": "txk_005", "describe": "intr_item_describe_50203", "diaoluo": 18, "useNeed": [], @@ -4148,6 +4182,7 @@ "way": [], "go": "", "icon": "txk_004", + "sicon": "txk_004", "describe": "intr_item_describe_50204", "diaoluo": 19, "useNeed": [], @@ -4166,6 +4201,7 @@ "way": [], "go": "", "icon": "txk_024", + "sicon": "txk_024", "describe": "intr_item_describe_50205", "diaoluo": 20, "useNeed": [], @@ -4184,6 +4220,7 @@ "way": [], "go": "", "icon": "txk_013", + "sicon": "txk_013", "describe": "intr_item_describe_50206", "diaoluo": 21, "useNeed": [], @@ -4202,6 +4239,7 @@ "way": [], "go": "", "icon": "txk_021", + "sicon": "txk_021", "describe": "intr_item_describe_50207", "diaoluo": 22, "useNeed": [], @@ -4220,7 +4258,8 @@ "way": [], "go": "", "icon": 100011, - "describe": "intr_item_describe_50208", + "sicon": 100011, + "describe": "intr_item_describe_50301", "diaoluo": 3, "useNeed": [], "usePrize": [], @@ -4238,7 +4277,8 @@ "way": [], "go": "", "icon": 100021, - "describe": "intr_item_describe_50209", + "sicon": 100021, + "describe": "intr_item_describe_50302", "diaoluo": 4, "useNeed": [], "usePrize": [], diff --git a/src/json/openCond.json b/src/json/openCond.json index 2478204..ef4f726 100644 --- a/src/json/openCond.json +++ b/src/json/openCond.json @@ -718,7 +718,7 @@ }, "or": {}, "time": 0, - "tips": "openCond_tips_53", + "tips": "openCond_tips_96", "display": { "lv": 15 } @@ -839,7 +839,7 @@ }, "or": {}, "time": 0, - "tips": "openCond_tips_60", + "tips": "openCond_tips_96", "display": { "lv": 15 } @@ -904,7 +904,7 @@ }, "or": {}, "time": 0, - "tips": "openCond_tips_65", + "tips": "openCond_tips_96", "display": { "lv": 15 } @@ -1339,5 +1339,31 @@ "display": { "lv": 15 } + }, + "czlibao": { + "name": "czlibao", + "undefined": "超值礼包破冰", + "and": { + "lv": 15 + }, + "or": {}, + "time": 0, + "tips": "openCond_tips_96", + "display": { + "lv": 15 + } + }, + "xiaofeijingsai": { + "name": "xiaofeijingsai", + "undefined": "钻石消费竞赛", + "and": { + "lv": 15 + }, + "or": {}, + "time": 0, + "tips": "openCond_tips_96", + "display": { + "lv": 15 + } } } \ No newline at end of file diff --git a/src/json/pay.json b/src/json/pay.json index d293892..bd82fb6 100644 --- a/src/json/pay.json +++ b/src/json/pay.json @@ -939,12 +939,12 @@ { "a": "item", "t": "12", - "n": 100 + "n": 200 } ], "firstPayPrize": [], "name": "pay_name_lv15", - "undefined": "等级推送礼包15", + "undefined": "等级豪礼(等级15)", "time": -1, "buys": 1, "needVip": 0, @@ -980,7 +980,7 @@ ], "firstPayPrize": [], "name": "pay_name_lv25", - "undefined": "等级推送礼包25", + "undefined": "等级豪礼(等级25)", "time": -1, "buys": 1, "needVip": 0, @@ -1016,7 +1016,7 @@ ], "firstPayPrize": [], "name": "pay_name_lv30", - "undefined": "等级推送礼包30", + "undefined": "等级豪礼(等级30)", "time": -1, "buys": 1, "needVip": 0, @@ -1025,34 +1025,142 @@ }, "lv40": { "id": "lv40", - "money": 6, + "money": 30, "payExp": [ { "a": "attr", "t": "payExp", - "n": 60 + "n": 300 } ], "prize": [ { "a": "attr", "t": "rmbmoney", - "n": 120 + "n": 600 }, { "a": "item", "t": "4", - "n": 5 + "n": 10 }, { "a": "item", - "t": "1", - "n": 200000 + "t": "2", + "n": 2000 } ], "firstPayPrize": [], "name": "pay_name_lv40", - "undefined": "等级推送礼包40", + "undefined": "等级豪礼(等级40小)", + "time": -1, + "buys": 1, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "lv40_1": { + "id": "lv40_1", + "money": 128, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 1280 + } + ], + "prize": [ + { + "a": "attr", + "t": "rmbmoney", + "n": 2560 + }, + { + "a": "item", + "t": "4", + "n": 50 + }, + { + "a": "item", + "t": "2", + "n": 10000 + } + ], + "firstPayPrize": [], + "name": "pay_name_lv40_1", + "undefined": "等级豪礼(等级40大)", + "time": -1, + "buys": 1, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "lv50_1": { + "id": "lv50_1", + "money": 30, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 300 + } + ], + "prize": [ + { + "a": "attr", + "t": "rmbmoney", + "n": 600 + }, + { + "a": "item", + "t": "10", + "n": 50 + }, + { + "a": "item", + "t": "23", + "n": 800000 + } + ], + "firstPayPrize": [], + "name": "pay_name_lv50_1", + "undefined": "等级豪礼(等级50小)", + "time": -1, + "buys": 1, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "lv50_2": { + "id": "lv50_2", + "money": 128, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 1280 + } + ], + "prize": [ + { + "a": "attr", + "t": "rmbmoney", + "n": 2560 + }, + { + "a": "item", + "t": "10", + "n": 250 + }, + { + "a": "item", + "t": "23", + "n": 4000000 + } + ], + "firstPayPrize": [], + "name": "pay_name_lv50_2", + "undefined": "等级豪礼(等级50大)", "time": -1, "buys": 1, "needVip": 0, @@ -1073,22 +1181,58 @@ { "a": "attr", "t": "rmbmoney", - "n": 1200 + "n": 600 }, { "a": "item", - "t": "4", - "n": 5 + "t": "606", + "n": 6 }, { "a": "item", - "t": "12", - "n": 1500 + "t": "20", + "n": 100 } ], "firstPayPrize": [], "name": "pay_name_lv55", - "undefined": "等级推送礼包55", + "undefined": "等级豪礼(等级55小)", + "time": -1, + "buys": 1, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "lv55_1": { + "id": "lv55_1", + "money": 128, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 1280 + } + ], + "prize": [ + { + "a": "attr", + "t": "rmbmoney", + "n": 2560 + }, + { + "a": "item", + "t": "605", + "n": 12 + }, + { + "a": "item", + "t": "20", + "n": 500 + } + ], + "firstPayPrize": [], + "name": "pay_name_lv55_1", + "undefined": "等级豪礼(等级55大)", "time": -1, "buys": 1, "needVip": 0, @@ -1124,7 +1268,7 @@ ], "firstPayPrize": [], "name": "pay_name_lv58", - "undefined": "等级推送礼包58", + "undefined": "等级豪礼(等级58)", "time": -1, "buys": 1, "needVip": 0, @@ -1145,22 +1289,58 @@ { "a": "attr", "t": "rmbmoney", - "n": 1200 + "n": 600 }, { "a": "item", - "t": "4", - "n": 10 + "t": "615", + "n": 1 }, { "a": "item", - "t": "23", - "n": 200000 + "t": "18", + "n": 300 } ], "firstPayPrize": [], "name": "pay_name_lv60", - "undefined": "等级推送礼包60", + "undefined": "等级豪礼(等级60小)", + "time": -1, + "buys": 1, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "lv60_1": { + "id": "lv60_1", + "money": 128, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 1280 + } + ], + "prize": [ + { + "a": "attr", + "t": "rmbmoney", + "n": 2560 + }, + { + "a": "item", + "t": "628", + "n": 1 + }, + { + "a": "item", + "t": "18", + "n": 1500 + } + ], + "firstPayPrize": [], + "name": "pay_name_lv60_1", + "undefined": "等级豪礼(等级60大)", "time": -1, "buys": 1, "needVip": 0, @@ -1181,22 +1361,58 @@ { "a": "attr", "t": "rmbmoney", - "n": 1200 + "n": 600 }, { "a": "item", - "t": "10", - "n": 80 + "t": "4", + "n": 10 }, { "a": "item", - "t": "6", - "n": 20 + "t": "1", + "n": 5000000 } ], "firstPayPrize": [], "name": "pay_name_lv63", - "undefined": "等级推送礼包63", + "undefined": "等级豪礼(等级63小)", + "time": -1, + "buys": 1, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "lv63_1": { + "id": "lv63_1", + "money": 128, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 1280 + } + ], + "prize": [ + { + "a": "attr", + "t": "rmbmoney", + "n": 2560 + }, + { + "a": "item", + "t": "4", + "n": 50 + }, + { + "a": "item", + "t": "1", + "n": 10000000 + } + ], + "firstPayPrize": [], + "name": "pay_name_lv63_1", + "undefined": "等级豪礼(等级63大)", "time": -1, "buys": 1, "needVip": 0, @@ -1205,34 +1421,70 @@ }, "lv66": { "id": "lv66", - "money": 68, + "money": 30, "payExp": [ { "a": "attr", "t": "payExp", - "n": 680 + "n": 300 } ], "prize": [ { "a": "attr", "t": "rmbmoney", - "n": 2000 + "n": 600 }, { "a": "item", - "t": "4", - "n": 20 + "t": "615", + "n": 1 }, { "a": "item", - "t": "1", - "n": 800000 + "t": "18", + "n": 300 } ], "firstPayPrize": [], "name": "pay_name_lv66", - "undefined": "等级推送礼包66", + "undefined": "等级豪礼(等级66小)", + "time": -1, + "buys": 1, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "lv66_1": { + "id": "lv66_1", + "money": 128, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 1280 + } + ], + "prize": [ + { + "a": "attr", + "t": "rmbmoney", + "n": 2560 + }, + { + "a": "item", + "t": "628", + "n": 1 + }, + { + "a": "item", + "t": "18", + "n": 1500 + } + ], + "firstPayPrize": [], + "name": "pay_name_lv66_1", + "undefined": "等级豪礼(等级66大)", "time": -1, "buys": 1, "needVip": 0, @@ -1241,34 +1493,70 @@ }, "lv69": { "id": "lv69", - "money": 68, + "money": 30, "payExp": [ { "a": "attr", "t": "payExp", - "n": 680 + "n": 300 } ], "prize": [ { "a": "attr", "t": "rmbmoney", - "n": 1200 + "n": 600 }, { "a": "item", - "t": "600", - "n": 20 + "t": "606", + "n": 6 }, { "a": "item", - "t": "28", - "n": 8000 + "t": "20", + "n": 100 } ], "firstPayPrize": [], "name": "pay_name_lv69", - "undefined": "等级推送礼包69", + "undefined": "等级豪礼(等级69小)", + "time": -1, + "buys": 1, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "lv69_1": { + "id": "lv69_1", + "money": 128, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 1280 + } + ], + "prize": [ + { + "a": "attr", + "t": "rmbmoney", + "n": 2560 + }, + { + "a": "item", + "t": "605", + "n": 12 + }, + { + "a": "item", + "t": "20", + "n": 500 + } + ], + "firstPayPrize": [], + "name": "pay_name_lv69_1", + "undefined": "等级豪礼(等级69大)", "time": -1, "buys": 1, "needVip": 0, @@ -1304,7 +1592,79 @@ ], "firstPayPrize": [], "name": "pay_name_lv72", - "undefined": "等级推送礼包72", + "undefined": "等级豪礼(等级72)", + "time": -1, + "buys": 1, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "lv73_1": { + "id": "lv73_1", + "money": 30, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 300 + } + ], + "prize": [ + { + "a": "attr", + "t": "rmbmoney", + "n": 600 + }, + { + "a": "item", + "t": "606", + "n": 6 + }, + { + "a": "item", + "t": "20", + "n": 100 + } + ], + "firstPayPrize": [], + "name": "pay_name_lv73_1", + "undefined": "等级豪礼(等级73小)", + "time": -1, + "buys": 1, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "lv73_2": { + "id": "lv73_2", + "money": 128, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 1280 + } + ], + "prize": [ + { + "a": "attr", + "t": "rmbmoney", + "n": 2560 + }, + { + "a": "item", + "t": "605", + "n": 12 + }, + { + "a": "item", + "t": "20", + "n": 500 + } + ], + "firstPayPrize": [], + "name": "pay_name_lv73_2", + "undefined": "等级豪礼(等级73大)", "time": -1, "buys": 1, "needVip": 0, @@ -1340,7 +1700,79 @@ ], "firstPayPrize": [], "name": "pay_name_lv75", - "undefined": "等级推送礼包75", + "undefined": "等级豪礼(等级75)", + "time": -1, + "buys": 1, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "lv76_1": { + "id": "lv76_1", + "money": 30, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 300 + } + ], + "prize": [ + { + "a": "attr", + "t": "rmbmoney", + "n": 600 + }, + { + "a": "item", + "t": "615", + "n": 1 + }, + { + "a": "item", + "t": "18", + "n": 300 + } + ], + "firstPayPrize": [], + "name": "pay_name_lv76_1", + "undefined": "等级豪礼(等级76小)", + "time": -1, + "buys": 1, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "lv76_2": { + "id": "lv76_2", + "money": 128, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 1280 + } + ], + "prize": [ + { + "a": "attr", + "t": "rmbmoney", + "n": 2560 + }, + { + "a": "item", + "t": "628", + "n": 1 + }, + { + "a": "item", + "t": "18", + "n": 1500 + } + ], + "firstPayPrize": [], + "name": "pay_name_lv76_2", + "undefined": "等级豪礼(等级76大)", "time": -1, "buys": 1, "needVip": 0, @@ -1376,7 +1808,79 @@ ], "firstPayPrize": [], "name": "pay_name_lv78", - "undefined": "等级推送礼包78", + "undefined": "等级豪礼(等级78)", + "time": -1, + "buys": 1, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "lv79_1": { + "id": "lv79_1", + "money": 30, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 300 + } + ], + "prize": [ + { + "a": "attr", + "t": "rmbmoney", + "n": 600 + }, + { + "a": "item", + "t": "606", + "n": 6 + }, + { + "a": "item", + "t": "20", + "n": 100 + } + ], + "firstPayPrize": [], + "name": "pay_name_lv79_1", + "undefined": "等级豪礼(等级79小)", + "time": -1, + "buys": 1, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "lv79_2": { + "id": "lv79_2", + "money": 128, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 1280 + } + ], + "prize": [ + { + "a": "attr", + "t": "rmbmoney", + "n": 2560 + }, + { + "a": "item", + "t": "605", + "n": 12 + }, + { + "a": "item", + "t": "20", + "n": 500 + } + ], + "firstPayPrize": [], + "name": "pay_name_lv79_2", + "undefined": "等级豪礼(等级79大)", "time": -1, "buys": 1, "needVip": 0, @@ -1412,7 +1916,79 @@ ], "firstPayPrize": [], "name": "pay_name_lv81", - "undefined": "等级推送礼包81", + "undefined": "等级豪礼(等级81)", + "time": -1, + "buys": 1, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "lv82_1": { + "id": "lv82_1", + "money": 30, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 300 + } + ], + "prize": [ + { + "a": "attr", + "t": "rmbmoney", + "n": 600 + }, + { + "a": "item", + "t": "606", + "n": 6 + }, + { + "a": "item", + "t": "20", + "n": 100 + } + ], + "firstPayPrize": [], + "name": "pay_name_lv82_1", + "undefined": "等级豪礼(等级82小)", + "time": -1, + "buys": 1, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "lv82_2": { + "id": "lv82_2", + "money": 128, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 1280 + } + ], + "prize": [ + { + "a": "attr", + "t": "rmbmoney", + "n": 2560 + }, + { + "a": "item", + "t": "605", + "n": 12 + }, + { + "a": "item", + "t": "20", + "n": 500 + } + ], + "firstPayPrize": [], + "name": "pay_name_lv82_2", + "undefined": "等级豪礼(等级82大)", "time": -1, "buys": 1, "needVip": 0, @@ -1448,7 +2024,7 @@ ], "firstPayPrize": [], "name": "pay_name_lv84", - "undefined": "等级推送礼包84", + "undefined": "等级豪礼(等级84)", "time": -1, "buys": 1, "needVip": 0, @@ -1484,7 +2060,7 @@ ], "firstPayPrize": [], "name": "pay_name_lv87", - "undefined": "等级推送礼包87", + "undefined": "等级豪礼(等级87)", "time": -1, "buys": 1, "needVip": 0, @@ -1520,7 +2096,7 @@ ], "firstPayPrize": [], "name": "pay_name_lv90", - "undefined": "等级推送礼包90", + "undefined": "等级豪礼(等级90)", "time": -1, "buys": 1, "needVip": 0, @@ -1556,7 +2132,7 @@ ], "firstPayPrize": [], "name": "pay_name_lv93", - "undefined": "等级推送礼包93", + "undefined": "等级豪礼(等级93)", "time": -1, "buys": 1, "needVip": 0, @@ -1592,7 +2168,7 @@ ], "firstPayPrize": [], "name": "pay_name_lv96", - "undefined": "等级推送礼包96", + "undefined": "等级豪礼(等级96)", "time": -1, "buys": 1, "needVip": 0, @@ -1628,7 +2204,7 @@ ], "firstPayPrize": [], "name": "pay_name_lv99", - "undefined": "等级推送礼包99", + "undefined": "等级豪礼(等级99)", "time": -1, "buys": 1, "needVip": 0, @@ -3543,7 +4119,7 @@ "name": "pay_name_djlb_2", "undefined": "枪油补充包", "time": 86400, - "buys": 3, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -3569,7 +4145,7 @@ "name": "pay_name_djlb_1", "undefined": "能量饮料补充包", "time": 86400, - "buys": 2, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -3595,7 +4171,7 @@ "name": "pay_name_djlb_12", "undefined": "弹壳补充包", "time": 86400, - "buys": 3, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -3621,7 +4197,7 @@ "name": "pay_name_djlb_18", "undefined": "装备蓝图补充包", "time": 86400, - "buys": 3, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -3641,7 +4217,7 @@ "name": "pay_name_mingwang_2", "undefined": "名望礼包_68元", "time": 86400, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -3661,7 +4237,7 @@ "name": "pay_name_mingwang_3", "undefined": "名望礼包_648元", "time": 86400, - "buys": 2, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -3681,7 +4257,7 @@ "name": "pay_name_mingwang_4", "undefined": "名望礼包_128元", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -3839,119 +4415,139 @@ "prize": [ { "a": "item", - "t": "49", - "n": 50 + "t": "4", + "n": 10 }, { "a": "attr", "t": "rmbmoney", - "n": 600 + "n": 120 + }, + { + "a": "item", + "t": "1", + "n": 100000 } ], "firstPayPrize": [], "name": "pay_name_guanqialibao_1", "undefined": "关卡礼包_6", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" }, "guanqialibao_2": { "id": "guanqialibao_2", - "money": 30, + "money": 68, "payExp": [ { "a": "attr", "t": "payExp", - "n": 300 + "n": 680 } ], "prize": [ { "a": "item", - "t": "49", - "n": 100 + "t": "4", + "n": 30 }, { "a": "attr", "t": "rmbmoney", "n": 1360 + }, + { + "a": "item", + "t": "12", + "n": 1500 } ], "firstPayPrize": [], "name": "pay_name_guanqialibao_2", "undefined": "关卡礼包_30", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" }, "guanqialibao_3": { "id": "guanqialibao_3", - "money": 68, + "money": 198, "payExp": [ { "a": "attr", "t": "payExp", - "n": 680 + "n": 1980 } ], "prize": [ { "a": "item", - "t": "49", - "n": 200 + "t": "617", + "n": 1 }, { "a": "attr", "t": "rmbmoney", - "n": 2560 + "n": 3960 + }, + { + "a": "item", + "t": "12", + "n": 5000 } ], "firstPayPrize": [], "name": "pay_name_guanqialibao_3", "undefined": "关卡礼包_68", "time": -1, - "buys": 1, + "buys": 0, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "guanqialibao_4": { + "id": "guanqialibao_4", + "money": 198, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 1980 + } + ], + "prize": [ + { + "a": "item", + "t": "632", + "n": 20 + }, + { + "a": "attr", + "t": "rmbmoney", + "n": 3960 + }, + { + "a": "item", + "t": "12", + "n": 2000 + } + ], + "firstPayPrize": [], + "name": "pay_name_guanqialibao_4", + "undefined": "关卡礼包_68", + "time": -1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" }, "daojulibao_1": { "id": "daojulibao_1", - "money": 6, - "payExp": [ - { - "a": "attr", - "t": "payExp", - "n": 60 - } - ], - "prize": [ - { - "a": "item", - "t": "49", - "n": 50 - }, - { - "a": "attr", - "t": "rmbmoney", - "n": 700 - } - ], - "firstPayPrize": [], - "name": "pay_name_daojulibao_1", - "undefined": "道具礼包_6", - "time": -1, - "buys": 1, - "needVip": 0, - "front": {}, - "currency": "CNY" - }, - "daojulibao_2": { - "id": "daojulibao_2", "money": 30, "payExp": [ { @@ -3961,28 +4557,38 @@ } ], "prize": [ - { - "a": "item", - "t": "49", - "n": 100 - }, { "a": "attr", "t": "rmbmoney", - "n": 1260 + "n": 300 + }, + { + "a": "item", + "t": "23", + "n": 400000 + }, + { + "a": "item", + "t": "9", + "n": 1500 + }, + { + "a": "item", + "t": "10", + "n": 30 } ], "firstPayPrize": [], - "name": "pay_name_daojulibao_2", - "undefined": "道具礼包_30", + "name": "pay_name_daojulibao_1", + "undefined": "专属润滑剂不足_30", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" }, - "daojulibao_3": { - "id": "daojulibao_3", + "daojulibao_2": { + "id": "daojulibao_2", "money": 68, "payExp": [ { @@ -3993,21 +4599,441 @@ ], "prize": [ { - "a": "item", - "t": "49", - "n": 200 + "a": "attr", + "t": "rmbmoney", + "n": 680 }, + { + "a": "item", + "t": "23", + "n": 800000 + }, + { + "a": "item", + "t": "9", + "n": 4000 + }, + { + "a": "item", + "t": "10", + "n": 80 + } + ], + "firstPayPrize": [], + "name": "pay_name_daojulibao_2", + "undefined": "专属润滑剂不足_68", + "time": -1, + "buys": 0, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "daojulibao_3": { + "id": "daojulibao_3", + "money": 128, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 1280 + } + ], + "prize": [ { "a": "attr", "t": "rmbmoney", - "n": 2660 + "n": 1280 + }, + { + "a": "item", + "t": "23", + "n": 1500000 + }, + { + "a": "item", + "t": "9", + "n": 10000 + }, + { + "a": "item", + "t": "10", + "n": 100 } ], "firstPayPrize": [], "name": "pay_name_daojulibao_3", - "undefined": "道具礼包_68", + "undefined": "专属润滑剂不足_128", "time": -1, - "buys": 1, + "buys": 0, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "daojulibao_4": { + "id": "daojulibao_4", + "money": 30, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 300 + } + ], + "prize": [ + { + "a": "attr", + "t": "rmbmoney", + "n": 300 + }, + { + "a": "item", + "t": "28", + "n": 5000 + }, + { + "a": "item", + "t": "20", + "n": 200 + }, + { + "a": "item", + "t": "606", + "n": 2 + } + ], + "firstPayPrize": [], + "name": "pay_name_daojulibao_4", + "undefined": "配件零件不足_30", + "time": -1, + "buys": 0, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "daojulibao_5": { + "id": "daojulibao_5", + "money": 68, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 680 + } + ], + "prize": [ + { + "a": "attr", + "t": "rmbmoney", + "n": 680 + }, + { + "a": "item", + "t": "28", + "n": 10000 + }, + { + "a": "item", + "t": "20", + "n": 500 + }, + { + "a": "item", + "t": "605", + "n": 2 + } + ], + "firstPayPrize": [], + "name": "pay_name_daojulibao_5", + "undefined": "配件零件不足_68", + "time": -1, + "buys": 0, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "daojulibao_6": { + "id": "daojulibao_6", + "money": 128, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 1280 + } + ], + "prize": [ + { + "a": "attr", + "t": "rmbmoney", + "n": 1280 + }, + { + "a": "item", + "t": "28", + "n": 20000 + }, + { + "a": "item", + "t": "20", + "n": 1000 + }, + { + "a": "item", + "t": "605", + "n": 4 + } + ], + "firstPayPrize": [], + "name": "pay_name_daojulibao_6", + "undefined": "配件零件不足_128", + "time": -1, + "buys": 0, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "daojulibao_7": { + "id": "daojulibao_7", + "money": 30, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 300 + } + ], + "prize": [ + { + "a": "attr", + "t": "rmbmoney", + "n": 300 + }, + { + "a": "item", + "t": "627", + "n": 1 + }, + { + "a": "item", + "t": "18", + "n": 200 + }, + { + "a": "attr", + "t": "jinbi", + "n": 1000000 + } + ], + "firstPayPrize": [], + "name": "pay_name_daojulibao_7", + "undefined": "装备蓝图不足_30", + "time": -1, + "buys": 0, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "daojulibao_8": { + "id": "daojulibao_8", + "money": 68, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 680 + } + ], + "prize": [ + { + "a": "attr", + "t": "rmbmoney", + "n": 680 + }, + { + "a": "item", + "t": "627", + "n": 2 + }, + { + "a": "item", + "t": "18", + "n": 500 + }, + { + "a": "attr", + "t": "jinbi", + "n": 5000000 + } + ], + "firstPayPrize": [], + "name": "pay_name_daojulibao_8", + "undefined": "装备蓝图不足_68", + "time": -1, + "buys": 0, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "daojulibao_9": { + "id": "daojulibao_9", + "money": 128, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 1280 + } + ], + "prize": [ + { + "a": "attr", + "t": "rmbmoney", + "n": 1280 + }, + { + "a": "item", + "t": "625", + "n": 1 + }, + { + "a": "item", + "t": "18", + "n": 1100 + }, + { + "a": "attr", + "t": "jinbi", + "n": 10000000 + } + ], + "firstPayPrize": [], + "name": "pay_name_daojulibao_9", + "undefined": "装备蓝图不足_128", + "time": -1, + "buys": 0, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "daojulibao_10": { + "id": "daojulibao_10", + "money": 30, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 300 + } + ], + "prize": [ + { + "a": "attr", + "t": "rmbmoney", + "n": 300 + }, + { + "a": "item", + "t": "627", + "n": 1 + }, + { + "a": "item", + "t": "19", + "n": 80 + }, + { + "a": "attr", + "t": "jinbi", + "n": 5000000 + } + ], + "firstPayPrize": [], + "name": "pay_name_daojulibao_10", + "undefined": "调校合金不足_30", + "time": -1, + "buys": 0, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "daojulibao_11": { + "id": "daojulibao_11", + "money": 68, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 680 + } + ], + "prize": [ + { + "a": "attr", + "t": "rmbmoney", + "n": 680 + }, + { + "a": "item", + "t": "627", + "n": 2 + }, + { + "a": "item", + "t": "19", + "n": 200 + }, + { + "a": "attr", + "t": "jinbi", + "n": 10000000 + } + ], + "firstPayPrize": [], + "name": "pay_name_daojulibao_11", + "undefined": "调校合金不足_68", + "time": -1, + "buys": 0, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "daojulibao_12": { + "id": "daojulibao_12", + "money": 128, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 1280 + } + ], + "prize": [ + { + "a": "attr", + "t": "rmbmoney", + "n": 1280 + }, + { + "a": "item", + "t": "625", + "n": 1 + }, + { + "a": "item", + "t": "19", + "n": 500 + }, + { + "a": "attr", + "t": "jinbi", + "n": 20000000 + } + ], + "firstPayPrize": [], + "name": "pay_name_daojulibao_12", + "undefined": "调校合金不足_128", + "time": -1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -4038,7 +5064,7 @@ "name": "pay_name_zhanbailibao_1", "undefined": "战败礼包_68", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -4069,7 +5095,7 @@ "name": "pay_name_zhanbailibao_2", "undefined": "战败礼包_68", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -4100,7 +5126,7 @@ "name": "pay_name_zhanbailibao_3", "undefined": "战败礼包_68", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -4131,7 +5157,7 @@ "name": "pay_name_choukalibao_1", "undefined": "抽卡礼包_68", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -4162,7 +5188,7 @@ "name": "pay_name_choukalibao_2", "undefined": "抽卡礼包_68", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -4193,7 +5219,7 @@ "name": "pay_name_choukalibao_3", "undefined": "抽卡礼包_68", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -4213,7 +5239,7 @@ "name": "pay_name_shouchong_1", "undefined": "首充礼包_6", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -4233,7 +5259,7 @@ "name": "pay_name_shouchong_2", "undefined": "首充礼包_30", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -4253,7 +5279,7 @@ "name": "pay_name_shouchong_3", "undefined": "首充礼包_98", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -4289,7 +5315,7 @@ "name": "pay_name_jitianlibao_1", "undefined": "积天礼包_6", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -4325,7 +5351,7 @@ "name": "pay_name_jitianlibao_2", "undefined": "积天礼包_6", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -4361,7 +5387,7 @@ "name": "pay_name_jitianlibao_3", "undefined": "积天礼包_6", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -4397,7 +5423,7 @@ "name": "pay_name_jitianlibao_4", "undefined": "积天礼包_6", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -4433,7 +5459,7 @@ "name": "pay_name_jitianlibao_5", "undefined": "积天礼包_6", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -4469,7 +5495,7 @@ "name": "pay_name_jitianlibao_6", "undefined": "积天礼包_6", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -4505,7 +5531,7 @@ "name": "pay_name_jitianlibao_7", "undefined": "积天礼包_6", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -4541,7 +5567,7 @@ "name": "pay_name_jitianlibao_8", "undefined": "积天礼包_6", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -4577,7 +5603,7 @@ "name": "pay_name_jitianlibao_9", "undefined": "积天礼包_6", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -4613,7 +5639,7 @@ "name": "pay_name_jitianlibao_10", "undefined": "积天礼包_6", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -4649,7 +5675,7 @@ "name": "pay_name_jitianlibao_11", "undefined": "积天礼包_6", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -4685,7 +5711,7 @@ "name": "pay_name_jitianlibao_12", "undefined": "积天礼包_6", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -4721,7 +5747,7 @@ "name": "pay_name_jitianlibao_13", "undefined": "积天礼包_6", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -4757,7 +5783,7 @@ "name": "pay_name_jitianlibao_14", "undefined": "积天礼包_6", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -4793,7 +5819,7 @@ "name": "pay_name_jitianlibao_15", "undefined": "积天礼包_6", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -4813,7 +5839,7 @@ "name": "pay_name_czlb_1", "undefined": "超值好礼_6", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -4833,7 +5859,7 @@ "name": "pay_name_czlb_2", "undefined": "超值好礼_30", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -4853,7 +5879,7 @@ "name": "pay_name_czlb_3", "undefined": "超值好礼_68", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -4873,7 +5899,7 @@ "name": "pay_name_sdhd_zhanling_1", "undefined": "圣诞战令_1", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -4893,7 +5919,7 @@ "name": "pay_name_sdhd_zhanling_1", "undefined": "圣诞战令_2", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -4913,7 +5939,7 @@ "name": "pay_name_sdhd_zhanling_1", "undefined": "圣诞战令_3", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -4925,7 +5951,7 @@ { "a": "attr", "t": "payExp", - "n": 1280 + "n": 5 } ], "prize": [], @@ -4933,7 +5959,7 @@ "name": "pay_name_sdhd_libao_1", "undefined": "圣诞自选_1", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -4945,7 +5971,7 @@ { "a": "attr", "t": "payExp", - "n": 1280 + "n": 60 } ], "prize": [], @@ -4953,7 +5979,7 @@ "name": "pay_name_sdhd_libao_2", "undefined": "圣诞自选_2", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -4965,7 +5991,7 @@ { "a": "attr", "t": "payExp", - "n": 1280 + "n": 30 } ], "prize": [], @@ -4973,7 +5999,7 @@ "name": "pay_name_sdhd_libao_3", "undefined": "圣诞自选_3", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -4985,7 +6011,7 @@ { "a": "attr", "t": "payExp", - "n": 1280 + "n": 680 } ], "prize": [], @@ -4993,7 +6019,7 @@ "name": "pay_name_sdhd_libao_4", "undefined": "圣诞自选_4", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -5013,7 +6039,7 @@ "name": "pay_name_sdhd_libao_5", "undefined": "圣诞自选_5", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -5021,19 +6047,13 @@ "sdhd_libao_6": { "id": "sdhd_libao_6", "money": 328, - "payExp": [ - { - "a": "attr", - "t": "payExp", - "n": 1280 - } - ], + "payExp": "[{\"a\": \"attr\", \"t\": \"payExp\", \"n\"3280}]", "prize": [], "firstPayPrize": [], "name": "pay_name_sdhd_libao_6", "undefined": "圣诞自选_6", "time": -1, - "buys": 1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" @@ -5045,7 +6065,7 @@ { "a": "attr", "t": "payExp", - "n": 1280 + "n": 6480 } ], "prize": [], @@ -5053,7 +6073,407 @@ "name": "pay_name_sdhd_libao_7", "undefined": "圣诞自选_7", "time": -1, - "buys": 1, + "buys": 0, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "czlibao_libao_1": { + "id": "czlibao_libao_1", + "money": 0.5, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 5 + } + ], + "prize": [], + "firstPayPrize": [], + "name": "pay_name_czlibao_libao_1", + "undefined": "超值好礼_1", + "time": -1, + "buys": 0, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "czlibao_libao_2": { + "id": "czlibao_libao_2", + "money": 1, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 10 + } + ], + "prize": [], + "firstPayPrize": [], + "name": "pay_name_czlibao_libao_2", + "undefined": "超值好礼_2", + "time": -1, + "buys": 0, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "czlibao_libao_3": { + "id": "czlibao_libao_3", + "money": 6, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 60 + } + ], + "prize": [], + "firstPayPrize": [], + "name": "pay_name_czlibao_libao_3", + "undefined": "超值好礼_3", + "time": -1, + "buys": 0, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "czlibao_libao_4": { + "id": "czlibao_libao_4", + "money": 18, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 180 + } + ], + "prize": [], + "firstPayPrize": [], + "name": "pay_name_czlibao_libao_4", + "undefined": "超值好礼_4", + "time": -1, + "buys": 0, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "czlibao_libao_5": { + "id": "czlibao_libao_5", + "money": 30, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 300 + } + ], + "prize": [], + "firstPayPrize": [], + "name": "pay_name_czlibao_libao_5", + "undefined": "超值好礼_5", + "time": -1, + "buys": 0, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "czlibao_libao_6": { + "id": "czlibao_libao_6", + "money": 68, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 680 + } + ], + "prize": [], + "firstPayPrize": [], + "name": "pay_name_czlibao_libao_6", + "undefined": "超值好礼_6", + "time": -1, + "buys": 0, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "czlibao_libao_7": { + "id": "czlibao_libao_7", + "money": 128, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 1280 + } + ], + "prize": [], + "firstPayPrize": [], + "name": "pay_name_czlibao_libao_7", + "undefined": "超值好礼_7", + "time": -1, + "buys": 0, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "czlibao_libao_8": { + "id": "czlibao_libao_8", + "money": 198, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 1980 + } + ], + "prize": [], + "firstPayPrize": [], + "name": "pay_name_czlibao_libao_8", + "undefined": "超值好礼_8", + "time": -1, + "buys": 0, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "czlibao_libao_9": { + "id": "czlibao_libao_9", + "money": 328, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 3280 + } + ], + "prize": [], + "firstPayPrize": [], + "name": "pay_name_czlibao_libao_9", + "undefined": "超值好礼_9", + "time": -1, + "buys": 0, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "czlibao_libao_10": { + "id": "czlibao_libao_10", + "money": 648, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 6480 + } + ], + "prize": [], + "firstPayPrize": [], + "name": "pay_name_czlibao_libao_10", + "undefined": "超值好礼_10", + "time": -1, + "buys": 0, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "ljlibao_1": { + "id": "ljlibao_1", + "money": 0.5, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 5 + } + ], + "prize": [], + "firstPayPrize": [], + "name": "pay_name_ljlibao_1", + "undefined": "累日礼包_1", + "time": -1, + "buys": 0, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "ljlibao_2": { + "id": "ljlibao_2", + "money": 1, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 10 + } + ], + "prize": [], + "firstPayPrize": [], + "name": "pay_name_ljlibao_2", + "undefined": "累日礼包_2", + "time": -1, + "buys": 0, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "ljlibao_3": { + "id": "ljlibao_3", + "money": 6, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 60 + } + ], + "prize": [], + "firstPayPrize": [], + "name": "pay_name_ljlibao_3", + "undefined": "累日礼包_3", + "time": -1, + "buys": 0, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "ljlibao_4": { + "id": "ljlibao_4", + "money": 18, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 180 + } + ], + "prize": [], + "firstPayPrize": [], + "name": "pay_name_ljlibao_4", + "undefined": "累日礼包_4", + "time": -1, + "buys": 0, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "ljlibao_5": { + "id": "ljlibao_5", + "money": 30, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 300 + } + ], + "prize": [], + "firstPayPrize": [], + "name": "pay_name_ljlibao_5", + "undefined": "累日礼包_5", + "time": -1, + "buys": 0, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "ljlibao_6": { + "id": "ljlibao_6", + "money": 68, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 680 + } + ], + "prize": [], + "firstPayPrize": [], + "name": "pay_name_ljlibao_6", + "undefined": "累日礼包_6", + "time": -1, + "buys": 0, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "ljlibao_7": { + "id": "ljlibao_7", + "money": 128, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 1280 + } + ], + "prize": [], + "firstPayPrize": [], + "name": "pay_name_ljlibao_7", + "undefined": "累日礼包_7", + "time": -1, + "buys": 0, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "ljlibao_8": { + "id": "ljlibao_8", + "money": 198, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 1980 + } + ], + "prize": [], + "firstPayPrize": [], + "name": "pay_name_ljlibao_8", + "undefined": "累日礼包_8", + "time": -1, + "buys": 0, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "ljlibao_9": { + "id": "ljlibao_9", + "money": 328, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 3280 + } + ], + "prize": [], + "firstPayPrize": [], + "name": "pay_name_ljlibao_9", + "undefined": "累日礼包_9", + "time": -1, + "buys": 0, + "needVip": 0, + "front": {}, + "currency": "CNY" + }, + "ljlibao_10": { + "id": "ljlibao_10", + "money": 648, + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 6480 + } + ], + "prize": [], + "firstPayPrize": [], + "name": "pay_name_ljlibao_10", + "undefined": "累日礼包_10", + "time": -1, + "buys": 0, "needVip": 0, "front": {}, "currency": "CNY" diff --git a/src/json/playerHead.json b/src/json/playerHead.json index 04f1367..37bf3c9 100644 --- a/src/json/playerHead.json +++ b/src/json/playerHead.json @@ -29,6 +29,36 @@ "colour": 1, "ani": "" }, + "3": { + "id": 3, + "name": "intr_playerinfo_name_3", + "undefined": "获得圣诞活动皮肤【圣诞庆典:男】后解锁", + "img": 100011, + "cond": [ + "model", + 3 + ], + "intr": "intr_playerinfo_intr_3", + "sort": 3, + "buff": {}, + "colour": 1, + "ani": "" + }, + "4": { + "id": 4, + "name": "intr_playerinfo_name_4", + "undefined": "获得圣诞活动皮肤【圣诞庆典:女】后解锁", + "img": 100021, + "cond": [ + "model", + 4 + ], + "intr": "intr_playerinfo_intr_4", + "sort": 4, + "buff": {}, + "colour": 1, + "ani": "" + }, "1001": { "id": 1001, "name": "intr_playerinfo_name_1001", @@ -39,7 +69,7 @@ 1001 ], "intr": "intr_playerinfo_intr_1001", - "sort": 40, + "sort": 42, "buff": {}, "colour": 1, "ani": "" @@ -54,7 +84,7 @@ 1002 ], "intr": "intr_playerinfo_intr_1002", - "sort": 41, + "sort": 43, "buff": {}, "colour": 1, "ani": "" @@ -69,7 +99,7 @@ 2001 ], "intr": "intr_playerinfo_intr_2001", - "sort": 38, + "sort": 40, "buff": {}, "colour": 1, "ani": "" @@ -84,7 +114,7 @@ 2002 ], "intr": "intr_playerinfo_intr_2002", - "sort": 39, + "sort": 41, "buff": {}, "colour": 1, "ani": "" @@ -99,7 +129,7 @@ 3001 ], "intr": "intr_playerinfo_intr_3001", - "sort": 23, + "sort": 25, "buff": {}, "colour": 1, "ani": "" @@ -114,7 +144,7 @@ 3002 ], "intr": "intr_playerinfo_intr_3002", - "sort": 24, + "sort": 26, "buff": {}, "colour": 1, "ani": "" @@ -129,7 +159,7 @@ 3003 ], "intr": "intr_playerinfo_intr_3003", - "sort": 25, + "sort": 27, "buff": {}, "colour": 1, "ani": "" @@ -144,7 +174,7 @@ 3004 ], "intr": "intr_playerinfo_intr_3004", - "sort": 26, + "sort": 28, "buff": {}, "colour": 1, "ani": "" @@ -159,7 +189,7 @@ 3005 ], "intr": "intr_playerinfo_intr_3005", - "sort": 27, + "sort": 29, "buff": {}, "colour": 1, "ani": "" @@ -174,7 +204,7 @@ 3006 ], "intr": "intr_playerinfo_intr_3006", - "sort": 28, + "sort": 30, "buff": {}, "colour": 1, "ani": "" @@ -189,7 +219,7 @@ 3007 ], "intr": "intr_playerinfo_intr_3007", - "sort": 29, + "sort": 31, "buff": {}, "colour": 1, "ani": "" @@ -204,7 +234,7 @@ 3008 ], "intr": "intr_playerinfo_intr_3008", - "sort": 30, + "sort": 32, "buff": {}, "colour": 1, "ani": "" @@ -219,7 +249,7 @@ 3009 ], "intr": "intr_playerinfo_intr_3009", - "sort": 31, + "sort": 33, "buff": {}, "colour": 1, "ani": "" @@ -234,7 +264,7 @@ 3010 ], "intr": "intr_playerinfo_intr_3010", - "sort": 32, + "sort": 34, "buff": {}, "colour": 1, "ani": "" @@ -249,7 +279,7 @@ 3011 ], "intr": "intr_playerinfo_intr_3011", - "sort": 33, + "sort": 35, "buff": {}, "colour": 1, "ani": "" @@ -264,7 +294,7 @@ 3012 ], "intr": "intr_playerinfo_intr_3012", - "sort": 34, + "sort": 36, "buff": {}, "colour": 1, "ani": "" @@ -279,7 +309,7 @@ 3013 ], "intr": "intr_playerinfo_intr_3013", - "sort": 35, + "sort": 37, "buff": {}, "colour": 1, "ani": "" @@ -294,7 +324,7 @@ 3014 ], "intr": "intr_playerinfo_intr_3014", - "sort": 36, + "sort": 38, "buff": {}, "colour": 1, "ani": "" @@ -309,7 +339,7 @@ 3015 ], "intr": "intr_playerinfo_intr_3015", - "sort": 37, + "sort": 39, "buff": {}, "colour": 1, "ani": "" @@ -324,7 +354,7 @@ 4001 ], "intr": "intr_playerinfo_intr_4001", - "sort": 8, + "sort": 10, "buff": {}, "colour": 1, "ani": "" @@ -339,7 +369,7 @@ 4002 ], "intr": "intr_playerinfo_intr_4002", - "sort": 9, + "sort": 11, "buff": {}, "colour": 1, "ani": "" @@ -354,7 +384,7 @@ 4003 ], "intr": "intr_playerinfo_intr_4003", - "sort": 10, + "sort": 12, "buff": {}, "colour": 1, "ani": "" @@ -369,7 +399,7 @@ 4004 ], "intr": "intr_playerinfo_intr_4004", - "sort": 11, + "sort": 13, "buff": {}, "colour": 1, "ani": "" @@ -384,7 +414,7 @@ 4005 ], "intr": "intr_playerinfo_intr_4005", - "sort": 12, + "sort": 14, "buff": {}, "colour": 1, "ani": "" @@ -399,7 +429,7 @@ 4006 ], "intr": "intr_playerinfo_intr_4006", - "sort": 13, + "sort": 15, "buff": {}, "colour": 1, "ani": "" @@ -414,7 +444,7 @@ 4007 ], "intr": "intr_playerinfo_intr_4007", - "sort": 14, + "sort": 16, "buff": {}, "colour": 1, "ani": "" @@ -429,7 +459,7 @@ 4008 ], "intr": "intr_playerinfo_intr_4008", - "sort": 15, + "sort": 17, "buff": {}, "colour": 1, "ani": "" @@ -444,7 +474,7 @@ 4009 ], "intr": "intr_playerinfo_intr_4009", - "sort": 16, + "sort": 18, "buff": {}, "colour": 1, "ani": "" @@ -459,7 +489,7 @@ 4010 ], "intr": "intr_playerinfo_intr_4010", - "sort": 17, + "sort": 19, "buff": {}, "colour": 1, "ani": "" @@ -474,7 +504,7 @@ 4011 ], "intr": "intr_playerinfo_intr_4011", - "sort": 18, + "sort": 20, "buff": {}, "colour": 1, "ani": "" @@ -489,7 +519,7 @@ 4012 ], "intr": "intr_playerinfo_intr_4012", - "sort": 19, + "sort": 21, "buff": {}, "colour": 1, "ani": "" @@ -504,7 +534,7 @@ 4013 ], "intr": "intr_playerinfo_intr_4013", - "sort": 20, + "sort": 22, "buff": {}, "colour": 1, "ani": "" @@ -519,7 +549,7 @@ 4014 ], "intr": "intr_playerinfo_intr_4014", - "sort": 21, + "sort": 23, "buff": {}, "colour": 1, "ani": "" @@ -534,7 +564,7 @@ 4015 ], "intr": "intr_playerinfo_intr_4015", - "sort": 22, + "sort": 24, "buff": {}, "colour": 1, "ani": "" @@ -549,7 +579,7 @@ 5001 ], "intr": "intr_playerinfo_intr_5001", - "sort": 3, + "sort": 5, "buff": {}, "colour": 1, "ani": "" @@ -564,7 +594,7 @@ 5002 ], "intr": "intr_playerinfo_intr_5002", - "sort": 4, + "sort": 6, "buff": {}, "colour": 1, "ani": "" @@ -579,7 +609,7 @@ 5003 ], "intr": "intr_playerinfo_intr_5003", - "sort": 5, + "sort": 7, "buff": {}, "colour": 1, "ani": "" @@ -594,7 +624,7 @@ 5004 ], "intr": "intr_playerinfo_intr_5004", - "sort": 6, + "sort": 8, "buff": {}, "colour": 1, "ani": "" @@ -609,7 +639,7 @@ 5005 ], "intr": "intr_playerinfo_intr_5005", - "sort": 7, + "sort": 9, "buff": {}, "colour": 1, "ani": "" diff --git a/src/json/playerHeadFrame.json b/src/json/playerHeadFrame.json index 485c541..a52191d 100644 --- a/src/json/playerHeadFrame.json +++ b/src/json/playerHeadFrame.json @@ -391,5 +391,22 @@ }, "colour": 4, "ani": "" + }, + "24": { + "id": 24, + "name": "playerheadFrame_name_24", + "undefined": "消费竞赛活动前三名获得,解锁后伤害加成+1%(限时7天)", + "img": "txk_025", + "cond": [ + "time", + 604800 + ], + "intr": "playerheadFrame_des_24", + "sort": 24, + "buff": { + "dpspro": 0.01 + }, + "colour": 5, + "ani": "" } } \ No newline at end of file diff --git a/src/json/playerModel.json b/src/json/playerModel.json index dcf972b..634d211 100644 --- a/src/json/playerModel.json +++ b/src/json/playerModel.json @@ -1,76 +1,74 @@ { "1": { - "1": { - "type": 1, - "id": 1, - "name": "playerModel_name_1", - "head": 10001, - "img": "zhu_10001", - "cond": [ - "lv", - 1 - ], - "intr": "playerModel_des_1", - "sort": 1, - "buff": {}, - "colour": 1, - "mwSpine": "ani_mingwangnan", - "fireHead": "img_lih2" + "id": 1, + "type": 1, + "name": "playerModel_name_1", + "head": 10001, + "img": "zhu_10001", + "cond": [ + "lv", + 1 + ], + "intr": "playerModel_des_1", + "sort": 1, + "buff": {}, + "colour": 1, + "mwSpine": "ani_mingwangnan", + "fireHead": "img_lih2" + }, + "2": { + "id": 2, + "type": 1, + "name": "playerModel_name_2", + "head": 10002, + "img": "zhu_10002", + "cond": [ + "lv", + 1 + ], + "intr": "playerModel_des_2", + "sort": 2, + "buff": {}, + "colour": 1, + "mwSpine": "ani_mingwangnv", + "fireHead": "img_lih1" + }, + "3": { + "id": 3, + "type": 1, + "name": "playerModel_name_3", + "head": 100011, + "img": 100011, + "cond": [ + "time", + -1 + ], + "intr": "playerModel_des_3", + "sort": 3, + "buff": { + "defpro": 0.02 }, - "2": { - "type": 1, - "id": 2, - "name": "playerModel_name_2", - "head": 10002, - "img": "zhu_10002", - "cond": [ - "lv", - 1 - ], - "intr": "playerModel_des_2", - "sort": 2, - "buff": {}, - "colour": 1, - "mwSpine": "ani_mingwangnv", - "fireHead": "img_lih1" + "colour": 5, + "mwSpine": "ani_mingwangnan", + "fireHead": "img_lih21" + }, + "4": { + "id": 4, + "type": 1, + "name": "playerModel_name_4", + "head": 100021, + "img": 100021, + "cond": [ + "time", + -1 + ], + "intr": "playerModel_des_4", + "sort": 4, + "buff": { + "atkpro": 0.02 }, - "3": { - "type": 1, - "id": 3, - "name": "playerModel_name_3", - "head": 100011, - "img": 100011, - "cond": [ - "time", - -1 - ], - "intr": "playerModel_des_3", - "sort": 3, - "buff": { - "defpro": 0.02 - }, - "colour": 5, - "mwSpine": "ani_mingwangnan", - "fireHead": "img_lih21" - }, - "4": { - "type": 1, - "id": 4, - "name": "playerModel_name_4", - "head": 100021, - "img": 100021, - "cond": [ - "time", - -1 - ], - "intr": "playerModel_des_4", - "sort": 4, - "buff": { - "atkpro": 0.02 - }, - "colour": 5, - "mwSpine": "ani_mingwangnv", - "fireHead": "img_lih11" - } + "colour": 5, + "mwSpine": "ani_mingwangnv", + "fireHead": "img_lih11" } } \ No newline at end of file diff --git a/src/json/shop.json b/src/json/shop.json index d13cfdf..9893e4e 100644 --- a/src/json/shop.json +++ b/src/json/shop.json @@ -499,8 +499,8 @@ "13": { "id": 13, "type": 12, - "name": "wsw_wz_dhsd", - "undefined": "兑换商店", + "name": "wsw_wz_mrjxdh", + "undefined": "每日精选兑换商店", "openCond": [ "lv", 15 @@ -511,7 +511,7 @@ "freeRefreshInterval": 0, "freeRefreshNum": 0, "shopItems": [ - 4001 + 10001 ], "showItem": [ { diff --git a/src/json/shopItem.json b/src/json/shopItem.json index ec6950d..46da62c 100644 --- a/src/json/shopItem.json +++ b/src/json/shopItem.json @@ -3918,31 +3918,6 @@ 9999 ], "vipAddbuyNum": [] - }, - { - "id": 4001, - "a": "item", - "t": 4, - "n": 10, - "p": 1, - "colour": 4, - "buyNum": -1, - "openDay": 1, - "buyNeed": [ - { - "a": "item", - "t": "15", - "n": 2800 - } - ], - "sale": 10, - "needVip": 0, - "needZCCG": 0, - "lv": [ - 1, - 9999 - ], - "vipAddbuyNum": [] } ], "4002": [ @@ -6294,6 +6269,33 @@ "vipAddbuyNum": [] } ], + "10001": [ + { + "id": 10001, + "a": "item", + "t": 4, + "n": 10, + "p": 1, + "colour": 4, + "buyNum": -1, + "openDay": 1, + "buyNeed": [ + { + "a": "item", + "t": "15", + "n": 2800 + } + ], + "sale": 10, + "needVip": 0, + "needZCCG": 0, + "lv": [ + 1, + 9999 + ], + "vipAddbuyNum": [] + } + ], "120001": [ { "id": 120001, diff --git a/src/json/shopcom.json b/src/json/shopcom.json index b8b86ba..b5157f4 100644 --- a/src/json/shopcom.json +++ b/src/json/shopcom.json @@ -198,5 +198,22 @@ "npcImg": "img_sd_3015", "npcText": "intr_shopCom_text_10", "helpText": "intr_shopCom_helpText_10" + }, + "11": { + "id": 11, + "shopId": 13, + "shopType": 12, + "title": "wsw_wz_dhsd", + "undefined": "兑换商店", + "openCond": "shop_13", + "des": "intr_shop_des_13", + "img": "wsw_wz_dhsd", + "cost": [ + { + "a": "attr", + "t": "rmbmoney", + "n": 1 + } + ] } } \ No newline at end of file diff --git a/src/json/tuisonglibao.json b/src/json/tuisonglibao.json index 737dbc1..e46aeef 100644 --- a/src/json/tuisonglibao.json +++ b/src/json/tuisonglibao.json @@ -2,8 +2,39 @@ "1": { "id": 1, "type": 1, + "typeName": "tuisonglibao_name_2", "num": [ - 5 + 100 + ], + "payId": [ + "guanqialibao_1", + "guanqialibao_3" + ], + "time": 3600, + "displayCD": 3600, + "scale": 3000 + }, + "2": { + "id": 2, + "type": 1, + "typeName": "tuisonglibao_name_2", + "num": [ + 140 + ], + "payId": [ + "guanqialibao_1", + "guanqialibao_3" + ], + "time": 3600, + "displayCD": 3600, + "scale": 3000 + }, + "3": { + "id": 3, + "type": 1, + "typeName": "tuisonglibao_name_2", + "num": [ + 180 ], "payId": [ "guanqialibao_1", @@ -11,78 +42,257 @@ "guanqialibao_3" ], "time": 3600, - "displayCD": 7200, - "scale": 500 - }, - "2": { - "id": 2, - "type": 1, - "num": [ - 10 - ], - "payId": [ - "guanqialibao_1", - "guanqialibao_2" - ], - "time": 3600, - "displayCD": 7200, - "scale": 501 - }, - "3": { - "id": 3, - "type": 1, - "num": [ - 20 - ], - "payId": [ - "guanqialibao_1", - "guanqialibao_3" - ], - "time": 3600, - "displayCD": 7200, - "scale": 502 + "displayCD": 3600, + "scale": 3000 }, "4": { "id": 4, - "type": 2, + "type": 1, + "typeName": "tuisonglibao_name_2", "num": [ - { - "a": "item", - "t": "1" - } + 240 ], "payId": [ - "daojulibao_1", - "daojulibao_2" + "guanqialibao_1", + "guanqialibao_2", + "guanqialibao_3" ], "time": 3600, - "displayCD": 7200, - "scale": 503 + "displayCD": 3600, + "scale": 3000 }, "5": { "id": 5, - "type": 2, + "type": 1, + "typeName": "tuisonglibao_name_2", "num": [ - { - "a": "item", - "t": "2" - } + 300 ], "payId": [ - "daojulibao_1", - "daojulibao_3" + "guanqialibao_1", + "guanqialibao_2", + "guanqialibao_3" ], "time": 3600, - "displayCD": 7200, - "scale": 504 + "displayCD": 3600, + "scale": 3000 }, "6": { "id": 6, + "type": 1, + "typeName": "tuisonglibao_name_2", + "num": [ + 360 + ], + "payId": [ + "guanqialibao_1", + "guanqialibao_2", + "guanqialibao_3" + ], + "time": 3600, + "displayCD": 3600, + "scale": 3000 + }, + "7": { + "id": 7, + "type": 1, + "typeName": "tuisonglibao_name_2", + "num": [ + 400 + ], + "payId": [ + "guanqialibao_1", + "guanqialibao_2", + "guanqialibao_3" + ], + "time": 3600, + "displayCD": 3600, + "scale": 3000 + }, + "8": { + "id": 8, + "type": 1, + "typeName": "tuisonglibao_name_2", + "num": [ + 460 + ], + "payId": [ + "guanqialibao_1", + "guanqialibao_2", + "guanqialibao_3" + ], + "time": 3600, + "displayCD": 3600, + "scale": 3000 + }, + "9": { + "id": 9, + "type": 1, + "typeName": "tuisonglibao_name_2", + "num": [ + 490 + ], + "payId": [ + "guanqialibao_1", + "guanqialibao_2", + "guanqialibao_3" + ], + "time": 3600, + "displayCD": 3600, + "scale": 3000 + }, + "10": { + "id": 10, + "type": 1, + "typeName": "tuisonglibao_name_2", + "num": [ + 520 + ], + "payId": [ + "guanqialibao_1", + "guanqialibao_2", + "guanqialibao_3" + ], + "time": 3600, + "displayCD": 3600, + "scale": 3000 + }, + "11": { + "id": 11, + "type": 1, + "typeName": "tuisonglibao_name_2", + "num": [ + 550 + ], + "payId": [ + "guanqialibao_1", + "guanqialibao_2", + "guanqialibao_3" + ], + "time": 3600, + "displayCD": 3600, + "scale": 3000 + }, + "12": { + "id": 12, + "type": 1, + "typeName": "tuisonglibao_name_2", + "num": [ + 580 + ], + "payId": [ + "guanqialibao_1", + "guanqialibao_2", + "guanqialibao_4" + ], + "time": 3600, + "displayCD": 3600, + "scale": 3000 + }, + "13": { + "id": 13, + "type": 1, + "typeName": "tuisonglibao_name_2", + "num": [ + 610 + ], + "payId": [ + "guanqialibao_1", + "guanqialibao_2", + "guanqialibao_4" + ], + "time": 3600, + "displayCD": 3600, + "scale": 3000 + }, + "14": { + "id": 14, + "type": 1, + "typeName": "tuisonglibao_name_2", + "num": [ + 640 + ], + "payId": [ + "guanqialibao_1", + "guanqialibao_2", + "guanqialibao_4" + ], + "time": 3600, + "displayCD": 3600, + "scale": 3000 + }, + "15": { + "id": 15, + "type": 1, + "typeName": "tuisonglibao_name_2", + "num": [ + 670 + ], + "payId": [ + "guanqialibao_1", + "guanqialibao_2", + "guanqialibao_4" + ], + "time": 3600, + "displayCD": 3600, + "scale": 3000 + }, + "16": { + "id": 16, + "type": 1, + "typeName": "tuisonglibao_name_2", + "num": [ + 700 + ], + "payId": [ + "guanqialibao_1", + "guanqialibao_2", + "guanqialibao_4" + ], + "time": 3600, + "displayCD": 3600, + "scale": 3000 + }, + "17": { + "id": 17, + "type": 1, + "typeName": "tuisonglibao_name_2", + "num": [ + 730 + ], + "payId": [ + "guanqialibao_1", + "guanqialibao_2", + "guanqialibao_4" + ], + "time": 3600, + "displayCD": 3600, + "scale": 3000 + }, + "18": { + "id": 18, + "type": 1, + "typeName": "tuisonglibao_name_2", + "num": [ + 760 + ], + "payId": [ + "guanqialibao_1", + "guanqialibao_2", + "guanqialibao_4" + ], + "time": 3600, + "displayCD": 3600, + "scale": 3000 + }, + "101": { + "id": 101, "type": 2, + "typeName": "tuisonglibao_name_3", "num": [ { - "a": "attr", - "t": "jinbi" + "a": "item", + "t": "9" } ], "payId": [ @@ -91,167 +301,227 @@ "daojulibao_3" ], "time": 3600, - "displayCD": 7200, - "scale": 505 + "displayCD": 86400, + "scale": 3000 }, - "7": { - "id": 7, - "type": 3, + "102": { + "id": 102, + "type": 2, + "typeName": "tuisonglibao_name_3", "num": [ - 1 + { + "a": "item", + "t": "28" + } ], "payId": [ - "zhanbailibao_1", - "zhanbailibao_2", - "zhanbailibao_3" + "daojulibao_4", + "daojulibao_5", + "daojulibao_6" ], "time": 3600, - "displayCD": 7200, - "scale": 506 + "displayCD": 86400, + "scale": 3000 }, - "8": { - "id": 8, - "type": 4, + "103": { + "id": 103, + "type": 2, + "typeName": "tuisonglibao_name_3", "num": [ - 3 + { + "a": "item", + "t": "18" + } ], "payId": [ - "choukalibao_1", - "choukalibao_2", - "choukalibao_3" + "daojulibao_7", + "daojulibao_8", + "daojulibao_9" ], "time": 3600, - "displayCD": 7200, - "scale": 507 + "displayCD": 86400, + "scale": 3000 }, - "9": { - "id": 9, + "104": { + "id": 104, + "type": 2, + "typeName": "tuisonglibao_name_3", + "num": [ + { + "a": "item", + "t": "19" + } + ], + "payId": [ + "daojulibao_10", + "daojulibao_11", + "daojulibao_12" + ], + "time": 3600, + "displayCD": 86400, + "scale": 3000 + }, + "401": { + "id": 401, "type": 5, + "typeName": "tuisonglibao_name_1", "num": [ - 31 + 15 ], "payId": [ - "lv30" + "lv15" ], "time": 3600, "displayCD": 3600, - "scale": 3300 + "scale": 3000 }, - "10": { - "id": 10, + "402": { + "id": 402, "type": 5, + "typeName": "tuisonglibao_name_1", "num": [ - 45 + 25 ], "payId": [ - "lv40" + "lv25" ], "time": 3600, "displayCD": 3600, - "scale": 3300 + "scale": 3000 }, - "11": { - "id": 11, + "403": { + "id": 403, "type": 5, + "typeName": "tuisonglibao_name_1", + "num": [ + 40 + ], + "payId": [ + "lv40", + "lv40_1" + ], + "time": 3600, + "displayCD": 3600, + "scale": 3000 + }, + "404": { + "id": 404, + "type": 5, + "typeName": "tuisonglibao_name_1", "num": [ 50 ], "payId": [ - "lv55" + "lv50_1", + "lv50_2" ], "time": 3600, "displayCD": 3600, - "scale": 2000 + "scale": 3000 }, - "12": { - "id": 12, + "405": { + "id": 405, "type": 5, + "typeName": "tuisonglibao_name_1", "num": [ - 53 + 55 ], "payId": [ - "lv58" + "lv55", + "lv55_1" ], "time": 3600, "displayCD": 3600, - "scale": 2000 + "scale": 3000 }, - "13": { - "id": 13, - "type": 5, - "num": [ - 56 - ], - "payId": [ - "lv60" - ], - "time": 3600, - "displayCD": 3600, - "scale": 2000 - }, - "14": { - "id": 14, + "406": { + "id": 406, "type": 5, + "typeName": "tuisonglibao_name_1", "num": [ 60 ], "payId": [ - "lv63" + "lv60", + "lv60_1" ], "time": 3600, "displayCD": 3600, - "scale": 2000 + "scale": 3000 }, - "15": { - "id": 15, + "407": { + "id": 407, "type": 5, + "typeName": "tuisonglibao_name_1", "num": [ 63 ], "payId": [ - "lv66" + "lv63", + "lv63_1" ], "time": 3600, "displayCD": 3600, - "scale": 2000 + "scale": 3000 }, - "16": { - "id": 16, + "408": { + "id": 408, "type": 5, + "typeName": "tuisonglibao_name_1", "num": [ 66 ], "payId": [ - "lv69" + "lv66", + "lv66_1" ], "time": 3600, "displayCD": 3600, - "scale": 1800 + "scale": 3000 }, - "17": { - "id": 17, + "409": { + "id": 409, "type": 5, + "typeName": "tuisonglibao_name_1", "num": [ - 68 + 69 ], "payId": [ - "lv72" + "lv69", + "lv69_1" ], "time": 3600, "displayCD": 3600, - "scale": 1800 + "scale": 3000 }, - "18": { - "id": 18, + "410": { + "id": 410, "type": 5, + "typeName": "tuisonglibao_name_1", "num": [ - 70 + 73 ], "payId": [ - "lv75" + "lv73_1", + "lv73_2" ], "time": 3600, "displayCD": 3600, - "scale": 1800 + "scale": 3000 + }, + "411": { + "id": 411, + "type": 5, + "typeName": "tuisonglibao_name_1", + "num": [ + 82 + ], + "payId": [ + "lv82_1", + "lv82_2" + ], + "time": 3600, + "displayCD": 3600, + "scale": 3000 } } \ No newline at end of file From 44dc10fae6c3f39846ac20751aa90986bfc9c578 Mon Sep 17 00:00:00 2001 From: xcy <871622040@qq.com> Date: Thu, 21 Dec 2023 14:01:08 +0800 Subject: [PATCH 21/41] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=AE=9A?= =?UTF-8?q?=E6=97=B6=E5=99=A8=E9=87=8D=E5=A4=8D=E6=89=A7=E8=A1=8C=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E9=82=AE=E4=BB=B6=E9=87=8D=E5=A4=8D=E5=8F=91=E9=80=81?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/path_20231221.ts | 121 ++++++++++++++++++ .../scheduler/scheduler_cross_email_pull.ts | 2 +- 2 files changed, 122 insertions(+), 1 deletion(-) create mode 100644 src/path_20231221.ts diff --git a/src/path_20231221.ts b/src/path_20231221.ts new file mode 100644 index 0000000..11098b7 --- /dev/null +++ b/src/path_20231221.ts @@ -0,0 +1,121 @@ +import {ctor} from "./global"; +import {initMongoDB} from "./setMongodb"; +import {yangchengmubiao} from "./shared/protocols/event/yangchengmubiao/PtlOpen"; + +async function start() { + await initMongoDB() + + const hdid = [100, 101]; + const task = { + '2001': { + 'prize': [{'a': 'item', 't': '4', 'n': 5}, {'a': 'item', 't': '626', 'n': 10}], + 'tujing': '', + 'title': 'intr_yczm_day_des_2', + 'type': 2, + 'pval': 50, + 'cond': [], + 'stype': 118 + }, + '2002': { + 'prize': [{'a': 'item', 't': '4', 'n': 5}, {'a': 'item', 't': '626', 'n': 10}], + 'tujing': '', + 'title': 'intr_yczm_day_des_2', + 'type': 2, + 'pval': 100, + 'cond': [], + 'stype': 118 + }, + '2003': { + 'prize': [{'a': 'item', 't': '4', 'n': 10}, {'a': 'item', 't': '626', 'n': 20}], + 'tujing': '', + 'title': 'intr_yczm_day_des_2', + 'type': 2, + 'pval': 200, + 'cond': [], + 'stype': 118 + }, + '2004': { + 'prize': [{'a': 'item', 't': '4', 'n': 10}, {'a': 'item', 't': '600', 'n': 20}], + 'tujing': '', + 'title': 'intr_yczm_day_des_2', + 'type': 2, + 'pval': 250, + 'cond': [], + 'stype': 118 + }, + '2005': { + 'prize': [{'a': 'item', 't': '4', 'n': 10}, {'a': 'item', 't': '600', 'n': 20}], + 'tujing': '', + 'title': 'intr_yczm_day_des_2', + 'type': 2, + 'pval': 300, + 'cond': [], + 'stype': 118 + }, + '2006': { + 'prize': [{'a': 'item', 't': '4', 'n': 10}, {'a': 'item', 't': '619', 'n': 1}], + 'tujing': '', + 'title': 'intr_yczm_day_des_2', + 'type': 2, + 'pval': 400, + 'cond': [], + 'stype': 118 + }, + '2007': { + 'prize': [{'a': 'item', 't': '4', 'n': 10}, {'a': 'item', 't': '619', 'n': 1}], + 'tujing': '', + 'title': 'intr_yczm_day_des_2', + 'type': 2, + 'pval': 500, + 'cond': [], + 'stype': 118 + } + }; + // 中间插入了2004 所以之前的任务id一次往后顺延 + const change = {2004: 2005, 2005: 2006, 2006: 2007}; + // 刷新活动配置 + await G.mongodb.collection("hdinfo").updateMany({hdid: {$in: hdid}}, { + "$set": {'data.tasklist.2': task} + }) + + let datas: yangchengmubiao[] = []; + // 刷新玩家领取记录 + datas = datas.concat(await G.mongodb.cEvent(`yangchengmubiao${hdid[0]}`).find( + {type: `yangchengmubiao${hdid[0]}`} + ).toArray()); + + datas = datas.concat(await G.mongodb.cEvent(`yangchengmubiao${hdid[1]}`).find( + {type: `yangchengmubiao${hdid[1]}`} + ).toArray()); + + for (let i = 0; i < datas.length; i++) { + let data = datas[i]; + let finished = data.finishid["2"].map((task) => { + return change[task] ? change[task] : task + }); + let maxtaskval = Math.max(...Object.values(data.taskval)); + + let taskval = {}; + for (let taskid in task) { + taskval[taskid] = maxtaskval; + } + + await G.mongodb.collection("event").updateOne( + {uid: data.uid, type: data.type}, {$set: {taskval: taskval, "finishid.2": finished}} + ) + console.log(`修复玩家${data.uid}人才计划数据完成...`); + } +} + +ctor(); +start().then(() => { + let s = 0; + setInterval(() => { + s += 1; + console.log(new Date().format("MM-dd hh:mm:ss")); + if (s >= 3) process.exit(1); + }, 1000) + console.log("逻辑执行完成...等待退出!!!"); +}); + + diff --git a/src/public/scheduler/scheduler_cross_email_pull.ts b/src/public/scheduler/scheduler_cross_email_pull.ts index e955d0c..ceee41e 100644 --- a/src/public/scheduler/scheduler_cross_email_pull.ts +++ b/src/public/scheduler/scheduler_cross_email_pull.ts @@ -22,7 +22,7 @@ export class CrossEmailPull extends Scheduler { G.clientCross.callApi("email/GetCrossEmail", {server_id: G.config.serverId + ""}).then((res) => { if (!res.isSucc) return; res.res.emails.forEach(async (email) => { - let _prize = email?.prizeData?.prize || []; + let _prize = R.clone(email?.prizeData?.prize) || []; if (email?.prizeData) delete email.prizeData; email["prize"] = _prize; From 2f9483725db566ebdf65e85d555accda4369b56c Mon Sep 17 00:00:00 2001 From: dy Date: Thu, 21 Dec 2023 14:46:25 +0800 Subject: [PATCH 22/41] =?UTF-8?q?=E5=A4=B4=E5=83=8F=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/patch_player_model_20231221.ts | 33 ++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/patch_player_model_20231221.ts diff --git a/src/patch_player_model_20231221.ts b/src/patch_player_model_20231221.ts new file mode 100644 index 0000000..ceab1a7 --- /dev/null +++ b/src/patch_player_model_20231221.ts @@ -0,0 +1,33 @@ +import {ctor} from "./global"; +import {initMongoDB} from "./setMongodb"; + +async function start() { + await initMongoDB() + + // 刷新活动配置 + console.log(`修复玩家model数据开始...`); + + + await G.mongodb.collection("user").updateMany({},{ + upModel:{id: "1", time: -1}, + model: { + '1': {id: "1", time: -1}, + '2': {id: "2", time: -1} + } + }) + + console.log(`修复玩家model数据完成...`); +} + +ctor(); +start().then(() => { + let s = 0; + setInterval(() => { + s += 1; + console.log(new Date().format("MM-dd hh:mm:ss")); + if (s >= 3) process.exit(1); + }, 1000) + console.log("逻辑执行完成...等待退出!!!"); +}); + + From 85ccd8dd905cf221463623f9efafb145483de018 Mon Sep 17 00:00:00 2001 From: dy Date: Thu, 21 Dec 2023 14:56:30 +0800 Subject: [PATCH 23/41] =?UTF-8?q?=E9=80=A0=E5=9E=8B=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/patch_player_model_20231221.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/patch_player_model_20231221.ts b/src/patch_player_model_20231221.ts index ceab1a7..53c60ea 100644 --- a/src/patch_player_model_20231221.ts +++ b/src/patch_player_model_20231221.ts @@ -9,10 +9,12 @@ async function start() { await G.mongodb.collection("user").updateMany({},{ - upModel:{id: "1", time: -1}, - model: { - '1': {id: "1", time: -1}, - '2': {id: "2", time: -1} + $set:{ + upModel:{id: "1", time: -1}, + model: { + '1': {id: "1", time: -1}, + '2': {id: "2", time: -1} + } } }) From 1d847480fcca345d7c07846686ef34f30477981c Mon Sep 17 00:00:00 2001 From: dy Date: Thu, 21 Dec 2023 14:57:26 +0800 Subject: [PATCH 24/41] cehua json --- src/json/pay.json | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/json/pay.json b/src/json/pay.json index bd82fb6..c40b1d1 100644 --- a/src/json/pay.json +++ b/src/json/pay.json @@ -5991,7 +5991,7 @@ { "a": "attr", "t": "payExp", - "n": 30 + "n": 300 } ], "prize": [], @@ -6047,7 +6047,13 @@ "sdhd_libao_6": { "id": "sdhd_libao_6", "money": 328, - "payExp": "[{\"a\": \"attr\", \"t\": \"payExp\", \"n\"3280}]", + "payExp": [ + { + "a": "attr", + "t": "payExp", + "n": 3280 + } + ], "prize": [], "firstPayPrize": [], "name": "pay_name_sdhd_libao_6", From b38fc4f21f5ee1e2549c4dbb36875e4776444969 Mon Sep 17 00:00:00 2001 From: dy Date: Thu, 21 Dec 2023 16:10:37 +0800 Subject: [PATCH 25/41] fix use item model --- src/public/user.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/public/user.ts b/src/public/user.ts index a5cb191..55fcd89 100644 --- a/src/public/user.ts +++ b/src/public/user.ts @@ -406,10 +406,10 @@ export class UserFun { if (conf?.cond?.[0] == 'time') { let val = conf.cond[1]; - if (val == -1 && gud.model[conf.id]) { + if (val == -1) { change = true; gud.model[conf.id] = {id: conf.id + '', time: -1}; - } else if (!gud.model[conf.id] || gud.model[conf.id].time < G.time) { + } else if (gud.model[conf.id].time < G.time) { change = true; gud.model[conf.id] = {id: conf.id + '', time: G.time + val * v}; } else { From 80908e5a46981d08ac392515fe7e4f9d1d963be5 Mon Sep 17 00:00:00 2001 From: yushunrui <364203175@qq.com> Date: Tue, 19 Dec 2023 17:38:59 +0800 Subject: [PATCH 26/41] =?UTF-8?q?fix:=E5=9C=A3=E8=AF=9E=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=9C=A3=E8=AF=9E=E7=BB=8F=E9=AA=8C=E5=AD=97?= =?UTF-8?q?=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api_s2c/event/christmas/ApiTaskRec.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/api_s2c/event/christmas/ApiTaskRec.ts b/src/api_s2c/event/christmas/ApiTaskRec.ts index 1227d85..d0af2c9 100644 --- a/src/api_s2c/event/christmas/ApiTaskRec.ts +++ b/src/api_s2c/event/christmas/ApiTaskRec.ts @@ -22,11 +22,14 @@ export default async function (call: ApiCall) { return call.error('', { code: -3, message: globalThis.lng.yangchengmubiao_4 }) } _mydata.taskfinish.push(taskid) - + let _addval = _con.addval let _setData = {} + _mydata["val"] += _addval + _setData["val"] = _mydata.val _setData["taskfinish"] = _mydata.taskfinish await Christmasfun.setMyData(call.uid, call.req.hdid, { $set: _setData }) let _prize = _con.prize + await PlayerFun.sendPrize(call, _prize); let changedata = { mydata: _mydata, prize: _prize} // 推送红点 From 1b222a9fc69038f6187b5c87a715d7be2b82e504 Mon Sep 17 00:00:00 2001 From: yushunrui <364203175@qq.com> Date: Tue, 19 Dec 2023 19:35:45 +0800 Subject: [PATCH 27/41] =?UTF-8?q?fix:=E5=9C=A3=E8=AF=9E=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E5=85=85=E5=80=BC=E4=B8=8D=E5=88=B0=E8=B4=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api_s2c/event/christmas/fun.ts | 12 +++++++++--- src/globalListener.ts | 2 -- src/public/pay.ts | 5 +++-- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/api_s2c/event/christmas/fun.ts b/src/api_s2c/event/christmas/fun.ts index 327422c..9ecaa7f 100644 --- a/src/api_s2c/event/christmas/fun.ts +++ b/src/api_s2c/event/christmas/fun.ts @@ -117,7 +117,7 @@ export class Christmasfun { return mydata } - static async payChristmas(payid, call: ApiCall) { + static async payChristmas(payid, call: any) { let _hd = await HuoDongFun.gethdList(call, 8) for (let index = 0; index < _hd.length; index++) { const hdinfo = _hd[index]; @@ -126,8 +126,8 @@ export class Christmasfun { let _mydata = await Christmasfun.getMyData(call, _hdid) if (_mydata.pay) continue await this.setMyData(call.uid, _hdid, { $set: { pay: true} }) - let _prize = hdinfo.data.zlpayprize - await PlayerFun.sendPrize(call, _prize); + // let _prize = hdinfo.data.zlpayprize + // await PlayerFun.sendPrize(call, _prize); } else{ const libaos = hdinfo.data.libao @@ -140,6 +140,12 @@ export class Christmasfun { if (_buyNum >= _tmp["buynum"]) continue _mydata.libao[lbid] = _buyNum + 1 this.setMyData(call.uid, _hdid, { $set: { libao: _mydata.libao} }) + let _select = _mydata.select[lbid] || {} + let _prize: atn[] = _tmp["basep"] + for (let key in _select) { + _prize.push(_tmp["dlz"][parseInt(key)][_select[key]]) + } + await PlayerFun.sendPrize(call, _prize); break } diff --git a/src/globalListener.ts b/src/globalListener.ts index 2c3aa37..1e81c29 100644 --- a/src/globalListener.ts +++ b/src/globalListener.ts @@ -177,8 +177,6 @@ export function addListener() { ActionLog.addRetainLog(player.uid, { key: 'pay', val: conf.payExp[0].n }); if (payId == G.gc.zhanling.payId) payZhanLing(player); - //圣诞节活动充值 - Christmasfun.payChristmas(payId, call); let payEmailConf = G.gc.payEmail[payId] as _gcType['payEmail']['caifutequan']; if (payEmailConf?.length > 0) { let sendEmailConfs = payEmailConf; diff --git a/src/public/pay.ts b/src/public/pay.ts index 43a0e58..61fef69 100644 --- a/src/public/pay.ts +++ b/src/public/pay.ts @@ -10,6 +10,7 @@ import {call, PlayerFun} from './player'; import {number} from "mathjs"; import {getGud} from './gud'; import {getConf as zmlbGetConf} from '../api_s2c/event/zhoumolibao/ApiOpen'; +import {Christmasfun} from "../api_s2c/event/christmas/fun"; async function checkPayIsActive(payId: string, logs: payLog[], payArgs) { let conf: any = await this.getConf(payId, payArgs); @@ -230,7 +231,8 @@ export class PayFun { let conf = await zmlbGetConf(call, {payId}) prize.push(...conf.prize) } - + //圣诞节活动充值 + await Christmasfun.payChristmas(payId, call); let isReplaceConf = await this.checkBuysAfterPay(uid, payId, conf, payArgs, player) if (isReplaceConf) { let prizePayId = `zuanshi_${conf.money}` @@ -239,7 +241,6 @@ export class PayFun { prize = [...conf.prize] } - await PlayerFun.sendPrize(call, prize); await PlayerFun.addAttr(call, conf.payExp); if (payId == 'G123SendGift') { From ec3d872390ec07b39c10f6875a7538c1abffed39 Mon Sep 17 00:00:00 2001 From: yushunrui <364203175@qq.com> Date: Wed, 20 Dec 2023 16:17:09 +0800 Subject: [PATCH 28/41] =?UTF-8?q?fix:=E5=9C=A3=E8=AF=9E=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E7=BA=A2=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api_s2c/hongdian/fun.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/api_s2c/hongdian/fun.ts b/src/api_s2c/hongdian/fun.ts index 4b58691..550b80b 100644 --- a/src/api_s2c/hongdian/fun.ts +++ b/src/api_s2c/hongdian/fun.ts @@ -364,6 +364,10 @@ export class HuoDongHongDianFun { // 检测 htype 6 七日登录活动红点 ishd = await this.qiridengluHongDian(call, element) } + if (element.htype == 8) { + // 检测 htype 8 圣诞活动红点 + ishd = await this.christmasHongDian(call, element) + } // 此活动有红点 if (ishd.show) { From 4e74b001b57849366601c354989de9ba2d005a34 Mon Sep 17 00:00:00 2001 From: yushunrui <364203175@qq.com> Date: Wed, 20 Dec 2023 16:25:22 +0800 Subject: [PATCH 29/41] =?UTF-8?q?fix:=E6=96=B0=E5=A2=9E=E5=9C=A3=E8=AF=9E?= =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E6=AF=8F=E6=97=A5=E6=B6=88=E8=80=97=E9=92=BB?= =?UTF-8?q?=E7=9F=B3=E4=BB=BB=E5=8A=A1=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/globalListener.ts | 2 ++ src/public/player.ts | 5 +++++ src/public/taskclass.ts | 11 ++++++++++- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/globalListener.ts b/src/globalListener.ts index 1e81c29..cb59b16 100644 --- a/src/globalListener.ts +++ b/src/globalListener.ts @@ -143,6 +143,8 @@ export type gEventType = { Class_task_154: (eventname, call, val, chkVal) => void; /**每日任务宝箱领取 */ Class_task_155: (eventname, call, val, chkVal) => void; + /**每日钻石消耗 */ + Class_task_156: (eventname, call, val, chkVal) => void; }; export function addListener() { diff --git a/src/public/player.ts b/src/public/player.ts index d8322dd..1eccfcd 100644 --- a/src/public/player.ts +++ b/src/public/player.ts @@ -169,6 +169,11 @@ export class PlayerFun { change[atn.t] = this.fixAttrLteZero(atn.t, await this.getAtnNum(call, atn) + atn.n); if (atn.t == 'rmbmoney') { this.changeAttrLog(call.conn.uid, change[atn.t], atn, call.conn.gud.rmbmoney) + // 扣除钻石时 + if (atn.n < 0) { + // 监听任务消耗任务 + G.emit("Class_task_156", 'Class_task_156', call, -atn.n, 0); + } } all.push(this.changeAttr(call.conn.uid, change)); all.push(this.upAttr(call, {...atn, n: change[atn.t]})); diff --git a/src/public/taskclass.ts b/src/public/taskclass.ts index 7271b4e..e18a05d 100644 --- a/src/public/taskclass.ts +++ b/src/public/taskclass.ts @@ -788,7 +788,7 @@ export module manager { isinc = 1 async initVal(call: ApiCall, con) { - return 1; + return 0; } } @@ -797,6 +797,15 @@ export module manager { stype = 155 isinc = 0 + async initVal(call: ApiCall, con) { + return 0; + } + } + // 第58个任务 每日钻石消耗 + export class Class_task_156 extends BaseClass { + stype = 156 + isinc = 1 + async initVal(call: ApiCall, con) { return 1; } From 5ec8b60e99c3e1fb7ab52d65fe9b40aa33ed4ce9 Mon Sep 17 00:00:00 2001 From: yushunrui <364203175@qq.com> Date: Wed, 20 Dec 2023 16:39:29 +0800 Subject: [PATCH 30/41] =?UTF-8?q?fix:=E6=96=B0=E5=A2=9E=E5=9C=A3=E8=AF=9E?= =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E7=AD=BE=E5=88=B0=E4=B9=9F=E5=8A=A0=E4=B8=8A?= =?UTF-8?q?=E7=BB=8F=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api_s2c/event/christmas/ApiQianDao.ts | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/api_s2c/event/christmas/ApiQianDao.ts b/src/api_s2c/event/christmas/ApiQianDao.ts index 5eb2830..0dba7b9 100644 --- a/src/api_s2c/event/christmas/ApiQianDao.ts +++ b/src/api_s2c/event/christmas/ApiQianDao.ts @@ -19,17 +19,23 @@ export default async function (call: ApiCall) { _mydata.qiandao.push(i) _prize = _prize.concat(_con[i]) } - if (!_prize){ // 没有奖励可以领取 return call.error('', { code: -1, message: globalThis.lng.yangchengmubiao_2 }) } - - let _setData = {} + let _addVal = 0 + // 懒得喊后台和前端修改了,直接取prize里面的对应的经验字段去添加zhanling经验 + for (const p of _prize) { + // 战令经验 + if (p.t == "shengdanExp") { + _addVal += p.n + } + } + _mydata["val"] += _addVal + _setData["val"] = _mydata.val _setData["qiandao"] = _mydata.qiandao await Christmasfun.setMyData(call.uid, call.req.hdid, { $set: _setData }) - await PlayerFun.sendPrize(call, _prize); let changedata = { mydata: _mydata, prize: _prize} // 推送红点 From 1d7b1a4f5806e754ba4b573bf3a7c836304a1c5c Mon Sep 17 00:00:00 2001 From: yushunrui <364203175@qq.com> Date: Wed, 20 Dec 2023 16:59:16 +0800 Subject: [PATCH 31/41] =?UTF-8?q?fix:=E5=9C=A3=E8=AF=9E=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E7=BA=A2=E7=82=B9=E6=8A=A5=E9=94=99=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api_s2c/hongdian/fun.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api_s2c/hongdian/fun.ts b/src/api_s2c/hongdian/fun.ts index 550b80b..3f3eeba 100644 --- a/src/api_s2c/hongdian/fun.ts +++ b/src/api_s2c/hongdian/fun.ts @@ -708,7 +708,7 @@ export class HuoDongHongDianFun { for (let indextask = 0; indextask < Object.keys(_tasks).length; indextask++) { const elementtask = Object.keys(_tasks)[indextask]; let _tmp = _tasks[elementtask]; - if (_tmp.pval <= (_mydata.taskval[elementtask] || 0) && !_mydata.taskfinsih.includes(elementtask)) { + if (_tmp.pval <= (_mydata.taskval[elementtask] || 0) && !_mydata.taskfinish.includes(elementtask)) { // 任务完成且没有领取 _res.show = true; return _res; From ad439d0b14cccb51ddd20cb62c41bb4b6485806f Mon Sep 17 00:00:00 2001 From: yushunrui <364203175@qq.com> Date: Wed, 20 Dec 2023 17:32:31 +0800 Subject: [PATCH 32/41] =?UTF-8?q?fix:=E5=9C=A3=E8=AF=9E=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E7=A4=BC=E5=8C=85=E6=94=B9=E6=88=90=E6=AF=8F=E6=97=A5=E9=87=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api_s2c/event/christmas/fun.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/api_s2c/event/christmas/fun.ts b/src/api_s2c/event/christmas/fun.ts index 9ecaa7f..9c1fb4f 100644 --- a/src/api_s2c/event/christmas/fun.ts +++ b/src/api_s2c/event/christmas/fun.ts @@ -113,7 +113,11 @@ export class Christmasfun { mydata.taskval = await this.getTaskVal(call, hdid) mydata.refresh = G.time mydata.gamenum = 0 - await this.setMyData(call.uid, hdid, { $set: { refresh: mydata.refresh, taskfinish: mydata.taskfinish, taskval: mydata.taskval, gamenum: mydata.gamenum} }) + mydata.libao = {} + await this.setMyData(call.uid, hdid, { $set: { refresh: mydata.refresh, taskfinish: mydata.taskfinish, + taskval: mydata.taskval, + gamenum: mydata.gamenum, + libao:mydata.libao} }) return mydata } From 48038d1b0778cefcf7dec06dc55596e9203ca181 Mon Sep 17 00:00:00 2001 From: yushunrui <364203175@qq.com> Date: Wed, 20 Dec 2023 17:47:37 +0800 Subject: [PATCH 33/41] =?UTF-8?q?fix:=E5=9C=A3=E8=AF=9E=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E6=96=B0=E5=A2=9Evip=E7=BB=8F=E9=AA=8C=E4=BB=BB=E5=8A=A1157?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api_s2c/event/christmas/fun.ts | 4 +++- src/globalListener.ts | 2 ++ src/public/player.ts | 4 ++++ src/public/taskclass.ts | 9 +++++++++ 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/api_s2c/event/christmas/fun.ts b/src/api_s2c/event/christmas/fun.ts index 9c1fb4f..b3e5fca 100644 --- a/src/api_s2c/event/christmas/fun.ts +++ b/src/api_s2c/event/christmas/fun.ts @@ -114,7 +114,9 @@ export class Christmasfun { mydata.refresh = G.time mydata.gamenum = 0 mydata.libao = {} - await this.setMyData(call.uid, hdid, { $set: { refresh: mydata.refresh, taskfinish: mydata.taskfinish, + await this.setMyData(call.uid, hdid, { $set: { + refresh: mydata.refresh, + taskfinish: mydata.taskfinish, taskval: mydata.taskval, gamenum: mydata.gamenum, libao:mydata.libao} }) diff --git a/src/globalListener.ts b/src/globalListener.ts index cb59b16..fc2c85b 100644 --- a/src/globalListener.ts +++ b/src/globalListener.ts @@ -145,6 +145,8 @@ export type gEventType = { Class_task_155: (eventname, call, val, chkVal) => void; /**每日钻石消耗 */ Class_task_156: (eventname, call, val, chkVal) => void; + /**每日获取vip经验 */ + Class_task_157: (eventname, call, val, chkVal) => void; }; export function addListener() { diff --git a/src/public/player.ts b/src/public/player.ts index 1eccfcd..df3e641 100644 --- a/src/public/player.ts +++ b/src/public/player.ts @@ -175,6 +175,10 @@ export class PlayerFun { G.emit("Class_task_156", 'Class_task_156', call, -atn.n, 0); } } + // 增加vip经验的任务监听 + if (atn.t == "payExp" && atn.n > 0) { + G.emit("Class_task_157", 'Class_task_157', call, atn.n, 0); + } all.push(this.changeAttr(call.conn.uid, change)); all.push(this.upAttr(call, {...atn, n: change[atn.t]})); //await this.changeAttr(call.conn.uid, change); diff --git a/src/public/taskclass.ts b/src/public/taskclass.ts index e18a05d..5bf3f67 100644 --- a/src/public/taskclass.ts +++ b/src/public/taskclass.ts @@ -810,6 +810,15 @@ export module manager { return 1; } } + // 第59个任务 获得vip经验 + export class Class_task_157 extends BaseClass { + stype = 157 + isinc = 1 + + async initVal(call: ApiCall, con) { + return 0; + } + } } From 05368fc0deb50c0c6e3d8a0bfc9aedef50614fe0 Mon Sep 17 00:00:00 2001 From: yushunrui <364203175@qq.com> Date: Wed, 20 Dec 2023 18:56:40 +0800 Subject: [PATCH 34/41] =?UTF-8?q?fix:=E5=9C=A3=E8=AF=9E=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BC=82=E6=AD=A5=E6=8C=89=E9=92=AE=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api_s2c/ApiSyncBtn.ts | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/api_s2c/ApiSyncBtn.ts b/src/api_s2c/ApiSyncBtn.ts index 68065df..b420eb8 100644 --- a/src/api_s2c/ApiSyncBtn.ts +++ b/src/api_s2c/ApiSyncBtn.ts @@ -39,15 +39,14 @@ export default async function (call: ApiCall) { } break; case 'christmas': - //领完消失 - if (!data[key]) { - let _hdList = await HuoDongFun.gethdList(call, 8) - if (_hdList) { - // 无此活动 - data[key] = {active: true}; - change[key] = data[key]; - } - } + //领完消失 + change[key] = {active: false}; + let _hdList = await HuoDongFun.gethdList(call, 8) + if (_hdList) { + // 无此活动 + data[key] = {active: true}; + change[key] = data[key]; + } break; case 'dayjijin': case 'dengjijijin': From f1a4daece329e4bd5f71bb502ac7ef4cff8e159d Mon Sep 17 00:00:00 2001 From: yushunrui <364203175@qq.com> Date: Wed, 20 Dec 2023 19:03:41 +0800 Subject: [PATCH 35/41] =?UTF-8?q?fix:=E5=9C=A3=E8=AF=9E=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BC=82=E6=AD=A5=E6=8C=89=E9=92=AE=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api_s2c/ApiSyncBtn.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/api_s2c/ApiSyncBtn.ts b/src/api_s2c/ApiSyncBtn.ts index b420eb8..062ff63 100644 --- a/src/api_s2c/ApiSyncBtn.ts +++ b/src/api_s2c/ApiSyncBtn.ts @@ -40,7 +40,8 @@ export default async function (call: ApiCall) { break; case 'christmas': //领完消失 - change[key] = {active: false}; + data[key] = {active: false}; + change[key] = data[key]; let _hdList = await HuoDongFun.gethdList(call, 8) if (_hdList) { // 无此活动 From 4690254453cd09ad0d9a5b764948cd9fe67b7b87 Mon Sep 17 00:00:00 2001 From: yushunrui <364203175@qq.com> Date: Mon, 25 Dec 2023 19:30:55 +0800 Subject: [PATCH 36/41] =?UTF-8?q?fix:=E5=9C=A3=E8=AF=9E=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BC=82=E6=AD=A5=E6=8C=89=E9=92=AE=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api_s2c/ApiSyncBtn.ts | 2 +- src/api_s2c/event/christmas/ApiLiBao.ts | 1 - src/api_s2c/event/christmas/ApiQianDao.ts | 2 +- src/api_s2c/event/christmas/ApiZhanLingRec.ts | 2 +- src/public/huodongfun.ts | 1 - 5 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/api_s2c/ApiSyncBtn.ts b/src/api_s2c/ApiSyncBtn.ts index 062ff63..959eb6e 100644 --- a/src/api_s2c/ApiSyncBtn.ts +++ b/src/api_s2c/ApiSyncBtn.ts @@ -43,7 +43,7 @@ export default async function (call: ApiCall) { data[key] = {active: false}; change[key] = data[key]; let _hdList = await HuoDongFun.gethdList(call, 8) - if (_hdList) { + if (_hdList.length > 0) { // 无此活动 data[key] = {active: true}; change[key] = data[key]; diff --git a/src/api_s2c/event/christmas/ApiLiBao.ts b/src/api_s2c/event/christmas/ApiLiBao.ts index ad070db..cb87f50 100644 --- a/src/api_s2c/event/christmas/ApiLiBao.ts +++ b/src/api_s2c/event/christmas/ApiLiBao.ts @@ -27,7 +27,6 @@ export default async function (call: ApiCall) { // 判断是否选择奖励了 return call.error('', { code: -3, message: globalThis.lng.yangchengmubiao_2 }) } - let _prize: atn[] = _con.basep for (let key in _select) { diff --git a/src/api_s2c/event/christmas/ApiQianDao.ts b/src/api_s2c/event/christmas/ApiQianDao.ts index 0dba7b9..06ac114 100644 --- a/src/api_s2c/event/christmas/ApiQianDao.ts +++ b/src/api_s2c/event/christmas/ApiQianDao.ts @@ -19,7 +19,7 @@ export default async function (call: ApiCall) { _mydata.qiandao.push(i) _prize = _prize.concat(_con[i]) } - if (!_prize){ + if (_prize.length <= 0){ // 没有奖励可以领取 return call.error('', { code: -1, message: globalThis.lng.yangchengmubiao_2 }) } diff --git a/src/api_s2c/event/christmas/ApiZhanLingRec.ts b/src/api_s2c/event/christmas/ApiZhanLingRec.ts index 42a460f..a95ff7d 100644 --- a/src/api_s2c/event/christmas/ApiZhanLingRec.ts +++ b/src/api_s2c/event/christmas/ApiZhanLingRec.ts @@ -30,7 +30,7 @@ export default async function (call: ApiCall) { _mydata.gj.push(index) } - if (!_prize) { + if (_prize.length <= 0) { // 没有奖励可以领取 return call.error('', { code: -1, message: globalThis.lng.yangchengmubiao_2 }) } diff --git a/src/public/huodongfun.ts b/src/public/huodongfun.ts index 99ed2a1..44d16cc 100644 --- a/src/public/huodongfun.ts +++ b/src/public/huodongfun.ts @@ -54,7 +54,6 @@ export class HuoDongFun { if (htype != 0) _where["htype"] = htype let _res = await this.catAllHD(_where) - let result = [] for (let index = 0; index < _res.length; index++) { const element = _res[index]; From 720d89e988df29af8d40be55e3c8be4816d315dd Mon Sep 17 00:00:00 2001 From: dy Date: Thu, 21 Dec 2023 17:33:31 +0800 Subject: [PATCH 37/41] =?UTF-8?q?=E4=B8=BB=E8=A7=92=E7=9A=AE=E8=82=A4?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/shared/public/hero.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/shared/public/hero.ts b/src/shared/public/hero.ts index 03a3c99..94af102 100644 --- a/src/shared/public/hero.ts +++ b/src/shared/public/hero.ts @@ -70,6 +70,14 @@ export class HeroShared { } } } + + if (otherBuff.model) { + for (let [id, item] of Object.entries(otherBuff.model)) { + if (item.time == -1 || item.time > G.time) { + PublicShared.mergeProperty(buff, G.gc.playerModel[id].buff); + } + } + } } //计算装备属性 From 50c52556e059a06eacf0c92e94cc450d6e59fdb9 Mon Sep 17 00:00:00 2001 From: dy Date: Thu, 21 Dec 2023 23:40:41 +0800 Subject: [PATCH 38/41] fix pay --- src/fix_patch/patch_hdinfo_20231221.ts | 27 ++++++++++++++++++++++++++ src/public/pay.ts | 1 + 2 files changed, 28 insertions(+) create mode 100644 src/fix_patch/patch_hdinfo_20231221.ts diff --git a/src/fix_patch/patch_hdinfo_20231221.ts b/src/fix_patch/patch_hdinfo_20231221.ts new file mode 100644 index 0000000..22afa3b --- /dev/null +++ b/src/fix_patch/patch_hdinfo_20231221.ts @@ -0,0 +1,27 @@ +import {ctor} from "../global"; +import {initMongoDB} from "../setMongodb"; + +async function start() { + await initMongoDB() + + // 刷新活动配置 + console.log(`删除错误活动数据开始...`); + + + await G.mongodb.collection("hdinfo").deleteOne({hdid: 8000}) + + console.log(`删除错误活动数据完成...`); +} + +ctor(); +start().then(() => { + let s = 0; + setInterval(() => { + s += 1; + console.log(new Date().format("MM-dd hh:mm:ss")); + if (s >= 3) process.exit(1); + }, 1000) + console.log("逻辑执行完成...等待退出!!!"); +}); + + diff --git a/src/public/pay.ts b/src/public/pay.ts index 61fef69..ec4ea08 100644 --- a/src/public/pay.ts +++ b/src/public/pay.ts @@ -178,6 +178,7 @@ export class PayFun { if (payed) { console.log(uid, payId, payArgs, orderNo); console.log('订单号已存在'); + return; } } From c6953882084e4cb4397ecd06c076182e88149ab2 Mon Sep 17 00:00:00 2001 From: dy Date: Thu, 21 Dec 2023 23:51:03 +0800 Subject: [PATCH 39/41] fix pay --- src/public/pay.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/public/pay.ts b/src/public/pay.ts index ec4ea08..e752ce8 100644 --- a/src/public/pay.ts +++ b/src/public/pay.ts @@ -233,7 +233,12 @@ export class PayFun { prize.push(...conf.prize) } //圣诞节活动充值 - await Christmasfun.payChristmas(payId, call); + try{ + await Christmasfun.payChristmas(payId, call); + }catch (e) { + console.log("Christmasfun.payChristmas Error",e); + } + let isReplaceConf = await this.checkBuysAfterPay(uid, payId, conf, payArgs, player) if (isReplaceConf) { let prizePayId = `zuanshi_${conf.money}` From ba2c49868f653cf8763a89e26a419d3550748b56 Mon Sep 17 00:00:00 2001 From: dy Date: Fri, 22 Dec 2023 00:22:54 +0800 Subject: [PATCH 40/41] fix pay --- src/public/pay.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/public/pay.ts b/src/public/pay.ts index e752ce8..b1302b5 100644 --- a/src/public/pay.ts +++ b/src/public/pay.ts @@ -244,7 +244,7 @@ export class PayFun { let prizePayId = `zuanshi_${conf.money}` payArgs.toPrizePayId = prizePayId conf = this.replacePrizeToChongzhi(prizePayId, conf) - prize = [...conf.prize] + prize = conf.prize; } await PlayerFun.sendPrize(call, prize); @@ -292,7 +292,7 @@ export class PayFun { * @param payId * @param conf */ - static async replacePrizeToChongzhi(payId, conf) { + static replacePrizeToChongzhi(payId, conf) { return { id: payId, money: conf.money, From 445cd6054886f498fdb0eada5f0fdde20462c4db Mon Sep 17 00:00:00 2001 From: dy Date: Fri, 22 Dec 2023 14:07:55 +0800 Subject: [PATCH 41/41] =?UTF-8?q?fix=20bug=20=20=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E3=80=81=E8=8B=B1=E9=9B=84=E4=B8=8A=E9=98=B5bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api_s2c/hero/ApiChangePos.ts | 10 ++++++++++ src/public/pay.ts | 4 ++++ 2 files changed, 14 insertions(+) diff --git a/src/api_s2c/hero/ApiChangePos.ts b/src/api_s2c/hero/ApiChangePos.ts index 1ec5316..ad66394 100644 --- a/src/api_s2c/hero/ApiChangePos.ts +++ b/src/api_s2c/hero/ApiChangePos.ts @@ -57,6 +57,8 @@ export default async function (call: ApiCall) { } fightHeros.push(hero.heroId.toString()); + fightHeros = await checkFightHerosAndFix(call.uid, heroPos, fightHeros) + Wjjl.setVal(call.uid, 'fight_hero_colour_4', fightHeros.map(id => G.gc.hero[id].colour).filter(c => c >= 4).length); let checkMatrixPos = HeroFun.checkMatrixPosAndChange(call, heroPos, matrixPos) @@ -65,4 +67,12 @@ export default async function (call: ApiCall) { call.conn.refreshPower(); kfjsFun.setHeroLvCount(call) +} + +async function checkFightHerosAndFix(uid, heroPos, fightHeros) { + if (fightHeros.length == R.values(heroPos).length) { + return fightHeros + } + let heros = await HeroFun.getHeros({uid}, R.values(heroPos)); + return heros.map(i => i.heroId) } \ No newline at end of file diff --git a/src/public/pay.ts b/src/public/pay.ts index b1302b5..1516859 100644 --- a/src/public/pay.ts +++ b/src/public/pay.ts @@ -181,6 +181,10 @@ export class PayFun { return; } } + /** + * 不要轻易改动这个方法,不允许集成业务逻辑在内部 + * 如果有业务逻辑通过事件驱动,在支付成功后emit事件 + */ let conf: any = await this.getConf(payId, payArgs);