Compare commits

..

2 Commits

Author SHA1 Message Date
901d20e265 more settings 2024-04-13 18:01:06 -04:00
98acf0be91 basic setting config 2024-04-13 17:34:49 -04:00
4 changed files with 317 additions and 432 deletions

View File

@ -1,6 +1,7 @@
MIT+NIGGER License
MIT License
Copyright (c) NiceCrew Technologies
Copyright (c) 2023 Ryan He
Copyright (c) 2021 Théo Le Calvar
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@ -12,8 +13,6 @@ furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
The above copyright notice, this permission notice and the word "NIGGER" shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

546
dist/main.js vendored
View File

@ -5,379 +5,223 @@ let logger;
let transcodingManager;
const DEFAULT_HARDWARE_DECODE = false;
const DEFAULT_VOD_QUALITY = "p7";
const DEFAULT_HEVC_PROFILE = "main";
const DEFAULT_LIVE_QUALITY = "hq";
const DEFAULT_CQ_H264 = 26;
const DEFAULT_CQ_HEVC = 28;
const DEFAULT_H264_PROFILE = "main";
const DEFAULT_CQ = 23;
const DEFAULT_BITRATES = new Map([
[0, 64 * 1000],
[144, 320 * 1000],
[360, 780 * 1000],
[480, 1500 * 1000],
[720, 2800 * 1000],
[1080, 5200 * 1000],
[1440, 10000 * 1000],
[2160, 22000 * 1000],
[0, 64 * 1000],
[144, 320 * 1000],
[360, 780 * 1000],
[480, 1500 * 1000],
[720, 2800 * 1000],
[1080, 5200 * 1000],
[1440, 10000 * 1000],
[2160, 22000 * 1000]
]);
let pluginSettings = {
hardwareDecode: DEFAULT_HARDWARE_DECODE,
vodQuality: DEFAULT_VOD_QUALITY,
liveQuality: DEFAULT_LIVE_QUALITY,
hevcProfile: DEFAULT_HEVC_PROFILE,
cqH264: DEFAULT_CQ_H264,
cqHEVC: DEFAULT_CQ_HEVC,
h264Profile: DEFAULT_H264_PROFILE,
baseBitrate: new Map(DEFAULT_BITRATES),
hardwareDecode: DEFAULT_HARDWARE_DECODE,
vodQuality: DEFAULT_VOD_QUALITY,
liveQuality: DEFAULT_LIVE_QUALITY,
cqQuality: DEFAULT_CQ,
baseBitrate: new Map(DEFAULT_BITRATES)
};
let latestStreamNum = 9999;
async function register({
settingsManager,
peertubeHelpers,
transcodingManager: transcode,
registerSetting,
}) {
logger = peertubeHelpers.logger;
transcodingManager = transcode;
logger.info("Registering peertube-plugin-nctv-hardware-encode");
const encoder = "h264_nvenc";
const hevc = "hevc_nvenc";
const profileName = "nctv-nvenc";
const hevcProfile = "nctv-hevc";
transcodingManager.addVODProfile(encoder, profileName, vodBuilder);
transcodingManager.addVODEncoderPriority("video", encoder, 1000);
transcodingManager.addLiveProfile(encoder, profileName, liveBuilder);
transcodingManager.addLiveEncoderPriority("video", encoder, 1000);
transcodingManager.addVODProfile(hevc, hevcProfile, hevcVODBuilder);
transcodingManager.addVODEncoderPriority("video", hevc, 900);
transcodingManager.addLiveProfile(hevc, hevcProfile, hevcLiveBuilder);
transcodingManager.addLiveEncoderPriority("video", hevc, 900);
await loadSettings(settingsManager);
registerSetting({
name: "hardware-decode",
label: "Hardware decode",
type: "input-checkbox",
descriptionHTML:
"Use hardware video decoder instead of software decoder. This will slightly improve performance but may cause some issues with some videos. If you encounter issues, disable this option and restart failed jobs.",
default: DEFAULT_HARDWARE_DECODE,
private: false,
});
registerSetting({
name: "cq-h264",
label: "CQ Value for H264_nvenc",
type: "input",
descriptionHTML:
"Sets the -cq value for h264_nvenc encoder. Valid values are between 0 and 51 (lossess and AIDS, respectively)",
default: DEFAULT_CQ_H264,
private: false,
});
registerSetting({
name: "cq-hevc",
label: "CQ Value for hevc_nvenc",
type: "input",
descriptionHTML:
"Sets the -cq value for hevc_nvenc encoder. Valid values are between 0 and 51 (lossess and AIDS, respectively)",
default: DEFAULT_CQ_HEVC,
private: false,
});
registerSetting({
name: "vod-quality",
label: "VOD Quality",
type: "select",
options: [
{ label: "fastest", value: "p1" },
{ label: "faster", value: "p2" },
{ label: "fast", value: "p3" },
{ label: "medium (default)", value: "p4" },
{ label: "slow", value: "p5" },
{ label: "slower", value: "p6" },
{ label: "slowest", value: "p7" },
],
descriptionHTML:
"This parameter controls the speed / quality tradeoff. Slower speed mean better quality. Faster speed mean lower quality. This setting is hardware dependent, you may need to experiment to find the best value for your hardware.",
default: DEFAULT_VOD_QUALITY.toString(),
private: false,
});
registerSetting({
name: "hevc-profile",
label: "HEVC Profile",
type: "select",
options: [
{ label: "main (default)", value: "main" },
{ label: "main10", value: "main10" },
{ label: "rext", value: "rext" },
],
descriptionHTML: "Set the HEVC profile",
default: DEFAULT_HEVC_PROFILE.toString(),
private: false,
});
registerSetting({
name: "h264-profile",
label: "H264 Profile",
type: "select",
options: [
{ label: "main (default)", value: "main" },
{ label: "high", value: "high" },
{ label: "high444p", value: "high444p" },
],
descriptionHTML: "Set the H264 profile",
default: DEFAULT_H264_PROFILE.toString(),
private: false,
});
registerSetting({
name: "live-quality",
label: "Live Quality",
type: "select",
options: [
{ label: "low latency", value: "ll" },
{ label: "high quality (default)", value: "hq" },
{ label: "low latency high performance", value: "ull" },
],
descriptionHTML:
"This parameter controls the speed / quality tradeoff. High performance mean lower quality.",
default: DEFAULT_LIVE_QUALITY.toString(),
private: false,
});
registerSetting({
name: "base-bitrate-description",
label: "Base bitrate",
type: "html",
html: "",
descriptionHTML: `The base bitrate for video in bits. We take the min bitrate between the bitrate setting and video bitrate.<br/>This is the bitrate used when the video is transcoded at 30 FPS. The bitrate will be scaled linearly between this value and the maximum bitrate when the video is transcoded at 60 FPS. Wrong values are replaced by default values.`,
private: true,
});
for (const [resolution, bitrate] of pluginSettings.baseBitrate) {
logger.info("registering bitrate setting: " + bitrate.toString());
async function register({ settingsManager, peertubeHelpers, transcodingManager: transcode, registerSetting }) {
logger = peertubeHelpers.logger;
transcodingManager = transcode;
logger.info("Registering peertube-plugin-nctv-hardware-encode");
const encoder = 'h264_nvenc';
const profileName = 'nctv-nvenc';
transcodingManager.addVODProfile(encoder, profileName, vodBuilder);
transcodingManager.addVODEncoderPriority('video', encoder, 1000);
transcodingManager.addLiveProfile(encoder, profileName, liveBuilder);
transcodingManager.addLiveEncoderPriority('video', encoder, 1000);
await loadSettings(settingsManager);
registerSetting({
name: `base-bitrate-${resolution}`,
label: `Base bitrate for ${printResolution(resolution)}`,
type: "input",
default: DEFAULT_BITRATES.get(resolution)?.toString(),
descriptionHTML: `Default value: ${DEFAULT_BITRATES.get(resolution)}`,
private: false,
name: 'hardware-decode',
label: 'Hardware decode',
type: 'input-checkbox',
descriptionHTML: 'Use hardware video decoder instead of software decoder. This will slightly improve performance but may cause some issues with some videos. If you encounter issues, disable this option and restart failed jobs.',
default: DEFAULT_HARDWARE_DECODE,
private: false
});
registerSetting({
name: 'vod-quality',
label: 'VOD Quality',
type: 'select',
options: [
{ label: 'fastest', value: 'p1' },
{ label: 'faster', value: 'p2' },
{ label: 'fast', value: 'p3' },
{ label: 'medium (default)', value: 'p4' },
{ label: 'slow', value: 'p5' },
{ label: 'slower', value: 'p6' },
{ label: 'slowest', value: 'p7' }
],
descriptionHTML: 'This parameter controls the speed / quality tradeoff. Slower speed mean better quality. Faster speed mean lower quality. This setting is hardware dependent, you may need to experiment to find the best value for your hardware.',
default: DEFAULT_VOD_QUALITY.toString(),
private: false
});
registerSetting({
name: 'live-quality',
label: 'Live Quality',
type: 'select',
options: [
{ label: 'low latency', value: 'll' },
{ label: 'high quality (default)', value: 'hq' },
{ label: 'low latency high performance', value: 'ull' }
],
descriptionHTML: 'This parameter controls the speed / quality tradeoff. High performance mean lower quality.',
default: DEFAULT_LIVE_QUALITY.toString(),
private: false
});
registerSetting({
name: 'constant-quality',
label: 'Constant Quality (-cq)',
descriptionHTML: 'Edit the constant quality (-cq) for videos. The lower the number, the higher the perceived visual fidelity and file size.',
type: 'input',
default: DEFAULT_CQ.toString(),
private: false,
});
registerSetting({
name: 'base-bitrate-description',
label: 'Base bitrate',
type: 'html',
html: '',
descriptionHTML: `The base bitrate for video in bits. We take the min bitrate between the bitrate setting and video bitrate.<br/>This is the bitrate used when the video is transcoded at 30 FPS. The bitrate will be scaled linearly between this value and the maximum bitrate when the video is transcoded at 60 FPS. Wrong values are replaced by default values.`,
private: true,
});
for (const [resolution, bitrate] of pluginSettings.baseBitrate) {
logger.info("registering bitrate setting: " + bitrate.toString());
registerSetting({
name: `base-bitrate-${resolution}`,
label: `Base bitrate for ${printResolution(resolution)}`,
type: 'input',
default: DEFAULT_BITRATES.get(resolution)?.toString(),
descriptionHTML: `Default value: ${DEFAULT_BITRATES.get(resolution)}`,
private: false
});
}
settingsManager.onSettingsChange(async (settings) => {
loadSettings(settingsManager);
});
}
settingsManager.onSettingsChange(async (settings) => {
loadSettings(settingsManager);
});
}
exports.register = register;
async function unregister() {
logger.info("Unregistering peertube-plugin-nctv-hardware-encode");
transcodingManager.removeAllProfilesAndEncoderPriorities();
return true;
logger.info("Unregistering peertube-plugin-nctv-hardware-encode");
transcodingManager.removeAllProfilesAndEncoderPriorities();
return true;
}
exports.unregister = unregister;
async function loadSettings(settingsManager) {
pluginSettings.hardwareDecode =
(await settingsManager.getSetting("hardware-decode")) ||
DEFAULT_HARDWARE_DECODE;
pluginSettings.vodQuality =
(await settingsManager.getSetting("vod-quality")) || DEFAULT_VOD_QUALITY;
pluginSettings.liveQuality =
(await settingsManager.getSetting("live-quality")) || DEFAULT_LIVE_QUALITY;
pluginSettings.hevcProfile =
(await settingsManager.getSetting("hevc-profile")) || DEFAULT_HEVC_PROFILE;
pluginSettings.cqH264 =
parseInt(await settingsManager.getSetting("cq-h264")) || DEFAULT_CQ_H264;
pluginSettings.cqHEVC =
parseInt(await settingsManager.getSetting("cq-hevc")) || DEFAULT_CQ_HEVC;
pluginSettings.h264Profile =
(await settingsManager.getSetting("h264-profile")) || DEFAULT_H264_PROFILE;
for (const [resolution, bitrate] of DEFAULT_BITRATES) {
const key = `base-bitrate-${resolution}`;
const storedValue = await settingsManager.getSetting(key);
pluginSettings.baseBitrate.set(
resolution,
parseInt(storedValue) || bitrate
);
logger.info(
`Bitrate ${printResolution(resolution)}: ${pluginSettings.baseBitrate.get(
resolution
)}`
);
}
logger.info(`Hardware decode: ${pluginSettings.hardwareDecode}`);
logger.info(`VOD Quality: ${pluginSettings.vodQuality}`);
logger.info(`Live Quality: ${pluginSettings.liveQuality}`);
logger.info(`HEVC profile: ${pluginSettings.hevcProfile}`);
logger.info(`H264 profile: ${pluginSettings.h264Profile}`);
pluginSettings.hardwareDecode = await settingsManager.getSetting('hardware-decode') == "true";
pluginSettings.vodQuality = parseInt(await settingsManager.getSetting('vod-quality')) || DEFAULT_VOD_QUALITY;
pluginSettings.liveQuality = parseInt(await settingsManager.getSetting('live-quality')) || DEFAULT_LIVE_QUALITY;
pluginSettings.cqQuality = parseInt(await settingsManager.getSetting('constant-quality')) || DEFAULT_CQ;
for (const [resolution, bitrate] of DEFAULT_BITRATES) {
const key = `base-bitrate-${resolution}`;
const storedValue = await settingsManager.getSetting(key);
pluginSettings.baseBitrate.set(resolution, parseInt(storedValue) || bitrate);
logger.info(`Bitrate ${printResolution(resolution)}: ${pluginSettings.baseBitrate.get(resolution)}`);
}
logger.info(`Hardware decode: ${pluginSettings.hardwareDecode}`);
logger.info(`VOD Quality: ${pluginSettings.vodQuality}`);
logger.info(`Live Quality: ${pluginSettings.liveQuality}`);
}
function printResolution(resolution) {
switch (resolution) {
case 0:
return "audio only";
case 144:
case 360:
case 480:
case 720:
case 1080:
case 1440:
return `${resolution}p`;
case 2160:
return "4K";
default:
return "Unknown";
}
switch (resolution) {
case 0: return 'audio only';
case 144:
case 360:
case 480:
case 720:
case 1080:
case 1440:
return `${resolution}p`;
case 2160: return '4K';
default: return 'Unknown';
}
}
function buildInitOptions() {
if (pluginSettings.hardwareDecode) {
return ["-hwaccel cuda", "-hwaccel_output_format cuda"];
} else {
return ["-hwaccel cuda"];
}
if (pluginSettings.hardwareDecode) {
return [
'-hwaccel cuda',
'-hwaccel_output_format cuda'
];
}
else {
return [
'-hwaccel cuda'
];
}
}
//H264_NVENC VOD BUILDER
async function vodBuilder(params) {
const { resolution, fps, streamNum, inputBitrate } = params;
const streamSuffix = streamNum == undefined ? "" : `:${streamNum}`;
let targetBitrate = getTargetBitrate(resolution, fps);
// let targetBitrate = inputBitrate;
let shouldInitVaapi = streamNum == undefined || streamNum <= latestStreamNum;
if (targetBitrate > inputBitrate) {
targetBitrate = inputBitrate;
}
logger.info(`Building encoder options, received ${JSON.stringify(params)}`);
if (shouldInitVaapi && streamNum != undefined) {
latestStreamNum = streamNum;
}
let options = {
scaleFilter: {
name: "scale",
},
inputOptions: shouldInitVaapi ? buildInitOptions() : [],
outputOptions: [
`-preset ${pluginSettings.vodQuality}`,
`-b:v${streamSuffix} ${targetBitrate}`,
`-bufsize ${targetBitrate * 2}`,
`-profile:v${streamSuffix} ${pluginSettings.h264Profile}`,
`-cq ${pluginSettings.cqH264}`,
`-bf 4`,
],
};
logger.info(`EncoderOptions: ${JSON.stringify(options)}, HEVC: false`);
return options;
const { resolution, fps, streamNum, inputBitrate } = params;
const streamSuffix = streamNum == undefined ? '' : `:${streamNum}`;
// let targetBitrate = getTargetBitrate(resolution, fps);
let targetBitrate = inputBitrate;
let shouldInitVaapi = (streamNum == undefined || streamNum <= latestStreamNum);
// if (targetBitrate > inputBitrate) {
// targetBitrate = inputBitrate;
// }
logger.info(`Building encoder options, received ${JSON.stringify(params)}`);
if (shouldInitVaapi && streamNum != undefined) {
latestStreamNum = streamNum;
}
let options = {
scaleFilter: {
name: 'scale'
},
inputOptions: shouldInitVaapi ? buildInitOptions() : [],
outputOptions: [
`-preset ${pluginSettings.vodQuality}`,
// `-b:v${streamSuffix} ${targetBitrate}`,
// `-bufsize ${targetBitrate * 2}`,
//`-crf 21`, // increased 19 to 21, file size massive
`-profile:v${streamSuffix} high`,
`-cq 22`,
`-c:v${streamSuffix} h264_nvenc`
]
};
logger.info(`EncoderOptions: ${JSON.stringify(options)}`);
return options;
}
//H264 Live builder
async function liveBuilder(params) {
const { resolution, fps, streamNum, inputBitrate } = params;
const streamSuffix = streamNum == undefined ? "" : `:${streamNum}`;
let targetBitrate = getTargetBitrate(resolution, fps);
// let targetBitrate = inputBitrate;
let shouldInitVaapi = streamNum == undefined || streamNum <= latestStreamNum;
if (targetBitrate > inputBitrate) {
targetBitrate = inputBitrate;
}
logger.info(`Building encoder options, received ${JSON.stringify(params)}`);
if (shouldInitVaapi && streamNum != undefined) {
latestStreamNum = streamNum;
}
let options = {
scaleFilter: {
name: "scale",
},
inputOptions: shouldInitVaapi ? buildInitOptions() : [],
outputOptions: [
`-tune ${pluginSettings.liveQuality}`,
`-r:v${streamSuffix} ${fps}`,
`-profile:v${streamSuffix} ${pluginSettings.h264Profile}`,
`-cq ${pluginSettings.cqH264}`,
`-g:v${streamSuffix} ${fps * 2}`,
`-b:v${streamSuffix} ${targetBitrate}`,
`-bufsize ${targetBitrate * 2}`,
`-bf 4`,
],
};
logger.info(`EncoderOptions: ${JSON.stringify(options)}, HEVC: false`);
return options;
const { resolution, fps, streamNum, inputBitrate } = params;
const streamSuffix = streamNum == undefined ? '' : `:${streamNum}`;
// let targetBitrate = getTargetBitrate(resolution, fps);
let targetBitrate = inputBitrate;
let shouldInitVaapi = (streamNum == undefined || streamNum <= latestStreamNum);
// if (targetBitrate > inputBitrate) {
// targetBitrate = inputBitrate;
// }
logger.info(`Building encoder options, received ${JSON.stringify(params)}`);
if (shouldInitVaapi && streamNum != undefined) {
latestStreamNum = streamNum;
}
const options = {
scaleFilter: {
name: 'scale'
},
inputOptions: shouldInitVaapi ? buildInitOptions() : [],
outputOptions: [
`-tune ${pluginSettings.liveQuality}`,
// `-r:v${streamSuffix} ${fps}`,
`-profile:v${streamSuffix} high`,
`-c:v${streamSuffix} h264_nvenc`,
`-cq 22`
// `-g:v${streamSuffix} ${fps * 2}`,
// `-b:v${streamSuffix} ${targetBitrate}`,
// `-bufsize ${targetBitrate * 2}`,
]
};
logger.info(`EncoderOptions: ${JSON.stringify(options)}`);
return options;
}
//HEVC VOD builder
async function hevcVODBuilder(params) {
const { resolution, fps, streamNum, inputBitrate } = params;
const streamSuffix = streamNum == undefined ? "" : `:${streamNum}`;
let targetBitrate = getTargetBitrate(resolution, fps);
// let targetBitrate = inputBitrate;
let shouldInitVaapi = streamNum == undefined || streamNum <= latestStreamNum;
if (targetBitrate > inputBitrate) {
targetBitrate = inputBitrate;
}
logger.info(`Building encoder options, received ${JSON.stringify(params)}`);
if (shouldInitVaapi && streamNum != undefined) {
latestStreamNum = streamNum;
}
let options = {
scaleFilter: {
name: "scale",
},
inputOptions: shouldInitVaapi ? buildInitOptions() : [],
outputOptions: [
`-preset ${pluginSettings.vodQuality}`,
`-b:v${streamSuffix} ${targetBitrate}`,
`-bufsize ${targetBitrate * 2}`,
`-profile:v${streamSuffix} ${pluginSettings.hevcProfile}`,
`-cq ${pluginSettings.cqHEVC}`,
],
};
logger.info(`EncoderOptions: ${JSON.stringify(options)}, HEVC: true`);
return options;
}
//HEVC Live builder
async function hevcLiveBuilder(params) {
const { resolution, fps, streamNum, inputBitrate } = params;
const streamSuffix = streamNum == undefined ? "" : `:${streamNum}`;
let targetBitrate = getTargetBitrate(resolution, fps);
// let targetBitrate = inputBitrate;
let shouldInitVaapi = streamNum == undefined || streamNum <= latestStreamNum;
if (targetBitrate > inputBitrate) {
targetBitrate = inputBitrate;
}
logger.info(`Building encoder options, received ${JSON.stringify(params)}`);
if (shouldInitVaapi && streamNum != undefined) {
latestStreamNum = streamNum;
}
let options = {
scaleFilter: {
name: "scale",
},
inputOptions: shouldInitVaapi ? buildInitOptions() : [],
outputOptions: [
`-tune ${pluginSettings.liveQuality}`,
`-r:v${streamSuffix} ${fps}`,
`-profile:v${streamSuffix} ${pluginSettings.hevcProfile}`,
`-g:v${streamSuffix} ${fps * 2}`,
`-b:v${streamSuffix} ${targetBitrate}`,
`-cq ${pluginSettings.cqHEVC}`,
`-bufsize ${targetBitrate * 2}`,
],
};
logger.info(`EncoderOptions: ${JSON.stringify(options)}, HEVC: true`);
return options;
}
function getTargetBitrate(resolution, fps) {
const baseBitrate = pluginSettings.baseBitrate.get(resolution) || 0;
const maxBitrate = baseBitrate * 1.6;
const maxBitrateDifference = maxBitrate - baseBitrate;
const maxFpsDifference = 60 - 30;
return Math.floor(
baseBitrate + (fps - 30) * (maxBitrateDifference / maxFpsDifference)
);
const baseBitrate = pluginSettings.baseBitrate.get(resolution) || 0;
const maxBitrate = baseBitrate * 1.4;
const maxBitrateDifference = maxBitrate - baseBitrate;
const maxFpsDifference = 60 - 30;
return Math.floor(baseBitrate + (fps - 30) * (maxBitrateDifference / maxFpsDifference));
}
//# sourceMappingURL=main.js.map
//# sourceMappingURL=main.js.map

View File

@ -1,8 +1,8 @@
{
"name": "peertube-plugin-nctv-nvenc-transcode",
"version": "1.2.3",
"version": "1.0.7",
"license": "MIT",
"description": "Plugin that adds transcode profiles which use h264_nvenc and hevc_nvenc for hardware acceleration.",
"description": "Plugin that adds transcode profiles which use NVIDIA NVENC for hardware acceleration",
"engine": {
"peertube": ">=5.1.0"
},
@ -11,7 +11,7 @@
"plugin"
],
"homepage": "https://gitea.nicecrew.digital/matty/peertube-plugin-nctv-nvenc-transcode",
"author": "matty",
"author": "ryanho",
"bugs": "https://gitea.nicecrew.digital/matty/peertube-plugin-nctv-nvenc-transcode/issues",
"library": "./dist/main.js",
"files": [

190
yarn.lock
View File

@ -54,7 +54,7 @@
"@aws-sdk/util-utf8-browser" "^3.0.0"
tslib "^1.11.1"
"@aws-crypto/sha256-js@3.0.0", "@aws-crypto/sha256-js@^3.0.0":
"@aws-crypto/sha256-js@^3.0.0", "@aws-crypto/sha256-js@3.0.0":
version "3.0.0"
resolved "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz"
integrity sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==
@ -330,7 +330,7 @@
"@smithy/types" "^2.10.1"
tslib "^2.5.0"
"@aws-sdk/credential-provider-node@3.529.1":
"@aws-sdk/credential-provider-node@^3.529.1", "@aws-sdk/credential-provider-node@3.529.1":
version "3.529.1"
resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.529.1.tgz"
integrity sha512-mvY7F3dMmk/0dZOCfl5sUI1bG0osureBjxhELGCF0KkJqhWI0hIzh8UnPkYytSg3vdc97CMv7pTcozxrdA3b0g==
@ -542,7 +542,7 @@
"@smithy/types" "^2.10.1"
tslib "^2.5.0"
"@aws-sdk/types@3.523.0", "@aws-sdk/types@^3.222.0":
"@aws-sdk/types@^3.222.0", "@aws-sdk/types@3.523.0":
version "3.523.0"
resolved "https://registry.npmjs.org/@aws-sdk/types/-/types-3.523.0.tgz"
integrity sha512-AqGIu4u+SxPiUuNBp2acCVcq80KDUFjxe6e3cMTvKWTzCbrVk1AXv0dAaJnCmdkWIha6zJDWxpIk/aL4EGhZ9A==
@ -643,16 +643,16 @@
resolved "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.2.tgz"
integrity sha512-lwriRAHm1Yg4iDf23Oxm9n/t5Zpw1lVnxYU3HnJPTi2lJRkKTrps1KVgvL6m7WvmhYVt/FIsssWay+k45QHeuw==
"@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.2":
version "3.0.2"
resolved "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.2.tgz"
integrity sha512-FU20Bo66/f7He9Fp9sP2zaJ1Q8L9uLPZQDub/WlUip78JlPeMbVL8546HbZfcW9LNciEXc8d+tThSJjSC+tmsg==
"@msgpackr-extract/msgpackr-extract-linux-arm@3.0.2":
version "3.0.2"
resolved "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.2.tgz"
integrity sha512-MOI9Dlfrpi2Cuc7i5dXdxPbFIgbDBGgKR5F2yWEa6FVEtSWncfVNKW5AKjImAQ6CZlBK9tympdsZJ2xThBiWWA==
"@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.2":
version "3.0.2"
resolved "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.2.tgz"
integrity sha512-FU20Bo66/f7He9Fp9sP2zaJ1Q8L9uLPZQDub/WlUip78JlPeMbVL8546HbZfcW9LNciEXc8d+tThSJjSC+tmsg==
"@msgpackr-extract/msgpackr-extract-linux-x64@3.0.2":
version "3.0.2"
resolved "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.2.tgz"
@ -679,7 +679,7 @@
promisify-any "2.0.1"
type-is "1.6.18"
"@opentelemetry/api@^1.1.0":
"@opentelemetry/api@^1.1.0", "@opentelemetry/api@>=1.0.0 <1.9.0", "@opentelemetry/api@>=1.3.0 <1.9.0":
version "1.8.0"
resolved "https://registry.npmjs.org/@opentelemetry/api/-/api-1.8.0.tgz"
integrity sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w==
@ -1378,7 +1378,7 @@
dependencies:
"@types/express" "*"
"@types/node@*", "@types/node@>=10.0.0", "@types/node@^18.13.0":
"@types/node@*", "@types/node@^18.13.0", "@types/node@>=10.0.0":
version "18.19.22"
resolved "https://registry.npmjs.org/@types/node/-/node-18.19.22.tgz"
integrity sha512-p3pDIfuMg/aXBmhkyanPshdfJuX5c5+bQjYLIikPLXAUycEogij/c50n/C+8XOA5L93cU4ZRXtn+dNQGi0IZqQ==
@ -1424,7 +1424,7 @@
resolved "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz"
integrity sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==
"@types/validator@^13.0.0", "@types/validator@^13.7.1":
"@types/validator@*", "@types/validator@^13.0.0", "@types/validator@^13.7.1":
version "13.11.9"
resolved "https://registry.npmjs.org/@types/validator/-/validator-13.11.9.tgz"
integrity sha512-FCTsikRozryfayPuiI46QzH3fnrOoctTjvOYZkho9BTFLCOZ2rgZJHMOVgCOfttjPJcgOx52EpkY0CMfy87MIw==
@ -1468,7 +1468,7 @@ async-mutex@^0.4.0:
dependencies:
tslib "^2.4.0"
async@>=0.2.9, async@^3.2.3:
async@^3.2.3, async@>=0.2.9:
version "3.2.5"
resolved "https://registry.npmjs.org/async/-/async-3.2.5.tgz"
integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==
@ -1478,7 +1478,7 @@ balanced-match@^1.0.0:
resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
base64id@2.0.0, base64id@~2.0.0:
base64id@~2.0.0, base64id@2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz"
integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==
@ -1505,16 +1505,16 @@ blob-to-buffer@^1.2.9:
resolved "https://registry.npmjs.org/blob-to-buffer/-/blob-to-buffer-1.2.9.tgz"
integrity sha512-BF033y5fN6OCofD3vgHmNtwZWRcq9NLyyxyILx9hfMy1sXYy4ojFl765hJ2lP0YaN2fuxPaLO2Vzzoxy0FLFFA==
bluebird@3.7.2, bluebird@^3.5.0:
version "3.7.2"
resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz"
integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
bluebird@^2.10.0:
version "2.11.0"
resolved "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz"
integrity sha512-UfFSr22dmHPQqPP9XWHRhq+gWnHCYguQGkXQlbyPtW5qTnhFWA8/iXg765tH0cAjy7l/zPJ1aBTO0g5XgA7kvQ==
bluebird@^3.5.0, bluebird@3.7.2:
version "3.7.2"
resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz"
integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
body-parser@1.20.2:
version "1.20.2"
resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz"
@ -1579,7 +1579,7 @@ busboy@^1.0.0:
dependencies:
streamsearch "^1.1.0"
bytes@3.1.2, bytes@^3.1.0:
bytes@^3.1.0, bytes@3.1.2:
version "3.1.2"
resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz"
integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
@ -1645,7 +1645,7 @@ color-convert@^1.9.3:
dependencies:
color-name "1.1.3"
color-name@1.1.3, color-name@^1.0.0:
color-name@^1.0.0, color-name@1.1.3:
version "1.1.3"
resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
@ -1706,16 +1706,16 @@ cookie-signature@1.0.6:
resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz"
integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==
cookie@0.5.0:
version "0.5.0"
resolved "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz"
integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==
cookie@~0.4.1:
version "0.4.2"
resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz"
integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==
cookie@0.5.0:
version "0.5.0"
resolved "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz"
integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==
core-util-is@~1.0.0:
version "1.0.3"
resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz"
@ -1745,7 +1745,7 @@ cross-spawn@^7.0.3:
shebang-command "^2.0.0"
which "^2.0.1"
d@1, d@^1.0.1, d@^1.0.2:
d@^1.0.1, d@^1.0.2, d@1:
version "1.0.2"
resolved "https://registry.npmjs.org/d/-/d-1.0.2.tgz"
integrity sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==
@ -1753,6 +1753,41 @@ d@1, d@^1.0.1, d@^1.0.2:
es5-ext "^0.10.64"
type "^2.7.2"
debug@^4.3.3:
version "4.3.4"
resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
dependencies:
ms "2.1.2"
debug@^4.3.4:
version "4.3.4"
resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
dependencies:
ms "2.1.2"
debug@~4.3.1:
version "4.3.4"
resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
dependencies:
ms "2.1.2"
debug@~4.3.2:
version "4.3.4"
resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
dependencies:
ms "2.1.2"
debug@~4.3.4:
version "4.3.4"
resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
dependencies:
ms "2.1.2"
debug@2.6.9:
version "2.6.9"
resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
@ -1760,13 +1795,6 @@ debug@2.6.9:
dependencies:
ms "2.0.0"
debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2, debug@~4.3.4:
version "4.3.4"
resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
dependencies:
ms "2.1.2"
decompress-response@^6.0.0:
version "6.0.0"
resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz"
@ -1793,16 +1821,16 @@ denque@^2.1.0:
resolved "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz"
integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==
depd@2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz"
integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
depd@~1.1.2:
version "1.1.2"
resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz"
integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==
depd@2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz"
integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
destroy@1.2.0:
version "1.2.0"
resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz"
@ -2095,6 +2123,17 @@ get-stream@^6.0.0:
resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz"
integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
glob@^8.0.3:
version "8.1.0"
resolved "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz"
integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
inherits "2"
minimatch "^5.0.1"
once "^1.3.0"
glob@7.2.0:
version "7.2.0"
resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz"
@ -2107,17 +2146,6 @@ glob@7.2.0:
once "^1.3.0"
path-is-absolute "^1.0.0"
glob@^8.0.3:
version "8.1.0"
resolved "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz"
integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
inherits "2"
minimatch "^5.0.1"
once "^1.3.0"
gopd@^1.0.1:
version "1.0.1"
resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz"
@ -2181,17 +2209,6 @@ http-cache-semantics@^4.0.0:
resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz"
integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==
http-errors@2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz"
integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==
dependencies:
depd "2.0.0"
inherits "2.0.4"
setprototypeof "1.2.0"
statuses "2.0.1"
toidentifier "1.0.1"
http-errors@~1.8.1:
version "1.8.1"
resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz"
@ -2203,6 +2220,17 @@ http-errors@~1.8.1:
statuses ">= 1.5.0 < 2"
toidentifier "1.0.1"
http-errors@2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz"
integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==
dependencies:
depd "2.0.0"
inherits "2.0.4"
setprototypeof "1.2.0"
statuses "2.0.1"
toidentifier "1.0.1"
http2-wrapper@^1.0.0-beta.5.2:
version "1.0.3"
resolved "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz"
@ -2236,7 +2264,7 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@~2.0.3:
inherits@^2.0.3, inherits@~2.0.3, inherits@2, inherits@2.0.4:
version "2.0.4"
resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@ -2490,6 +2518,11 @@ moment@^2.29.1, moment@^2.29.4:
resolved "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz"
integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==
ms@^2.1.1:
version "2.1.3"
resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
ms@2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
@ -2500,7 +2533,7 @@ ms@2.1.2:
resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
ms@2.1.3, ms@^2.1.1:
ms@2.1.3:
version "2.1.3"
resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
@ -2553,7 +2586,7 @@ negotiator@0.6.3:
resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz"
integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
next-tick@1, next-tick@^1.1.0:
next-tick@^1.1.0, next-tick@1:
version "1.1.0"
resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz"
integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==
@ -2741,7 +2774,16 @@ readable-stream@^2.2.2:
string_decoder "~1.1.1"
util-deprecate "~1.0.1"
readable-stream@^3.4.0, readable-stream@^3.6.0:
readable-stream@^3.4.0:
version "3.6.2"
resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz"
integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
dependencies:
inherits "^2.0.3"
string_decoder "^1.1.1"
util-deprecate "^1.0.1"
readable-stream@^3.6.0:
version "3.6.2"
resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz"
integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
@ -2762,7 +2804,7 @@ redis-parser@^3.0.0:
dependencies:
redis-errors "^1.0.0"
reflect-metadata@^0.1.12:
reflect-metadata@*, reflect-metadata@^0.1.12:
version "0.1.14"
resolved "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.14.tgz"
integrity sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==
@ -2789,7 +2831,7 @@ rusha@^0.8.13:
resolved "https://registry.npmjs.org/rusha/-/rusha-0.8.14.tgz"
integrity sha512-cLgakCUf6PedEu15t8kbsjnwIFFR2D4RfL+W3iWFJ4iac7z4B0ZI8fxy4R3J956kAI68HclCFGL8MPoUVC3qVA==
safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
safe-buffer@~5.1.0, safe-buffer@~5.1.1, safe-buffer@5.1.2:
version "5.1.2"
resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
@ -2852,7 +2894,7 @@ sequelize-typescript@^2.0.0-beta.1:
dependencies:
glob "7.2.0"
sequelize@6.31.1:
sequelize@>=6.20.1, sequelize@6.31.1:
version "6.31.1"
resolved "https://registry.npmjs.org/sequelize/-/sequelize-6.31.1.tgz"
integrity sha512-cahWtRrYLjqoZP/aurGBoaxn29qQCF4bxkAUPEQ/ozjJjt6mtL4Q113S3N39mQRmX5fgxRbli+bzZARP/N51eg==
@ -3004,16 +3046,16 @@ standard-as-callback@^2.1.0:
resolved "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz"
integrity sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==
statuses@2.0.1:
version "2.0.1"
resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz"
integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
"statuses@>= 1.5.0 < 2":
version "1.5.0"
resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz"
integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==
statuses@2.0.1:
version "2.0.1"
resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz"
integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
streamsearch@^1.1.0:
version "1.1.0"
resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz"
@ -3079,7 +3121,7 @@ tslib@^2.0.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0:
resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz"
integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
type-is@1.6.18, type-is@^1.6.4, type-is@~1.6.18:
type-is@^1.6.4, type-is@~1.6.18, type-is@1.6.18:
version "1.6.18"
resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz"
integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
@ -3119,7 +3161,7 @@ universalify@^2.0.0:
resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz"
integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==
unpipe@1.0.0, unpipe@~1.0.0:
unpipe@~1.0.0, unpipe@1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==