KevanSoon commited on
Commit
0d186b4
·
1 Parent(s): 2367ec0

Updated Springboot stuff

Browse files
Dockerfile DELETED
@@ -1,12 +0,0 @@
1
- FROM maven:3.9.6-eclipse-temurin-17 AS build
2
- WORKDIR /app
3
- COPY . .
4
- RUN mvn clean package -DskipTests
5
-
6
- FROM eclipse-temurin:17-jre
7
- WORKDIR /home/user/app
8
- COPY --from=build /app/target/*.jar ./app.jar
9
-
10
- ENV PORT=7860
11
- EXPOSE 7860
12
- CMD ["java", "-jar", "app.jar", "--server.port=7860"]
 
 
 
 
 
 
 
 
 
 
 
 
 
src/main/resources/application.yml CHANGED
@@ -1,6 +1,3 @@
1
- server:
2
- port: 7860
3
-
4
  spring:
5
  datasource:
6
  url: ${SPRING_DATASOURCE_URL}
@@ -18,10 +15,6 @@ spring:
18
  properties:
19
  hibernate:
20
  dialect: org.hibernate.dialect.PostgreSQLDialect
21
- # security:
22
- # user:
23
- # name: ${SPRING_SECURITY_USER_NAME}
24
- # password: ${SPRING_SECURITY_USER_PASSWORD}
25
 
26
  # Expose metrics for demo proof
27
  management.endpoints.web.exposure.include: health,info,metrics,prometheus
 
 
 
 
1
  spring:
2
  datasource:
3
  url: ${SPRING_DATASOURCE_URL}
 
15
  properties:
16
  hibernate:
17
  dialect: org.hibernate.dialect.PostgreSQLDialect
 
 
 
 
18
 
19
  # Expose metrics for demo proof
20
  management.endpoints.web.exposure.include: health,info,metrics,prometheus
src/main/resources/db/changelog/db.changelog-1.0.xml ADDED
@@ -0,0 +1,105 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.1" encoding="UTF-8" standalone="no"?>
2
+ <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:pro="http://www.liquibase.org/xml/ns/pro" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/pro http://www.liquibase.org/xml/ns/pro/liquibase-pro-latest.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd">
3
+ <changeSet author="minn (generated)" id="1758377794981-1">
4
+ <createTable tableName="students">
5
+ <column defaultValueComputed="gen_random_uuid()" name="student_id" type="UUID">
6
+ <constraints nullable="false" primaryKey="true" primaryKeyName="students_pkey"/>
7
+ </column>
8
+ <column name="code" type="TEXT">
9
+ <constraints nullable="false"/>
10
+ </column>
11
+ <column name="name" type="TEXT">
12
+ <constraints nullable="false"/>
13
+ </column>
14
+ <column name="class" type="TEXT">
15
+ <constraints nullable="false"/>
16
+ </column>
17
+ <column name="email" type="TEXT"/>
18
+ <column name="phone" type="TEXT"/>
19
+ <column defaultValueComputed="now()" name="created_at" type="TIMESTAMP WITH TIME ZONE"/>
20
+ <column name="group" type="TEXT"/>
21
+ </createTable>
22
+ </changeSet>
23
+ <changeSet author="minn (generated)" id="1758377794981-2">
24
+ <createTable tableName="sessions">
25
+ <column defaultValueComputed="gen_random_uuid()" name="session_id" type="UUID">
26
+ <constraints nullable="false" primaryKey="true" primaryKeyName="sessions_pkey"/>
27
+ </column>
28
+ <column name="name" type="TEXT">
29
+ <constraints nullable="false"/>
30
+ </column>
31
+ <column name="date" type="date">
32
+ <constraints nullable="false"/>
33
+ </column>
34
+ <column name="start_time" type="time(6) WITHOUT TIME ZONE">
35
+ <constraints nullable="false"/>
36
+ </column>
37
+ <column name="end_time" type="time(6) WITHOUT TIME ZONE">
38
+ <constraints nullable="false"/>
39
+ </column>
40
+ <column defaultValueComputed="now()" name="created_at" type="TIMESTAMP WITH TIME ZONE"/>
41
+ </createTable>
42
+ </changeSet>
43
+ <changeSet author="minn (generated)" id="1758377794981-3">
44
+ <createTable tableName="attendance">
45
+ <column defaultValueComputed="gen_random_uuid()" name="attendance_id" type="UUID">
46
+ <constraints nullable="false" primaryKey="true" primaryKeyName="attendance_pkey"/>
47
+ </column>
48
+ <column name="student_id" type="UUID"/>
49
+ <column name="session_id" type="UUID"/>
50
+ <column name="status" type="TEXT"/>
51
+ <column name="confidence" type="numeric(5, 2)"/>
52
+ <column name="method" type="TEXT"/>
53
+ <column defaultValueComputed="now()" name="marked_at" type="TIMESTAMP WITH TIME ZONE"/>
54
+ </createTable>
55
+ </changeSet>
56
+ <changeSet author="minn (generated)" id="1758377794981-4">
57
+ <createTable tableName="face_data">
58
+ <column defaultValueComputed="gen_random_uuid()" name="face_id" type="UUID">
59
+ <constraints nullable="false" primaryKey="true" primaryKeyName="face_data_pkey"/>
60
+ </column>
61
+ <column name="student_id" type="UUID"/>
62
+ <column name="image_url" type="TEXT">
63
+ <constraints nullable="false"/>
64
+ </column>
65
+ <column defaultValueComputed="now()" name="created_at" type="TIMESTAMP WITH TIME ZONE"/>
66
+ </createTable>
67
+ </changeSet>
68
+ <changeSet author="minn (generated)" id="1758377794981-5">
69
+ <addUniqueConstraint columnNames="code" constraintName="students_code_key" tableName="students"/>
70
+ </changeSet>
71
+ <changeSet author="minn (generated)" id="1758377794981-6">
72
+ <createIndex indexName="idx_attendance_session" tableName="attendance" using="btree">
73
+ <column name="session_id"/>
74
+ </createIndex>
75
+ </changeSet>
76
+ <changeSet author="minn (generated)" id="1758377794981-7">
77
+ <createIndex indexName="idx_attendance_student" tableName="attendance" using="btree">
78
+ <column name="student_id"/>
79
+ </createIndex>
80
+ </changeSet>
81
+ <changeSet author="minn (generated)" id="1758377794981-8">
82
+ <addUniqueConstraint columnNames="student_id, session_id" constraintName="attendance_student_id_session_id_key" tableName="attendance"/>
83
+ </changeSet>
84
+ <changeSet author="minn (generated)" id="1758377794981-9">
85
+ <addUniqueConstraint columnNames="student_id, session_id" constraintName="uniq_att" tableName="attendance"/>
86
+ </changeSet>
87
+ <changeSet author="minn (generated)" id="1758377794981-10">
88
+ <createTable tableName="test_connections">
89
+ <column autoIncrement="true" name="id" type="BIGINT">
90
+ <constraints nullable="false" primaryKey="true" primaryKeyName="test_connections_pkey"/>
91
+ </column>
92
+ <column name="created_at" type="TIMESTAMP WITHOUT TIME ZONE"/>
93
+ <column name="test_message" type="VARCHAR(255)"/>
94
+ </createTable>
95
+ </changeSet>
96
+ <changeSet author="minn (generated)" id="1758377794981-11">
97
+ <addForeignKeyConstraint baseColumnNames="session_id" baseTableName="attendance" constraintName="attendance_session_id_fkey" deferrable="false" initiallyDeferred="false" onDelete="CASCADE" onUpdate="NO ACTION" referencedColumnNames="session_id" referencedTableName="sessions" validate="true"/>
98
+ </changeSet>
99
+ <changeSet author="minn (generated)" id="1758377794981-12">
100
+ <addForeignKeyConstraint baseColumnNames="student_id" baseTableName="attendance" constraintName="attendance_student_id_fkey" deferrable="false" initiallyDeferred="false" onDelete="CASCADE" onUpdate="NO ACTION" referencedColumnNames="student_id" referencedTableName="students" validate="true"/>
101
+ </changeSet>
102
+ <changeSet author="minn (generated)" id="1758377794981-13">
103
+ <addForeignKeyConstraint baseColumnNames="student_id" baseTableName="face_data" constraintName="face_data_student_id_fkey" deferrable="false" initiallyDeferred="false" onDelete="CASCADE" onUpdate="NO ACTION" referencedColumnNames="student_id" referencedTableName="students" validate="true"/>
104
+ </changeSet>
105
+ </databaseChangeLog>
src/test/java/com/cs102/attendance/controller/TestControllerTest.java CHANGED
@@ -2,11 +2,10 @@ package com.cs102.attendance.controller;
2
 
3
  import com.cs102.attendance.entity.TestConnection;
4
  import com.cs102.attendance.repository.TestConnectionRepository;
5
- import com.fasterxml.jackson.databind.ObjectMapper;
6
  import org.junit.jupiter.api.Test;
7
  import org.springframework.beans.factory.annotation.Autowired;
8
  import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
9
- import org.springframework.boot.test.mock.mockito.MockBean;
10
  import org.springframework.http.MediaType;
11
  import org.springframework.test.web.servlet.MockMvc;
12
 
@@ -21,12 +20,9 @@ public class TestControllerTest {
21
  @Autowired
22
  private MockMvc mockMvc;
23
 
24
- @MockBean
25
  private TestConnectionRepository testConnectionRepository;
26
 
27
- @Autowired
28
- private ObjectMapper objectMapper;
29
-
30
  @Test
31
  public void testInsertTestDataWithDefaultMessage() throws Exception {
32
  // Given
 
2
 
3
  import com.cs102.attendance.entity.TestConnection;
4
  import com.cs102.attendance.repository.TestConnectionRepository;
 
5
  import org.junit.jupiter.api.Test;
6
  import org.springframework.beans.factory.annotation.Autowired;
7
  import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
8
+ import org.springframework.test.context.bean.override.mockito.MockitoBean;
9
  import org.springframework.http.MediaType;
10
  import org.springframework.test.web.servlet.MockMvc;
11
 
 
20
  @Autowired
21
  private MockMvc mockMvc;
22
 
23
+ @MockitoBean
24
  private TestConnectionRepository testConnectionRepository;
25
 
 
 
 
26
  @Test
27
  public void testInsertTestDataWithDefaultMessage() throws Exception {
28
  // Given
video-object-detection/.gitignore ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Logs
2
+ logs
3
+ *.log
4
+ npm-debug.log*
5
+ yarn-debug.log*
6
+ yarn-error.log*
7
+ pnpm-debug.log*
8
+ lerna-debug.log*
9
+
10
+ node_modules
11
+ dist
12
+ dist-ssr
13
+ *.local
14
+
15
+ # Editor directories and files
16
+ .vscode/*
17
+ !.vscode/extensions.json
18
+ .idea
19
+ .DS_Store
20
+ *.suo
21
+ *.ntvs*
22
+ *.njsproj
23
+ *.sln
24
+ *.sw?
video-object-detection/index.html ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Transformers.js | Real-time object detection</title>
7
+ <link rel="stylesheet" href="/style.css" />
8
+ </head>
9
+
10
+ <body>
11
+ <h1>
12
+ Real-time object detection w/ gelan-c_all
13
+ </h1>
14
+ <h4>
15
+ Runs locally in your browser, powered by
16
+ <a href="http://github.com/huggingface/transformers.js" target="_blank"
17
+ >🤗 Transformers.js</a
18
+ >
19
+ </h4>
20
+ <div id="container">
21
+ <video id="video" autoplay muted playsinline></video>
22
+ <canvas id="canvas" width="360" height="240"></canvas>
23
+ <div id="overlay"></div>
24
+ </div>
25
+ <div id="controls">
26
+ <div>
27
+ <label>Image size</label>
28
+ (<label id="size-value">128</label>)
29
+ <br />
30
+ <input
31
+ id="size"
32
+ type="range"
33
+ min="64"
34
+ max="256"
35
+ step="32"
36
+ value="128"
37
+ disabled
38
+ />
39
+ </div>
40
+ <div>
41
+ <label>Threshold</label>
42
+ (<label id="threshold-value">0.85</label>)
43
+ <br />
44
+ <input
45
+ id="threshold"
46
+ type="range"
47
+ min="0.01"
48
+ max="1"
49
+ step="0.01"
50
+ value="0.85"
51
+ disabled
52
+ />
53
+ </div>
54
+ <div>
55
+ <label>Scale</label>
56
+ (<label id="scale-value">0.5</label>)
57
+ <br />
58
+ <input
59
+ id="scale"
60
+ type="range"
61
+ min="0.01"
62
+ max="1"
63
+ step="0.01"
64
+ value="0.5"
65
+ disabled
66
+ />
67
+ </div>
68
+ </div>
69
+ <label id="status"></label>
70
+
71
+ <script type="module" src="/main.js"></script>
72
+ </body>
73
+ </html>
video-object-detection/main.js ADDED
@@ -0,0 +1,243 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { AutoModel, AutoProcessor, RawImage } from "@huggingface/transformers";
2
+ import { Client } from "@gradio/client";
3
+
4
+ // Reference the elements that we will need
5
+ const status = document.getElementById("status");
6
+ const container = document.getElementById("container");
7
+ const overlay = document.getElementById("overlay");
8
+ const canvas = document.getElementById("canvas");
9
+ const video = document.getElementById("video");
10
+ const thresholdSlider = document.getElementById("threshold");
11
+ const thresholdLabel = document.getElementById("threshold-value");
12
+ const sizeSlider = document.getElementById("size");
13
+ const sizeLabel = document.getElementById("size-value");
14
+ const scaleSlider = document.getElementById("scale");
15
+ const scaleLabel = document.getElementById("scale-value");
16
+
17
+ function setStreamSize(width, height) {
18
+ video.width = canvas.width = Math.round(width);
19
+ video.height = canvas.height = Math.round(height);
20
+ }
21
+
22
+ status.textContent = "Loading model...";
23
+
24
+ // Load model and processor
25
+ const model_id = "Xenova/gelan-c_all";
26
+ const model = await AutoModel.from_pretrained(model_id);
27
+ const processor = await AutoProcessor.from_pretrained(model_id);
28
+
29
+ // Set up controls
30
+ let scale = 0.5;
31
+ scaleSlider.addEventListener("input", () => {
32
+ scale = Number(scaleSlider.value);
33
+ setStreamSize(video.videoWidth * scale, video.videoHeight * scale);
34
+ scaleLabel.textContent = scale;
35
+ });
36
+ scaleSlider.disabled = false;
37
+
38
+ let threshold = 0.80;
39
+ thresholdSlider.addEventListener("input", () => {
40
+ threshold = Number(thresholdSlider.value);
41
+ thresholdLabel.textContent = threshold.toFixed(2);
42
+ });
43
+ thresholdSlider.disabled = false;
44
+
45
+ let size = 128;
46
+ processor.feature_extractor.size = { shortest_edge: size };
47
+ sizeSlider.addEventListener("input", () => {
48
+ size = Number(sizeSlider.value);
49
+ processor.feature_extractor.size = { shortest_edge: size };
50
+ sizeLabel.textContent = size;
51
+ });
52
+ sizeSlider.disabled = false;
53
+
54
+ status.textContent = "Ready";
55
+
56
+ const COLOURS = [
57
+ "#EF4444", "#4299E1", "#059669", "#FBBF24", "#4B52B1", "#7B3AC2",
58
+ "#ED507A", "#1DD1A1", "#F3873A", "#4B5563", "#DC2626", "#1852B4",
59
+ "#18A35D", "#F59E0B", "#4059BE", "#6027A5", "#D63D60", "#00AC9B",
60
+ "#E64A19", "#272A34",
61
+ ];
62
+
63
+ // Function to send canvas image to Gradio API
64
+ async function sendCanvasImageToAPI(canvas) {
65
+ return new Promise((resolve, reject) => {
66
+ canvas.toBlob(async (blob) => {
67
+ if (!blob) {
68
+ reject("Failed to get Blob from canvas");
69
+ return;
70
+ }
71
+
72
+ const file1 = new File([blob], "detected.png", { type: "image/png" });
73
+
74
+ try {
75
+ // Fetch image from URL and convert to Blob
76
+ const response = await fetch("https://qvnhhditkzzeudppuezf.supabase.co/storage/v1/object/public/post-images/post-images/1752289670997-kevan.jpg");
77
+ const frame2Blob = await response.blob();
78
+ const file2 = new File([frame2Blob], "frame2.jpg", { type: frame2Blob.type });
79
+
80
+ const client = await Client.connect("MiniAiLive/FaceRecognition-LivenessDetection-Demo");
81
+
82
+ // Send canvas image as frame1, URL image as frame2
83
+ const result = await client.predict("/face_compare", {
84
+ frame1: file1,
85
+ frame2: file2,
86
+ });
87
+ resolve(result);
88
+ } catch (err) {
89
+ reject(err);
90
+ }
91
+ }, "image/png");
92
+ });
93
+ }
94
+
95
+ // Variables to store current bounding box and label elements
96
+ let currentBoxElement = null;
97
+ let currentLabelElement = null;
98
+
99
+ let hasSent = false; // Flag to send API request only once per detection
100
+
101
+ var color = "yellow";
102
+ var text = "Verifying..."
103
+ // Render a bounding box and label on the image
104
+ function renderBox([xmin, ymin, xmax, ymax, score, id], [w, h]) {
105
+ if (score < threshold) return; // Skip boxes with low confidence
106
+
107
+
108
+
109
+ // Create bounding box div
110
+ let boxElement = document.createElement("div");
111
+ boxElement.className = "bounding-box";
112
+ Object.assign(boxElement.style, {
113
+ borderColor: color,
114
+ left: (100 * xmin) / w + "%",
115
+ top: (100 * ymin) / h + "%",
116
+ width: (100 * (xmax - xmin)) / w + "%",
117
+ height: (100 * (ymax - ymin)) / h + "%",
118
+ });
119
+
120
+ // Create label span
121
+ let labelElement = document.createElement("span");
122
+ labelElement.textContent = text;
123
+ labelElement.className = "bounding-box-label";
124
+ labelElement.style.backgroundColor = color;
125
+ labelElement.style.color = "black";
126
+
127
+ boxElement.appendChild(labelElement);
128
+ overlay.appendChild(boxElement);
129
+
130
+ // Store references globally for updating after API response
131
+ currentBoxElement = boxElement;
132
+ currentLabelElement = labelElement;
133
+
134
+ // Send image to the API on first detection
135
+ if (!hasSent) {
136
+ hasSent = true;
137
+ sendCanvasImageToAPI(canvas)
138
+ .then((result) => {
139
+ console.log("API result:", result);
140
+
141
+ const str = result.data[0]; // Access first element in array
142
+ const startIndex = str.indexOf("Similarity");
143
+ const slicedStr = startIndex !== -1 ? str.slice(startIndex) : "";
144
+ const decimalMatch = slicedStr.match(/<td>(0?\.\d+)<\/td>/);
145
+ const decimalNumber = decimalMatch ? parseFloat(decimalMatch[1]) : null;
146
+ console.log("Similarity decimal:", decimalNumber);
147
+
148
+ if (decimalNumber !== null && decimalNumber > 0.80) {
149
+ // --- MODIFICATION START ---
150
+ // Instead of removing and recreating the box, just update its style.
151
+ color = "green";
152
+ text = "Verified Successfully! " + decimalNumber;
153
+ currentLabelElement.style.color = "black"; // Or "white" if it looks better
154
+
155
+ console.log("Updated box to green");
156
+ // --- MODIFICATION END ---
157
+
158
+ } else if (decimalNumber !== null) {
159
+ // Not identified case - update existing box and label to red
160
+ color = "red";
161
+ text = "Failed to verify"
162
+ currentLabelElement.style.color = "black"; // Or "white" if it looks better
163
+
164
+ console.log("Updated box to red");
165
+ } else {
166
+ // Fallback yellow verifying state
167
+ currentLabelElement.textContent = "Verifying...";
168
+ currentLabelElement.style.backgroundColor = "yellow";
169
+ currentLabelElement.style.color = "black";
170
+ currentBoxElement.style.borderColor = "yellow";
171
+
172
+ console.log("Fallback to yellow");
173
+ }
174
+ })
175
+ .catch((err) => {
176
+ console.error("Error sending image to API:", err);
177
+ // On error, fallback to yellow verifying
178
+ if (currentLabelElement && currentBoxElement) {
179
+ currentLabelElement.textContent = "Verifying...";
180
+ currentLabelElement.style.backgroundColor = "yellow";
181
+ currentLabelElement.style.color = "black";
182
+ currentBoxElement.style.borderColor = "yellow";
183
+ }
184
+ });
185
+ }
186
+ }
187
+
188
+ let isProcessing = false;
189
+ let previousTime;
190
+ const context = canvas.getContext("2d", { willReadFrequently: true });
191
+
192
+ function updateCanvas() {
193
+ const { width, height } = canvas;
194
+ context.drawImage(video, 0, 0, width, height);
195
+
196
+ if (!isProcessing) {
197
+ isProcessing = true;
198
+ (async function () {
199
+ const pixelData = context.getImageData(0, 0, width, height).data;
200
+ const image = new RawImage(pixelData, width, height, 4);
201
+
202
+ const inputs = await processor(image);
203
+ const { outputs } = await model(inputs);
204
+
205
+ overlay.innerHTML = "";
206
+
207
+ const sizes = inputs.reshaped_input_sizes[0].reverse();
208
+ outputs.tolist().forEach((x) => renderBox(x, sizes));
209
+
210
+ if (previousTime !== undefined) {
211
+ const fps = 1000 / (performance.now() - previousTime);
212
+ status.textContent = `FPS: ${fps.toFixed(2)}`;
213
+ }
214
+ previousTime = performance.now();
215
+ isProcessing = false;
216
+ })();
217
+ }
218
+
219
+ window.requestAnimationFrame(updateCanvas);
220
+ }
221
+
222
+ // Start the video stream
223
+ navigator.mediaDevices
224
+ .getUserMedia({ video: true })
225
+ .then((stream) => {
226
+ video.srcObject = stream;
227
+ video.play();
228
+
229
+ const videoTrack = stream.getVideoTracks()[0];
230
+ const { width, height } = videoTrack.getSettings();
231
+
232
+ setStreamSize(width * scale, height * scale);
233
+
234
+ const ar = width / height;
235
+ const [cw, ch] = ar > 720 / 405 ? [720, 720 / ar] : [405 * ar, 405];
236
+ container.style.width = `${cw}px`;
237
+ container.style.height = `${ch}px`;
238
+
239
+ window.requestAnimationFrame(updateCanvas);
240
+ })
241
+ .catch((error) => {
242
+ alert(error);
243
+ });
video-object-detection/package-lock.json ADDED
@@ -0,0 +1,2694 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "video-object-detection",
3
+ "version": "0.0.0",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "video-object-detection",
9
+ "version": "0.0.0",
10
+ "dependencies": {
11
+ "@huggingface/transformers": "3.7.1"
12
+ },
13
+ "devDependencies": {
14
+ "@gradio/client": "^1.18.0",
15
+ "vite": "^6.0.5"
16
+ }
17
+ },
18
+ "node_modules/@bundled-es-modules/cookie": {
19
+ "version": "2.0.1",
20
+ "resolved": "https://registry.npmjs.org/@bundled-es-modules/cookie/-/cookie-2.0.1.tgz",
21
+ "integrity": "sha512-8o+5fRPLNbjbdGRRmJj3h6Hh1AQJf2dk3qQ/5ZFb+PXkRNiSoMGGUKlsgLfrxneb72axVJyIYji64E2+nNfYyw==",
22
+ "dev": true,
23
+ "license": "ISC",
24
+ "dependencies": {
25
+ "cookie": "^0.7.2"
26
+ }
27
+ },
28
+ "node_modules/@bundled-es-modules/statuses": {
29
+ "version": "1.0.1",
30
+ "resolved": "https://registry.npmjs.org/@bundled-es-modules/statuses/-/statuses-1.0.1.tgz",
31
+ "integrity": "sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==",
32
+ "dev": true,
33
+ "license": "ISC",
34
+ "dependencies": {
35
+ "statuses": "^2.0.1"
36
+ }
37
+ },
38
+ "node_modules/@emnapi/runtime": {
39
+ "version": "1.4.3",
40
+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz",
41
+ "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==",
42
+ "license": "MIT",
43
+ "optional": true,
44
+ "dependencies": {
45
+ "tslib": "^2.4.0"
46
+ }
47
+ },
48
+ "node_modules/@esbuild/aix-ppc64": {
49
+ "version": "0.25.0",
50
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz",
51
+ "integrity": "sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==",
52
+ "cpu": [
53
+ "ppc64"
54
+ ],
55
+ "dev": true,
56
+ "optional": true,
57
+ "os": [
58
+ "aix"
59
+ ],
60
+ "engines": {
61
+ "node": ">=18"
62
+ }
63
+ },
64
+ "node_modules/@esbuild/android-arm": {
65
+ "version": "0.25.0",
66
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.0.tgz",
67
+ "integrity": "sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==",
68
+ "cpu": [
69
+ "arm"
70
+ ],
71
+ "dev": true,
72
+ "optional": true,
73
+ "os": [
74
+ "android"
75
+ ],
76
+ "engines": {
77
+ "node": ">=18"
78
+ }
79
+ },
80
+ "node_modules/@esbuild/android-arm64": {
81
+ "version": "0.25.0",
82
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz",
83
+ "integrity": "sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==",
84
+ "cpu": [
85
+ "arm64"
86
+ ],
87
+ "dev": true,
88
+ "optional": true,
89
+ "os": [
90
+ "android"
91
+ ],
92
+ "engines": {
93
+ "node": ">=18"
94
+ }
95
+ },
96
+ "node_modules/@esbuild/android-x64": {
97
+ "version": "0.25.0",
98
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.0.tgz",
99
+ "integrity": "sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==",
100
+ "cpu": [
101
+ "x64"
102
+ ],
103
+ "dev": true,
104
+ "optional": true,
105
+ "os": [
106
+ "android"
107
+ ],
108
+ "engines": {
109
+ "node": ">=18"
110
+ }
111
+ },
112
+ "node_modules/@esbuild/darwin-arm64": {
113
+ "version": "0.25.0",
114
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz",
115
+ "integrity": "sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==",
116
+ "cpu": [
117
+ "arm64"
118
+ ],
119
+ "dev": true,
120
+ "optional": true,
121
+ "os": [
122
+ "darwin"
123
+ ],
124
+ "engines": {
125
+ "node": ">=18"
126
+ }
127
+ },
128
+ "node_modules/@esbuild/darwin-x64": {
129
+ "version": "0.25.0",
130
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz",
131
+ "integrity": "sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==",
132
+ "cpu": [
133
+ "x64"
134
+ ],
135
+ "dev": true,
136
+ "optional": true,
137
+ "os": [
138
+ "darwin"
139
+ ],
140
+ "engines": {
141
+ "node": ">=18"
142
+ }
143
+ },
144
+ "node_modules/@esbuild/freebsd-arm64": {
145
+ "version": "0.25.0",
146
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz",
147
+ "integrity": "sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==",
148
+ "cpu": [
149
+ "arm64"
150
+ ],
151
+ "dev": true,
152
+ "optional": true,
153
+ "os": [
154
+ "freebsd"
155
+ ],
156
+ "engines": {
157
+ "node": ">=18"
158
+ }
159
+ },
160
+ "node_modules/@esbuild/freebsd-x64": {
161
+ "version": "0.25.0",
162
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz",
163
+ "integrity": "sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==",
164
+ "cpu": [
165
+ "x64"
166
+ ],
167
+ "dev": true,
168
+ "optional": true,
169
+ "os": [
170
+ "freebsd"
171
+ ],
172
+ "engines": {
173
+ "node": ">=18"
174
+ }
175
+ },
176
+ "node_modules/@esbuild/linux-arm": {
177
+ "version": "0.25.0",
178
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz",
179
+ "integrity": "sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==",
180
+ "cpu": [
181
+ "arm"
182
+ ],
183
+ "dev": true,
184
+ "optional": true,
185
+ "os": [
186
+ "linux"
187
+ ],
188
+ "engines": {
189
+ "node": ">=18"
190
+ }
191
+ },
192
+ "node_modules/@esbuild/linux-arm64": {
193
+ "version": "0.25.0",
194
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz",
195
+ "integrity": "sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==",
196
+ "cpu": [
197
+ "arm64"
198
+ ],
199
+ "dev": true,
200
+ "optional": true,
201
+ "os": [
202
+ "linux"
203
+ ],
204
+ "engines": {
205
+ "node": ">=18"
206
+ }
207
+ },
208
+ "node_modules/@esbuild/linux-ia32": {
209
+ "version": "0.25.0",
210
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz",
211
+ "integrity": "sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==",
212
+ "cpu": [
213
+ "ia32"
214
+ ],
215
+ "dev": true,
216
+ "optional": true,
217
+ "os": [
218
+ "linux"
219
+ ],
220
+ "engines": {
221
+ "node": ">=18"
222
+ }
223
+ },
224
+ "node_modules/@esbuild/linux-loong64": {
225
+ "version": "0.25.0",
226
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz",
227
+ "integrity": "sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==",
228
+ "cpu": [
229
+ "loong64"
230
+ ],
231
+ "dev": true,
232
+ "optional": true,
233
+ "os": [
234
+ "linux"
235
+ ],
236
+ "engines": {
237
+ "node": ">=18"
238
+ }
239
+ },
240
+ "node_modules/@esbuild/linux-mips64el": {
241
+ "version": "0.25.0",
242
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz",
243
+ "integrity": "sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==",
244
+ "cpu": [
245
+ "mips64el"
246
+ ],
247
+ "dev": true,
248
+ "optional": true,
249
+ "os": [
250
+ "linux"
251
+ ],
252
+ "engines": {
253
+ "node": ">=18"
254
+ }
255
+ },
256
+ "node_modules/@esbuild/linux-ppc64": {
257
+ "version": "0.25.0",
258
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz",
259
+ "integrity": "sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==",
260
+ "cpu": [
261
+ "ppc64"
262
+ ],
263
+ "dev": true,
264
+ "optional": true,
265
+ "os": [
266
+ "linux"
267
+ ],
268
+ "engines": {
269
+ "node": ">=18"
270
+ }
271
+ },
272
+ "node_modules/@esbuild/linux-riscv64": {
273
+ "version": "0.25.0",
274
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz",
275
+ "integrity": "sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==",
276
+ "cpu": [
277
+ "riscv64"
278
+ ],
279
+ "dev": true,
280
+ "optional": true,
281
+ "os": [
282
+ "linux"
283
+ ],
284
+ "engines": {
285
+ "node": ">=18"
286
+ }
287
+ },
288
+ "node_modules/@esbuild/linux-s390x": {
289
+ "version": "0.25.0",
290
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz",
291
+ "integrity": "sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==",
292
+ "cpu": [
293
+ "s390x"
294
+ ],
295
+ "dev": true,
296
+ "optional": true,
297
+ "os": [
298
+ "linux"
299
+ ],
300
+ "engines": {
301
+ "node": ">=18"
302
+ }
303
+ },
304
+ "node_modules/@esbuild/linux-x64": {
305
+ "version": "0.25.0",
306
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz",
307
+ "integrity": "sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==",
308
+ "cpu": [
309
+ "x64"
310
+ ],
311
+ "dev": true,
312
+ "optional": true,
313
+ "os": [
314
+ "linux"
315
+ ],
316
+ "engines": {
317
+ "node": ">=18"
318
+ }
319
+ },
320
+ "node_modules/@esbuild/netbsd-arm64": {
321
+ "version": "0.25.0",
322
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz",
323
+ "integrity": "sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==",
324
+ "cpu": [
325
+ "arm64"
326
+ ],
327
+ "dev": true,
328
+ "optional": true,
329
+ "os": [
330
+ "netbsd"
331
+ ],
332
+ "engines": {
333
+ "node": ">=18"
334
+ }
335
+ },
336
+ "node_modules/@esbuild/netbsd-x64": {
337
+ "version": "0.25.0",
338
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz",
339
+ "integrity": "sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==",
340
+ "cpu": [
341
+ "x64"
342
+ ],
343
+ "dev": true,
344
+ "optional": true,
345
+ "os": [
346
+ "netbsd"
347
+ ],
348
+ "engines": {
349
+ "node": ">=18"
350
+ }
351
+ },
352
+ "node_modules/@esbuild/openbsd-arm64": {
353
+ "version": "0.25.0",
354
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz",
355
+ "integrity": "sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==",
356
+ "cpu": [
357
+ "arm64"
358
+ ],
359
+ "dev": true,
360
+ "optional": true,
361
+ "os": [
362
+ "openbsd"
363
+ ],
364
+ "engines": {
365
+ "node": ">=18"
366
+ }
367
+ },
368
+ "node_modules/@esbuild/openbsd-x64": {
369
+ "version": "0.25.0",
370
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz",
371
+ "integrity": "sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==",
372
+ "cpu": [
373
+ "x64"
374
+ ],
375
+ "dev": true,
376
+ "optional": true,
377
+ "os": [
378
+ "openbsd"
379
+ ],
380
+ "engines": {
381
+ "node": ">=18"
382
+ }
383
+ },
384
+ "node_modules/@esbuild/sunos-x64": {
385
+ "version": "0.25.0",
386
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz",
387
+ "integrity": "sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==",
388
+ "cpu": [
389
+ "x64"
390
+ ],
391
+ "dev": true,
392
+ "optional": true,
393
+ "os": [
394
+ "sunos"
395
+ ],
396
+ "engines": {
397
+ "node": ">=18"
398
+ }
399
+ },
400
+ "node_modules/@esbuild/win32-arm64": {
401
+ "version": "0.25.0",
402
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz",
403
+ "integrity": "sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==",
404
+ "cpu": [
405
+ "arm64"
406
+ ],
407
+ "dev": true,
408
+ "optional": true,
409
+ "os": [
410
+ "win32"
411
+ ],
412
+ "engines": {
413
+ "node": ">=18"
414
+ }
415
+ },
416
+ "node_modules/@esbuild/win32-ia32": {
417
+ "version": "0.25.0",
418
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz",
419
+ "integrity": "sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==",
420
+ "cpu": [
421
+ "ia32"
422
+ ],
423
+ "dev": true,
424
+ "optional": true,
425
+ "os": [
426
+ "win32"
427
+ ],
428
+ "engines": {
429
+ "node": ">=18"
430
+ }
431
+ },
432
+ "node_modules/@esbuild/win32-x64": {
433
+ "version": "0.25.0",
434
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz",
435
+ "integrity": "sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==",
436
+ "cpu": [
437
+ "x64"
438
+ ],
439
+ "dev": true,
440
+ "optional": true,
441
+ "os": [
442
+ "win32"
443
+ ],
444
+ "engines": {
445
+ "node": ">=18"
446
+ }
447
+ },
448
+ "node_modules/@gradio/client": {
449
+ "version": "1.18.0",
450
+ "resolved": "https://registry.npmjs.org/@gradio/client/-/client-1.18.0.tgz",
451
+ "integrity": "sha512-90dz+VLl4iEy1V5ajZ62G8X752cYll3tVmeZLrGmsSKpG1rNcE1bFeNSFEneIocvRprdq3BfDsdrxiTFU5aTTQ==",
452
+ "dev": true,
453
+ "license": "ISC",
454
+ "dependencies": {
455
+ "@types/eventsource": "^1.1.15",
456
+ "bufferutil": "^4.0.7",
457
+ "eventsource": "^2.0.2",
458
+ "fetch-event-stream": "^0.1.5",
459
+ "msw": "^2.2.1",
460
+ "semiver": "^1.1.0",
461
+ "textlinestream": "^1.1.1",
462
+ "typescript": "^5.0.0",
463
+ "ws": "^8.13.0"
464
+ },
465
+ "engines": {
466
+ "node": ">=18.0.0"
467
+ }
468
+ },
469
+ "node_modules/@huggingface/jinja": {
470
+ "version": "0.5.1",
471
+ "resolved": "https://registry.npmjs.org/@huggingface/jinja/-/jinja-0.5.1.tgz",
472
+ "integrity": "sha512-yUZLld4lrM9iFxHCwFQ7D1HW2MWMwSbeB7WzWqFYDWK+rEb+WldkLdAJxUPOmgICMHZLzZGVcVjFh3w/YGubng==",
473
+ "license": "MIT",
474
+ "engines": {
475
+ "node": ">=18"
476
+ }
477
+ },
478
+ "node_modules/@huggingface/transformers": {
479
+ "version": "3.7.1",
480
+ "resolved": "https://registry.npmjs.org/@huggingface/transformers/-/transformers-3.7.1.tgz",
481
+ "integrity": "sha512-z14yXkm7G/FKGM8Y24NLDbrSP/kbn62byKNYF04pZ6pidTVpucqRSderQgpfQWoMVrhOKmrZs29G3yQ1R28sIA==",
482
+ "license": "Apache-2.0",
483
+ "dependencies": {
484
+ "@huggingface/jinja": "^0.5.1",
485
+ "onnxruntime-node": "1.21.0",
486
+ "onnxruntime-web": "1.22.0-dev.20250409-89f8206ba4",
487
+ "sharp": "^0.34.1"
488
+ }
489
+ },
490
+ "node_modules/@img/sharp-darwin-arm64": {
491
+ "version": "0.34.1",
492
+ "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.1.tgz",
493
+ "integrity": "sha512-pn44xgBtgpEbZsu+lWf2KNb6OAf70X68k+yk69Ic2Xz11zHR/w24/U49XT7AeRwJ0Px+mhALhU5LPci1Aymk7A==",
494
+ "cpu": [
495
+ "arm64"
496
+ ],
497
+ "license": "Apache-2.0",
498
+ "optional": true,
499
+ "os": [
500
+ "darwin"
501
+ ],
502
+ "engines": {
503
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
504
+ },
505
+ "funding": {
506
+ "url": "https://opencollective.com/libvips"
507
+ },
508
+ "optionalDependencies": {
509
+ "@img/sharp-libvips-darwin-arm64": "1.1.0"
510
+ }
511
+ },
512
+ "node_modules/@img/sharp-darwin-x64": {
513
+ "version": "0.34.1",
514
+ "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.1.tgz",
515
+ "integrity": "sha512-VfuYgG2r8BpYiOUN+BfYeFo69nP/MIwAtSJ7/Zpxc5QF3KS22z8Pvg3FkrSFJBPNQ7mmcUcYQFBmEQp7eu1F8Q==",
516
+ "cpu": [
517
+ "x64"
518
+ ],
519
+ "license": "Apache-2.0",
520
+ "optional": true,
521
+ "os": [
522
+ "darwin"
523
+ ],
524
+ "engines": {
525
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
526
+ },
527
+ "funding": {
528
+ "url": "https://opencollective.com/libvips"
529
+ },
530
+ "optionalDependencies": {
531
+ "@img/sharp-libvips-darwin-x64": "1.1.0"
532
+ }
533
+ },
534
+ "node_modules/@img/sharp-libvips-darwin-arm64": {
535
+ "version": "1.1.0",
536
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.1.0.tgz",
537
+ "integrity": "sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==",
538
+ "cpu": [
539
+ "arm64"
540
+ ],
541
+ "license": "LGPL-3.0-or-later",
542
+ "optional": true,
543
+ "os": [
544
+ "darwin"
545
+ ],
546
+ "funding": {
547
+ "url": "https://opencollective.com/libvips"
548
+ }
549
+ },
550
+ "node_modules/@img/sharp-libvips-darwin-x64": {
551
+ "version": "1.1.0",
552
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.1.0.tgz",
553
+ "integrity": "sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==",
554
+ "cpu": [
555
+ "x64"
556
+ ],
557
+ "license": "LGPL-3.0-or-later",
558
+ "optional": true,
559
+ "os": [
560
+ "darwin"
561
+ ],
562
+ "funding": {
563
+ "url": "https://opencollective.com/libvips"
564
+ }
565
+ },
566
+ "node_modules/@img/sharp-libvips-linux-arm": {
567
+ "version": "1.1.0",
568
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.1.0.tgz",
569
+ "integrity": "sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==",
570
+ "cpu": [
571
+ "arm"
572
+ ],
573
+ "license": "LGPL-3.0-or-later",
574
+ "optional": true,
575
+ "os": [
576
+ "linux"
577
+ ],
578
+ "funding": {
579
+ "url": "https://opencollective.com/libvips"
580
+ }
581
+ },
582
+ "node_modules/@img/sharp-libvips-linux-arm64": {
583
+ "version": "1.1.0",
584
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.1.0.tgz",
585
+ "integrity": "sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==",
586
+ "cpu": [
587
+ "arm64"
588
+ ],
589
+ "license": "LGPL-3.0-or-later",
590
+ "optional": true,
591
+ "os": [
592
+ "linux"
593
+ ],
594
+ "funding": {
595
+ "url": "https://opencollective.com/libvips"
596
+ }
597
+ },
598
+ "node_modules/@img/sharp-libvips-linux-ppc64": {
599
+ "version": "1.1.0",
600
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.1.0.tgz",
601
+ "integrity": "sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==",
602
+ "cpu": [
603
+ "ppc64"
604
+ ],
605
+ "license": "LGPL-3.0-or-later",
606
+ "optional": true,
607
+ "os": [
608
+ "linux"
609
+ ],
610
+ "funding": {
611
+ "url": "https://opencollective.com/libvips"
612
+ }
613
+ },
614
+ "node_modules/@img/sharp-libvips-linux-s390x": {
615
+ "version": "1.1.0",
616
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.1.0.tgz",
617
+ "integrity": "sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==",
618
+ "cpu": [
619
+ "s390x"
620
+ ],
621
+ "license": "LGPL-3.0-or-later",
622
+ "optional": true,
623
+ "os": [
624
+ "linux"
625
+ ],
626
+ "funding": {
627
+ "url": "https://opencollective.com/libvips"
628
+ }
629
+ },
630
+ "node_modules/@img/sharp-libvips-linux-x64": {
631
+ "version": "1.1.0",
632
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.1.0.tgz",
633
+ "integrity": "sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==",
634
+ "cpu": [
635
+ "x64"
636
+ ],
637
+ "license": "LGPL-3.0-or-later",
638
+ "optional": true,
639
+ "os": [
640
+ "linux"
641
+ ],
642
+ "funding": {
643
+ "url": "https://opencollective.com/libvips"
644
+ }
645
+ },
646
+ "node_modules/@img/sharp-libvips-linuxmusl-arm64": {
647
+ "version": "1.1.0",
648
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.1.0.tgz",
649
+ "integrity": "sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==",
650
+ "cpu": [
651
+ "arm64"
652
+ ],
653
+ "license": "LGPL-3.0-or-later",
654
+ "optional": true,
655
+ "os": [
656
+ "linux"
657
+ ],
658
+ "funding": {
659
+ "url": "https://opencollective.com/libvips"
660
+ }
661
+ },
662
+ "node_modules/@img/sharp-libvips-linuxmusl-x64": {
663
+ "version": "1.1.0",
664
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.1.0.tgz",
665
+ "integrity": "sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==",
666
+ "cpu": [
667
+ "x64"
668
+ ],
669
+ "license": "LGPL-3.0-or-later",
670
+ "optional": true,
671
+ "os": [
672
+ "linux"
673
+ ],
674
+ "funding": {
675
+ "url": "https://opencollective.com/libvips"
676
+ }
677
+ },
678
+ "node_modules/@img/sharp-linux-arm": {
679
+ "version": "0.34.1",
680
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.1.tgz",
681
+ "integrity": "sha512-anKiszvACti2sGy9CirTlNyk7BjjZPiML1jt2ZkTdcvpLU1YH6CXwRAZCA2UmRXnhiIftXQ7+Oh62Ji25W72jA==",
682
+ "cpu": [
683
+ "arm"
684
+ ],
685
+ "license": "Apache-2.0",
686
+ "optional": true,
687
+ "os": [
688
+ "linux"
689
+ ],
690
+ "engines": {
691
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
692
+ },
693
+ "funding": {
694
+ "url": "https://opencollective.com/libvips"
695
+ },
696
+ "optionalDependencies": {
697
+ "@img/sharp-libvips-linux-arm": "1.1.0"
698
+ }
699
+ },
700
+ "node_modules/@img/sharp-linux-arm64": {
701
+ "version": "0.34.1",
702
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.1.tgz",
703
+ "integrity": "sha512-kX2c+vbvaXC6vly1RDf/IWNXxrlxLNpBVWkdpRq5Ka7OOKj6nr66etKy2IENf6FtOgklkg9ZdGpEu9kwdlcwOQ==",
704
+ "cpu": [
705
+ "arm64"
706
+ ],
707
+ "license": "Apache-2.0",
708
+ "optional": true,
709
+ "os": [
710
+ "linux"
711
+ ],
712
+ "engines": {
713
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
714
+ },
715
+ "funding": {
716
+ "url": "https://opencollective.com/libvips"
717
+ },
718
+ "optionalDependencies": {
719
+ "@img/sharp-libvips-linux-arm64": "1.1.0"
720
+ }
721
+ },
722
+ "node_modules/@img/sharp-linux-s390x": {
723
+ "version": "0.34.1",
724
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.1.tgz",
725
+ "integrity": "sha512-7s0KX2tI9mZI2buRipKIw2X1ufdTeaRgwmRabt5bi9chYfhur+/C1OXg3TKg/eag1W+6CCWLVmSauV1owmRPxA==",
726
+ "cpu": [
727
+ "s390x"
728
+ ],
729
+ "license": "Apache-2.0",
730
+ "optional": true,
731
+ "os": [
732
+ "linux"
733
+ ],
734
+ "engines": {
735
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
736
+ },
737
+ "funding": {
738
+ "url": "https://opencollective.com/libvips"
739
+ },
740
+ "optionalDependencies": {
741
+ "@img/sharp-libvips-linux-s390x": "1.1.0"
742
+ }
743
+ },
744
+ "node_modules/@img/sharp-linux-x64": {
745
+ "version": "0.34.1",
746
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.1.tgz",
747
+ "integrity": "sha512-wExv7SH9nmoBW3Wr2gvQopX1k8q2g5V5Iag8Zk6AVENsjwd+3adjwxtp3Dcu2QhOXr8W9NusBU6XcQUohBZ5MA==",
748
+ "cpu": [
749
+ "x64"
750
+ ],
751
+ "license": "Apache-2.0",
752
+ "optional": true,
753
+ "os": [
754
+ "linux"
755
+ ],
756
+ "engines": {
757
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
758
+ },
759
+ "funding": {
760
+ "url": "https://opencollective.com/libvips"
761
+ },
762
+ "optionalDependencies": {
763
+ "@img/sharp-libvips-linux-x64": "1.1.0"
764
+ }
765
+ },
766
+ "node_modules/@img/sharp-linuxmusl-arm64": {
767
+ "version": "0.34.1",
768
+ "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.1.tgz",
769
+ "integrity": "sha512-DfvyxzHxw4WGdPiTF0SOHnm11Xv4aQexvqhRDAoD00MzHekAj9a/jADXeXYCDFH/DzYruwHbXU7uz+H+nWmSOQ==",
770
+ "cpu": [
771
+ "arm64"
772
+ ],
773
+ "license": "Apache-2.0",
774
+ "optional": true,
775
+ "os": [
776
+ "linux"
777
+ ],
778
+ "engines": {
779
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
780
+ },
781
+ "funding": {
782
+ "url": "https://opencollective.com/libvips"
783
+ },
784
+ "optionalDependencies": {
785
+ "@img/sharp-libvips-linuxmusl-arm64": "1.1.0"
786
+ }
787
+ },
788
+ "node_modules/@img/sharp-linuxmusl-x64": {
789
+ "version": "0.34.1",
790
+ "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.1.tgz",
791
+ "integrity": "sha512-pax/kTR407vNb9qaSIiWVnQplPcGU8LRIJpDT5o8PdAx5aAA7AS3X9PS8Isw1/WfqgQorPotjrZL3Pqh6C5EBg==",
792
+ "cpu": [
793
+ "x64"
794
+ ],
795
+ "license": "Apache-2.0",
796
+ "optional": true,
797
+ "os": [
798
+ "linux"
799
+ ],
800
+ "engines": {
801
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
802
+ },
803
+ "funding": {
804
+ "url": "https://opencollective.com/libvips"
805
+ },
806
+ "optionalDependencies": {
807
+ "@img/sharp-libvips-linuxmusl-x64": "1.1.0"
808
+ }
809
+ },
810
+ "node_modules/@img/sharp-wasm32": {
811
+ "version": "0.34.1",
812
+ "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.1.tgz",
813
+ "integrity": "sha512-YDybQnYrLQfEpzGOQe7OKcyLUCML4YOXl428gOOzBgN6Gw0rv8dpsJ7PqTHxBnXnwXr8S1mYFSLSa727tpz0xg==",
814
+ "cpu": [
815
+ "wasm32"
816
+ ],
817
+ "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT",
818
+ "optional": true,
819
+ "dependencies": {
820
+ "@emnapi/runtime": "^1.4.0"
821
+ },
822
+ "engines": {
823
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
824
+ },
825
+ "funding": {
826
+ "url": "https://opencollective.com/libvips"
827
+ }
828
+ },
829
+ "node_modules/@img/sharp-win32-ia32": {
830
+ "version": "0.34.1",
831
+ "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.1.tgz",
832
+ "integrity": "sha512-WKf/NAZITnonBf3U1LfdjoMgNO5JYRSlhovhRhMxXVdvWYveM4kM3L8m35onYIdh75cOMCo1BexgVQcCDzyoWw==",
833
+ "cpu": [
834
+ "ia32"
835
+ ],
836
+ "license": "Apache-2.0 AND LGPL-3.0-or-later",
837
+ "optional": true,
838
+ "os": [
839
+ "win32"
840
+ ],
841
+ "engines": {
842
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
843
+ },
844
+ "funding": {
845
+ "url": "https://opencollective.com/libvips"
846
+ }
847
+ },
848
+ "node_modules/@img/sharp-win32-x64": {
849
+ "version": "0.34.1",
850
+ "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.1.tgz",
851
+ "integrity": "sha512-hw1iIAHpNE8q3uMIRCgGOeDoz9KtFNarFLQclLxr/LK1VBkj8nby18RjFvr6aP7USRYAjTZW6yisnBWMX571Tw==",
852
+ "cpu": [
853
+ "x64"
854
+ ],
855
+ "license": "Apache-2.0 AND LGPL-3.0-or-later",
856
+ "optional": true,
857
+ "os": [
858
+ "win32"
859
+ ],
860
+ "engines": {
861
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
862
+ },
863
+ "funding": {
864
+ "url": "https://opencollective.com/libvips"
865
+ }
866
+ },
867
+ "node_modules/@inquirer/confirm": {
868
+ "version": "5.1.16",
869
+ "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.16.tgz",
870
+ "integrity": "sha512-j1a5VstaK5KQy8Mu8cHmuQvN1Zc62TbLhjJxwHvKPPKEoowSF6h/0UdOpA9DNdWZ+9Inq73+puRq1df6OJ8Sag==",
871
+ "dev": true,
872
+ "license": "MIT",
873
+ "dependencies": {
874
+ "@inquirer/core": "^10.2.0",
875
+ "@inquirer/type": "^3.0.8"
876
+ },
877
+ "engines": {
878
+ "node": ">=18"
879
+ },
880
+ "peerDependencies": {
881
+ "@types/node": ">=18"
882
+ },
883
+ "peerDependenciesMeta": {
884
+ "@types/node": {
885
+ "optional": true
886
+ }
887
+ }
888
+ },
889
+ "node_modules/@inquirer/core": {
890
+ "version": "10.2.0",
891
+ "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.2.0.tgz",
892
+ "integrity": "sha512-NyDSjPqhSvpZEMZrLCYUquWNl+XC/moEcVFqS55IEYIYsY0a1cUCevSqk7ctOlnm/RaSBU5psFryNlxcmGrjaA==",
893
+ "dev": true,
894
+ "license": "MIT",
895
+ "dependencies": {
896
+ "@inquirer/figures": "^1.0.13",
897
+ "@inquirer/type": "^3.0.8",
898
+ "ansi-escapes": "^4.3.2",
899
+ "cli-width": "^4.1.0",
900
+ "mute-stream": "^2.0.0",
901
+ "signal-exit": "^4.1.0",
902
+ "wrap-ansi": "^6.2.0",
903
+ "yoctocolors-cjs": "^2.1.2"
904
+ },
905
+ "engines": {
906
+ "node": ">=18"
907
+ },
908
+ "peerDependencies": {
909
+ "@types/node": ">=18"
910
+ },
911
+ "peerDependenciesMeta": {
912
+ "@types/node": {
913
+ "optional": true
914
+ }
915
+ }
916
+ },
917
+ "node_modules/@inquirer/figures": {
918
+ "version": "1.0.13",
919
+ "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.13.tgz",
920
+ "integrity": "sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==",
921
+ "dev": true,
922
+ "license": "MIT",
923
+ "engines": {
924
+ "node": ">=18"
925
+ }
926
+ },
927
+ "node_modules/@inquirer/type": {
928
+ "version": "3.0.8",
929
+ "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.8.tgz",
930
+ "integrity": "sha512-lg9Whz8onIHRthWaN1Q9EGLa/0LFJjyM8mEUbL1eTi6yMGvBf8gvyDLtxSXztQsxMvhxxNpJYrwa1YHdq+w4Jw==",
931
+ "dev": true,
932
+ "license": "MIT",
933
+ "engines": {
934
+ "node": ">=18"
935
+ },
936
+ "peerDependencies": {
937
+ "@types/node": ">=18"
938
+ },
939
+ "peerDependenciesMeta": {
940
+ "@types/node": {
941
+ "optional": true
942
+ }
943
+ }
944
+ },
945
+ "node_modules/@isaacs/fs-minipass": {
946
+ "version": "4.0.1",
947
+ "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz",
948
+ "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==",
949
+ "license": "ISC",
950
+ "dependencies": {
951
+ "minipass": "^7.0.4"
952
+ },
953
+ "engines": {
954
+ "node": ">=18.0.0"
955
+ }
956
+ },
957
+ "node_modules/@mswjs/interceptors": {
958
+ "version": "0.39.6",
959
+ "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.39.6.tgz",
960
+ "integrity": "sha512-bndDP83naYYkfayr/qhBHMhk0YGwS1iv6vaEGcr0SQbO0IZtbOPqjKjds/WcG+bJA+1T5vCx6kprKOzn5Bg+Vw==",
961
+ "dev": true,
962
+ "license": "MIT",
963
+ "dependencies": {
964
+ "@open-draft/deferred-promise": "^2.2.0",
965
+ "@open-draft/logger": "^0.3.0",
966
+ "@open-draft/until": "^2.0.0",
967
+ "is-node-process": "^1.2.0",
968
+ "outvariant": "^1.4.3",
969
+ "strict-event-emitter": "^0.5.1"
970
+ },
971
+ "engines": {
972
+ "node": ">=18"
973
+ }
974
+ },
975
+ "node_modules/@open-draft/deferred-promise": {
976
+ "version": "2.2.0",
977
+ "resolved": "https://registry.npmjs.org/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz",
978
+ "integrity": "sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==",
979
+ "dev": true,
980
+ "license": "MIT"
981
+ },
982
+ "node_modules/@open-draft/logger": {
983
+ "version": "0.3.0",
984
+ "resolved": "https://registry.npmjs.org/@open-draft/logger/-/logger-0.3.0.tgz",
985
+ "integrity": "sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==",
986
+ "dev": true,
987
+ "license": "MIT",
988
+ "dependencies": {
989
+ "is-node-process": "^1.2.0",
990
+ "outvariant": "^1.4.0"
991
+ }
992
+ },
993
+ "node_modules/@open-draft/until": {
994
+ "version": "2.1.0",
995
+ "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-2.1.0.tgz",
996
+ "integrity": "sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==",
997
+ "dev": true,
998
+ "license": "MIT"
999
+ },
1000
+ "node_modules/@protobufjs/aspromise": {
1001
+ "version": "1.1.2",
1002
+ "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
1003
+ "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==",
1004
+ "license": "BSD-3-Clause"
1005
+ },
1006
+ "node_modules/@protobufjs/base64": {
1007
+ "version": "1.1.2",
1008
+ "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
1009
+ "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==",
1010
+ "license": "BSD-3-Clause"
1011
+ },
1012
+ "node_modules/@protobufjs/codegen": {
1013
+ "version": "2.0.4",
1014
+ "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
1015
+ "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==",
1016
+ "license": "BSD-3-Clause"
1017
+ },
1018
+ "node_modules/@protobufjs/eventemitter": {
1019
+ "version": "1.1.0",
1020
+ "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
1021
+ "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==",
1022
+ "license": "BSD-3-Clause"
1023
+ },
1024
+ "node_modules/@protobufjs/fetch": {
1025
+ "version": "1.1.0",
1026
+ "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
1027
+ "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==",
1028
+ "license": "BSD-3-Clause",
1029
+ "dependencies": {
1030
+ "@protobufjs/aspromise": "^1.1.1",
1031
+ "@protobufjs/inquire": "^1.1.0"
1032
+ }
1033
+ },
1034
+ "node_modules/@protobufjs/float": {
1035
+ "version": "1.0.2",
1036
+ "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
1037
+ "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==",
1038
+ "license": "BSD-3-Clause"
1039
+ },
1040
+ "node_modules/@protobufjs/inquire": {
1041
+ "version": "1.1.0",
1042
+ "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
1043
+ "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==",
1044
+ "license": "BSD-3-Clause"
1045
+ },
1046
+ "node_modules/@protobufjs/path": {
1047
+ "version": "1.1.2",
1048
+ "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
1049
+ "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==",
1050
+ "license": "BSD-3-Clause"
1051
+ },
1052
+ "node_modules/@protobufjs/pool": {
1053
+ "version": "1.1.0",
1054
+ "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
1055
+ "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==",
1056
+ "license": "BSD-3-Clause"
1057
+ },
1058
+ "node_modules/@protobufjs/utf8": {
1059
+ "version": "1.1.0",
1060
+ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
1061
+ "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==",
1062
+ "license": "BSD-3-Clause"
1063
+ },
1064
+ "node_modules/@rollup/rollup-android-arm-eabi": {
1065
+ "version": "4.40.2",
1066
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.2.tgz",
1067
+ "integrity": "sha512-JkdNEq+DFxZfUwxvB58tHMHBHVgX23ew41g1OQinthJ+ryhdRk67O31S7sYw8u2lTjHUPFxwar07BBt1KHp/hg==",
1068
+ "cpu": [
1069
+ "arm"
1070
+ ],
1071
+ "dev": true,
1072
+ "license": "MIT",
1073
+ "optional": true,
1074
+ "os": [
1075
+ "android"
1076
+ ]
1077
+ },
1078
+ "node_modules/@rollup/rollup-android-arm64": {
1079
+ "version": "4.40.2",
1080
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.2.tgz",
1081
+ "integrity": "sha512-13unNoZ8NzUmnndhPTkWPWbX3vtHodYmy+I9kuLxN+F+l+x3LdVF7UCu8TWVMt1POHLh6oDHhnOA04n8oJZhBw==",
1082
+ "cpu": [
1083
+ "arm64"
1084
+ ],
1085
+ "dev": true,
1086
+ "license": "MIT",
1087
+ "optional": true,
1088
+ "os": [
1089
+ "android"
1090
+ ]
1091
+ },
1092
+ "node_modules/@rollup/rollup-darwin-arm64": {
1093
+ "version": "4.40.2",
1094
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.2.tgz",
1095
+ "integrity": "sha512-Gzf1Hn2Aoe8VZzevHostPX23U7N5+4D36WJNHK88NZHCJr7aVMG4fadqkIf72eqVPGjGc0HJHNuUaUcxiR+N/w==",
1096
+ "cpu": [
1097
+ "arm64"
1098
+ ],
1099
+ "dev": true,
1100
+ "license": "MIT",
1101
+ "optional": true,
1102
+ "os": [
1103
+ "darwin"
1104
+ ]
1105
+ },
1106
+ "node_modules/@rollup/rollup-darwin-x64": {
1107
+ "version": "4.40.2",
1108
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.2.tgz",
1109
+ "integrity": "sha512-47N4hxa01a4x6XnJoskMKTS8XZ0CZMd8YTbINbi+w03A2w4j1RTlnGHOz/P0+Bg1LaVL6ufZyNprSg+fW5nYQQ==",
1110
+ "cpu": [
1111
+ "x64"
1112
+ ],
1113
+ "dev": true,
1114
+ "license": "MIT",
1115
+ "optional": true,
1116
+ "os": [
1117
+ "darwin"
1118
+ ]
1119
+ },
1120
+ "node_modules/@rollup/rollup-freebsd-arm64": {
1121
+ "version": "4.40.2",
1122
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.2.tgz",
1123
+ "integrity": "sha512-8t6aL4MD+rXSHHZUR1z19+9OFJ2rl1wGKvckN47XFRVO+QL/dUSpKA2SLRo4vMg7ELA8pzGpC+W9OEd1Z/ZqoQ==",
1124
+ "cpu": [
1125
+ "arm64"
1126
+ ],
1127
+ "dev": true,
1128
+ "license": "MIT",
1129
+ "optional": true,
1130
+ "os": [
1131
+ "freebsd"
1132
+ ]
1133
+ },
1134
+ "node_modules/@rollup/rollup-freebsd-x64": {
1135
+ "version": "4.40.2",
1136
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.2.tgz",
1137
+ "integrity": "sha512-C+AyHBzfpsOEYRFjztcYUFsH4S7UsE9cDtHCtma5BK8+ydOZYgMmWg1d/4KBytQspJCld8ZIujFMAdKG1xyr4Q==",
1138
+ "cpu": [
1139
+ "x64"
1140
+ ],
1141
+ "dev": true,
1142
+ "license": "MIT",
1143
+ "optional": true,
1144
+ "os": [
1145
+ "freebsd"
1146
+ ]
1147
+ },
1148
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
1149
+ "version": "4.40.2",
1150
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.2.tgz",
1151
+ "integrity": "sha512-de6TFZYIvJwRNjmW3+gaXiZ2DaWL5D5yGmSYzkdzjBDS3W+B9JQ48oZEsmMvemqjtAFzE16DIBLqd6IQQRuG9Q==",
1152
+ "cpu": [
1153
+ "arm"
1154
+ ],
1155
+ "dev": true,
1156
+ "license": "MIT",
1157
+ "optional": true,
1158
+ "os": [
1159
+ "linux"
1160
+ ]
1161
+ },
1162
+ "node_modules/@rollup/rollup-linux-arm-musleabihf": {
1163
+ "version": "4.40.2",
1164
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.2.tgz",
1165
+ "integrity": "sha512-urjaEZubdIkacKc930hUDOfQPysezKla/O9qV+O89enqsqUmQm8Xj8O/vh0gHg4LYfv7Y7UsE3QjzLQzDYN1qg==",
1166
+ "cpu": [
1167
+ "arm"
1168
+ ],
1169
+ "dev": true,
1170
+ "license": "MIT",
1171
+ "optional": true,
1172
+ "os": [
1173
+ "linux"
1174
+ ]
1175
+ },
1176
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
1177
+ "version": "4.40.2",
1178
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.2.tgz",
1179
+ "integrity": "sha512-KlE8IC0HFOC33taNt1zR8qNlBYHj31qGT1UqWqtvR/+NuCVhfufAq9fxO8BMFC22Wu0rxOwGVWxtCMvZVLmhQg==",
1180
+ "cpu": [
1181
+ "arm64"
1182
+ ],
1183
+ "dev": true,
1184
+ "license": "MIT",
1185
+ "optional": true,
1186
+ "os": [
1187
+ "linux"
1188
+ ]
1189
+ },
1190
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
1191
+ "version": "4.40.2",
1192
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.2.tgz",
1193
+ "integrity": "sha512-j8CgxvfM0kbnhu4XgjnCWJQyyBOeBI1Zq91Z850aUddUmPeQvuAy6OiMdPS46gNFgy8gN1xkYyLgwLYZG3rBOg==",
1194
+ "cpu": [
1195
+ "arm64"
1196
+ ],
1197
+ "dev": true,
1198
+ "license": "MIT",
1199
+ "optional": true,
1200
+ "os": [
1201
+ "linux"
1202
+ ]
1203
+ },
1204
+ "node_modules/@rollup/rollup-linux-loongarch64-gnu": {
1205
+ "version": "4.40.2",
1206
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.2.tgz",
1207
+ "integrity": "sha512-Ybc/1qUampKuRF4tQXc7G7QY9YRyeVSykfK36Y5Qc5dmrIxwFhrOzqaVTNoZygqZ1ZieSWTibfFhQ5qK8jpWxw==",
1208
+ "cpu": [
1209
+ "loong64"
1210
+ ],
1211
+ "dev": true,
1212
+ "license": "MIT",
1213
+ "optional": true,
1214
+ "os": [
1215
+ "linux"
1216
+ ]
1217
+ },
1218
+ "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
1219
+ "version": "4.40.2",
1220
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.2.tgz",
1221
+ "integrity": "sha512-3FCIrnrt03CCsZqSYAOW/k9n625pjpuMzVfeI+ZBUSDT3MVIFDSPfSUgIl9FqUftxcUXInvFah79hE1c9abD+Q==",
1222
+ "cpu": [
1223
+ "ppc64"
1224
+ ],
1225
+ "dev": true,
1226
+ "license": "MIT",
1227
+ "optional": true,
1228
+ "os": [
1229
+ "linux"
1230
+ ]
1231
+ },
1232
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
1233
+ "version": "4.40.2",
1234
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.2.tgz",
1235
+ "integrity": "sha512-QNU7BFHEvHMp2ESSY3SozIkBPaPBDTsfVNGx3Xhv+TdvWXFGOSH2NJvhD1zKAT6AyuuErJgbdvaJhYVhVqrWTg==",
1236
+ "cpu": [
1237
+ "riscv64"
1238
+ ],
1239
+ "dev": true,
1240
+ "license": "MIT",
1241
+ "optional": true,
1242
+ "os": [
1243
+ "linux"
1244
+ ]
1245
+ },
1246
+ "node_modules/@rollup/rollup-linux-riscv64-musl": {
1247
+ "version": "4.40.2",
1248
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.2.tgz",
1249
+ "integrity": "sha512-5W6vNYkhgfh7URiXTO1E9a0cy4fSgfE4+Hl5agb/U1sa0kjOLMLC1wObxwKxecE17j0URxuTrYZZME4/VH57Hg==",
1250
+ "cpu": [
1251
+ "riscv64"
1252
+ ],
1253
+ "dev": true,
1254
+ "license": "MIT",
1255
+ "optional": true,
1256
+ "os": [
1257
+ "linux"
1258
+ ]
1259
+ },
1260
+ "node_modules/@rollup/rollup-linux-s390x-gnu": {
1261
+ "version": "4.40.2",
1262
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.2.tgz",
1263
+ "integrity": "sha512-B7LKIz+0+p348JoAL4X/YxGx9zOx3sR+o6Hj15Y3aaApNfAshK8+mWZEf759DXfRLeL2vg5LYJBB7DdcleYCoQ==",
1264
+ "cpu": [
1265
+ "s390x"
1266
+ ],
1267
+ "dev": true,
1268
+ "license": "MIT",
1269
+ "optional": true,
1270
+ "os": [
1271
+ "linux"
1272
+ ]
1273
+ },
1274
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
1275
+ "version": "4.40.2",
1276
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.2.tgz",
1277
+ "integrity": "sha512-lG7Xa+BmBNwpjmVUbmyKxdQJ3Q6whHjMjzQplOs5Z+Gj7mxPtWakGHqzMqNER68G67kmCX9qX57aRsW5V0VOng==",
1278
+ "cpu": [
1279
+ "x64"
1280
+ ],
1281
+ "dev": true,
1282
+ "license": "MIT",
1283
+ "optional": true,
1284
+ "os": [
1285
+ "linux"
1286
+ ]
1287
+ },
1288
+ "node_modules/@rollup/rollup-linux-x64-musl": {
1289
+ "version": "4.40.2",
1290
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.2.tgz",
1291
+ "integrity": "sha512-tD46wKHd+KJvsmije4bUskNuvWKFcTOIM9tZ/RrmIvcXnbi0YK/cKS9FzFtAm7Oxi2EhV5N2OpfFB348vSQRXA==",
1292
+ "cpu": [
1293
+ "x64"
1294
+ ],
1295
+ "dev": true,
1296
+ "license": "MIT",
1297
+ "optional": true,
1298
+ "os": [
1299
+ "linux"
1300
+ ]
1301
+ },
1302
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
1303
+ "version": "4.40.2",
1304
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.2.tgz",
1305
+ "integrity": "sha512-Bjv/HG8RRWLNkXwQQemdsWw4Mg+IJ29LK+bJPW2SCzPKOUaMmPEppQlu/Fqk1d7+DX3V7JbFdbkh/NMmurT6Pg==",
1306
+ "cpu": [
1307
+ "arm64"
1308
+ ],
1309
+ "dev": true,
1310
+ "license": "MIT",
1311
+ "optional": true,
1312
+ "os": [
1313
+ "win32"
1314
+ ]
1315
+ },
1316
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
1317
+ "version": "4.40.2",
1318
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.2.tgz",
1319
+ "integrity": "sha512-dt1llVSGEsGKvzeIO76HToiYPNPYPkmjhMHhP00T9S4rDern8P2ZWvWAQUEJ+R1UdMWJ/42i/QqJ2WV765GZcA==",
1320
+ "cpu": [
1321
+ "ia32"
1322
+ ],
1323
+ "dev": true,
1324
+ "license": "MIT",
1325
+ "optional": true,
1326
+ "os": [
1327
+ "win32"
1328
+ ]
1329
+ },
1330
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
1331
+ "version": "4.40.2",
1332
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.2.tgz",
1333
+ "integrity": "sha512-bwspbWB04XJpeElvsp+DCylKfF4trJDa2Y9Go8O6A7YLX2LIKGcNK/CYImJN6ZP4DcuOHB4Utl3iCbnR62DudA==",
1334
+ "cpu": [
1335
+ "x64"
1336
+ ],
1337
+ "dev": true,
1338
+ "license": "MIT",
1339
+ "optional": true,
1340
+ "os": [
1341
+ "win32"
1342
+ ]
1343
+ },
1344
+ "node_modules/@types/cookie": {
1345
+ "version": "0.6.0",
1346
+ "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz",
1347
+ "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==",
1348
+ "dev": true,
1349
+ "license": "MIT"
1350
+ },
1351
+ "node_modules/@types/estree": {
1352
+ "version": "1.0.7",
1353
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz",
1354
+ "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==",
1355
+ "dev": true,
1356
+ "license": "MIT"
1357
+ },
1358
+ "node_modules/@types/eventsource": {
1359
+ "version": "1.1.15",
1360
+ "resolved": "https://registry.npmjs.org/@types/eventsource/-/eventsource-1.1.15.tgz",
1361
+ "integrity": "sha512-XQmGcbnxUNa06HR3VBVkc9+A2Vpi9ZyLJcdS5dwaQQ/4ZMWFO+5c90FnMUpbtMZwB/FChoYHwuVg8TvkECacTA==",
1362
+ "dev": true,
1363
+ "license": "MIT"
1364
+ },
1365
+ "node_modules/@types/node": {
1366
+ "version": "20.11.20",
1367
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.20.tgz",
1368
+ "integrity": "sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==",
1369
+ "dependencies": {
1370
+ "undici-types": "~5.26.4"
1371
+ }
1372
+ },
1373
+ "node_modules/@types/statuses": {
1374
+ "version": "2.0.6",
1375
+ "resolved": "https://registry.npmjs.org/@types/statuses/-/statuses-2.0.6.tgz",
1376
+ "integrity": "sha512-xMAgYwceFhRA2zY+XbEA7mxYbA093wdiW8Vu6gZPGWy9cmOyU9XesH1tNcEWsKFd5Vzrqx5T3D38PWx1FIIXkA==",
1377
+ "dev": true,
1378
+ "license": "MIT"
1379
+ },
1380
+ "node_modules/ansi-escapes": {
1381
+ "version": "4.3.2",
1382
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
1383
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
1384
+ "dev": true,
1385
+ "license": "MIT",
1386
+ "dependencies": {
1387
+ "type-fest": "^0.21.3"
1388
+ },
1389
+ "engines": {
1390
+ "node": ">=8"
1391
+ },
1392
+ "funding": {
1393
+ "url": "https://github.com/sponsors/sindresorhus"
1394
+ }
1395
+ },
1396
+ "node_modules/ansi-escapes/node_modules/type-fest": {
1397
+ "version": "0.21.3",
1398
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
1399
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
1400
+ "dev": true,
1401
+ "license": "(MIT OR CC0-1.0)",
1402
+ "engines": {
1403
+ "node": ">=10"
1404
+ },
1405
+ "funding": {
1406
+ "url": "https://github.com/sponsors/sindresorhus"
1407
+ }
1408
+ },
1409
+ "node_modules/ansi-regex": {
1410
+ "version": "5.0.1",
1411
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
1412
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
1413
+ "dev": true,
1414
+ "license": "MIT",
1415
+ "engines": {
1416
+ "node": ">=8"
1417
+ }
1418
+ },
1419
+ "node_modules/ansi-styles": {
1420
+ "version": "4.3.0",
1421
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
1422
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
1423
+ "dev": true,
1424
+ "license": "MIT",
1425
+ "dependencies": {
1426
+ "color-convert": "^2.0.1"
1427
+ },
1428
+ "engines": {
1429
+ "node": ">=8"
1430
+ },
1431
+ "funding": {
1432
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
1433
+ }
1434
+ },
1435
+ "node_modules/boolean": {
1436
+ "version": "3.2.0",
1437
+ "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz",
1438
+ "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==",
1439
+ "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.",
1440
+ "license": "MIT"
1441
+ },
1442
+ "node_modules/bufferutil": {
1443
+ "version": "4.0.9",
1444
+ "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.9.tgz",
1445
+ "integrity": "sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw==",
1446
+ "dev": true,
1447
+ "hasInstallScript": true,
1448
+ "license": "MIT",
1449
+ "dependencies": {
1450
+ "node-gyp-build": "^4.3.0"
1451
+ },
1452
+ "engines": {
1453
+ "node": ">=6.14.2"
1454
+ }
1455
+ },
1456
+ "node_modules/chownr": {
1457
+ "version": "3.0.0",
1458
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz",
1459
+ "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==",
1460
+ "license": "BlueOak-1.0.0",
1461
+ "engines": {
1462
+ "node": ">=18"
1463
+ }
1464
+ },
1465
+ "node_modules/cli-width": {
1466
+ "version": "4.1.0",
1467
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz",
1468
+ "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==",
1469
+ "dev": true,
1470
+ "license": "ISC",
1471
+ "engines": {
1472
+ "node": ">= 12"
1473
+ }
1474
+ },
1475
+ "node_modules/cliui": {
1476
+ "version": "8.0.1",
1477
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
1478
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
1479
+ "dev": true,
1480
+ "license": "ISC",
1481
+ "dependencies": {
1482
+ "string-width": "^4.2.0",
1483
+ "strip-ansi": "^6.0.1",
1484
+ "wrap-ansi": "^7.0.0"
1485
+ },
1486
+ "engines": {
1487
+ "node": ">=12"
1488
+ }
1489
+ },
1490
+ "node_modules/cliui/node_modules/wrap-ansi": {
1491
+ "version": "7.0.0",
1492
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
1493
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
1494
+ "dev": true,
1495
+ "license": "MIT",
1496
+ "dependencies": {
1497
+ "ansi-styles": "^4.0.0",
1498
+ "string-width": "^4.1.0",
1499
+ "strip-ansi": "^6.0.0"
1500
+ },
1501
+ "engines": {
1502
+ "node": ">=10"
1503
+ },
1504
+ "funding": {
1505
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
1506
+ }
1507
+ },
1508
+ "node_modules/color": {
1509
+ "version": "4.2.3",
1510
+ "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
1511
+ "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
1512
+ "license": "MIT",
1513
+ "dependencies": {
1514
+ "color-convert": "^2.0.1",
1515
+ "color-string": "^1.9.0"
1516
+ },
1517
+ "engines": {
1518
+ "node": ">=12.5.0"
1519
+ }
1520
+ },
1521
+ "node_modules/color-convert": {
1522
+ "version": "2.0.1",
1523
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
1524
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
1525
+ "license": "MIT",
1526
+ "dependencies": {
1527
+ "color-name": "~1.1.4"
1528
+ },
1529
+ "engines": {
1530
+ "node": ">=7.0.0"
1531
+ }
1532
+ },
1533
+ "node_modules/color-name": {
1534
+ "version": "1.1.4",
1535
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
1536
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
1537
+ "license": "MIT"
1538
+ },
1539
+ "node_modules/color-string": {
1540
+ "version": "1.9.1",
1541
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
1542
+ "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
1543
+ "license": "MIT",
1544
+ "dependencies": {
1545
+ "color-name": "^1.0.0",
1546
+ "simple-swizzle": "^0.2.2"
1547
+ }
1548
+ },
1549
+ "node_modules/cookie": {
1550
+ "version": "0.7.2",
1551
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
1552
+ "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
1553
+ "dev": true,
1554
+ "license": "MIT",
1555
+ "engines": {
1556
+ "node": ">= 0.6"
1557
+ }
1558
+ },
1559
+ "node_modules/define-data-property": {
1560
+ "version": "1.1.4",
1561
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
1562
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
1563
+ "license": "MIT",
1564
+ "dependencies": {
1565
+ "es-define-property": "^1.0.0",
1566
+ "es-errors": "^1.3.0",
1567
+ "gopd": "^1.0.1"
1568
+ },
1569
+ "engines": {
1570
+ "node": ">= 0.4"
1571
+ },
1572
+ "funding": {
1573
+ "url": "https://github.com/sponsors/ljharb"
1574
+ }
1575
+ },
1576
+ "node_modules/define-properties": {
1577
+ "version": "1.2.1",
1578
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
1579
+ "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
1580
+ "license": "MIT",
1581
+ "dependencies": {
1582
+ "define-data-property": "^1.0.1",
1583
+ "has-property-descriptors": "^1.0.0",
1584
+ "object-keys": "^1.1.1"
1585
+ },
1586
+ "engines": {
1587
+ "node": ">= 0.4"
1588
+ },
1589
+ "funding": {
1590
+ "url": "https://github.com/sponsors/ljharb"
1591
+ }
1592
+ },
1593
+ "node_modules/detect-libc": {
1594
+ "version": "2.0.3",
1595
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz",
1596
+ "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==",
1597
+ "license": "Apache-2.0",
1598
+ "engines": {
1599
+ "node": ">=8"
1600
+ }
1601
+ },
1602
+ "node_modules/detect-node": {
1603
+ "version": "2.1.0",
1604
+ "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz",
1605
+ "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==",
1606
+ "license": "MIT"
1607
+ },
1608
+ "node_modules/emoji-regex": {
1609
+ "version": "8.0.0",
1610
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
1611
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
1612
+ "dev": true,
1613
+ "license": "MIT"
1614
+ },
1615
+ "node_modules/es-define-property": {
1616
+ "version": "1.0.1",
1617
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
1618
+ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
1619
+ "license": "MIT",
1620
+ "engines": {
1621
+ "node": ">= 0.4"
1622
+ }
1623
+ },
1624
+ "node_modules/es-errors": {
1625
+ "version": "1.3.0",
1626
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
1627
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
1628
+ "license": "MIT",
1629
+ "engines": {
1630
+ "node": ">= 0.4"
1631
+ }
1632
+ },
1633
+ "node_modules/es6-error": {
1634
+ "version": "4.1.1",
1635
+ "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
1636
+ "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==",
1637
+ "license": "MIT"
1638
+ },
1639
+ "node_modules/esbuild": {
1640
+ "version": "0.25.0",
1641
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz",
1642
+ "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==",
1643
+ "dev": true,
1644
+ "hasInstallScript": true,
1645
+ "bin": {
1646
+ "esbuild": "bin/esbuild"
1647
+ },
1648
+ "engines": {
1649
+ "node": ">=18"
1650
+ },
1651
+ "optionalDependencies": {
1652
+ "@esbuild/aix-ppc64": "0.25.0",
1653
+ "@esbuild/android-arm": "0.25.0",
1654
+ "@esbuild/android-arm64": "0.25.0",
1655
+ "@esbuild/android-x64": "0.25.0",
1656
+ "@esbuild/darwin-arm64": "0.25.0",
1657
+ "@esbuild/darwin-x64": "0.25.0",
1658
+ "@esbuild/freebsd-arm64": "0.25.0",
1659
+ "@esbuild/freebsd-x64": "0.25.0",
1660
+ "@esbuild/linux-arm": "0.25.0",
1661
+ "@esbuild/linux-arm64": "0.25.0",
1662
+ "@esbuild/linux-ia32": "0.25.0",
1663
+ "@esbuild/linux-loong64": "0.25.0",
1664
+ "@esbuild/linux-mips64el": "0.25.0",
1665
+ "@esbuild/linux-ppc64": "0.25.0",
1666
+ "@esbuild/linux-riscv64": "0.25.0",
1667
+ "@esbuild/linux-s390x": "0.25.0",
1668
+ "@esbuild/linux-x64": "0.25.0",
1669
+ "@esbuild/netbsd-arm64": "0.25.0",
1670
+ "@esbuild/netbsd-x64": "0.25.0",
1671
+ "@esbuild/openbsd-arm64": "0.25.0",
1672
+ "@esbuild/openbsd-x64": "0.25.0",
1673
+ "@esbuild/sunos-x64": "0.25.0",
1674
+ "@esbuild/win32-arm64": "0.25.0",
1675
+ "@esbuild/win32-ia32": "0.25.0",
1676
+ "@esbuild/win32-x64": "0.25.0"
1677
+ }
1678
+ },
1679
+ "node_modules/escalade": {
1680
+ "version": "3.2.0",
1681
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
1682
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
1683
+ "dev": true,
1684
+ "license": "MIT",
1685
+ "engines": {
1686
+ "node": ">=6"
1687
+ }
1688
+ },
1689
+ "node_modules/escape-string-regexp": {
1690
+ "version": "4.0.0",
1691
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
1692
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
1693
+ "license": "MIT",
1694
+ "engines": {
1695
+ "node": ">=10"
1696
+ },
1697
+ "funding": {
1698
+ "url": "https://github.com/sponsors/sindresorhus"
1699
+ }
1700
+ },
1701
+ "node_modules/eventsource": {
1702
+ "version": "2.0.2",
1703
+ "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz",
1704
+ "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==",
1705
+ "dev": true,
1706
+ "license": "MIT",
1707
+ "engines": {
1708
+ "node": ">=12.0.0"
1709
+ }
1710
+ },
1711
+ "node_modules/fdir": {
1712
+ "version": "6.4.4",
1713
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz",
1714
+ "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==",
1715
+ "dev": true,
1716
+ "license": "MIT",
1717
+ "peerDependencies": {
1718
+ "picomatch": "^3 || ^4"
1719
+ },
1720
+ "peerDependenciesMeta": {
1721
+ "picomatch": {
1722
+ "optional": true
1723
+ }
1724
+ }
1725
+ },
1726
+ "node_modules/fetch-event-stream": {
1727
+ "version": "0.1.5",
1728
+ "resolved": "https://registry.npmjs.org/fetch-event-stream/-/fetch-event-stream-0.1.5.tgz",
1729
+ "integrity": "sha512-V1PWovkspxQfssq/NnxoEyQo1DV+MRK/laPuPblIZmSjMN8P5u46OhlFQznSr9p/t0Sp8Uc6SbM3yCMfr0KU8g==",
1730
+ "dev": true,
1731
+ "license": "MIT"
1732
+ },
1733
+ "node_modules/flatbuffers": {
1734
+ "version": "25.2.10",
1735
+ "resolved": "https://registry.npmjs.org/flatbuffers/-/flatbuffers-25.2.10.tgz",
1736
+ "integrity": "sha512-7JlN9ZvLDG1McO3kbX0k4v+SUAg48L1rIwEvN6ZQl/eCtgJz9UylTMzE9wrmYrcorgxm3CX/3T/w5VAub99UUw==",
1737
+ "license": "Apache-2.0"
1738
+ },
1739
+ "node_modules/fsevents": {
1740
+ "version": "2.3.3",
1741
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
1742
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
1743
+ "dev": true,
1744
+ "hasInstallScript": true,
1745
+ "license": "MIT",
1746
+ "optional": true,
1747
+ "os": [
1748
+ "darwin"
1749
+ ],
1750
+ "engines": {
1751
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
1752
+ }
1753
+ },
1754
+ "node_modules/get-caller-file": {
1755
+ "version": "2.0.5",
1756
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
1757
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
1758
+ "dev": true,
1759
+ "license": "ISC",
1760
+ "engines": {
1761
+ "node": "6.* || 8.* || >= 10.*"
1762
+ }
1763
+ },
1764
+ "node_modules/global-agent": {
1765
+ "version": "3.0.0",
1766
+ "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz",
1767
+ "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==",
1768
+ "license": "BSD-3-Clause",
1769
+ "dependencies": {
1770
+ "boolean": "^3.0.1",
1771
+ "es6-error": "^4.1.1",
1772
+ "matcher": "^3.0.0",
1773
+ "roarr": "^2.15.3",
1774
+ "semver": "^7.3.2",
1775
+ "serialize-error": "^7.0.1"
1776
+ },
1777
+ "engines": {
1778
+ "node": ">=10.0"
1779
+ }
1780
+ },
1781
+ "node_modules/globalthis": {
1782
+ "version": "1.0.4",
1783
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz",
1784
+ "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==",
1785
+ "license": "MIT",
1786
+ "dependencies": {
1787
+ "define-properties": "^1.2.1",
1788
+ "gopd": "^1.0.1"
1789
+ },
1790
+ "engines": {
1791
+ "node": ">= 0.4"
1792
+ },
1793
+ "funding": {
1794
+ "url": "https://github.com/sponsors/ljharb"
1795
+ }
1796
+ },
1797
+ "node_modules/gopd": {
1798
+ "version": "1.2.0",
1799
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
1800
+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
1801
+ "license": "MIT",
1802
+ "engines": {
1803
+ "node": ">= 0.4"
1804
+ },
1805
+ "funding": {
1806
+ "url": "https://github.com/sponsors/ljharb"
1807
+ }
1808
+ },
1809
+ "node_modules/graphql": {
1810
+ "version": "16.11.0",
1811
+ "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.11.0.tgz",
1812
+ "integrity": "sha512-mS1lbMsxgQj6hge1XZ6p7GPhbrtFwUFYi3wRzXAC/FmYnyXMTvvI3td3rjmQ2u8ewXueaSvRPWaEcgVVOT9Jnw==",
1813
+ "dev": true,
1814
+ "license": "MIT",
1815
+ "engines": {
1816
+ "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0"
1817
+ }
1818
+ },
1819
+ "node_modules/guid-typescript": {
1820
+ "version": "1.0.9",
1821
+ "resolved": "https://registry.npmjs.org/guid-typescript/-/guid-typescript-1.0.9.tgz",
1822
+ "integrity": "sha512-Y8T4vYhEfwJOTbouREvG+3XDsjr8E3kIr7uf+JZ0BYloFsttiHU0WfvANVsR7TxNUJa/WpCnw/Ino/p+DeBhBQ==",
1823
+ "license": "ISC"
1824
+ },
1825
+ "node_modules/has-property-descriptors": {
1826
+ "version": "1.0.2",
1827
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
1828
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
1829
+ "license": "MIT",
1830
+ "dependencies": {
1831
+ "es-define-property": "^1.0.0"
1832
+ },
1833
+ "funding": {
1834
+ "url": "https://github.com/sponsors/ljharb"
1835
+ }
1836
+ },
1837
+ "node_modules/headers-polyfill": {
1838
+ "version": "4.0.3",
1839
+ "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-4.0.3.tgz",
1840
+ "integrity": "sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==",
1841
+ "dev": true,
1842
+ "license": "MIT"
1843
+ },
1844
+ "node_modules/is-arrayish": {
1845
+ "version": "0.3.2",
1846
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
1847
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
1848
+ "license": "MIT"
1849
+ },
1850
+ "node_modules/is-fullwidth-code-point": {
1851
+ "version": "3.0.0",
1852
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
1853
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
1854
+ "dev": true,
1855
+ "license": "MIT",
1856
+ "engines": {
1857
+ "node": ">=8"
1858
+ }
1859
+ },
1860
+ "node_modules/is-node-process": {
1861
+ "version": "1.2.0",
1862
+ "resolved": "https://registry.npmjs.org/is-node-process/-/is-node-process-1.2.0.tgz",
1863
+ "integrity": "sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==",
1864
+ "dev": true,
1865
+ "license": "MIT"
1866
+ },
1867
+ "node_modules/json-stringify-safe": {
1868
+ "version": "5.0.1",
1869
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
1870
+ "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
1871
+ "license": "ISC"
1872
+ },
1873
+ "node_modules/long": {
1874
+ "version": "5.3.1",
1875
+ "resolved": "https://registry.npmjs.org/long/-/long-5.3.1.tgz",
1876
+ "integrity": "sha512-ka87Jz3gcx/I7Hal94xaN2tZEOPoUOEVftkQqZx2EeQRN7LGdfLlI3FvZ+7WDplm+vK2Urx9ULrvSowtdCieng==",
1877
+ "license": "Apache-2.0"
1878
+ },
1879
+ "node_modules/matcher": {
1880
+ "version": "3.0.0",
1881
+ "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz",
1882
+ "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==",
1883
+ "license": "MIT",
1884
+ "dependencies": {
1885
+ "escape-string-regexp": "^4.0.0"
1886
+ },
1887
+ "engines": {
1888
+ "node": ">=10"
1889
+ }
1890
+ },
1891
+ "node_modules/minipass": {
1892
+ "version": "7.1.2",
1893
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
1894
+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
1895
+ "license": "ISC",
1896
+ "engines": {
1897
+ "node": ">=16 || 14 >=14.17"
1898
+ }
1899
+ },
1900
+ "node_modules/minizlib": {
1901
+ "version": "3.0.2",
1902
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.2.tgz",
1903
+ "integrity": "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==",
1904
+ "license": "MIT",
1905
+ "dependencies": {
1906
+ "minipass": "^7.1.2"
1907
+ },
1908
+ "engines": {
1909
+ "node": ">= 18"
1910
+ }
1911
+ },
1912
+ "node_modules/mkdirp": {
1913
+ "version": "3.0.1",
1914
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz",
1915
+ "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==",
1916
+ "license": "MIT",
1917
+ "bin": {
1918
+ "mkdirp": "dist/cjs/src/bin.js"
1919
+ },
1920
+ "engines": {
1921
+ "node": ">=10"
1922
+ },
1923
+ "funding": {
1924
+ "url": "https://github.com/sponsors/isaacs"
1925
+ }
1926
+ },
1927
+ "node_modules/msw": {
1928
+ "version": "2.11.2",
1929
+ "resolved": "https://registry.npmjs.org/msw/-/msw-2.11.2.tgz",
1930
+ "integrity": "sha512-MI54hLCsrMwiflkcqlgYYNJJddY5/+S0SnONvhv1owOplvqohKSQyGejpNdUGyCwgs4IH7PqaNbPw/sKOEze9Q==",
1931
+ "dev": true,
1932
+ "hasInstallScript": true,
1933
+ "license": "MIT",
1934
+ "dependencies": {
1935
+ "@bundled-es-modules/cookie": "^2.0.1",
1936
+ "@bundled-es-modules/statuses": "^1.0.1",
1937
+ "@inquirer/confirm": "^5.0.0",
1938
+ "@mswjs/interceptors": "^0.39.1",
1939
+ "@open-draft/deferred-promise": "^2.2.0",
1940
+ "@open-draft/until": "^2.1.0",
1941
+ "@types/cookie": "^0.6.0",
1942
+ "@types/statuses": "^2.0.4",
1943
+ "graphql": "^16.8.1",
1944
+ "headers-polyfill": "^4.0.2",
1945
+ "is-node-process": "^1.2.0",
1946
+ "outvariant": "^1.4.3",
1947
+ "path-to-regexp": "^6.3.0",
1948
+ "picocolors": "^1.1.1",
1949
+ "rettime": "^0.7.0",
1950
+ "strict-event-emitter": "^0.5.1",
1951
+ "tough-cookie": "^6.0.0",
1952
+ "type-fest": "^4.26.1",
1953
+ "yargs": "^17.7.2"
1954
+ },
1955
+ "bin": {
1956
+ "msw": "cli/index.js"
1957
+ },
1958
+ "engines": {
1959
+ "node": ">=18"
1960
+ },
1961
+ "funding": {
1962
+ "url": "https://github.com/sponsors/mswjs"
1963
+ },
1964
+ "peerDependencies": {
1965
+ "typescript": ">= 4.8.x"
1966
+ },
1967
+ "peerDependenciesMeta": {
1968
+ "typescript": {
1969
+ "optional": true
1970
+ }
1971
+ }
1972
+ },
1973
+ "node_modules/msw/node_modules/type-fest": {
1974
+ "version": "4.41.0",
1975
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz",
1976
+ "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==",
1977
+ "dev": true,
1978
+ "license": "(MIT OR CC0-1.0)",
1979
+ "engines": {
1980
+ "node": ">=16"
1981
+ },
1982
+ "funding": {
1983
+ "url": "https://github.com/sponsors/sindresorhus"
1984
+ }
1985
+ },
1986
+ "node_modules/mute-stream": {
1987
+ "version": "2.0.0",
1988
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz",
1989
+ "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==",
1990
+ "dev": true,
1991
+ "license": "ISC",
1992
+ "engines": {
1993
+ "node": "^18.17.0 || >=20.5.0"
1994
+ }
1995
+ },
1996
+ "node_modules/nanoid": {
1997
+ "version": "3.3.8",
1998
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz",
1999
+ "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==",
2000
+ "dev": true,
2001
+ "funding": [
2002
+ {
2003
+ "type": "github",
2004
+ "url": "https://github.com/sponsors/ai"
2005
+ }
2006
+ ],
2007
+ "bin": {
2008
+ "nanoid": "bin/nanoid.cjs"
2009
+ },
2010
+ "engines": {
2011
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
2012
+ }
2013
+ },
2014
+ "node_modules/node-gyp-build": {
2015
+ "version": "4.8.4",
2016
+ "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz",
2017
+ "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==",
2018
+ "dev": true,
2019
+ "license": "MIT",
2020
+ "bin": {
2021
+ "node-gyp-build": "bin.js",
2022
+ "node-gyp-build-optional": "optional.js",
2023
+ "node-gyp-build-test": "build-test.js"
2024
+ }
2025
+ },
2026
+ "node_modules/object-keys": {
2027
+ "version": "1.1.1",
2028
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
2029
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
2030
+ "license": "MIT",
2031
+ "engines": {
2032
+ "node": ">= 0.4"
2033
+ }
2034
+ },
2035
+ "node_modules/onnxruntime-common": {
2036
+ "version": "1.21.0",
2037
+ "resolved": "https://registry.npmjs.org/onnxruntime-common/-/onnxruntime-common-1.21.0.tgz",
2038
+ "integrity": "sha512-Q632iLLrtCAVOTO65dh2+mNbQir/QNTVBG3h/QdZBpns7mZ0RYbLRBgGABPbpU9351AgYy7SJf1WaeVwMrBFPQ==",
2039
+ "license": "MIT"
2040
+ },
2041
+ "node_modules/onnxruntime-node": {
2042
+ "version": "1.21.0",
2043
+ "resolved": "https://registry.npmjs.org/onnxruntime-node/-/onnxruntime-node-1.21.0.tgz",
2044
+ "integrity": "sha512-NeaCX6WW2L8cRCSqy3bInlo5ojjQqu2fD3D+9W5qb5irwxhEyWKXeH2vZ8W9r6VxaMPUan+4/7NDwZMtouZxEw==",
2045
+ "hasInstallScript": true,
2046
+ "license": "MIT",
2047
+ "os": [
2048
+ "win32",
2049
+ "darwin",
2050
+ "linux"
2051
+ ],
2052
+ "dependencies": {
2053
+ "global-agent": "^3.0.0",
2054
+ "onnxruntime-common": "1.21.0",
2055
+ "tar": "^7.0.1"
2056
+ }
2057
+ },
2058
+ "node_modules/onnxruntime-web": {
2059
+ "version": "1.22.0-dev.20250409-89f8206ba4",
2060
+ "resolved": "https://registry.npmjs.org/onnxruntime-web/-/onnxruntime-web-1.22.0-dev.20250409-89f8206ba4.tgz",
2061
+ "integrity": "sha512-0uS76OPgH0hWCPrFKlL8kYVV7ckM7t/36HfbgoFw6Nd0CZVVbQC4PkrR8mBX8LtNUFZO25IQBqV2Hx2ho3FlbQ==",
2062
+ "license": "MIT",
2063
+ "dependencies": {
2064
+ "flatbuffers": "^25.1.24",
2065
+ "guid-typescript": "^1.0.9",
2066
+ "long": "^5.2.3",
2067
+ "onnxruntime-common": "1.22.0-dev.20250409-89f8206ba4",
2068
+ "platform": "^1.3.6",
2069
+ "protobufjs": "^7.2.4"
2070
+ }
2071
+ },
2072
+ "node_modules/onnxruntime-web/node_modules/onnxruntime-common": {
2073
+ "version": "1.22.0-dev.20250409-89f8206ba4",
2074
+ "resolved": "https://registry.npmjs.org/onnxruntime-common/-/onnxruntime-common-1.22.0-dev.20250409-89f8206ba4.tgz",
2075
+ "integrity": "sha512-vDJMkfCfb0b1A836rgHj+ORuZf4B4+cc2bASQtpeoJLueuFc5DuYwjIZUBrSvx/fO5IrLjLz+oTrB3pcGlhovQ==",
2076
+ "license": "MIT"
2077
+ },
2078
+ "node_modules/outvariant": {
2079
+ "version": "1.4.3",
2080
+ "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.3.tgz",
2081
+ "integrity": "sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==",
2082
+ "dev": true,
2083
+ "license": "MIT"
2084
+ },
2085
+ "node_modules/path-to-regexp": {
2086
+ "version": "6.3.0",
2087
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz",
2088
+ "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==",
2089
+ "dev": true,
2090
+ "license": "MIT"
2091
+ },
2092
+ "node_modules/picocolors": {
2093
+ "version": "1.1.1",
2094
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
2095
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
2096
+ "dev": true
2097
+ },
2098
+ "node_modules/picomatch": {
2099
+ "version": "4.0.2",
2100
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
2101
+ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
2102
+ "dev": true,
2103
+ "license": "MIT",
2104
+ "engines": {
2105
+ "node": ">=12"
2106
+ },
2107
+ "funding": {
2108
+ "url": "https://github.com/sponsors/jonschlinkert"
2109
+ }
2110
+ },
2111
+ "node_modules/platform": {
2112
+ "version": "1.3.6",
2113
+ "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz",
2114
+ "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==",
2115
+ "license": "MIT"
2116
+ },
2117
+ "node_modules/postcss": {
2118
+ "version": "8.5.3",
2119
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz",
2120
+ "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
2121
+ "dev": true,
2122
+ "funding": [
2123
+ {
2124
+ "type": "opencollective",
2125
+ "url": "https://opencollective.com/postcss/"
2126
+ },
2127
+ {
2128
+ "type": "tidelift",
2129
+ "url": "https://tidelift.com/funding/github/npm/postcss"
2130
+ },
2131
+ {
2132
+ "type": "github",
2133
+ "url": "https://github.com/sponsors/ai"
2134
+ }
2135
+ ],
2136
+ "dependencies": {
2137
+ "nanoid": "^3.3.8",
2138
+ "picocolors": "^1.1.1",
2139
+ "source-map-js": "^1.2.1"
2140
+ },
2141
+ "engines": {
2142
+ "node": "^10 || ^12 || >=14"
2143
+ }
2144
+ },
2145
+ "node_modules/protobufjs": {
2146
+ "version": "7.5.0",
2147
+ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.0.tgz",
2148
+ "integrity": "sha512-Z2E/kOY1QjoMlCytmexzYfDm/w5fKAiRwpSzGtdnXW1zC88Z2yXazHHrOtwCzn+7wSxyE8PYM4rvVcMphF9sOA==",
2149
+ "hasInstallScript": true,
2150
+ "license": "BSD-3-Clause",
2151
+ "dependencies": {
2152
+ "@protobufjs/aspromise": "^1.1.2",
2153
+ "@protobufjs/base64": "^1.1.2",
2154
+ "@protobufjs/codegen": "^2.0.4",
2155
+ "@protobufjs/eventemitter": "^1.1.0",
2156
+ "@protobufjs/fetch": "^1.1.0",
2157
+ "@protobufjs/float": "^1.0.2",
2158
+ "@protobufjs/inquire": "^1.1.0",
2159
+ "@protobufjs/path": "^1.1.2",
2160
+ "@protobufjs/pool": "^1.1.0",
2161
+ "@protobufjs/utf8": "^1.1.0",
2162
+ "@types/node": ">=13.7.0",
2163
+ "long": "^5.0.0"
2164
+ },
2165
+ "engines": {
2166
+ "node": ">=12.0.0"
2167
+ }
2168
+ },
2169
+ "node_modules/require-directory": {
2170
+ "version": "2.1.1",
2171
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
2172
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
2173
+ "dev": true,
2174
+ "license": "MIT",
2175
+ "engines": {
2176
+ "node": ">=0.10.0"
2177
+ }
2178
+ },
2179
+ "node_modules/rettime": {
2180
+ "version": "0.7.0",
2181
+ "resolved": "https://registry.npmjs.org/rettime/-/rettime-0.7.0.tgz",
2182
+ "integrity": "sha512-LPRKoHnLKd/r3dVxcwO7vhCW+orkOGj9ViueosEBK6ie89CijnfRlhaDhHq/3Hxu4CkWQtxwlBG0mzTQY6uQjw==",
2183
+ "dev": true,
2184
+ "license": "MIT"
2185
+ },
2186
+ "node_modules/roarr": {
2187
+ "version": "2.15.4",
2188
+ "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz",
2189
+ "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==",
2190
+ "license": "BSD-3-Clause",
2191
+ "dependencies": {
2192
+ "boolean": "^3.0.1",
2193
+ "detect-node": "^2.0.4",
2194
+ "globalthis": "^1.0.1",
2195
+ "json-stringify-safe": "^5.0.1",
2196
+ "semver-compare": "^1.0.0",
2197
+ "sprintf-js": "^1.1.2"
2198
+ },
2199
+ "engines": {
2200
+ "node": ">=8.0"
2201
+ }
2202
+ },
2203
+ "node_modules/rollup": {
2204
+ "version": "4.40.2",
2205
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.2.tgz",
2206
+ "integrity": "sha512-tfUOg6DTP4rhQ3VjOO6B4wyrJnGOX85requAXvqYTHsOgb2TFJdZ3aWpT8W2kPoypSGP7dZUyzxJ9ee4buM5Fg==",
2207
+ "dev": true,
2208
+ "license": "MIT",
2209
+ "dependencies": {
2210
+ "@types/estree": "1.0.7"
2211
+ },
2212
+ "bin": {
2213
+ "rollup": "dist/bin/rollup"
2214
+ },
2215
+ "engines": {
2216
+ "node": ">=18.0.0",
2217
+ "npm": ">=8.0.0"
2218
+ },
2219
+ "optionalDependencies": {
2220
+ "@rollup/rollup-android-arm-eabi": "4.40.2",
2221
+ "@rollup/rollup-android-arm64": "4.40.2",
2222
+ "@rollup/rollup-darwin-arm64": "4.40.2",
2223
+ "@rollup/rollup-darwin-x64": "4.40.2",
2224
+ "@rollup/rollup-freebsd-arm64": "4.40.2",
2225
+ "@rollup/rollup-freebsd-x64": "4.40.2",
2226
+ "@rollup/rollup-linux-arm-gnueabihf": "4.40.2",
2227
+ "@rollup/rollup-linux-arm-musleabihf": "4.40.2",
2228
+ "@rollup/rollup-linux-arm64-gnu": "4.40.2",
2229
+ "@rollup/rollup-linux-arm64-musl": "4.40.2",
2230
+ "@rollup/rollup-linux-loongarch64-gnu": "4.40.2",
2231
+ "@rollup/rollup-linux-powerpc64le-gnu": "4.40.2",
2232
+ "@rollup/rollup-linux-riscv64-gnu": "4.40.2",
2233
+ "@rollup/rollup-linux-riscv64-musl": "4.40.2",
2234
+ "@rollup/rollup-linux-s390x-gnu": "4.40.2",
2235
+ "@rollup/rollup-linux-x64-gnu": "4.40.2",
2236
+ "@rollup/rollup-linux-x64-musl": "4.40.2",
2237
+ "@rollup/rollup-win32-arm64-msvc": "4.40.2",
2238
+ "@rollup/rollup-win32-ia32-msvc": "4.40.2",
2239
+ "@rollup/rollup-win32-x64-msvc": "4.40.2",
2240
+ "fsevents": "~2.3.2"
2241
+ }
2242
+ },
2243
+ "node_modules/semiver": {
2244
+ "version": "1.1.0",
2245
+ "resolved": "https://registry.npmjs.org/semiver/-/semiver-1.1.0.tgz",
2246
+ "integrity": "sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==",
2247
+ "dev": true,
2248
+ "license": "MIT",
2249
+ "engines": {
2250
+ "node": ">=6"
2251
+ }
2252
+ },
2253
+ "node_modules/semver": {
2254
+ "version": "7.7.1",
2255
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
2256
+ "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
2257
+ "license": "ISC",
2258
+ "bin": {
2259
+ "semver": "bin/semver.js"
2260
+ },
2261
+ "engines": {
2262
+ "node": ">=10"
2263
+ }
2264
+ },
2265
+ "node_modules/semver-compare": {
2266
+ "version": "1.0.0",
2267
+ "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
2268
+ "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==",
2269
+ "license": "MIT"
2270
+ },
2271
+ "node_modules/serialize-error": {
2272
+ "version": "7.0.1",
2273
+ "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz",
2274
+ "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==",
2275
+ "license": "MIT",
2276
+ "dependencies": {
2277
+ "type-fest": "^0.13.1"
2278
+ },
2279
+ "engines": {
2280
+ "node": ">=10"
2281
+ },
2282
+ "funding": {
2283
+ "url": "https://github.com/sponsors/sindresorhus"
2284
+ }
2285
+ },
2286
+ "node_modules/sharp": {
2287
+ "version": "0.34.1",
2288
+ "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.1.tgz",
2289
+ "integrity": "sha512-1j0w61+eVxu7DawFJtnfYcvSv6qPFvfTaqzTQ2BLknVhHTwGS8sc63ZBF4rzkWMBVKybo4S5OBtDdZahh2A1xg==",
2290
+ "hasInstallScript": true,
2291
+ "license": "Apache-2.0",
2292
+ "dependencies": {
2293
+ "color": "^4.2.3",
2294
+ "detect-libc": "^2.0.3",
2295
+ "semver": "^7.7.1"
2296
+ },
2297
+ "engines": {
2298
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
2299
+ },
2300
+ "funding": {
2301
+ "url": "https://opencollective.com/libvips"
2302
+ },
2303
+ "optionalDependencies": {
2304
+ "@img/sharp-darwin-arm64": "0.34.1",
2305
+ "@img/sharp-darwin-x64": "0.34.1",
2306
+ "@img/sharp-libvips-darwin-arm64": "1.1.0",
2307
+ "@img/sharp-libvips-darwin-x64": "1.1.0",
2308
+ "@img/sharp-libvips-linux-arm": "1.1.0",
2309
+ "@img/sharp-libvips-linux-arm64": "1.1.0",
2310
+ "@img/sharp-libvips-linux-ppc64": "1.1.0",
2311
+ "@img/sharp-libvips-linux-s390x": "1.1.0",
2312
+ "@img/sharp-libvips-linux-x64": "1.1.0",
2313
+ "@img/sharp-libvips-linuxmusl-arm64": "1.1.0",
2314
+ "@img/sharp-libvips-linuxmusl-x64": "1.1.0",
2315
+ "@img/sharp-linux-arm": "0.34.1",
2316
+ "@img/sharp-linux-arm64": "0.34.1",
2317
+ "@img/sharp-linux-s390x": "0.34.1",
2318
+ "@img/sharp-linux-x64": "0.34.1",
2319
+ "@img/sharp-linuxmusl-arm64": "0.34.1",
2320
+ "@img/sharp-linuxmusl-x64": "0.34.1",
2321
+ "@img/sharp-wasm32": "0.34.1",
2322
+ "@img/sharp-win32-ia32": "0.34.1",
2323
+ "@img/sharp-win32-x64": "0.34.1"
2324
+ }
2325
+ },
2326
+ "node_modules/signal-exit": {
2327
+ "version": "4.1.0",
2328
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
2329
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
2330
+ "dev": true,
2331
+ "license": "ISC",
2332
+ "engines": {
2333
+ "node": ">=14"
2334
+ },
2335
+ "funding": {
2336
+ "url": "https://github.com/sponsors/isaacs"
2337
+ }
2338
+ },
2339
+ "node_modules/simple-swizzle": {
2340
+ "version": "0.2.2",
2341
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
2342
+ "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
2343
+ "license": "MIT",
2344
+ "dependencies": {
2345
+ "is-arrayish": "^0.3.1"
2346
+ }
2347
+ },
2348
+ "node_modules/source-map-js": {
2349
+ "version": "1.2.1",
2350
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
2351
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
2352
+ "dev": true,
2353
+ "engines": {
2354
+ "node": ">=0.10.0"
2355
+ }
2356
+ },
2357
+ "node_modules/sprintf-js": {
2358
+ "version": "1.1.3",
2359
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
2360
+ "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==",
2361
+ "license": "BSD-3-Clause"
2362
+ },
2363
+ "node_modules/statuses": {
2364
+ "version": "2.0.2",
2365
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz",
2366
+ "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==",
2367
+ "dev": true,
2368
+ "license": "MIT",
2369
+ "engines": {
2370
+ "node": ">= 0.8"
2371
+ }
2372
+ },
2373
+ "node_modules/strict-event-emitter": {
2374
+ "version": "0.5.1",
2375
+ "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz",
2376
+ "integrity": "sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==",
2377
+ "dev": true,
2378
+ "license": "MIT"
2379
+ },
2380
+ "node_modules/string-width": {
2381
+ "version": "4.2.3",
2382
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
2383
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
2384
+ "dev": true,
2385
+ "license": "MIT",
2386
+ "dependencies": {
2387
+ "emoji-regex": "^8.0.0",
2388
+ "is-fullwidth-code-point": "^3.0.0",
2389
+ "strip-ansi": "^6.0.1"
2390
+ },
2391
+ "engines": {
2392
+ "node": ">=8"
2393
+ }
2394
+ },
2395
+ "node_modules/strip-ansi": {
2396
+ "version": "6.0.1",
2397
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
2398
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
2399
+ "dev": true,
2400
+ "license": "MIT",
2401
+ "dependencies": {
2402
+ "ansi-regex": "^5.0.1"
2403
+ },
2404
+ "engines": {
2405
+ "node": ">=8"
2406
+ }
2407
+ },
2408
+ "node_modules/tar": {
2409
+ "version": "7.4.3",
2410
+ "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz",
2411
+ "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==",
2412
+ "license": "ISC",
2413
+ "dependencies": {
2414
+ "@isaacs/fs-minipass": "^4.0.0",
2415
+ "chownr": "^3.0.0",
2416
+ "minipass": "^7.1.2",
2417
+ "minizlib": "^3.0.1",
2418
+ "mkdirp": "^3.0.1",
2419
+ "yallist": "^5.0.0"
2420
+ },
2421
+ "engines": {
2422
+ "node": ">=18"
2423
+ }
2424
+ },
2425
+ "node_modules/textlinestream": {
2426
+ "version": "1.1.1",
2427
+ "resolved": "https://registry.npmjs.org/textlinestream/-/textlinestream-1.1.1.tgz",
2428
+ "integrity": "sha512-iBHbi7BQxrFmwZUQJsT0SjNzlLLsXhvW/kg7EyOMVMBIrlnj/qYofwo1LVLZi+3GbUEo96Iu2eqToI2+lZoAEQ==",
2429
+ "dev": true,
2430
+ "license": "MIT"
2431
+ },
2432
+ "node_modules/tinyglobby": {
2433
+ "version": "0.2.13",
2434
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz",
2435
+ "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==",
2436
+ "dev": true,
2437
+ "license": "MIT",
2438
+ "dependencies": {
2439
+ "fdir": "^6.4.4",
2440
+ "picomatch": "^4.0.2"
2441
+ },
2442
+ "engines": {
2443
+ "node": ">=12.0.0"
2444
+ },
2445
+ "funding": {
2446
+ "url": "https://github.com/sponsors/SuperchupuDev"
2447
+ }
2448
+ },
2449
+ "node_modules/tldts": {
2450
+ "version": "7.0.14",
2451
+ "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.14.tgz",
2452
+ "integrity": "sha512-lMNHE4aSI3LlkMUMicTmAG3tkkitjOQGDTFboPJwAg2kJXKP1ryWEyqujktg5qhrFZOkk5YFzgkxg3jErE+i5w==",
2453
+ "dev": true,
2454
+ "license": "MIT",
2455
+ "dependencies": {
2456
+ "tldts-core": "^7.0.14"
2457
+ },
2458
+ "bin": {
2459
+ "tldts": "bin/cli.js"
2460
+ }
2461
+ },
2462
+ "node_modules/tldts-core": {
2463
+ "version": "7.0.14",
2464
+ "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.14.tgz",
2465
+ "integrity": "sha512-viZGNK6+NdluOJWwTO9olaugx0bkKhscIdriQQ+lNNhwitIKvb+SvhbYgnCz6j9p7dX3cJntt4agQAKMXLjJ5g==",
2466
+ "dev": true,
2467
+ "license": "MIT"
2468
+ },
2469
+ "node_modules/tough-cookie": {
2470
+ "version": "6.0.0",
2471
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.0.tgz",
2472
+ "integrity": "sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==",
2473
+ "dev": true,
2474
+ "license": "BSD-3-Clause",
2475
+ "dependencies": {
2476
+ "tldts": "^7.0.5"
2477
+ },
2478
+ "engines": {
2479
+ "node": ">=16"
2480
+ }
2481
+ },
2482
+ "node_modules/tslib": {
2483
+ "version": "2.8.1",
2484
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
2485
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
2486
+ "license": "0BSD",
2487
+ "optional": true
2488
+ },
2489
+ "node_modules/type-fest": {
2490
+ "version": "0.13.1",
2491
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz",
2492
+ "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==",
2493
+ "license": "(MIT OR CC0-1.0)",
2494
+ "engines": {
2495
+ "node": ">=10"
2496
+ },
2497
+ "funding": {
2498
+ "url": "https://github.com/sponsors/sindresorhus"
2499
+ }
2500
+ },
2501
+ "node_modules/typescript": {
2502
+ "version": "5.9.2",
2503
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz",
2504
+ "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==",
2505
+ "dev": true,
2506
+ "license": "Apache-2.0",
2507
+ "bin": {
2508
+ "tsc": "bin/tsc",
2509
+ "tsserver": "bin/tsserver"
2510
+ },
2511
+ "engines": {
2512
+ "node": ">=14.17"
2513
+ }
2514
+ },
2515
+ "node_modules/undici-types": {
2516
+ "version": "5.26.5",
2517
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
2518
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="
2519
+ },
2520
+ "node_modules/vite": {
2521
+ "version": "6.3.5",
2522
+ "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz",
2523
+ "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==",
2524
+ "dev": true,
2525
+ "license": "MIT",
2526
+ "dependencies": {
2527
+ "esbuild": "^0.25.0",
2528
+ "fdir": "^6.4.4",
2529
+ "picomatch": "^4.0.2",
2530
+ "postcss": "^8.5.3",
2531
+ "rollup": "^4.34.9",
2532
+ "tinyglobby": "^0.2.13"
2533
+ },
2534
+ "bin": {
2535
+ "vite": "bin/vite.js"
2536
+ },
2537
+ "engines": {
2538
+ "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
2539
+ },
2540
+ "funding": {
2541
+ "url": "https://github.com/vitejs/vite?sponsor=1"
2542
+ },
2543
+ "optionalDependencies": {
2544
+ "fsevents": "~2.3.3"
2545
+ },
2546
+ "peerDependencies": {
2547
+ "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
2548
+ "jiti": ">=1.21.0",
2549
+ "less": "*",
2550
+ "lightningcss": "^1.21.0",
2551
+ "sass": "*",
2552
+ "sass-embedded": "*",
2553
+ "stylus": "*",
2554
+ "sugarss": "*",
2555
+ "terser": "^5.16.0",
2556
+ "tsx": "^4.8.1",
2557
+ "yaml": "^2.4.2"
2558
+ },
2559
+ "peerDependenciesMeta": {
2560
+ "@types/node": {
2561
+ "optional": true
2562
+ },
2563
+ "jiti": {
2564
+ "optional": true
2565
+ },
2566
+ "less": {
2567
+ "optional": true
2568
+ },
2569
+ "lightningcss": {
2570
+ "optional": true
2571
+ },
2572
+ "sass": {
2573
+ "optional": true
2574
+ },
2575
+ "sass-embedded": {
2576
+ "optional": true
2577
+ },
2578
+ "stylus": {
2579
+ "optional": true
2580
+ },
2581
+ "sugarss": {
2582
+ "optional": true
2583
+ },
2584
+ "terser": {
2585
+ "optional": true
2586
+ },
2587
+ "tsx": {
2588
+ "optional": true
2589
+ },
2590
+ "yaml": {
2591
+ "optional": true
2592
+ }
2593
+ }
2594
+ },
2595
+ "node_modules/wrap-ansi": {
2596
+ "version": "6.2.0",
2597
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
2598
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
2599
+ "dev": true,
2600
+ "license": "MIT",
2601
+ "dependencies": {
2602
+ "ansi-styles": "^4.0.0",
2603
+ "string-width": "^4.1.0",
2604
+ "strip-ansi": "^6.0.0"
2605
+ },
2606
+ "engines": {
2607
+ "node": ">=8"
2608
+ }
2609
+ },
2610
+ "node_modules/ws": {
2611
+ "version": "8.18.3",
2612
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
2613
+ "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
2614
+ "dev": true,
2615
+ "license": "MIT",
2616
+ "engines": {
2617
+ "node": ">=10.0.0"
2618
+ },
2619
+ "peerDependencies": {
2620
+ "bufferutil": "^4.0.1",
2621
+ "utf-8-validate": ">=5.0.2"
2622
+ },
2623
+ "peerDependenciesMeta": {
2624
+ "bufferutil": {
2625
+ "optional": true
2626
+ },
2627
+ "utf-8-validate": {
2628
+ "optional": true
2629
+ }
2630
+ }
2631
+ },
2632
+ "node_modules/y18n": {
2633
+ "version": "5.0.8",
2634
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
2635
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
2636
+ "dev": true,
2637
+ "license": "ISC",
2638
+ "engines": {
2639
+ "node": ">=10"
2640
+ }
2641
+ },
2642
+ "node_modules/yallist": {
2643
+ "version": "5.0.0",
2644
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz",
2645
+ "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==",
2646
+ "license": "BlueOak-1.0.0",
2647
+ "engines": {
2648
+ "node": ">=18"
2649
+ }
2650
+ },
2651
+ "node_modules/yargs": {
2652
+ "version": "17.7.2",
2653
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
2654
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
2655
+ "dev": true,
2656
+ "license": "MIT",
2657
+ "dependencies": {
2658
+ "cliui": "^8.0.1",
2659
+ "escalade": "^3.1.1",
2660
+ "get-caller-file": "^2.0.5",
2661
+ "require-directory": "^2.1.1",
2662
+ "string-width": "^4.2.3",
2663
+ "y18n": "^5.0.5",
2664
+ "yargs-parser": "^21.1.1"
2665
+ },
2666
+ "engines": {
2667
+ "node": ">=12"
2668
+ }
2669
+ },
2670
+ "node_modules/yargs-parser": {
2671
+ "version": "21.1.1",
2672
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
2673
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
2674
+ "dev": true,
2675
+ "license": "ISC",
2676
+ "engines": {
2677
+ "node": ">=12"
2678
+ }
2679
+ },
2680
+ "node_modules/yoctocolors-cjs": {
2681
+ "version": "2.1.3",
2682
+ "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz",
2683
+ "integrity": "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==",
2684
+ "dev": true,
2685
+ "license": "MIT",
2686
+ "engines": {
2687
+ "node": ">=18"
2688
+ },
2689
+ "funding": {
2690
+ "url": "https://github.com/sponsors/sindresorhus"
2691
+ }
2692
+ }
2693
+ }
2694
+ }
video-object-detection/package.json ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "video-object-detection",
3
+ "private": true,
4
+ "version": "0.0.0",
5
+ "type": "module",
6
+ "scripts": {
7
+ "dev": "vite",
8
+ "build": "vite build",
9
+ "preview": "vite preview"
10
+ },
11
+ "devDependencies": {
12
+ "@gradio/client": "^1.18.0",
13
+ "vite": "^6.0.5"
14
+ },
15
+ "dependencies": {
16
+ "@huggingface/transformers": "3.7.1"
17
+ }
18
+ }
video-object-detection/style.css ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ * {
2
+ box-sizing: border-box;
3
+ padding: 0;
4
+ margin: 0;
5
+ font-family: sans-serif;
6
+ }
7
+
8
+ html,
9
+ body {
10
+ height: 100%;
11
+ }
12
+
13
+ body {
14
+ padding: 16px 32px;
15
+ }
16
+
17
+ body,
18
+ #container {
19
+ display: flex;
20
+ flex-direction: column;
21
+ justify-content: center;
22
+ align-items: center;
23
+ }
24
+
25
+ #controls {
26
+ display: flex;
27
+ padding: 1rem;
28
+ gap: 1rem;
29
+ }
30
+
31
+ #controls > div {
32
+ text-align: center;
33
+ }
34
+
35
+ h1,
36
+ h4 {
37
+ text-align: center;
38
+ }
39
+
40
+ h4 {
41
+ margin-top: 0.5rem;
42
+ }
43
+
44
+ #container {
45
+ position: relative;
46
+ width: 720px;
47
+ height: 405px;
48
+ max-width: 100%;
49
+ max-height: 100%;
50
+ border: 2px dashed #d1d5db;
51
+ border-radius: 0.75rem;
52
+ overflow: hidden;
53
+ margin-top: 1rem;
54
+ background-size: 100% 100%;
55
+ background-position: center;
56
+ background-repeat: no-repeat;
57
+ }
58
+
59
+ #overlay,
60
+ canvas {
61
+ position: absolute;
62
+ width: 100%;
63
+ height: 100%;
64
+ }
65
+
66
+ #status {
67
+ min-height: 16px;
68
+ margin: 8px 0;
69
+ }
70
+
71
+ .bounding-box {
72
+ position: absolute;
73
+ box-sizing: border-box;
74
+ border: solid 2px;
75
+ }
76
+
77
+ .bounding-box-label {
78
+ color: white;
79
+ position: absolute;
80
+ font-size: 12px;
81
+ margin: -16px 0 0 -2px;
82
+ padding: 1px;
83
+ }
video-object-detection/vite.config.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ import { defineConfig } from "vite";
2
+ export default defineConfig({
3
+ build: {
4
+ target: "esnext",
5
+ },
6
+ });