luoyutianyang commited on
Commit
d288229
·
verified ·
1 Parent(s): d8e5599

Upload 10 files

Browse files
classifiers/haarcascade_frontalface_alt.xml ADDED
The diff for this file is too large to render. See raw diff
 
classifiers/lbpcascade_animeface.xml ADDED
The diff for this file is too large to render. See raw diff
 
classifiers/lbpcascade_frontalcatface.xml ADDED
The diff for this file is too large to render. See raw diff
 
egg-api.js ADDED
@@ -0,0 +1,133 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import express from 'express';
2
+ import fs from 'fs';
3
+ import path from 'path';
4
+ import cv from 'opencv4nodejs';
5
+ import Jimp from 'jimp';
6
+ import axios from 'axios';
7
+ import sharp from 'sharp';
8
+
9
+ const app = express();
10
+ const port = 3000;
11
+ const outputDir = './output';
12
+
13
+ // 确保输出目录存在
14
+ if (!fs.existsSync(outputDir)){
15
+ fs.mkdirSync(outputDir);
16
+ }
17
+ // 从文件夹加载所有分类器
18
+ async function loadClassifiersFromFolder(folderPath) {
19
+ const classifiers = [];
20
+ const files = fs.readdirSync(folderPath);
21
+ for (const file of files) {
22
+ const filePath = path.join(folderPath, file);
23
+ const classifier = new cv.CascadeClassifier(filePath);
24
+ classifiers.push(classifier);
25
+ }
26
+ return classifiers;
27
+ }
28
+
29
+
30
+ async function downloadAndConvertImage(url, dest) {
31
+ try {
32
+ const response = await axios({
33
+ method: 'get',
34
+ url: url,
35
+ responseType: 'arraybuffer'
36
+ });
37
+
38
+ await sharp(response.data)
39
+ .toFormat('jpeg')
40
+ .toFile(dest);
41
+
42
+ console.log('Image downloaded and converted successfully.');
43
+ } catch (error) {
44
+ console.error('Error downloading or converting image:', error);
45
+ throw error;
46
+ }
47
+ }
48
+
49
+ // 图像处理函数
50
+ async function processImage(inputImagePath, outputImagePath, classifiersFolder, replacementImagePath) {
51
+ try {
52
+ const classifiers = await loadClassifiersFromFolder(classifiersFolder);
53
+
54
+ if (!fs.existsSync(inputImagePath)) {
55
+ throw new Error(`Input image not found at ${inputImagePath}`);
56
+ }
57
+
58
+ // 使用 Jimp 验证图片文件是否有效
59
+ const jimpImage = await Jimp.read(inputImagePath);
60
+ if (!jimpImage) {
61
+ throw new Error('Failed to read the image with Jimp. The image file might be corrupted or not supported.');
62
+ }
63
+
64
+ const img = cv.imread(inputImagePath);
65
+ if (img.empty) {
66
+ throw new Error('Failed to read the image with OpenCV. The image file might be corrupted or not supported.');
67
+ }
68
+
69
+ const grayImg = img.bgrToGray();
70
+ const allFaces = [];
71
+ classifiers.forEach(classifier => {
72
+ const faces = classifier.detectMultiScale(grayImg).objects;
73
+ allFaces.push(...faces);
74
+ });
75
+
76
+
77
+
78
+ const replacementFace = await Jimp.read(replacementImagePath);
79
+ allFaces.forEach((faceRect, i) => {
80
+ const resizedReplacementFace = replacementFace.resize(faceRect.width, faceRect.height);
81
+ const faceRegion = img.getRegion(faceRect);
82
+ const replacementBuffer = resizedReplacementFace.bitmap.data;
83
+ for (let y = 0; y < faceRect.height; y++) {
84
+ for (let x = 0; x < faceRect.width; x++) {
85
+ const idx = (y * faceRect.width + x) << 2;
86
+ const [r, g, b, a] = replacementBuffer.slice(idx, idx + 4);
87
+ if (a > 0) {
88
+ faceRegion.set(y, x, new cv.Vec3(b, g, r));
89
+ }
90
+ }
91
+ }
92
+ });
93
+ cv.imwrite(outputImagePath, img);
94
+ } catch (error) {
95
+ console.error('Error during image processing:', error);
96
+ throw error;
97
+ }
98
+ }
99
+
100
+ // Express接口
101
+ app.get('/process-image', async (req, res) => {
102
+ const { imageUrl } = req.query;
103
+
104
+ if (!imageUrl) {
105
+ return res.status(400).send('Image URL is required');
106
+ }
107
+
108
+ const inputImagePath = path.join(outputDir, 'test.jpg'); // 使用jpg格式保存
109
+ const outputImagePath = path.join(outputDir, 'image_with_replaced_faces.jpg');
110
+ const replacementImagePath = './replacement_face.png';
111
+ const classifiersFolder = './classifiers';
112
+
113
+ try {
114
+ // 下载并转换输入图片
115
+ await downloadAndConvertImage(imageUrl, inputImagePath);
116
+ // 检查下载的图片文件是否存在且有效
117
+ if (!fs.existsSync(inputImagePath) || fs.statSync(inputImagePath).size === 0) {
118
+ throw new Error('Downloaded image file is not found or is empty.');
119
+ }
120
+ // 处理图片
121
+ await processImage(inputImagePath, outputImagePath, classifiersFolder, replacementImagePath);
122
+
123
+ // 返回处理后的图片链接
124
+ res.sendFile(outputImagePath, { root: '.' });
125
+ } catch (error) {
126
+ console.error('Error processing image:', error);
127
+ res.status(500).send('Error processing image');
128
+ }
129
+ });
130
+
131
+ app.listen(port, () => {
132
+ console.log(`Server is running on http://localhost:${port}`);
133
+ });
output/image_with_replaced_faces.jpg ADDED
output/test.jpg ADDED
output/test.png ADDED
package-lock.json ADDED
@@ -0,0 +1,2248 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "my-project",
3
+ "version": "0.0.0",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "my-project",
9
+ "version": "0.0.0",
10
+ "dependencies": {
11
+ "axios": "^1.7.2",
12
+ "express": "^4.19.2",
13
+ "fluent-ffmpeg": "^2.1.2",
14
+ "fs": "^0.0.1-security",
15
+ "jimp": "^0.3.11",
16
+ "opencv4nodejs": "^5.6.0",
17
+ "sharp": "^0.33.4"
18
+ }
19
+ },
20
+ "node_modules/@babel/polyfill": {
21
+ "version": "7.12.1",
22
+ "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.12.1.tgz",
23
+ "integrity": "sha512-X0pi0V6gxLi6lFZpGmeNa4zxtwEmCs42isWLNjZZDE0Y8yVfgu0T2OAHlzBbdYlqbW/YXVvoBHpATEM+goCj8g==",
24
+ "deprecated": "🚨 This package has been deprecated in favor of separate inclusion of a polyfill and regenerator-runtime (when needed). See the @babel/polyfill docs (https://babeljs.io/docs/en/babel-polyfill) for more information.",
25
+ "dependencies": {
26
+ "core-js": "^2.6.5",
27
+ "regenerator-runtime": "^0.13.4"
28
+ }
29
+ },
30
+ "node_modules/@emnapi/runtime": {
31
+ "version": "1.2.0",
32
+ "resolved": "https://registry.npmmirror.com/@emnapi/runtime/-/runtime-1.2.0.tgz",
33
+ "integrity": "sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==",
34
+ "optional": true,
35
+ "dependencies": {
36
+ "tslib": "^2.4.0"
37
+ }
38
+ },
39
+ "node_modules/@img/sharp-darwin-arm64": {
40
+ "version": "0.33.4",
41
+ "resolved": "https://registry.npmmirror.com/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.4.tgz",
42
+ "integrity": "sha512-p0suNqXufJs9t3RqLBO6vvrgr5OhgbWp76s5gTRvdmxmuv9E1rcaqGUsl3l4mKVmXPkTkTErXediAui4x+8PSA==",
43
+ "cpu": [
44
+ "arm64"
45
+ ],
46
+ "optional": true,
47
+ "os": [
48
+ "darwin"
49
+ ],
50
+ "engines": {
51
+ "glibc": ">=2.26",
52
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
53
+ "npm": ">=9.6.5",
54
+ "pnpm": ">=7.1.0",
55
+ "yarn": ">=3.2.0"
56
+ },
57
+ "optionalDependencies": {
58
+ "@img/sharp-libvips-darwin-arm64": "1.0.2"
59
+ }
60
+ },
61
+ "node_modules/@img/sharp-darwin-x64": {
62
+ "version": "0.33.4",
63
+ "resolved": "https://registry.npmmirror.com/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.4.tgz",
64
+ "integrity": "sha512-0l7yRObwtTi82Z6ebVI2PnHT8EB2NxBgpK2MiKJZJ7cz32R4lxd001ecMhzzsZig3Yv9oclvqqdV93jo9hy+Dw==",
65
+ "cpu": [
66
+ "x64"
67
+ ],
68
+ "optional": true,
69
+ "os": [
70
+ "darwin"
71
+ ],
72
+ "engines": {
73
+ "glibc": ">=2.26",
74
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
75
+ "npm": ">=9.6.5",
76
+ "pnpm": ">=7.1.0",
77
+ "yarn": ">=3.2.0"
78
+ },
79
+ "optionalDependencies": {
80
+ "@img/sharp-libvips-darwin-x64": "1.0.2"
81
+ }
82
+ },
83
+ "node_modules/@img/sharp-libvips-darwin-arm64": {
84
+ "version": "1.0.2",
85
+ "resolved": "https://registry.npmmirror.com/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.2.tgz",
86
+ "integrity": "sha512-tcK/41Rq8IKlSaKRCCAuuY3lDJjQnYIW1UXU1kxcEKrfL8WR7N6+rzNoOxoQRJWTAECuKwgAHnPvqXGN8XfkHA==",
87
+ "cpu": [
88
+ "arm64"
89
+ ],
90
+ "optional": true,
91
+ "os": [
92
+ "darwin"
93
+ ],
94
+ "engines": {
95
+ "macos": ">=11",
96
+ "npm": ">=9.6.5",
97
+ "pnpm": ">=7.1.0",
98
+ "yarn": ">=3.2.0"
99
+ }
100
+ },
101
+ "node_modules/@img/sharp-libvips-darwin-x64": {
102
+ "version": "1.0.2",
103
+ "resolved": "https://registry.npmmirror.com/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.2.tgz",
104
+ "integrity": "sha512-Ofw+7oaWa0HiiMiKWqqaZbaYV3/UGL2wAPeLuJTx+9cXpCRdvQhCLG0IH8YGwM0yGWGLpsF4Su9vM1o6aer+Fw==",
105
+ "cpu": [
106
+ "x64"
107
+ ],
108
+ "optional": true,
109
+ "os": [
110
+ "darwin"
111
+ ],
112
+ "engines": {
113
+ "macos": ">=10.13",
114
+ "npm": ">=9.6.5",
115
+ "pnpm": ">=7.1.0",
116
+ "yarn": ">=3.2.0"
117
+ }
118
+ },
119
+ "node_modules/@img/sharp-libvips-linux-arm": {
120
+ "version": "1.0.2",
121
+ "resolved": "https://registry.npmmirror.com/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.2.tgz",
122
+ "integrity": "sha512-iLWCvrKgeFoglQxdEwzu1eQV04o8YeYGFXtfWU26Zr2wWT3q3MTzC+QTCO3ZQfWd3doKHT4Pm2kRmLbupT+sZw==",
123
+ "cpu": [
124
+ "arm"
125
+ ],
126
+ "optional": true,
127
+ "os": [
128
+ "linux"
129
+ ],
130
+ "engines": {
131
+ "glibc": ">=2.28",
132
+ "npm": ">=9.6.5",
133
+ "pnpm": ">=7.1.0",
134
+ "yarn": ">=3.2.0"
135
+ }
136
+ },
137
+ "node_modules/@img/sharp-libvips-linux-arm64": {
138
+ "version": "1.0.2",
139
+ "resolved": "https://registry.npmmirror.com/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.2.tgz",
140
+ "integrity": "sha512-x7kCt3N00ofFmmkkdshwj3vGPCnmiDh7Gwnd4nUwZln2YjqPxV1NlTyZOvoDWdKQVDL911487HOueBvrpflagw==",
141
+ "cpu": [
142
+ "arm64"
143
+ ],
144
+ "optional": true,
145
+ "os": [
146
+ "linux"
147
+ ],
148
+ "engines": {
149
+ "glibc": ">=2.26",
150
+ "npm": ">=9.6.5",
151
+ "pnpm": ">=7.1.0",
152
+ "yarn": ">=3.2.0"
153
+ }
154
+ },
155
+ "node_modules/@img/sharp-libvips-linux-s390x": {
156
+ "version": "1.0.2",
157
+ "resolved": "https://registry.npmmirror.com/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.2.tgz",
158
+ "integrity": "sha512-cmhQ1J4qVhfmS6szYW7RT+gLJq9dH2i4maq+qyXayUSn9/3iY2ZeWpbAgSpSVbV2E1JUL2Gg7pwnYQ1h8rQIog==",
159
+ "cpu": [
160
+ "s390x"
161
+ ],
162
+ "optional": true,
163
+ "os": [
164
+ "linux"
165
+ ],
166
+ "engines": {
167
+ "glibc": ">=2.28",
168
+ "npm": ">=9.6.5",
169
+ "pnpm": ">=7.1.0",
170
+ "yarn": ">=3.2.0"
171
+ }
172
+ },
173
+ "node_modules/@img/sharp-libvips-linux-x64": {
174
+ "version": "1.0.2",
175
+ "resolved": "https://registry.npmmirror.com/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.2.tgz",
176
+ "integrity": "sha512-E441q4Qdb+7yuyiADVi5J+44x8ctlrqn8XgkDTwr4qPJzWkaHwD489iZ4nGDgcuya4iMN3ULV6NwbhRZJ9Z7SQ==",
177
+ "cpu": [
178
+ "x64"
179
+ ],
180
+ "optional": true,
181
+ "os": [
182
+ "linux"
183
+ ],
184
+ "engines": {
185
+ "glibc": ">=2.26",
186
+ "npm": ">=9.6.5",
187
+ "pnpm": ">=7.1.0",
188
+ "yarn": ">=3.2.0"
189
+ }
190
+ },
191
+ "node_modules/@img/sharp-libvips-linuxmusl-arm64": {
192
+ "version": "1.0.2",
193
+ "resolved": "https://registry.npmmirror.com/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.2.tgz",
194
+ "integrity": "sha512-3CAkndNpYUrlDqkCM5qhksfE+qSIREVpyoeHIU6jd48SJZViAmznoQQLAv4hVXF7xyUB9zf+G++e2v1ABjCbEQ==",
195
+ "cpu": [
196
+ "arm64"
197
+ ],
198
+ "optional": true,
199
+ "os": [
200
+ "linux"
201
+ ],
202
+ "engines": {
203
+ "musl": ">=1.2.2",
204
+ "npm": ">=9.6.5",
205
+ "pnpm": ">=7.1.0",
206
+ "yarn": ">=3.2.0"
207
+ }
208
+ },
209
+ "node_modules/@img/sharp-libvips-linuxmusl-x64": {
210
+ "version": "1.0.2",
211
+ "resolved": "https://registry.npmmirror.com/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.2.tgz",
212
+ "integrity": "sha512-VI94Q6khIHqHWNOh6LLdm9s2Ry4zdjWJwH56WoiJU7NTeDwyApdZZ8c+SADC8OH98KWNQXnE01UdJ9CSfZvwZw==",
213
+ "cpu": [
214
+ "x64"
215
+ ],
216
+ "optional": true,
217
+ "os": [
218
+ "linux"
219
+ ],
220
+ "engines": {
221
+ "musl": ">=1.2.2",
222
+ "npm": ">=9.6.5",
223
+ "pnpm": ">=7.1.0",
224
+ "yarn": ">=3.2.0"
225
+ }
226
+ },
227
+ "node_modules/@img/sharp-linux-arm": {
228
+ "version": "0.33.4",
229
+ "resolved": "https://registry.npmmirror.com/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.4.tgz",
230
+ "integrity": "sha512-RUgBD1c0+gCYZGCCe6mMdTiOFS0Zc/XrN0fYd6hISIKcDUbAW5NtSQW9g/powkrXYm6Vzwd6y+fqmExDuCdHNQ==",
231
+ "cpu": [
232
+ "arm"
233
+ ],
234
+ "optional": true,
235
+ "os": [
236
+ "linux"
237
+ ],
238
+ "engines": {
239
+ "glibc": ">=2.28",
240
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
241
+ "npm": ">=9.6.5",
242
+ "pnpm": ">=7.1.0",
243
+ "yarn": ">=3.2.0"
244
+ },
245
+ "optionalDependencies": {
246
+ "@img/sharp-libvips-linux-arm": "1.0.2"
247
+ }
248
+ },
249
+ "node_modules/@img/sharp-linux-arm64": {
250
+ "version": "0.33.4",
251
+ "resolved": "https://registry.npmmirror.com/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.4.tgz",
252
+ "integrity": "sha512-2800clwVg1ZQtxwSoTlHvtm9ObgAax7V6MTAB/hDT945Tfyy3hVkmiHpeLPCKYqYR1Gcmv1uDZ3a4OFwkdBL7Q==",
253
+ "cpu": [
254
+ "arm64"
255
+ ],
256
+ "optional": true,
257
+ "os": [
258
+ "linux"
259
+ ],
260
+ "engines": {
261
+ "glibc": ">=2.26",
262
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
263
+ "npm": ">=9.6.5",
264
+ "pnpm": ">=7.1.0",
265
+ "yarn": ">=3.2.0"
266
+ },
267
+ "optionalDependencies": {
268
+ "@img/sharp-libvips-linux-arm64": "1.0.2"
269
+ }
270
+ },
271
+ "node_modules/@img/sharp-linux-s390x": {
272
+ "version": "0.33.4",
273
+ "resolved": "https://registry.npmmirror.com/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.4.tgz",
274
+ "integrity": "sha512-h3RAL3siQoyzSoH36tUeS0PDmb5wINKGYzcLB5C6DIiAn2F3udeFAum+gj8IbA/82+8RGCTn7XW8WTFnqag4tQ==",
275
+ "cpu": [
276
+ "s390x"
277
+ ],
278
+ "optional": true,
279
+ "os": [
280
+ "linux"
281
+ ],
282
+ "engines": {
283
+ "glibc": ">=2.31",
284
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
285
+ "npm": ">=9.6.5",
286
+ "pnpm": ">=7.1.0",
287
+ "yarn": ">=3.2.0"
288
+ },
289
+ "optionalDependencies": {
290
+ "@img/sharp-libvips-linux-s390x": "1.0.2"
291
+ }
292
+ },
293
+ "node_modules/@img/sharp-linux-x64": {
294
+ "version": "0.33.4",
295
+ "resolved": "https://registry.npmmirror.com/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.4.tgz",
296
+ "integrity": "sha512-GoR++s0XW9DGVi8SUGQ/U4AeIzLdNjHka6jidVwapQ/JebGVQIpi52OdyxCNVRE++n1FCLzjDovJNozif7w/Aw==",
297
+ "cpu": [
298
+ "x64"
299
+ ],
300
+ "optional": true,
301
+ "os": [
302
+ "linux"
303
+ ],
304
+ "engines": {
305
+ "glibc": ">=2.26",
306
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
307
+ "npm": ">=9.6.5",
308
+ "pnpm": ">=7.1.0",
309
+ "yarn": ">=3.2.0"
310
+ },
311
+ "optionalDependencies": {
312
+ "@img/sharp-libvips-linux-x64": "1.0.2"
313
+ }
314
+ },
315
+ "node_modules/@img/sharp-linuxmusl-arm64": {
316
+ "version": "0.33.4",
317
+ "resolved": "https://registry.npmmirror.com/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.4.tgz",
318
+ "integrity": "sha512-nhr1yC3BlVrKDTl6cO12gTpXMl4ITBUZieehFvMntlCXFzH2bvKG76tBL2Y/OqhupZt81pR7R+Q5YhJxW0rGgQ==",
319
+ "cpu": [
320
+ "arm64"
321
+ ],
322
+ "optional": true,
323
+ "os": [
324
+ "linux"
325
+ ],
326
+ "engines": {
327
+ "musl": ">=1.2.2",
328
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
329
+ "npm": ">=9.6.5",
330
+ "pnpm": ">=7.1.0",
331
+ "yarn": ">=3.2.0"
332
+ },
333
+ "optionalDependencies": {
334
+ "@img/sharp-libvips-linuxmusl-arm64": "1.0.2"
335
+ }
336
+ },
337
+ "node_modules/@img/sharp-linuxmusl-x64": {
338
+ "version": "0.33.4",
339
+ "resolved": "https://registry.npmmirror.com/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.4.tgz",
340
+ "integrity": "sha512-uCPTku0zwqDmZEOi4ILyGdmW76tH7dm8kKlOIV1XC5cLyJ71ENAAqarOHQh0RLfpIpbV5KOpXzdU6XkJtS0daw==",
341
+ "cpu": [
342
+ "x64"
343
+ ],
344
+ "optional": true,
345
+ "os": [
346
+ "linux"
347
+ ],
348
+ "engines": {
349
+ "musl": ">=1.2.2",
350
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
351
+ "npm": ">=9.6.5",
352
+ "pnpm": ">=7.1.0",
353
+ "yarn": ">=3.2.0"
354
+ },
355
+ "optionalDependencies": {
356
+ "@img/sharp-libvips-linuxmusl-x64": "1.0.2"
357
+ }
358
+ },
359
+ "node_modules/@img/sharp-wasm32": {
360
+ "version": "0.33.4",
361
+ "resolved": "https://registry.npmmirror.com/@img/sharp-wasm32/-/sharp-wasm32-0.33.4.tgz",
362
+ "integrity": "sha512-Bmmauh4sXUsUqkleQahpdNXKvo+wa1V9KhT2pDA4VJGKwnKMJXiSTGphn0gnJrlooda0QxCtXc6RX1XAU6hMnQ==",
363
+ "cpu": [
364
+ "wasm32"
365
+ ],
366
+ "optional": true,
367
+ "dependencies": {
368
+ "@emnapi/runtime": "^1.1.1"
369
+ },
370
+ "engines": {
371
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
372
+ "npm": ">=9.6.5",
373
+ "pnpm": ">=7.1.0",
374
+ "yarn": ">=3.2.0"
375
+ }
376
+ },
377
+ "node_modules/@img/sharp-win32-ia32": {
378
+ "version": "0.33.4",
379
+ "resolved": "https://registry.npmmirror.com/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.4.tgz",
380
+ "integrity": "sha512-99SJ91XzUhYHbx7uhK3+9Lf7+LjwMGQZMDlO/E/YVJ7Nc3lyDFZPGhjwiYdctoH2BOzW9+TnfqcaMKt0jHLdqw==",
381
+ "cpu": [
382
+ "ia32"
383
+ ],
384
+ "optional": true,
385
+ "os": [
386
+ "win32"
387
+ ],
388
+ "engines": {
389
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
390
+ "npm": ">=9.6.5",
391
+ "pnpm": ">=7.1.0",
392
+ "yarn": ">=3.2.0"
393
+ }
394
+ },
395
+ "node_modules/@img/sharp-win32-x64": {
396
+ "version": "0.33.4",
397
+ "resolved": "https://registry.npmmirror.com/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.4.tgz",
398
+ "integrity": "sha512-3QLocdTRVIrFNye5YocZl+KKpYKP+fksi1QhmOArgx7GyhIbQp/WrJRu176jm8IxromS7RIkzMiMINVdBtC8Aw==",
399
+ "cpu": [
400
+ "x64"
401
+ ],
402
+ "optional": true,
403
+ "os": [
404
+ "win32"
405
+ ],
406
+ "engines": {
407
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
408
+ "npm": ">=9.6.5",
409
+ "pnpm": ">=7.1.0",
410
+ "yarn": ">=3.2.0"
411
+ }
412
+ },
413
+ "node_modules/@jimp/bmp": {
414
+ "version": "0.3.9",
415
+ "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.3.9.tgz",
416
+ "integrity": "sha512-r+gAyODQBC8sHCJDQgdZgNcQhEeLlCd2wtfWK16cPhwiLmZoDjKt+sOsSkLg0PgBTmRFDLd7ewoUwS3DFyaMmQ==",
417
+ "dependencies": {
418
+ "@jimp/utils": "^0.3.9",
419
+ "bmp-js": "^0.1.0",
420
+ "core-js": "^2.5.7"
421
+ },
422
+ "peerDependencies": {
423
+ "@jimp/custom": ">=0.3.5"
424
+ }
425
+ },
426
+ "node_modules/@jimp/core": {
427
+ "version": "0.3.9",
428
+ "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.3.9.tgz",
429
+ "integrity": "sha512-phf7Ar3jyxC7LtwvBow/VMa/1H2bcY1x+QMZboJDCbIzAWi+t46VgsJLiIqCpmUgkVGnDfsXwabrso490E4UOg==",
430
+ "dependencies": {
431
+ "@jimp/utils": "^0.3.9",
432
+ "any-base": "^1.1.0",
433
+ "buffer": "^5.2.0",
434
+ "core-js": "^2.5.7",
435
+ "exif-parser": "^0.1.12",
436
+ "file-type": "^9.0.0",
437
+ "load-bmfont": "^1.3.1",
438
+ "mkdirp": "0.5.1",
439
+ "phin": "^2.9.1",
440
+ "pixelmatch": "^4.0.2",
441
+ "tinycolor2": "^1.4.1"
442
+ }
443
+ },
444
+ "node_modules/@jimp/custom": {
445
+ "version": "0.3.9",
446
+ "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.3.9.tgz",
447
+ "integrity": "sha512-6VjZPZx3kC/SAxxqb4bYymwkUPBzbh1rzSafjBp13A+i9lb4M0ECE+D9ioO3tILpa0NfdL5zg9rtFf1j6Yzg2g==",
448
+ "dependencies": {
449
+ "@jimp/core": "^0.3.9",
450
+ "core-js": "^2.5.7"
451
+ }
452
+ },
453
+ "node_modules/@jimp/gif": {
454
+ "version": "0.3.9",
455
+ "resolved": "https://registry.npmjs.org/@jimp/gif/-/gif-0.3.9.tgz",
456
+ "integrity": "sha512-rXjUteUUbB+3EzGMCQuj+0dCWF20RuqNwrSrPY/jNcfxQ7tnIOLAcj6pL3zlgF3/DCdVtvcHMh1OULr975fA/A==",
457
+ "dependencies": {
458
+ "@jimp/utils": "^0.3.9",
459
+ "core-js": "^2.5.7",
460
+ "omggif": "^1.0.9"
461
+ },
462
+ "peerDependencies": {
463
+ "@jimp/custom": ">=0.3.5"
464
+ }
465
+ },
466
+ "node_modules/@jimp/jpeg": {
467
+ "version": "0.3.9",
468
+ "resolved": "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.3.9.tgz",
469
+ "integrity": "sha512-WJ5ESHpJIetJSqp1myMewQf4KD1VegbdOQbiLvkW6CvX+lW1jQ83xouFv+jbZqZy5JNG1TtwMBNLMXzoBSbp1A==",
470
+ "dependencies": {
471
+ "@jimp/utils": "^0.3.9",
472
+ "core-js": "^2.5.7",
473
+ "jpeg-js": "^0.3.4"
474
+ },
475
+ "peerDependencies": {
476
+ "@jimp/custom": ">=0.3.5"
477
+ }
478
+ },
479
+ "node_modules/@jimp/plugin-blit": {
480
+ "version": "0.3.9",
481
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.3.9.tgz",
482
+ "integrity": "sha512-biiz9QvHB4Mz9DyumI44LbnfXAzGmEdOCJAA0Wc30Pmqn3CbQUIbOo5KtSKcEKYZxsYG2MQYn22OpPL17yHMwg==",
483
+ "dependencies": {
484
+ "@jimp/utils": "^0.3.9",
485
+ "core-js": "^2.5.7"
486
+ },
487
+ "peerDependencies": {
488
+ "@jimp/custom": ">=0.3.5"
489
+ }
490
+ },
491
+ "node_modules/@jimp/plugin-blur": {
492
+ "version": "0.3.9",
493
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.3.9.tgz",
494
+ "integrity": "sha512-QK7KSx8o2JKvRKESfqPYEuMFLzKQofqvxhVNKY+KVevT+BfDlONuZ5KrHdahzZ/uDu7GQcyhCl3Axe92CSvH1w==",
495
+ "dependencies": {
496
+ "@jimp/utils": "^0.3.9",
497
+ "core-js": "^2.5.7"
498
+ },
499
+ "peerDependencies": {
500
+ "@jimp/custom": ">=0.3.5"
501
+ }
502
+ },
503
+ "node_modules/@jimp/plugin-color": {
504
+ "version": "0.3.10",
505
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.3.10.tgz",
506
+ "integrity": "sha512-XObgRjjw720T0jJn41fm5POC/FH2rifN+TQqAlaZ/7Wn1kNlH4G8H1v6M0RNzMEKEYTgQud1oVZqY61gceowSQ==",
507
+ "dependencies": {
508
+ "@jimp/utils": "^0.3.9",
509
+ "core-js": "^2.5.7",
510
+ "tinycolor2": "^1.4.1"
511
+ },
512
+ "peerDependencies": {
513
+ "@jimp/custom": ">=0.3.5"
514
+ }
515
+ },
516
+ "node_modules/@jimp/plugin-contain": {
517
+ "version": "0.3.9",
518
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-0.3.9.tgz",
519
+ "integrity": "sha512-BqW2uidZBmMMVdU8b+/SRpDMMcvD6KYt5qsJhckkpoU5wROltng2trI02KAHaWy0eJwTdMApWJbxp+5MdBoreg==",
520
+ "dependencies": {
521
+ "@jimp/utils": "^0.3.9",
522
+ "core-js": "^2.5.7"
523
+ },
524
+ "peerDependencies": {
525
+ "@jimp/custom": ">=0.3.5",
526
+ "@jimp/plugin-blit": ">=0.3.5",
527
+ "@jimp/plugin-resize": ">=0.3.5",
528
+ "@jimp/plugin-scale": ">=0.3.5"
529
+ }
530
+ },
531
+ "node_modules/@jimp/plugin-cover": {
532
+ "version": "0.3.9",
533
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-0.3.9.tgz",
534
+ "integrity": "sha512-l9nALbXi9+QE1ohCmgRF3bWsLZGzN4YeZuSfhMiIKChtzinEKput4N5jl89+KeFFnusTR22ivlQcgWq3Zcia+w==",
535
+ "dependencies": {
536
+ "@jimp/utils": "^0.3.9",
537
+ "core-js": "^2.5.7"
538
+ },
539
+ "peerDependencies": {
540
+ "@jimp/custom": ">=0.3.5",
541
+ "@jimp/plugin-crop": ">=0.3.5",
542
+ "@jimp/plugin-scale": ">=0.3.5"
543
+ }
544
+ },
545
+ "node_modules/@jimp/plugin-crop": {
546
+ "version": "0.3.9",
547
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.3.9.tgz",
548
+ "integrity": "sha512-FzVwErLj89sAYOWa1NwICLWgdF0HS4LvGfUw+5oSHDUJ2ym4bUKplb3AO6IG494zT2jpTWc0hbQrGrF3HK2Y9Q==",
549
+ "dependencies": {
550
+ "@jimp/utils": "^0.3.9",
551
+ "core-js": "^2.5.7"
552
+ },
553
+ "peerDependencies": {
554
+ "@jimp/custom": ">=0.3.5"
555
+ }
556
+ },
557
+ "node_modules/@jimp/plugin-displace": {
558
+ "version": "0.3.9",
559
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-0.3.9.tgz",
560
+ "integrity": "sha512-/RM8sTxkHy8YW88DoS2KMPujekLUCNdB4XO6wv74pXRMDCC0jBvePAO0rJ9BBE/L93ShQtoe/gBUa3lVWitf8w==",
561
+ "dependencies": {
562
+ "@jimp/utils": "^0.3.9",
563
+ "core-js": "^2.5.7"
564
+ },
565
+ "peerDependencies": {
566
+ "@jimp/custom": ">=0.3.5"
567
+ }
568
+ },
569
+ "node_modules/@jimp/plugin-dither": {
570
+ "version": "0.3.9",
571
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-0.3.9.tgz",
572
+ "integrity": "sha512-sWPSXnZZK8F2tXZOpfpknkySXlxjghjIJAaFjDyFDSKm3NiSNyL0CXd0GUwvPyof3lBRLqghPMsRw3Px6zJg3g==",
573
+ "dependencies": {
574
+ "@jimp/utils": "^0.3.9",
575
+ "core-js": "^2.5.7"
576
+ },
577
+ "peerDependencies": {
578
+ "@jimp/custom": ">=0.3.5"
579
+ }
580
+ },
581
+ "node_modules/@jimp/plugin-flip": {
582
+ "version": "0.3.9",
583
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-0.3.9.tgz",
584
+ "integrity": "sha512-GsF4sq0oHpZYXkMEcdfQS+yN1xcQX0YORNSwApKLV1c05AS0T0xqj+0U6FN9vPmyNJ0ptS+TyATf0CbupT7zzA==",
585
+ "dependencies": {
586
+ "@jimp/utils": "^0.3.9",
587
+ "core-js": "^2.5.7"
588
+ },
589
+ "peerDependencies": {
590
+ "@jimp/custom": ">=0.3.5",
591
+ "@jimp/plugin-rotate": ">=0.3.5"
592
+ }
593
+ },
594
+ "node_modules/@jimp/plugin-gaussian": {
595
+ "version": "0.3.9",
596
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-gaussian/-/plugin-gaussian-0.3.9.tgz",
597
+ "integrity": "sha512-XSYaYhBEMvMejqSgIIFAvaNwQynFWbXmSgrD8VxEuQtJyi5jO5XVmL3q3rxN034XD7NO8UKyjB+QE2oiaMsKiw==",
598
+ "dependencies": {
599
+ "@jimp/utils": "^0.3.9",
600
+ "core-js": "^2.5.7"
601
+ },
602
+ "peerDependencies": {
603
+ "@jimp/custom": ">=0.3.5"
604
+ }
605
+ },
606
+ "node_modules/@jimp/plugin-invert": {
607
+ "version": "0.3.9",
608
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-invert/-/plugin-invert-0.3.9.tgz",
609
+ "integrity": "sha512-csdCm9QpV2W1IdE8jo4gTNC8Q6Eh7hgE7kp/Ikc9W4SNkHA+ppcNOliT2tT+o/Yxza393cWTAIVHHOfKC+gPzw==",
610
+ "dependencies": {
611
+ "@jimp/utils": "^0.3.9",
612
+ "core-js": "^2.5.7"
613
+ },
614
+ "peerDependencies": {
615
+ "@jimp/custom": ">=0.3.5"
616
+ }
617
+ },
618
+ "node_modules/@jimp/plugin-mask": {
619
+ "version": "0.3.9",
620
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-0.3.9.tgz",
621
+ "integrity": "sha512-UHTRbyb230t/EOJANUDFk9dGAwv+1i1LRAMZ14Zv4vgVRHl/DqknNX6owVd6fYJJKthHOKSmTtDLPNR2b+MCWg==",
622
+ "dependencies": {
623
+ "@jimp/utils": "^0.3.9",
624
+ "core-js": "^2.5.7"
625
+ },
626
+ "peerDependencies": {
627
+ "@jimp/custom": ">=0.3.5"
628
+ }
629
+ },
630
+ "node_modules/@jimp/plugin-normalize": {
631
+ "version": "0.3.9",
632
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-normalize/-/plugin-normalize-0.3.9.tgz",
633
+ "integrity": "sha512-eIrs29cStWVuQk3NBrq0cY6F4taoydmu4jdpy/Hw+9gIi96Dpd+eakDhU1y5F7sFAZrfy65Ps2m56IYwn+FE5A==",
634
+ "dependencies": {
635
+ "@jimp/utils": "^0.3.9",
636
+ "core-js": "^2.5.7"
637
+ },
638
+ "peerDependencies": {
639
+ "@jimp/custom": ">=0.3.5"
640
+ }
641
+ },
642
+ "node_modules/@jimp/plugin-print": {
643
+ "version": "0.3.9",
644
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-0.3.9.tgz",
645
+ "integrity": "sha512-1hcfxceeUAqluUpV8m0clE/mtuGQ8/RdB6gESr/0hYfVFHzULasIKKTWw410buiBL9i2nrTOoehgWKU/AgRGCg==",
646
+ "dependencies": {
647
+ "@jimp/utils": "^0.3.9",
648
+ "core-js": "^2.5.7",
649
+ "load-bmfont": "^1.3.1"
650
+ },
651
+ "peerDependencies": {
652
+ "@jimp/custom": ">=0.3.5"
653
+ }
654
+ },
655
+ "node_modules/@jimp/plugin-resize": {
656
+ "version": "0.3.9",
657
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.3.9.tgz",
658
+ "integrity": "sha512-Rq9l1+VtqI71bvzdo3wfiqJ4iDO7ZrIbzjRFysRJpfwRm4bVibUoLPf0wCpDDkNAJllP5l8y/4Y+x/TzREKpBw==",
659
+ "dependencies": {
660
+ "@jimp/utils": "^0.3.9",
661
+ "core-js": "^2.5.7"
662
+ },
663
+ "peerDependencies": {
664
+ "@jimp/custom": ">=0.3.5"
665
+ }
666
+ },
667
+ "node_modules/@jimp/plugin-rotate": {
668
+ "version": "0.3.9",
669
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.3.9.tgz",
670
+ "integrity": "sha512-9o/pix6zojMEEfqNAbFBaVpjLDAdFJIAVa0pegPGS6v0aTytHo2cRL0OYN8cP8NbFPG+kMD+v2i/XV+Ubv2pJg==",
671
+ "dependencies": {
672
+ "@jimp/utils": "^0.3.9",
673
+ "core-js": "^2.5.7"
674
+ },
675
+ "peerDependencies": {
676
+ "@jimp/custom": ">=0.3.5",
677
+ "@jimp/plugin-blit": ">=0.3.5",
678
+ "@jimp/plugin-crop": ">=0.3.5",
679
+ "@jimp/plugin-resize": ">=0.3.5"
680
+ }
681
+ },
682
+ "node_modules/@jimp/plugin-scale": {
683
+ "version": "0.3.9",
684
+ "resolved": "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.3.9.tgz",
685
+ "integrity": "sha512-hlKBwqo59ZxIjYyIx/zPFmfER6XyNJAUh3jXcofJ0oF1sH1fTl+BjqkYvouw4CAGQlF3invLRXLp7sluCcau6g==",
686
+ "dependencies": {
687
+ "@jimp/utils": "^0.3.9",
688
+ "core-js": "^2.5.7"
689
+ },
690
+ "peerDependencies": {
691
+ "@jimp/custom": ">=0.3.5",
692
+ "@jimp/plugin-resize": ">=0.3.5"
693
+ }
694
+ },
695
+ "node_modules/@jimp/plugins": {
696
+ "version": "0.3.10",
697
+ "resolved": "https://registry.npmjs.org/@jimp/plugins/-/plugins-0.3.10.tgz",
698
+ "integrity": "sha512-RYFO8A8qFo7q0fKiZIcwaNco375Mdknat2oDn67B21k/3CZPUtqzLWy2+X9WXBPHULrF9F8J2loxN8rvSe/0Og==",
699
+ "dependencies": {
700
+ "@jimp/plugin-blit": "^0.3.9",
701
+ "@jimp/plugin-blur": "^0.3.9",
702
+ "@jimp/plugin-color": "^0.3.10",
703
+ "@jimp/plugin-contain": "^0.3.9",
704
+ "@jimp/plugin-cover": "^0.3.9",
705
+ "@jimp/plugin-crop": "^0.3.9",
706
+ "@jimp/plugin-displace": "^0.3.9",
707
+ "@jimp/plugin-dither": "^0.3.9",
708
+ "@jimp/plugin-flip": "^0.3.9",
709
+ "@jimp/plugin-gaussian": "^0.3.9",
710
+ "@jimp/plugin-invert": "^0.3.9",
711
+ "@jimp/plugin-mask": "^0.3.9",
712
+ "@jimp/plugin-normalize": "^0.3.9",
713
+ "@jimp/plugin-print": "^0.3.9",
714
+ "@jimp/plugin-resize": "^0.3.9",
715
+ "@jimp/plugin-rotate": "^0.3.9",
716
+ "@jimp/plugin-scale": "^0.3.9",
717
+ "core-js": "^2.5.7",
718
+ "timm": "^1.6.1"
719
+ },
720
+ "peerDependencies": {
721
+ "@jimp/custom": ">=0.3.5"
722
+ }
723
+ },
724
+ "node_modules/@jimp/png": {
725
+ "version": "0.3.9",
726
+ "resolved": "https://registry.npmjs.org/@jimp/png/-/png-0.3.9.tgz",
727
+ "integrity": "sha512-PrqH0gE9AzFV2mJPepm6U9GBzeuS9Fn9BMZPDg1p8AOIXlzySv2cgby6gaLpUk5XiQwiOwhO6A6rLvXXJ0s17A==",
728
+ "dependencies": {
729
+ "@jimp/utils": "^0.3.9",
730
+ "core-js": "^2.5.7",
731
+ "pngjs": "^3.3.3"
732
+ },
733
+ "peerDependencies": {
734
+ "@jimp/custom": ">=0.3.5"
735
+ }
736
+ },
737
+ "node_modules/@jimp/tiff": {
738
+ "version": "0.3.9",
739
+ "resolved": "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.3.9.tgz",
740
+ "integrity": "sha512-OkoUmeBVOlP/AWgcHNXi9W32hk3glZWm/gMzbEOyExVQYPb/C9emTpJ5SAfFEKAkIJ5ylnC4q0Lvip8YvYihLQ==",
741
+ "dependencies": {
742
+ "core-js": "^2.5.7",
743
+ "utif": "^2.0.0"
744
+ },
745
+ "peerDependencies": {
746
+ "@jimp/custom": ">=0.3.5"
747
+ }
748
+ },
749
+ "node_modules/@jimp/types": {
750
+ "version": "0.3.9",
751
+ "resolved": "https://registry.npmjs.org/@jimp/types/-/types-0.3.9.tgz",
752
+ "integrity": "sha512-ref+xXz21h7SI3O95CC7XIR0Hkn5LhVffMfSiXz4R9oC41DhANmpi3flkN/uv+WMRhwoIzYEnoU2aljGJ58sXg==",
753
+ "dependencies": {
754
+ "@jimp/bmp": "^0.3.9",
755
+ "@jimp/gif": "^0.3.9",
756
+ "@jimp/jpeg": "^0.3.9",
757
+ "@jimp/png": "^0.3.9",
758
+ "@jimp/tiff": "^0.3.9",
759
+ "core-js": "^2.5.7",
760
+ "timm": "^1.6.1"
761
+ },
762
+ "peerDependencies": {
763
+ "@jimp/custom": ">=0.3.5"
764
+ }
765
+ },
766
+ "node_modules/@jimp/utils": {
767
+ "version": "0.3.9",
768
+ "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.3.9.tgz",
769
+ "integrity": "sha512-nqJmMQbSBf1AmRZ3AZTq6Gct7T0gZ5R6bGhD9AaPbCb7AkkGX+DPMhT39VIiDT8sbwl+3Lxakr8KCjkrWz8nFQ==",
770
+ "dependencies": {
771
+ "core-js": "^2.5.7"
772
+ }
773
+ },
774
+ "node_modules/@types/node": {
775
+ "version": "20.12.12",
776
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz",
777
+ "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==",
778
+ "optional": true,
779
+ "dependencies": {
780
+ "undici-types": "~5.26.4"
781
+ }
782
+ },
783
+ "node_modules/accepts": {
784
+ "version": "1.3.8",
785
+ "resolved": "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz",
786
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
787
+ "dependencies": {
788
+ "mime-types": "~2.1.34",
789
+ "negotiator": "0.6.3"
790
+ },
791
+ "engines": {
792
+ "node": ">= 0.6"
793
+ }
794
+ },
795
+ "node_modules/ansi-regex": {
796
+ "version": "2.1.1",
797
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
798
+ "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
799
+ "engines": {
800
+ "node": ">=0.10.0"
801
+ }
802
+ },
803
+ "node_modules/any-base": {
804
+ "version": "1.1.0",
805
+ "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz",
806
+ "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg=="
807
+ },
808
+ "node_modules/aproba": {
809
+ "version": "1.2.0",
810
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
811
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
812
+ },
813
+ "node_modules/are-we-there-yet": {
814
+ "version": "1.1.7",
815
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz",
816
+ "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==",
817
+ "dependencies": {
818
+ "delegates": "^1.0.0",
819
+ "readable-stream": "^2.0.6"
820
+ }
821
+ },
822
+ "node_modules/array-flatten": {
823
+ "version": "1.1.1",
824
+ "resolved": "https://registry.npmmirror.com/array-flatten/-/array-flatten-1.1.1.tgz",
825
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
826
+ },
827
+ "node_modules/async": {
828
+ "version": "0.2.10",
829
+ "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
830
+ "integrity": "sha512-eAkdoKxU6/LkKDBzLpT+t6Ff5EtfSF4wx1WfJiPEEV7WNLnDaRXk0oVysiEPm262roaachGexwUv94WhSgN5TQ=="
831
+ },
832
+ "node_modules/asynckit": {
833
+ "version": "0.4.0",
834
+ "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
835
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
836
+ },
837
+ "node_modules/axios": {
838
+ "version": "1.7.2",
839
+ "resolved": "https://registry.npmmirror.com/axios/-/axios-1.7.2.tgz",
840
+ "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==",
841
+ "dependencies": {
842
+ "follow-redirects": "^1.15.6",
843
+ "form-data": "^4.0.0",
844
+ "proxy-from-env": "^1.1.0"
845
+ }
846
+ },
847
+ "node_modules/base64-js": {
848
+ "version": "1.5.1",
849
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
850
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
851
+ "funding": [
852
+ {
853
+ "type": "github",
854
+ "url": "https://github.com/sponsors/feross"
855
+ },
856
+ {
857
+ "type": "patreon",
858
+ "url": "https://www.patreon.com/feross"
859
+ },
860
+ {
861
+ "type": "consulting",
862
+ "url": "https://feross.org/support"
863
+ }
864
+ ]
865
+ },
866
+ "node_modules/bmp-js": {
867
+ "version": "0.1.0",
868
+ "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz",
869
+ "integrity": "sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw=="
870
+ },
871
+ "node_modules/body-parser": {
872
+ "version": "1.20.2",
873
+ "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-1.20.2.tgz",
874
+ "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
875
+ "dependencies": {
876
+ "bytes": "3.1.2",
877
+ "content-type": "~1.0.5",
878
+ "debug": "2.6.9",
879
+ "depd": "2.0.0",
880
+ "destroy": "1.2.0",
881
+ "http-errors": "2.0.0",
882
+ "iconv-lite": "0.4.24",
883
+ "on-finished": "2.4.1",
884
+ "qs": "6.11.0",
885
+ "raw-body": "2.5.2",
886
+ "type-is": "~1.6.18",
887
+ "unpipe": "1.0.0"
888
+ },
889
+ "engines": {
890
+ "node": ">= 0.8",
891
+ "npm": "1.2.8000 || >= 1.4.16"
892
+ }
893
+ },
894
+ "node_modules/buffer": {
895
+ "version": "5.7.1",
896
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
897
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
898
+ "funding": [
899
+ {
900
+ "type": "github",
901
+ "url": "https://github.com/sponsors/feross"
902
+ },
903
+ {
904
+ "type": "patreon",
905
+ "url": "https://www.patreon.com/feross"
906
+ },
907
+ {
908
+ "type": "consulting",
909
+ "url": "https://feross.org/support"
910
+ }
911
+ ],
912
+ "dependencies": {
913
+ "base64-js": "^1.3.1",
914
+ "ieee754": "^1.1.13"
915
+ }
916
+ },
917
+ "node_modules/buffer-equal": {
918
+ "version": "0.0.1",
919
+ "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz",
920
+ "integrity": "sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==",
921
+ "engines": {
922
+ "node": ">=0.4.0"
923
+ }
924
+ },
925
+ "node_modules/bytes": {
926
+ "version": "3.1.2",
927
+ "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz",
928
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
929
+ "engines": {
930
+ "node": ">= 0.8"
931
+ }
932
+ },
933
+ "node_modules/call-bind": {
934
+ "version": "1.0.7",
935
+ "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.7.tgz",
936
+ "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
937
+ "dependencies": {
938
+ "es-define-property": "^1.0.0",
939
+ "es-errors": "^1.3.0",
940
+ "function-bind": "^1.1.2",
941
+ "get-intrinsic": "^1.2.4",
942
+ "set-function-length": "^1.2.1"
943
+ },
944
+ "engines": {
945
+ "node": ">= 0.4"
946
+ },
947
+ "funding": {
948
+ "url": "https://github.com/sponsors/ljharb"
949
+ }
950
+ },
951
+ "node_modules/code-point-at": {
952
+ "version": "1.1.0",
953
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
954
+ "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==",
955
+ "engines": {
956
+ "node": ">=0.10.0"
957
+ }
958
+ },
959
+ "node_modules/color": {
960
+ "version": "4.2.3",
961
+ "resolved": "https://registry.npmmirror.com/color/-/color-4.2.3.tgz",
962
+ "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
963
+ "dependencies": {
964
+ "color-convert": "^2.0.1",
965
+ "color-string": "^1.9.0"
966
+ },
967
+ "engines": {
968
+ "node": ">=12.5.0"
969
+ }
970
+ },
971
+ "node_modules/color-convert": {
972
+ "version": "2.0.1",
973
+ "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
974
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
975
+ "dependencies": {
976
+ "color-name": "~1.1.4"
977
+ },
978
+ "engines": {
979
+ "node": ">=7.0.0"
980
+ }
981
+ },
982
+ "node_modules/color-name": {
983
+ "version": "1.1.4",
984
+ "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
985
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
986
+ },
987
+ "node_modules/color-string": {
988
+ "version": "1.9.1",
989
+ "resolved": "https://registry.npmmirror.com/color-string/-/color-string-1.9.1.tgz",
990
+ "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
991
+ "dependencies": {
992
+ "color-name": "^1.0.0",
993
+ "simple-swizzle": "^0.2.2"
994
+ }
995
+ },
996
+ "node_modules/combined-stream": {
997
+ "version": "1.0.8",
998
+ "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz",
999
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
1000
+ "dependencies": {
1001
+ "delayed-stream": "~1.0.0"
1002
+ },
1003
+ "engines": {
1004
+ "node": ">= 0.8"
1005
+ }
1006
+ },
1007
+ "node_modules/console-control-strings": {
1008
+ "version": "1.1.0",
1009
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
1010
+ "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ=="
1011
+ },
1012
+ "node_modules/content-disposition": {
1013
+ "version": "0.5.4",
1014
+ "resolved": "https://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.4.tgz",
1015
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
1016
+ "dependencies": {
1017
+ "safe-buffer": "5.2.1"
1018
+ },
1019
+ "engines": {
1020
+ "node": ">= 0.6"
1021
+ }
1022
+ },
1023
+ "node_modules/content-disposition/node_modules/safe-buffer": {
1024
+ "version": "5.2.1",
1025
+ "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz",
1026
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
1027
+ "funding": [
1028
+ {
1029
+ "type": "github",
1030
+ "url": "https://github.com/sponsors/feross"
1031
+ },
1032
+ {
1033
+ "type": "patreon",
1034
+ "url": "https://www.patreon.com/feross"
1035
+ },
1036
+ {
1037
+ "type": "consulting",
1038
+ "url": "https://feross.org/support"
1039
+ }
1040
+ ]
1041
+ },
1042
+ "node_modules/content-type": {
1043
+ "version": "1.0.5",
1044
+ "resolved": "https://registry.npmmirror.com/content-type/-/content-type-1.0.5.tgz",
1045
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
1046
+ "engines": {
1047
+ "node": ">= 0.6"
1048
+ }
1049
+ },
1050
+ "node_modules/cookie": {
1051
+ "version": "0.6.0",
1052
+ "resolved": "https://registry.npmmirror.com/cookie/-/cookie-0.6.0.tgz",
1053
+ "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
1054
+ "engines": {
1055
+ "node": ">= 0.6"
1056
+ }
1057
+ },
1058
+ "node_modules/cookie-signature": {
1059
+ "version": "1.0.6",
1060
+ "resolved": "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz",
1061
+ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
1062
+ },
1063
+ "node_modules/core-js": {
1064
+ "version": "2.6.12",
1065
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
1066
+ "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==",
1067
+ "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.",
1068
+ "hasInstallScript": true
1069
+ },
1070
+ "node_modules/core-util-is": {
1071
+ "version": "1.0.3",
1072
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
1073
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
1074
+ },
1075
+ "node_modules/debug": {
1076
+ "version": "2.6.9",
1077
+ "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
1078
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
1079
+ "dependencies": {
1080
+ "ms": "2.0.0"
1081
+ }
1082
+ },
1083
+ "node_modules/define-data-property": {
1084
+ "version": "1.1.4",
1085
+ "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz",
1086
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
1087
+ "dependencies": {
1088
+ "es-define-property": "^1.0.0",
1089
+ "es-errors": "^1.3.0",
1090
+ "gopd": "^1.0.1"
1091
+ },
1092
+ "engines": {
1093
+ "node": ">= 0.4"
1094
+ },
1095
+ "funding": {
1096
+ "url": "https://github.com/sponsors/ljharb"
1097
+ }
1098
+ },
1099
+ "node_modules/delayed-stream": {
1100
+ "version": "1.0.0",
1101
+ "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
1102
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
1103
+ "engines": {
1104
+ "node": ">=0.4.0"
1105
+ }
1106
+ },
1107
+ "node_modules/delegates": {
1108
+ "version": "1.0.0",
1109
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
1110
+ "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ=="
1111
+ },
1112
+ "node_modules/depd": {
1113
+ "version": "2.0.0",
1114
+ "resolved": "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz",
1115
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
1116
+ "engines": {
1117
+ "node": ">= 0.8"
1118
+ }
1119
+ },
1120
+ "node_modules/destroy": {
1121
+ "version": "1.2.0",
1122
+ "resolved": "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz",
1123
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
1124
+ "engines": {
1125
+ "node": ">= 0.8",
1126
+ "npm": "1.2.8000 || >= 1.4.16"
1127
+ }
1128
+ },
1129
+ "node_modules/detect-libc": {
1130
+ "version": "2.0.3",
1131
+ "resolved": "https://registry.npmmirror.com/detect-libc/-/detect-libc-2.0.3.tgz",
1132
+ "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==",
1133
+ "engines": {
1134
+ "node": ">=8"
1135
+ }
1136
+ },
1137
+ "node_modules/dom-walk": {
1138
+ "version": "0.1.2",
1139
+ "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz",
1140
+ "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w=="
1141
+ },
1142
+ "node_modules/ee-first": {
1143
+ "version": "1.1.1",
1144
+ "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz",
1145
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
1146
+ },
1147
+ "node_modules/encodeurl": {
1148
+ "version": "1.0.2",
1149
+ "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz",
1150
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
1151
+ "engines": {
1152
+ "node": ">= 0.8"
1153
+ }
1154
+ },
1155
+ "node_modules/es-define-property": {
1156
+ "version": "1.0.0",
1157
+ "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.0.tgz",
1158
+ "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
1159
+ "dependencies": {
1160
+ "get-intrinsic": "^1.2.4"
1161
+ },
1162
+ "engines": {
1163
+ "node": ">= 0.4"
1164
+ }
1165
+ },
1166
+ "node_modules/es-errors": {
1167
+ "version": "1.3.0",
1168
+ "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz",
1169
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
1170
+ "engines": {
1171
+ "node": ">= 0.4"
1172
+ }
1173
+ },
1174
+ "node_modules/escape-html": {
1175
+ "version": "1.0.3",
1176
+ "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz",
1177
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
1178
+ },
1179
+ "node_modules/etag": {
1180
+ "version": "1.8.1",
1181
+ "resolved": "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz",
1182
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
1183
+ "engines": {
1184
+ "node": ">= 0.6"
1185
+ }
1186
+ },
1187
+ "node_modules/exif-parser": {
1188
+ "version": "0.1.12",
1189
+ "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz",
1190
+ "integrity": "sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw=="
1191
+ },
1192
+ "node_modules/express": {
1193
+ "version": "4.19.2",
1194
+ "resolved": "https://registry.npmmirror.com/express/-/express-4.19.2.tgz",
1195
+ "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==",
1196
+ "dependencies": {
1197
+ "accepts": "~1.3.8",
1198
+ "array-flatten": "1.1.1",
1199
+ "body-parser": "1.20.2",
1200
+ "content-disposition": "0.5.4",
1201
+ "content-type": "~1.0.4",
1202
+ "cookie": "0.6.0",
1203
+ "cookie-signature": "1.0.6",
1204
+ "debug": "2.6.9",
1205
+ "depd": "2.0.0",
1206
+ "encodeurl": "~1.0.2",
1207
+ "escape-html": "~1.0.3",
1208
+ "etag": "~1.8.1",
1209
+ "finalhandler": "1.2.0",
1210
+ "fresh": "0.5.2",
1211
+ "http-errors": "2.0.0",
1212
+ "merge-descriptors": "1.0.1",
1213
+ "methods": "~1.1.2",
1214
+ "on-finished": "2.4.1",
1215
+ "parseurl": "~1.3.3",
1216
+ "path-to-regexp": "0.1.7",
1217
+ "proxy-addr": "~2.0.7",
1218
+ "qs": "6.11.0",
1219
+ "range-parser": "~1.2.1",
1220
+ "safe-buffer": "5.2.1",
1221
+ "send": "0.18.0",
1222
+ "serve-static": "1.15.0",
1223
+ "setprototypeof": "1.2.0",
1224
+ "statuses": "2.0.1",
1225
+ "type-is": "~1.6.18",
1226
+ "utils-merge": "1.0.1",
1227
+ "vary": "~1.1.2"
1228
+ },
1229
+ "engines": {
1230
+ "node": ">= 0.10.0"
1231
+ }
1232
+ },
1233
+ "node_modules/express/node_modules/safe-buffer": {
1234
+ "version": "5.2.1",
1235
+ "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz",
1236
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
1237
+ "funding": [
1238
+ {
1239
+ "type": "github",
1240
+ "url": "https://github.com/sponsors/feross"
1241
+ },
1242
+ {
1243
+ "type": "patreon",
1244
+ "url": "https://www.patreon.com/feross"
1245
+ },
1246
+ {
1247
+ "type": "consulting",
1248
+ "url": "https://feross.org/support"
1249
+ }
1250
+ ]
1251
+ },
1252
+ "node_modules/file-type": {
1253
+ "version": "9.0.0",
1254
+ "resolved": "https://registry.npmjs.org/file-type/-/file-type-9.0.0.tgz",
1255
+ "integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==",
1256
+ "engines": {
1257
+ "node": ">=6"
1258
+ }
1259
+ },
1260
+ "node_modules/finalhandler": {
1261
+ "version": "1.2.0",
1262
+ "resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.2.0.tgz",
1263
+ "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
1264
+ "dependencies": {
1265
+ "debug": "2.6.9",
1266
+ "encodeurl": "~1.0.2",
1267
+ "escape-html": "~1.0.3",
1268
+ "on-finished": "2.4.1",
1269
+ "parseurl": "~1.3.3",
1270
+ "statuses": "2.0.1",
1271
+ "unpipe": "~1.0.0"
1272
+ },
1273
+ "engines": {
1274
+ "node": ">= 0.8"
1275
+ }
1276
+ },
1277
+ "node_modules/fluent-ffmpeg": {
1278
+ "version": "2.1.3",
1279
+ "resolved": "https://registry.npmjs.org/fluent-ffmpeg/-/fluent-ffmpeg-2.1.3.tgz",
1280
+ "integrity": "sha512-Be3narBNt2s6bsaqP6Jzq91heDgOEaDCJAXcE3qcma/EJBSy5FB4cvO31XBInuAuKBx8Kptf8dkhjK0IOru39Q==",
1281
+ "dependencies": {
1282
+ "async": "^0.2.9",
1283
+ "which": "^1.1.1"
1284
+ },
1285
+ "engines": {
1286
+ "node": ">=18"
1287
+ }
1288
+ },
1289
+ "node_modules/follow-redirects": {
1290
+ "version": "1.15.6",
1291
+ "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.6.tgz",
1292
+ "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
1293
+ "funding": [
1294
+ {
1295
+ "type": "individual",
1296
+ "url": "https://github.com/sponsors/RubenVerborgh"
1297
+ }
1298
+ ],
1299
+ "engines": {
1300
+ "node": ">=4.0"
1301
+ },
1302
+ "peerDependenciesMeta": {
1303
+ "debug": {
1304
+ "optional": true
1305
+ }
1306
+ }
1307
+ },
1308
+ "node_modules/form-data": {
1309
+ "version": "4.0.0",
1310
+ "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz",
1311
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
1312
+ "dependencies": {
1313
+ "asynckit": "^0.4.0",
1314
+ "combined-stream": "^1.0.8",
1315
+ "mime-types": "^2.1.12"
1316
+ },
1317
+ "engines": {
1318
+ "node": ">= 6"
1319
+ }
1320
+ },
1321
+ "node_modules/forwarded": {
1322
+ "version": "0.2.0",
1323
+ "resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz",
1324
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
1325
+ "engines": {
1326
+ "node": ">= 0.6"
1327
+ }
1328
+ },
1329
+ "node_modules/fresh": {
1330
+ "version": "0.5.2",
1331
+ "resolved": "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz",
1332
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
1333
+ "engines": {
1334
+ "node": ">= 0.6"
1335
+ }
1336
+ },
1337
+ "node_modules/fs": {
1338
+ "version": "0.0.1-security",
1339
+ "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz",
1340
+ "integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w=="
1341
+ },
1342
+ "node_modules/function-bind": {
1343
+ "version": "1.1.2",
1344
+ "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz",
1345
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
1346
+ "funding": {
1347
+ "url": "https://github.com/sponsors/ljharb"
1348
+ }
1349
+ },
1350
+ "node_modules/gauge": {
1351
+ "version": "2.7.4",
1352
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
1353
+ "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==",
1354
+ "dependencies": {
1355
+ "aproba": "^1.0.3",
1356
+ "console-control-strings": "^1.0.0",
1357
+ "has-unicode": "^2.0.0",
1358
+ "object-assign": "^4.1.0",
1359
+ "signal-exit": "^3.0.0",
1360
+ "string-width": "^1.0.1",
1361
+ "strip-ansi": "^3.0.1",
1362
+ "wide-align": "^1.1.0"
1363
+ }
1364
+ },
1365
+ "node_modules/get-intrinsic": {
1366
+ "version": "1.2.4",
1367
+ "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
1368
+ "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
1369
+ "dependencies": {
1370
+ "es-errors": "^1.3.0",
1371
+ "function-bind": "^1.1.2",
1372
+ "has-proto": "^1.0.1",
1373
+ "has-symbols": "^1.0.3",
1374
+ "hasown": "^2.0.0"
1375
+ },
1376
+ "engines": {
1377
+ "node": ">= 0.4"
1378
+ },
1379
+ "funding": {
1380
+ "url": "https://github.com/sponsors/ljharb"
1381
+ }
1382
+ },
1383
+ "node_modules/global": {
1384
+ "version": "4.4.0",
1385
+ "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz",
1386
+ "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==",
1387
+ "dependencies": {
1388
+ "min-document": "^2.19.0",
1389
+ "process": "^0.11.10"
1390
+ }
1391
+ },
1392
+ "node_modules/gopd": {
1393
+ "version": "1.0.1",
1394
+ "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz",
1395
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
1396
+ "dependencies": {
1397
+ "get-intrinsic": "^1.1.3"
1398
+ },
1399
+ "funding": {
1400
+ "url": "https://github.com/sponsors/ljharb"
1401
+ }
1402
+ },
1403
+ "node_modules/has-property-descriptors": {
1404
+ "version": "1.0.2",
1405
+ "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
1406
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
1407
+ "dependencies": {
1408
+ "es-define-property": "^1.0.0"
1409
+ },
1410
+ "funding": {
1411
+ "url": "https://github.com/sponsors/ljharb"
1412
+ }
1413
+ },
1414
+ "node_modules/has-proto": {
1415
+ "version": "1.0.3",
1416
+ "resolved": "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.3.tgz",
1417
+ "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
1418
+ "engines": {
1419
+ "node": ">= 0.4"
1420
+ },
1421
+ "funding": {
1422
+ "url": "https://github.com/sponsors/ljharb"
1423
+ }
1424
+ },
1425
+ "node_modules/has-symbols": {
1426
+ "version": "1.0.3",
1427
+ "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz",
1428
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
1429
+ "engines": {
1430
+ "node": ">= 0.4"
1431
+ },
1432
+ "funding": {
1433
+ "url": "https://github.com/sponsors/ljharb"
1434
+ }
1435
+ },
1436
+ "node_modules/has-unicode": {
1437
+ "version": "2.0.1",
1438
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
1439
+ "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ=="
1440
+ },
1441
+ "node_modules/hasown": {
1442
+ "version": "2.0.2",
1443
+ "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz",
1444
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
1445
+ "dependencies": {
1446
+ "function-bind": "^1.1.2"
1447
+ },
1448
+ "engines": {
1449
+ "node": ">= 0.4"
1450
+ }
1451
+ },
1452
+ "node_modules/http-errors": {
1453
+ "version": "2.0.0",
1454
+ "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.0.tgz",
1455
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
1456
+ "dependencies": {
1457
+ "depd": "2.0.0",
1458
+ "inherits": "2.0.4",
1459
+ "setprototypeof": "1.2.0",
1460
+ "statuses": "2.0.1",
1461
+ "toidentifier": "1.0.1"
1462
+ },
1463
+ "engines": {
1464
+ "node": ">= 0.8"
1465
+ }
1466
+ },
1467
+ "node_modules/iconv-lite": {
1468
+ "version": "0.4.24",
1469
+ "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz",
1470
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
1471
+ "dependencies": {
1472
+ "safer-buffer": ">= 2.1.2 < 3"
1473
+ },
1474
+ "engines": {
1475
+ "node": ">=0.10.0"
1476
+ }
1477
+ },
1478
+ "node_modules/ieee754": {
1479
+ "version": "1.2.1",
1480
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
1481
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
1482
+ "funding": [
1483
+ {
1484
+ "type": "github",
1485
+ "url": "https://github.com/sponsors/feross"
1486
+ },
1487
+ {
1488
+ "type": "patreon",
1489
+ "url": "https://www.patreon.com/feross"
1490
+ },
1491
+ {
1492
+ "type": "consulting",
1493
+ "url": "https://feross.org/support"
1494
+ }
1495
+ ]
1496
+ },
1497
+ "node_modules/inherits": {
1498
+ "version": "2.0.4",
1499
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1500
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
1501
+ },
1502
+ "node_modules/ipaddr.js": {
1503
+ "version": "1.9.1",
1504
+ "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
1505
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
1506
+ "engines": {
1507
+ "node": ">= 0.10"
1508
+ }
1509
+ },
1510
+ "node_modules/is-arrayish": {
1511
+ "version": "0.3.2",
1512
+ "resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.3.2.tgz",
1513
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
1514
+ },
1515
+ "node_modules/is-fullwidth-code-point": {
1516
+ "version": "1.0.0",
1517
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
1518
+ "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==",
1519
+ "dependencies": {
1520
+ "number-is-nan": "^1.0.0"
1521
+ },
1522
+ "engines": {
1523
+ "node": ">=0.10.0"
1524
+ }
1525
+ },
1526
+ "node_modules/is-function": {
1527
+ "version": "1.0.2",
1528
+ "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz",
1529
+ "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ=="
1530
+ },
1531
+ "node_modules/isarray": {
1532
+ "version": "1.0.0",
1533
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1534
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
1535
+ },
1536
+ "node_modules/isexe": {
1537
+ "version": "2.0.0",
1538
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1539
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
1540
+ },
1541
+ "node_modules/jimp": {
1542
+ "version": "0.3.11",
1543
+ "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.3.11.tgz",
1544
+ "integrity": "sha512-M+MWaCg/sJmeXSP5TRzKHmJUU2LpBWKEdoxiqczhY4FdMqz2k3Db4pdQjkcYR5ihW9MvtrjqarPAF6iTMGT34g==",
1545
+ "dependencies": {
1546
+ "@babel/polyfill": "^7.0.0",
1547
+ "@jimp/custom": "^0.3.9",
1548
+ "@jimp/plugins": "^0.3.10",
1549
+ "@jimp/types": "^0.3.9",
1550
+ "core-js": "^2.5.7"
1551
+ }
1552
+ },
1553
+ "node_modules/jpeg-js": {
1554
+ "version": "0.3.7",
1555
+ "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.3.7.tgz",
1556
+ "integrity": "sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ=="
1557
+ },
1558
+ "node_modules/load-bmfont": {
1559
+ "version": "1.4.1",
1560
+ "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz",
1561
+ "integrity": "sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==",
1562
+ "dependencies": {
1563
+ "buffer-equal": "0.0.1",
1564
+ "mime": "^1.3.4",
1565
+ "parse-bmfont-ascii": "^1.0.3",
1566
+ "parse-bmfont-binary": "^1.0.5",
1567
+ "parse-bmfont-xml": "^1.1.4",
1568
+ "phin": "^2.9.1",
1569
+ "xhr": "^2.0.1",
1570
+ "xtend": "^4.0.0"
1571
+ }
1572
+ },
1573
+ "node_modules/media-typer": {
1574
+ "version": "0.3.0",
1575
+ "resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz",
1576
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
1577
+ "engines": {
1578
+ "node": ">= 0.6"
1579
+ }
1580
+ },
1581
+ "node_modules/merge-descriptors": {
1582
+ "version": "1.0.1",
1583
+ "resolved": "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
1584
+ "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
1585
+ },
1586
+ "node_modules/methods": {
1587
+ "version": "1.1.2",
1588
+ "resolved": "https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz",
1589
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
1590
+ "engines": {
1591
+ "node": ">= 0.6"
1592
+ }
1593
+ },
1594
+ "node_modules/mime": {
1595
+ "version": "1.6.0",
1596
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
1597
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
1598
+ "bin": {
1599
+ "mime": "cli.js"
1600
+ },
1601
+ "engines": {
1602
+ "node": ">=4"
1603
+ }
1604
+ },
1605
+ "node_modules/mime-db": {
1606
+ "version": "1.52.0",
1607
+ "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
1608
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
1609
+ "engines": {
1610
+ "node": ">= 0.6"
1611
+ }
1612
+ },
1613
+ "node_modules/mime-types": {
1614
+ "version": "2.1.35",
1615
+ "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
1616
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
1617
+ "dependencies": {
1618
+ "mime-db": "1.52.0"
1619
+ },
1620
+ "engines": {
1621
+ "node": ">= 0.6"
1622
+ }
1623
+ },
1624
+ "node_modules/min-document": {
1625
+ "version": "2.19.0",
1626
+ "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz",
1627
+ "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==",
1628
+ "dependencies": {
1629
+ "dom-walk": "^0.1.0"
1630
+ }
1631
+ },
1632
+ "node_modules/minimist": {
1633
+ "version": "0.0.8",
1634
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
1635
+ "integrity": "sha512-miQKw5Hv4NS1Psg2517mV4e4dYNaO3++hjAvLOAzKqZ61rH8NS1SK+vbfBWZ5PY/Me/bEWhUwqMghEW5Fb9T7Q=="
1636
+ },
1637
+ "node_modules/mkdirp": {
1638
+ "version": "0.5.1",
1639
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
1640
+ "integrity": "sha512-SknJC52obPfGQPnjIkXbmA6+5H15E+fR+E4iR2oQ3zzCLbd7/ONua69R/Gw7AgkTLsRG+r5fzksYwWe1AgTyWA==",
1641
+ "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)",
1642
+ "dependencies": {
1643
+ "minimist": "0.0.8"
1644
+ },
1645
+ "bin": {
1646
+ "mkdirp": "bin/cmd.js"
1647
+ }
1648
+ },
1649
+ "node_modules/ms": {
1650
+ "version": "2.0.0",
1651
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
1652
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
1653
+ },
1654
+ "node_modules/nan": {
1655
+ "version": "2.19.0",
1656
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.19.0.tgz",
1657
+ "integrity": "sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw=="
1658
+ },
1659
+ "node_modules/native-node-utils": {
1660
+ "version": "0.2.7",
1661
+ "resolved": "https://registry.npmjs.org/native-node-utils/-/native-node-utils-0.2.7.tgz",
1662
+ "integrity": "sha512-61v0G3uVxWlXHppSZGwZi+ZEIgGUKI8QvEkEJLb1GVePI7P8SBe+G747z+QMXSt4TxfgbVZP0DyobbRKYVIjdw==",
1663
+ "dependencies": {
1664
+ "nan": "^2.13.2"
1665
+ }
1666
+ },
1667
+ "node_modules/negotiator": {
1668
+ "version": "0.6.3",
1669
+ "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz",
1670
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
1671
+ "engines": {
1672
+ "node": ">= 0.6"
1673
+ }
1674
+ },
1675
+ "node_modules/npmlog": {
1676
+ "version": "4.1.2",
1677
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
1678
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
1679
+ "dependencies": {
1680
+ "are-we-there-yet": "~1.1.2",
1681
+ "console-control-strings": "~1.1.0",
1682
+ "gauge": "~2.7.3",
1683
+ "set-blocking": "~2.0.0"
1684
+ }
1685
+ },
1686
+ "node_modules/number-is-nan": {
1687
+ "version": "1.0.1",
1688
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
1689
+ "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==",
1690
+ "engines": {
1691
+ "node": ">=0.10.0"
1692
+ }
1693
+ },
1694
+ "node_modules/object-assign": {
1695
+ "version": "4.1.1",
1696
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1697
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
1698
+ "engines": {
1699
+ "node": ">=0.10.0"
1700
+ }
1701
+ },
1702
+ "node_modules/object-inspect": {
1703
+ "version": "1.13.1",
1704
+ "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.1.tgz",
1705
+ "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
1706
+ "funding": {
1707
+ "url": "https://github.com/sponsors/ljharb"
1708
+ }
1709
+ },
1710
+ "node_modules/omggif": {
1711
+ "version": "1.0.10",
1712
+ "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz",
1713
+ "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw=="
1714
+ },
1715
+ "node_modules/on-finished": {
1716
+ "version": "2.4.1",
1717
+ "resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz",
1718
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
1719
+ "dependencies": {
1720
+ "ee-first": "1.1.1"
1721
+ },
1722
+ "engines": {
1723
+ "node": ">= 0.8"
1724
+ }
1725
+ },
1726
+ "node_modules/opencv-build": {
1727
+ "version": "0.1.9",
1728
+ "resolved": "https://registry.npmjs.org/opencv-build/-/opencv-build-0.1.9.tgz",
1729
+ "integrity": "sha512-tgT/bnJAcYROen9yaPynfK98IMl62mPSgMLmTx41911m5bczlq21xtE5r+UWLB/xEo/0hKk6tl5zHyxV/JS5Rg==",
1730
+ "hasInstallScript": true,
1731
+ "dependencies": {
1732
+ "npmlog": "^4.1.2"
1733
+ }
1734
+ },
1735
+ "node_modules/opencv4nodejs": {
1736
+ "version": "5.6.0",
1737
+ "resolved": "https://registry.npmjs.org/opencv4nodejs/-/opencv4nodejs-5.6.0.tgz",
1738
+ "integrity": "sha512-JvcT1hb2JUCdntcVABgD9Gprr+gkXBe+jhHKvrr0Ug51y087K4ybm0vHBQVzI2ei1aJxEc9tNknPL9rpyx5Xuw==",
1739
+ "hasInstallScript": true,
1740
+ "dependencies": {
1741
+ "nan": "^2.14.0",
1742
+ "native-node-utils": "^0.2.7",
1743
+ "npmlog": "^4.1.2",
1744
+ "opencv-build": "^0.1.9"
1745
+ },
1746
+ "optionalDependencies": {
1747
+ "@types/node": ">6"
1748
+ }
1749
+ },
1750
+ "node_modules/pako": {
1751
+ "version": "1.0.11",
1752
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
1753
+ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
1754
+ },
1755
+ "node_modules/parse-bmfont-ascii": {
1756
+ "version": "1.0.6",
1757
+ "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz",
1758
+ "integrity": "sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA=="
1759
+ },
1760
+ "node_modules/parse-bmfont-binary": {
1761
+ "version": "1.0.6",
1762
+ "resolved": "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz",
1763
+ "integrity": "sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA=="
1764
+ },
1765
+ "node_modules/parse-bmfont-xml": {
1766
+ "version": "1.1.6",
1767
+ "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.6.tgz",
1768
+ "integrity": "sha512-0cEliVMZEhrFDwMh4SxIyVJpqYoOWDJ9P895tFuS+XuNzI5UBmBk5U5O4KuJdTnZpSBI4LFA2+ZiJaiwfSwlMA==",
1769
+ "dependencies": {
1770
+ "xml-parse-from-string": "^1.0.0",
1771
+ "xml2js": "^0.5.0"
1772
+ }
1773
+ },
1774
+ "node_modules/parse-headers": {
1775
+ "version": "2.0.5",
1776
+ "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz",
1777
+ "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA=="
1778
+ },
1779
+ "node_modules/parseurl": {
1780
+ "version": "1.3.3",
1781
+ "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz",
1782
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
1783
+ "engines": {
1784
+ "node": ">= 0.8"
1785
+ }
1786
+ },
1787
+ "node_modules/path-to-regexp": {
1788
+ "version": "0.1.7",
1789
+ "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
1790
+ "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
1791
+ },
1792
+ "node_modules/phin": {
1793
+ "version": "2.9.3",
1794
+ "resolved": "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz",
1795
+ "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==",
1796
+ "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."
1797
+ },
1798
+ "node_modules/pixelmatch": {
1799
+ "version": "4.0.2",
1800
+ "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz",
1801
+ "integrity": "sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==",
1802
+ "dependencies": {
1803
+ "pngjs": "^3.0.0"
1804
+ },
1805
+ "bin": {
1806
+ "pixelmatch": "bin/pixelmatch"
1807
+ }
1808
+ },
1809
+ "node_modules/pngjs": {
1810
+ "version": "3.4.0",
1811
+ "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz",
1812
+ "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==",
1813
+ "engines": {
1814
+ "node": ">=4.0.0"
1815
+ }
1816
+ },
1817
+ "node_modules/process": {
1818
+ "version": "0.11.10",
1819
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
1820
+ "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
1821
+ "engines": {
1822
+ "node": ">= 0.6.0"
1823
+ }
1824
+ },
1825
+ "node_modules/process-nextick-args": {
1826
+ "version": "2.0.1",
1827
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
1828
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
1829
+ },
1830
+ "node_modules/proxy-addr": {
1831
+ "version": "2.0.7",
1832
+ "resolved": "https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz",
1833
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
1834
+ "dependencies": {
1835
+ "forwarded": "0.2.0",
1836
+ "ipaddr.js": "1.9.1"
1837
+ },
1838
+ "engines": {
1839
+ "node": ">= 0.10"
1840
+ }
1841
+ },
1842
+ "node_modules/proxy-from-env": {
1843
+ "version": "1.1.0",
1844
+ "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
1845
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
1846
+ },
1847
+ "node_modules/qs": {
1848
+ "version": "6.11.0",
1849
+ "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz",
1850
+ "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
1851
+ "dependencies": {
1852
+ "side-channel": "^1.0.4"
1853
+ },
1854
+ "engines": {
1855
+ "node": ">=0.6"
1856
+ },
1857
+ "funding": {
1858
+ "url": "https://github.com/sponsors/ljharb"
1859
+ }
1860
+ },
1861
+ "node_modules/range-parser": {
1862
+ "version": "1.2.1",
1863
+ "resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz",
1864
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
1865
+ "engines": {
1866
+ "node": ">= 0.6"
1867
+ }
1868
+ },
1869
+ "node_modules/raw-body": {
1870
+ "version": "2.5.2",
1871
+ "resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-2.5.2.tgz",
1872
+ "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
1873
+ "dependencies": {
1874
+ "bytes": "3.1.2",
1875
+ "http-errors": "2.0.0",
1876
+ "iconv-lite": "0.4.24",
1877
+ "unpipe": "1.0.0"
1878
+ },
1879
+ "engines": {
1880
+ "node": ">= 0.8"
1881
+ }
1882
+ },
1883
+ "node_modules/readable-stream": {
1884
+ "version": "2.3.8",
1885
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
1886
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
1887
+ "dependencies": {
1888
+ "core-util-is": "~1.0.0",
1889
+ "inherits": "~2.0.3",
1890
+ "isarray": "~1.0.0",
1891
+ "process-nextick-args": "~2.0.0",
1892
+ "safe-buffer": "~5.1.1",
1893
+ "string_decoder": "~1.1.1",
1894
+ "util-deprecate": "~1.0.1"
1895
+ }
1896
+ },
1897
+ "node_modules/regenerator-runtime": {
1898
+ "version": "0.13.11",
1899
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
1900
+ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
1901
+ },
1902
+ "node_modules/safe-buffer": {
1903
+ "version": "5.1.2",
1904
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
1905
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
1906
+ },
1907
+ "node_modules/safer-buffer": {
1908
+ "version": "2.1.2",
1909
+ "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz",
1910
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
1911
+ },
1912
+ "node_modules/sax": {
1913
+ "version": "1.3.0",
1914
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz",
1915
+ "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA=="
1916
+ },
1917
+ "node_modules/semver": {
1918
+ "version": "7.6.2",
1919
+ "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.2.tgz",
1920
+ "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
1921
+ "bin": {
1922
+ "semver": "bin/semver.js"
1923
+ },
1924
+ "engines": {
1925
+ "node": ">=10"
1926
+ }
1927
+ },
1928
+ "node_modules/send": {
1929
+ "version": "0.18.0",
1930
+ "resolved": "https://registry.npmmirror.com/send/-/send-0.18.0.tgz",
1931
+ "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
1932
+ "dependencies": {
1933
+ "debug": "2.6.9",
1934
+ "depd": "2.0.0",
1935
+ "destroy": "1.2.0",
1936
+ "encodeurl": "~1.0.2",
1937
+ "escape-html": "~1.0.3",
1938
+ "etag": "~1.8.1",
1939
+ "fresh": "0.5.2",
1940
+ "http-errors": "2.0.0",
1941
+ "mime": "1.6.0",
1942
+ "ms": "2.1.3",
1943
+ "on-finished": "2.4.1",
1944
+ "range-parser": "~1.2.1",
1945
+ "statuses": "2.0.1"
1946
+ },
1947
+ "engines": {
1948
+ "node": ">= 0.8.0"
1949
+ }
1950
+ },
1951
+ "node_modules/send/node_modules/ms": {
1952
+ "version": "2.1.3",
1953
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz",
1954
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
1955
+ },
1956
+ "node_modules/serve-static": {
1957
+ "version": "1.15.0",
1958
+ "resolved": "https://registry.npmmirror.com/serve-static/-/serve-static-1.15.0.tgz",
1959
+ "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
1960
+ "dependencies": {
1961
+ "encodeurl": "~1.0.2",
1962
+ "escape-html": "~1.0.3",
1963
+ "parseurl": "~1.3.3",
1964
+ "send": "0.18.0"
1965
+ },
1966
+ "engines": {
1967
+ "node": ">= 0.8.0"
1968
+ }
1969
+ },
1970
+ "node_modules/set-blocking": {
1971
+ "version": "2.0.0",
1972
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
1973
+ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
1974
+ },
1975
+ "node_modules/set-function-length": {
1976
+ "version": "1.2.2",
1977
+ "resolved": "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.2.tgz",
1978
+ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
1979
+ "dependencies": {
1980
+ "define-data-property": "^1.1.4",
1981
+ "es-errors": "^1.3.0",
1982
+ "function-bind": "^1.1.2",
1983
+ "get-intrinsic": "^1.2.4",
1984
+ "gopd": "^1.0.1",
1985
+ "has-property-descriptors": "^1.0.2"
1986
+ },
1987
+ "engines": {
1988
+ "node": ">= 0.4"
1989
+ }
1990
+ },
1991
+ "node_modules/setprototypeof": {
1992
+ "version": "1.2.0",
1993
+ "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz",
1994
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
1995
+ },
1996
+ "node_modules/sharp": {
1997
+ "version": "0.33.4",
1998
+ "resolved": "https://registry.npmmirror.com/sharp/-/sharp-0.33.4.tgz",
1999
+ "integrity": "sha512-7i/dt5kGl7qR4gwPRD2biwD2/SvBn3O04J77XKFgL2OnZtQw+AG9wnuS/csmu80nPRHLYE9E41fyEiG8nhH6/Q==",
2000
+ "hasInstallScript": true,
2001
+ "dependencies": {
2002
+ "color": "^4.2.3",
2003
+ "detect-libc": "^2.0.3",
2004
+ "semver": "^7.6.0"
2005
+ },
2006
+ "engines": {
2007
+ "libvips": ">=8.15.2",
2008
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
2009
+ },
2010
+ "funding": {
2011
+ "url": "https://opencollective.com/libvips"
2012
+ },
2013
+ "optionalDependencies": {
2014
+ "@img/sharp-darwin-arm64": "0.33.4",
2015
+ "@img/sharp-darwin-x64": "0.33.4",
2016
+ "@img/sharp-libvips-darwin-arm64": "1.0.2",
2017
+ "@img/sharp-libvips-darwin-x64": "1.0.2",
2018
+ "@img/sharp-libvips-linux-arm": "1.0.2",
2019
+ "@img/sharp-libvips-linux-arm64": "1.0.2",
2020
+ "@img/sharp-libvips-linux-s390x": "1.0.2",
2021
+ "@img/sharp-libvips-linux-x64": "1.0.2",
2022
+ "@img/sharp-libvips-linuxmusl-arm64": "1.0.2",
2023
+ "@img/sharp-libvips-linuxmusl-x64": "1.0.2",
2024
+ "@img/sharp-linux-arm": "0.33.4",
2025
+ "@img/sharp-linux-arm64": "0.33.4",
2026
+ "@img/sharp-linux-s390x": "0.33.4",
2027
+ "@img/sharp-linux-x64": "0.33.4",
2028
+ "@img/sharp-linuxmusl-arm64": "0.33.4",
2029
+ "@img/sharp-linuxmusl-x64": "0.33.4",
2030
+ "@img/sharp-wasm32": "0.33.4",
2031
+ "@img/sharp-win32-ia32": "0.33.4",
2032
+ "@img/sharp-win32-x64": "0.33.4"
2033
+ }
2034
+ },
2035
+ "node_modules/side-channel": {
2036
+ "version": "1.0.6",
2037
+ "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.6.tgz",
2038
+ "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
2039
+ "dependencies": {
2040
+ "call-bind": "^1.0.7",
2041
+ "es-errors": "^1.3.0",
2042
+ "get-intrinsic": "^1.2.4",
2043
+ "object-inspect": "^1.13.1"
2044
+ },
2045
+ "engines": {
2046
+ "node": ">= 0.4"
2047
+ },
2048
+ "funding": {
2049
+ "url": "https://github.com/sponsors/ljharb"
2050
+ }
2051
+ },
2052
+ "node_modules/signal-exit": {
2053
+ "version": "3.0.7",
2054
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
2055
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
2056
+ },
2057
+ "node_modules/simple-swizzle": {
2058
+ "version": "0.2.2",
2059
+ "resolved": "https://registry.npmmirror.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
2060
+ "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
2061
+ "dependencies": {
2062
+ "is-arrayish": "^0.3.1"
2063
+ }
2064
+ },
2065
+ "node_modules/statuses": {
2066
+ "version": "2.0.1",
2067
+ "resolved": "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz",
2068
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
2069
+ "engines": {
2070
+ "node": ">= 0.8"
2071
+ }
2072
+ },
2073
+ "node_modules/string_decoder": {
2074
+ "version": "1.1.1",
2075
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
2076
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
2077
+ "dependencies": {
2078
+ "safe-buffer": "~5.1.0"
2079
+ }
2080
+ },
2081
+ "node_modules/string-width": {
2082
+ "version": "1.0.2",
2083
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
2084
+ "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==",
2085
+ "dependencies": {
2086
+ "code-point-at": "^1.0.0",
2087
+ "is-fullwidth-code-point": "^1.0.0",
2088
+ "strip-ansi": "^3.0.0"
2089
+ },
2090
+ "engines": {
2091
+ "node": ">=0.10.0"
2092
+ }
2093
+ },
2094
+ "node_modules/strip-ansi": {
2095
+ "version": "3.0.1",
2096
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
2097
+ "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
2098
+ "dependencies": {
2099
+ "ansi-regex": "^2.0.0"
2100
+ },
2101
+ "engines": {
2102
+ "node": ">=0.10.0"
2103
+ }
2104
+ },
2105
+ "node_modules/timm": {
2106
+ "version": "1.7.1",
2107
+ "resolved": "https://registry.npmjs.org/timm/-/timm-1.7.1.tgz",
2108
+ "integrity": "sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw=="
2109
+ },
2110
+ "node_modules/tinycolor2": {
2111
+ "version": "1.6.0",
2112
+ "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz",
2113
+ "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw=="
2114
+ },
2115
+ "node_modules/toidentifier": {
2116
+ "version": "1.0.1",
2117
+ "resolved": "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz",
2118
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
2119
+ "engines": {
2120
+ "node": ">=0.6"
2121
+ }
2122
+ },
2123
+ "node_modules/tslib": {
2124
+ "version": "2.6.3",
2125
+ "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.3.tgz",
2126
+ "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==",
2127
+ "optional": true
2128
+ },
2129
+ "node_modules/type-is": {
2130
+ "version": "1.6.18",
2131
+ "resolved": "https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz",
2132
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
2133
+ "dependencies": {
2134
+ "media-typer": "0.3.0",
2135
+ "mime-types": "~2.1.24"
2136
+ },
2137
+ "engines": {
2138
+ "node": ">= 0.6"
2139
+ }
2140
+ },
2141
+ "node_modules/undici-types": {
2142
+ "version": "5.26.5",
2143
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
2144
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
2145
+ "optional": true
2146
+ },
2147
+ "node_modules/unpipe": {
2148
+ "version": "1.0.0",
2149
+ "resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz",
2150
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
2151
+ "engines": {
2152
+ "node": ">= 0.8"
2153
+ }
2154
+ },
2155
+ "node_modules/utif": {
2156
+ "version": "2.0.1",
2157
+ "resolved": "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz",
2158
+ "integrity": "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==",
2159
+ "dependencies": {
2160
+ "pako": "^1.0.5"
2161
+ }
2162
+ },
2163
+ "node_modules/util-deprecate": {
2164
+ "version": "1.0.2",
2165
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
2166
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
2167
+ },
2168
+ "node_modules/utils-merge": {
2169
+ "version": "1.0.1",
2170
+ "resolved": "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz",
2171
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
2172
+ "engines": {
2173
+ "node": ">= 0.4.0"
2174
+ }
2175
+ },
2176
+ "node_modules/vary": {
2177
+ "version": "1.1.2",
2178
+ "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz",
2179
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
2180
+ "engines": {
2181
+ "node": ">= 0.8"
2182
+ }
2183
+ },
2184
+ "node_modules/which": {
2185
+ "version": "1.3.1",
2186
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
2187
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
2188
+ "dependencies": {
2189
+ "isexe": "^2.0.0"
2190
+ },
2191
+ "bin": {
2192
+ "which": "bin/which"
2193
+ }
2194
+ },
2195
+ "node_modules/wide-align": {
2196
+ "version": "1.1.5",
2197
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
2198
+ "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
2199
+ "dependencies": {
2200
+ "string-width": "^1.0.2 || 2 || 3 || 4"
2201
+ }
2202
+ },
2203
+ "node_modules/xhr": {
2204
+ "version": "2.6.0",
2205
+ "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz",
2206
+ "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==",
2207
+ "dependencies": {
2208
+ "global": "~4.4.0",
2209
+ "is-function": "^1.0.1",
2210
+ "parse-headers": "^2.0.0",
2211
+ "xtend": "^4.0.0"
2212
+ }
2213
+ },
2214
+ "node_modules/xml-parse-from-string": {
2215
+ "version": "1.0.1",
2216
+ "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz",
2217
+ "integrity": "sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g=="
2218
+ },
2219
+ "node_modules/xml2js": {
2220
+ "version": "0.5.0",
2221
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz",
2222
+ "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==",
2223
+ "dependencies": {
2224
+ "sax": ">=0.6.0",
2225
+ "xmlbuilder": "~11.0.0"
2226
+ },
2227
+ "engines": {
2228
+ "node": ">=4.0.0"
2229
+ }
2230
+ },
2231
+ "node_modules/xmlbuilder": {
2232
+ "version": "11.0.1",
2233
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
2234
+ "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
2235
+ "engines": {
2236
+ "node": ">=4.0"
2237
+ }
2238
+ },
2239
+ "node_modules/xtend": {
2240
+ "version": "4.0.2",
2241
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
2242
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
2243
+ "engines": {
2244
+ "node": ">=0.4"
2245
+ }
2246
+ }
2247
+ }
2248
+ }
package.json ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "my-project",
3
+ "version": "0.0.0",
4
+ "type": "module",
5
+ "dependencies": {
6
+ "axios": "^1.7.2",
7
+ "express": "^4.19.2",
8
+ "fluent-ffmpeg": "^2.1.2",
9
+ "fs": "^0.0.1-security",
10
+ "jimp": "^0.3.11",
11
+ "opencv4nodejs": "^5.6.0",
12
+ "sharp": "^0.33.4"
13
+ },
14
+ "opencv4nodejs": {
15
+ "disableAutoBuild": 1,
16
+ "opencvIncludeDir": "C:\\tools\\opencv\\build\\include",
17
+ "opencvLibDir": "C:\\tools\\opencv\\build\\x64\\vc15\\lib",
18
+ "opencvBinDir": "C:\\tools\\opencv\\build\\x64\\vc15\\bin"
19
+ }
20
+ }
replacement_face.png ADDED