Commit cf7c4dc5 by chenjinjing

no message

parent baa4449d
{
"name": "gameserver",
"version": "1.0.0",
"lockfileVersion": 1,
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "gameserver",
"version": "1.0.0",
"license": "ISC",
"dependencies": {
"@alicloud/sms-sdk": "^1.1.6",
"@types/node": "^10.12.18",
"axios": "^1.9.0",
"compression": "^1.7.4",
"express": "^4.17.1",
"express-async-handler": "^1.1.4",
"express-history-api-fallback": "^2.2.1",
"formidable": "^1.2.1",
"log4js": "^6.9.1",
"lru-cache": "^4.1.5",
"md5": "^2.2.1",
"moment": "^2.24.0",
"mongoose": "^6.2.3",
"node-cache": "^5.1.2",
"node-schedule": "^2.1.1",
"node-xlsx": "^0.16.1",
"nodemailer": "^6.1.1",
"pyfl": "^1.1.4",
"request": "2.88.2",
"svg-captcha": "^1.3.12",
"xml2js": "^0.4.23"
}
},
"node_modules/@alicloud/dybaseapi": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/@alicloud/dybaseapi/-/dybaseapi-1.0.0.tgz",
"integrity": "sha512-4KEDgqES7IL60T/TWGSkLQkN6BYeHEw8smnPgac2J2MTES5v1ieCWvbLSuUUWi5SAXi7cydKoD4HUOmX7xwM+A==",
"dependencies": {
"@alicloud/pop-core": "^1.3.3"
}
},
"node_modules/@alicloud/dysmsapi-2017-05-25": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/@alicloud/dysmsapi-2017-05-25/-/dysmsapi-2017-05-25-1.0.1.tgz",
"integrity": "sha512-CVX/Yl9ntwkAOHAZa3j2Y/Io+SlbETw/ILv4UPIDCEIQm/N0EEcN2OXF8cWCUvHeu7OgnFWZKhdJY5GsbjWHDA==",
"dependencies": {
"@alicloud/pop-core": "^1.5.1"
}
},
"node_modules/@alicloud/mns": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/@alicloud/mns/-/mns-1.0.0.tgz",
"integrity": "sha512-SUJYM8+x3iPy6thIy5Wa/5lw7+RodeDDIPcI3QQ3bZPNCSq+yEC3jMtfVlS3vxGPq+dGjAysI9RGeM7NByeHlw==",
"dependencies": {
"debug": "^2.6.3",
"httpx": "^2.1.1",
"kitx": "^1.2.0",
"xml2js": "^0.4.17"
}
},
"node_modules/@alicloud/mns/node_modules/debug": {
"version": "2.6.9",
"resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dependencies": {
"ms": "2.0.0"
}
},
"node_modules/@alicloud/mns/node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/@alicloud/pop-core": {
"version": "1.8.0",
"resolved": "https://registry.npmmirror.com/@alicloud/pop-core/-/pop-core-1.8.0.tgz",
"integrity": "sha512-ef6vIVigtr9n8Lw6Ld2GZ9jVUD0+ReHviaQaMqZDPI2HwdpVvrq1Rvn2tBnFToe0tdTpovz9N7XFSf/C274OtA==",
"dependencies": {
"debug": "^3.1.0",
"httpx": "^2.1.2",
"json-bigint": "^1.0.0",
"kitx": "^1.2.1",
"xml2js": "^0.5.0"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/@alicloud/pop-core/node_modules/xml2js": {
"version": "0.5.0",
"resolved": "https://registry.npmmirror.com/xml2js/-/xml2js-0.5.0.tgz",
"integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==",
"dependencies": {
"sax": ">=0.6.0",
"xmlbuilder": "~11.0.0"
},
"engines": {
"node": ">=4.0.0"
}
},
"node_modules/@alicloud/sms-sdk": {
"version": "1.1.6",
"resolved": "https://registry.npmmirror.com/@alicloud/sms-sdk/-/sms-sdk-1.1.6.tgz",
"integrity": "sha512-jW5ROjpAtOrNFkZSXb8geJWzkgJ9ggnPx+ve+72eatu78/vad2emdZjRx43/xPqqhA9djRoU3xHQt2xFODiaMQ==",
"dependencies": {
"@alicloud/dybaseapi": "^1.0.0",
"@alicloud/dysmsapi-2017-05-25": "^1.0.1",
"@alicloud/mns": "^1.0.0-beta6",
"babel-runtime": "^6.26.0"
}
},
"node_modules/@babel/runtime": {
"version": "7.26.0",
"resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.26.0.tgz",
"integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==",
"dependencies": {
"regenerator-runtime": "^0.14.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/runtime/node_modules/regenerator-runtime": {
"version": "0.14.1",
"resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
"integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
},
"node_modules/@types/node": {
"version": "10.17.55",
"resolved": "https://registry.npmmirror.com/@types/node/-/node-10.17.55.tgz",
"integrity": "sha512-koZJ89uLZufDvToeWO5BrC4CR4OUfHnUz2qoPs/daQH6qq3IN62QFxCTZ+bKaCE0xaoCAJYE4AXre8AbghCrhg=="
},
"node_modules/@types/webidl-conversions": {
"version": "7.0.3",
"resolved": "https://registry.npmmirror.com/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz",
"integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA=="
},
"node_modules/@types/whatwg-url": {
"version": "8.2.2",
"resolved": "https://registry.npmmirror.com/@types/whatwg-url/-/whatwg-url-8.2.2.tgz",
"integrity": "sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==",
"dependencies": {
"@types/node": "*",
"@types/webidl-conversions": "*"
}
},
"node_modules/accepts": {
"version": "1.3.8",
"resolved": "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz",
"integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
"dependencies": {
"mime-types": "~2.1.34",
"negotiator": "0.6.3"
},
"engines": {
"node": ">= 0.6"
}
},
"node_modules/adler-32": {
"version": "1.2.0",
"resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.2.0.tgz",
"integrity": "sha512-/vUqU/UY4MVeFsg+SsK6c+/05RZXIHZMGJA+PX5JyWI0ZRcBpupnRuPLU/NXXoFwMYCPCoxIfElM2eS+DUXCqQ==",
"dependencies": {
"exit-on-epipe": "~1.0.1",
"printj": "~1.1.0"
},
"bin": {
"adler32": "bin/adler32.njs"
},
"engines": {
"node": ">=0.8"
}
},
"node_modules/ajv": {
"version": "6.12.6",
"resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.4.1",
"uri-js": "^4.2.2"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/epoberezkin"
}
},
"node_modules/array-flatten": {
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/array-flatten/-/array-flatten-1.1.1.tgz",
"integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
},
"node_modules/asn1": {
"version": "0.2.6",
"resolved": "https://registry.npmmirror.com/asn1/-/asn1-0.2.6.tgz",
"integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
"dependencies": {
"safer-buffer": "~2.1.0"
}
},
"node_modules/assert-plus": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/assert-plus/-/assert-plus-1.0.0.tgz",
"integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
"engines": {
"node": ">=0.8"
}
},
"node_modules/asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
},
"node_modules/aws-sign2": {
"version": "0.7.0",
"resolved": "https://registry.npmmirror.com/aws-sign2/-/aws-sign2-0.7.0.tgz",
"integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==",
"engines": {
"node": "*"
}
},
"node_modules/aws4": {
"version": "1.13.2",
"resolved": "https://registry.npmmirror.com/aws4/-/aws4-1.13.2.tgz",
"integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw=="
},
"node_modules/axios": {
"version": "1.9.0",
"resolved": "https://registry.npmmirror.com/axios/-/axios-1.9.0.tgz",
"integrity": "sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==",
"dependencies": {
"follow-redirects": "^1.15.6",
"form-data": "^4.0.0",
"proxy-from-env": "^1.1.0"
}
},
"node_modules/axios/node_modules/form-data": {
"version": "4.0.2",
"resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.2.tgz",
"integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==",
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
"es-set-tostringtag": "^2.1.0",
"mime-types": "^2.1.12"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/babel-runtime": {
"version": "6.26.0",
"resolved": "https://registry.npmmirror.com/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==",
"dependencies": {
"core-js": "^2.4.0",
"regenerator-runtime": "^0.11.0"
}
},
"node_modules/base64-js": {
"version": "1.5.1",
"resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz",
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
]
},
"node_modules/bcrypt-pbkdf": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
"integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
"dependencies": {
"tweetnacl": "^0.14.3"
}
},
"node_modules/bignumber.js": {
"version": "9.1.2",
"resolved": "https://registry.npmmirror.com/bignumber.js/-/bignumber.js-9.1.2.tgz",
"integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==",
"engines": {
"node": "*"
}
},
"node_modules/body-parser": {
"version": "1.19.0",
"resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-1.19.0.tgz",
"integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
"dependencies": {
"bytes": "3.1.0",
"content-type": "~1.0.4",
"debug": "2.6.9",
"depd": "~1.1.2",
"http-errors": "1.7.2",
"iconv-lite": "0.4.24",
"on-finished": "~2.3.0",
"qs": "6.7.0",
"raw-body": "2.4.0",
"type-is": "~1.6.17"
},
"engines": {
"node": ">= 0.8"
}
},
"node_modules/body-parser/node_modules/bytes": {
"version": "3.1.0",
"resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.0.tgz",
"integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/body-parser/node_modules/debug": {
"version": "2.6.9",
"resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dependencies": {
"ms": "2.0.0"
}
},
"node_modules/body-parser/node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/bson": {
"version": "4.7.2",
"resolved": "https://registry.npmmirror.com/bson/-/bson-4.7.2.tgz",
"integrity": "sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==",
"dependencies": {
"buffer": "^5.6.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/buffer": {
"version": "5.7.1",
"resolved": "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz",
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
],
"dependencies": {
"base64-js": "^1.3.1",
"ieee754": "^1.1.13"
}
},
"node_modules/buffer-from": {
"version": "1.1.2",
"resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz",
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
},
"node_modules/bytes": {
"version": "3.0.0",
"resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.0.0.tgz",
"integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/call-bind-apply-helpers": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
"integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
"dependencies": {
"es-errors": "^1.3.0",
"function-bind": "^1.1.2"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/caseless": {
"version": "0.12.0",
"resolved": "https://registry.npmmirror.com/caseless/-/caseless-0.12.0.tgz",
"integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw=="
},
"node_modules/cfb": {
"version": "1.2.2",
"resolved": "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz",
"integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==",
"dependencies": {
"adler-32": "~1.3.0",
"crc-32": "~1.2.0"
},
"engines": {
"node": ">=0.8"
}
},
"node_modules/cfb/node_modules/adler-32": {
"version": "1.3.1",
"resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz",
"integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==",
"engines": {
"node": ">=0.8"
}
},
"node_modules/charenc": {
"version": "0.0.2",
"resolved": "https://registry.npmmirror.com/charenc/-/charenc-0.0.2.tgz",
"integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==",
"engines": {
"node": "*"
}
},
"node_modules/clone": {
"version": "2.1.2",
"resolved": "https://registry.npmmirror.com/clone/-/clone-2.1.2.tgz",
"integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==",
"engines": {
"node": ">=0.8"
}
},
"node_modules/codepage": {
"version": "1.14.0",
"resolved": "https://registry.npmmirror.com/codepage/-/codepage-1.14.0.tgz",
"integrity": "sha512-iz3zJLhlrg37/gYRWgEPkaFTtzmnEv1h+r7NgZum2lFElYQPi0/5bnmuDfODHxfp0INEfnRqyfyeIJDbb7ahRw==",
"dependencies": {
"commander": "~2.14.1",
"exit-on-epipe": "~1.0.1"
},
"bin": {
"codepage": "bin/codepage.njs"
},
"engines": {
"node": ">=0.8"
}
},
"node_modules/codepage/node_modules/commander": {
"version": "2.14.1",
"resolved": "https://registry.npmmirror.com/commander/-/commander-2.14.1.tgz",
"integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw=="
},
"node_modules/combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"dependencies": {
"delayed-stream": "~1.0.0"
},
"engines": {
"node": ">= 0.8"
}
},
"node_modules/commander": {
"version": "2.17.1",
"resolved": "https://registry.npmmirror.com/commander/-/commander-2.17.1.tgz",
"integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg=="
},
"node_modules/compressible": {
"version": "2.0.18",
"resolved": "https://registry.npmmirror.com/compressible/-/compressible-2.0.18.tgz",
"integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
"dependencies": {
"mime-db": ">= 1.43.0 < 2"
},
"engines": {
"node": ">= 0.6"
}
},
"node_modules/compression": {
"version": "1.7.4",
"resolved": "https://registry.npmmirror.com/compression/-/compression-1.7.4.tgz",
"integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
"dependencies": {
"accepts": "~1.3.5",
"bytes": "3.0.0",
"compressible": "~2.0.16",
"debug": "2.6.9",
"on-headers": "~1.0.2",
"safe-buffer": "5.1.2",
"vary": "~1.1.2"
},
"engines": {
"node": ">= 0.8.0"
}
},
"node_modules/compression/node_modules/debug": {
"version": "2.6.9",
"resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dependencies": {
"ms": "2.0.0"
}
},
"node_modules/compression/node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/content-disposition": {
"version": "0.5.3",
"resolved": "https://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.3.tgz",
"integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
"dependencies": {
"safe-buffer": "5.1.2"
},
"engines": {
"node": ">= 0.6"
}
},
"node_modules/content-type": {
"version": "1.0.5",
"resolved": "https://registry.npmmirror.com/content-type/-/content-type-1.0.5.tgz",
"integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/cookie": {
"version": "0.4.0",
"resolved": "https://registry.npmmirror.com/cookie/-/cookie-0.4.0.tgz",
"integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/cookie-signature": {
"version": "1.0.6",
"resolved": "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz",
"integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
},
"node_modules/core-js": {
"version": "2.6.12",
"resolved": "https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz",
"integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==",
"deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.",
"hasInstallScript": true
},
"node_modules/core-util-is": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ=="
},
"node_modules/crc-32": {
"version": "1.2.2",
"resolved": "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz",
"integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==",
"bin": {
"crc32": "bin/crc32.njs"
},
"engines": {
"node": ">=0.8"
}
},
"node_modules/cron-parser": {
"version": "4.9.0",
"resolved": "https://registry.npmmirror.com/cron-parser/-/cron-parser-4.9.0.tgz",
"integrity": "sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==",
"dependencies": {
"luxon": "^3.2.1"
},
"engines": {
"node": ">=12.0.0"
}
},
"node_modules/crypt": {
"version": "0.0.2",
"resolved": "https://registry.npmmirror.com/crypt/-/crypt-0.0.2.tgz",
"integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==",
"engines": {
"node": "*"
}
},
"node_modules/dashdash": {
"version": "1.14.1",
"resolved": "https://registry.npmmirror.com/dashdash/-/dashdash-1.14.1.tgz",
"integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
"dependencies": {
"assert-plus": "^1.0.0"
},
"engines": {
"node": ">=0.10"
}
},
"node_modules/date-format": {
"version": "4.0.14",
"resolved": "https://registry.npmmirror.com/date-format/-/date-format-4.0.14.tgz",
"integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==",
"engines": {
"node": ">=4.0"
}
},
"node_modules/debug": {
"version": "3.2.7",
"resolved": "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz",
"integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dependencies": {
"ms": "^2.1.1"
}
},
"node_modules/delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/denque": {
"version": "2.1.0",
"resolved": "https://registry.npmmirror.com/denque/-/denque-2.1.0.tgz",
"integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==",
"engines": {
"node": ">=0.10"
}
},
"node_modules/depd": {
"version": "1.1.2",
"resolved": "https://registry.npmmirror.com/depd/-/depd-1.1.2.tgz",
"integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/destroy": {
"version": "1.0.4",
"resolved": "https://registry.npmmirror.com/destroy/-/destroy-1.0.4.tgz",
"integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg=="
},
"node_modules/dunder-proto": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz",
"integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
"dependencies": {
"call-bind-apply-helpers": "^1.0.1",
"es-errors": "^1.3.0",
"gopd": "^1.2.0"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/ecc-jsbn": {
"version": "0.1.2",
"resolved": "https://registry.npmmirror.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
"integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
"dependencies": {
"jsbn": "~0.1.0",
"safer-buffer": "^2.1.0"
}
},
"node_modules/ecc-jsbn/node_modules/jsbn": {
"version": "0.1.1",
"resolved": "https://registry.npmmirror.com/jsbn/-/jsbn-0.1.1.tgz",
"integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg=="
},
"node_modules/ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz",
"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
},
"node_modules/encodeurl": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz",
"integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/es-define-property": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz",
"integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/es-errors": {
"version": "1.3.0",
"resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz",
"integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/es-object-atoms": {
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
"integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
"dependencies": {
"es-errors": "^1.3.0"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/es-set-tostringtag": {
"version": "2.1.0",
"resolved": "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
"integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
"dependencies": {
"es-errors": "^1.3.0",
"get-intrinsic": "^1.2.6",
"has-tostringtag": "^1.0.2",
"hasown": "^2.0.2"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz",
"integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
},
"node_modules/etag": {
"version": "1.8.1",
"resolved": "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz",
"integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/exit-on-epipe": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz",
"integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==",
"engines": {
"node": ">=0.8"
}
},
"node_modules/express": {
"version": "4.17.1",
"resolved": "https://registry.npmmirror.com/express/-/express-4.17.1.tgz",
"integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
"dependencies": {
"accepts": "~1.3.7",
"array-flatten": "1.1.1",
"body-parser": "1.19.0",
"content-disposition": "0.5.3",
"content-type": "~1.0.4",
"cookie": "0.4.0",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
"depd": "~1.1.2",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
"finalhandler": "~1.1.2",
"fresh": "0.5.2",
"merge-descriptors": "1.0.1",
"methods": "~1.1.2",
"on-finished": "~2.3.0",
"parseurl": "~1.3.3",
"path-to-regexp": "0.1.7",
"proxy-addr": "~2.0.5",
"qs": "6.7.0",
"range-parser": "~1.2.1",
"safe-buffer": "5.1.2",
"send": "0.17.1",
"serve-static": "1.14.1",
"setprototypeof": "1.1.1",
"statuses": "~1.5.0",
"type-is": "~1.6.18",
"utils-merge": "1.0.1",
"vary": "~1.1.2"
},
"engines": {
"node": ">= 0.10.0"
}
},
"node_modules/express-async-handler": {
"version": "1.1.4",
"resolved": "https://registry.npmmirror.com/express-async-handler/-/express-async-handler-1.1.4.tgz",
"integrity": "sha512-HdmbVF4V4w1q/iz++RV7bUxIeepTukWewiJGkoCKQMtvPF11MLTa7It9PRc/reysXXZSEyD4Pthchju+IUbMiQ=="
},
"node_modules/express-history-api-fallback": {
"version": "2.2.1",
"resolved": "https://registry.npmmirror.com/express-history-api-fallback/-/express-history-api-fallback-2.2.1.tgz",
"integrity": "sha512-swxwm3aP8vrOOvlzOdZvHlSZtJGwHKaY94J6AkrAgCTmcbko3IRwbkhLv2wKV1WeZhjxX58aLMpP3atDBnKuZg=="
},
"node_modules/express/node_modules/debug": {
"version": "2.6.9",
"resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dependencies": {
"ms": "2.0.0"
}
},
"node_modules/express/node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/extend": {
"version": "3.0.2",
"resolved": "https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz",
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
},
"node_modules/extsprintf": {
"version": "1.3.0",
"resolved": "https://registry.npmmirror.com/extsprintf/-/extsprintf-1.3.0.tgz",
"integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==",
"engines": [
"node >=0.6.0"
]
},
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
},
"node_modules/fast-json-stable-stringify": {
"version": "2.1.0",
"resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
},
"node_modules/fflate": {
"version": "0.3.11",
"resolved": "https://registry.npmmirror.com/fflate/-/fflate-0.3.11.tgz",
"integrity": "sha512-Rr5QlUeGN1mbOHlaqcSYMKVpPbgLy0AWT/W0EHxA6NGI12yO1jpoui2zBBvU2G824ltM6Ut8BFgfHSBGfkmS0A=="
},
"node_modules/finalhandler": {
"version": "1.1.2",
"resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.1.2.tgz",
"integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
"dependencies": {
"debug": "2.6.9",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"on-finished": "~2.3.0",
"parseurl": "~1.3.3",
"statuses": "~1.5.0",
"unpipe": "~1.0.0"
},
"engines": {
"node": ">= 0.8"
}
},
"node_modules/finalhandler/node_modules/debug": {
"version": "2.6.9",
"resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dependencies": {
"ms": "2.0.0"
}
},
"node_modules/finalhandler/node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/flatted": {
"version": "3.3.2",
"resolved": "https://registry.npmmirror.com/flatted/-/flatted-3.3.2.tgz",
"integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA=="
},
"node_modules/follow-redirects": {
"version": "1.15.9",
"resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.9.tgz",
"integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==",
"funding": [
{
"type": "individual",
"url": "https://github.com/sponsors/RubenVerborgh"
}
],
"engines": {
"node": ">=4.0"
},
"peerDependenciesMeta": {
"debug": {
"optional": true
}
}
},
"node_modules/forever-agent": {
"version": "0.6.1",
"resolved": "https://registry.npmmirror.com/forever-agent/-/forever-agent-0.6.1.tgz",
"integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
"engines": {
"node": "*"
}
},
"node_modules/form-data": {
"version": "2.3.3",
"resolved": "https://registry.npmmirror.com/form-data/-/form-data-2.3.3.tgz",
"integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.6",
"mime-types": "^2.1.12"
},
"engines": {
"node": ">= 0.12"
}
},
"node_modules/formidable": {
"version": "1.2.2",
"resolved": "https://registry.npmmirror.com/formidable/-/formidable-1.2.2.tgz",
"integrity": "sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q==",
"deprecated": "Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau",
"funding": {
"url": "https://ko-fi.com/tunnckoCore/commissions"
}
},
"node_modules/forwarded": {
"version": "0.2.0",
"resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz",
"integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/frac": {
"version": "1.1.2",
"resolved": "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz",
"integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==",
"engines": {
"node": ">=0.8"
}
},
"node_modules/fresh": {
"version": "0.5.2",
"resolved": "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz",
"integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/fs-extra": {
"version": "8.1.0",
"resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz",
"integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^4.0.0",
"universalify": "^0.1.0"
},
"engines": {
"node": ">=6 <7 || >=8"
}
},
"node_modules/function-bind": {
"version": "1.1.2",
"resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz",
"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/get-intrinsic": {
"version": "1.3.0",
"resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
"integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
"dependencies": {
"call-bind-apply-helpers": "^1.0.2",
"es-define-property": "^1.0.1",
"es-errors": "^1.3.0",
"es-object-atoms": "^1.1.1",
"function-bind": "^1.1.2",
"get-proto": "^1.0.1",
"gopd": "^1.2.0",
"has-symbols": "^1.1.0",
"hasown": "^2.0.2",
"math-intrinsics": "^1.1.0"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/get-proto": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz",
"integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
"dependencies": {
"dunder-proto": "^1.0.1",
"es-object-atoms": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/getpass": {
"version": "0.1.7",
"resolved": "https://registry.npmmirror.com/getpass/-/getpass-0.1.7.tgz",
"integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
"dependencies": {
"assert-plus": "^1.0.0"
}
},
"node_modules/gopd": {
"version": "1.2.0",
"resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz",
"integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/graceful-fs": {
"version": "4.2.11",
"resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz",
"integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
},
"node_modules/har-schema": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/har-schema/-/har-schema-2.0.0.tgz",
"integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==",
"engines": {
"node": ">=4"
}
},
"node_modules/har-validator": {
"version": "5.1.5",
"resolved": "https://registry.npmmirror.com/har-validator/-/har-validator-5.1.5.tgz",
"integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
"deprecated": "this library is no longer supported",
"dependencies": {
"ajv": "^6.12.3",
"har-schema": "^2.0.0"
},
"engines": {
"node": ">=6"
}
},
"node_modules/has-symbols": {
"version": "1.1.0",
"resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz",
"integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/has-tostringtag": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
"integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
"dependencies": {
"has-symbols": "^1.0.3"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/hasown": {
"version": "2.0.2",
"resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz",
"integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
"dependencies": {
"function-bind": "^1.1.2"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/http-errors": {
"version": "1.7.2",
"resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-1.7.2.tgz",
"integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
"dependencies": {
"depd": "~1.1.2",
"inherits": "2.0.3",
"setprototypeof": "1.1.1",
"statuses": ">= 1.5.0 < 2",
"toidentifier": "1.0.0"
},
"engines": {
"node": ">= 0.6"
}
},
"node_modules/http-signature": {
"version": "1.2.0",
"resolved": "https://registry.npmmirror.com/http-signature/-/http-signature-1.2.0.tgz",
"integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==",
"dependencies": {
"assert-plus": "^1.0.0",
"jsprim": "^1.2.2",
"sshpk": "^1.7.0"
},
"engines": {
"node": ">=0.8",
"npm": ">=1.3.7"
}
},
"node_modules/httpx": {
"version": "2.3.3",
"resolved": "https://registry.npmmirror.com/httpx/-/httpx-2.3.3.tgz",
"integrity": "sha512-k1qv94u1b6e+XKCxVbLgYlOypVP9MPGpnN5G/vxFf6tDO4V3xpz3d6FUOY/s8NtPgaq5RBVVgSB+7IHpVxMYzw==",
"dependencies": {
"@types/node": "^20",
"debug": "^4.1.1"
}
},
"node_modules/httpx/node_modules/@types/node": {
"version": "20.17.10",
"resolved": "https://registry.npmmirror.com/@types/node/-/node-20.17.10.tgz",
"integrity": "sha512-/jrvh5h6NXhEauFFexRin69nA0uHJ5gwk4iDivp/DeoEua3uwCUto6PC86IpRITBOs4+6i2I56K5x5b6WYGXHA==",
"dependencies": {
"undici-types": "~6.19.2"
}
},
"node_modules/httpx/node_modules/debug": {
"version": "4.4.0",
"resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz",
"integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
"dependencies": {
"ms": "^2.1.3"
},
"engines": {
"node": ">=6.0"
},
"peerDependenciesMeta": {
"supports-color": {
"optional": true
}
}
},
"node_modules/iconv-lite": {
"version": "0.4.24",
"resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz",
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/ieee754": {
"version": "1.2.1",
"resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz",
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
]
},
"node_modules/inherits": {
"version": "2.0.3",
"resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.3.tgz",
"integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw=="
},
"node_modules/ip-address": {
"version": "9.0.5",
"resolved": "https://registry.npmmirror.com/ip-address/-/ip-address-9.0.5.tgz",
"integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==",
"dependencies": {
"jsbn": "1.1.0",
"sprintf-js": "^1.1.3"
},
"engines": {
"node": ">= 12"
}
},
"node_modules/ipaddr.js": {
"version": "1.9.1",
"resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
"integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
"engines": {
"node": ">= 0.10"
}
},
"node_modules/is-buffer": {
"version": "1.1.6",
"resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz",
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
},
"node_modules/is-typedarray": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/is-typedarray/-/is-typedarray-1.0.0.tgz",
"integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
},
"node_modules/isstream": {
"version": "0.1.2",
"resolved": "https://registry.npmmirror.com/isstream/-/isstream-0.1.2.tgz",
"integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="
},
"node_modules/jsbn": {
"version": "1.1.0",
"resolved": "https://registry.npmmirror.com/jsbn/-/jsbn-1.1.0.tgz",
"integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A=="
},
"node_modules/json-bigint": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/json-bigint/-/json-bigint-1.0.0.tgz",
"integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==",
"dependencies": {
"bignumber.js": "^9.0.0"
}
},
"node_modules/json-schema": {
"version": "0.4.0",
"resolved": "https://registry.npmmirror.com/json-schema/-/json-schema-0.4.0.tgz",
"integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="
},
"node_modules/json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
},
"node_modules/json-stringify-safe": {
"version": "5.0.1",
"resolved": "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
"integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
},
"node_modules/jsonfile": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz",
"integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
"optionalDependencies": {
"graceful-fs": "^4.1.6"
}
},
"node_modules/jsprim": {
"version": "1.4.2",
"resolved": "https://registry.npmmirror.com/jsprim/-/jsprim-1.4.2.tgz",
"integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
"dependencies": {
"assert-plus": "1.0.0",
"extsprintf": "1.3.0",
"json-schema": "0.4.0",
"verror": "1.10.0"
},
"engines": {
"node": ">=0.6.0"
}
},
"node_modules/kareem": {
"version": "2.3.4",
"resolved": "https://registry.npmmirror.com/kareem/-/kareem-2.3.4.tgz",
"integrity": "sha512-Vcrt8lcpVl0s8ePx634BxwRqmFo+5DcOhlmNadehxreMTIQi/9hOL/B3hZQQbK5DgMS7Lem3xABXV7/S3jy+7g=="
},
"node_modules/kitx": {
"version": "1.3.0",
"resolved": "https://registry.npmmirror.com/kitx/-/kitx-1.3.0.tgz",
"integrity": "sha512-fhBqFlXd0GkKTB+8ayLfpzPUw+LHxZlPAukPNBD1Om7JMeInT+/PxCAf1yLagvD+VKoyWhXtJR68xQkX/a0wOQ=="
},
"node_modules/log4js": {
"version": "6.9.1",
"resolved": "https://registry.npmmirror.com/log4js/-/log4js-6.9.1.tgz",
"integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==",
"dependencies": {
"date-format": "^4.0.14",
"debug": "^4.3.4",
"flatted": "^3.2.7",
"rfdc": "^1.3.0",
"streamroller": "^3.1.5"
},
"engines": {
"node": ">=8.0"
}
},
"node_modules/log4js/node_modules/debug": {
"version": "4.4.0",
"resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz",
"integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
"dependencies": {
"ms": "^2.1.3"
},
"engines": {
"node": ">=6.0"
},
"peerDependenciesMeta": {
"supports-color": {
"optional": true
}
}
},
"node_modules/long-timeout": {
"version": "0.1.1",
"resolved": "https://registry.npmmirror.com/long-timeout/-/long-timeout-0.1.1.tgz",
"integrity": "sha512-BFRuQUqc7x2NWxfJBCyUrN8iYUYznzL9JROmRz1gZ6KlOIgmoD+njPVbb+VNn2nGMKggMsK79iUNErillsrx7w=="
},
"node_modules/lru-cache": {
"version": "4.1.5",
"resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-4.1.5.tgz",
"integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
"dependencies": {
"pseudomap": "^1.0.2",
"yallist": "^2.1.2"
}
},
"node_modules/luxon": {
"version": "3.6.1",
"resolved": "https://registry.npmmirror.com/luxon/-/luxon-3.6.1.tgz",
"integrity": "sha512-tJLxrKJhO2ukZ5z0gyjY1zPh3Rh88Ej9P7jNrZiHMUXHae1yvI2imgOZtL1TO8TW6biMMKfTtAOoEJANgtWBMQ==",
"engines": {
"node": ">=12"
}
},
"node_modules/math-intrinsics": {
"version": "1.1.0",
"resolved": "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
"integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/md5": {
"version": "2.3.0",
"resolved": "https://registry.npmmirror.com/md5/-/md5-2.3.0.tgz",
"integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==",
"dependencies": {
"charenc": "0.0.2",
"crypt": "0.0.2",
"is-buffer": "~1.1.6"
}
},
"node_modules/media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz",
"integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/memory-pager": {
"version": "1.5.0",
"resolved": "https://registry.npmmirror.com/memory-pager/-/memory-pager-1.5.0.tgz",
"integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
"optional": true
},
"node_modules/merge-descriptors": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
"integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
},
"node_modules/methods": {
"version": "1.1.2",
"resolved": "https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz",
"integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/mime": {
"version": "1.6.0",
"resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz",
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
"bin": {
"mime": "cli.js"
},
"engines": {
"node": ">=4"
}
},
"node_modules/mime-db": {
"version": "1.52.0",
"resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/mime-types": {
"version": "2.1.35",
"resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"dependencies": {
"mime-db": "1.52.0"
},
"engines": {
"node": ">= 0.6"
}
},
"node_modules/moment": {
"version": "2.29.1",
"resolved": "https://registry.npmmirror.com/moment/-/moment-2.29.1.tgz",
"integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==",
"engines": {
"node": "*"
}
},
"node_modules/mongodb": {
"version": "4.3.1",
"resolved": "https://registry.npmmirror.com/mongodb/-/mongodb-4.3.1.tgz",
"integrity": "sha512-sNa8APSIk+r4x31ZwctKjuPSaeKuvUeNb/fu/3B6dRM02HpEgig7hTHM8A/PJQTlxuC/KFWlDlQjhsk/S43tBg==",
"dependencies": {
"bson": "^4.6.1",
"denque": "^2.0.1",
"mongodb-connection-string-url": "^2.4.1",
"socks": "^2.6.1"
},
"engines": {
"node": ">=12.9.0"
},
"optionalDependencies": {
"saslprep": "^1.0.3"
}
},
"node_modules/mongodb-connection-string-url": {
"version": "2.6.0",
"resolved": "https://registry.npmmirror.com/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz",
"integrity": "sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==",
"dependencies": {
"@types/whatwg-url": "^8.2.1",
"whatwg-url": "^11.0.0"
}
},
"node_modules/mongoose": {
"version": "6.2.3",
"resolved": "https://registry.npmmirror.com/mongoose/-/mongoose-6.2.3.tgz",
"integrity": "sha512-FxF2D0MGGIw9bAJ57nSyM4Hs4tDHbu6dn9gQwT1J/lxmRB8jfaWWJ3FSJXTmeYlQ6BpyKeIaT8fj6SAX0YMNBA==",
"dependencies": {
"bson": "^4.2.2",
"kareem": "2.3.4",
"mongodb": "4.3.1",
"mpath": "0.8.4",
"mquery": "4.0.2",
"ms": "2.1.3",
"sift": "16.0.0"
},
"engines": {
"node": ">=12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/mongoose"
}
},
"node_modules/mpath": {
"version": "0.8.4",
"resolved": "https://registry.npmmirror.com/mpath/-/mpath-0.8.4.tgz",
"integrity": "sha512-DTxNZomBcTWlrMW76jy1wvV37X/cNNxPW1y2Jzd4DZkAaC5ZGsm8bfGfNOthcDuRJujXLqiuS6o3Tpy0JEoh7g==",
"engines": {
"node": ">=4.0.0"
}
},
"node_modules/mquery": {
"version": "4.0.2",
"resolved": "https://registry.npmmirror.com/mquery/-/mquery-4.0.2.tgz",
"integrity": "sha512-oAVF0Nil1mT3rxty6Zln4YiD6x6QsUWYz927jZzjMxOK2aqmhEz5JQ7xmrKK7xRFA2dwV+YaOpKU/S+vfNqKxA==",
"dependencies": {
"debug": "4.x"
},
"engines": {
"node": ">=12.0.0"
}
},
"node_modules/mquery/node_modules/debug": {
"version": "4.4.0",
"resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz",
"integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
"dependencies": {
"ms": "^2.1.3"
},
"engines": {
"node": ">=6.0"
},
"peerDependenciesMeta": {
"supports-color": {
"optional": true
}
}
},
"node_modules/ms": {
"version": "2.1.3",
"resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
"node_modules/negotiator": {
"version": "0.6.3",
"resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz",
"integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/node-cache": {
"version": "5.1.2",
"resolved": "https://registry.npmmirror.com/node-cache/-/node-cache-5.1.2.tgz",
"integrity": "sha512-t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg==",
"dependencies": {
"clone": "2.x"
},
"engines": {
"node": ">= 8.0.0"
}
},
"node_modules/node-schedule": {
"version": "2.1.1",
"resolved": "https://registry.npmmirror.com/node-schedule/-/node-schedule-2.1.1.tgz",
"integrity": "sha512-OXdegQq03OmXEjt2hZP33W2YPs/E5BcFQks46+G2gAxs4gHOIVD1u7EqlYLYSKsaIpyKCK9Gbk0ta1/gjRSMRQ==",
"dependencies": {
"cron-parser": "^4.2.0",
"long-timeout": "0.1.1",
"sorted-array-functions": "^1.3.0"
},
"engines": {
"node": ">=6"
}
},
"node_modules/node-xlsx": {
"version": "0.16.1",
"resolved": "https://registry.npmmirror.com/node-xlsx/-/node-xlsx-0.16.1.tgz",
"integrity": "sha512-mwEZKItGXKO+jp5Pz9+wDCXxqhJITGd6m81A8WmalBpGAzREiR5cIJ0xrSF0BxzU6Mh2mC0fA2X0/3GqNU6dIw==",
"dependencies": {
"@babel/runtime": "^7.12.5",
"buffer-from": "^1.1.1",
"xlsx": "^0.16.9"
},
"engines": {
"node": ">=4.0.0"
}
},
"node_modules/nodemailer": {
"version": "6.5.0",
"resolved": "https://registry.npmmirror.com/nodemailer/-/nodemailer-6.5.0.tgz",
"integrity": "sha512-Tm4RPrrIZbnqDKAvX+/4M+zovEReiKlEXWDzG4iwtpL9X34MJY+D5LnQPH/+eghe8DLlAVshHAJZAZWBGhkguw==",
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/oauth-sign": {
"version": "0.9.0",
"resolved": "https://registry.npmmirror.com/oauth-sign/-/oauth-sign-0.9.0.tgz",
"integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
"engines": {
"node": "*"
}
},
"node_modules/on-finished": {
"version": "2.3.0",
"resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.3.0.tgz",
"integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==",
"dependencies": {
"ee-first": "1.1.1"
},
"engines": {
"node": ">= 0.8"
}
},
"node_modules/on-headers": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/on-headers/-/on-headers-1.0.2.tgz",
"integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/opentype.js": {
"version": "0.7.3",
"resolved": "https://registry.npmmirror.com/opentype.js/-/opentype.js-0.7.3.tgz",
"integrity": "sha512-Veui5vl2bLonFJ/SjX/WRWJT3SncgiZNnKUyahmXCc2sa1xXW15u3R/3TN5+JFiP7RsjK5ER4HA5eWaEmV9deA==",
"dependencies": {
"tiny-inflate": "^1.0.2"
},
"bin": {
"ot": "bin/ot"
}
},
"node_modules/parseurl": {
"version": "1.3.3",
"resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz",
"integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/path-to-regexp": {
"version": "0.1.7",
"resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
"integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
},
"node_modules/performance-now": {
"version": "2.1.0",
"resolved": "https://registry.npmmirror.com/performance-now/-/performance-now-2.1.0.tgz",
"integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow=="
},
"node_modules/printj": {
"version": "1.1.2",
"resolved": "https://registry.npmmirror.com/printj/-/printj-1.1.2.tgz",
"integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==",
"bin": {
"printj": "bin/printj.njs"
},
"engines": {
"node": ">=0.8"
}
},
"node_modules/proxy-addr": {
"version": "2.0.7",
"resolved": "https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz",
"integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
"dependencies": {
"forwarded": "0.2.0",
"ipaddr.js": "1.9.1"
},
"engines": {
"node": ">= 0.10"
}
},
"node_modules/proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
},
"node_modules/pseudomap": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/pseudomap/-/pseudomap-1.0.2.tgz",
"integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ=="
},
"node_modules/psl": {
"version": "1.15.0",
"resolved": "https://registry.npmmirror.com/psl/-/psl-1.15.0.tgz",
"integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==",
"dependencies": {
"punycode": "^2.3.1"
},
"funding": {
"url": "https://github.com/sponsors/lupomontero"
}
},
"node_modules/punycode": {
"version": "2.3.1",
"resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz",
"integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
"engines": {
"node": ">=6"
}
},
"node_modules/pyfl": {
"version": "1.1.4",
"resolved": "https://registry.npmmirror.com/pyfl/-/pyfl-1.1.4.tgz",
"integrity": "sha512-tEwj+SYfOk7zMStPrcDvadkUYomRIX6URQA/dl+YDqaEZlP9gEXM501FUsorz5HozCkfIeFOoT7U2jTElQ+zYg=="
},
"node_modules/qs": {
"version": "6.7.0",
"resolved": "https://registry.npmmirror.com/qs/-/qs-6.7.0.tgz",
"integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
"engines": {
"node": ">=0.6"
}
},
"node_modules/range-parser": {
"version": "1.2.1",
"resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz",
"integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/raw-body": {
"version": "2.4.0",
"resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-2.4.0.tgz",
"integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
"dependencies": {
"bytes": "3.1.0",
"http-errors": "1.7.2",
"iconv-lite": "0.4.24",
"unpipe": "1.0.0"
},
"engines": {
"node": ">= 0.8"
}
},
"node_modules/raw-body/node_modules/bytes": {
"version": "3.1.0",
"resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.0.tgz",
"integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/regenerator-runtime": {
"version": "0.11.1",
"resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
"integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
},
"node_modules/request": {
"version": "2.88.2",
"resolved": "https://registry.npmmirror.com/request/-/request-2.88.2.tgz",
"integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
"deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142",
"dependencies": {
"aws-sign2": "~0.7.0",
"aws4": "^1.8.0",
"caseless": "~0.12.0",
"combined-stream": "~1.0.6",
"extend": "~3.0.2",
"forever-agent": "~0.6.1",
"form-data": "~2.3.2",
"har-validator": "~5.1.3",
"http-signature": "~1.2.0",
"is-typedarray": "~1.0.0",
"isstream": "~0.1.2",
"json-stringify-safe": "~5.0.1",
"mime-types": "~2.1.19",
"oauth-sign": "~0.9.0",
"performance-now": "^2.1.0",
"qs": "~6.5.2",
"safe-buffer": "^5.1.2",
"tough-cookie": "~2.5.0",
"tunnel-agent": "^0.6.0",
"uuid": "^3.3.2"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/request/node_modules/qs": {
"version": "6.5.3",
"resolved": "https://registry.npmmirror.com/qs/-/qs-6.5.3.tgz",
"integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
"engines": {
"node": ">=0.6"
}
},
"node_modules/rfdc": {
"version": "1.4.1",
"resolved": "https://registry.npmmirror.com/rfdc/-/rfdc-1.4.1.tgz",
"integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA=="
},
"node_modules/safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"node_modules/safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"node_modules/saslprep": {
"version": "1.0.3",
"resolved": "https://registry.npmmirror.com/saslprep/-/saslprep-1.0.3.tgz",
"integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==",
"optional": true,
"dependencies": {
"sparse-bitfield": "^3.0.3"
},
"engines": {
"node": ">=6"
}
},
"node_modules/sax": {
"version": "1.4.1",
"resolved": "https://registry.npmmirror.com/sax/-/sax-1.4.1.tgz",
"integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg=="
},
"node_modules/send": {
"version": "0.17.1",
"resolved": "https://registry.npmmirror.com/send/-/send-0.17.1.tgz",
"integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
"dependencies": {
"debug": "2.6.9",
"depd": "~1.1.2",
"destroy": "~1.0.4",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
"fresh": "0.5.2",
"http-errors": "~1.7.2",
"mime": "1.6.0",
"ms": "2.1.1",
"on-finished": "~2.3.0",
"range-parser": "~1.2.1",
"statuses": "~1.5.0"
},
"engines": {
"node": ">= 0.8.0"
}
},
"node_modules/send/node_modules/debug": {
"version": "2.6.9",
"resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dependencies": {
"ms": "2.0.0"
}
},
"node_modules/send/node_modules/debug/node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/send/node_modules/ms": {
"version": "2.1.1",
"resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.1.tgz",
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
},
"node_modules/serve-static": {
"version": "1.14.1",
"resolved": "https://registry.npmmirror.com/serve-static/-/serve-static-1.14.1.tgz",
"integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
"dependencies": {
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"parseurl": "~1.3.3",
"send": "0.17.1"
},
"engines": {
"node": ">= 0.8.0"
}
},
"node_modules/setprototypeof": {
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.1.1.tgz",
"integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
},
"node_modules/sift": {
"version": "16.0.0",
"resolved": "https://registry.npmmirror.com/sift/-/sift-16.0.0.tgz",
"integrity": "sha512-ILTjdP2Mv9V1kIxWMXeMTIRbOBrqKc4JAXmFMnFq3fKeyQ2Qwa3Dw1ubcye3vR+Y6ofA0b9gNDr/y2t6eUeIzQ=="
},
"node_modules/smart-buffer": {
"version": "4.2.0",
"resolved": "https://registry.npmmirror.com/smart-buffer/-/smart-buffer-4.2.0.tgz",
"integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
"engines": {
"node": ">= 6.0.0",
"npm": ">= 3.0.0"
}
},
"node_modules/socks": {
"version": "2.8.3",
"resolved": "https://registry.npmmirror.com/socks/-/socks-2.8.3.tgz",
"integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==",
"dependencies": {
"ip-address": "^9.0.5",
"smart-buffer": "^4.2.0"
},
"engines": {
"node": ">= 10.0.0",
"npm": ">= 3.0.0"
}
},
"node_modules/sorted-array-functions": {
"version": "1.3.0",
"resolved": "https://registry.npmmirror.com/sorted-array-functions/-/sorted-array-functions-1.3.0.tgz",
"integrity": "sha512-2sqgzeFlid6N4Z2fUQ1cvFmTOLRi/sEDzSQ0OKYchqgoPmQBVyM3959qYx3fpS6Esef80KjmpgPeEr028dP3OA=="
},
"node_modules/sparse-bitfield": {
"version": "3.0.3",
"resolved": "https://registry.npmmirror.com/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
"integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==",
"optional": true,
"dependencies": {
"memory-pager": "^1.0.2"
}
},
"node_modules/sprintf-js": {
"version": "1.1.3",
"resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.1.3.tgz",
"integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA=="
},
"node_modules/ssf": {
"version": "0.11.2",
"resolved": "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz",
"integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
"dependencies": {
"frac": "~1.1.2"
},
"engines": {
"node": ">=0.8"
}
},
"node_modules/sshpk": {
"version": "1.18.0",
"resolved": "https://registry.npmmirror.com/sshpk/-/sshpk-1.18.0.tgz",
"integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==",
"dependencies": {
"asn1": "~0.2.3",
"assert-plus": "^1.0.0",
"bcrypt-pbkdf": "^1.0.0",
"dashdash": "^1.12.0",
"ecc-jsbn": "~0.1.1",
"getpass": "^0.1.1",
"jsbn": "~0.1.0",
"safer-buffer": "^2.0.2",
"tweetnacl": "~0.14.0"
},
"bin": {
"sshpk-conv": "bin/sshpk-conv",
"sshpk-sign": "bin/sshpk-sign",
"sshpk-verify": "bin/sshpk-verify"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/sshpk/node_modules/jsbn": {
"version": "0.1.1",
"resolved": "https://registry.npmmirror.com/jsbn/-/jsbn-0.1.1.tgz",
"integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg=="
},
"node_modules/statuses": {
"version": "1.5.0",
"resolved": "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz",
"integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/streamroller": {
"version": "3.1.5",
"resolved": "https://registry.npmmirror.com/streamroller/-/streamroller-3.1.5.tgz",
"integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==",
"dependencies": {
"date-format": "^4.0.14",
"debug": "^4.3.4",
"fs-extra": "^8.1.0"
},
"engines": {
"node": ">=8.0"
}
},
"node_modules/streamroller/node_modules/debug": {
"version": "4.4.0",
"resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz",
"integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
"dependencies": {
"ms": "^2.1.3"
},
"engines": {
"node": ">=6.0"
},
"peerDependenciesMeta": {
"supports-color": {
"optional": true
}
}
},
"node_modules/svg-captcha": {
"version": "1.4.0",
"resolved": "https://registry.npmmirror.com/svg-captcha/-/svg-captcha-1.4.0.tgz",
"integrity": "sha512-/fkkhavXPE57zRRCjNqAP3txRCSncpMx3NnNZL7iEoyAtYwUjPhJxW6FQTQPG5UPEmCrbFoXS10C3YdJlW7PDg==",
"dependencies": {
"opentype.js": "^0.7.3"
},
"engines": {
"node": ">=4.x"
}
},
"node_modules/tiny-inflate": {
"version": "1.0.3",
"resolved": "https://registry.npmmirror.com/tiny-inflate/-/tiny-inflate-1.0.3.tgz",
"integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw=="
},
"node_modules/toidentifier": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.0.tgz",
"integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==",
"engines": {
"node": ">=0.6"
}
},
"node_modules/tough-cookie": {
"version": "2.5.0",
"resolved": "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-2.5.0.tgz",
"integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
"dependencies": {
"psl": "^1.1.28",
"punycode": "^2.1.1"
},
"engines": {
"node": ">=0.8"
}
},
"node_modules/tr46": {
"version": "3.0.0",
"resolved": "https://registry.npmmirror.com/tr46/-/tr46-3.0.0.tgz",
"integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
"dependencies": {
"punycode": "^2.1.1"
},
"engines": {
"node": ">=12"
}
},
"node_modules/tunnel-agent": {
"version": "0.6.0",
"resolved": "https://registry.npmmirror.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
"integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
"dependencies": {
"safe-buffer": "^5.0.1"
},
"engines": {
"node": "*"
}
},
"node_modules/tweetnacl": {
"version": "0.14.5",
"resolved": "https://registry.npmmirror.com/tweetnacl/-/tweetnacl-0.14.5.tgz",
"integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA=="
},
"node_modules/type-is": {
"version": "1.6.18",
"resolved": "https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz",
"integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
"dependencies": {
"media-typer": "0.3.0",
"mime-types": "~2.1.24"
},
"engines": {
"node": ">= 0.6"
}
},
"node_modules/undici-types": {
"version": "6.19.8",
"resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-6.19.8.tgz",
"integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw=="
},
"node_modules/universalify": {
"version": "0.1.2",
"resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz",
"integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
"engines": {
"node": ">= 4.0.0"
}
},
"node_modules/unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz",
"integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/uri-js": {
"version": "4.4.1",
"resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz",
"integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
"dependencies": {
"punycode": "^2.1.0"
}
},
"node_modules/utils-merge": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz",
"integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
"engines": {
"node": ">= 0.4.0"
}
},
"node_modules/uuid": {
"version": "3.4.0",
"resolved": "https://registry.npmmirror.com/uuid/-/uuid-3.4.0.tgz",
"integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
"deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
"bin": {
"uuid": "bin/uuid"
}
},
"node_modules/vary": {
"version": "1.1.2",
"resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz",
"integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/verror": {
"version": "1.10.0",
"resolved": "https://registry.npmmirror.com/verror/-/verror-1.10.0.tgz",
"integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
"engines": [
"node >=0.6.0"
],
"dependencies": {
"assert-plus": "^1.0.0",
"core-util-is": "1.0.2",
"extsprintf": "^1.2.0"
}
},
"node_modules/webidl-conversions": {
"version": "7.0.0",
"resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
"integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
"engines": {
"node": ">=12"
}
},
"node_modules/whatwg-url": {
"version": "11.0.0",
"resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-11.0.0.tgz",
"integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
"dependencies": {
"tr46": "^3.0.0",
"webidl-conversions": "^7.0.0"
},
"engines": {
"node": ">=12"
}
},
"node_modules/wmf": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz",
"integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==",
"engines": {
"node": ">=0.8"
}
},
"node_modules/word": {
"version": "0.3.0",
"resolved": "https://registry.npmmirror.com/word/-/word-0.3.0.tgz",
"integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==",
"engines": {
"node": ">=0.8"
}
},
"node_modules/xlsx": {
"version": "0.16.9",
"resolved": "https://registry.npmmirror.com/xlsx/-/xlsx-0.16.9.tgz",
"integrity": "sha512-gxi1I3EasYvgCX1vN9pGyq920Ron4NO8PNfhuoA3Hpq6Y8f0ECXiy4OLrK4QZBnj1jx3QD+8Fq5YZ/3mPZ5iXw==",
"dependencies": {
"adler-32": "~1.2.0",
"cfb": "^1.1.4",
"codepage": "~1.14.0",
"commander": "~2.17.1",
"crc-32": "~1.2.0",
"exit-on-epipe": "~1.0.1",
"fflate": "^0.3.8",
"ssf": "~0.11.2",
"wmf": "~1.0.1",
"word": "~0.3.0"
},
"bin": {
"xlsx": "bin/xlsx.njs"
},
"engines": {
"node": ">=0.8"
}
},
"node_modules/xml2js": {
"version": "0.4.23",
"resolved": "https://registry.npmmirror.com/xml2js/-/xml2js-0.4.23.tgz",
"integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==",
"dependencies": {
"sax": ">=0.6.0",
"xmlbuilder": "~11.0.0"
},
"engines": {
"node": ">=4.0.0"
}
},
"node_modules/xmlbuilder": {
"version": "11.0.1",
"resolved": "https://registry.npmmirror.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
"integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
"engines": {
"node": ">=4.0"
}
},
"node_modules/yallist": {
"version": "2.1.2",
"resolved": "https://registry.npmmirror.com/yallist/-/yallist-2.1.2.tgz",
"integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A=="
}
},
"dependencies": {
"@alicloud/dybaseapi": {
"version": "1.0.0",
......@@ -176,6 +2358,29 @@
"resolved": "https://registry.npmmirror.com/aws4/-/aws4-1.13.2.tgz",
"integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw=="
},
"axios": {
"version": "1.9.0",
"resolved": "https://registry.npmmirror.com/axios/-/axios-1.9.0.tgz",
"integrity": "sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==",
"requires": {
"follow-redirects": "^1.15.6",
"form-data": "^4.0.0",
"proxy-from-env": "^1.1.0"
},
"dependencies": {
"form-data": {
"version": "4.0.2",
"resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.2.tgz",
"integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==",
"requires": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
"es-set-tostringtag": "^2.1.0",
"mime-types": "^2.1.12"
}
}
}
},
"babel-runtime": {
"version": "6.26.0",
"resolved": "https://registry.npmmirror.com/babel-runtime/-/babel-runtime-6.26.0.tgz",
......@@ -267,6 +2472,15 @@
"resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.0.0.tgz",
"integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw=="
},
"call-bind-apply-helpers": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
"integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
"requires": {
"es-errors": "^1.3.0",
"function-bind": "^1.1.2"
}
},
"caseless": {
"version": "0.12.0",
"resolved": "https://registry.npmmirror.com/caseless/-/caseless-0.12.0.tgz",
......@@ -293,6 +2507,11 @@
"resolved": "https://registry.npmmirror.com/charenc/-/charenc-0.0.2.tgz",
"integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA=="
},
"clone": {
"version": "2.1.2",
"resolved": "https://registry.npmmirror.com/clone/-/clone-2.1.2.tgz",
"integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w=="
},
"codepage": {
"version": "1.14.0",
"resolved": "https://registry.npmmirror.com/codepage/-/codepage-1.14.0.tgz",
......@@ -397,6 +2616,14 @@
"resolved": "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz",
"integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ=="
},
"cron-parser": {
"version": "4.9.0",
"resolved": "https://registry.npmmirror.com/cron-parser/-/cron-parser-4.9.0.tgz",
"integrity": "sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==",
"requires": {
"luxon": "^3.2.1"
}
},
"crypt": {
"version": "0.0.2",
"resolved": "https://registry.npmmirror.com/crypt/-/crypt-0.0.2.tgz",
......@@ -443,6 +2670,16 @@
"resolved": "https://registry.npmmirror.com/destroy/-/destroy-1.0.4.tgz",
"integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg=="
},
"dunder-proto": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz",
"integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
"requires": {
"call-bind-apply-helpers": "^1.0.1",
"es-errors": "^1.3.0",
"gopd": "^1.2.0"
}
},
"ecc-jsbn": {
"version": "0.1.2",
"resolved": "https://registry.npmmirror.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
......@@ -469,6 +2706,35 @@
"resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz",
"integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="
},
"es-define-property": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz",
"integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="
},
"es-errors": {
"version": "1.3.0",
"resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz",
"integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="
},
"es-object-atoms": {
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
"integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
"requires": {
"es-errors": "^1.3.0"
}
},
"es-set-tostringtag": {
"version": "2.1.0",
"resolved": "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
"integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
"requires": {
"es-errors": "^1.3.0",
"get-intrinsic": "^1.2.6",
"has-tostringtag": "^1.0.2",
"hasown": "^2.0.2"
}
},
"escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz",
......@@ -605,6 +2871,11 @@
"resolved": "https://registry.npmmirror.com/flatted/-/flatted-3.3.2.tgz",
"integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA=="
},
"follow-redirects": {
"version": "1.15.9",
"resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.9.tgz",
"integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ=="
},
"forever-agent": {
"version": "0.6.1",
"resolved": "https://registry.npmmirror.com/forever-agent/-/forever-agent-0.6.1.tgz",
......@@ -650,6 +2921,37 @@
"universalify": "^0.1.0"
}
},
"function-bind": {
"version": "1.1.2",
"resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz",
"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="
},
"get-intrinsic": {
"version": "1.3.0",
"resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
"integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
"requires": {
"call-bind-apply-helpers": "^1.0.2",
"es-define-property": "^1.0.1",
"es-errors": "^1.3.0",
"es-object-atoms": "^1.1.1",
"function-bind": "^1.1.2",
"get-proto": "^1.0.1",
"gopd": "^1.2.0",
"has-symbols": "^1.1.0",
"hasown": "^2.0.2",
"math-intrinsics": "^1.1.0"
}
},
"get-proto": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz",
"integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
"requires": {
"dunder-proto": "^1.0.1",
"es-object-atoms": "^1.0.0"
}
},
"getpass": {
"version": "0.1.7",
"resolved": "https://registry.npmmirror.com/getpass/-/getpass-0.1.7.tgz",
......@@ -658,6 +2960,11 @@
"assert-plus": "^1.0.0"
}
},
"gopd": {
"version": "1.2.0",
"resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz",
"integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="
},
"graceful-fs": {
"version": "4.2.11",
"resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz",
......@@ -677,6 +2984,27 @@
"har-schema": "^2.0.0"
}
},
"has-symbols": {
"version": "1.1.0",
"resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz",
"integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="
},
"has-tostringtag": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
"integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
"requires": {
"has-symbols": "^1.0.3"
}
},
"hasown": {
"version": "2.0.2",
"resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz",
"integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
"requires": {
"function-bind": "^1.1.2"
}
},
"http-errors": {
"version": "1.7.2",
"resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-1.7.2.tgz",
......@@ -852,6 +3180,11 @@
}
}
},
"long-timeout": {
"version": "0.1.1",
"resolved": "https://registry.npmmirror.com/long-timeout/-/long-timeout-0.1.1.tgz",
"integrity": "sha512-BFRuQUqc7x2NWxfJBCyUrN8iYUYznzL9JROmRz1gZ6KlOIgmoD+njPVbb+VNn2nGMKggMsK79iUNErillsrx7w=="
},
"lru-cache": {
"version": "4.1.5",
"resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-4.1.5.tgz",
......@@ -861,6 +3194,16 @@
"yallist": "^2.1.2"
}
},
"luxon": {
"version": "3.6.1",
"resolved": "https://registry.npmmirror.com/luxon/-/luxon-3.6.1.tgz",
"integrity": "sha512-tJLxrKJhO2ukZ5z0gyjY1zPh3Rh88Ej9P7jNrZiHMUXHae1yvI2imgOZtL1TO8TW6biMMKfTtAOoEJANgtWBMQ=="
},
"math-intrinsics": {
"version": "1.1.0",
"resolved": "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
"integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="
},
"md5": {
"version": "2.3.0",
"resolved": "https://registry.npmmirror.com/md5/-/md5-2.3.0.tgz",
......@@ -983,6 +3326,24 @@
"resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz",
"integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
},
"node-cache": {
"version": "5.1.2",
"resolved": "https://registry.npmmirror.com/node-cache/-/node-cache-5.1.2.tgz",
"integrity": "sha512-t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg==",
"requires": {
"clone": "2.x"
}
},
"node-schedule": {
"version": "2.1.1",
"resolved": "https://registry.npmmirror.com/node-schedule/-/node-schedule-2.1.1.tgz",
"integrity": "sha512-OXdegQq03OmXEjt2hZP33W2YPs/E5BcFQks46+G2gAxs4gHOIVD1u7EqlYLYSKsaIpyKCK9Gbk0ta1/gjRSMRQ==",
"requires": {
"cron-parser": "^4.2.0",
"long-timeout": "0.1.1",
"sorted-array-functions": "^1.3.0"
}
},
"node-xlsx": {
"version": "0.16.1",
"resolved": "https://registry.npmmirror.com/node-xlsx/-/node-xlsx-0.16.1.tgz",
......@@ -1053,6 +3414,11 @@
"ipaddr.js": "1.9.1"
}
},
"proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
},
"pseudomap": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/pseudomap/-/pseudomap-1.0.2.tgz",
......@@ -1249,6 +3615,11 @@
"smart-buffer": "^4.2.0"
}
},
"sorted-array-functions": {
"version": "1.3.0",
"resolved": "https://registry.npmmirror.com/sorted-array-functions/-/sorted-array-functions-1.3.0.tgz",
"integrity": "sha512-2sqgzeFlid6N4Z2fUQ1cvFmTOLRi/sEDzSQ0OKYchqgoPmQBVyM3959qYx3fpS6Esef80KjmpgPeEr028dP3OA=="
},
"sparse-bitfield": {
"version": "3.0.3",
"resolved": "https://registry.npmmirror.com/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
......
......@@ -16,14 +16,15 @@
"md5": "^2.2.1",
"moment": "^2.24.0",
"mongoose": "^6.2.3",
"node-cache": "^5.1.2",
"node-schedule": "^2.1.1",
"node-xlsx": "^0.16.1",
"nodemailer": "^6.1.1",
"pyfl": "^1.1.4",
"request": "^2.88.0",
"request": "2.88.2",
"svg-captcha": "^1.3.12",
"xml2js": "^0.4.23"
},
"devDependencies": {},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
......
{
"870209": {
"hqmdzsjgl": {
"data": {
"total_energy": "287213.41",
"last_update_time": "2025-04-28 18:53:47",
"carbon_offset": "0",
"efficiency": "",
"monthly_energy": "101967.3",
"peak_power_actual": 848,
"timezone": "GMT+8",
"current_power": 0.03999999910593033,
"yearly_energy": "287035",
"today_energy": "4607.3"
},
"lastUpdated": "2025-04-28 19:38:08"
},
"hqmdzlsfdl": {
"data": {
"energys": [
{
"date": "2025-04-21",
"energy": "2484.8"
},
{
"date": "2025-04-22",
"energy": "1564.1"
},
{
"date": "2025-04-23",
"energy": "3657.1"
},
{
"date": "2025-04-24",
"energy": "2575.6"
},
{
"date": "2025-04-25",
"energy": "4426.2"
},
{
"date": "2025-04-26",
"energy": "4605.8"
},
{
"date": "2025-04-27",
"energy": "1937.4"
},
{
"date": "2025-04-28",
"energy": "4607.3"
}
],
"count": 8,
"time_unit": "day"
},
"lastUpdated": "2025-04-28 19:38:12"
},
"hqmdzmytgl": {
"data": {
"count": 288,
"powers": [
{
"time": "2025-04-28 01:55",
"power": null
},
{
"time": "2025-04-28 18:50",
"power": 180.5
},
{
"time": "2025-04-28 02:25",
"power": null
},
{
"time": "2025-04-28 08:05",
"power": 371997.8125
},
{
"time": "2025-04-28 02:20",
"power": null
},
{
"time": "2025-04-28 07:35",
"power": 302285
},
{
"time": "2025-04-28 08:00",
"power": 359947.28125
},
{
"time": "2025-04-28 20:10",
"power": null
},
{
"time": "2025-04-28 07:30",
"power": 288352.71875
},
{
"time": "2025-04-28 01:50",
"power": null
},
{
"time": "2025-04-28 14:15",
"power": 458410.03125
},
{
"time": "2025-04-28 13:45",
"power": 498039.875
},
{
"time": "2025-04-28 20:05",
"power": null
},
{
"time": "2025-04-28 19:25",
"power": null
},
{
"time": "2025-04-28 14:10",
"power": 465372.59375
},
{
"time": "2025-04-28 19:20",
"power": null
},
{
"time": "2025-04-28 13:40",
"power": 503445.3125
},
{
"time": "2025-04-28 18:55",
"power": null
},
{
"time": "2025-04-28 02:15",
"power": null
},
{
"time": "2025-04-28 01:45",
"power": null
},
{
"time": "2025-04-28 19:30",
"power": null
},
{
"time": "2025-04-28 07:25",
"power": 277288.375
},
{
"time": "2025-04-28 20:25",
"power": null
},
{
"time": "2025-04-28 06:55",
"power": 192383.5
},
{
"time": "2025-04-28 02:10",
"power": null
},
{
"time": "2025-04-28 20:20",
"power": null
},
{
"time": "2025-04-28 01:40",
"power": null
},
{
"time": "2025-04-28 07:20",
"power": 263050.90625
},
{
"time": "2025-04-28 14:25",
"power": 434795
},
{
"time": "2025-04-28 13:55",
"power": 486475.59375
},
{
"time": "2025-04-28 06:50",
"power": 178502.6875
},
{
"time": "2025-04-28 20:15",
"power": null
},
{
"time": "2025-04-28 13:50",
"power": 490342.46875
},
{
"time": "2025-04-28 19:35",
"power": null
},
{
"time": "2025-04-28 14:20",
"power": 445925.53125
},
{
"time": "2025-04-28 02:45",
"power": null
},
{
"time": "2025-04-28 03:15",
"power": null
},
{
"time": "2025-04-28 02:40",
"power": null
},
{
"time": "2025-04-28 03:10",
"power": null
},
{
"time": "2025-04-28 08:25",
"power": 415549.625
},
{
"time": "2025-04-28 07:55",
"power": 337051.40625
},
{
"time": "2025-04-28 08:20",
"power": 404080.96875
},
{
"time": "2025-04-28 07:50",
"power": 335790.5625
},
{
"time": "2025-04-28 13:25",
"power": 522313.5625
},
{
"time": "2025-04-28 12:55",
"power": 561275.4375
},
{
"time": "2025-04-28 18:35",
"power": 1307.2000732421875
},
{
"time": "2025-04-28 19:05",
"power": null
},
{
"time": "2025-04-28 18:30",
"power": 2056.099853515625
},
{
"time": "2025-04-28 13:20",
"power": 527205.25
},
{
"time": "2025-04-28 12:50",
"power": 564904
},
{
"time": "2025-04-28 19:00",
"power": null
},
{
"time": "2025-04-28 03:05",
"power": null
},
{
"time": "2025-04-28 18:40",
"power": 992.7999267578125
},
{
"time": "2025-04-28 02:35",
"power": null
},
{
"time": "2025-04-28 08:15",
"power": 388875.71875
},
{
"time": "2025-04-28 02:30",
"power": null
},
{
"time": "2025-04-28 07:45",
"power": 328161.21875
},
{
"time": "2025-04-28 03:00",
"power": null
},
{
"time": "2025-04-28 20:00",
"power": null
},
{
"time": "2025-04-28 08:10",
"power": 383712.375
},
{
"time": "2025-04-28 13:35",
"power": 507353.15625
},
{
"time": "2025-04-28 07:40",
"power": 314996.59375
},
{
"time": "2025-04-28 14:05",
"power": 471369.625
},
{
"time": "2025-04-28 18:45",
"power": 766.1000366210938
},
{
"time": "2025-04-28 19:15",
"power": null
},
{
"time": "2025-04-28 14:00",
"power": 480215.125
},
{
"time": "2025-04-28 19:10",
"power": null
},
{
"time": "2025-04-28 13:30",
"power": 515593.4375
},
{
"time": "2025-04-28 00:45",
"power": null
},
{
"time": "2025-04-28 23:45",
"power": null
},
{
"time": "2025-04-28 01:10",
"power": null
},
{
"time": "2025-04-28 01:15",
"power": null
},
{
"time": "2025-04-28 05:55",
"power": 34659.19921875
},
{
"time": "2025-04-28 06:25",
"power": 91520.8984375
},
{
"time": "2025-04-28 05:50",
"power": 25990.1015625
},
{
"time": "2025-04-28 00:40",
"power": null
},
{
"time": "2025-04-28 23:40",
"power": null
},
{
"time": "2025-04-28 06:20",
"power": 80494.796875
},
{
"time": "2025-04-28 12:35",
"power": 577927
},
{
"time": "2025-04-28 13:00",
"power": 553203.6875
},
{
"time": "2025-04-28 13:05",
"power": 547303.9375
},
{
"time": "2025-04-28 17:45",
"power": 33521.69921875
},
{
"time": "2025-04-28 18:15",
"power": 7695.3994140625
},
{
"time": "2025-04-28 12:30",
"power": 581005.6875
},
{
"time": "2025-04-28 17:40",
"power": 37713.19921875
},
{
"time": "2025-04-28 18:10",
"power": 10771.400390625
},
{
"time": "2025-04-28 23:55",
"power": null
},
{
"time": "2025-04-28 01:00",
"power": null
},
{
"time": "2025-04-28 17:50",
"power": 28772.6015625
},
{
"time": "2025-04-28 06:15",
"power": 38189.00390625
},
{
"time": "2025-04-28 01:05",
"power": null
},
{
"time": "2025-04-28 00:35",
"power": null
},
{
"time": "2025-04-28 05:45",
"power": 19599
},
{
"time": "2025-04-28 05:40",
"power": 15015.9013671875
},
{
"time": "2025-04-28 00:30",
"power": null
},
{
"time": "2025-04-28 23:50",
"power": null
},
{
"time": "2025-04-28 06:10",
"power": 58564.796875
},
{
"time": "2025-04-28 12:45",
"power": 570794.1875
},
{
"time": "2025-04-28 13:15",
"power": 539357.4375
},
{
"time": "2025-04-28 17:55",
"power": 23768.099609375
},
{
"time": "2025-04-28 18:25",
"power": 3312.700439453125
},
{
"time": "2025-04-28 13:10",
"power": 541958.5625
},
{
"time": "2025-04-28 18:20",
"power": 5324.10009765625
},
{
"time": "2025-04-28 12:40",
"power": 574257.5
},
{
"time": "2025-04-28 01:35",
"power": null
},
{
"time": "2025-04-28 02:05",
"power": null
},
{
"time": "2025-04-28 22:55",
"power": null
},
{
"time": "2025-04-28 02:00",
"power": null
},
{
"time": "2025-04-28 23:25",
"power": null
},
{
"time": "2025-04-28 06:45",
"power": 151427.5
},
{
"time": "2025-04-28 07:15",
"power": 245544.109375
},
{
"time": "2025-04-28 07:10",
"power": 240146.890625
},
{
"time": "2025-04-28 06:40",
"power": 129143.7890625
},
{
"time": "2025-04-28 01:30",
"power": null
},
{
"time": "2025-04-28 22:50",
"power": null
},
{
"time": "2025-04-28 23:20",
"power": null
},
{
"time": "2025-04-28 12:10",
"power": 594577.0625
},
{
"time": "2025-04-28 11:45",
"power": 606161.4375
},
{
"time": "2025-04-28 12:15",
"power": 593909.3125
},
{
"time": "2025-04-28 17:25",
"power": 52568.5546875
},
{
"time": "2025-04-28 16:50",
"power": 108835.9921875
},
{
"time": "2025-04-28 17:20",
"power": 58105.3046875
},
{
"time": "2025-04-28 16:55",
"power": 97939.59375
},
{
"time": "2025-04-28 11:40",
"power": 607409
},
{
"time": "2025-04-28 00:55",
"power": null
},
{
"time": "2025-04-28 23:35",
"power": null
},
{
"time": "2025-04-28 07:05",
"power": 223978.40625
},
{
"time": "2025-04-28 01:25",
"power": null
},
{
"time": "2025-04-28 06:35",
"power": 116199.59375
},
{
"time": "2025-04-28 06:30",
"power": 112169.59375
},
{
"time": "2025-04-28 01:20",
"power": null
},
{
"time": "2025-04-28 07:00",
"power": 207952.09375
},
{
"time": "2025-04-28 00:50",
"power": null
},
{
"time": "2025-04-28 23:30",
"power": null
},
{
"time": "2025-04-28 11:55",
"power": 600918.375
},
{
"time": "2025-04-28 18:05",
"power": 14038.599609375
},
{
"time": "2025-04-28 12:25",
"power": 583416.125
},
{
"time": "2025-04-28 17:35",
"power": 42758.5
},
{
"time": "2025-04-28 11:50",
"power": 603668.4375
},
{
"time": "2025-04-28 17:30",
"power": 47640.50390625
},
{
"time": "2025-04-28 12:20",
"power": 588927.125
},
{
"time": "2025-04-28 18:00",
"power": 18508.849609375
},
{
"time": "2025-04-28 00:00",
"power": null
},
{
"time": "2025-04-28 23:00",
"power": null
},
{
"time": "2025-04-28 05:15",
"power": 1112.9998779296875
},
{
"time": "2025-04-28 00:05",
"power": null
},
{
"time": "2025-04-28 22:35",
"power": null
},
{
"time": "2025-04-28 23:05",
"power": null
},
{
"time": "2025-04-28 05:10",
"power": 76.30000305175781
},
{
"time": "2025-04-28 04:45",
"power": null
},
{
"time": "2025-04-28 09:55",
"power": 570886.1875
},
{
"time": "2025-04-28 04:40",
"power": null
},
{
"time": "2025-04-28 22:30",
"power": null
},
{
"time": "2025-04-28 11:20",
"power": 607811.9375
},
{
"time": "2025-04-28 10:55",
"power": 605414.75
},
{
"time": "2025-04-28 09:50",
"power": 546201.8125
},
{
"time": "2025-04-28 11:25",
"power": 606595.6875
},
{
"time": "2025-04-28 17:05",
"power": 81422.40625
},
{
"time": "2025-04-28 17:00",
"power": 90449.1875
},
{
"time": "2025-04-28 16:30",
"power": 156511.90625
},
{
"time": "2025-04-28 16:35",
"power": 144071.59375
},
{
"time": "2025-04-28 10:50",
"power": 607028.375
},
{
"time": "2025-04-28 23:10",
"power": null
},
{
"time": "2025-04-28 22:45",
"power": null
},
{
"time": "2025-04-28 04:35",
"power": null
},
{
"time": "2025-04-28 23:15",
"power": null
},
{
"time": "2025-04-28 05:05",
"power": 0
},
{
"time": "2025-04-28 05:00",
"power": 0
},
{
"time": "2025-04-28 09:45",
"power": 558644.75
},
{
"time": "2025-04-28 22:40",
"power": null
},
{
"time": "2025-04-28 04:30",
"power": null
},
{
"time": "2025-04-28 09:40",
"power": 501921.28125
},
{
"time": "2025-04-28 12:00",
"power": 598723.5625
},
{
"time": "2025-04-28 12:05",
"power": 594531.75
},
{
"time": "2025-04-28 17:15",
"power": 66008.296875
},
{
"time": "2025-04-28 11:35",
"power": 610005.3125
},
{
"time": "2025-04-28 16:40",
"power": 129918.7421875
},
{
"time": "2025-04-28 16:45",
"power": 119080.5
},
{
"time": "2025-04-28 11:30",
"power": 614596.625
},
{
"time": "2025-04-28 17:10",
"power": 73565.1015625
},
{
"time": "2025-04-28 21:40",
"power": null
},
{
"time": "2025-04-28 22:10",
"power": null
},
{
"time": "2025-04-28 00:20",
"power": null
},
{
"time": "2025-04-28 06:05",
"power": 51689.99609375
},
{
"time": "2025-04-28 00:25",
"power": null
},
{
"time": "2025-04-28 22:15",
"power": null
},
{
"time": "2025-04-28 06:00",
"power": 45740.19921875
},
{
"time": "2025-04-28 05:35",
"power": 13782.400390625
},
{
"time": "2025-04-28 21:45",
"power": null
},
{
"time": "2025-04-28 05:30",
"power": 12878.7001953125
},
{
"time": "2025-04-28 10:30",
"power": 599698.875
},
{
"time": "2025-04-28 16:15",
"power": 188766.5
},
{
"time": "2025-04-28 11:00",
"power": 609750.375
},
{
"time": "2025-04-28 10:35",
"power": 594871.6875
},
{
"time": "2025-04-28 11:05",
"power": 605062.75
},
{
"time": "2025-04-28 15:40",
"power": 271434.3125
},
{
"time": "2025-04-28 15:45",
"power": 263554.21875
},
{
"time": "2025-04-28 16:10",
"power": 201586.984375
},
{
"time": "2025-04-28 22:20",
"power": null
},
{
"time": "2025-04-28 21:50",
"power": null
},
{
"time": "2025-04-28 00:10",
"power": null
},
{
"time": "2025-04-28 05:25",
"power": 8419.2998046875
},
{
"time": "2025-04-28 00:15",
"power": null
},
{
"time": "2025-04-28 22:25",
"power": null
},
{
"time": "2025-04-28 04:55",
"power": null
},
{
"time": "2025-04-28 21:55",
"power": null
},
{
"time": "2025-04-28 04:50",
"power": null
},
{
"time": "2025-04-28 05:20",
"power": 4576.2001953125
},
{
"time": "2025-04-28 11:10",
"power": 610634.5625
},
{
"time": "2025-04-28 16:25",
"power": 166049.6875
},
{
"time": "2025-04-28 10:45",
"power": 594114.4375
},
{
"time": "2025-04-28 11:15",
"power": 608353.9375
},
{
"time": "2025-04-28 16:20",
"power": 178531.390625
},
{
"time": "2025-04-28 15:50",
"power": 250859.703125
},
{
"time": "2025-04-28 15:55",
"power": 236183.890625
},
{
"time": "2025-04-28 10:40",
"power": 597283.3125
},
{
"time": "2025-04-28 20:50",
"power": null
},
{
"time": "2025-04-28 03:35",
"power": null
},
{
"time": "2025-04-28 04:05",
"power": null
},
{
"time": "2025-04-28 03:30",
"power": null
},
{
"time": "2025-04-28 10:05",
"power": 574533.5
},
{
"time": "2025-04-28 21:25",
"power": null
},
{
"time": "2025-04-28 09:15",
"power": 493487.625
},
{
"time": "2025-04-28 04:00",
"power": null
},
{
"time": "2025-04-28 20:55",
"power": null
},
{
"time": "2025-04-28 08:45",
"power": 416453.59375
},
{
"time": "2025-04-28 21:20",
"power": null
},
{
"time": "2025-04-28 09:10",
"power": 469825.4375
},
{
"time": "2025-04-28 08:40",
"power": 461067.96875
},
{
"time": "2025-04-28 15:25",
"power": 304122.21875
},
{
"time": "2025-04-28 10:10",
"power": 581928.9375
},
{
"time": "2025-04-28 10:15",
"power": 583999.125
},
{
"time": "2025-04-28 14:50",
"power": 377320.6875
},
{
"time": "2025-04-28 14:55",
"power": 371155.09375
},
{
"time": "2025-04-28 15:20",
"power": 312790.09375
},
{
"time": "2025-04-28 22:00",
"power": null
},
{
"time": "2025-04-28 02:55",
"power": null
},
{
"time": "2025-04-28 03:25",
"power": null
},
{
"time": "2025-04-28 22:05",
"power": null
},
{
"time": "2025-04-28 09:05",
"power": 463444.4375
},
{
"time": "2025-04-28 03:20",
"power": null
},
{
"time": "2025-04-28 08:35",
"power": 388701.96875
},
{
"time": "2025-04-28 21:35",
"power": null
},
{
"time": "2025-04-28 09:00",
"power": 480659.375
},
{
"time": "2025-04-28 02:50",
"power": null
},
{
"time": "2025-04-28 21:30",
"power": null
},
{
"time": "2025-04-28 10:20",
"power": 591349.125
},
{
"time": "2025-04-28 16:05",
"power": 211568.703125
},
{
"time": "2025-04-28 08:30",
"power": 426165.125
},
{
"time": "2025-04-28 15:35",
"power": 285053
},
{
"time": "2025-04-28 10:25",
"power": 594995
},
{
"time": "2025-04-28 15:30",
"power": 294387.625
},
{
"time": "2025-04-28 16:00",
"power": 224778.296875
},
{
"time": "2025-04-28 19:40",
"power": null
},
{
"time": "2025-04-28 04:25",
"power": null
},
{
"time": "2025-04-28 04:20",
"power": null
},
{
"time": "2025-04-28 20:35",
"power": null
},
{
"time": "2025-04-28 03:55",
"power": null
},
{
"time": "2025-04-28 09:35",
"power": 537877.9375
},
{
"time": "2025-04-28 21:00",
"power": null
},
{
"time": "2025-04-28 03:50",
"power": null
},
{
"time": "2025-04-28 20:30",
"power": null
},
{
"time": "2025-04-28 15:05",
"power": 346764.09375
},
{
"time": "2025-04-28 09:30",
"power": 532364.625
},
{
"time": "2025-04-28 14:35",
"power": 417930.78125
},
{
"time": "2025-04-28 15:00",
"power": 361003.46875
},
{
"time": "2025-04-28 19:45",
"power": null
},
{
"time": "2025-04-28 14:30",
"power": 423209.53125
},
{
"time": "2025-04-28 19:50",
"power": null
},
{
"time": "2025-04-28 03:45",
"power": null
},
{
"time": "2025-04-28 04:15",
"power": null
},
{
"time": "2025-04-28 21:15",
"power": null
},
{
"time": "2025-04-28 04:10",
"power": null
},
{
"time": "2025-04-28 20:45",
"power": null
},
{
"time": "2025-04-28 09:25",
"power": 529542.25
},
{
"time": "2025-04-28 08:55",
"power": 432247.09375
},
{
"time": "2025-04-28 21:10",
"power": null
},
{
"time": "2025-04-28 03:40",
"power": null
},
{
"time": "2025-04-28 20:40",
"power": null
},
{
"time": "2025-04-28 09:20",
"power": 526823.5
},
{
"time": "2025-04-28 15:15",
"power": 326421.8125
},
{
"time": "2025-04-28 10:00",
"power": 574497.375
},
{
"time": "2025-04-28 14:45",
"power": 396075.875
},
{
"time": "2025-04-28 08:50",
"power": 498011.78125
},
{
"time": "2025-04-28 21:05",
"power": null
},
{
"time": "2025-04-28 14:40",
"power": 409449.09375
},
{
"time": "2025-04-28 15:10",
"power": 339892.375
},
{
"time": "2025-04-28 19:55",
"power": null
}
]
},
"lastUpdated": "2025-04-28 19:38:13"
},
"hqmdzjbxx": {
"data": {
"installed_panel_area": "",
"country": "China",
"jurisdictionorganization": "",
"notes": "",
"peak_power": 848.7899780273438,
"installed_ac_capacity": "",
"inverters": [
{
"inverter_md": "",
"inverter_num": 0,
"inverter_man": "Growatt"
}
],
"state": "",
"create_date": "2024-12-19",
"dataloggers": [
{
"datalogger_md": "",
"datalogger_man": "Growatt",
"datalogger_num": 19
}
],
"longitude": "121.65325",
"weathersensor_man": "",
"installed_dc_capacity": "",
"weathersensor_num": "",
"designerorganization": "",
"image_url": "images1741661018.jpg",
"designercontact": "",
"plant_type": 0,
"offtakerorganization": "",
"operatororganization": "",
"user_id": 259200,
"name": "上海张江农业",
"irradiationsensor_type": "",
"installerorganization": "",
"weathersensor_md": "",
"postal": "",
"arrays": [
{
"module_man": "Growatt",
"module_md": "",
"num_modules": 0
}
],
"maxs": [
{
"max_man": "Growatt",
"max_md": "",
"max_num": 19
}
],
"ownerorganization": "RMB",
"status": "",
"grid_type": "",
"financiercontact": "",
"city": "上海",
"jurisdictioncontact": "",
"timezone": "GMT+8",
"latitude": "31.17651",
"installercontact": "",
"weather_type": "",
"description": "",
"locale": "en_US",
"fixed_azimuth": "",
"currency": "RMB",
"elevation": "",
"fixed_tilt": "",
"address2": "",
"address1": "上海市浦东新区张江镇科农路1577号张江镇环东农业苑",
"ownercontact": "RMB",
"operatorcontact": "",
"financierorganization": "",
"offtakercontact": "",
"tracker_type": ""
},
"lastUpdated": "2025-04-28 19:38:14"
},
"hqdzsblb": {
"data": {
"devices": [
{
"last_update_time": "2025-04-28 18:54:44",
"device_id": 0,
"device_sn": "PMN3E950DV",
"lost": false,
"model": "S21B00D00T00P0FU01M012C",
"type": 1,
"datalogger_sn": "PGQ0E830DM",
"manufacturer": "Growatt",
"status": 1
},
{
"last_update_time": "2025-04-28 18:54:44",
"device_id": 0,
"device_sn": "PMN3E950DV",
"lost": false,
"model": "S21B00D00T00P0FU01M012C",
"type": 4,
"datalogger_sn": "PGQ0E830DM",
"manufacturer": "Growatt",
"status": 1
},
{
"last_update_time": "2025-04-28 18:52:52",
"device_id": 0,
"device_sn": "KEQ0E6607K",
"lost": true,
"model": "S21B00D00T04P0FU01M01F4",
"type": 1,
"datalogger_sn": "LGK2E5N0LJ",
"manufacturer": "Growatt",
"status": 0
},
{
"last_update_time": "2025-04-28 18:52:52",
"device_id": 0,
"device_sn": "KEQ0E6607K",
"lost": true,
"model": "S21B00D00T04P0FU01M01F4",
"type": 4,
"datalogger_sn": "LGK2E5N0LJ",
"manufacturer": "Growatt",
"status": -1
},
{
"last_update_time": "2025-04-28 18:52:04",
"device_id": 0,
"device_sn": "WVQ0E9D00K",
"lost": true,
"model": "S21B00D00T04P0FU01M0190",
"type": 1,
"datalogger_sn": "PGQ0E8V0K1",
"manufacturer": "Growatt",
"status": 0
},
{
"last_update_time": "2025-04-28 18:52:04",
"device_id": 0,
"device_sn": "WVQ0E9D00K",
"lost": true,
"model": "S21B00D00T04P0FU01M0190",
"type": 4,
"datalogger_sn": "PGQ0E8V0K1",
"manufacturer": "Growatt",
"status": -1
},
{
"last_update_time": "2025-04-28 18:50:22",
"device_id": 0,
"device_sn": "KAQ1E8K04K",
"lost": true,
"model": "S21B00D00T00P0FU01M0096",
"type": 1,
"datalogger_sn": "PWQ0E8G00J",
"manufacturer": "Growatt",
"status": 0
},
{
"last_update_time": "2025-04-28 18:50:22",
"device_id": 0,
"device_sn": "KAQ1E8K04K",
"lost": true,
"model": "S21B00D00T00P0FU01M0096",
"type": 4,
"datalogger_sn": "PWQ0E8G00J",
"manufacturer": "Growatt",
"status": -1
},
{
"last_update_time": "2025-04-28 18:49:53",
"device_id": 0,
"device_sn": "WVQ0E9D047",
"lost": true,
"model": "S21B00D00T04P0FU01M0190",
"type": 1,
"datalogger_sn": "PGQ0E8V0F3",
"manufacturer": "Growatt",
"status": 0
},
{
"last_update_time": "2025-04-28 18:49:53",
"device_id": 0,
"device_sn": "WVQ0E9D047",
"lost": true,
"model": "S21B00D00T04P0FU01M0190",
"type": 4,
"datalogger_sn": "PGQ0E8V0F3",
"manufacturer": "Growatt",
"status": -1
},
{
"last_update_time": "2025-04-28 18:49:46",
"device_id": 0,
"device_sn": "PMN3E950EK",
"lost": true,
"model": "S21B00D00T00P0FU01M012C",
"type": 1,
"datalogger_sn": "PGQ0E8300B",
"manufacturer": "Growatt",
"status": 0
},
{
"last_update_time": "2025-04-28 18:49:46",
"device_id": 0,
"device_sn": "PMN3E950EK",
"lost": true,
"model": "S21B00D00T00P0FU01M012C",
"type": 4,
"datalogger_sn": "PGQ0E8300B",
"manufacturer": "Growatt",
"status": -1
},
{
"last_update_time": "2025-04-28 18:49:30",
"device_id": 0,
"device_sn": "PMN3E950DL",
"lost": true,
"model": "S21B00D00T00P0FU01M012C",
"type": 1,
"datalogger_sn": "PGQ0E830HW",
"manufacturer": "Growatt",
"status": 0
},
{
"last_update_time": "2025-04-28 18:49:30",
"device_id": 0,
"device_sn": "PMN3E950DL",
"lost": true,
"model": "S21B00D00T00P0FU01M012C",
"type": 4,
"datalogger_sn": "PGQ0E830HW",
"manufacturer": "Growatt",
"status": -1
},
{
"last_update_time": "2025-04-28 18:49:28",
"device_id": 0,
"device_sn": "KEQ0E6607G",
"lost": true,
"model": "S21B00D00T04P0FU01M01F4",
"type": 1,
"datalogger_sn": "LGK2E5S1SX",
"manufacturer": "Growatt",
"status": 0
},
{
"last_update_time": "2025-04-28 18:49:28",
"device_id": 0,
"device_sn": "KEQ0E6607G",
"lost": true,
"model": "S21B00D00T04P0FU01M01F4",
"type": 4,
"datalogger_sn": "LGK2E5S1SX",
"manufacturer": "Growatt",
"status": -1
},
{
"last_update_time": "2025-04-28 18:48:52",
"device_id": 0,
"device_sn": "KEQ0E6607L",
"lost": true,
"model": "S21B00D00T04P0FU01M01F4",
"type": 1,
"datalogger_sn": "LGK2E5S1SP",
"manufacturer": "Growatt",
"status": 0
},
{
"last_update_time": "2025-04-28 18:48:52",
"device_id": 0,
"device_sn": "KEQ0E6607L",
"lost": true,
"model": "S21B00D00T04P0FU01M01F4",
"type": 4,
"datalogger_sn": "LGK2E5S1SP",
"manufacturer": "Growatt",
"status": -1
},
{
"last_update_time": "2025-04-28 18:47:53",
"device_id": 0,
"device_sn": "KEQ0E66076",
"lost": true,
"model": "S21B00D00T04P0FU01M01F4",
"type": 1,
"datalogger_sn": "LGK2E5S1TX",
"manufacturer": "Growatt",
"status": 0
},
{
"last_update_time": "2025-04-28 18:47:53",
"device_id": 0,
"device_sn": "KEQ0E66076",
"lost": true,
"model": "S21B00D00T04P0FU01M01F4",
"type": 4,
"datalogger_sn": "LGK2E5S1TX",
"manufacturer": "Growatt",
"status": -1
},
{
"last_update_time": "2025-04-28 18:47:51",
"device_id": 0,
"device_sn": "KEQ0E6607Q",
"lost": true,
"model": "S21B00D00T04P0FU01M01F4",
"type": 1,
"datalogger_sn": "LGK2E5N13X",
"manufacturer": "Growatt",
"status": 0
},
{
"last_update_time": "2025-04-28 18:47:51",
"device_id": 0,
"device_sn": "KEQ0E6607Q",
"lost": true,
"model": "S21B00D00T04P0FU01M01F4",
"type": 4,
"datalogger_sn": "LGK2E5N13X",
"manufacturer": "Growatt",
"status": -1
},
{
"last_update_time": "2025-04-28 18:47:51",
"device_id": 0,
"device_sn": "KEQ0E6607N",
"lost": true,
"model": "S21B00D00T04P0FU01M01F4",
"type": 1,
"datalogger_sn": "LGK2E5N138",
"manufacturer": "Growatt",
"status": 0
},
{
"last_update_time": "2025-04-28 18:47:51",
"device_id": 0,
"device_sn": "KEQ0E6607N",
"lost": true,
"model": "S21B00D00T04P0FU01M01F4",
"type": 4,
"datalogger_sn": "LGK2E5N138",
"manufacturer": "Growatt",
"status": -1
},
{
"last_update_time": "2025-04-28 18:47:43",
"device_id": 0,
"device_sn": "KEQ0E6607H",
"lost": true,
"model": "S21B00D00T04P0FU01M01F4",
"type": 1,
"datalogger_sn": "LGK2E5S1T2",
"manufacturer": "Growatt",
"status": 0
},
{
"last_update_time": "2025-04-28 18:47:43",
"device_id": 0,
"device_sn": "KEQ0E6607H",
"lost": true,
"model": "S21B00D00T04P0FU01M01F4",
"type": 4,
"datalogger_sn": "LGK2E5S1T2",
"manufacturer": "Growatt",
"status": -1
},
{
"last_update_time": "2025-04-28 18:46:57",
"device_id": 0,
"device_sn": "WVQ0E9D03K",
"lost": true,
"model": "S21B00D00T04P0FU01M0190",
"type": 1,
"datalogger_sn": "PGQ0E8V08X",
"manufacturer": "Growatt",
"status": 0
},
{
"last_update_time": "2025-04-28 18:46:57",
"device_id": 0,
"device_sn": "WVQ0E9D03K",
"lost": true,
"model": "S21B00D00T04P0FU01M0190",
"type": 4,
"datalogger_sn": "PGQ0E8V08X",
"manufacturer": "Growatt",
"status": -1
},
{
"last_update_time": "2025-04-28 18:46:28",
"device_id": 0,
"device_sn": "KEQ0E6607B",
"lost": true,
"model": "S21B00D00T04P0FU01M01F4",
"type": 1,
"datalogger_sn": "LGK2E5S1LS",
"manufacturer": "Growatt",
"status": 0
},
{
"last_update_time": "2025-04-28 18:46:28",
"device_id": 0,
"device_sn": "KEQ0E6607B",
"lost": true,
"model": "S21B00D00T04P0FU01M01F4",
"type": 4,
"datalogger_sn": "LGK2E5S1LS",
"manufacturer": "Growatt",
"status": -1
},
{
"last_update_time": "2025-04-28 18:45:29",
"device_id": 0,
"device_sn": "WVQ0E9D049",
"lost": true,
"model": "S21B00D00T04P0FU01M0190",
"type": 1,
"datalogger_sn": "PGQ0E8V0JY",
"manufacturer": "Growatt",
"status": 0
},
{
"last_update_time": "2025-04-28 18:45:29",
"device_id": 0,
"device_sn": "WVQ0E9D049",
"lost": true,
"model": "S21B00D00T04P0FU01M0190",
"type": 4,
"datalogger_sn": "PGQ0E8V0JY",
"manufacturer": "Growatt",
"status": -1
},
{
"last_update_time": "2025-04-28 18:44:41",
"device_id": 0,
"device_sn": "KEQ0E6607E",
"lost": true,
"model": "S21B00D00T04P0FU01M01F4",
"type": 1,
"datalogger_sn": "LGK2E5S1LP",
"manufacturer": "Growatt",
"status": 0
},
{
"last_update_time": "2025-04-28 18:44:41",
"device_id": 0,
"device_sn": "KEQ0E6607E",
"lost": true,
"model": "S21B00D00T04P0FU01M01F4",
"type": 4,
"datalogger_sn": "LGK2E5S1LP",
"manufacturer": "Growatt",
"status": -1
},
{
"last_update_time": "2025-04-28 18:44:40",
"device_id": 0,
"device_sn": "WVQ0E9D04F",
"lost": true,
"model": "S21B00D00T04P0FU01M0190",
"type": 1,
"datalogger_sn": "PGQ0E8V0FE",
"manufacturer": "Growatt",
"status": 0
},
{
"last_update_time": "2025-04-28 18:44:40",
"device_id": 0,
"device_sn": "WVQ0E9D04F",
"lost": true,
"model": "S21B00D00T04P0FU01M0190",
"type": 4,
"datalogger_sn": "PGQ0E8V0FE",
"manufacturer": "Growatt",
"status": -1
},
{
"last_update_time": "2025-04-28 18:42:19",
"device_id": 0,
"device_sn": "KEQ0E6605Z",
"lost": true,
"model": "S21B00D00T04P0FU01M01F4",
"type": 1,
"datalogger_sn": "LGK2E5S1SU",
"manufacturer": "Growatt",
"status": 0
},
{
"last_update_time": "2025-04-28 18:42:19",
"device_id": 0,
"device_sn": "KEQ0E6605Z",
"lost": true,
"model": "S21B00D00T04P0FU01M01F4",
"type": 4,
"datalogger_sn": "LGK2E5S1SU",
"manufacturer": "Growatt",
"status": -1
}
],
"count": 19
},
"lastUpdated": "2025-04-28 19:38:14"
}
},
"870225": {
"hqmdzsjgl": {
"data": {
"total_energy": "69024.9",
"last_update_time": "2025-04-28 18:51:38",
"carbon_offset": "0",
"efficiency": "",
"monthly_energy": "22069.6",
"peak_power_actual": 175,
"timezone": "GMT+8",
"current_power": 0,
"yearly_energy": "64312",
"today_energy": "1033.2"
},
"lastUpdated": "2025-04-28 19:37:59"
},
"hqmdzlsfdl": {
"data": {
"energys": [
{
"date": "2025-04-21",
"energy": "554.5"
},
{
"date": "2025-04-22",
"energy": "371.5"
},
{
"date": "2025-04-23",
"energy": "816.5"
},
{
"date": "2025-04-24",
"energy": "573.9"
},
{
"date": "2025-04-25",
"energy": "997.3"
},
{
"date": "2025-04-26",
"energy": "1012"
},
{
"date": "2025-04-27",
"energy": "442.6"
},
{
"date": "2025-04-28",
"energy": "1033.2"
}
],
"count": 8,
"time_unit": "day"
},
"lastUpdated": "2025-04-28 19:38:00"
},
"hqmdzmytgl": {
"data": {
"count": 288,
"powers": [
{
"time": "2025-04-28 01:55",
"power": null
},
{
"time": "2025-04-28 18:50",
"power": null
},
{
"time": "2025-04-28 02:25",
"power": null
},
{
"time": "2025-04-28 08:05",
"power": 77191.203125
},
{
"time": "2025-04-28 02:20",
"power": null
},
{
"time": "2025-04-28 07:35",
"power": 60973
},
{
"time": "2025-04-28 08:00",
"power": 74331.796875
},
{
"time": "2025-04-28 20:10",
"power": null
},
{
"time": "2025-04-28 07:30",
"power": 58370.19921875
},
{
"time": "2025-04-28 01:50",
"power": null
},
{
"time": "2025-04-28 14:15",
"power": 107307.6015625
},
{
"time": "2025-04-28 13:45",
"power": 115934.6953125
},
{
"time": "2025-04-28 20:05",
"power": null
},
{
"time": "2025-04-28 19:25",
"power": null
},
{
"time": "2025-04-28 14:10",
"power": 108915.8046875
},
{
"time": "2025-04-28 19:20",
"power": null
},
{
"time": "2025-04-28 13:40",
"power": 116564.6015625
},
{
"time": "2025-04-28 18:55",
"power": null
},
{
"time": "2025-04-28 02:15",
"power": null
},
{
"time": "2025-04-28 01:45",
"power": null
},
{
"time": "2025-04-28 19:30",
"power": null
},
{
"time": "2025-04-28 07:25",
"power": 56220.796875
},
{
"time": "2025-04-28 20:25",
"power": null
},
{
"time": "2025-04-28 06:55",
"power": 41327.5
},
{
"time": "2025-04-28 02:10",
"power": null
},
{
"time": "2025-04-28 20:20",
"power": null
},
{
"time": "2025-04-28 01:40",
"power": null
},
{
"time": "2025-04-28 07:20",
"power": 53515.1015625
},
{
"time": "2025-04-28 14:25",
"power": 102525.796875
},
{
"time": "2025-04-28 13:55",
"power": 112349.6015625
},
{
"time": "2025-04-28 06:50",
"power": 39563.5
},
{
"time": "2025-04-28 20:15",
"power": null
},
{
"time": "2025-04-28 13:50",
"power": 113038
},
{
"time": "2025-04-28 19:35",
"power": null
},
{
"time": "2025-04-28 14:20",
"power": 104899.703125
},
{
"time": "2025-04-28 02:45",
"power": null
},
{
"time": "2025-04-28 03:15",
"power": null
},
{
"time": "2025-04-28 02:40",
"power": null
},
{
"time": "2025-04-28 03:10",
"power": null
},
{
"time": "2025-04-28 08:25",
"power": 84411
},
{
"time": "2025-04-28 07:55",
"power": 71097.703125
},
{
"time": "2025-04-28 08:20",
"power": 81666.203125
},
{
"time": "2025-04-28 07:50",
"power": 68657.5
},
{
"time": "2025-04-28 13:25",
"power": 120053.90625
},
{
"time": "2025-04-28 12:55",
"power": 127762.1015625
},
{
"time": "2025-04-28 18:35",
"power": 208.59999084472656
},
{
"time": "2025-04-28 19:05",
"power": null
},
{
"time": "2025-04-28 13:20",
"power": 121548.703125
},
{
"time": "2025-04-28 18:30",
"power": 412.1999816894531
},
{
"time": "2025-04-28 12:50",
"power": 129037.6015625
},
{
"time": "2025-04-28 19:00",
"power": null
},
{
"time": "2025-04-28 03:05",
"power": null
},
{
"time": "2025-04-28 18:40",
"power": 158.60000610351562
},
{
"time": "2025-04-28 02:35",
"power": null
},
{
"time": "2025-04-28 08:15",
"power": 76789.703125
},
{
"time": "2025-04-28 02:30",
"power": null
},
{
"time": "2025-04-28 07:45",
"power": 65322.296875
},
{
"time": "2025-04-28 03:00",
"power": null
},
{
"time": "2025-04-28 20:00",
"power": null
},
{
"time": "2025-04-28 08:10",
"power": 77096.5
},
{
"time": "2025-04-28 13:35",
"power": 117209.1015625
},
{
"time": "2025-04-28 07:40",
"power": 61438.203125
},
{
"time": "2025-04-28 14:05",
"power": 109644.703125
},
{
"time": "2025-04-28 18:45",
"power": 71.69999694824219
},
{
"time": "2025-04-28 19:15",
"power": null
},
{
"time": "2025-04-28 14:00",
"power": 111138.09375
},
{
"time": "2025-04-28 19:10",
"power": null
},
{
"time": "2025-04-28 13:30",
"power": 118231.296875
},
{
"time": "2025-04-28 00:45",
"power": null
},
{
"time": "2025-04-28 23:45",
"power": null
},
{
"time": "2025-04-28 01:10",
"power": null
},
{
"time": "2025-04-28 01:15",
"power": null
},
{
"time": "2025-04-28 05:55",
"power": 9351.400390625
},
{
"time": "2025-04-28 06:25",
"power": 24452.400390625
},
{
"time": "2025-04-28 05:50",
"power": 7587.599609375
},
{
"time": "2025-04-28 00:40",
"power": null
},
{
"time": "2025-04-28 23:40",
"power": null
},
{
"time": "2025-04-28 06:20",
"power": 27297.3984375
},
{
"time": "2025-04-28 12:35",
"power": 130432
},
{
"time": "2025-04-28 13:00",
"power": 126670.296875
},
{
"time": "2025-04-28 13:05",
"power": 125537.296875
},
{
"time": "2025-04-28 17:45",
"power": 10380.900390625
},
{
"time": "2025-04-28 18:15",
"power": 1931.4000244140625
},
{
"time": "2025-04-28 17:40",
"power": 11770.7001953125
},
{
"time": "2025-04-28 12:30",
"power": 130941.6015625
},
{
"time": "2025-04-28 18:10",
"power": 2913.800048828125
},
{
"time": "2025-04-28 23:55",
"power": null
},
{
"time": "2025-04-28 01:00",
"power": null
},
{
"time": "2025-04-28 17:50",
"power": 8654.7001953125
},
{
"time": "2025-04-28 06:15",
"power": 8506.5
},
{
"time": "2025-04-28 01:05",
"power": null
},
{
"time": "2025-04-28 00:35",
"power": null
},
{
"time": "2025-04-28 05:45",
"power": 5190
},
{
"time": "2025-04-28 05:40",
"power": 3772.7001953125
},
{
"time": "2025-04-28 00:30",
"power": null
},
{
"time": "2025-04-28 23:50",
"power": null
},
{
"time": "2025-04-28 06:10",
"power": 12770.400390625
},
{
"time": "2025-04-28 12:45",
"power": 130165.296875
},
{
"time": "2025-04-28 13:15",
"power": 122855.703125
},
{
"time": "2025-04-28 17:55",
"power": 7289.80029296875
},
{
"time": "2025-04-28 18:25",
"power": 703.5
},
{
"time": "2025-04-28 13:10",
"power": 123386.5
},
{
"time": "2025-04-28 18:20",
"power": 1174.800048828125
},
{
"time": "2025-04-28 12:40",
"power": 130617.5
},
{
"time": "2025-04-28 01:35",
"power": null
},
{
"time": "2025-04-28 02:05",
"power": null
},
{
"time": "2025-04-28 22:55",
"power": null
},
{
"time": "2025-04-28 02:00",
"power": null
},
{
"time": "2025-04-28 23:25",
"power": null
},
{
"time": "2025-04-28 06:45",
"power": 37272.1015625
},
{
"time": "2025-04-28 07:15",
"power": 51064.6015625
},
{
"time": "2025-04-28 07:10",
"power": 49083.6015625
},
{
"time": "2025-04-28 06:40",
"power": 35735.1015625
},
{
"time": "2025-04-28 01:30",
"power": null
},
{
"time": "2025-04-28 22:50",
"power": null
},
{
"time": "2025-04-28 23:20",
"power": null
},
{
"time": "2025-04-28 11:45",
"power": 134079.890625
},
{
"time": "2025-04-28 12:10",
"power": 132004
},
{
"time": "2025-04-28 12:15",
"power": 131231.59375
},
{
"time": "2025-04-28 16:50",
"power": 30348.8984375
},
{
"time": "2025-04-28 17:25",
"power": 17223.19921875
},
{
"time": "2025-04-28 17:20",
"power": 18746.900390625
},
{
"time": "2025-04-28 16:55",
"power": 27838.90234375
},
{
"time": "2025-04-28 11:40",
"power": 132531
},
{
"time": "2025-04-28 00:55",
"power": null
},
{
"time": "2025-04-28 23:35",
"power": null
},
{
"time": "2025-04-28 07:05",
"power": 46619.6015625
},
{
"time": "2025-04-28 01:25",
"power": null
},
{
"time": "2025-04-28 06:35",
"power": 34885.5
},
{
"time": "2025-04-28 06:30",
"power": 32100.701171875
},
{
"time": "2025-04-28 01:20",
"power": null
},
{
"time": "2025-04-28 07:00",
"power": 44042.19921875
},
{
"time": "2025-04-28 00:50",
"power": null
},
{
"time": "2025-04-28 23:30",
"power": null
},
{
"time": "2025-04-28 11:55",
"power": 132079.703125
},
{
"time": "2025-04-28 18:05",
"power": 4197.5
},
{
"time": "2025-04-28 12:25",
"power": 132525.5
},
{
"time": "2025-04-28 17:35",
"power": 13661.701171875
},
{
"time": "2025-04-28 11:50",
"power": 132831.890625
},
{
"time": "2025-04-28 12:20",
"power": 131490.5
},
{
"time": "2025-04-28 17:30",
"power": 15468.1005859375
},
{
"time": "2025-04-28 18:00",
"power": 5721.30029296875
},
{
"time": "2025-04-28 00:00",
"power": null
},
{
"time": "2025-04-28 23:00",
"power": null
},
{
"time": "2025-04-28 05:15",
"power": 409.6000061035156
},
{
"time": "2025-04-28 00:05",
"power": null
},
{
"time": "2025-04-28 22:35",
"power": null
},
{
"time": "2025-04-28 23:05",
"power": null
},
{
"time": "2025-04-28 05:10",
"power": 0
},
{
"time": "2025-04-28 04:45",
"power": null
},
{
"time": "2025-04-28 09:55",
"power": 120398.1015625
},
{
"time": "2025-04-28 04:40",
"power": null
},
{
"time": "2025-04-28 22:30",
"power": null
},
{
"time": "2025-04-28 11:20",
"power": 132976
},
{
"time": "2025-04-28 10:55",
"power": 130156.59375
},
{
"time": "2025-04-28 09:50",
"power": 116950.3984375
},
{
"time": "2025-04-28 11:25",
"power": 134023.40625
},
{
"time": "2025-04-28 17:05",
"power": 24290.400390625
},
{
"time": "2025-04-28 17:00",
"power": 25891.19921875
},
{
"time": "2025-04-28 16:30",
"power": 38961.8984375
},
{
"time": "2025-04-28 16:35",
"power": 37055.19921875
},
{
"time": "2025-04-28 10:50",
"power": 129444.6953125
},
{
"time": "2025-04-28 23:10",
"power": null
},
{
"time": "2025-04-28 22:45",
"power": null
},
{
"time": "2025-04-28 04:35",
"power": null
},
{
"time": "2025-04-28 23:15",
"power": null
},
{
"time": "2025-04-28 05:05",
"power": 0
},
{
"time": "2025-04-28 05:00",
"power": 0
},
{
"time": "2025-04-28 09:45",
"power": 118483.6015625
},
{
"time": "2025-04-28 22:40",
"power": null
},
{
"time": "2025-04-28 04:30",
"power": null
},
{
"time": "2025-04-28 09:40",
"power": 106085
},
{
"time": "2025-04-28 12:00",
"power": 132121.40625
},
{
"time": "2025-04-28 12:05",
"power": 132676
},
{
"time": "2025-04-28 17:15",
"power": 20813.80078125
},
{
"time": "2025-04-28 11:35",
"power": 133429.703125
},
{
"time": "2025-04-28 16:40",
"power": 34407.796875
},
{
"time": "2025-04-28 16:45",
"power": 32398.30078125
},
{
"time": "2025-04-28 11:30",
"power": 133616
},
{
"time": "2025-04-28 17:10",
"power": 22214.099609375
},
{
"time": "2025-04-28 21:40",
"power": null
},
{
"time": "2025-04-28 22:10",
"power": null
},
{
"time": "2025-04-28 00:20",
"power": null
},
{
"time": "2025-04-28 06:05",
"power": 16044.8994140625
},
{
"time": "2025-04-28 00:25",
"power": null
},
{
"time": "2025-04-28 22:15",
"power": null
},
{
"time": "2025-04-28 06:00",
"power": 11648.900390625
},
{
"time": "2025-04-28 05:35",
"power": 2956.5
},
{
"time": "2025-04-28 21:45",
"power": null
},
{
"time": "2025-04-28 05:30",
"power": 2641.7998046875
},
{
"time": "2025-04-28 10:30",
"power": 127356.6015625
},
{
"time": "2025-04-28 16:15",
"power": 48267
},
{
"time": "2025-04-28 11:00",
"power": 130726.796875
},
{
"time": "2025-04-28 10:35",
"power": 127840.796875
},
{
"time": "2025-04-28 11:05",
"power": 132195.5
},
{
"time": "2025-04-28 15:40",
"power": 65195.1953125
},
{
"time": "2025-04-28 15:45",
"power": 61829.203125
},
{
"time": "2025-04-28 16:10",
"power": 50033.30078125
},
{
"time": "2025-04-28 22:20",
"power": null
},
{
"time": "2025-04-28 21:50",
"power": null
},
{
"time": "2025-04-28 00:10",
"power": null
},
{
"time": "2025-04-28 05:25",
"power": 1821
},
{
"time": "2025-04-28 00:15",
"power": null
},
{
"time": "2025-04-28 22:25",
"power": null
},
{
"time": "2025-04-28 04:55",
"power": null
},
{
"time": "2025-04-28 21:55",
"power": null
},
{
"time": "2025-04-28 04:50",
"power": null
},
{
"time": "2025-04-28 05:20",
"power": 1030.4000244140625
},
{
"time": "2025-04-28 11:10",
"power": 133369
},
{
"time": "2025-04-28 16:25",
"power": 42011.703125
},
{
"time": "2025-04-28 10:45",
"power": 129630.296875
},
{
"time": "2025-04-28 11:15",
"power": 133660.40625
},
{
"time": "2025-04-28 16:20",
"power": 46190.3984375
},
{
"time": "2025-04-28 15:50",
"power": 59139.6015625
},
{
"time": "2025-04-28 15:55",
"power": 58424
},
{
"time": "2025-04-28 10:40",
"power": 129366.296875
},
{
"time": "2025-04-28 20:50",
"power": null
},
{
"time": "2025-04-28 03:35",
"power": null
},
{
"time": "2025-04-28 04:05",
"power": null
},
{
"time": "2025-04-28 03:30",
"power": null
},
{
"time": "2025-04-28 10:05",
"power": 121474.1953125
},
{
"time": "2025-04-28 21:25",
"power": null
},
{
"time": "2025-04-28 09:15",
"power": 103958.796875
},
{
"time": "2025-04-28 04:00",
"power": null
},
{
"time": "2025-04-28 20:55",
"power": null
},
{
"time": "2025-04-28 08:45",
"power": 83934.5
},
{
"time": "2025-04-28 21:20",
"power": null
},
{
"time": "2025-04-28 09:10",
"power": 93487.8984375
},
{
"time": "2025-04-28 08:40",
"power": 95247.3984375
},
{
"time": "2025-04-28 15:25",
"power": 73114.1953125
},
{
"time": "2025-04-28 10:10",
"power": 124357.796875
},
{
"time": "2025-04-28 10:15",
"power": 124513.796875
},
{
"time": "2025-04-28 14:50",
"power": 93502.203125
},
{
"time": "2025-04-28 14:55",
"power": 90931.5
},
{
"time": "2025-04-28 15:20",
"power": 76621
},
{
"time": "2025-04-28 22:00",
"power": null
},
{
"time": "2025-04-28 02:55",
"power": null
},
{
"time": "2025-04-28 03:25",
"power": null
},
{
"time": "2025-04-28 22:05",
"power": null
},
{
"time": "2025-04-28 09:05",
"power": 90665.90625
},
{
"time": "2025-04-28 03:20",
"power": null
},
{
"time": "2025-04-28 08:35",
"power": 80983.8984375
},
{
"time": "2025-04-28 21:35",
"power": null
},
{
"time": "2025-04-28 09:00",
"power": 94497.296875
},
{
"time": "2025-04-28 02:50",
"power": null
},
{
"time": "2025-04-28 21:30",
"power": null
},
{
"time": "2025-04-28 10:20",
"power": 125886.8984375
},
{
"time": "2025-04-28 16:05",
"power": 53201.8984375
},
{
"time": "2025-04-28 08:30",
"power": 88070.296875
},
{
"time": "2025-04-28 15:35",
"power": 66467.3984375
},
{
"time": "2025-04-28 10:25",
"power": 127191
},
{
"time": "2025-04-28 15:30",
"power": 70337
},
{
"time": "2025-04-28 16:00",
"power": 55899.796875
},
{
"time": "2025-04-28 19:40",
"power": null
},
{
"time": "2025-04-28 04:25",
"power": null
},
{
"time": "2025-04-28 04:20",
"power": null
},
{
"time": "2025-04-28 20:35",
"power": null
},
{
"time": "2025-04-28 03:55",
"power": null
},
{
"time": "2025-04-28 09:35",
"power": 116492.8984375
},
{
"time": "2025-04-28 21:00",
"power": null
},
{
"time": "2025-04-28 03:50",
"power": null
},
{
"time": "2025-04-28 20:30",
"power": null
},
{
"time": "2025-04-28 15:05",
"power": 84912.09375
},
{
"time": "2025-04-28 09:30",
"power": 109698.5
},
{
"time": "2025-04-28 14:35",
"power": 100088.1015625
},
{
"time": "2025-04-28 15:00",
"power": 87122.90625
},
{
"time": "2025-04-28 19:45",
"power": null
},
{
"time": "2025-04-28 14:30",
"power": 99610.8046875
},
{
"time": "2025-04-28 19:50",
"power": null
},
{
"time": "2025-04-28 03:45",
"power": null
},
{
"time": "2025-04-28 04:15",
"power": null
},
{
"time": "2025-04-28 21:15",
"power": null
},
{
"time": "2025-04-28 04:10",
"power": null
},
{
"time": "2025-04-28 20:45",
"power": null
},
{
"time": "2025-04-28 09:25",
"power": 111771
},
{
"time": "2025-04-28 08:55",
"power": 94621.703125
},
{
"time": "2025-04-28 21:10",
"power": null
},
{
"time": "2025-04-28 03:40",
"power": null
},
{
"time": "2025-04-28 20:40",
"power": null
},
{
"time": "2025-04-28 09:20",
"power": 110041.09375
},
{
"time": "2025-04-28 15:15",
"power": 79816.6015625
},
{
"time": "2025-04-28 10:00",
"power": 121888.296875
},
{
"time": "2025-04-28 08:50",
"power": 103744.796875
},
{
"time": "2025-04-28 14:45",
"power": 95543.703125
},
{
"time": "2025-04-28 21:05",
"power": null
},
{
"time": "2025-04-28 14:40",
"power": 96056.703125
},
{
"time": "2025-04-28 15:10",
"power": 80937.796875
},
{
"time": "2025-04-28 19:55",
"power": null
}
]
},
"lastUpdated": "2025-04-28 19:38:04"
},
"hqmdzjbxx": {
"data": {
"installed_panel_area": "",
"country": "China",
"jurisdictionorganization": "",
"notes": "",
"peak_power": 175.44000244140625,
"installed_ac_capacity": "",
"inverters": [
{
"inverter_md": "",
"inverter_num": 0,
"inverter_man": "Growatt"
}
],
"state": "",
"create_date": "2024-12-19",
"dataloggers": [
{
"datalogger_md": "",
"datalogger_man": "Growatt",
"datalogger_num": 4
}
],
"longitude": "121.66367",
"weathersensor_man": "",
"installed_dc_capacity": "",
"weathersensor_num": "",
"designerorganization": "",
"image_url": "images1737510307.jpg",
"designercontact": "",
"plant_type": 0,
"offtakerorganization": "",
"operatororganization": "",
"user_id": 259200,
"name": "上海张江农业投资卉绿蔬菜生态园艺场",
"irradiationsensor_type": "",
"installerorganization": "",
"weathersensor_md": "",
"postal": "",
"arrays": [
{
"module_man": "Growatt",
"module_md": "",
"num_modules": 0
}
],
"maxs": [
{
"max_man": "Growatt",
"max_md": "",
"max_num": 4
}
],
"ownerorganization": "RMB",
"status": "",
"grid_type": "",
"financiercontact": "",
"city": "上海",
"jurisdictioncontact": "",
"timezone": "GMT+8",
"latitude": "31.18063",
"installercontact": "",
"weather_type": "",
"description": "",
"locale": "en_US",
"fixed_azimuth": "",
"currency": "RMB",
"elevation": "",
"fixed_tilt": "",
"address2": "",
"address1": "上海市浦东新区张江镇科农路2159号",
"ownercontact": "RMB",
"operatorcontact": "",
"financierorganization": "",
"offtakercontact": "",
"tracker_type": ""
},
"lastUpdated": "2025-04-28 19:38:04"
},
"hqdzsblb": {
"data": {
"devices": [
{
"last_update_time": "2025-04-28 18:49:12",
"device_id": 0,
"device_sn": "PMN3E950E9",
"lost": true,
"model": "S21B00D00T00P0FU01M012C",
"type": 1,
"datalogger_sn": "PGQ0E830E2",
"manufacturer": "Growatt",
"status": 0
},
{
"last_update_time": "2025-04-28 18:49:12",
"device_id": 0,
"device_sn": "PMN3E950E9",
"lost": true,
"model": "S21B00D00T00P0FU01M012C",
"type": 4,
"datalogger_sn": "PGQ0E830E2",
"manufacturer": "Growatt",
"status": -1
},
{
"last_update_time": "2025-04-28 18:49:10",
"device_id": 0,
"device_sn": "PMN3E950DP",
"lost": true,
"model": "S21B00D00T00P0FU01M012C",
"type": 1,
"datalogger_sn": "PGQ0E830DL",
"manufacturer": "Growatt",
"status": 0
},
{
"last_update_time": "2025-04-28 18:49:10",
"device_id": 0,
"device_sn": "PMN3E950DP",
"lost": true,
"model": "S21B00D00T00P0FU01M012C",
"type": 4,
"datalogger_sn": "PGQ0E830DL",
"manufacturer": "Growatt",
"status": -1
},
{
"last_update_time": "2025-04-28 18:44:40",
"device_id": 0,
"device_sn": "KEQ0E6607M",
"lost": true,
"model": "S21B00D00T04P0FU01M01F4",
"type": 1,
"datalogger_sn": "LGK2E5N124",
"manufacturer": "Growatt",
"status": 0
},
{
"last_update_time": "2025-04-28 18:44:40",
"device_id": 0,
"device_sn": "KEQ0E6607M",
"lost": true,
"model": "S21B00D00T04P0FU01M01F4",
"type": 4,
"datalogger_sn": "LGK2E5N124",
"manufacturer": "Growatt",
"status": -1
},
{
"last_update_time": "2025-04-28 18:44:40",
"device_id": 0,
"device_sn": "KEQ0E6607F",
"lost": true,
"model": "S21B00D00T04P0FU01M01F4",
"type": 1,
"datalogger_sn": "LGK2E5S1W2",
"manufacturer": "Growatt",
"status": 0
},
{
"last_update_time": "2025-04-28 18:44:40",
"device_id": 0,
"device_sn": "KEQ0E6607F",
"lost": true,
"model": "S21B00D00T04P0FU01M01F4",
"type": 4,
"datalogger_sn": "LGK2E5S1W2",
"manufacturer": "Growatt",
"status": -1
}
],
"count": 4
},
"lastUpdated": "2025-04-28 19:38:07"
}
}
}
\ No newline at end of file
No preview for this file type
No preview for this file type
/**
* 左屏
*/
import { systemConfig } from "../config/serverConfig";
import { get2, getGuangFu } from "../data/interface/dataInterface";
import { getKeyValueOut, getOnceYBarChartOut } from "../dataPackage/out";
import { get } from "../util/request";
let guangfuData = {
jbqk: [
{
key: "安全运行天数",
value: 62,
unit:"天"
},
{
key: "组件总功率",
value: 1024,
unit:"kWp"
},
{
key: "设备总数",
value: 23,
unit:"台"
},
],
nhfx: {
count: [
{key: '年用电量', value: '85693.7', unit:"kwp"},
{key: '光伏发电量', value: '85872.1', unit:"kwp"}
],
charData: [
{key: 2019, value: 0},
{key: 2020, value: 0},
{key: 2021, value: 0},
{key: 2022, value: 0},
{key: 2023, value: 0},
{key: 2024, value: 0.49},
{key: 2025, value: 234.78},
],
dayData: [
{key: '05:00', value: 0},
{key: '06:00', value: 74494.85},
{key: '07:00', value: 1274767.62},
{key: '08:00', value: 3469207.81},
{key: '09:00', value: 5133055.46},
{key: '10:00', value: 6363192.78},
],
},
trsy: {
count: [
{key: '光伏投入成本', value: '307', unit:"万"},
{key: '运维成本', value: '5', unit:"万/年"},
{key: '发电量', value: '85872.1', unit:"kwh"},
{key: '发电时长', value: 1473.64, unit:"h"},
],
charData: [
{key: '2020', value: '0'},
{key: '2021', value: '0'},
{key: '2022', value: '0'},
{key: '2023', value: '0'},
{key: '2024', value: '0'},
{key: '2025', value: '237'},
],
},
ztsj: [
{
key: "装机容量",
value: 848,
unit: "",
},
{
key: "总发电量",
value: "85871.3",
unit: "KW",
},
{
key: "实时功率",
value: 5.80,
unit: "KW",
},
],
xyfxfd: {
count: [
{key: '今日发电', value: '3773.4', unit:"kwh"},
{key: '日功率', value: 4.49, unit:"kw"},
{key: '当前功率', value: 2.56, unit:"kw"},
{key: '等效小时数', value: 0, unit:"h"},
],
chartData: [
{key: '02-11', value: '1167.9'},
{key: '02-12', value: '687.5'},
{key: '02-13', value: '3749.7'},
{key: '02-14', value: '1060.7'},
{key: '02-15', value: '364.8'},
{key: '02-16', value: '3257.1'},
{key: '02-17', value: '2940.3'},
{key: '02-18', value: '3773.6'},
],
},
xyfx: {
count: [
{key: '今日收益', value: 2263.62},
{key: '当月收益', value: 26519.58},
{key: '累计收益', value: '123'},
],
chartData: {
"今年": [
{key: '02-11', value: 700.74},
{key: '02-12', value: 412.5},
{key: '02-13', value: 2249.81},
{key: '02-14', value: 636.42},
{key: '02-15', value: 218.88},
{key: '02-16', value: 1954.25},
{key: '02-17', value: 1764.18},
{key: '02-18', value: 2264.16},
],
"去年": [
{key: '02-11', value: 0},
{key: '02-12', value: 0},
{key: '02-13', value: 0},
{key: '02-14', value: 0},
{key: '02-15', value: 0},
{key: '02-16', value: 0},
{key: '02-17', value: 0},
{key: '02-18', value: 0},
],
},
},
jnjp: {
count: [
{
key: "二氧化碳",
value: "832克/千瓦时",
},
{
key: "氮氧化物",
value: "0.179克/千瓦时",
},
{
key: "二氧化硫",
value: "0.16克/千瓦时",
},
{
key: "电力烟尘",
value: "0.032克/千瓦时",
},
],
chartData: [
],
},
};
/**
* 初始化接口数据
*/
export async function guangfuInit() {
await getGuangFu();
await get2();
console.log();
}
/**
* 左屏
* @param req
* @param res
*/
export async function getLeft(req, res) {
let ret: any = {};
ret['jbqk'] = getKeyValueOut('基本情况', guangfuData.jbqk);
ret['fdglpjzfx'] = getKeyValueOut('能耗分析', guangfuData.nhfx.count);
ret['fdglpjzfxqst'] = getKeyValueOut('发电功率平均值分析趋势图', guangfuData.nhfx.charData);
ret['fdgldtgl'] = getKeyValueOut('发电功率当天分析', guangfuData.nhfx.dayData)
ret['trsy'] = getKeyValueOut('投入使用', guangfuData.trsy.count);
ret['trsyqst'] = getKeyValueOut('投入使用趋势', guangfuData.trsy.charData);
res.send(ret);
}
/**
* 中间
* @param req
* @param res
*/
export async function getData(req, res) {
let ret: any = {};
ret['ztsj'] = getKeyValueOut('整体数据', guangfuData.ztsj);
//source=pc&weather_type=observe&province=上海&city=上海&county=浦东新区
let query = {
source: "pc",
weather_type: "observe",
province: "上海",
city: "上海",
county: "浦东新区"
}
let weatherData: any = await get("https://wis.qq.com/weather/common", query);
let weather = {
"天气": "",
"温度": "",
"风向": "",
"风力等级": "",
"湿度": "",
"降水量": "",
"图片": "",
"光照": ""
}
if (weatherData) {
let observe = weatherData.body.observe;
weather = {
"天气": observe.weather,
"温度": observe.degree,
"风向": observe.wind_direction_name,
"风力等级": observe.wind_power,
"湿度": observe.humidity,
"降水量": observe.precipitation,
"图片": `${systemConfig.imgPath}/天气/${observe.weather}.png`,
"光照": "2000lux"
}
}
ret['weather'] = { title: "天气", dataList: weather };
res.send(ret);
}
/**
* 右屏
* @param req
* @param res
*/
export async function getRight(req, res) {
let ret: any = {};
ret['xyfxfd'] = getKeyValueOut('效益分析-发电量', guangfuData.xyfxfd.count);
ret['xyfxfdqst'] = getKeyValueOut('效益分析-发电量趋势', guangfuData.xyfxfd.chartData);
ret['xyfx'] = getKeyValueOut('效益分析', guangfuData.xyfx.count);
ret['xyfxqst'] = { title: "效益分析趋势", dataList: guangfuData.xyfx.chartData }
ret['jnjp'] = getKeyValueOut('节能减排', guangfuData.jnjp.count);
ret['jnjpqst'] = getKeyValueOut('节能减排趋势', guangfuData.jnjp.chartData);
res.send(ret);
}
/**
* 左屏
*/
import { gfnyTableData } from '../data/table/gfnyData';
import { doubleYBarCharPackage, keyValuePackage, onceYBarChartPackage, rankPackage, tablePackage } from '../dataPackage/inFrontOut';
import { getDoubleYBarChartOut, getKeyValueOut, getOnceYBarChartOut, getTableOut } from '../dataPackage/out';
import { systemConfig } from "../config/serverConfig";
// import { get2, getGuangFu } from "../data/interface/dataInterface";
import { getGuangFu } from "../data/interface/guangFuData";
import { tablePackage } from "../dataPackage/inFrontOut";
import { getKeyValueOut, getOnceYBarChartOut, getTableOut } from "../dataPackage/out";
import { get } from "../util/request";
/* 光伏能源 */
export function getData(req, res) {
// let excelData = gfnyTableData();
// let guangfuData = {
// jbqk: [
// {
// key: "安全运行天数",
// value: 62,
// unit:"天"
// },
// {
// key: "组件总功率",
// value: 1024,
// unit:"kWp"
// },
// {
// key: "设备总数",
// value: 23,
// unit:"台"
// },
// ],
// nhfx: {
// count: [
// {key: '年用电量', value: '85693.7', unit:"kwp"},
// {key: '光伏发电量', value: '85872.1', unit:"kwp"}
// ],
// charData: [
// {key: 2019, value: 0},
// {key: 2020, value: 0},
// {key: 2021, value: 0},
// {key: 2022, value: 0},
// {key: 2023, value: 0},
// {key: 2024, value: 0.49},
// {key: 2025, value: 234.78},
// ],
// dayData: [
// {key: '05:00', value: 0},
// {key: '06:00', value: 74494.85},
// {key: '07:00', value: 1274767.62},
// {key: '08:00', value: 3469207.81},
// {key: '09:00', value: 5133055.46},
// {key: '10:00', value: 6363192.78},
// ],
// },
// trsy: {
// count: [
// {key: '光伏投入成本', value: '307', unit:"万"},
// {key: '运维成本', value: '5', unit:"万/年"},
// {key: '发电量', value: '85872.1', unit:"kwh"},
// {key: '发电时长', value: 1473.64, unit:"h"},
// ],
// charData: [
// {key: '2020', value: '0'},
// {key: '2021', value: '0'},
// {key: '2022', value: '0'},
// {key: '2023', value: '0'},
// {key: '2024', value: '0'},
// {key: '2025', value: '237'},
// ],
// },
// ztsj: [
// {
// key: "装机容量",
// value: 848,
// unit: "",
// },
// {
// key: "总发电量",
// value: "85871.3",
// unit: "KW",
// },
// {
// key: "实时功率",
// value: 5.80,
// unit: "KW",
// },
// ],
// xyfxfd: {
// count: [
// {key: '今日发电', value: '3773.4', unit:"kwh"},
// {key: '日功率', value: 4.49, unit:"kw"},
// {key: '当前功率', value: 2.56, unit:"kw"},
// {key: '等效小时数', value: 0, unit:"h"},
// ],
// chartData: [
// {key: '02-11', value: '1167.9'},
// {key: '02-12', value: '687.5'},
// {key: '02-13', value: '3749.7'},
// {key: '02-14', value: '1060.7'},
// {key: '02-15', value: '364.8'},
// {key: '02-16', value: '3257.1'},
// {key: '02-17', value: '2940.3'},
// {key: '02-18', value: '3773.6'},
// ],
// },
// xyfx: {
// count: [
// {key: '今日收益', value: 2263.62},
// {key: '当月收益', value: 26519.58},
// {key: '累计收益', value: '123'},
// ],
// chartData: {
// "今年": [
// {key: '02-11', value: 700.74},
// {key: '02-12', value: 412.5},
// {key: '02-13', value: 2249.81},
// {key: '02-14', value: 636.42},
// {key: '02-15', value: 218.88},
// {key: '02-16', value: 1954.25},
// {key: '02-17', value: 1764.18},
// {key: '02-18', value: 2264.16},
// ],
// "去年": [
// {key: '02-11', value: 0},
// {key: '02-12', value: 0},
// {key: '02-13', value: 0},
// {key: '02-14', value: 0},
// {key: '02-15', value: 0},
// {key: '02-16', value: 0},
// {key: '02-17', value: 0},
// {key: '02-18', value: 0},
// ],
// },
// },
// jnjp: {
// count: [
// {
// key: "二氧化碳",
// value: "832克/千瓦时",
// },
// {
// key: "氮氧化物",
// value: "0.179克/千瓦时",
// },
// {
// key: "二氧化硫",
// value: "0.16克/千瓦时",
// },
// {
// key: "电力烟尘",
// value: "0.032克/千瓦时",
// },
// ],
// chartData: [
// ],
// },
// };
let ret:any = {};
// let fdglpjzfxPackageData = onceYBarChartPackage( excelData['发电功率平均值分析'], '','');
// ret['fdglpjzfx'] = getOnceYBarChartOut('发电功率平均值分析', fdglpjzfxPackageData);
// let fdglzdzfxPackageData = onceYBarChartPackage( excelData['发电功率最大值分析'], '','');
// ret['fdglzdzfx'] = getOnceYBarChartOut('发电功率最大值分析', fdglzdzfxPackageData);
/**
* 初始化接口数据
*/
export async function guangfuInit() {
// await getGuangFu();
// await get2();
// guangfuData = await getGuangFuWithCache();
console.log();
}
/**
* 左屏
* @param req
* @param res
*/
export async function getLeft(req, res) {
let guangfuData = await getGuangFu();
let ret: any = {};
// let trsyqsPackageData = onceYBarChartPackage( excelData['投入使用趋势'], '','');
// ret['trsyqs'] = getOnceYBarChartOut('投入使用趋势', trsyqsPackageData);
// ret['jbqk'] = getKeyValueOut('基本情况', guangfuData.jbqk);
// let fdlqsPackageData = onceYBarChartPackage( excelData['发电量趋势'], '','');
// ret['fdlqs'] = getOnceYBarChartOut('发电量趋势', fdlqsPackageData);
// ret['fdglpjzfx'] = getKeyValueOut('能耗分析', guangfuData.nhfx.count);
// ret['fdglpjzfxqst'] = getKeyValueOut('发电功率平均值分析趋势图', guangfuData.nhfx.charData);
// ret['fdgldtgl'] = getKeyValueOut('发电功率当天分析', guangfuData.nhfx.dayData)
// let ljjptjPackageData = onceYBarChartPackage( excelData['累计减排统计'], '','');
// ret['ljjptj'] = getOnceYBarChartOut('累计减排统计', ljjptjPackageData);
// ret['trsy'] = getKeyValueOut('投入使用', guangfuData.trsy.count);
// ret['trsyqst'] = getKeyValueOut('投入使用趋势', guangfuData.trsy.charData);
// let jbqkPackageData = keyValuePackage(excelData['基本情况'].dataList);
// ret['jbqk'] = getKeyValueOut('基本情况', jbqkPackageData);
// let nhfxPackageData = keyValuePackage(excelData['能耗分析'].dataList);
// ret['nhfx'] = getKeyValueOut('能耗分析', nhfxPackageData);
ret['jbqk'] = getKeyValueOut('基本情况', guangfuData.jbqk);
// let trsyPackageData = keyValuePackage(excelData['投入使用'].dataList);
// ret['trsy'] = getKeyValueOut('投入使用', trsyPackageData);
ret['sbzs'] = getKeyValueOut('设备总数', guangfuData.sssb.count);
ret['sblxfb'] = getKeyValueOut('设备类型分布', guangfuData.sssb.chartData.设备类型分布);
ret['sbzxztfbqs'] = getKeyValueOut('设备在线状态分布趋势', guangfuData.sssb.chartData.设备在线状态分布趋势);
let sbzxztbgTableData = tablePackage(guangfuData.sssb.chartData.设备在线状态表格.headerList, guangfuData.sssb.chartData.设备在线状态表格.bodyList);
ret['sbzxztbg'] = getTableOut( '设备在线状态表格', sbzxztbgTableData);
// let gfnyPackageData = keyValuePackage(excelData['光伏能源'].dataList);
// ret['gfny'] = getKeyValueOut('光伏能源', gfnyPackageData);
ret['trsy'] = getKeyValueOut('投入使用', guangfuData.trsy.count);
ret['trsyqst'] = getKeyValueOut('发电时长趋势', guangfuData.trsy.chartData);
res.send(ret);
}
// // let xyfxPackageData = keyValuePackage(excelData['效益分析'].dataList);
// // ret['xyfx'] = getKeyValueOut('效益分析', xyfxPackageData);
// let xyfxPackageData = keyValuePackage(excelData['效益分析'].dataList);
// ret['xyfx'] = getKeyValueOut('效益分析', xyfxPackageData);
/**
* 中间
* @param req
* @param res
*/
export async function getData(req, res) {
let guangfuData = await getGuangFu();
let ret: any = {};
// let jnjpPackageData = keyValuePackage(excelData['节能减排'].dataList);
// ret['jnjp'] = getKeyValueOut('节能减排', jnjpPackageData);
ret['ztsj'] = getKeyValueOut('整体数据', guangfuData.ztsj);
//source=pc&weather_type=observe&province=上海&city=上海&county=浦东新区
let query = {
source: "pc",
weather_type: "observe",
province: "上海",
city: "上海",
county: "浦东新区"
}
let weatherData: any = await get("https://wis.qq.com/weather/common", query);
let weather = {
"天气": "",
"温度": "",
"风向": "",
"风力等级": "",
"湿度": "",
"降水量": "",
"图片": "",
"光照": ""
}
if (weatherData) {
let observe = weatherData.body.observe;
weather = {
"天气": observe.weather,
"温度": observe.degree,
"风向": observe.wind_direction_name,
"风力等级": observe.wind_power,
"湿度": observe.humidity,
"降水量": observe.precipitation,
"图片": `${systemConfig.imgPath}/天气/${observe.weather}.png`,
"光照": "2000lux"
}
}
ret['weather'] = { title: "天气", dataList: weather };
res.send(ret);
}
/**
* 右屏
* @param req
* @param res
*/
export async function getRight(req, res) {
let guangfuData = await getGuangFu();
let ret: any = {};
ret['xyfx'] = getKeyValueOut('效益分析', guangfuData.xyfx.count);
ret['xyfxfdqst'] = getKeyValueOut('效益分析-发电量趋势', guangfuData.xyfx.chartData);
ret['syfx'] = getKeyValueOut('收益分析', guangfuData.syfx.count);
ret['syfxrsrfx'] = { title: "日收益趋势", dataList: guangfuData.syfx.chartData }
ret['jnjp'] = getKeyValueOut('节能减排', guangfuData.jnjp.count);
ret['jnjpqst'] = {title:'节能减排趋势', dataList:guangfuData.jnjp.chartData};
res.send(ret);
}
......@@ -3,12 +3,12 @@
*/
import { getGuiYuLeftData } from "../data/interface/guiyu";
import { keyValuePackage, onceYBarChartPackage } from "../dataPackage/inFrontOut";
import { getKeyValueOut, getOnceYBarChartOut } from "../dataPackage/out";
import { guiYuTableData } from "../data/table/tableData";
import { keyValuePackage, onceYBarChartPackage, tablePackage } from "../dataPackage/inFrontOut";
import { getKeyValueOut, getOnceYBarChartOut, getTableOut } from "../dataPackage/out";
export async function getData(req, res) {
let ret:any = {};
let guiYuDataInfo = await getGuiYuLeftData();
......@@ -51,5 +51,71 @@ export async function getData(req, res) {
ret["txcqs"] = {name:"圆形池水质变化趋势", data:[yxcswqsChartData, yxcphqsChartData, yxcdoqsChartData]};
ret["renwu"] = guiYuDataInfo.任务列表;
res.send(ret);
}
export async function getGuiYuExcel(req, res) {
let ret:any = {};
let excelData = await guiYuTableData();
let hzsjData = keyValuePackage(excelData["汇总数据"].dataList);
ret['hzsj'] = getKeyValueOut('汇总数据', hzsjData);
let qbcyData = keyValuePackage(excelData["亲本成鱼"].dataList);
ret['qbcy'] = getKeyValueOut('亲本成鱼', qbcyData);
let qbcyclqsData = keyValuePackage(excelData["亲本成鱼近5年产量趋势"].dataList);
ret['qbcyclqs'] = getKeyValueOut('亲本成鱼近5年产量趋势', qbcyclqsData);
let scyzData = keyValuePackage(excelData["水产养殖"].dataList);
ret['scyz'] = getKeyValueOut('水产养殖', scyzData);
let scyz = excelData["养殖记录"].dataList;
let ymyzsl = [];
scyz.forEach( info => {
let {yzzl, sl} = info;
ymyzsl.push({key:yzzl, value:sl});
});
let ymyzslData = keyValuePackage(ymyzsl);
ret['ymyzsl'] = getKeyValueOut('鱼苗养殖数量', ymyzslData);
let xsjlTableData = tablePackage(excelData["销售记录"].headerList[0], excelData["销售记录"].bodyList);
ret['xsjl'] = getTableOut( '销售记录', xsjlTableData);
let scjl = {};
ymyzslData.forEach( info => {
if (!scjl[info.key]) scjl[info.key] = {yzsl:0, xssl:0};
let yzsl = info.value * 10000; //万尾转成尾
scjl[info.key].yzsl += yzsl;
})
xsjlTableData.dataList.forEach( info => {
if (!scjl[info.key]) scjl[info.key] = {yzsl:0, xssl:0};
scjl[info.key].xssl += info.value;
})
let kcjlData = [];
for (let name in scjl) {
let kcsl = scjl[name].yzsl - scjl[name].xssl;
kcjlData.push({key:name, value:kcsl, unit:"尾"});
}
ret["ymkc"] = getKeyValueOut('鱼苗库存', kcjlData);
res.send(ret);
}
......@@ -5,7 +5,6 @@ import { BizError } from "../../util/bizError";
import { guangfuTableData } from "../table/tableData";
export async function get2() {
let nowTimeMs = new Date().valueOf();
let nowTime = moment().format("YYYY-MM-DD");
......@@ -99,11 +98,7 @@ export async function get2() {
* @returns
*/
export async function getGuangFu() {
return
// return
let result = {
jbqk:[], //基本情况
nhfx:{count:[], charData:[], dayData:[]}, //能耗分析
......@@ -355,6 +350,9 @@ export async function getGuangFu() {
/**
......
import moment = require("moment");
import { dataCenterInterfaceConfig, systemConfig } from "../../config/serverConfig";
import { get } from "../../util/request";
import { guangfuTableData } from "../table/tableData";
import { readDataFile } from "./guangFuWithCache";
import { keyValuePackage } from "../../dataPackage/inFrontOut";
/**
* 获取光伏数据
*/
export async function getGuangFu() {
let apiData = readDataFile();
let nongTouData = apiData["870209"];
let result = {
/**新设计稿 */
jbqk:[], //基本情况
sssb:{count:[], chartData:{设备类型分布:[], 设备在线状态分布趋势:[], 设备在线状态表格:{headerList:["名称", "时间", "状态"], bodyList:[]}}}, //设施设备
trsy:{count:[], chartData:[]}, //投入使用
ztsj:[], //整体数据
xyfx:{count:[], chartData:[]}, //效益分析
syfx:{count:[], chartData:{}}, //收益分析
jnjp:{count:[], chartData:[]} //节能减排
};
//基本情况
let jbqkData:any = {
安全运行天数:0,
组件总功率:'1024kWp',//万雷提供的常量 1577号是 849kWp 2195号是 175kWp
年发电量:0
};
//设施设备
let sssbData = {
设备总数:0
};
//设备类型分布
let sblxfbConf = ["逆变器", "储能机", "其他设备", "单MAX", "SPH", "SPA", "MIN", "PCS", "HPS", "PBD"];
//设备在线状态分布趋势
let sbzxztfbqs = {
在线:0,
断开:0
};
/**获取站点下的设备列表 */
let nthqdzsblb:any = nongTouData.hqdzsblb;
let deviceList = nthqdzsblb.data ? nthqdzsblb.data.devices || [] : [];
sssbData.设备总数 = deviceList.length;
//设备总数
for (let key in sssbData) {
result.sssb.count.push({key, value:sssbData[key]});
}
//设备类型分布
let sblxfbInfo = {1:[], 2:[], 3:[], 4:[], 5:[], 6:[], 7:[], 8:[], 9:[], 10:[]};
deviceList.forEach( info => {
sblxfbInfo[info.type].push(info);
if (info.lpst == 0) sbzxztfbqs.在线 += 1;
else sbzxztfbqs.断开 += 1
})
for (let i = 0; i < sblxfbConf.length; i++) {
result.sssb.chartData.设备类型分布.push({key:sblxfbConf[i], value:sblxfbInfo[i+1].length});
}
//设备在线状态分布趋势
for (let key in sbzxztfbqs) {
result.sssb.chartData.设备在线状态分布趋势.push({key, value:sbzxztfbqs[key]});
}
//设备在线状态表格
for (let key in sblxfbInfo) {
sblxfbInfo[key].forEach( info => {
let lostStr = "";
if (info.lpst == 0) lostStr = "在线";
else lostStr = "断开";
let laseTime = moment(info.last_update_time).format("YYYY年MM月DD日 HH:mm:ss");
let index = parseInt(key) -1;
result.sssb.chartData.设备在线状态表格.bodyList.push([sblxfbConf[index], laseTime, lostStr])
})
}
/**获取某电站基本信息 */
let hqmdzjbxx:any = nongTouData.hqmdzjbxx;
let aqyxts = 0;
if (hqmdzjbxx.data.create_date) {
let diffDay = moment(moment()).diff(hqmdzjbxx.data.create_date, 'days');
aqyxts = Math.max(jbqkData.安全运行天数, diffDay);
jbqkData.安全运行天数 = aqyxts + "天";
}
/**获取某电站数据概览 */
let hqmdzsjgl:any = nongTouData.hqmdzsjgl;
jbqkData.年发电量 = `${((hqmdzsjgl.data.yearly_energy) / 10000).toFixed(2)}万kWh`; //万kWh
//基本情况
for (let key in jbqkData) {
result.jbqk.push( {key, value:jbqkData[key]} );
}
result.jbqk = keyValuePackage(result.jbqk);
/**投入使用 */
let excelData = guangfuTableData();
let trsyCount:any = {
发电量:0,
发电时长:0
}
trsyCount.发电量 = hqmdzsjgl.data.total_energy + "kWh";
trsyCount.发电时长 = aqyxts * 24 + "h"; //当前安全运行天数,天换算成小时
for (let key in trsyCount) {
excelData["投入使用"].dataList.push({key, value:trsyCount[key]});
}
//投入使用基础数据
result.trsy.count = keyValuePackage(excelData["投入使用"].dataList);
//发电时长趋势 todo 未接入
result.trsy.chartData = [{key:"2020", value:"0"}, {key:"2021", value:"0"}, {key:"2022", value:"0"}, {key:"2023", value:"0"}, {key:"2024", value:"0"}, {key:"2025", value:"0"}];
/**整体数据 */
let ztData:any = {
装机容量:0,
总发电量:0,
实时功率:0
};
if (hqmdzsjgl.data) {
ztData.装机容量 = hqmdzsjgl.data.peak_power_actual;
ztData.总发电量 = hqmdzsjgl.data.total_energy + "kWh";
ztData.实时功率 = (hqmdzsjgl.data.current_power).toFixed(2) + "kWh";
}
for (let key in ztData) {
let unit = "";
if(key != "装机容量") unit = "kW";
result.ztsj.push({key, value:ztData[key], unit});
}
result.ztsj = keyValuePackage(result.ztsj);
/**效益分析 */
let xyfxfdData:any = {
今日发电:0,
日功率:0,
当前功率:0,
等效小时数:"8.5h" //todo 未接入
}
let hqmdzmytglData:any = nongTouData.hqmdzmytgl;
if (hqmdzmytglData.data) {
hqmdzmytglData.data.powers.forEach( info => {
xyfxfdData.日功率 += info.power;
})
}
xyfxfdData.日功率 = xyfxfdData.日功率.toFixed(2) + "W";
if (hqmdzsjgl.data) {
xyfxfdData.今日发电 = hqmdzsjgl.data.today_energy + "kWh";
xyfxfdData.当前功率 = hqmdzsjgl.data.current_power.toFixed(2) + "kWh";
}
/**发电量趋势-近一周 */
let hqmdzlsfdlData:any = nongTouData.hqmdzlsfdl;
hqmdzlsfdlData.data.energys.forEach( info => {
let {date, energy} = info;
result.xyfx.chartData.push({key:date, value:energy});
})
for (let key in xyfxfdData) {
result.xyfx.count.push( {key, value:xyfxfdData[key]} );
}
result.xyfx.count = keyValuePackage(result.xyfx.count);
/**收益分析 */
let syfxData:any = {
今日收益:0,
当月收益:0,
累计收益:0
};
let price = 0;
let ljsy = 0;
excelData["收益分析"].dataList.forEach( info => {
if (info.key == "电价") price = info.value; //今日电价
if (info.key == "累计收益") ljsy = info.value;
})
if (hqmdzsjgl.data) {
syfxData.今日收益 = (hqmdzsjgl.data.today_energy * price).toFixed(2) + "元"; //当天发电量(kWh) * 表格数据电价
syfxData.当月收益 = (hqmdzsjgl.data.monthly_energy * price).toFixed(2) + "元"; //当月发电量(kWh) * 表格数据电价
syfxData.累计收益 = (hqmdzsjgl.data.total_energy * price).toFixed(2) + "元"; //累计发电量(kWh) * 表格数据电价
}
for (let key in syfxData) {
result.syfx.count.push({key, value:syfxData[key]});
}
result.syfx.count = keyValuePackage(result.syfx.count);
/**日收益趋势-近7天日收益 */
let thisYear = [];
hqmdzlsfdlData.data.energys.forEach( info => {
let {date, energy} = info;
let thisPrice = energy * price;
thisYear.push({key: date, value:thisPrice});
});
result.syfx.chartData = thisYear;
/**节能减排 = 发电量 * 0.583(电网排放因子平均排放量) */
let jnjppfyz = excelData["节能减排"].dataList;
let jnjpData = [];
/**节能减排趋势图 */
let jnjpChart = {};
jnjppfyz.forEach( info => {
let jnjp = (hqmdzsjgl.data.today_energy * info.value).toFixed(2);
jnjpData.push({key:info.key, value:jnjp});
if (!jnjpChart[info.key]) jnjpChart[info.key] = [];
hqmdzlsfdlData.data.energys.forEach( chart => {
let {date, energy} = chart;
let thisJnjp = (energy * info.value).toFixed(2);
jnjpChart[info.key].push({key:date, value:thisJnjp});
});
})
result.jnjp.count = jnjpData;
let jnjpChartData = [];
for (let key in jnjpChart) {
jnjpChartData.push({name:key, dataList:jnjpChart[key]});
}
result.jnjp.chartData = jnjpChartData;
console.log();
return result;
}
import moment = require("moment");
import { dataCenterInterfaceConfig, systemConfig } from "../../config/serverConfig";
import { get, getRequest, postRequest } from "../../util/request";
import { guangfuTableData } from "../table/tableData";
const fs = require('fs');
const path = require('path');
// JSON文件路径
const DATA_FILE_PATH = path.join(__dirname.substring(0,__dirname.indexOf("out")), "res", 'apiDataStorage.json' );
// {
// "870225":{
// "hqmdzsjgl": { "data": null, "lastUpdated": null},
// "hqmgyhddzlb": { "data": null, "lastUpdated": null},
// "hqmdzlsfdl": { "data": null, "lastUpdated": null},
// "hqmdzmytgl": { "data": null, "lastUpdated": null},
// "hqmdzjbxx": { "data": null, "lastUpdated": null},
// "hqdzsblb": { "data": null, "lastUpdated": null}
// },
// "870209":{
// "hqmdzsjgl": { "data": null, "lastUpdated": null},
// "hqmgyhddzlb": { "data": null, "lastUpdated": null},
// "hqmdzlsfdl": { "data": null, "lastUpdated": null},
// "hqmdzmytgl": { "data": null, "lastUpdated": null},
// "hqmdzjbxx": { "data": null, "lastUpdated": null},
// "hqdzsblb": { "data": null, "lastUpdated": null}
// }
// }
// 初始化数据文件结构
async function initDataFile() {
let nowTime = new Date().valueOf();
let yearAgo = moment(moment().subtract(1, 'years')).format("YYYY");
let dayAgo = moment().subtract(7, 'days');
let startDate = moment(dayAgo).format("YYYY-MM-DD");
let endDate = moment(new Date()).format("YYYY-MM-DD");
let nowYearAgo = moment(nowTime).format("YYYY-MM-DD");
const InterfaceConfig = [
{key:"hqmdzsjgl", name:"获取某电站数据概览", url:dataCenterInterfaceConfig.hqmdzsjgl, requestMethod:"get", body:{}},
// {key:"hqmgyhddzlb", name:"获取某个用户的电站列表", url:dataCenterInterfaceConfig.hqmgyhddzlb, requestMethod:"post", body:{user_name:systemConfig.userName}},
{key:"hqmdzlsfdl", name:"获取某电站历史发电量", url:dataCenterInterfaceConfig.hqmdzlsfdl, requestMethod:"get", body:{start_date:startDate, end_date:endDate, time_unit:"day"}},
{key:"hqmdzmytgl", name:"获取某电站某一天功率数据", url:dataCenterInterfaceConfig.hqmdzmytgl, requestMethod:"get", body:{date:nowYearAgo}},
{key:"hqmdzjbxx", name:"获取某电站基本信息", url:dataCenterInterfaceConfig.hqmdzjbxx, requestMethod:"get", body:{}},
{key:"hqdzsblb", name:"获取电站设备列表", url:dataCenterInterfaceConfig.hqdzsblb, requestMethod:"get", body:{}},
]
let idList= [870225, 870209];
console.log(`开始刷新缓存数据:${moment(nowTime).format("YYYY-MM-DD HH:mm:ss")}`)
for (let i = 0; i < idList.length; i++) {
let plant_id = idList[i];
for(let conf = 0; conf < InterfaceConfig.length; conf++) {
await callApiAndUpdate(InterfaceConfig[conf].key, InterfaceConfig[conf].name, InterfaceConfig[conf].url, InterfaceConfig[conf].requestMethod, plant_id, InterfaceConfig[conf].body);
}
}
console.log("刷新缓存数据结束")
}
/**
* 接口更新
* 设置定时器,每一小时刷新一次数据
*/
export async function initApiDataStorage() {
await initDataFile();
setInterval(async function () {
await initDataFile();
}, 3600 * 1000);
}
// 调用API并更新数据
async function callApiAndUpdate(apiKey, apiName, apiUrl, requestMethod, plant_id, body) {
// 读取当前数据
const currentData = readDataFile();
if (!currentData) {
console.error('Failed to read current data');
return;
}
// 调用API
let headers = {token:systemConfig.token};
let params = Object.assign({plant_id, perpage:100}, body);
let response:any = {};
if (requestMethod == "get") {
response = await getRequest(apiUrl, params, headers);
}
if (requestMethod == "post") {
response = await postRequest(apiUrl, params, headers);
}
// 更新数据
if (response.success) {
currentData[plant_id][apiKey] = {
data: response.data,
lastUpdated: moment(new Date().valueOf()).format("YYYY-MM-DD HH:mm:ss")
};
// 写入文件
if (writeDataFile(currentData)) {
console.log(`更新json文件接口数据: ${plant_id}-${apiKey}-${apiName}`);
}
} else {
console.error(`API请求失败: ${plant_id}-${apiKey}-${apiName}:${apiUrl}`, response);
// 失败时使用原有数据
console.log(`使用缓存数据:${plant_id}-${apiKey}-${apiName}`);
}
}
// 读取JSON文件
export function readDataFile() {
try {
const rawData = fs.readFileSync(DATA_FILE_PATH);
return JSON.parse(rawData);
} catch (error) {
console.error('Error reading data file:', error);
return null;
}
}
// 写入JSON文件
function writeDataFile(data) {
try {
fs.writeFileSync(DATA_FILE_PATH, JSON.stringify(data, null, 2));
return true;
} catch (error) {
console.error('Error writing data file:', error);
return false;
}
}
......@@ -28,7 +28,7 @@ function packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList,
export function guangfuTableData() {
let blockDataList = onceSheetBecomeOfblockData('光伏.xlsx', 'Sheet1');
let keyValueOrTitleList = ['投入使用', '投入使用趋势', '益分析', '节能减排']; //适配 饼图 键值以及需要多个Key的
let keyValueOrTitleList = ['投入使用', '投入使用趋势', '益分析', '节能减排']; //适配 饼图 键值以及需要多个Key的
let barChartList = []; //适配 柱状图 折线图
let stringList = [];
let decollatePlanarList = []; //适配 表格
......@@ -54,5 +54,20 @@ export function jiQiRenTableData() {
}
export function guiYuTableData() {
let blockDataList = onceSheetBecomeOfblockData('鳜鱼.xlsx', 'Sheet1');
let keyValueOrTitleList = ['汇总数据', '亲本成鱼', '水产养殖', '养殖记录', '亲本成鱼近5年产量趋势']; //适配 饼图 键值以及需要多个Key的
let barChartList = []; //适配 柱状图 折线图
let stringList = [];
let decollatePlanarList = ['销售记录']; //适配 表格
let titleListConfig = {};
let result = packageDataProcess(blockDataList, titleListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
return result;
}
......@@ -2,10 +2,12 @@
import { initInterfaceData } from "./data/interface/cronJob";
import { httpServer } from "./net/http_server";
import { initConfig, systemConfig } from "./config/serverConfig";
import { guangfuInit } from "./biz/getData";
import { guangfuInit } from "./biz/gfny";
import { initToken, tokenTask } from "./data/interface/chuanGanqi";
import { initDeviceMap, 温湿度变化趋势变化趋势,光照变化, 土壤温度变化趋势, initCGQData } from "./biz/chuanGanQi/cgq";
import { getGuangFu } from "./data/interface/dataInterface";
// import { getGuangFu } from "./data/interface/dataInterface";
import { getGuangFu } from "./data/interface/guangFuData";
import { initApiDataStorage } from "./data/interface/guangFuWithCache";
async function lanuch() {
await initConfig();
......@@ -14,7 +16,6 @@ async function lanuch() {
// await guangfuInit();
await systemTask();
console.log('This indicates that the server is started successfully.');
}
//缓存数据
......@@ -28,6 +29,8 @@ async function systemTask() {
// await 土壤温度变化趋势();
// await guangfuInit();
await initCGQData();
await initApiDataStorage();
console.log("数据初始化成功");
}
......
import * as asyncHandler from 'express-async-handler'
import * as leftBiz from '../biz/getData';
import * as leftBiz from '../biz/gfny';
import * as jiQiRenBiz from '../biz/jiQiRen';
import * as cyszhglBiz from '../biz/cyszhgl';
......@@ -44,6 +44,7 @@ export function setRouter(httpServer){
httpServer.post('/gbzscbgjdAq', asyncHandler(gbzscbgjdAqBiz.getData));
httpServer.post('/gbzscbgjdBq', asyncHandler(gbzscbgjdBqBiz.getData));
httpServer.post('/guiyu', asyncHandler(guiYuBiz.getData));
httpServer.post('/guiyuexcel', asyncHandler(guiYuBiz.getGuiYuExcel));
//======get
httpServer.get('/cyszhgl', asyncHandler(cyszhglBiz.getData));
httpServer.get('/zzqk', asyncHandler(cyszhglBiz.zzqk));
......@@ -58,5 +59,6 @@ export function setRouter(httpServer){
httpServer.get('/gbzscbgjdAq', asyncHandler(gbzscbgjdAqBiz.getData));
httpServer.get('/gbzscbgjdBq', asyncHandler(gbzscbgjdBqBiz.getData));
httpServer.get('/guiyu', asyncHandler(guiYuBiz.getData));
httpServer.get('/guiyuexcel', asyncHandler(guiYuBiz.getGuiYuExcel));
}
\ No newline at end of file
import * as request from 'request';
import { BizError } from './bizError';
export function getRequest(url, params?, headers?, timeOut?) {
timeOut = timeOut || 5000;
if (!url || (url.search(/http:/) && url.search(/https:/)) ) throw new BizError(!url ? "请求地址为空" : "请求地址错误");
return new Promise((resolve) => {
const options = {
url,
qs: params, // 查询参数(自动拼接到 URL)
headers,
json: true, // 自动解析 JSON 响应
timeout:timeOut
};
request.get(options, (error, response, body) => {
if (error) {
console.error('Request Error:', error);
resolve({
success: false,
error: {
type: 'REQUEST_ERROR',
message: error.message || 'Request failed',
details: error
}
});
return;
}
// 检查 HTTP 状态码(如 200, 404, 500 等)
if (response.statusCode !== 200) {
const errMsg = `HTTP Error: ${response.statusCode}`;
console.error(errMsg);
resolve({
success: false,
error: {
type: 'HTTP_ERROR',
statusCode: response.statusCode,
message: response.statusMessage || errMsg,
details: response
}
});
return;
}
// 检查业务错误码(假设 API 返回 { error_code: 0 } 表示成功)
if (body?.error_code !== undefined && body.error_code !== 0) {
const errMsg = `API Error: ${body.error_msg || 'Unknown error'}`;
console.error(errMsg);
resolve({
success: false,
error: {
type: 'API_ERROR',
errorCode: body.error_code,
message: body.error_msg || errMsg,
details: body
}
});
return;
}
// 返回成功结果
resolve({
success: true,
data: body.data
});
});
});
}
export function postRequest(url, reqbody, headers?, timeOut?) {
timeOut = timeOut || 5000;
if (!url || (url.search(/http:/) === -1 && url.search(/https:/) === -1)) {
throw new BizError(!url ? "请求地址为空" : "请求地址错误");
}
return new Promise((resolve) => {
const options = {
url,
method: "POST",
json: true,
headers: Object.assign({ "content-type": "application/json" }, headers),
body: reqbody,
timeout: timeOut
};
request(options, (error, response, body) => {
if (error) {
console.error('Request Error:', error);
resolve({
success: false,
error: {
type: 'REQUEST_ERROR',
message: error.message || 'Request failed',
details: error
}
});
return;
}
// 检查 HTTP 状态码
if (response.statusCode !== 200) {
const errMsg = `HTTP Error: ${response.statusCode}`;
console.error(errMsg);
resolve({
success: false,
error: {
type: 'HTTP_ERROR',
statusCode: response.statusCode,
message: response.statusMessage || errMsg,
details: response
}
});
return;
}
// 检查业务错误码(和 GET 方法保持一致)
if (body?.error_code !== undefined && body.error_code !== 0) {
const errMsg = `API Error: ${body.error_msg || 'Unknown error'}`;
console.error(errMsg);
resolve({
success: false,
error: {
type: 'API_ERROR',
errorCode: body.error_code,
message: body.error_msg || errMsg,
details: body
}
});
return;
}
// 返回成功结果
resolve({
success: true,
data: body.data // 和 GET 方法一样,假设数据在 body.data 里
});
});
});
}
export function get(url:string, query?, headers?, timeOut?) {
timeOut = timeOut || 5000;
if (!url || (url.search(/http:/) && url.search(/https:/)) ) throw new BizError(!url ? "请求地址为空" : "请求地址错误");
......@@ -51,6 +194,8 @@ export function post(url, reqbody, headers) {
})
}
export function postForm(url, body) {
if (!url || (url.search(/http:/) && url.search(/https:/)) ) throw new BizError(!url ? "请求地址为空" : "请求地址错误");
return new Promise((resolve, reject)=>{
......@@ -66,3 +211,10 @@ export function postForm(url, body) {
});
})
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment