Alp İpekçiler commited on
Commit
9e3caf3
·
1 Parent(s): 61f2517

Add Face Analysis backend (without models)

Browse files
Files changed (5) hide show
  1. Dockerfile +34 -0
  2. README.md +79 -5
  3. index.js +103 -0
  4. package-lock.json +2456 -0
  5. package.json +20 -0
Dockerfile ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM node:18-slim
2
+
3
+ # Install canvas dependencies
4
+ RUN apt-get update && apt-get install -y \
5
+ build-essential \
6
+ libcairo2-dev \
7
+ libpango1.0-dev \
8
+ libjpeg-dev \
9
+ libgif-dev \
10
+ librsvg2-dev \
11
+ && rm -rf /var/lib/apt/lists/*
12
+
13
+ # Set working directory
14
+ WORKDIR /app
15
+
16
+ # Copy package files
17
+ COPY package*.json ./
18
+
19
+ # Install dependencies
20
+ RUN npm install --production
21
+
22
+ # Copy application files
23
+ COPY index.js ./
24
+ COPY models ./models
25
+
26
+ # Expose port 7860 (Hugging Face Spaces default)
27
+ EXPOSE 7860
28
+
29
+ # Set environment variable for port
30
+ ENV PORT=7860
31
+
32
+ # Run the application
33
+ CMD ["node", "index.js"]
34
+
README.md CHANGED
@@ -1,11 +1,85 @@
1
  ---
2
- title: Facebackend
3
- emoji: 🐨
4
- colorFrom: red
5
- colorTo: yellow
6
  sdk: docker
7
  pinned: false
8
  license: mit
9
  ---
10
 
11
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
+ title: Face Analysis API
3
+ emoji: 👤
4
+ colorFrom: purple
5
+ colorTo: pink
6
  sdk: docker
7
  pinned: false
8
  license: mit
9
  ---
10
 
11
+ # Face Analysis API
12
+
13
+ This is a Node.js/Express API for face analysis using face-api.js with TensorFlow.js.
14
+
15
+ ## Features
16
+
17
+ - 👤 Face detection using SSD MobileNet V1
18
+ - 😊 Facial expression recognition
19
+ - 🎂 Age estimation
20
+ - ⚧️ Gender prediction
21
+ - 📍 68-point facial landmarks
22
+ - 🌐 CORS enabled for web applications
23
+
24
+ ## API Endpoints
25
+
26
+ ### POST /predict_face
27
+ Upload an image to get face analysis.
28
+
29
+ **Request:**
30
+ - Method: POST
31
+ - Content-Type: multipart/form-data
32
+ - Body: `image` file
33
+
34
+ **Response:**
35
+ ```json
36
+ {
37
+ "age": 25,
38
+ "gender": "male",
39
+ "genderProbability": 0.95,
40
+ "expressions": {
41
+ "neutral": 0.7,
42
+ "happy": 0.2,
43
+ "sad": 0.05,
44
+ "angry": 0.02,
45
+ "fearful": 0.01,
46
+ "disgusted": 0.01,
47
+ "surprised": 0.01
48
+ },
49
+ "detection": {
50
+ "box": {
51
+ "x": 100,
52
+ "y": 50,
53
+ "width": 200,
54
+ "height": 250
55
+ }
56
+ },
57
+ "landmarks": [
58
+ {"x": 120, "y": 100},
59
+ ...
60
+ ],
61
+ "imageDimensions": {
62
+ "width": 640,
63
+ "height": 480
64
+ }
65
+ }
66
+ ```
67
+
68
+ ## Models
69
+
70
+ Uses pre-trained face-api.js models:
71
+ - SSD MobileNet V1 for face detection
72
+ - Face Landmark 68 Net
73
+ - Face Recognition Net
74
+ - Face Expression Net
75
+ - Age Gender Net
76
+
77
+ ## Usage
78
+
79
+ ```bash
80
+ curl -X POST -F "image=@face.jpg" https://alpingo23-facebackend.hf.space/predict_face
81
+ ```
82
+
83
+ ## License
84
+
85
+ MIT
index.js ADDED
@@ -0,0 +1,103 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const express = require('express');
2
+ const faceapi = require('face-api.js');
3
+ const canvas = require('canvas');
4
+ const { Canvas, Image, ImageData } = canvas;
5
+ const fileUpload = require('express-fileupload');
6
+ const path = require('path');
7
+
8
+ const app = express();
9
+ app.use(fileUpload());
10
+
11
+ faceapi.env.monkeyPatch({ Canvas, Image, ImageData });
12
+
13
+ // Model dosyalarının yolu
14
+ const MODEL_PATH = path.join(__dirname, 'models');
15
+
16
+ // Modelleri yükleme
17
+ async function loadModels() {
18
+ try {
19
+ await Promise.all([
20
+ faceapi.nets.ssdMobilenetv1.loadFromDisk(MODEL_PATH),
21
+ faceapi.nets.faceLandmark68Net.loadFromDisk(MODEL_PATH),
22
+ faceapi.nets.faceRecognitionNet.loadFromDisk(MODEL_PATH),
23
+ faceapi.nets.faceExpressionNet.loadFromDisk(MODEL_PATH),
24
+ faceapi.nets.ageGenderNet.loadFromDisk(MODEL_PATH),
25
+ ]);
26
+ console.log('Face-api.js models loaded.');
27
+ } catch (err) {
28
+ console.error('Error loading models:', err);
29
+ throw err;
30
+ }
31
+ }
32
+
33
+ // Sunucuyu başlatmadan önce modelleri yükle
34
+ loadModels().then(() => {
35
+ const PORT = process.env.PORT || 5001;
36
+ app.listen(PORT, () => {
37
+ console.log(`Face analysis server running on port ${PORT}`);
38
+ });
39
+ }).catch(err => {
40
+ console.error('Failed to start server due to model loading error:', err);
41
+ });
42
+ app.post('/predict_face', async (req, res) => {
43
+ if (!req.files || !req.files.image) {
44
+ return res.status(400).json({ error: 'No image provided' });
45
+ }
46
+
47
+ const file = req.files.image;
48
+
49
+ try {
50
+ // Görüntüyü canvas'a yükle
51
+ const img = await canvas.loadImage(file.data);
52
+ const origWidth = img.width;
53
+ const origHeight = img.height;
54
+
55
+ // Görüntüyü analiz et (orijinal boyutlarda)
56
+ const detections = await faceapi
57
+ .detectAllFaces(img)
58
+ .withFaceLandmarks()
59
+ .withFaceExpressions()
60
+ .withAgeAndGender();
61
+
62
+ if (detections.length === 0) {
63
+ return res.status(400).json({ error: 'No face detected' });
64
+ }
65
+
66
+ // Sonuç objesini oluştur
67
+ const result = detections.map(d => {
68
+ // Koordinatları orijinal boyutlara göre döndür (face-api.js zaten orijinal boyutları kullanır)
69
+ const box = {
70
+ x: d.detection.box.x,
71
+ y: d.detection.box.y,
72
+ width: d.detection.box.width,
73
+ height: d.detection.box.height,
74
+ };
75
+ const landmarks = d.landmarks.positions.map(position => ({
76
+ x: position.x,
77
+ y: position.y,
78
+ }));
79
+
80
+ return {
81
+ age: Math.round(d.age),
82
+ gender: d.gender,
83
+ genderProbability: d.genderProbability,
84
+ expressions: d.expressions,
85
+ detection: { box },
86
+ landmarks,
87
+ imageDimensions: { width: origWidth, height: origHeight }, // Orijinal boyutları ekle
88
+ };
89
+ });
90
+
91
+ // Loglama: Backend'den gönderilen boyutları ve koordinatları kontrol et
92
+ console.log('Backend Image Dimensions:', result[0].imageDimensions);
93
+ console.log('Backend Detection Box:', result[0].detection.box);
94
+ console.log('Backend Landmarks Sample:', result[0].landmarks.slice(0, 5)); // İlk 5 landmark
95
+
96
+ res.json(result[0]); // İlk yüzü döndür
97
+ } catch (err) {
98
+ console.error('Face analysis error:', err);
99
+ res.status(500).json({ error: 'Face analysis failed', details: err.message });
100
+ }
101
+ });
102
+
103
+ module.exports = app;
package-lock.json ADDED
@@ -0,0 +1,2456 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "face-analysis-backend",
3
+ "version": "1.0.0",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "face-analysis-backend",
9
+ "version": "1.0.0",
10
+ "license": "ISC",
11
+ "dependencies": {
12
+ "@tensorflow/tfjs-node": "^4.22.0",
13
+ "canvas": "^3.1.0",
14
+ "express": "^4.21.2",
15
+ "express-fileupload": "^1.5.1",
16
+ "face-api.js": "^0.22.2"
17
+ }
18
+ },
19
+ "node_modules/@mapbox/node-pre-gyp": {
20
+ "version": "1.0.9",
21
+ "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.9.tgz",
22
+ "integrity": "sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw==",
23
+ "license": "BSD-3-Clause",
24
+ "dependencies": {
25
+ "detect-libc": "^2.0.0",
26
+ "https-proxy-agent": "^5.0.0",
27
+ "make-dir": "^3.1.0",
28
+ "node-fetch": "^2.6.7",
29
+ "nopt": "^5.0.0",
30
+ "npmlog": "^5.0.1",
31
+ "rimraf": "^3.0.2",
32
+ "semver": "^7.3.5",
33
+ "tar": "^6.1.11"
34
+ },
35
+ "bin": {
36
+ "node-pre-gyp": "bin/node-pre-gyp"
37
+ }
38
+ },
39
+ "node_modules/@mapbox/node-pre-gyp/node_modules/agent-base": {
40
+ "version": "6.0.2",
41
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
42
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
43
+ "license": "MIT",
44
+ "dependencies": {
45
+ "debug": "4"
46
+ },
47
+ "engines": {
48
+ "node": ">= 6.0.0"
49
+ }
50
+ },
51
+ "node_modules/@mapbox/node-pre-gyp/node_modules/debug": {
52
+ "version": "4.4.0",
53
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
54
+ "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
55
+ "license": "MIT",
56
+ "dependencies": {
57
+ "ms": "^2.1.3"
58
+ },
59
+ "engines": {
60
+ "node": ">=6.0"
61
+ },
62
+ "peerDependenciesMeta": {
63
+ "supports-color": {
64
+ "optional": true
65
+ }
66
+ }
67
+ },
68
+ "node_modules/@mapbox/node-pre-gyp/node_modules/https-proxy-agent": {
69
+ "version": "5.0.1",
70
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
71
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
72
+ "license": "MIT",
73
+ "dependencies": {
74
+ "agent-base": "6",
75
+ "debug": "4"
76
+ },
77
+ "engines": {
78
+ "node": ">= 6"
79
+ }
80
+ },
81
+ "node_modules/@mapbox/node-pre-gyp/node_modules/ms": {
82
+ "version": "2.1.3",
83
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
84
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
85
+ "license": "MIT"
86
+ },
87
+ "node_modules/@mapbox/node-pre-gyp/node_modules/rimraf": {
88
+ "version": "3.0.2",
89
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
90
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
91
+ "deprecated": "Rimraf versions prior to v4 are no longer supported",
92
+ "license": "ISC",
93
+ "dependencies": {
94
+ "glob": "^7.1.3"
95
+ },
96
+ "bin": {
97
+ "rimraf": "bin.js"
98
+ },
99
+ "funding": {
100
+ "url": "https://github.com/sponsors/isaacs"
101
+ }
102
+ },
103
+ "node_modules/@tensorflow/tfjs": {
104
+ "version": "4.22.0",
105
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs/-/tfjs-4.22.0.tgz",
106
+ "integrity": "sha512-0TrIrXs6/b7FLhLVNmfh8Sah6JgjBPH4mZ8JGb7NU6WW+cx00qK5BcAZxw7NCzxj6N8MRAIfHq+oNbPUNG5VAg==",
107
+ "license": "Apache-2.0",
108
+ "dependencies": {
109
+ "@tensorflow/tfjs-backend-cpu": "4.22.0",
110
+ "@tensorflow/tfjs-backend-webgl": "4.22.0",
111
+ "@tensorflow/tfjs-converter": "4.22.0",
112
+ "@tensorflow/tfjs-core": "4.22.0",
113
+ "@tensorflow/tfjs-data": "4.22.0",
114
+ "@tensorflow/tfjs-layers": "4.22.0",
115
+ "argparse": "^1.0.10",
116
+ "chalk": "^4.1.0",
117
+ "core-js": "3.29.1",
118
+ "regenerator-runtime": "^0.13.5",
119
+ "yargs": "^16.0.3"
120
+ },
121
+ "bin": {
122
+ "tfjs-custom-module": "dist/tools/custom_module/cli.js"
123
+ }
124
+ },
125
+ "node_modules/@tensorflow/tfjs-backend-cpu": {
126
+ "version": "4.22.0",
127
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-4.22.0.tgz",
128
+ "integrity": "sha512-1u0FmuLGuRAi8D2c3cocHTASGXOmHc/4OvoVDENJayjYkS119fcTcQf4iHrtLthWyDIPy3JiPhRrZQC9EwnhLw==",
129
+ "license": "Apache-2.0",
130
+ "dependencies": {
131
+ "@types/seedrandom": "^2.4.28",
132
+ "seedrandom": "^3.0.5"
133
+ },
134
+ "engines": {
135
+ "yarn": ">= 1.3.2"
136
+ },
137
+ "peerDependencies": {
138
+ "@tensorflow/tfjs-core": "4.22.0"
139
+ }
140
+ },
141
+ "node_modules/@tensorflow/tfjs-backend-webgl": {
142
+ "version": "4.22.0",
143
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-4.22.0.tgz",
144
+ "integrity": "sha512-H535XtZWnWgNwSzv538czjVlbJebDl5QTMOth4RXr2p/kJ1qSIXE0vZvEtO+5EC9b00SvhplECny2yDewQb/Yg==",
145
+ "license": "Apache-2.0",
146
+ "dependencies": {
147
+ "@tensorflow/tfjs-backend-cpu": "4.22.0",
148
+ "@types/offscreencanvas": "~2019.3.0",
149
+ "@types/seedrandom": "^2.4.28",
150
+ "seedrandom": "^3.0.5"
151
+ },
152
+ "engines": {
153
+ "yarn": ">= 1.3.2"
154
+ },
155
+ "peerDependencies": {
156
+ "@tensorflow/tfjs-core": "4.22.0"
157
+ }
158
+ },
159
+ "node_modules/@tensorflow/tfjs-converter": {
160
+ "version": "4.22.0",
161
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-converter/-/tfjs-converter-4.22.0.tgz",
162
+ "integrity": "sha512-PT43MGlnzIo+YfbsjM79Lxk9lOq6uUwZuCc8rrp0hfpLjF6Jv8jS84u2jFb+WpUeuF4K33ZDNx8CjiYrGQ2trQ==",
163
+ "license": "Apache-2.0",
164
+ "peerDependencies": {
165
+ "@tensorflow/tfjs-core": "4.22.0"
166
+ }
167
+ },
168
+ "node_modules/@tensorflow/tfjs-core": {
169
+ "version": "4.22.0",
170
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-core/-/tfjs-core-4.22.0.tgz",
171
+ "integrity": "sha512-LEkOyzbknKFoWUwfkr59vSB68DMJ4cjwwHgicXN0DUi3a0Vh1Er3JQqCI1Hl86GGZQvY8ezVrtDIvqR1ZFW55A==",
172
+ "license": "Apache-2.0",
173
+ "dependencies": {
174
+ "@types/long": "^4.0.1",
175
+ "@types/offscreencanvas": "~2019.7.0",
176
+ "@types/seedrandom": "^2.4.28",
177
+ "@webgpu/types": "0.1.38",
178
+ "long": "4.0.0",
179
+ "node-fetch": "~2.6.1",
180
+ "seedrandom": "^3.0.5"
181
+ },
182
+ "engines": {
183
+ "yarn": ">= 1.3.2"
184
+ }
185
+ },
186
+ "node_modules/@tensorflow/tfjs-core/node_modules/@types/offscreencanvas": {
187
+ "version": "2019.7.3",
188
+ "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.7.3.tgz",
189
+ "integrity": "sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A==",
190
+ "license": "MIT"
191
+ },
192
+ "node_modules/@tensorflow/tfjs-core/node_modules/node-fetch": {
193
+ "version": "2.6.13",
194
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.13.tgz",
195
+ "integrity": "sha512-StxNAxh15zr77QvvkmveSQ8uCQ4+v5FkvNTj0OESmiHu+VRi/gXArXtkWMElOsOUNLtUEvI4yS+rdtOHZTwlQA==",
196
+ "license": "MIT",
197
+ "dependencies": {
198
+ "whatwg-url": "^5.0.0"
199
+ },
200
+ "engines": {
201
+ "node": "4.x || >=6.0.0"
202
+ },
203
+ "peerDependencies": {
204
+ "encoding": "^0.1.0"
205
+ },
206
+ "peerDependenciesMeta": {
207
+ "encoding": {
208
+ "optional": true
209
+ }
210
+ }
211
+ },
212
+ "node_modules/@tensorflow/tfjs-data": {
213
+ "version": "4.22.0",
214
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-data/-/tfjs-data-4.22.0.tgz",
215
+ "integrity": "sha512-dYmF3LihQIGvtgJrt382hSRH4S0QuAp2w1hXJI2+kOaEqo5HnUPG0k5KA6va+S1yUhx7UBToUKCBHeLHFQRV4w==",
216
+ "license": "Apache-2.0",
217
+ "dependencies": {
218
+ "@types/node-fetch": "^2.1.2",
219
+ "node-fetch": "~2.6.1",
220
+ "string_decoder": "^1.3.0"
221
+ },
222
+ "peerDependencies": {
223
+ "@tensorflow/tfjs-core": "4.22.0",
224
+ "seedrandom": "^3.0.5"
225
+ }
226
+ },
227
+ "node_modules/@tensorflow/tfjs-data/node_modules/node-fetch": {
228
+ "version": "2.6.13",
229
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.13.tgz",
230
+ "integrity": "sha512-StxNAxh15zr77QvvkmveSQ8uCQ4+v5FkvNTj0OESmiHu+VRi/gXArXtkWMElOsOUNLtUEvI4yS+rdtOHZTwlQA==",
231
+ "license": "MIT",
232
+ "dependencies": {
233
+ "whatwg-url": "^5.0.0"
234
+ },
235
+ "engines": {
236
+ "node": "4.x || >=6.0.0"
237
+ },
238
+ "peerDependencies": {
239
+ "encoding": "^0.1.0"
240
+ },
241
+ "peerDependenciesMeta": {
242
+ "encoding": {
243
+ "optional": true
244
+ }
245
+ }
246
+ },
247
+ "node_modules/@tensorflow/tfjs-layers": {
248
+ "version": "4.22.0",
249
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-layers/-/tfjs-layers-4.22.0.tgz",
250
+ "integrity": "sha512-lybPj4ZNj9iIAPUj7a8ZW1hg8KQGfqWLlCZDi9eM/oNKCCAgchiyzx8OrYoWmRrB+AM6VNEeIT+2gZKg5ReihA==",
251
+ "license": "Apache-2.0 AND MIT",
252
+ "peerDependencies": {
253
+ "@tensorflow/tfjs-core": "4.22.0"
254
+ }
255
+ },
256
+ "node_modules/@tensorflow/tfjs-node": {
257
+ "version": "4.22.0",
258
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-node/-/tfjs-node-4.22.0.tgz",
259
+ "integrity": "sha512-uHrXeUlfgkMxTZqHkESSV7zSdKdV0LlsBeblqkuKU9nnfxB1pC6DtoyYVaLxznzZy7WQSegjcohxxCjAf6Dc7w==",
260
+ "hasInstallScript": true,
261
+ "license": "Apache-2.0",
262
+ "dependencies": {
263
+ "@mapbox/node-pre-gyp": "1.0.9",
264
+ "@tensorflow/tfjs": "4.22.0",
265
+ "adm-zip": "^0.5.2",
266
+ "google-protobuf": "^3.9.2",
267
+ "https-proxy-agent": "^2.2.1",
268
+ "progress": "^2.0.0",
269
+ "rimraf": "^2.6.2",
270
+ "tar": "^6.2.1"
271
+ },
272
+ "engines": {
273
+ "node": ">=8.11.0"
274
+ }
275
+ },
276
+ "node_modules/@types/long": {
277
+ "version": "4.0.2",
278
+ "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz",
279
+ "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==",
280
+ "license": "MIT"
281
+ },
282
+ "node_modules/@types/node": {
283
+ "version": "22.13.10",
284
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.10.tgz",
285
+ "integrity": "sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==",
286
+ "license": "MIT",
287
+ "dependencies": {
288
+ "undici-types": "~6.20.0"
289
+ }
290
+ },
291
+ "node_modules/@types/node-fetch": {
292
+ "version": "2.6.12",
293
+ "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.12.tgz",
294
+ "integrity": "sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==",
295
+ "license": "MIT",
296
+ "dependencies": {
297
+ "@types/node": "*",
298
+ "form-data": "^4.0.0"
299
+ }
300
+ },
301
+ "node_modules/@types/offscreencanvas": {
302
+ "version": "2019.3.0",
303
+ "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.3.0.tgz",
304
+ "integrity": "sha512-esIJx9bQg+QYF0ra8GnvfianIY8qWB0GBx54PK5Eps6m+xTj86KLavHv6qDhzKcu5UUOgNfJ2pWaIIV7TRUd9Q==",
305
+ "license": "MIT"
306
+ },
307
+ "node_modules/@types/seedrandom": {
308
+ "version": "2.4.34",
309
+ "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-2.4.34.tgz",
310
+ "integrity": "sha512-ytDiArvrn/3Xk6/vtylys5tlY6eo7Ane0hvcx++TKo6RxQXuVfW0AF/oeWqAj9dN29SyhtawuXstgmPlwNcv/A==",
311
+ "license": "MIT"
312
+ },
313
+ "node_modules/@types/webgl-ext": {
314
+ "version": "0.0.30",
315
+ "resolved": "https://registry.npmjs.org/@types/webgl-ext/-/webgl-ext-0.0.30.tgz",
316
+ "integrity": "sha512-LKVgNmBxN0BbljJrVUwkxwRYqzsAEPcZOe6S2T6ZaBDIrFp0qu4FNlpc5sM1tGbXUYFgdVQIoeLk1Y1UoblyEg==",
317
+ "license": "MIT"
318
+ },
319
+ "node_modules/@types/webgl2": {
320
+ "version": "0.0.4",
321
+ "resolved": "https://registry.npmjs.org/@types/webgl2/-/webgl2-0.0.4.tgz",
322
+ "integrity": "sha512-PACt1xdErJbMUOUweSrbVM7gSIYm1vTncW2hF6Os/EeWi6TXYAYMPp+8v6rzHmypE5gHrxaxZNXgMkJVIdZpHw==",
323
+ "license": "MIT"
324
+ },
325
+ "node_modules/@webgpu/types": {
326
+ "version": "0.1.38",
327
+ "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.38.tgz",
328
+ "integrity": "sha512-7LrhVKz2PRh+DD7+S+PVaFd5HxaWQvoMqBbsV9fNJO1pjUs1P8bM2vQVNfk+3URTqbuTI7gkXi0rfsN0IadoBA==",
329
+ "license": "BSD-3-Clause"
330
+ },
331
+ "node_modules/abbrev": {
332
+ "version": "1.1.1",
333
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
334
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
335
+ "license": "ISC"
336
+ },
337
+ "node_modules/accepts": {
338
+ "version": "1.3.8",
339
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
340
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
341
+ "license": "MIT",
342
+ "dependencies": {
343
+ "mime-types": "~2.1.34",
344
+ "negotiator": "0.6.3"
345
+ },
346
+ "engines": {
347
+ "node": ">= 0.6"
348
+ }
349
+ },
350
+ "node_modules/adm-zip": {
351
+ "version": "0.5.16",
352
+ "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.16.tgz",
353
+ "integrity": "sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==",
354
+ "license": "MIT",
355
+ "engines": {
356
+ "node": ">=12.0"
357
+ }
358
+ },
359
+ "node_modules/agent-base": {
360
+ "version": "4.3.0",
361
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz",
362
+ "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==",
363
+ "license": "MIT",
364
+ "dependencies": {
365
+ "es6-promisify": "^5.0.0"
366
+ },
367
+ "engines": {
368
+ "node": ">= 4.0.0"
369
+ }
370
+ },
371
+ "node_modules/ansi-regex": {
372
+ "version": "5.0.1",
373
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
374
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
375
+ "license": "MIT",
376
+ "engines": {
377
+ "node": ">=8"
378
+ }
379
+ },
380
+ "node_modules/ansi-styles": {
381
+ "version": "4.3.0",
382
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
383
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
384
+ "license": "MIT",
385
+ "dependencies": {
386
+ "color-convert": "^2.0.1"
387
+ },
388
+ "engines": {
389
+ "node": ">=8"
390
+ },
391
+ "funding": {
392
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
393
+ }
394
+ },
395
+ "node_modules/aproba": {
396
+ "version": "2.0.0",
397
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
398
+ "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==",
399
+ "license": "ISC"
400
+ },
401
+ "node_modules/are-we-there-yet": {
402
+ "version": "2.0.0",
403
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz",
404
+ "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==",
405
+ "deprecated": "This package is no longer supported.",
406
+ "license": "ISC",
407
+ "dependencies": {
408
+ "delegates": "^1.0.0",
409
+ "readable-stream": "^3.6.0"
410
+ },
411
+ "engines": {
412
+ "node": ">=10"
413
+ }
414
+ },
415
+ "node_modules/argparse": {
416
+ "version": "1.0.10",
417
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
418
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
419
+ "license": "MIT",
420
+ "dependencies": {
421
+ "sprintf-js": "~1.0.2"
422
+ }
423
+ },
424
+ "node_modules/array-flatten": {
425
+ "version": "1.1.1",
426
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
427
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
428
+ "license": "MIT"
429
+ },
430
+ "node_modules/asynckit": {
431
+ "version": "0.4.0",
432
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
433
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
434
+ "license": "MIT"
435
+ },
436
+ "node_modules/balanced-match": {
437
+ "version": "1.0.2",
438
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
439
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
440
+ "license": "MIT"
441
+ },
442
+ "node_modules/base64-js": {
443
+ "version": "1.5.1",
444
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
445
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
446
+ "funding": [
447
+ {
448
+ "type": "github",
449
+ "url": "https://github.com/sponsors/feross"
450
+ },
451
+ {
452
+ "type": "patreon",
453
+ "url": "https://www.patreon.com/feross"
454
+ },
455
+ {
456
+ "type": "consulting",
457
+ "url": "https://feross.org/support"
458
+ }
459
+ ],
460
+ "license": "MIT"
461
+ },
462
+ "node_modules/bl": {
463
+ "version": "4.1.0",
464
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
465
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
466
+ "license": "MIT",
467
+ "dependencies": {
468
+ "buffer": "^5.5.0",
469
+ "inherits": "^2.0.4",
470
+ "readable-stream": "^3.4.0"
471
+ }
472
+ },
473
+ "node_modules/body-parser": {
474
+ "version": "1.20.3",
475
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
476
+ "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
477
+ "license": "MIT",
478
+ "dependencies": {
479
+ "bytes": "3.1.2",
480
+ "content-type": "~1.0.5",
481
+ "debug": "2.6.9",
482
+ "depd": "2.0.0",
483
+ "destroy": "1.2.0",
484
+ "http-errors": "2.0.0",
485
+ "iconv-lite": "0.4.24",
486
+ "on-finished": "2.4.1",
487
+ "qs": "6.13.0",
488
+ "raw-body": "2.5.2",
489
+ "type-is": "~1.6.18",
490
+ "unpipe": "1.0.0"
491
+ },
492
+ "engines": {
493
+ "node": ">= 0.8",
494
+ "npm": "1.2.8000 || >= 1.4.16"
495
+ }
496
+ },
497
+ "node_modules/brace-expansion": {
498
+ "version": "1.1.11",
499
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
500
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
501
+ "license": "MIT",
502
+ "dependencies": {
503
+ "balanced-match": "^1.0.0",
504
+ "concat-map": "0.0.1"
505
+ }
506
+ },
507
+ "node_modules/buffer": {
508
+ "version": "5.7.1",
509
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
510
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
511
+ "funding": [
512
+ {
513
+ "type": "github",
514
+ "url": "https://github.com/sponsors/feross"
515
+ },
516
+ {
517
+ "type": "patreon",
518
+ "url": "https://www.patreon.com/feross"
519
+ },
520
+ {
521
+ "type": "consulting",
522
+ "url": "https://feross.org/support"
523
+ }
524
+ ],
525
+ "license": "MIT",
526
+ "dependencies": {
527
+ "base64-js": "^1.3.1",
528
+ "ieee754": "^1.1.13"
529
+ }
530
+ },
531
+ "node_modules/busboy": {
532
+ "version": "1.6.0",
533
+ "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
534
+ "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
535
+ "dependencies": {
536
+ "streamsearch": "^1.1.0"
537
+ },
538
+ "engines": {
539
+ "node": ">=10.16.0"
540
+ }
541
+ },
542
+ "node_modules/bytes": {
543
+ "version": "3.1.2",
544
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
545
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
546
+ "license": "MIT",
547
+ "engines": {
548
+ "node": ">= 0.8"
549
+ }
550
+ },
551
+ "node_modules/call-bind-apply-helpers": {
552
+ "version": "1.0.2",
553
+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
554
+ "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
555
+ "license": "MIT",
556
+ "dependencies": {
557
+ "es-errors": "^1.3.0",
558
+ "function-bind": "^1.1.2"
559
+ },
560
+ "engines": {
561
+ "node": ">= 0.4"
562
+ }
563
+ },
564
+ "node_modules/call-bound": {
565
+ "version": "1.0.4",
566
+ "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
567
+ "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
568
+ "license": "MIT",
569
+ "dependencies": {
570
+ "call-bind-apply-helpers": "^1.0.2",
571
+ "get-intrinsic": "^1.3.0"
572
+ },
573
+ "engines": {
574
+ "node": ">= 0.4"
575
+ },
576
+ "funding": {
577
+ "url": "https://github.com/sponsors/ljharb"
578
+ }
579
+ },
580
+ "node_modules/canvas": {
581
+ "version": "3.1.0",
582
+ "resolved": "https://registry.npmjs.org/canvas/-/canvas-3.1.0.tgz",
583
+ "integrity": "sha512-tTj3CqqukVJ9NgSahykNwtGda7V33VLObwrHfzT0vqJXu7J4d4C/7kQQW3fOEGDfZZoILPut5H00gOjyttPGyg==",
584
+ "hasInstallScript": true,
585
+ "license": "MIT",
586
+ "dependencies": {
587
+ "node-addon-api": "^7.0.0",
588
+ "prebuild-install": "^7.1.1"
589
+ },
590
+ "engines": {
591
+ "node": "^18.12.0 || >= 20.9.0"
592
+ }
593
+ },
594
+ "node_modules/chalk": {
595
+ "version": "4.1.2",
596
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
597
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
598
+ "license": "MIT",
599
+ "dependencies": {
600
+ "ansi-styles": "^4.1.0",
601
+ "supports-color": "^7.1.0"
602
+ },
603
+ "engines": {
604
+ "node": ">=10"
605
+ },
606
+ "funding": {
607
+ "url": "https://github.com/chalk/chalk?sponsor=1"
608
+ }
609
+ },
610
+ "node_modules/chownr": {
611
+ "version": "2.0.0",
612
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
613
+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
614
+ "license": "ISC",
615
+ "engines": {
616
+ "node": ">=10"
617
+ }
618
+ },
619
+ "node_modules/cliui": {
620
+ "version": "7.0.4",
621
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
622
+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
623
+ "license": "ISC",
624
+ "dependencies": {
625
+ "string-width": "^4.2.0",
626
+ "strip-ansi": "^6.0.0",
627
+ "wrap-ansi": "^7.0.0"
628
+ }
629
+ },
630
+ "node_modules/color-convert": {
631
+ "version": "2.0.1",
632
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
633
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
634
+ "license": "MIT",
635
+ "dependencies": {
636
+ "color-name": "~1.1.4"
637
+ },
638
+ "engines": {
639
+ "node": ">=7.0.0"
640
+ }
641
+ },
642
+ "node_modules/color-name": {
643
+ "version": "1.1.4",
644
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
645
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
646
+ "license": "MIT"
647
+ },
648
+ "node_modules/color-support": {
649
+ "version": "1.1.3",
650
+ "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
651
+ "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
652
+ "license": "ISC",
653
+ "bin": {
654
+ "color-support": "bin.js"
655
+ }
656
+ },
657
+ "node_modules/combined-stream": {
658
+ "version": "1.0.8",
659
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
660
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
661
+ "license": "MIT",
662
+ "dependencies": {
663
+ "delayed-stream": "~1.0.0"
664
+ },
665
+ "engines": {
666
+ "node": ">= 0.8"
667
+ }
668
+ },
669
+ "node_modules/concat-map": {
670
+ "version": "0.0.1",
671
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
672
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
673
+ "license": "MIT"
674
+ },
675
+ "node_modules/console-control-strings": {
676
+ "version": "1.1.0",
677
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
678
+ "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==",
679
+ "license": "ISC"
680
+ },
681
+ "node_modules/content-disposition": {
682
+ "version": "0.5.4",
683
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
684
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
685
+ "license": "MIT",
686
+ "dependencies": {
687
+ "safe-buffer": "5.2.1"
688
+ },
689
+ "engines": {
690
+ "node": ">= 0.6"
691
+ }
692
+ },
693
+ "node_modules/content-type": {
694
+ "version": "1.0.5",
695
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
696
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
697
+ "license": "MIT",
698
+ "engines": {
699
+ "node": ">= 0.6"
700
+ }
701
+ },
702
+ "node_modules/cookie": {
703
+ "version": "0.7.1",
704
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
705
+ "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
706
+ "license": "MIT",
707
+ "engines": {
708
+ "node": ">= 0.6"
709
+ }
710
+ },
711
+ "node_modules/cookie-signature": {
712
+ "version": "1.0.6",
713
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
714
+ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
715
+ "license": "MIT"
716
+ },
717
+ "node_modules/core-js": {
718
+ "version": "3.29.1",
719
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.29.1.tgz",
720
+ "integrity": "sha512-+jwgnhg6cQxKYIIjGtAHq2nwUOolo9eoFZ4sHfUH09BLXBgxnH4gA0zEd+t+BO2cNB8idaBtZFcFTRjQJRJmAw==",
721
+ "hasInstallScript": true,
722
+ "license": "MIT",
723
+ "funding": {
724
+ "type": "opencollective",
725
+ "url": "https://opencollective.com/core-js"
726
+ }
727
+ },
728
+ "node_modules/debug": {
729
+ "version": "2.6.9",
730
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
731
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
732
+ "license": "MIT",
733
+ "dependencies": {
734
+ "ms": "2.0.0"
735
+ }
736
+ },
737
+ "node_modules/decompress-response": {
738
+ "version": "6.0.0",
739
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
740
+ "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
741
+ "license": "MIT",
742
+ "dependencies": {
743
+ "mimic-response": "^3.1.0"
744
+ },
745
+ "engines": {
746
+ "node": ">=10"
747
+ },
748
+ "funding": {
749
+ "url": "https://github.com/sponsors/sindresorhus"
750
+ }
751
+ },
752
+ "node_modules/deep-extend": {
753
+ "version": "0.6.0",
754
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
755
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
756
+ "license": "MIT",
757
+ "engines": {
758
+ "node": ">=4.0.0"
759
+ }
760
+ },
761
+ "node_modules/delayed-stream": {
762
+ "version": "1.0.0",
763
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
764
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
765
+ "license": "MIT",
766
+ "engines": {
767
+ "node": ">=0.4.0"
768
+ }
769
+ },
770
+ "node_modules/delegates": {
771
+ "version": "1.0.0",
772
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
773
+ "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==",
774
+ "license": "MIT"
775
+ },
776
+ "node_modules/depd": {
777
+ "version": "2.0.0",
778
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
779
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
780
+ "license": "MIT",
781
+ "engines": {
782
+ "node": ">= 0.8"
783
+ }
784
+ },
785
+ "node_modules/destroy": {
786
+ "version": "1.2.0",
787
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
788
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
789
+ "license": "MIT",
790
+ "engines": {
791
+ "node": ">= 0.8",
792
+ "npm": "1.2.8000 || >= 1.4.16"
793
+ }
794
+ },
795
+ "node_modules/detect-libc": {
796
+ "version": "2.0.3",
797
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz",
798
+ "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==",
799
+ "license": "Apache-2.0",
800
+ "engines": {
801
+ "node": ">=8"
802
+ }
803
+ },
804
+ "node_modules/dunder-proto": {
805
+ "version": "1.0.1",
806
+ "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
807
+ "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
808
+ "license": "MIT",
809
+ "dependencies": {
810
+ "call-bind-apply-helpers": "^1.0.1",
811
+ "es-errors": "^1.3.0",
812
+ "gopd": "^1.2.0"
813
+ },
814
+ "engines": {
815
+ "node": ">= 0.4"
816
+ }
817
+ },
818
+ "node_modules/ee-first": {
819
+ "version": "1.1.1",
820
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
821
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
822
+ "license": "MIT"
823
+ },
824
+ "node_modules/emoji-regex": {
825
+ "version": "8.0.0",
826
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
827
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
828
+ "license": "MIT"
829
+ },
830
+ "node_modules/encodeurl": {
831
+ "version": "2.0.0",
832
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
833
+ "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
834
+ "license": "MIT",
835
+ "engines": {
836
+ "node": ">= 0.8"
837
+ }
838
+ },
839
+ "node_modules/end-of-stream": {
840
+ "version": "1.4.4",
841
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
842
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
843
+ "license": "MIT",
844
+ "dependencies": {
845
+ "once": "^1.4.0"
846
+ }
847
+ },
848
+ "node_modules/es-define-property": {
849
+ "version": "1.0.1",
850
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
851
+ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
852
+ "license": "MIT",
853
+ "engines": {
854
+ "node": ">= 0.4"
855
+ }
856
+ },
857
+ "node_modules/es-errors": {
858
+ "version": "1.3.0",
859
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
860
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
861
+ "license": "MIT",
862
+ "engines": {
863
+ "node": ">= 0.4"
864
+ }
865
+ },
866
+ "node_modules/es-object-atoms": {
867
+ "version": "1.1.1",
868
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
869
+ "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
870
+ "license": "MIT",
871
+ "dependencies": {
872
+ "es-errors": "^1.3.0"
873
+ },
874
+ "engines": {
875
+ "node": ">= 0.4"
876
+ }
877
+ },
878
+ "node_modules/es-set-tostringtag": {
879
+ "version": "2.1.0",
880
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
881
+ "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
882
+ "license": "MIT",
883
+ "dependencies": {
884
+ "es-errors": "^1.3.0",
885
+ "get-intrinsic": "^1.2.6",
886
+ "has-tostringtag": "^1.0.2",
887
+ "hasown": "^2.0.2"
888
+ },
889
+ "engines": {
890
+ "node": ">= 0.4"
891
+ }
892
+ },
893
+ "node_modules/es6-promise": {
894
+ "version": "4.2.8",
895
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
896
+ "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==",
897
+ "license": "MIT"
898
+ },
899
+ "node_modules/es6-promisify": {
900
+ "version": "5.0.0",
901
+ "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
902
+ "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==",
903
+ "license": "MIT",
904
+ "dependencies": {
905
+ "es6-promise": "^4.0.3"
906
+ }
907
+ },
908
+ "node_modules/escalade": {
909
+ "version": "3.2.0",
910
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
911
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
912
+ "license": "MIT",
913
+ "engines": {
914
+ "node": ">=6"
915
+ }
916
+ },
917
+ "node_modules/escape-html": {
918
+ "version": "1.0.3",
919
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
920
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
921
+ "license": "MIT"
922
+ },
923
+ "node_modules/etag": {
924
+ "version": "1.8.1",
925
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
926
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
927
+ "license": "MIT",
928
+ "engines": {
929
+ "node": ">= 0.6"
930
+ }
931
+ },
932
+ "node_modules/expand-template": {
933
+ "version": "2.0.3",
934
+ "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
935
+ "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
936
+ "license": "(MIT OR WTFPL)",
937
+ "engines": {
938
+ "node": ">=6"
939
+ }
940
+ },
941
+ "node_modules/express": {
942
+ "version": "4.21.2",
943
+ "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz",
944
+ "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==",
945
+ "license": "MIT",
946
+ "dependencies": {
947
+ "accepts": "~1.3.8",
948
+ "array-flatten": "1.1.1",
949
+ "body-parser": "1.20.3",
950
+ "content-disposition": "0.5.4",
951
+ "content-type": "~1.0.4",
952
+ "cookie": "0.7.1",
953
+ "cookie-signature": "1.0.6",
954
+ "debug": "2.6.9",
955
+ "depd": "2.0.0",
956
+ "encodeurl": "~2.0.0",
957
+ "escape-html": "~1.0.3",
958
+ "etag": "~1.8.1",
959
+ "finalhandler": "1.3.1",
960
+ "fresh": "0.5.2",
961
+ "http-errors": "2.0.0",
962
+ "merge-descriptors": "1.0.3",
963
+ "methods": "~1.1.2",
964
+ "on-finished": "2.4.1",
965
+ "parseurl": "~1.3.3",
966
+ "path-to-regexp": "0.1.12",
967
+ "proxy-addr": "~2.0.7",
968
+ "qs": "6.13.0",
969
+ "range-parser": "~1.2.1",
970
+ "safe-buffer": "5.2.1",
971
+ "send": "0.19.0",
972
+ "serve-static": "1.16.2",
973
+ "setprototypeof": "1.2.0",
974
+ "statuses": "2.0.1",
975
+ "type-is": "~1.6.18",
976
+ "utils-merge": "1.0.1",
977
+ "vary": "~1.1.2"
978
+ },
979
+ "engines": {
980
+ "node": ">= 0.10.0"
981
+ },
982
+ "funding": {
983
+ "type": "opencollective",
984
+ "url": "https://opencollective.com/express"
985
+ }
986
+ },
987
+ "node_modules/express-fileupload": {
988
+ "version": "1.5.1",
989
+ "resolved": "https://registry.npmjs.org/express-fileupload/-/express-fileupload-1.5.1.tgz",
990
+ "integrity": "sha512-LsYG1ALXEB7vlmjuSw8ABeOctMp8a31aUC5ZF55zuz7O2jLFnmJYrCv10py357ky48aEoBQ/9bVXgFynjvaPmA==",
991
+ "license": "MIT",
992
+ "dependencies": {
993
+ "busboy": "^1.6.0"
994
+ },
995
+ "engines": {
996
+ "node": ">=12.0.0"
997
+ }
998
+ },
999
+ "node_modules/face-api.js": {
1000
+ "version": "0.22.2",
1001
+ "resolved": "https://registry.npmjs.org/face-api.js/-/face-api.js-0.22.2.tgz",
1002
+ "integrity": "sha512-9Bbv/yaBRTKCXjiDqzryeKhYxmgSjJ7ukvOvEBy6krA0Ah/vNBlsf7iBNfJljWiPA8Tys1/MnB3lyP2Hfmsuyw==",
1003
+ "license": "MIT",
1004
+ "dependencies": {
1005
+ "@tensorflow/tfjs-core": "1.7.0",
1006
+ "tslib": "^1.11.1"
1007
+ }
1008
+ },
1009
+ "node_modules/face-api.js/node_modules/@tensorflow/tfjs-core": {
1010
+ "version": "1.7.0",
1011
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-core/-/tfjs-core-1.7.0.tgz",
1012
+ "integrity": "sha512-uwQdiklNjqBnHPeseOdG0sGxrI3+d6lybaKu2+ou3ajVeKdPEwpWbgqA6iHjq1iylnOGkgkbbnQ6r2lwkiIIHw==",
1013
+ "license": "Apache-2.0",
1014
+ "dependencies": {
1015
+ "@types/offscreencanvas": "~2019.3.0",
1016
+ "@types/seedrandom": "2.4.27",
1017
+ "@types/webgl-ext": "0.0.30",
1018
+ "@types/webgl2": "0.0.4",
1019
+ "node-fetch": "~2.1.2",
1020
+ "seedrandom": "2.4.3"
1021
+ },
1022
+ "engines": {
1023
+ "yarn": ">= 1.3.2"
1024
+ }
1025
+ },
1026
+ "node_modules/face-api.js/node_modules/@types/seedrandom": {
1027
+ "version": "2.4.27",
1028
+ "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-2.4.27.tgz",
1029
+ "integrity": "sha512-YvMLqFak/7rt//lPBtEHv3M4sRNA+HGxrhFZ+DQs9K2IkYJbNwVIb8avtJfhDiuaUBX/AW0jnjv48FV8h3u9bQ==",
1030
+ "license": "MIT"
1031
+ },
1032
+ "node_modules/face-api.js/node_modules/node-fetch": {
1033
+ "version": "2.1.2",
1034
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz",
1035
+ "integrity": "sha512-IHLHYskTc2arMYsHZH82PVX8CSKT5lzb7AXeyO06QnjGDKtkv+pv3mEki6S7reB/x1QPo+YPxQRNEVgR5V/w3Q==",
1036
+ "license": "MIT",
1037
+ "engines": {
1038
+ "node": "4.x || >=6.0.0"
1039
+ }
1040
+ },
1041
+ "node_modules/face-api.js/node_modules/seedrandom": {
1042
+ "version": "2.4.3",
1043
+ "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-2.4.3.tgz",
1044
+ "integrity": "sha512-2CkZ9Wn2dS4mMUWQaXLsOAfGD+irMlLEeSP3cMxpGbgyOOzJGFa+MWCOMTOCMyZinHRPxyOj/S/C57li/1to6Q==",
1045
+ "license": "MIT"
1046
+ },
1047
+ "node_modules/finalhandler": {
1048
+ "version": "1.3.1",
1049
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
1050
+ "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
1051
+ "license": "MIT",
1052
+ "dependencies": {
1053
+ "debug": "2.6.9",
1054
+ "encodeurl": "~2.0.0",
1055
+ "escape-html": "~1.0.3",
1056
+ "on-finished": "2.4.1",
1057
+ "parseurl": "~1.3.3",
1058
+ "statuses": "2.0.1",
1059
+ "unpipe": "~1.0.0"
1060
+ },
1061
+ "engines": {
1062
+ "node": ">= 0.8"
1063
+ }
1064
+ },
1065
+ "node_modules/form-data": {
1066
+ "version": "4.0.2",
1067
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz",
1068
+ "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==",
1069
+ "license": "MIT",
1070
+ "dependencies": {
1071
+ "asynckit": "^0.4.0",
1072
+ "combined-stream": "^1.0.8",
1073
+ "es-set-tostringtag": "^2.1.0",
1074
+ "mime-types": "^2.1.12"
1075
+ },
1076
+ "engines": {
1077
+ "node": ">= 6"
1078
+ }
1079
+ },
1080
+ "node_modules/forwarded": {
1081
+ "version": "0.2.0",
1082
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
1083
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
1084
+ "license": "MIT",
1085
+ "engines": {
1086
+ "node": ">= 0.6"
1087
+ }
1088
+ },
1089
+ "node_modules/fresh": {
1090
+ "version": "0.5.2",
1091
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
1092
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
1093
+ "license": "MIT",
1094
+ "engines": {
1095
+ "node": ">= 0.6"
1096
+ }
1097
+ },
1098
+ "node_modules/fs-constants": {
1099
+ "version": "1.0.0",
1100
+ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
1101
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
1102
+ "license": "MIT"
1103
+ },
1104
+ "node_modules/fs-minipass": {
1105
+ "version": "2.1.0",
1106
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
1107
+ "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
1108
+ "license": "ISC",
1109
+ "dependencies": {
1110
+ "minipass": "^3.0.0"
1111
+ },
1112
+ "engines": {
1113
+ "node": ">= 8"
1114
+ }
1115
+ },
1116
+ "node_modules/fs-minipass/node_modules/minipass": {
1117
+ "version": "3.3.6",
1118
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
1119
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
1120
+ "license": "ISC",
1121
+ "dependencies": {
1122
+ "yallist": "^4.0.0"
1123
+ },
1124
+ "engines": {
1125
+ "node": ">=8"
1126
+ }
1127
+ },
1128
+ "node_modules/fs.realpath": {
1129
+ "version": "1.0.0",
1130
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
1131
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
1132
+ "license": "ISC"
1133
+ },
1134
+ "node_modules/function-bind": {
1135
+ "version": "1.1.2",
1136
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
1137
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
1138
+ "license": "MIT",
1139
+ "funding": {
1140
+ "url": "https://github.com/sponsors/ljharb"
1141
+ }
1142
+ },
1143
+ "node_modules/gauge": {
1144
+ "version": "3.0.2",
1145
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz",
1146
+ "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==",
1147
+ "deprecated": "This package is no longer supported.",
1148
+ "license": "ISC",
1149
+ "dependencies": {
1150
+ "aproba": "^1.0.3 || ^2.0.0",
1151
+ "color-support": "^1.1.2",
1152
+ "console-control-strings": "^1.0.0",
1153
+ "has-unicode": "^2.0.1",
1154
+ "object-assign": "^4.1.1",
1155
+ "signal-exit": "^3.0.0",
1156
+ "string-width": "^4.2.3",
1157
+ "strip-ansi": "^6.0.1",
1158
+ "wide-align": "^1.1.2"
1159
+ },
1160
+ "engines": {
1161
+ "node": ">=10"
1162
+ }
1163
+ },
1164
+ "node_modules/get-caller-file": {
1165
+ "version": "2.0.5",
1166
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
1167
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
1168
+ "license": "ISC",
1169
+ "engines": {
1170
+ "node": "6.* || 8.* || >= 10.*"
1171
+ }
1172
+ },
1173
+ "node_modules/get-intrinsic": {
1174
+ "version": "1.3.0",
1175
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
1176
+ "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
1177
+ "license": "MIT",
1178
+ "dependencies": {
1179
+ "call-bind-apply-helpers": "^1.0.2",
1180
+ "es-define-property": "^1.0.1",
1181
+ "es-errors": "^1.3.0",
1182
+ "es-object-atoms": "^1.1.1",
1183
+ "function-bind": "^1.1.2",
1184
+ "get-proto": "^1.0.1",
1185
+ "gopd": "^1.2.0",
1186
+ "has-symbols": "^1.1.0",
1187
+ "hasown": "^2.0.2",
1188
+ "math-intrinsics": "^1.1.0"
1189
+ },
1190
+ "engines": {
1191
+ "node": ">= 0.4"
1192
+ },
1193
+ "funding": {
1194
+ "url": "https://github.com/sponsors/ljharb"
1195
+ }
1196
+ },
1197
+ "node_modules/get-proto": {
1198
+ "version": "1.0.1",
1199
+ "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
1200
+ "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
1201
+ "license": "MIT",
1202
+ "dependencies": {
1203
+ "dunder-proto": "^1.0.1",
1204
+ "es-object-atoms": "^1.0.0"
1205
+ },
1206
+ "engines": {
1207
+ "node": ">= 0.4"
1208
+ }
1209
+ },
1210
+ "node_modules/github-from-package": {
1211
+ "version": "0.0.0",
1212
+ "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
1213
+ "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==",
1214
+ "license": "MIT"
1215
+ },
1216
+ "node_modules/glob": {
1217
+ "version": "7.2.3",
1218
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
1219
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
1220
+ "deprecated": "Glob versions prior to v9 are no longer supported",
1221
+ "license": "ISC",
1222
+ "dependencies": {
1223
+ "fs.realpath": "^1.0.0",
1224
+ "inflight": "^1.0.4",
1225
+ "inherits": "2",
1226
+ "minimatch": "^3.1.1",
1227
+ "once": "^1.3.0",
1228
+ "path-is-absolute": "^1.0.0"
1229
+ },
1230
+ "engines": {
1231
+ "node": "*"
1232
+ },
1233
+ "funding": {
1234
+ "url": "https://github.com/sponsors/isaacs"
1235
+ }
1236
+ },
1237
+ "node_modules/google-protobuf": {
1238
+ "version": "3.21.4",
1239
+ "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.4.tgz",
1240
+ "integrity": "sha512-MnG7N936zcKTco4Jd2PX2U96Kf9PxygAPKBug+74LHzmHXmceN16MmRcdgZv+DGef/S9YvQAfRsNCn4cjf9yyQ==",
1241
+ "license": "(BSD-3-Clause AND Apache-2.0)"
1242
+ },
1243
+ "node_modules/gopd": {
1244
+ "version": "1.2.0",
1245
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
1246
+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
1247
+ "license": "MIT",
1248
+ "engines": {
1249
+ "node": ">= 0.4"
1250
+ },
1251
+ "funding": {
1252
+ "url": "https://github.com/sponsors/ljharb"
1253
+ }
1254
+ },
1255
+ "node_modules/has-flag": {
1256
+ "version": "4.0.0",
1257
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
1258
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
1259
+ "license": "MIT",
1260
+ "engines": {
1261
+ "node": ">=8"
1262
+ }
1263
+ },
1264
+ "node_modules/has-symbols": {
1265
+ "version": "1.1.0",
1266
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
1267
+ "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
1268
+ "license": "MIT",
1269
+ "engines": {
1270
+ "node": ">= 0.4"
1271
+ },
1272
+ "funding": {
1273
+ "url": "https://github.com/sponsors/ljharb"
1274
+ }
1275
+ },
1276
+ "node_modules/has-tostringtag": {
1277
+ "version": "1.0.2",
1278
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
1279
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
1280
+ "license": "MIT",
1281
+ "dependencies": {
1282
+ "has-symbols": "^1.0.3"
1283
+ },
1284
+ "engines": {
1285
+ "node": ">= 0.4"
1286
+ },
1287
+ "funding": {
1288
+ "url": "https://github.com/sponsors/ljharb"
1289
+ }
1290
+ },
1291
+ "node_modules/has-unicode": {
1292
+ "version": "2.0.1",
1293
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
1294
+ "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==",
1295
+ "license": "ISC"
1296
+ },
1297
+ "node_modules/hasown": {
1298
+ "version": "2.0.2",
1299
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
1300
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
1301
+ "license": "MIT",
1302
+ "dependencies": {
1303
+ "function-bind": "^1.1.2"
1304
+ },
1305
+ "engines": {
1306
+ "node": ">= 0.4"
1307
+ }
1308
+ },
1309
+ "node_modules/http-errors": {
1310
+ "version": "2.0.0",
1311
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
1312
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
1313
+ "license": "MIT",
1314
+ "dependencies": {
1315
+ "depd": "2.0.0",
1316
+ "inherits": "2.0.4",
1317
+ "setprototypeof": "1.2.0",
1318
+ "statuses": "2.0.1",
1319
+ "toidentifier": "1.0.1"
1320
+ },
1321
+ "engines": {
1322
+ "node": ">= 0.8"
1323
+ }
1324
+ },
1325
+ "node_modules/https-proxy-agent": {
1326
+ "version": "2.2.4",
1327
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz",
1328
+ "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==",
1329
+ "license": "MIT",
1330
+ "dependencies": {
1331
+ "agent-base": "^4.3.0",
1332
+ "debug": "^3.1.0"
1333
+ },
1334
+ "engines": {
1335
+ "node": ">= 4.5.0"
1336
+ }
1337
+ },
1338
+ "node_modules/https-proxy-agent/node_modules/debug": {
1339
+ "version": "3.2.7",
1340
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
1341
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
1342
+ "license": "MIT",
1343
+ "dependencies": {
1344
+ "ms": "^2.1.1"
1345
+ }
1346
+ },
1347
+ "node_modules/https-proxy-agent/node_modules/ms": {
1348
+ "version": "2.1.3",
1349
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
1350
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
1351
+ "license": "MIT"
1352
+ },
1353
+ "node_modules/iconv-lite": {
1354
+ "version": "0.4.24",
1355
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
1356
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
1357
+ "license": "MIT",
1358
+ "dependencies": {
1359
+ "safer-buffer": ">= 2.1.2 < 3"
1360
+ },
1361
+ "engines": {
1362
+ "node": ">=0.10.0"
1363
+ }
1364
+ },
1365
+ "node_modules/ieee754": {
1366
+ "version": "1.2.1",
1367
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
1368
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
1369
+ "funding": [
1370
+ {
1371
+ "type": "github",
1372
+ "url": "https://github.com/sponsors/feross"
1373
+ },
1374
+ {
1375
+ "type": "patreon",
1376
+ "url": "https://www.patreon.com/feross"
1377
+ },
1378
+ {
1379
+ "type": "consulting",
1380
+ "url": "https://feross.org/support"
1381
+ }
1382
+ ],
1383
+ "license": "BSD-3-Clause"
1384
+ },
1385
+ "node_modules/inflight": {
1386
+ "version": "1.0.6",
1387
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1388
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
1389
+ "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
1390
+ "license": "ISC",
1391
+ "dependencies": {
1392
+ "once": "^1.3.0",
1393
+ "wrappy": "1"
1394
+ }
1395
+ },
1396
+ "node_modules/inherits": {
1397
+ "version": "2.0.4",
1398
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1399
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
1400
+ "license": "ISC"
1401
+ },
1402
+ "node_modules/ini": {
1403
+ "version": "1.3.8",
1404
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
1405
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
1406
+ "license": "ISC"
1407
+ },
1408
+ "node_modules/ipaddr.js": {
1409
+ "version": "1.9.1",
1410
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
1411
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
1412
+ "license": "MIT",
1413
+ "engines": {
1414
+ "node": ">= 0.10"
1415
+ }
1416
+ },
1417
+ "node_modules/is-fullwidth-code-point": {
1418
+ "version": "3.0.0",
1419
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
1420
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
1421
+ "license": "MIT",
1422
+ "engines": {
1423
+ "node": ">=8"
1424
+ }
1425
+ },
1426
+ "node_modules/long": {
1427
+ "version": "4.0.0",
1428
+ "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
1429
+ "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==",
1430
+ "license": "Apache-2.0"
1431
+ },
1432
+ "node_modules/make-dir": {
1433
+ "version": "3.1.0",
1434
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
1435
+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
1436
+ "license": "MIT",
1437
+ "dependencies": {
1438
+ "semver": "^6.0.0"
1439
+ },
1440
+ "engines": {
1441
+ "node": ">=8"
1442
+ },
1443
+ "funding": {
1444
+ "url": "https://github.com/sponsors/sindresorhus"
1445
+ }
1446
+ },
1447
+ "node_modules/make-dir/node_modules/semver": {
1448
+ "version": "6.3.1",
1449
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
1450
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
1451
+ "license": "ISC",
1452
+ "bin": {
1453
+ "semver": "bin/semver.js"
1454
+ }
1455
+ },
1456
+ "node_modules/math-intrinsics": {
1457
+ "version": "1.1.0",
1458
+ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
1459
+ "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
1460
+ "license": "MIT",
1461
+ "engines": {
1462
+ "node": ">= 0.4"
1463
+ }
1464
+ },
1465
+ "node_modules/media-typer": {
1466
+ "version": "0.3.0",
1467
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
1468
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
1469
+ "license": "MIT",
1470
+ "engines": {
1471
+ "node": ">= 0.6"
1472
+ }
1473
+ },
1474
+ "node_modules/merge-descriptors": {
1475
+ "version": "1.0.3",
1476
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
1477
+ "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
1478
+ "license": "MIT",
1479
+ "funding": {
1480
+ "url": "https://github.com/sponsors/sindresorhus"
1481
+ }
1482
+ },
1483
+ "node_modules/methods": {
1484
+ "version": "1.1.2",
1485
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
1486
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
1487
+ "license": "MIT",
1488
+ "engines": {
1489
+ "node": ">= 0.6"
1490
+ }
1491
+ },
1492
+ "node_modules/mime": {
1493
+ "version": "1.6.0",
1494
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
1495
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
1496
+ "license": "MIT",
1497
+ "bin": {
1498
+ "mime": "cli.js"
1499
+ },
1500
+ "engines": {
1501
+ "node": ">=4"
1502
+ }
1503
+ },
1504
+ "node_modules/mime-db": {
1505
+ "version": "1.52.0",
1506
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
1507
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
1508
+ "license": "MIT",
1509
+ "engines": {
1510
+ "node": ">= 0.6"
1511
+ }
1512
+ },
1513
+ "node_modules/mime-types": {
1514
+ "version": "2.1.35",
1515
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
1516
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
1517
+ "license": "MIT",
1518
+ "dependencies": {
1519
+ "mime-db": "1.52.0"
1520
+ },
1521
+ "engines": {
1522
+ "node": ">= 0.6"
1523
+ }
1524
+ },
1525
+ "node_modules/mimic-response": {
1526
+ "version": "3.1.0",
1527
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
1528
+ "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
1529
+ "license": "MIT",
1530
+ "engines": {
1531
+ "node": ">=10"
1532
+ },
1533
+ "funding": {
1534
+ "url": "https://github.com/sponsors/sindresorhus"
1535
+ }
1536
+ },
1537
+ "node_modules/minimatch": {
1538
+ "version": "3.1.2",
1539
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
1540
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
1541
+ "license": "ISC",
1542
+ "dependencies": {
1543
+ "brace-expansion": "^1.1.7"
1544
+ },
1545
+ "engines": {
1546
+ "node": "*"
1547
+ }
1548
+ },
1549
+ "node_modules/minimist": {
1550
+ "version": "1.2.8",
1551
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
1552
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
1553
+ "license": "MIT",
1554
+ "funding": {
1555
+ "url": "https://github.com/sponsors/ljharb"
1556
+ }
1557
+ },
1558
+ "node_modules/minipass": {
1559
+ "version": "5.0.0",
1560
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
1561
+ "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
1562
+ "license": "ISC",
1563
+ "engines": {
1564
+ "node": ">=8"
1565
+ }
1566
+ },
1567
+ "node_modules/minizlib": {
1568
+ "version": "2.1.2",
1569
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
1570
+ "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
1571
+ "license": "MIT",
1572
+ "dependencies": {
1573
+ "minipass": "^3.0.0",
1574
+ "yallist": "^4.0.0"
1575
+ },
1576
+ "engines": {
1577
+ "node": ">= 8"
1578
+ }
1579
+ },
1580
+ "node_modules/minizlib/node_modules/minipass": {
1581
+ "version": "3.3.6",
1582
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
1583
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
1584
+ "license": "ISC",
1585
+ "dependencies": {
1586
+ "yallist": "^4.0.0"
1587
+ },
1588
+ "engines": {
1589
+ "node": ">=8"
1590
+ }
1591
+ },
1592
+ "node_modules/mkdirp": {
1593
+ "version": "1.0.4",
1594
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
1595
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
1596
+ "license": "MIT",
1597
+ "bin": {
1598
+ "mkdirp": "bin/cmd.js"
1599
+ },
1600
+ "engines": {
1601
+ "node": ">=10"
1602
+ }
1603
+ },
1604
+ "node_modules/mkdirp-classic": {
1605
+ "version": "0.5.3",
1606
+ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
1607
+ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
1608
+ "license": "MIT"
1609
+ },
1610
+ "node_modules/ms": {
1611
+ "version": "2.0.0",
1612
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1613
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
1614
+ "license": "MIT"
1615
+ },
1616
+ "node_modules/napi-build-utils": {
1617
+ "version": "2.0.0",
1618
+ "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz",
1619
+ "integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==",
1620
+ "license": "MIT"
1621
+ },
1622
+ "node_modules/negotiator": {
1623
+ "version": "0.6.3",
1624
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
1625
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
1626
+ "license": "MIT",
1627
+ "engines": {
1628
+ "node": ">= 0.6"
1629
+ }
1630
+ },
1631
+ "node_modules/node-abi": {
1632
+ "version": "3.74.0",
1633
+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.74.0.tgz",
1634
+ "integrity": "sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w==",
1635
+ "license": "MIT",
1636
+ "dependencies": {
1637
+ "semver": "^7.3.5"
1638
+ },
1639
+ "engines": {
1640
+ "node": ">=10"
1641
+ }
1642
+ },
1643
+ "node_modules/node-addon-api": {
1644
+ "version": "7.1.1",
1645
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
1646
+ "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
1647
+ "license": "MIT"
1648
+ },
1649
+ "node_modules/node-fetch": {
1650
+ "version": "2.7.0",
1651
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
1652
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
1653
+ "license": "MIT",
1654
+ "dependencies": {
1655
+ "whatwg-url": "^5.0.0"
1656
+ },
1657
+ "engines": {
1658
+ "node": "4.x || >=6.0.0"
1659
+ },
1660
+ "peerDependencies": {
1661
+ "encoding": "^0.1.0"
1662
+ },
1663
+ "peerDependenciesMeta": {
1664
+ "encoding": {
1665
+ "optional": true
1666
+ }
1667
+ }
1668
+ },
1669
+ "node_modules/nopt": {
1670
+ "version": "5.0.0",
1671
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
1672
+ "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
1673
+ "license": "ISC",
1674
+ "dependencies": {
1675
+ "abbrev": "1"
1676
+ },
1677
+ "bin": {
1678
+ "nopt": "bin/nopt.js"
1679
+ },
1680
+ "engines": {
1681
+ "node": ">=6"
1682
+ }
1683
+ },
1684
+ "node_modules/npmlog": {
1685
+ "version": "5.0.1",
1686
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz",
1687
+ "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==",
1688
+ "deprecated": "This package is no longer supported.",
1689
+ "license": "ISC",
1690
+ "dependencies": {
1691
+ "are-we-there-yet": "^2.0.0",
1692
+ "console-control-strings": "^1.1.0",
1693
+ "gauge": "^3.0.0",
1694
+ "set-blocking": "^2.0.0"
1695
+ }
1696
+ },
1697
+ "node_modules/object-assign": {
1698
+ "version": "4.1.1",
1699
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1700
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
1701
+ "license": "MIT",
1702
+ "engines": {
1703
+ "node": ">=0.10.0"
1704
+ }
1705
+ },
1706
+ "node_modules/object-inspect": {
1707
+ "version": "1.13.4",
1708
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
1709
+ "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
1710
+ "license": "MIT",
1711
+ "engines": {
1712
+ "node": ">= 0.4"
1713
+ },
1714
+ "funding": {
1715
+ "url": "https://github.com/sponsors/ljharb"
1716
+ }
1717
+ },
1718
+ "node_modules/on-finished": {
1719
+ "version": "2.4.1",
1720
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
1721
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
1722
+ "license": "MIT",
1723
+ "dependencies": {
1724
+ "ee-first": "1.1.1"
1725
+ },
1726
+ "engines": {
1727
+ "node": ">= 0.8"
1728
+ }
1729
+ },
1730
+ "node_modules/once": {
1731
+ "version": "1.4.0",
1732
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1733
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
1734
+ "license": "ISC",
1735
+ "dependencies": {
1736
+ "wrappy": "1"
1737
+ }
1738
+ },
1739
+ "node_modules/parseurl": {
1740
+ "version": "1.3.3",
1741
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
1742
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
1743
+ "license": "MIT",
1744
+ "engines": {
1745
+ "node": ">= 0.8"
1746
+ }
1747
+ },
1748
+ "node_modules/path-is-absolute": {
1749
+ "version": "1.0.1",
1750
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1751
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
1752
+ "license": "MIT",
1753
+ "engines": {
1754
+ "node": ">=0.10.0"
1755
+ }
1756
+ },
1757
+ "node_modules/path-to-regexp": {
1758
+ "version": "0.1.12",
1759
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
1760
+ "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==",
1761
+ "license": "MIT"
1762
+ },
1763
+ "node_modules/prebuild-install": {
1764
+ "version": "7.1.3",
1765
+ "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz",
1766
+ "integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==",
1767
+ "license": "MIT",
1768
+ "dependencies": {
1769
+ "detect-libc": "^2.0.0",
1770
+ "expand-template": "^2.0.3",
1771
+ "github-from-package": "0.0.0",
1772
+ "minimist": "^1.2.3",
1773
+ "mkdirp-classic": "^0.5.3",
1774
+ "napi-build-utils": "^2.0.0",
1775
+ "node-abi": "^3.3.0",
1776
+ "pump": "^3.0.0",
1777
+ "rc": "^1.2.7",
1778
+ "simple-get": "^4.0.0",
1779
+ "tar-fs": "^2.0.0",
1780
+ "tunnel-agent": "^0.6.0"
1781
+ },
1782
+ "bin": {
1783
+ "prebuild-install": "bin.js"
1784
+ },
1785
+ "engines": {
1786
+ "node": ">=10"
1787
+ }
1788
+ },
1789
+ "node_modules/progress": {
1790
+ "version": "2.0.3",
1791
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
1792
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
1793
+ "license": "MIT",
1794
+ "engines": {
1795
+ "node": ">=0.4.0"
1796
+ }
1797
+ },
1798
+ "node_modules/proxy-addr": {
1799
+ "version": "2.0.7",
1800
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
1801
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
1802
+ "license": "MIT",
1803
+ "dependencies": {
1804
+ "forwarded": "0.2.0",
1805
+ "ipaddr.js": "1.9.1"
1806
+ },
1807
+ "engines": {
1808
+ "node": ">= 0.10"
1809
+ }
1810
+ },
1811
+ "node_modules/pump": {
1812
+ "version": "3.0.2",
1813
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz",
1814
+ "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==",
1815
+ "license": "MIT",
1816
+ "dependencies": {
1817
+ "end-of-stream": "^1.1.0",
1818
+ "once": "^1.3.1"
1819
+ }
1820
+ },
1821
+ "node_modules/qs": {
1822
+ "version": "6.13.0",
1823
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
1824
+ "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
1825
+ "license": "BSD-3-Clause",
1826
+ "dependencies": {
1827
+ "side-channel": "^1.0.6"
1828
+ },
1829
+ "engines": {
1830
+ "node": ">=0.6"
1831
+ },
1832
+ "funding": {
1833
+ "url": "https://github.com/sponsors/ljharb"
1834
+ }
1835
+ },
1836
+ "node_modules/range-parser": {
1837
+ "version": "1.2.1",
1838
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
1839
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
1840
+ "license": "MIT",
1841
+ "engines": {
1842
+ "node": ">= 0.6"
1843
+ }
1844
+ },
1845
+ "node_modules/raw-body": {
1846
+ "version": "2.5.2",
1847
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
1848
+ "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
1849
+ "license": "MIT",
1850
+ "dependencies": {
1851
+ "bytes": "3.1.2",
1852
+ "http-errors": "2.0.0",
1853
+ "iconv-lite": "0.4.24",
1854
+ "unpipe": "1.0.0"
1855
+ },
1856
+ "engines": {
1857
+ "node": ">= 0.8"
1858
+ }
1859
+ },
1860
+ "node_modules/rc": {
1861
+ "version": "1.2.8",
1862
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
1863
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
1864
+ "license": "(BSD-2-Clause OR MIT OR Apache-2.0)",
1865
+ "dependencies": {
1866
+ "deep-extend": "^0.6.0",
1867
+ "ini": "~1.3.0",
1868
+ "minimist": "^1.2.0",
1869
+ "strip-json-comments": "~2.0.1"
1870
+ },
1871
+ "bin": {
1872
+ "rc": "cli.js"
1873
+ }
1874
+ },
1875
+ "node_modules/readable-stream": {
1876
+ "version": "3.6.2",
1877
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
1878
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
1879
+ "license": "MIT",
1880
+ "dependencies": {
1881
+ "inherits": "^2.0.3",
1882
+ "string_decoder": "^1.1.1",
1883
+ "util-deprecate": "^1.0.1"
1884
+ },
1885
+ "engines": {
1886
+ "node": ">= 6"
1887
+ }
1888
+ },
1889
+ "node_modules/regenerator-runtime": {
1890
+ "version": "0.13.11",
1891
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
1892
+ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==",
1893
+ "license": "MIT"
1894
+ },
1895
+ "node_modules/require-directory": {
1896
+ "version": "2.1.1",
1897
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
1898
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
1899
+ "license": "MIT",
1900
+ "engines": {
1901
+ "node": ">=0.10.0"
1902
+ }
1903
+ },
1904
+ "node_modules/rimraf": {
1905
+ "version": "2.7.1",
1906
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
1907
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
1908
+ "deprecated": "Rimraf versions prior to v4 are no longer supported",
1909
+ "license": "ISC",
1910
+ "dependencies": {
1911
+ "glob": "^7.1.3"
1912
+ },
1913
+ "bin": {
1914
+ "rimraf": "bin.js"
1915
+ }
1916
+ },
1917
+ "node_modules/safe-buffer": {
1918
+ "version": "5.2.1",
1919
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
1920
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
1921
+ "funding": [
1922
+ {
1923
+ "type": "github",
1924
+ "url": "https://github.com/sponsors/feross"
1925
+ },
1926
+ {
1927
+ "type": "patreon",
1928
+ "url": "https://www.patreon.com/feross"
1929
+ },
1930
+ {
1931
+ "type": "consulting",
1932
+ "url": "https://feross.org/support"
1933
+ }
1934
+ ],
1935
+ "license": "MIT"
1936
+ },
1937
+ "node_modules/safer-buffer": {
1938
+ "version": "2.1.2",
1939
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1940
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
1941
+ "license": "MIT"
1942
+ },
1943
+ "node_modules/seedrandom": {
1944
+ "version": "3.0.5",
1945
+ "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz",
1946
+ "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==",
1947
+ "license": "MIT"
1948
+ },
1949
+ "node_modules/semver": {
1950
+ "version": "7.7.1",
1951
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
1952
+ "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
1953
+ "license": "ISC",
1954
+ "bin": {
1955
+ "semver": "bin/semver.js"
1956
+ },
1957
+ "engines": {
1958
+ "node": ">=10"
1959
+ }
1960
+ },
1961
+ "node_modules/send": {
1962
+ "version": "0.19.0",
1963
+ "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz",
1964
+ "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
1965
+ "license": "MIT",
1966
+ "dependencies": {
1967
+ "debug": "2.6.9",
1968
+ "depd": "2.0.0",
1969
+ "destroy": "1.2.0",
1970
+ "encodeurl": "~1.0.2",
1971
+ "escape-html": "~1.0.3",
1972
+ "etag": "~1.8.1",
1973
+ "fresh": "0.5.2",
1974
+ "http-errors": "2.0.0",
1975
+ "mime": "1.6.0",
1976
+ "ms": "2.1.3",
1977
+ "on-finished": "2.4.1",
1978
+ "range-parser": "~1.2.1",
1979
+ "statuses": "2.0.1"
1980
+ },
1981
+ "engines": {
1982
+ "node": ">= 0.8.0"
1983
+ }
1984
+ },
1985
+ "node_modules/send/node_modules/encodeurl": {
1986
+ "version": "1.0.2",
1987
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
1988
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
1989
+ "license": "MIT",
1990
+ "engines": {
1991
+ "node": ">= 0.8"
1992
+ }
1993
+ },
1994
+ "node_modules/send/node_modules/ms": {
1995
+ "version": "2.1.3",
1996
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
1997
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
1998
+ "license": "MIT"
1999
+ },
2000
+ "node_modules/serve-static": {
2001
+ "version": "1.16.2",
2002
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz",
2003
+ "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
2004
+ "license": "MIT",
2005
+ "dependencies": {
2006
+ "encodeurl": "~2.0.0",
2007
+ "escape-html": "~1.0.3",
2008
+ "parseurl": "~1.3.3",
2009
+ "send": "0.19.0"
2010
+ },
2011
+ "engines": {
2012
+ "node": ">= 0.8.0"
2013
+ }
2014
+ },
2015
+ "node_modules/set-blocking": {
2016
+ "version": "2.0.0",
2017
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
2018
+ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
2019
+ "license": "ISC"
2020
+ },
2021
+ "node_modules/setprototypeof": {
2022
+ "version": "1.2.0",
2023
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
2024
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
2025
+ "license": "ISC"
2026
+ },
2027
+ "node_modules/side-channel": {
2028
+ "version": "1.1.0",
2029
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
2030
+ "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
2031
+ "license": "MIT",
2032
+ "dependencies": {
2033
+ "es-errors": "^1.3.0",
2034
+ "object-inspect": "^1.13.3",
2035
+ "side-channel-list": "^1.0.0",
2036
+ "side-channel-map": "^1.0.1",
2037
+ "side-channel-weakmap": "^1.0.2"
2038
+ },
2039
+ "engines": {
2040
+ "node": ">= 0.4"
2041
+ },
2042
+ "funding": {
2043
+ "url": "https://github.com/sponsors/ljharb"
2044
+ }
2045
+ },
2046
+ "node_modules/side-channel-list": {
2047
+ "version": "1.0.0",
2048
+ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
2049
+ "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
2050
+ "license": "MIT",
2051
+ "dependencies": {
2052
+ "es-errors": "^1.3.0",
2053
+ "object-inspect": "^1.13.3"
2054
+ },
2055
+ "engines": {
2056
+ "node": ">= 0.4"
2057
+ },
2058
+ "funding": {
2059
+ "url": "https://github.com/sponsors/ljharb"
2060
+ }
2061
+ },
2062
+ "node_modules/side-channel-map": {
2063
+ "version": "1.0.1",
2064
+ "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
2065
+ "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
2066
+ "license": "MIT",
2067
+ "dependencies": {
2068
+ "call-bound": "^1.0.2",
2069
+ "es-errors": "^1.3.0",
2070
+ "get-intrinsic": "^1.2.5",
2071
+ "object-inspect": "^1.13.3"
2072
+ },
2073
+ "engines": {
2074
+ "node": ">= 0.4"
2075
+ },
2076
+ "funding": {
2077
+ "url": "https://github.com/sponsors/ljharb"
2078
+ }
2079
+ },
2080
+ "node_modules/side-channel-weakmap": {
2081
+ "version": "1.0.2",
2082
+ "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
2083
+ "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
2084
+ "license": "MIT",
2085
+ "dependencies": {
2086
+ "call-bound": "^1.0.2",
2087
+ "es-errors": "^1.3.0",
2088
+ "get-intrinsic": "^1.2.5",
2089
+ "object-inspect": "^1.13.3",
2090
+ "side-channel-map": "^1.0.1"
2091
+ },
2092
+ "engines": {
2093
+ "node": ">= 0.4"
2094
+ },
2095
+ "funding": {
2096
+ "url": "https://github.com/sponsors/ljharb"
2097
+ }
2098
+ },
2099
+ "node_modules/signal-exit": {
2100
+ "version": "3.0.7",
2101
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
2102
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
2103
+ "license": "ISC"
2104
+ },
2105
+ "node_modules/simple-concat": {
2106
+ "version": "1.0.1",
2107
+ "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
2108
+ "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
2109
+ "funding": [
2110
+ {
2111
+ "type": "github",
2112
+ "url": "https://github.com/sponsors/feross"
2113
+ },
2114
+ {
2115
+ "type": "patreon",
2116
+ "url": "https://www.patreon.com/feross"
2117
+ },
2118
+ {
2119
+ "type": "consulting",
2120
+ "url": "https://feross.org/support"
2121
+ }
2122
+ ],
2123
+ "license": "MIT"
2124
+ },
2125
+ "node_modules/simple-get": {
2126
+ "version": "4.0.1",
2127
+ "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz",
2128
+ "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
2129
+ "funding": [
2130
+ {
2131
+ "type": "github",
2132
+ "url": "https://github.com/sponsors/feross"
2133
+ },
2134
+ {
2135
+ "type": "patreon",
2136
+ "url": "https://www.patreon.com/feross"
2137
+ },
2138
+ {
2139
+ "type": "consulting",
2140
+ "url": "https://feross.org/support"
2141
+ }
2142
+ ],
2143
+ "license": "MIT",
2144
+ "dependencies": {
2145
+ "decompress-response": "^6.0.0",
2146
+ "once": "^1.3.1",
2147
+ "simple-concat": "^1.0.0"
2148
+ }
2149
+ },
2150
+ "node_modules/sprintf-js": {
2151
+ "version": "1.0.3",
2152
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
2153
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
2154
+ "license": "BSD-3-Clause"
2155
+ },
2156
+ "node_modules/statuses": {
2157
+ "version": "2.0.1",
2158
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
2159
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
2160
+ "license": "MIT",
2161
+ "engines": {
2162
+ "node": ">= 0.8"
2163
+ }
2164
+ },
2165
+ "node_modules/streamsearch": {
2166
+ "version": "1.1.0",
2167
+ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
2168
+ "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
2169
+ "engines": {
2170
+ "node": ">=10.0.0"
2171
+ }
2172
+ },
2173
+ "node_modules/string_decoder": {
2174
+ "version": "1.3.0",
2175
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
2176
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
2177
+ "license": "MIT",
2178
+ "dependencies": {
2179
+ "safe-buffer": "~5.2.0"
2180
+ }
2181
+ },
2182
+ "node_modules/string-width": {
2183
+ "version": "4.2.3",
2184
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
2185
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
2186
+ "license": "MIT",
2187
+ "dependencies": {
2188
+ "emoji-regex": "^8.0.0",
2189
+ "is-fullwidth-code-point": "^3.0.0",
2190
+ "strip-ansi": "^6.0.1"
2191
+ },
2192
+ "engines": {
2193
+ "node": ">=8"
2194
+ }
2195
+ },
2196
+ "node_modules/strip-ansi": {
2197
+ "version": "6.0.1",
2198
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
2199
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
2200
+ "license": "MIT",
2201
+ "dependencies": {
2202
+ "ansi-regex": "^5.0.1"
2203
+ },
2204
+ "engines": {
2205
+ "node": ">=8"
2206
+ }
2207
+ },
2208
+ "node_modules/strip-json-comments": {
2209
+ "version": "2.0.1",
2210
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
2211
+ "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
2212
+ "license": "MIT",
2213
+ "engines": {
2214
+ "node": ">=0.10.0"
2215
+ }
2216
+ },
2217
+ "node_modules/supports-color": {
2218
+ "version": "7.2.0",
2219
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
2220
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
2221
+ "license": "MIT",
2222
+ "dependencies": {
2223
+ "has-flag": "^4.0.0"
2224
+ },
2225
+ "engines": {
2226
+ "node": ">=8"
2227
+ }
2228
+ },
2229
+ "node_modules/tar": {
2230
+ "version": "6.2.1",
2231
+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz",
2232
+ "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==",
2233
+ "license": "ISC",
2234
+ "dependencies": {
2235
+ "chownr": "^2.0.0",
2236
+ "fs-minipass": "^2.0.0",
2237
+ "minipass": "^5.0.0",
2238
+ "minizlib": "^2.1.1",
2239
+ "mkdirp": "^1.0.3",
2240
+ "yallist": "^4.0.0"
2241
+ },
2242
+ "engines": {
2243
+ "node": ">=10"
2244
+ }
2245
+ },
2246
+ "node_modules/tar-fs": {
2247
+ "version": "2.1.2",
2248
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.2.tgz",
2249
+ "integrity": "sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==",
2250
+ "license": "MIT",
2251
+ "dependencies": {
2252
+ "chownr": "^1.1.1",
2253
+ "mkdirp-classic": "^0.5.2",
2254
+ "pump": "^3.0.0",
2255
+ "tar-stream": "^2.1.4"
2256
+ }
2257
+ },
2258
+ "node_modules/tar-fs/node_modules/chownr": {
2259
+ "version": "1.1.4",
2260
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
2261
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
2262
+ "license": "ISC"
2263
+ },
2264
+ "node_modules/tar-stream": {
2265
+ "version": "2.2.0",
2266
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
2267
+ "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
2268
+ "license": "MIT",
2269
+ "dependencies": {
2270
+ "bl": "^4.0.3",
2271
+ "end-of-stream": "^1.4.1",
2272
+ "fs-constants": "^1.0.0",
2273
+ "inherits": "^2.0.3",
2274
+ "readable-stream": "^3.1.1"
2275
+ },
2276
+ "engines": {
2277
+ "node": ">=6"
2278
+ }
2279
+ },
2280
+ "node_modules/toidentifier": {
2281
+ "version": "1.0.1",
2282
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
2283
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
2284
+ "license": "MIT",
2285
+ "engines": {
2286
+ "node": ">=0.6"
2287
+ }
2288
+ },
2289
+ "node_modules/tr46": {
2290
+ "version": "0.0.3",
2291
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
2292
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
2293
+ "license": "MIT"
2294
+ },
2295
+ "node_modules/tslib": {
2296
+ "version": "1.14.1",
2297
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
2298
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
2299
+ "license": "0BSD"
2300
+ },
2301
+ "node_modules/tunnel-agent": {
2302
+ "version": "0.6.0",
2303
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
2304
+ "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
2305
+ "license": "Apache-2.0",
2306
+ "dependencies": {
2307
+ "safe-buffer": "^5.0.1"
2308
+ },
2309
+ "engines": {
2310
+ "node": "*"
2311
+ }
2312
+ },
2313
+ "node_modules/type-is": {
2314
+ "version": "1.6.18",
2315
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
2316
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
2317
+ "license": "MIT",
2318
+ "dependencies": {
2319
+ "media-typer": "0.3.0",
2320
+ "mime-types": "~2.1.24"
2321
+ },
2322
+ "engines": {
2323
+ "node": ">= 0.6"
2324
+ }
2325
+ },
2326
+ "node_modules/undici-types": {
2327
+ "version": "6.20.0",
2328
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz",
2329
+ "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==",
2330
+ "license": "MIT"
2331
+ },
2332
+ "node_modules/unpipe": {
2333
+ "version": "1.0.0",
2334
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
2335
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
2336
+ "license": "MIT",
2337
+ "engines": {
2338
+ "node": ">= 0.8"
2339
+ }
2340
+ },
2341
+ "node_modules/util-deprecate": {
2342
+ "version": "1.0.2",
2343
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
2344
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
2345
+ "license": "MIT"
2346
+ },
2347
+ "node_modules/utils-merge": {
2348
+ "version": "1.0.1",
2349
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
2350
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
2351
+ "license": "MIT",
2352
+ "engines": {
2353
+ "node": ">= 0.4.0"
2354
+ }
2355
+ },
2356
+ "node_modules/vary": {
2357
+ "version": "1.1.2",
2358
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
2359
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
2360
+ "license": "MIT",
2361
+ "engines": {
2362
+ "node": ">= 0.8"
2363
+ }
2364
+ },
2365
+ "node_modules/webidl-conversions": {
2366
+ "version": "3.0.1",
2367
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
2368
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
2369
+ "license": "BSD-2-Clause"
2370
+ },
2371
+ "node_modules/whatwg-url": {
2372
+ "version": "5.0.0",
2373
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
2374
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
2375
+ "license": "MIT",
2376
+ "dependencies": {
2377
+ "tr46": "~0.0.3",
2378
+ "webidl-conversions": "^3.0.0"
2379
+ }
2380
+ },
2381
+ "node_modules/wide-align": {
2382
+ "version": "1.1.5",
2383
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
2384
+ "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
2385
+ "license": "ISC",
2386
+ "dependencies": {
2387
+ "string-width": "^1.0.2 || 2 || 3 || 4"
2388
+ }
2389
+ },
2390
+ "node_modules/wrap-ansi": {
2391
+ "version": "7.0.0",
2392
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
2393
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
2394
+ "license": "MIT",
2395
+ "dependencies": {
2396
+ "ansi-styles": "^4.0.0",
2397
+ "string-width": "^4.1.0",
2398
+ "strip-ansi": "^6.0.0"
2399
+ },
2400
+ "engines": {
2401
+ "node": ">=10"
2402
+ },
2403
+ "funding": {
2404
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
2405
+ }
2406
+ },
2407
+ "node_modules/wrappy": {
2408
+ "version": "1.0.2",
2409
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2410
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
2411
+ "license": "ISC"
2412
+ },
2413
+ "node_modules/y18n": {
2414
+ "version": "5.0.8",
2415
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
2416
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
2417
+ "license": "ISC",
2418
+ "engines": {
2419
+ "node": ">=10"
2420
+ }
2421
+ },
2422
+ "node_modules/yallist": {
2423
+ "version": "4.0.0",
2424
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
2425
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
2426
+ "license": "ISC"
2427
+ },
2428
+ "node_modules/yargs": {
2429
+ "version": "16.2.0",
2430
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
2431
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
2432
+ "license": "MIT",
2433
+ "dependencies": {
2434
+ "cliui": "^7.0.2",
2435
+ "escalade": "^3.1.1",
2436
+ "get-caller-file": "^2.0.5",
2437
+ "require-directory": "^2.1.1",
2438
+ "string-width": "^4.2.0",
2439
+ "y18n": "^5.0.5",
2440
+ "yargs-parser": "^20.2.2"
2441
+ },
2442
+ "engines": {
2443
+ "node": ">=10"
2444
+ }
2445
+ },
2446
+ "node_modules/yargs-parser": {
2447
+ "version": "20.2.9",
2448
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
2449
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
2450
+ "license": "ISC",
2451
+ "engines": {
2452
+ "node": ">=10"
2453
+ }
2454
+ }
2455
+ }
2456
+ }
package.json ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "face-analysis-backend",
3
+ "version": "1.0.0",
4
+ "main": "index.js",
5
+ "scripts": {
6
+ "test": "echo \"Error: no test specified\" && exit 1",
7
+ "start": "node index.js"
8
+ },
9
+ "keywords": [],
10
+ "author": "alpingo23",
11
+ "license": "ISC",
12
+ "description": "Backend for face analysis",
13
+ "dependencies": {
14
+ "@tensorflow/tfjs-node": "^4.22.0",
15
+ "canvas": "^3.1.0",
16
+ "express": "^4.21.2",
17
+ "express-fileupload": "^1.5.1",
18
+ "face-api.js": "^0.22.2"
19
+ }
20
+ }