Spaces:
Running
Running
Sylvain Filoni
commited on
Commit
•
9ada4bc
1
Parent(s):
5f31192
update gradio client
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- index.mjs +3 -3
- node_modules/.bin/mime +1 -0
- node_modules/.bin/msw +1 -0
- node_modules/.bin/node-gyp-build +1 -0
- node_modules/.bin/node-gyp-build-optional +1 -0
- node_modules/.bin/node-gyp-build-test +1 -0
- node_modules/.bin/tsc +1 -0
- node_modules/.bin/tsserver +1 -0
- node_modules/.package-lock.json +0 -964
- node_modules/@bundled-es-modules/cookie/README.md +18 -0
- node_modules/@bundled-es-modules/cookie/index-cjs.cjs +2 -0
- node_modules/@bundled-es-modules/cookie/index-esm.js +184 -0
- node_modules/@bundled-es-modules/cookie/node_modules/cookie/HISTORY.md +142 -0
- node_modules/@bundled-es-modules/cookie/node_modules/cookie/LICENSE +24 -0
- node_modules/@bundled-es-modules/cookie/node_modules/cookie/README.md +302 -0
- node_modules/@bundled-es-modules/cookie/node_modules/cookie/SECURITY.md +25 -0
- node_modules/@bundled-es-modules/cookie/node_modules/cookie/index.js +270 -0
- node_modules/@bundled-es-modules/cookie/node_modules/cookie/package.json +82 -0
- node_modules/@bundled-es-modules/cookie/package.json +59 -0
- node_modules/@bundled-es-modules/statuses/README.md +17 -0
- node_modules/@bundled-es-modules/statuses/index-cjs.cjs +2 -0
- node_modules/@bundled-es-modules/statuses/index-esm.js +184 -0
- node_modules/@bundled-es-modules/statuses/package.json +59 -0
- node_modules/@gradio/.DS_Store +0 -0
- node_modules/@gradio/client/.DS_Store +0 -0
- node_modules/@gradio/client/CHANGELOG.md +415 -0
- node_modules/@gradio/client/README.md +81 -79
- node_modules/@gradio/client/dist/client.d.ts +67 -73
- node_modules/@gradio/client/dist/client.d.ts.map +1 -1
- node_modules/@gradio/client/dist/constants.d.ts +30 -0
- node_modules/@gradio/client/dist/constants.d.ts.map +1 -0
- node_modules/@gradio/client/dist/helpers/api_info.d.ts +48 -0
- node_modules/@gradio/client/dist/helpers/api_info.d.ts.map +1 -0
- node_modules/@gradio/client/dist/helpers/data.d.ts +22 -0
- node_modules/@gradio/client/dist/helpers/data.d.ts.map +1 -0
- node_modules/@gradio/client/dist/{utils.d.ts → helpers/init_helpers.d.ts} +9 -16
- node_modules/@gradio/client/dist/helpers/init_helpers.d.ts.map +1 -0
- node_modules/@gradio/client/dist/helpers/spaces.d.ts +7 -0
- node_modules/@gradio/client/dist/helpers/spaces.d.ts.map +1 -0
- node_modules/@gradio/client/dist/index.d.ts +9 -3
- node_modules/@gradio/client/dist/index.d.ts.map +1 -1
- node_modules/@gradio/client/dist/index.js +0 -0
- node_modules/@gradio/client/dist/test/handlers.d.ts +4 -0
- node_modules/@gradio/client/dist/test/handlers.d.ts.map +1 -0
- node_modules/@gradio/client/dist/test/mock_eventsource.d.ts +2 -0
- node_modules/@gradio/client/dist/test/mock_eventsource.d.ts.map +1 -0
- node_modules/@gradio/client/dist/test/server.d.ts +2 -0
- node_modules/@gradio/client/dist/test/server.d.ts.map +1 -0
- node_modules/@gradio/client/dist/test/test_data.d.ts +76 -0
- node_modules/@gradio/client/dist/test/test_data.d.ts.map +1 -0
index.mjs
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
import express from "express";
|
2 |
-
import 'dotenv/config.js'
|
3 |
import { createServer } from "http";
|
4 |
import { Server } from "socket.io";
|
5 |
-
import {
|
6 |
import { createRequire } from 'node:module'
|
7 |
const require = createRequire(import.meta.url);
|
8 |
global.EventSource = require('eventsource');
|
@@ -26,7 +26,7 @@ io.on("connection", (socket) => {
|
|
26 |
|
27 |
async function asyncAPICall(data, socket) {
|
28 |
|
29 |
-
const grapi = await
|
30 |
try{
|
31 |
const api_result = await grapi.predict("/infer", {
|
32 |
image_string: data[0], // blob in 'image' Image component
|
|
|
1 |
import express from "express";
|
2 |
+
//import 'dotenv/config.js'
|
3 |
import { createServer } from "http";
|
4 |
import { Server } from "socket.io";
|
5 |
+
import { Client } from "@gradio/client";
|
6 |
import { createRequire } from 'node:module'
|
7 |
const require = createRequire(import.meta.url);
|
8 |
global.EventSource = require('eventsource');
|
|
|
26 |
|
27 |
async function asyncAPICall(data, socket) {
|
28 |
|
29 |
+
const grapi = await Client.connect("fffiloni/mndrm-call");
|
30 |
try{
|
31 |
const api_result = await grapi.predict("/infer", {
|
32 |
image_string: data[0], // blob in 'image' Image component
|
node_modules/.bin/mime
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
../mime/cli.js
|
node_modules/.bin/msw
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
../msw/cli/index.js
|
node_modules/.bin/node-gyp-build
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
../node-gyp-build/bin.js
|
node_modules/.bin/node-gyp-build-optional
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
../node-gyp-build/optional.js
|
node_modules/.bin/node-gyp-build-test
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
../node-gyp-build/build-test.js
|
node_modules/.bin/tsc
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
../typescript/bin/tsc
|
node_modules/.bin/tsserver
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
../typescript/bin/tsserver
|
node_modules/.package-lock.json
DELETED
@@ -1,964 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"name": "live-vision",
|
3 |
-
"version": "1.0.0",
|
4 |
-
"lockfileVersion": 3,
|
5 |
-
"requires": true,
|
6 |
-
"packages": {
|
7 |
-
"node_modules/@gradio/client": {
|
8 |
-
"version": "0.10.1",
|
9 |
-
"resolved": "https://registry.npmjs.org/@gradio/client/-/client-0.10.1.tgz",
|
10 |
-
"integrity": "sha512-C3uWIWEqlpTuG3sfPw3K3+26Fkr+jXPL8U2lC1u7DlBm25rHdGMVX17o8ApW7XcFtznfaLceVtpnDPkDpQTJlw==",
|
11 |
-
"dependencies": {
|
12 |
-
"bufferutil": "^4.0.7",
|
13 |
-
"semiver": "^1.1.0",
|
14 |
-
"ws": "^8.13.0"
|
15 |
-
},
|
16 |
-
"engines": {
|
17 |
-
"node": ">=18.0.0"
|
18 |
-
}
|
19 |
-
},
|
20 |
-
"node_modules/@socket.io/component-emitter": {
|
21 |
-
"version": "3.1.0",
|
22 |
-
"resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz",
|
23 |
-
"integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg=="
|
24 |
-
},
|
25 |
-
"node_modules/@types/cookie": {
|
26 |
-
"version": "0.4.1",
|
27 |
-
"resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz",
|
28 |
-
"integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q=="
|
29 |
-
},
|
30 |
-
"node_modules/@types/cors": {
|
31 |
-
"version": "2.8.17",
|
32 |
-
"resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz",
|
33 |
-
"integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==",
|
34 |
-
"dependencies": {
|
35 |
-
"@types/node": "*"
|
36 |
-
}
|
37 |
-
},
|
38 |
-
"node_modules/@types/node": {
|
39 |
-
"version": "20.11.6",
|
40 |
-
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.6.tgz",
|
41 |
-
"integrity": "sha512-+EOokTnksGVgip2PbYbr3xnR7kZigh4LbybAfBAw5BpnQ+FqBYUsvCEjYd70IXKlbohQ64mzEYmMtlWUY8q//Q==",
|
42 |
-
"dependencies": {
|
43 |
-
"undici-types": "~5.26.4"
|
44 |
-
}
|
45 |
-
},
|
46 |
-
"node_modules/accepts": {
|
47 |
-
"version": "1.3.8",
|
48 |
-
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
|
49 |
-
"integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
|
50 |
-
"dependencies": {
|
51 |
-
"mime-types": "~2.1.34",
|
52 |
-
"negotiator": "0.6.3"
|
53 |
-
},
|
54 |
-
"engines": {
|
55 |
-
"node": ">= 0.6"
|
56 |
-
}
|
57 |
-
},
|
58 |
-
"node_modules/array-flatten": {
|
59 |
-
"version": "1.1.1",
|
60 |
-
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
|
61 |
-
"integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
|
62 |
-
},
|
63 |
-
"node_modules/base64id": {
|
64 |
-
"version": "2.0.0",
|
65 |
-
"resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz",
|
66 |
-
"integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==",
|
67 |
-
"engines": {
|
68 |
-
"node": "^4.5.0 || >= 5.9"
|
69 |
-
}
|
70 |
-
},
|
71 |
-
"node_modules/body-parser": {
|
72 |
-
"version": "1.20.1",
|
73 |
-
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
|
74 |
-
"integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
|
75 |
-
"dependencies": {
|
76 |
-
"bytes": "3.1.2",
|
77 |
-
"content-type": "~1.0.4",
|
78 |
-
"debug": "2.6.9",
|
79 |
-
"depd": "2.0.0",
|
80 |
-
"destroy": "1.2.0",
|
81 |
-
"http-errors": "2.0.0",
|
82 |
-
"iconv-lite": "0.4.24",
|
83 |
-
"on-finished": "2.4.1",
|
84 |
-
"qs": "6.11.0",
|
85 |
-
"raw-body": "2.5.1",
|
86 |
-
"type-is": "~1.6.18",
|
87 |
-
"unpipe": "1.0.0"
|
88 |
-
},
|
89 |
-
"engines": {
|
90 |
-
"node": ">= 0.8",
|
91 |
-
"npm": "1.2.8000 || >= 1.4.16"
|
92 |
-
}
|
93 |
-
},
|
94 |
-
"node_modules/bufferutil": {
|
95 |
-
"version": "4.0.8",
|
96 |
-
"resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.8.tgz",
|
97 |
-
"integrity": "sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==",
|
98 |
-
"hasInstallScript": true,
|
99 |
-
"dependencies": {
|
100 |
-
"node-gyp-build": "^4.3.0"
|
101 |
-
},
|
102 |
-
"engines": {
|
103 |
-
"node": ">=6.14.2"
|
104 |
-
}
|
105 |
-
},
|
106 |
-
"node_modules/bytes": {
|
107 |
-
"version": "3.1.2",
|
108 |
-
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
|
109 |
-
"integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
|
110 |
-
"engines": {
|
111 |
-
"node": ">= 0.8"
|
112 |
-
}
|
113 |
-
},
|
114 |
-
"node_modules/call-bind": {
|
115 |
-
"version": "1.0.5",
|
116 |
-
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz",
|
117 |
-
"integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
|
118 |
-
"dependencies": {
|
119 |
-
"function-bind": "^1.1.2",
|
120 |
-
"get-intrinsic": "^1.2.1",
|
121 |
-
"set-function-length": "^1.1.1"
|
122 |
-
},
|
123 |
-
"funding": {
|
124 |
-
"url": "https://github.com/sponsors/ljharb"
|
125 |
-
}
|
126 |
-
},
|
127 |
-
"node_modules/content-disposition": {
|
128 |
-
"version": "0.5.4",
|
129 |
-
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
|
130 |
-
"integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
|
131 |
-
"dependencies": {
|
132 |
-
"safe-buffer": "5.2.1"
|
133 |
-
},
|
134 |
-
"engines": {
|
135 |
-
"node": ">= 0.6"
|
136 |
-
}
|
137 |
-
},
|
138 |
-
"node_modules/content-type": {
|
139 |
-
"version": "1.0.5",
|
140 |
-
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
|
141 |
-
"integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
|
142 |
-
"engines": {
|
143 |
-
"node": ">= 0.6"
|
144 |
-
}
|
145 |
-
},
|
146 |
-
"node_modules/cookie": {
|
147 |
-
"version": "0.5.0",
|
148 |
-
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
|
149 |
-
"integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
|
150 |
-
"engines": {
|
151 |
-
"node": ">= 0.6"
|
152 |
-
}
|
153 |
-
},
|
154 |
-
"node_modules/cookie-signature": {
|
155 |
-
"version": "1.0.6",
|
156 |
-
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
|
157 |
-
"integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
|
158 |
-
},
|
159 |
-
"node_modules/cors": {
|
160 |
-
"version": "2.8.5",
|
161 |
-
"resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
|
162 |
-
"integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
|
163 |
-
"dependencies": {
|
164 |
-
"object-assign": "^4",
|
165 |
-
"vary": "^1"
|
166 |
-
},
|
167 |
-
"engines": {
|
168 |
-
"node": ">= 0.10"
|
169 |
-
}
|
170 |
-
},
|
171 |
-
"node_modules/debug": {
|
172 |
-
"version": "2.6.9",
|
173 |
-
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
174 |
-
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
175 |
-
"dependencies": {
|
176 |
-
"ms": "2.0.0"
|
177 |
-
}
|
178 |
-
},
|
179 |
-
"node_modules/define-data-property": {
|
180 |
-
"version": "1.1.1",
|
181 |
-
"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz",
|
182 |
-
"integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==",
|
183 |
-
"dependencies": {
|
184 |
-
"get-intrinsic": "^1.2.1",
|
185 |
-
"gopd": "^1.0.1",
|
186 |
-
"has-property-descriptors": "^1.0.0"
|
187 |
-
},
|
188 |
-
"engines": {
|
189 |
-
"node": ">= 0.4"
|
190 |
-
}
|
191 |
-
},
|
192 |
-
"node_modules/depd": {
|
193 |
-
"version": "2.0.0",
|
194 |
-
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
|
195 |
-
"integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
|
196 |
-
"engines": {
|
197 |
-
"node": ">= 0.8"
|
198 |
-
}
|
199 |
-
},
|
200 |
-
"node_modules/destroy": {
|
201 |
-
"version": "1.2.0",
|
202 |
-
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
|
203 |
-
"integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
|
204 |
-
"engines": {
|
205 |
-
"node": ">= 0.8",
|
206 |
-
"npm": "1.2.8000 || >= 1.4.16"
|
207 |
-
}
|
208 |
-
},
|
209 |
-
"node_modules/dotenv": {
|
210 |
-
"version": "4.0.0",
|
211 |
-
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz",
|
212 |
-
"integrity": "sha512-XcaMACOr3JMVcEv0Y/iUM2XaOsATRZ3U1In41/1jjK6vJZ2PZbQ1bzCG8uvaByfaBpl9gqc9QWJovpUGBXLLYQ==",
|
213 |
-
"engines": {
|
214 |
-
"node": ">=4.6.0"
|
215 |
-
}
|
216 |
-
},
|
217 |
-
"node_modules/ee-first": {
|
218 |
-
"version": "1.1.1",
|
219 |
-
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
|
220 |
-
"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
|
221 |
-
},
|
222 |
-
"node_modules/encodeurl": {
|
223 |
-
"version": "1.0.2",
|
224 |
-
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
|
225 |
-
"integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
|
226 |
-
"engines": {
|
227 |
-
"node": ">= 0.8"
|
228 |
-
}
|
229 |
-
},
|
230 |
-
"node_modules/engine.io": {
|
231 |
-
"version": "6.5.4",
|
232 |
-
"resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.4.tgz",
|
233 |
-
"integrity": "sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg==",
|
234 |
-
"dependencies": {
|
235 |
-
"@types/cookie": "^0.4.1",
|
236 |
-
"@types/cors": "^2.8.12",
|
237 |
-
"@types/node": ">=10.0.0",
|
238 |
-
"accepts": "~1.3.4",
|
239 |
-
"base64id": "2.0.0",
|
240 |
-
"cookie": "~0.4.1",
|
241 |
-
"cors": "~2.8.5",
|
242 |
-
"debug": "~4.3.1",
|
243 |
-
"engine.io-parser": "~5.2.1",
|
244 |
-
"ws": "~8.11.0"
|
245 |
-
},
|
246 |
-
"engines": {
|
247 |
-
"node": ">=10.2.0"
|
248 |
-
}
|
249 |
-
},
|
250 |
-
"node_modules/engine.io-parser": {
|
251 |
-
"version": "5.2.1",
|
252 |
-
"resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.1.tgz",
|
253 |
-
"integrity": "sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==",
|
254 |
-
"engines": {
|
255 |
-
"node": ">=10.0.0"
|
256 |
-
}
|
257 |
-
},
|
258 |
-
"node_modules/engine.io/node_modules/cookie": {
|
259 |
-
"version": "0.4.2",
|
260 |
-
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
|
261 |
-
"integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
|
262 |
-
"engines": {
|
263 |
-
"node": ">= 0.6"
|
264 |
-
}
|
265 |
-
},
|
266 |
-
"node_modules/engine.io/node_modules/debug": {
|
267 |
-
"version": "4.3.4",
|
268 |
-
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
269 |
-
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
|
270 |
-
"dependencies": {
|
271 |
-
"ms": "2.1.2"
|
272 |
-
},
|
273 |
-
"engines": {
|
274 |
-
"node": ">=6.0"
|
275 |
-
},
|
276 |
-
"peerDependenciesMeta": {
|
277 |
-
"supports-color": {
|
278 |
-
"optional": true
|
279 |
-
}
|
280 |
-
}
|
281 |
-
},
|
282 |
-
"node_modules/engine.io/node_modules/ms": {
|
283 |
-
"version": "2.1.2",
|
284 |
-
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
285 |
-
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
286 |
-
},
|
287 |
-
"node_modules/engine.io/node_modules/ws": {
|
288 |
-
"version": "8.11.0",
|
289 |
-
"resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz",
|
290 |
-
"integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==",
|
291 |
-
"engines": {
|
292 |
-
"node": ">=10.0.0"
|
293 |
-
},
|
294 |
-
"peerDependencies": {
|
295 |
-
"bufferutil": "^4.0.1",
|
296 |
-
"utf-8-validate": "^5.0.2"
|
297 |
-
},
|
298 |
-
"peerDependenciesMeta": {
|
299 |
-
"bufferutil": {
|
300 |
-
"optional": true
|
301 |
-
},
|
302 |
-
"utf-8-validate": {
|
303 |
-
"optional": true
|
304 |
-
}
|
305 |
-
}
|
306 |
-
},
|
307 |
-
"node_modules/escape-html": {
|
308 |
-
"version": "1.0.3",
|
309 |
-
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
|
310 |
-
"integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
|
311 |
-
},
|
312 |
-
"node_modules/etag": {
|
313 |
-
"version": "1.8.1",
|
314 |
-
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
|
315 |
-
"integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
|
316 |
-
"engines": {
|
317 |
-
"node": ">= 0.6"
|
318 |
-
}
|
319 |
-
},
|
320 |
-
"node_modules/eventsource": {
|
321 |
-
"version": "2.0.2",
|
322 |
-
"resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz",
|
323 |
-
"integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==",
|
324 |
-
"engines": {
|
325 |
-
"node": ">=12.0.0"
|
326 |
-
}
|
327 |
-
},
|
328 |
-
"node_modules/express": {
|
329 |
-
"version": "4.18.2",
|
330 |
-
"resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
|
331 |
-
"integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
|
332 |
-
"dependencies": {
|
333 |
-
"accepts": "~1.3.8",
|
334 |
-
"array-flatten": "1.1.1",
|
335 |
-
"body-parser": "1.20.1",
|
336 |
-
"content-disposition": "0.5.4",
|
337 |
-
"content-type": "~1.0.4",
|
338 |
-
"cookie": "0.5.0",
|
339 |
-
"cookie-signature": "1.0.6",
|
340 |
-
"debug": "2.6.9",
|
341 |
-
"depd": "2.0.0",
|
342 |
-
"encodeurl": "~1.0.2",
|
343 |
-
"escape-html": "~1.0.3",
|
344 |
-
"etag": "~1.8.1",
|
345 |
-
"finalhandler": "1.2.0",
|
346 |
-
"fresh": "0.5.2",
|
347 |
-
"http-errors": "2.0.0",
|
348 |
-
"merge-descriptors": "1.0.1",
|
349 |
-
"methods": "~1.1.2",
|
350 |
-
"on-finished": "2.4.1",
|
351 |
-
"parseurl": "~1.3.3",
|
352 |
-
"path-to-regexp": "0.1.7",
|
353 |
-
"proxy-addr": "~2.0.7",
|
354 |
-
"qs": "6.11.0",
|
355 |
-
"range-parser": "~1.2.1",
|
356 |
-
"safe-buffer": "5.2.1",
|
357 |
-
"send": "0.18.0",
|
358 |
-
"serve-static": "1.15.0",
|
359 |
-
"setprototypeof": "1.2.0",
|
360 |
-
"statuses": "2.0.1",
|
361 |
-
"type-is": "~1.6.18",
|
362 |
-
"utils-merge": "1.0.1",
|
363 |
-
"vary": "~1.1.2"
|
364 |
-
},
|
365 |
-
"engines": {
|
366 |
-
"node": ">= 0.10.0"
|
367 |
-
}
|
368 |
-
},
|
369 |
-
"node_modules/finalhandler": {
|
370 |
-
"version": "1.2.0",
|
371 |
-
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
|
372 |
-
"integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
|
373 |
-
"dependencies": {
|
374 |
-
"debug": "2.6.9",
|
375 |
-
"encodeurl": "~1.0.2",
|
376 |
-
"escape-html": "~1.0.3",
|
377 |
-
"on-finished": "2.4.1",
|
378 |
-
"parseurl": "~1.3.3",
|
379 |
-
"statuses": "2.0.1",
|
380 |
-
"unpipe": "~1.0.0"
|
381 |
-
},
|
382 |
-
"engines": {
|
383 |
-
"node": ">= 0.8"
|
384 |
-
}
|
385 |
-
},
|
386 |
-
"node_modules/forwarded": {
|
387 |
-
"version": "0.2.0",
|
388 |
-
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
|
389 |
-
"integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
|
390 |
-
"engines": {
|
391 |
-
"node": ">= 0.6"
|
392 |
-
}
|
393 |
-
},
|
394 |
-
"node_modules/fresh": {
|
395 |
-
"version": "0.5.2",
|
396 |
-
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
|
397 |
-
"integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
|
398 |
-
"engines": {
|
399 |
-
"node": ">= 0.6"
|
400 |
-
}
|
401 |
-
},
|
402 |
-
"node_modules/function-bind": {
|
403 |
-
"version": "1.1.2",
|
404 |
-
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
|
405 |
-
"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
|
406 |
-
"funding": {
|
407 |
-
"url": "https://github.com/sponsors/ljharb"
|
408 |
-
}
|
409 |
-
},
|
410 |
-
"node_modules/get-intrinsic": {
|
411 |
-
"version": "1.2.2",
|
412 |
-
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
|
413 |
-
"integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==",
|
414 |
-
"dependencies": {
|
415 |
-
"function-bind": "^1.1.2",
|
416 |
-
"has-proto": "^1.0.1",
|
417 |
-
"has-symbols": "^1.0.3",
|
418 |
-
"hasown": "^2.0.0"
|
419 |
-
},
|
420 |
-
"funding": {
|
421 |
-
"url": "https://github.com/sponsors/ljharb"
|
422 |
-
}
|
423 |
-
},
|
424 |
-
"node_modules/gopd": {
|
425 |
-
"version": "1.0.1",
|
426 |
-
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
|
427 |
-
"integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
|
428 |
-
"dependencies": {
|
429 |
-
"get-intrinsic": "^1.1.3"
|
430 |
-
},
|
431 |
-
"funding": {
|
432 |
-
"url": "https://github.com/sponsors/ljharb"
|
433 |
-
}
|
434 |
-
},
|
435 |
-
"node_modules/has-property-descriptors": {
|
436 |
-
"version": "1.0.1",
|
437 |
-
"resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz",
|
438 |
-
"integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==",
|
439 |
-
"dependencies": {
|
440 |
-
"get-intrinsic": "^1.2.2"
|
441 |
-
},
|
442 |
-
"funding": {
|
443 |
-
"url": "https://github.com/sponsors/ljharb"
|
444 |
-
}
|
445 |
-
},
|
446 |
-
"node_modules/has-proto": {
|
447 |
-
"version": "1.0.1",
|
448 |
-
"resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
|
449 |
-
"integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
|
450 |
-
"engines": {
|
451 |
-
"node": ">= 0.4"
|
452 |
-
},
|
453 |
-
"funding": {
|
454 |
-
"url": "https://github.com/sponsors/ljharb"
|
455 |
-
}
|
456 |
-
},
|
457 |
-
"node_modules/has-symbols": {
|
458 |
-
"version": "1.0.3",
|
459 |
-
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
|
460 |
-
"integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
|
461 |
-
"engines": {
|
462 |
-
"node": ">= 0.4"
|
463 |
-
},
|
464 |
-
"funding": {
|
465 |
-
"url": "https://github.com/sponsors/ljharb"
|
466 |
-
}
|
467 |
-
},
|
468 |
-
"node_modules/hasown": {
|
469 |
-
"version": "2.0.0",
|
470 |
-
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
|
471 |
-
"integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
|
472 |
-
"dependencies": {
|
473 |
-
"function-bind": "^1.1.2"
|
474 |
-
},
|
475 |
-
"engines": {
|
476 |
-
"node": ">= 0.4"
|
477 |
-
}
|
478 |
-
},
|
479 |
-
"node_modules/http-errors": {
|
480 |
-
"version": "2.0.0",
|
481 |
-
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
|
482 |
-
"integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
|
483 |
-
"dependencies": {
|
484 |
-
"depd": "2.0.0",
|
485 |
-
"inherits": "2.0.4",
|
486 |
-
"setprototypeof": "1.2.0",
|
487 |
-
"statuses": "2.0.1",
|
488 |
-
"toidentifier": "1.0.1"
|
489 |
-
},
|
490 |
-
"engines": {
|
491 |
-
"node": ">= 0.8"
|
492 |
-
}
|
493 |
-
},
|
494 |
-
"node_modules/iconv-lite": {
|
495 |
-
"version": "0.4.24",
|
496 |
-
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
|
497 |
-
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
|
498 |
-
"dependencies": {
|
499 |
-
"safer-buffer": ">= 2.1.2 < 3"
|
500 |
-
},
|
501 |
-
"engines": {
|
502 |
-
"node": ">=0.10.0"
|
503 |
-
}
|
504 |
-
},
|
505 |
-
"node_modules/inherits": {
|
506 |
-
"version": "2.0.4",
|
507 |
-
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
508 |
-
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
|
509 |
-
},
|
510 |
-
"node_modules/ipaddr.js": {
|
511 |
-
"version": "1.9.1",
|
512 |
-
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
|
513 |
-
"integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
|
514 |
-
"engines": {
|
515 |
-
"node": ">= 0.10"
|
516 |
-
}
|
517 |
-
},
|
518 |
-
"node_modules/media-typer": {
|
519 |
-
"version": "0.3.0",
|
520 |
-
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
|
521 |
-
"integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
|
522 |
-
"engines": {
|
523 |
-
"node": ">= 0.6"
|
524 |
-
}
|
525 |
-
},
|
526 |
-
"node_modules/merge-descriptors": {
|
527 |
-
"version": "1.0.1",
|
528 |
-
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
|
529 |
-
"integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
|
530 |
-
},
|
531 |
-
"node_modules/methods": {
|
532 |
-
"version": "1.1.2",
|
533 |
-
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
|
534 |
-
"integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
|
535 |
-
"engines": {
|
536 |
-
"node": ">= 0.6"
|
537 |
-
}
|
538 |
-
},
|
539 |
-
"node_modules/mime": {
|
540 |
-
"version": "1.6.0",
|
541 |
-
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
|
542 |
-
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
|
543 |
-
"bin": {
|
544 |
-
"mime": "cli.js"
|
545 |
-
},
|
546 |
-
"engines": {
|
547 |
-
"node": ">=4"
|
548 |
-
}
|
549 |
-
},
|
550 |
-
"node_modules/mime-db": {
|
551 |
-
"version": "1.52.0",
|
552 |
-
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
|
553 |
-
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
|
554 |
-
"engines": {
|
555 |
-
"node": ">= 0.6"
|
556 |
-
}
|
557 |
-
},
|
558 |
-
"node_modules/mime-types": {
|
559 |
-
"version": "2.1.35",
|
560 |
-
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
|
561 |
-
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
|
562 |
-
"dependencies": {
|
563 |
-
"mime-db": "1.52.0"
|
564 |
-
},
|
565 |
-
"engines": {
|
566 |
-
"node": ">= 0.6"
|
567 |
-
}
|
568 |
-
},
|
569 |
-
"node_modules/ms": {
|
570 |
-
"version": "2.0.0",
|
571 |
-
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
572 |
-
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
|
573 |
-
},
|
574 |
-
"node_modules/negotiator": {
|
575 |
-
"version": "0.6.3",
|
576 |
-
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
|
577 |
-
"integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
|
578 |
-
"engines": {
|
579 |
-
"node": ">= 0.6"
|
580 |
-
}
|
581 |
-
},
|
582 |
-
"node_modules/node-gyp-build": {
|
583 |
-
"version": "4.8.0",
|
584 |
-
"resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz",
|
585 |
-
"integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==",
|
586 |
-
"bin": {
|
587 |
-
"node-gyp-build": "bin.js",
|
588 |
-
"node-gyp-build-optional": "optional.js",
|
589 |
-
"node-gyp-build-test": "build-test.js"
|
590 |
-
}
|
591 |
-
},
|
592 |
-
"node_modules/object-assign": {
|
593 |
-
"version": "4.1.1",
|
594 |
-
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
595 |
-
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
|
596 |
-
"engines": {
|
597 |
-
"node": ">=0.10.0"
|
598 |
-
}
|
599 |
-
},
|
600 |
-
"node_modules/object-inspect": {
|
601 |
-
"version": "1.13.1",
|
602 |
-
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
|
603 |
-
"integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
|
604 |
-
"funding": {
|
605 |
-
"url": "https://github.com/sponsors/ljharb"
|
606 |
-
}
|
607 |
-
},
|
608 |
-
"node_modules/on-finished": {
|
609 |
-
"version": "2.4.1",
|
610 |
-
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
|
611 |
-
"integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
|
612 |
-
"dependencies": {
|
613 |
-
"ee-first": "1.1.1"
|
614 |
-
},
|
615 |
-
"engines": {
|
616 |
-
"node": ">= 0.8"
|
617 |
-
}
|
618 |
-
},
|
619 |
-
"node_modules/parseurl": {
|
620 |
-
"version": "1.3.3",
|
621 |
-
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
|
622 |
-
"integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
|
623 |
-
"engines": {
|
624 |
-
"node": ">= 0.8"
|
625 |
-
}
|
626 |
-
},
|
627 |
-
"node_modules/path-to-regexp": {
|
628 |
-
"version": "0.1.7",
|
629 |
-
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
|
630 |
-
"integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
|
631 |
-
},
|
632 |
-
"node_modules/proxy-addr": {
|
633 |
-
"version": "2.0.7",
|
634 |
-
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
|
635 |
-
"integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
|
636 |
-
"dependencies": {
|
637 |
-
"forwarded": "0.2.0",
|
638 |
-
"ipaddr.js": "1.9.1"
|
639 |
-
},
|
640 |
-
"engines": {
|
641 |
-
"node": ">= 0.10"
|
642 |
-
}
|
643 |
-
},
|
644 |
-
"node_modules/qs": {
|
645 |
-
"version": "6.11.0",
|
646 |
-
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
|
647 |
-
"integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
|
648 |
-
"dependencies": {
|
649 |
-
"side-channel": "^1.0.4"
|
650 |
-
},
|
651 |
-
"engines": {
|
652 |
-
"node": ">=0.6"
|
653 |
-
},
|
654 |
-
"funding": {
|
655 |
-
"url": "https://github.com/sponsors/ljharb"
|
656 |
-
}
|
657 |
-
},
|
658 |
-
"node_modules/range-parser": {
|
659 |
-
"version": "1.2.1",
|
660 |
-
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
|
661 |
-
"integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
|
662 |
-
"engines": {
|
663 |
-
"node": ">= 0.6"
|
664 |
-
}
|
665 |
-
},
|
666 |
-
"node_modules/raw-body": {
|
667 |
-
"version": "2.5.1",
|
668 |
-
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
|
669 |
-
"integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
|
670 |
-
"dependencies": {
|
671 |
-
"bytes": "3.1.2",
|
672 |
-
"http-errors": "2.0.0",
|
673 |
-
"iconv-lite": "0.4.24",
|
674 |
-
"unpipe": "1.0.0"
|
675 |
-
},
|
676 |
-
"engines": {
|
677 |
-
"node": ">= 0.8"
|
678 |
-
}
|
679 |
-
},
|
680 |
-
"node_modules/safe-buffer": {
|
681 |
-
"version": "5.2.1",
|
682 |
-
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
|
683 |
-
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
|
684 |
-
"funding": [
|
685 |
-
{
|
686 |
-
"type": "github",
|
687 |
-
"url": "https://github.com/sponsors/feross"
|
688 |
-
},
|
689 |
-
{
|
690 |
-
"type": "patreon",
|
691 |
-
"url": "https://www.patreon.com/feross"
|
692 |
-
},
|
693 |
-
{
|
694 |
-
"type": "consulting",
|
695 |
-
"url": "https://feross.org/support"
|
696 |
-
}
|
697 |
-
]
|
698 |
-
},
|
699 |
-
"node_modules/safer-buffer": {
|
700 |
-
"version": "2.1.2",
|
701 |
-
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
|
702 |
-
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
|
703 |
-
},
|
704 |
-
"node_modules/semiver": {
|
705 |
-
"version": "1.1.0",
|
706 |
-
"resolved": "https://registry.npmjs.org/semiver/-/semiver-1.1.0.tgz",
|
707 |
-
"integrity": "sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==",
|
708 |
-
"engines": {
|
709 |
-
"node": ">=6"
|
710 |
-
}
|
711 |
-
},
|
712 |
-
"node_modules/send": {
|
713 |
-
"version": "0.18.0",
|
714 |
-
"resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
|
715 |
-
"integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
|
716 |
-
"dependencies": {
|
717 |
-
"debug": "2.6.9",
|
718 |
-
"depd": "2.0.0",
|
719 |
-
"destroy": "1.2.0",
|
720 |
-
"encodeurl": "~1.0.2",
|
721 |
-
"escape-html": "~1.0.3",
|
722 |
-
"etag": "~1.8.1",
|
723 |
-
"fresh": "0.5.2",
|
724 |
-
"http-errors": "2.0.0",
|
725 |
-
"mime": "1.6.0",
|
726 |
-
"ms": "2.1.3",
|
727 |
-
"on-finished": "2.4.1",
|
728 |
-
"range-parser": "~1.2.1",
|
729 |
-
"statuses": "2.0.1"
|
730 |
-
},
|
731 |
-
"engines": {
|
732 |
-
"node": ">= 0.8.0"
|
733 |
-
}
|
734 |
-
},
|
735 |
-
"node_modules/send/node_modules/ms": {
|
736 |
-
"version": "2.1.3",
|
737 |
-
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
738 |
-
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
|
739 |
-
},
|
740 |
-
"node_modules/serve-static": {
|
741 |
-
"version": "1.15.0",
|
742 |
-
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
|
743 |
-
"integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
|
744 |
-
"dependencies": {
|
745 |
-
"encodeurl": "~1.0.2",
|
746 |
-
"escape-html": "~1.0.3",
|
747 |
-
"parseurl": "~1.3.3",
|
748 |
-
"send": "0.18.0"
|
749 |
-
},
|
750 |
-
"engines": {
|
751 |
-
"node": ">= 0.8.0"
|
752 |
-
}
|
753 |
-
},
|
754 |
-
"node_modules/set-function-length": {
|
755 |
-
"version": "1.2.0",
|
756 |
-
"resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.0.tgz",
|
757 |
-
"integrity": "sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==",
|
758 |
-
"dependencies": {
|
759 |
-
"define-data-property": "^1.1.1",
|
760 |
-
"function-bind": "^1.1.2",
|
761 |
-
"get-intrinsic": "^1.2.2",
|
762 |
-
"gopd": "^1.0.1",
|
763 |
-
"has-property-descriptors": "^1.0.1"
|
764 |
-
},
|
765 |
-
"engines": {
|
766 |
-
"node": ">= 0.4"
|
767 |
-
}
|
768 |
-
},
|
769 |
-
"node_modules/setprototypeof": {
|
770 |
-
"version": "1.2.0",
|
771 |
-
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
|
772 |
-
"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
|
773 |
-
},
|
774 |
-
"node_modules/side-channel": {
|
775 |
-
"version": "1.0.4",
|
776 |
-
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
|
777 |
-
"integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
|
778 |
-
"dependencies": {
|
779 |
-
"call-bind": "^1.0.0",
|
780 |
-
"get-intrinsic": "^1.0.2",
|
781 |
-
"object-inspect": "^1.9.0"
|
782 |
-
},
|
783 |
-
"funding": {
|
784 |
-
"url": "https://github.com/sponsors/ljharb"
|
785 |
-
}
|
786 |
-
},
|
787 |
-
"node_modules/socket.io": {
|
788 |
-
"version": "4.7.4",
|
789 |
-
"resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.4.tgz",
|
790 |
-
"integrity": "sha512-DcotgfP1Zg9iP/dH9zvAQcWrE0TtbMVwXmlV4T4mqsvY+gw+LqUGPfx2AoVyRk0FLME+GQhufDMyacFmw7ksqw==",
|
791 |
-
"dependencies": {
|
792 |
-
"accepts": "~1.3.4",
|
793 |
-
"base64id": "~2.0.0",
|
794 |
-
"cors": "~2.8.5",
|
795 |
-
"debug": "~4.3.2",
|
796 |
-
"engine.io": "~6.5.2",
|
797 |
-
"socket.io-adapter": "~2.5.2",
|
798 |
-
"socket.io-parser": "~4.2.4"
|
799 |
-
},
|
800 |
-
"engines": {
|
801 |
-
"node": ">=10.2.0"
|
802 |
-
}
|
803 |
-
},
|
804 |
-
"node_modules/socket.io-adapter": {
|
805 |
-
"version": "2.5.2",
|
806 |
-
"resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz",
|
807 |
-
"integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==",
|
808 |
-
"dependencies": {
|
809 |
-
"ws": "~8.11.0"
|
810 |
-
}
|
811 |
-
},
|
812 |
-
"node_modules/socket.io-adapter/node_modules/ws": {
|
813 |
-
"version": "8.11.0",
|
814 |
-
"resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz",
|
815 |
-
"integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==",
|
816 |
-
"engines": {
|
817 |
-
"node": ">=10.0.0"
|
818 |
-
},
|
819 |
-
"peerDependencies": {
|
820 |
-
"bufferutil": "^4.0.1",
|
821 |
-
"utf-8-validate": "^5.0.2"
|
822 |
-
},
|
823 |
-
"peerDependenciesMeta": {
|
824 |
-
"bufferutil": {
|
825 |
-
"optional": true
|
826 |
-
},
|
827 |
-
"utf-8-validate": {
|
828 |
-
"optional": true
|
829 |
-
}
|
830 |
-
}
|
831 |
-
},
|
832 |
-
"node_modules/socket.io-parser": {
|
833 |
-
"version": "4.2.4",
|
834 |
-
"resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz",
|
835 |
-
"integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==",
|
836 |
-
"dependencies": {
|
837 |
-
"@socket.io/component-emitter": "~3.1.0",
|
838 |
-
"debug": "~4.3.1"
|
839 |
-
},
|
840 |
-
"engines": {
|
841 |
-
"node": ">=10.0.0"
|
842 |
-
}
|
843 |
-
},
|
844 |
-
"node_modules/socket.io-parser/node_modules/debug": {
|
845 |
-
"version": "4.3.4",
|
846 |
-
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
847 |
-
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
|
848 |
-
"dependencies": {
|
849 |
-
"ms": "2.1.2"
|
850 |
-
},
|
851 |
-
"engines": {
|
852 |
-
"node": ">=6.0"
|
853 |
-
},
|
854 |
-
"peerDependenciesMeta": {
|
855 |
-
"supports-color": {
|
856 |
-
"optional": true
|
857 |
-
}
|
858 |
-
}
|
859 |
-
},
|
860 |
-
"node_modules/socket.io-parser/node_modules/ms": {
|
861 |
-
"version": "2.1.2",
|
862 |
-
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
863 |
-
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
864 |
-
},
|
865 |
-
"node_modules/socket.io/node_modules/debug": {
|
866 |
-
"version": "4.3.4",
|
867 |
-
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
868 |
-
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
|
869 |
-
"dependencies": {
|
870 |
-
"ms": "2.1.2"
|
871 |
-
},
|
872 |
-
"engines": {
|
873 |
-
"node": ">=6.0"
|
874 |
-
},
|
875 |
-
"peerDependenciesMeta": {
|
876 |
-
"supports-color": {
|
877 |
-
"optional": true
|
878 |
-
}
|
879 |
-
}
|
880 |
-
},
|
881 |
-
"node_modules/socket.io/node_modules/ms": {
|
882 |
-
"version": "2.1.2",
|
883 |
-
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
884 |
-
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
885 |
-
},
|
886 |
-
"node_modules/statuses": {
|
887 |
-
"version": "2.0.1",
|
888 |
-
"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
|
889 |
-
"integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
|
890 |
-
"engines": {
|
891 |
-
"node": ">= 0.8"
|
892 |
-
}
|
893 |
-
},
|
894 |
-
"node_modules/toidentifier": {
|
895 |
-
"version": "1.0.1",
|
896 |
-
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
|
897 |
-
"integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
|
898 |
-
"engines": {
|
899 |
-
"node": ">=0.6"
|
900 |
-
}
|
901 |
-
},
|
902 |
-
"node_modules/type-is": {
|
903 |
-
"version": "1.6.18",
|
904 |
-
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
|
905 |
-
"integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
|
906 |
-
"dependencies": {
|
907 |
-
"media-typer": "0.3.0",
|
908 |
-
"mime-types": "~2.1.24"
|
909 |
-
},
|
910 |
-
"engines": {
|
911 |
-
"node": ">= 0.6"
|
912 |
-
}
|
913 |
-
},
|
914 |
-
"node_modules/undici-types": {
|
915 |
-
"version": "5.26.5",
|
916 |
-
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
|
917 |
-
"integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="
|
918 |
-
},
|
919 |
-
"node_modules/unpipe": {
|
920 |
-
"version": "1.0.0",
|
921 |
-
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
|
922 |
-
"integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
|
923 |
-
"engines": {
|
924 |
-
"node": ">= 0.8"
|
925 |
-
}
|
926 |
-
},
|
927 |
-
"node_modules/utils-merge": {
|
928 |
-
"version": "1.0.1",
|
929 |
-
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
|
930 |
-
"integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
|
931 |
-
"engines": {
|
932 |
-
"node": ">= 0.4.0"
|
933 |
-
}
|
934 |
-
},
|
935 |
-
"node_modules/vary": {
|
936 |
-
"version": "1.1.2",
|
937 |
-
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
|
938 |
-
"integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
|
939 |
-
"engines": {
|
940 |
-
"node": ">= 0.8"
|
941 |
-
}
|
942 |
-
},
|
943 |
-
"node_modules/ws": {
|
944 |
-
"version": "8.16.0",
|
945 |
-
"resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz",
|
946 |
-
"integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==",
|
947 |
-
"engines": {
|
948 |
-
"node": ">=10.0.0"
|
949 |
-
},
|
950 |
-
"peerDependencies": {
|
951 |
-
"bufferutil": "^4.0.1",
|
952 |
-
"utf-8-validate": ">=5.0.2"
|
953 |
-
},
|
954 |
-
"peerDependenciesMeta": {
|
955 |
-
"bufferutil": {
|
956 |
-
"optional": true
|
957 |
-
},
|
958 |
-
"utf-8-validate": {
|
959 |
-
"optional": true
|
960 |
-
}
|
961 |
-
}
|
962 |
-
}
|
963 |
-
}
|
964 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
node_modules/@bundled-es-modules/cookie/README.md
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# cookie
|
2 |
+
|
3 |
+
This is a mirror of [cookie](https://www.npmjs.com/package/cookie), bundled and exposed as ES module.
|
4 |
+
|
5 |
+
## Install
|
6 |
+
|
7 |
+
```
|
8 |
+
npm install @bundled-es-modules/cookie
|
9 |
+
```
|
10 |
+
|
11 |
+
## Use
|
12 |
+
|
13 |
+
```html
|
14 |
+
<script type="module">
|
15 |
+
import cookie from '@bundled-es-modules/cookie';
|
16 |
+
cookie.parse('foo=bar;'); // { foo: 'bar' }
|
17 |
+
</script>
|
18 |
+
```
|
node_modules/@bundled-es-modules/cookie/index-cjs.cjs
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
const cookie = require('cookie');
|
2 |
+
module.exports = cookie;
|
node_modules/@bundled-es-modules/cookie/index-esm.js
ADDED
@@ -0,0 +1,184 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
var __create = Object.create;
|
2 |
+
var __defProp = Object.defineProperty;
|
3 |
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
4 |
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
5 |
+
var __getProtoOf = Object.getPrototypeOf;
|
6 |
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
7 |
+
var __commonJS = (cb, mod) => function __require() {
|
8 |
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
9 |
+
};
|
10 |
+
var __copyProps = (to, from, except, desc) => {
|
11 |
+
if (from && typeof from === "object" || typeof from === "function") {
|
12 |
+
for (let key of __getOwnPropNames(from))
|
13 |
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
14 |
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
15 |
+
}
|
16 |
+
return to;
|
17 |
+
};
|
18 |
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
19 |
+
// If the importer is in node compatibility mode or this is not an ESM
|
20 |
+
// file that has been converted to a CommonJS file using a Babel-
|
21 |
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
22 |
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
23 |
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
24 |
+
mod
|
25 |
+
));
|
26 |
+
|
27 |
+
// node_modules/cookie/index.js
|
28 |
+
var require_cookie = __commonJS({
|
29 |
+
"node_modules/cookie/index.js"(exports) {
|
30 |
+
"use strict";
|
31 |
+
exports.parse = parse;
|
32 |
+
exports.serialize = serialize;
|
33 |
+
var __toString = Object.prototype.toString;
|
34 |
+
var fieldContentRegExp = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;
|
35 |
+
function parse(str, options) {
|
36 |
+
if (typeof str !== "string") {
|
37 |
+
throw new TypeError("argument str must be a string");
|
38 |
+
}
|
39 |
+
var obj = {};
|
40 |
+
var opt = options || {};
|
41 |
+
var dec = opt.decode || decode;
|
42 |
+
var index = 0;
|
43 |
+
while (index < str.length) {
|
44 |
+
var eqIdx = str.indexOf("=", index);
|
45 |
+
if (eqIdx === -1) {
|
46 |
+
break;
|
47 |
+
}
|
48 |
+
var endIdx = str.indexOf(";", index);
|
49 |
+
if (endIdx === -1) {
|
50 |
+
endIdx = str.length;
|
51 |
+
} else if (endIdx < eqIdx) {
|
52 |
+
index = str.lastIndexOf(";", eqIdx - 1) + 1;
|
53 |
+
continue;
|
54 |
+
}
|
55 |
+
var key = str.slice(index, eqIdx).trim();
|
56 |
+
if (void 0 === obj[key]) {
|
57 |
+
var val = str.slice(eqIdx + 1, endIdx).trim();
|
58 |
+
if (val.charCodeAt(0) === 34) {
|
59 |
+
val = val.slice(1, -1);
|
60 |
+
}
|
61 |
+
obj[key] = tryDecode(val, dec);
|
62 |
+
}
|
63 |
+
index = endIdx + 1;
|
64 |
+
}
|
65 |
+
return obj;
|
66 |
+
}
|
67 |
+
function serialize(name, val, options) {
|
68 |
+
var opt = options || {};
|
69 |
+
var enc = opt.encode || encode;
|
70 |
+
if (typeof enc !== "function") {
|
71 |
+
throw new TypeError("option encode is invalid");
|
72 |
+
}
|
73 |
+
if (!fieldContentRegExp.test(name)) {
|
74 |
+
throw new TypeError("argument name is invalid");
|
75 |
+
}
|
76 |
+
var value = enc(val);
|
77 |
+
if (value && !fieldContentRegExp.test(value)) {
|
78 |
+
throw new TypeError("argument val is invalid");
|
79 |
+
}
|
80 |
+
var str = name + "=" + value;
|
81 |
+
if (null != opt.maxAge) {
|
82 |
+
var maxAge = opt.maxAge - 0;
|
83 |
+
if (isNaN(maxAge) || !isFinite(maxAge)) {
|
84 |
+
throw new TypeError("option maxAge is invalid");
|
85 |
+
}
|
86 |
+
str += "; Max-Age=" + Math.floor(maxAge);
|
87 |
+
}
|
88 |
+
if (opt.domain) {
|
89 |
+
if (!fieldContentRegExp.test(opt.domain)) {
|
90 |
+
throw new TypeError("option domain is invalid");
|
91 |
+
}
|
92 |
+
str += "; Domain=" + opt.domain;
|
93 |
+
}
|
94 |
+
if (opt.path) {
|
95 |
+
if (!fieldContentRegExp.test(opt.path)) {
|
96 |
+
throw new TypeError("option path is invalid");
|
97 |
+
}
|
98 |
+
str += "; Path=" + opt.path;
|
99 |
+
}
|
100 |
+
if (opt.expires) {
|
101 |
+
var expires = opt.expires;
|
102 |
+
if (!isDate(expires) || isNaN(expires.valueOf())) {
|
103 |
+
throw new TypeError("option expires is invalid");
|
104 |
+
}
|
105 |
+
str += "; Expires=" + expires.toUTCString();
|
106 |
+
}
|
107 |
+
if (opt.httpOnly) {
|
108 |
+
str += "; HttpOnly";
|
109 |
+
}
|
110 |
+
if (opt.secure) {
|
111 |
+
str += "; Secure";
|
112 |
+
}
|
113 |
+
if (opt.priority) {
|
114 |
+
var priority = typeof opt.priority === "string" ? opt.priority.toLowerCase() : opt.priority;
|
115 |
+
switch (priority) {
|
116 |
+
case "low":
|
117 |
+
str += "; Priority=Low";
|
118 |
+
break;
|
119 |
+
case "medium":
|
120 |
+
str += "; Priority=Medium";
|
121 |
+
break;
|
122 |
+
case "high":
|
123 |
+
str += "; Priority=High";
|
124 |
+
break;
|
125 |
+
default:
|
126 |
+
throw new TypeError("option priority is invalid");
|
127 |
+
}
|
128 |
+
}
|
129 |
+
if (opt.sameSite) {
|
130 |
+
var sameSite = typeof opt.sameSite === "string" ? opt.sameSite.toLowerCase() : opt.sameSite;
|
131 |
+
switch (sameSite) {
|
132 |
+
case true:
|
133 |
+
str += "; SameSite=Strict";
|
134 |
+
break;
|
135 |
+
case "lax":
|
136 |
+
str += "; SameSite=Lax";
|
137 |
+
break;
|
138 |
+
case "strict":
|
139 |
+
str += "; SameSite=Strict";
|
140 |
+
break;
|
141 |
+
case "none":
|
142 |
+
str += "; SameSite=None";
|
143 |
+
break;
|
144 |
+
default:
|
145 |
+
throw new TypeError("option sameSite is invalid");
|
146 |
+
}
|
147 |
+
}
|
148 |
+
return str;
|
149 |
+
}
|
150 |
+
function decode(str) {
|
151 |
+
return str.indexOf("%") !== -1 ? decodeURIComponent(str) : str;
|
152 |
+
}
|
153 |
+
function encode(val) {
|
154 |
+
return encodeURIComponent(val);
|
155 |
+
}
|
156 |
+
function isDate(val) {
|
157 |
+
return __toString.call(val) === "[object Date]" || val instanceof Date;
|
158 |
+
}
|
159 |
+
function tryDecode(str, decode2) {
|
160 |
+
try {
|
161 |
+
return decode2(str);
|
162 |
+
} catch (e) {
|
163 |
+
return str;
|
164 |
+
}
|
165 |
+
}
|
166 |
+
}
|
167 |
+
});
|
168 |
+
|
169 |
+
// source.js
|
170 |
+
var import_cookie = __toESM(require_cookie(), 1);
|
171 |
+
var source_default = import_cookie.default;
|
172 |
+
export {
|
173 |
+
source_default as default
|
174 |
+
};
|
175 |
+
/*! Bundled license information:
|
176 |
+
|
177 |
+
cookie/index.js:
|
178 |
+
(*!
|
179 |
+
* cookie
|
180 |
+
* Copyright(c) 2012-2014 Roman Shtylman
|
181 |
+
* Copyright(c) 2015 Douglas Christopher Wilson
|
182 |
+
* MIT Licensed
|
183 |
+
*)
|
184 |
+
*/
|
node_modules/@bundled-es-modules/cookie/node_modules/cookie/HISTORY.md
ADDED
@@ -0,0 +1,142 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
0.5.0 / 2022-04-11
|
2 |
+
==================
|
3 |
+
|
4 |
+
* Add `priority` option
|
5 |
+
* Fix `expires` option to reject invalid dates
|
6 |
+
* pref: improve default decode speed
|
7 |
+
* pref: remove slow string split in parse
|
8 |
+
|
9 |
+
0.4.2 / 2022-02-02
|
10 |
+
==================
|
11 |
+
|
12 |
+
* pref: read value only when assigning in parse
|
13 |
+
* pref: remove unnecessary regexp in parse
|
14 |
+
|
15 |
+
0.4.1 / 2020-04-21
|
16 |
+
==================
|
17 |
+
|
18 |
+
* Fix `maxAge` option to reject invalid values
|
19 |
+
|
20 |
+
0.4.0 / 2019-05-15
|
21 |
+
==================
|
22 |
+
|
23 |
+
* Add `SameSite=None` support
|
24 |
+
|
25 |
+
0.3.1 / 2016-05-26
|
26 |
+
==================
|
27 |
+
|
28 |
+
* Fix `sameSite: true` to work with draft-7 clients
|
29 |
+
- `true` now sends `SameSite=Strict` instead of `SameSite`
|
30 |
+
|
31 |
+
0.3.0 / 2016-05-26
|
32 |
+
==================
|
33 |
+
|
34 |
+
* Add `sameSite` option
|
35 |
+
- Replaces `firstPartyOnly` option, never implemented by browsers
|
36 |
+
* Improve error message when `encode` is not a function
|
37 |
+
* Improve error message when `expires` is not a `Date`
|
38 |
+
|
39 |
+
0.2.4 / 2016-05-20
|
40 |
+
==================
|
41 |
+
|
42 |
+
* perf: enable strict mode
|
43 |
+
* perf: use for loop in parse
|
44 |
+
* perf: use string concatination for serialization
|
45 |
+
|
46 |
+
0.2.3 / 2015-10-25
|
47 |
+
==================
|
48 |
+
|
49 |
+
* Fix cookie `Max-Age` to never be a floating point number
|
50 |
+
|
51 |
+
0.2.2 / 2015-09-17
|
52 |
+
==================
|
53 |
+
|
54 |
+
* Fix regression when setting empty cookie value
|
55 |
+
- Ease the new restriction, which is just basic header-level validation
|
56 |
+
* Fix typo in invalid value errors
|
57 |
+
|
58 |
+
0.2.1 / 2015-09-17
|
59 |
+
==================
|
60 |
+
|
61 |
+
* Throw on invalid values provided to `serialize`
|
62 |
+
- Ensures the resulting string is a valid HTTP header value
|
63 |
+
|
64 |
+
0.2.0 / 2015-08-13
|
65 |
+
==================
|
66 |
+
|
67 |
+
* Add `firstPartyOnly` option
|
68 |
+
* Throw better error for invalid argument to parse
|
69 |
+
* perf: hoist regular expression
|
70 |
+
|
71 |
+
0.1.5 / 2015-09-17
|
72 |
+
==================
|
73 |
+
|
74 |
+
* Fix regression when setting empty cookie value
|
75 |
+
- Ease the new restriction, which is just basic header-level validation
|
76 |
+
* Fix typo in invalid value errors
|
77 |
+
|
78 |
+
0.1.4 / 2015-09-17
|
79 |
+
==================
|
80 |
+
|
81 |
+
* Throw better error for invalid argument to parse
|
82 |
+
* Throw on invalid values provided to `serialize`
|
83 |
+
- Ensures the resulting string is a valid HTTP header value
|
84 |
+
|
85 |
+
0.1.3 / 2015-05-19
|
86 |
+
==================
|
87 |
+
|
88 |
+
* Reduce the scope of try-catch deopt
|
89 |
+
* Remove argument reassignments
|
90 |
+
|
91 |
+
0.1.2 / 2014-04-16
|
92 |
+
==================
|
93 |
+
|
94 |
+
* Remove unnecessary files from npm package
|
95 |
+
|
96 |
+
0.1.1 / 2014-02-23
|
97 |
+
==================
|
98 |
+
|
99 |
+
* Fix bad parse when cookie value contained a comma
|
100 |
+
* Fix support for `maxAge` of `0`
|
101 |
+
|
102 |
+
0.1.0 / 2013-05-01
|
103 |
+
==================
|
104 |
+
|
105 |
+
* Add `decode` option
|
106 |
+
* Add `encode` option
|
107 |
+
|
108 |
+
0.0.6 / 2013-04-08
|
109 |
+
==================
|
110 |
+
|
111 |
+
* Ignore cookie parts missing `=`
|
112 |
+
|
113 |
+
0.0.5 / 2012-10-29
|
114 |
+
==================
|
115 |
+
|
116 |
+
* Return raw cookie value if value unescape errors
|
117 |
+
|
118 |
+
0.0.4 / 2012-06-21
|
119 |
+
==================
|
120 |
+
|
121 |
+
* Use encode/decodeURIComponent for cookie encoding/decoding
|
122 |
+
- Improve server/client interoperability
|
123 |
+
|
124 |
+
0.0.3 / 2012-06-06
|
125 |
+
==================
|
126 |
+
|
127 |
+
* Only escape special characters per the cookie RFC
|
128 |
+
|
129 |
+
0.0.2 / 2012-06-01
|
130 |
+
==================
|
131 |
+
|
132 |
+
* Fix `maxAge` option to not throw error
|
133 |
+
|
134 |
+
0.0.1 / 2012-05-28
|
135 |
+
==================
|
136 |
+
|
137 |
+
* Add more tests
|
138 |
+
|
139 |
+
0.0.0 / 2012-05-28
|
140 |
+
==================
|
141 |
+
|
142 |
+
* Initial release
|
node_modules/@bundled-es-modules/cookie/node_modules/cookie/LICENSE
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
(The MIT License)
|
2 |
+
|
3 |
+
Copyright (c) 2012-2014 Roman Shtylman <shtylman@gmail.com>
|
4 |
+
Copyright (c) 2015 Douglas Christopher Wilson <doug@somethingdoug.com>
|
5 |
+
|
6 |
+
Permission is hereby granted, free of charge, to any person obtaining
|
7 |
+
a copy of this software and associated documentation files (the
|
8 |
+
'Software'), to deal in the Software without restriction, including
|
9 |
+
without limitation the rights to use, copy, modify, merge, publish,
|
10 |
+
distribute, sublicense, and/or sell copies of the Software, and to
|
11 |
+
permit persons to whom the Software is furnished to do so, subject to
|
12 |
+
the following conditions:
|
13 |
+
|
14 |
+
The above copyright notice and this permission notice shall be
|
15 |
+
included in all copies or substantial portions of the Software.
|
16 |
+
|
17 |
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
18 |
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
19 |
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
20 |
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
21 |
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
22 |
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
23 |
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
24 |
+
|
node_modules/@bundled-es-modules/cookie/node_modules/cookie/README.md
ADDED
@@ -0,0 +1,302 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# cookie
|
2 |
+
|
3 |
+
[![NPM Version][npm-version-image]][npm-url]
|
4 |
+
[![NPM Downloads][npm-downloads-image]][npm-url]
|
5 |
+
[![Node.js Version][node-version-image]][node-version-url]
|
6 |
+
[![Build Status][github-actions-ci-image]][github-actions-ci-url]
|
7 |
+
[![Test Coverage][coveralls-image]][coveralls-url]
|
8 |
+
|
9 |
+
Basic HTTP cookie parser and serializer for HTTP servers.
|
10 |
+
|
11 |
+
## Installation
|
12 |
+
|
13 |
+
This is a [Node.js](https://nodejs.org/en/) module available through the
|
14 |
+
[npm registry](https://www.npmjs.com/). Installation is done using the
|
15 |
+
[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally):
|
16 |
+
|
17 |
+
```sh
|
18 |
+
$ npm install cookie
|
19 |
+
```
|
20 |
+
|
21 |
+
## API
|
22 |
+
|
23 |
+
```js
|
24 |
+
var cookie = require('cookie');
|
25 |
+
```
|
26 |
+
|
27 |
+
### cookie.parse(str, options)
|
28 |
+
|
29 |
+
Parse an HTTP `Cookie` header string and returning an object of all cookie name-value pairs.
|
30 |
+
The `str` argument is the string representing a `Cookie` header value and `options` is an
|
31 |
+
optional object containing additional parsing options.
|
32 |
+
|
33 |
+
```js
|
34 |
+
var cookies = cookie.parse('foo=bar; equation=E%3Dmc%5E2');
|
35 |
+
// { foo: 'bar', equation: 'E=mc^2' }
|
36 |
+
```
|
37 |
+
|
38 |
+
#### Options
|
39 |
+
|
40 |
+
`cookie.parse` accepts these properties in the options object.
|
41 |
+
|
42 |
+
##### decode
|
43 |
+
|
44 |
+
Specifies a function that will be used to decode a cookie's value. Since the value of a cookie
|
45 |
+
has a limited character set (and must be a simple string), this function can be used to decode
|
46 |
+
a previously-encoded cookie value into a JavaScript string or other object.
|
47 |
+
|
48 |
+
The default function is the global `decodeURIComponent`, which will decode any URL-encoded
|
49 |
+
sequences into their byte representations.
|
50 |
+
|
51 |
+
**note** if an error is thrown from this function, the original, non-decoded cookie value will
|
52 |
+
be returned as the cookie's value.
|
53 |
+
|
54 |
+
### cookie.serialize(name, value, options)
|
55 |
+
|
56 |
+
Serialize a cookie name-value pair into a `Set-Cookie` header string. The `name` argument is the
|
57 |
+
name for the cookie, the `value` argument is the value to set the cookie to, and the `options`
|
58 |
+
argument is an optional object containing additional serialization options.
|
59 |
+
|
60 |
+
```js
|
61 |
+
var setCookie = cookie.serialize('foo', 'bar');
|
62 |
+
// foo=bar
|
63 |
+
```
|
64 |
+
|
65 |
+
#### Options
|
66 |
+
|
67 |
+
`cookie.serialize` accepts these properties in the options object.
|
68 |
+
|
69 |
+
##### domain
|
70 |
+
|
71 |
+
Specifies the value for the [`Domain` `Set-Cookie` attribute][rfc-6265-5.2.3]. By default, no
|
72 |
+
domain is set, and most clients will consider the cookie to apply to only the current domain.
|
73 |
+
|
74 |
+
##### encode
|
75 |
+
|
76 |
+
Specifies a function that will be used to encode a cookie's value. Since value of a cookie
|
77 |
+
has a limited character set (and must be a simple string), this function can be used to encode
|
78 |
+
a value into a string suited for a cookie's value.
|
79 |
+
|
80 |
+
The default function is the global `encodeURIComponent`, which will encode a JavaScript string
|
81 |
+
into UTF-8 byte sequences and then URL-encode any that fall outside of the cookie range.
|
82 |
+
|
83 |
+
##### expires
|
84 |
+
|
85 |
+
Specifies the `Date` object to be the value for the [`Expires` `Set-Cookie` attribute][rfc-6265-5.2.1].
|
86 |
+
By default, no expiration is set, and most clients will consider this a "non-persistent cookie" and
|
87 |
+
will delete it on a condition like exiting a web browser application.
|
88 |
+
|
89 |
+
**note** the [cookie storage model specification][rfc-6265-5.3] states that if both `expires` and
|
90 |
+
`maxAge` are set, then `maxAge` takes precedence, but it is possible not all clients by obey this,
|
91 |
+
so if both are set, they should point to the same date and time.
|
92 |
+
|
93 |
+
##### httpOnly
|
94 |
+
|
95 |
+
Specifies the `boolean` value for the [`HttpOnly` `Set-Cookie` attribute][rfc-6265-5.2.6]. When truthy,
|
96 |
+
the `HttpOnly` attribute is set, otherwise it is not. By default, the `HttpOnly` attribute is not set.
|
97 |
+
|
98 |
+
**note** be careful when setting this to `true`, as compliant clients will not allow client-side
|
99 |
+
JavaScript to see the cookie in `document.cookie`.
|
100 |
+
|
101 |
+
##### maxAge
|
102 |
+
|
103 |
+
Specifies the `number` (in seconds) to be the value for the [`Max-Age` `Set-Cookie` attribute][rfc-6265-5.2.2].
|
104 |
+
The given number will be converted to an integer by rounding down. By default, no maximum age is set.
|
105 |
+
|
106 |
+
**note** the [cookie storage model specification][rfc-6265-5.3] states that if both `expires` and
|
107 |
+
`maxAge` are set, then `maxAge` takes precedence, but it is possible not all clients by obey this,
|
108 |
+
so if both are set, they should point to the same date and time.
|
109 |
+
|
110 |
+
##### path
|
111 |
+
|
112 |
+
Specifies the value for the [`Path` `Set-Cookie` attribute][rfc-6265-5.2.4]. By default, the path
|
113 |
+
is considered the ["default path"][rfc-6265-5.1.4].
|
114 |
+
|
115 |
+
##### priority
|
116 |
+
|
117 |
+
Specifies the `string` to be the value for the [`Priority` `Set-Cookie` attribute][rfc-west-cookie-priority-00-4.1].
|
118 |
+
|
119 |
+
- `'low'` will set the `Priority` attribute to `Low`.
|
120 |
+
- `'medium'` will set the `Priority` attribute to `Medium`, the default priority when not set.
|
121 |
+
- `'high'` will set the `Priority` attribute to `High`.
|
122 |
+
|
123 |
+
More information about the different priority levels can be found in
|
124 |
+
[the specification][rfc-west-cookie-priority-00-4.1].
|
125 |
+
|
126 |
+
**note** This is an attribute that has not yet been fully standardized, and may change in the future.
|
127 |
+
This also means many clients may ignore this attribute until they understand it.
|
128 |
+
|
129 |
+
##### sameSite
|
130 |
+
|
131 |
+
Specifies the `boolean` or `string` to be the value for the [`SameSite` `Set-Cookie` attribute][rfc-6265bis-09-5.4.7].
|
132 |
+
|
133 |
+
- `true` will set the `SameSite` attribute to `Strict` for strict same site enforcement.
|
134 |
+
- `false` will not set the `SameSite` attribute.
|
135 |
+
- `'lax'` will set the `SameSite` attribute to `Lax` for lax same site enforcement.
|
136 |
+
- `'none'` will set the `SameSite` attribute to `None` for an explicit cross-site cookie.
|
137 |
+
- `'strict'` will set the `SameSite` attribute to `Strict` for strict same site enforcement.
|
138 |
+
|
139 |
+
More information about the different enforcement levels can be found in
|
140 |
+
[the specification][rfc-6265bis-09-5.4.7].
|
141 |
+
|
142 |
+
**note** This is an attribute that has not yet been fully standardized, and may change in the future.
|
143 |
+
This also means many clients may ignore this attribute until they understand it.
|
144 |
+
|
145 |
+
##### secure
|
146 |
+
|
147 |
+
Specifies the `boolean` value for the [`Secure` `Set-Cookie` attribute][rfc-6265-5.2.5]. When truthy,
|
148 |
+
the `Secure` attribute is set, otherwise it is not. By default, the `Secure` attribute is not set.
|
149 |
+
|
150 |
+
**note** be careful when setting this to `true`, as compliant clients will not send the cookie back to
|
151 |
+
the server in the future if the browser does not have an HTTPS connection.
|
152 |
+
|
153 |
+
## Example
|
154 |
+
|
155 |
+
The following example uses this module in conjunction with the Node.js core HTTP server
|
156 |
+
to prompt a user for their name and display it back on future visits.
|
157 |
+
|
158 |
+
```js
|
159 |
+
var cookie = require('cookie');
|
160 |
+
var escapeHtml = require('escape-html');
|
161 |
+
var http = require('http');
|
162 |
+
var url = require('url');
|
163 |
+
|
164 |
+
function onRequest(req, res) {
|
165 |
+
// Parse the query string
|
166 |
+
var query = url.parse(req.url, true, true).query;
|
167 |
+
|
168 |
+
if (query && query.name) {
|
169 |
+
// Set a new cookie with the name
|
170 |
+
res.setHeader('Set-Cookie', cookie.serialize('name', String(query.name), {
|
171 |
+
httpOnly: true,
|
172 |
+
maxAge: 60 * 60 * 24 * 7 // 1 week
|
173 |
+
}));
|
174 |
+
|
175 |
+
// Redirect back after setting cookie
|
176 |
+
res.statusCode = 302;
|
177 |
+
res.setHeader('Location', req.headers.referer || '/');
|
178 |
+
res.end();
|
179 |
+
return;
|
180 |
+
}
|
181 |
+
|
182 |
+
// Parse the cookies on the request
|
183 |
+
var cookies = cookie.parse(req.headers.cookie || '');
|
184 |
+
|
185 |
+
// Get the visitor name set in the cookie
|
186 |
+
var name = cookies.name;
|
187 |
+
|
188 |
+
res.setHeader('Content-Type', 'text/html; charset=UTF-8');
|
189 |
+
|
190 |
+
if (name) {
|
191 |
+
res.write('<p>Welcome back, <b>' + escapeHtml(name) + '</b>!</p>');
|
192 |
+
} else {
|
193 |
+
res.write('<p>Hello, new visitor!</p>');
|
194 |
+
}
|
195 |
+
|
196 |
+
res.write('<form method="GET">');
|
197 |
+
res.write('<input placeholder="enter your name" name="name"> <input type="submit" value="Set Name">');
|
198 |
+
res.end('</form>');
|
199 |
+
}
|
200 |
+
|
201 |
+
http.createServer(onRequest).listen(3000);
|
202 |
+
```
|
203 |
+
|
204 |
+
## Testing
|
205 |
+
|
206 |
+
```sh
|
207 |
+
$ npm test
|
208 |
+
```
|
209 |
+
|
210 |
+
## Benchmark
|
211 |
+
|
212 |
+
```
|
213 |
+
$ npm run bench
|
214 |
+
|
215 |
+
> cookie@0.4.2 bench
|
216 |
+
> node benchmark/index.js
|
217 |
+
|
218 |
+
node@16.14.0
|
219 |
+
v8@9.4.146.24-node.20
|
220 |
+
uv@1.43.0
|
221 |
+
zlib@1.2.11
|
222 |
+
brotli@1.0.9
|
223 |
+
ares@1.18.1
|
224 |
+
modules@93
|
225 |
+
nghttp2@1.45.1
|
226 |
+
napi@8
|
227 |
+
llhttp@6.0.4
|
228 |
+
openssl@1.1.1m+quic
|
229 |
+
cldr@40.0
|
230 |
+
icu@70.1
|
231 |
+
tz@2021a3
|
232 |
+
unicode@14.0
|
233 |
+
ngtcp2@0.1.0-DEV
|
234 |
+
nghttp3@0.1.0-DEV
|
235 |
+
|
236 |
+
> node benchmark/parse-top.js
|
237 |
+
|
238 |
+
cookie.parse - top sites
|
239 |
+
|
240 |
+
15 tests completed.
|
241 |
+
|
242 |
+
parse accounts.google.com x 2,421,245 ops/sec ±0.80% (188 runs sampled)
|
243 |
+
parse apple.com x 2,684,710 ops/sec ±0.59% (189 runs sampled)
|
244 |
+
parse cloudflare.com x 2,231,418 ops/sec ±0.76% (186 runs sampled)
|
245 |
+
parse docs.google.com x 2,316,357 ops/sec ±1.28% (187 runs sampled)
|
246 |
+
parse drive.google.com x 2,363,543 ops/sec ±0.49% (189 runs sampled)
|
247 |
+
parse en.wikipedia.org x 839,414 ops/sec ±0.53% (189 runs sampled)
|
248 |
+
parse linkedin.com x 553,797 ops/sec ±0.63% (190 runs sampled)
|
249 |
+
parse maps.google.com x 1,314,779 ops/sec ±0.72% (189 runs sampled)
|
250 |
+
parse microsoft.com x 153,783 ops/sec ±0.53% (190 runs sampled)
|
251 |
+
parse play.google.com x 2,249,574 ops/sec ±0.59% (187 runs sampled)
|
252 |
+
parse plus.google.com x 2,258,682 ops/sec ±0.60% (188 runs sampled)
|
253 |
+
parse sites.google.com x 2,247,069 ops/sec ±0.68% (189 runs sampled)
|
254 |
+
parse support.google.com x 1,456,840 ops/sec ±0.70% (187 runs sampled)
|
255 |
+
parse www.google.com x 1,046,028 ops/sec ±0.58% (188 runs sampled)
|
256 |
+
parse youtu.be x 937,428 ops/sec ±1.47% (190 runs sampled)
|
257 |
+
parse youtube.com x 963,878 ops/sec ±0.59% (190 runs sampled)
|
258 |
+
|
259 |
+
> node benchmark/parse.js
|
260 |
+
|
261 |
+
cookie.parse - generic
|
262 |
+
|
263 |
+
6 tests completed.
|
264 |
+
|
265 |
+
simple x 2,745,604 ops/sec ±0.77% (185 runs sampled)
|
266 |
+
decode x 557,287 ops/sec ±0.60% (188 runs sampled)
|
267 |
+
unquote x 2,498,475 ops/sec ±0.55% (189 runs sampled)
|
268 |
+
duplicates x 868,591 ops/sec ±0.89% (187 runs sampled)
|
269 |
+
10 cookies x 306,745 ops/sec ±0.49% (190 runs sampled)
|
270 |
+
100 cookies x 22,414 ops/sec ±2.38% (182 runs sampled)
|
271 |
+
```
|
272 |
+
|
273 |
+
## References
|
274 |
+
|
275 |
+
- [RFC 6265: HTTP State Management Mechanism][rfc-6265]
|
276 |
+
- [Same-site Cookies][rfc-6265bis-09-5.4.7]
|
277 |
+
|
278 |
+
[rfc-west-cookie-priority-00-4.1]: https://tools.ietf.org/html/draft-west-cookie-priority-00#section-4.1
|
279 |
+
[rfc-6265bis-09-5.4.7]: https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-09#section-5.4.7
|
280 |
+
[rfc-6265]: https://tools.ietf.org/html/rfc6265
|
281 |
+
[rfc-6265-5.1.4]: https://tools.ietf.org/html/rfc6265#section-5.1.4
|
282 |
+
[rfc-6265-5.2.1]: https://tools.ietf.org/html/rfc6265#section-5.2.1
|
283 |
+
[rfc-6265-5.2.2]: https://tools.ietf.org/html/rfc6265#section-5.2.2
|
284 |
+
[rfc-6265-5.2.3]: https://tools.ietf.org/html/rfc6265#section-5.2.3
|
285 |
+
[rfc-6265-5.2.4]: https://tools.ietf.org/html/rfc6265#section-5.2.4
|
286 |
+
[rfc-6265-5.2.5]: https://tools.ietf.org/html/rfc6265#section-5.2.5
|
287 |
+
[rfc-6265-5.2.6]: https://tools.ietf.org/html/rfc6265#section-5.2.6
|
288 |
+
[rfc-6265-5.3]: https://tools.ietf.org/html/rfc6265#section-5.3
|
289 |
+
|
290 |
+
## License
|
291 |
+
|
292 |
+
[MIT](LICENSE)
|
293 |
+
|
294 |
+
[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/cookie/master
|
295 |
+
[coveralls-url]: https://coveralls.io/r/jshttp/cookie?branch=master
|
296 |
+
[github-actions-ci-image]: https://img.shields.io/github/workflow/status/jshttp/cookie/ci/master?label=ci
|
297 |
+
[github-actions-ci-url]: https://github.com/jshttp/cookie/actions/workflows/ci.yml
|
298 |
+
[node-version-image]: https://badgen.net/npm/node/cookie
|
299 |
+
[node-version-url]: https://nodejs.org/en/download
|
300 |
+
[npm-downloads-image]: https://badgen.net/npm/dm/cookie
|
301 |
+
[npm-url]: https://npmjs.org/package/cookie
|
302 |
+
[npm-version-image]: https://badgen.net/npm/v/cookie
|
node_modules/@bundled-es-modules/cookie/node_modules/cookie/SECURITY.md
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Security Policies and Procedures
|
2 |
+
|
3 |
+
## Reporting a Bug
|
4 |
+
|
5 |
+
The `cookie` team and community take all security bugs seriously. Thank
|
6 |
+
you for improving the security of the project. We appreciate your efforts and
|
7 |
+
responsible disclosure and will make every effort to acknowledge your
|
8 |
+
contributions.
|
9 |
+
|
10 |
+
Report security bugs by emailing the current owner(s) of `cookie`. This
|
11 |
+
information can be found in the npm registry using the command
|
12 |
+
`npm owner ls cookie`.
|
13 |
+
If unsure or unable to get the information from the above, open an issue
|
14 |
+
in the [project issue tracker](https://github.com/jshttp/cookie/issues)
|
15 |
+
asking for the current contact information.
|
16 |
+
|
17 |
+
To ensure the timely response to your report, please ensure that the entirety
|
18 |
+
of the report is contained within the email body and not solely behind a web
|
19 |
+
link or an attachment.
|
20 |
+
|
21 |
+
At least one owner will acknowledge your email within 48 hours, and will send a
|
22 |
+
more detailed response within 48 hours indicating the next steps in handling
|
23 |
+
your report. After the initial reply to your report, the owners will
|
24 |
+
endeavor to keep you informed of the progress towards a fix and full
|
25 |
+
announcement, and may ask for additional information or guidance.
|
node_modules/@bundled-es-modules/cookie/node_modules/cookie/index.js
ADDED
@@ -0,0 +1,270 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*!
|
2 |
+
* cookie
|
3 |
+
* Copyright(c) 2012-2014 Roman Shtylman
|
4 |
+
* Copyright(c) 2015 Douglas Christopher Wilson
|
5 |
+
* MIT Licensed
|
6 |
+
*/
|
7 |
+
|
8 |
+
'use strict';
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Module exports.
|
12 |
+
* @public
|
13 |
+
*/
|
14 |
+
|
15 |
+
exports.parse = parse;
|
16 |
+
exports.serialize = serialize;
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Module variables.
|
20 |
+
* @private
|
21 |
+
*/
|
22 |
+
|
23 |
+
var __toString = Object.prototype.toString
|
24 |
+
|
25 |
+
/**
|
26 |
+
* RegExp to match field-content in RFC 7230 sec 3.2
|
27 |
+
*
|
28 |
+
* field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]
|
29 |
+
* field-vchar = VCHAR / obs-text
|
30 |
+
* obs-text = %x80-FF
|
31 |
+
*/
|
32 |
+
|
33 |
+
var fieldContentRegExp = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Parse a cookie header.
|
37 |
+
*
|
38 |
+
* Parse the given cookie header string into an object
|
39 |
+
* The object has the various cookies as keys(names) => values
|
40 |
+
*
|
41 |
+
* @param {string} str
|
42 |
+
* @param {object} [options]
|
43 |
+
* @return {object}
|
44 |
+
* @public
|
45 |
+
*/
|
46 |
+
|
47 |
+
function parse(str, options) {
|
48 |
+
if (typeof str !== 'string') {
|
49 |
+
throw new TypeError('argument str must be a string');
|
50 |
+
}
|
51 |
+
|
52 |
+
var obj = {}
|
53 |
+
var opt = options || {};
|
54 |
+
var dec = opt.decode || decode;
|
55 |
+
|
56 |
+
var index = 0
|
57 |
+
while (index < str.length) {
|
58 |
+
var eqIdx = str.indexOf('=', index)
|
59 |
+
|
60 |
+
// no more cookie pairs
|
61 |
+
if (eqIdx === -1) {
|
62 |
+
break
|
63 |
+
}
|
64 |
+
|
65 |
+
var endIdx = str.indexOf(';', index)
|
66 |
+
|
67 |
+
if (endIdx === -1) {
|
68 |
+
endIdx = str.length
|
69 |
+
} else if (endIdx < eqIdx) {
|
70 |
+
// backtrack on prior semicolon
|
71 |
+
index = str.lastIndexOf(';', eqIdx - 1) + 1
|
72 |
+
continue
|
73 |
+
}
|
74 |
+
|
75 |
+
var key = str.slice(index, eqIdx).trim()
|
76 |
+
|
77 |
+
// only assign once
|
78 |
+
if (undefined === obj[key]) {
|
79 |
+
var val = str.slice(eqIdx + 1, endIdx).trim()
|
80 |
+
|
81 |
+
// quoted values
|
82 |
+
if (val.charCodeAt(0) === 0x22) {
|
83 |
+
val = val.slice(1, -1)
|
84 |
+
}
|
85 |
+
|
86 |
+
obj[key] = tryDecode(val, dec);
|
87 |
+
}
|
88 |
+
|
89 |
+
index = endIdx + 1
|
90 |
+
}
|
91 |
+
|
92 |
+
return obj;
|
93 |
+
}
|
94 |
+
|
95 |
+
/**
|
96 |
+
* Serialize data into a cookie header.
|
97 |
+
*
|
98 |
+
* Serialize the a name value pair into a cookie string suitable for
|
99 |
+
* http headers. An optional options object specified cookie parameters.
|
100 |
+
*
|
101 |
+
* serialize('foo', 'bar', { httpOnly: true })
|
102 |
+
* => "foo=bar; httpOnly"
|
103 |
+
*
|
104 |
+
* @param {string} name
|
105 |
+
* @param {string} val
|
106 |
+
* @param {object} [options]
|
107 |
+
* @return {string}
|
108 |
+
* @public
|
109 |
+
*/
|
110 |
+
|
111 |
+
function serialize(name, val, options) {
|
112 |
+
var opt = options || {};
|
113 |
+
var enc = opt.encode || encode;
|
114 |
+
|
115 |
+
if (typeof enc !== 'function') {
|
116 |
+
throw new TypeError('option encode is invalid');
|
117 |
+
}
|
118 |
+
|
119 |
+
if (!fieldContentRegExp.test(name)) {
|
120 |
+
throw new TypeError('argument name is invalid');
|
121 |
+
}
|
122 |
+
|
123 |
+
var value = enc(val);
|
124 |
+
|
125 |
+
if (value && !fieldContentRegExp.test(value)) {
|
126 |
+
throw new TypeError('argument val is invalid');
|
127 |
+
}
|
128 |
+
|
129 |
+
var str = name + '=' + value;
|
130 |
+
|
131 |
+
if (null != opt.maxAge) {
|
132 |
+
var maxAge = opt.maxAge - 0;
|
133 |
+
|
134 |
+
if (isNaN(maxAge) || !isFinite(maxAge)) {
|
135 |
+
throw new TypeError('option maxAge is invalid')
|
136 |
+
}
|
137 |
+
|
138 |
+
str += '; Max-Age=' + Math.floor(maxAge);
|
139 |
+
}
|
140 |
+
|
141 |
+
if (opt.domain) {
|
142 |
+
if (!fieldContentRegExp.test(opt.domain)) {
|
143 |
+
throw new TypeError('option domain is invalid');
|
144 |
+
}
|
145 |
+
|
146 |
+
str += '; Domain=' + opt.domain;
|
147 |
+
}
|
148 |
+
|
149 |
+
if (opt.path) {
|
150 |
+
if (!fieldContentRegExp.test(opt.path)) {
|
151 |
+
throw new TypeError('option path is invalid');
|
152 |
+
}
|
153 |
+
|
154 |
+
str += '; Path=' + opt.path;
|
155 |
+
}
|
156 |
+
|
157 |
+
if (opt.expires) {
|
158 |
+
var expires = opt.expires
|
159 |
+
|
160 |
+
if (!isDate(expires) || isNaN(expires.valueOf())) {
|
161 |
+
throw new TypeError('option expires is invalid');
|
162 |
+
}
|
163 |
+
|
164 |
+
str += '; Expires=' + expires.toUTCString()
|
165 |
+
}
|
166 |
+
|
167 |
+
if (opt.httpOnly) {
|
168 |
+
str += '; HttpOnly';
|
169 |
+
}
|
170 |
+
|
171 |
+
if (opt.secure) {
|
172 |
+
str += '; Secure';
|
173 |
+
}
|
174 |
+
|
175 |
+
if (opt.priority) {
|
176 |
+
var priority = typeof opt.priority === 'string'
|
177 |
+
? opt.priority.toLowerCase()
|
178 |
+
: opt.priority
|
179 |
+
|
180 |
+
switch (priority) {
|
181 |
+
case 'low':
|
182 |
+
str += '; Priority=Low'
|
183 |
+
break
|
184 |
+
case 'medium':
|
185 |
+
str += '; Priority=Medium'
|
186 |
+
break
|
187 |
+
case 'high':
|
188 |
+
str += '; Priority=High'
|
189 |
+
break
|
190 |
+
default:
|
191 |
+
throw new TypeError('option priority is invalid')
|
192 |
+
}
|
193 |
+
}
|
194 |
+
|
195 |
+
if (opt.sameSite) {
|
196 |
+
var sameSite = typeof opt.sameSite === 'string'
|
197 |
+
? opt.sameSite.toLowerCase() : opt.sameSite;
|
198 |
+
|
199 |
+
switch (sameSite) {
|
200 |
+
case true:
|
201 |
+
str += '; SameSite=Strict';
|
202 |
+
break;
|
203 |
+
case 'lax':
|
204 |
+
str += '; SameSite=Lax';
|
205 |
+
break;
|
206 |
+
case 'strict':
|
207 |
+
str += '; SameSite=Strict';
|
208 |
+
break;
|
209 |
+
case 'none':
|
210 |
+
str += '; SameSite=None';
|
211 |
+
break;
|
212 |
+
default:
|
213 |
+
throw new TypeError('option sameSite is invalid');
|
214 |
+
}
|
215 |
+
}
|
216 |
+
|
217 |
+
return str;
|
218 |
+
}
|
219 |
+
|
220 |
+
/**
|
221 |
+
* URL-decode string value. Optimized to skip native call when no %.
|
222 |
+
*
|
223 |
+
* @param {string} str
|
224 |
+
* @returns {string}
|
225 |
+
*/
|
226 |
+
|
227 |
+
function decode (str) {
|
228 |
+
return str.indexOf('%') !== -1
|
229 |
+
? decodeURIComponent(str)
|
230 |
+
: str
|
231 |
+
}
|
232 |
+
|
233 |
+
/**
|
234 |
+
* URL-encode value.
|
235 |
+
*
|
236 |
+
* @param {string} str
|
237 |
+
* @returns {string}
|
238 |
+
*/
|
239 |
+
|
240 |
+
function encode (val) {
|
241 |
+
return encodeURIComponent(val)
|
242 |
+
}
|
243 |
+
|
244 |
+
/**
|
245 |
+
* Determine if value is a Date.
|
246 |
+
*
|
247 |
+
* @param {*} val
|
248 |
+
* @private
|
249 |
+
*/
|
250 |
+
|
251 |
+
function isDate (val) {
|
252 |
+
return __toString.call(val) === '[object Date]' ||
|
253 |
+
val instanceof Date
|
254 |
+
}
|
255 |
+
|
256 |
+
/**
|
257 |
+
* Try decoding a string using a decoding function.
|
258 |
+
*
|
259 |
+
* @param {string} str
|
260 |
+
* @param {function} decode
|
261 |
+
* @private
|
262 |
+
*/
|
263 |
+
|
264 |
+
function tryDecode(str, decode) {
|
265 |
+
try {
|
266 |
+
return decode(str);
|
267 |
+
} catch (e) {
|
268 |
+
return str;
|
269 |
+
}
|
270 |
+
}
|
node_modules/@bundled-es-modules/cookie/node_modules/cookie/package.json
ADDED
@@ -0,0 +1,82 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"_from": "cookie@^0.5.0",
|
3 |
+
"_id": "cookie@0.5.0",
|
4 |
+
"_inBundle": false,
|
5 |
+
"_integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
|
6 |
+
"_location": "/@bundled-es-modules/cookie/cookie",
|
7 |
+
"_phantomChildren": {},
|
8 |
+
"_requested": {
|
9 |
+
"type": "range",
|
10 |
+
"registry": true,
|
11 |
+
"raw": "cookie@^0.5.0",
|
12 |
+
"name": "cookie",
|
13 |
+
"escapedName": "cookie",
|
14 |
+
"rawSpec": "^0.5.0",
|
15 |
+
"saveSpec": null,
|
16 |
+
"fetchSpec": "^0.5.0"
|
17 |
+
},
|
18 |
+
"_requiredBy": [
|
19 |
+
"/@bundled-es-modules/cookie"
|
20 |
+
],
|
21 |
+
"_resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
|
22 |
+
"_shasum": "d1f5d71adec6558c58f389987c366aa47e994f8b",
|
23 |
+
"_spec": "cookie@^0.5.0",
|
24 |
+
"_where": "/Users/sylvainfiloni/Documents/HuggingFace_Projects/live-vision/node_modules/@bundled-es-modules/cookie",
|
25 |
+
"author": {
|
26 |
+
"name": "Roman Shtylman",
|
27 |
+
"email": "shtylman@gmail.com"
|
28 |
+
},
|
29 |
+
"bugs": {
|
30 |
+
"url": "https://github.com/jshttp/cookie/issues"
|
31 |
+
},
|
32 |
+
"bundleDependencies": false,
|
33 |
+
"contributors": [
|
34 |
+
{
|
35 |
+
"name": "Douglas Christopher Wilson",
|
36 |
+
"email": "doug@somethingdoug.com"
|
37 |
+
}
|
38 |
+
],
|
39 |
+
"deprecated": false,
|
40 |
+
"description": "HTTP server cookie parsing and serialization",
|
41 |
+
"devDependencies": {
|
42 |
+
"beautify-benchmark": "0.2.4",
|
43 |
+
"benchmark": "2.1.4",
|
44 |
+
"eslint": "7.32.0",
|
45 |
+
"eslint-plugin-markdown": "2.2.1",
|
46 |
+
"mocha": "9.2.2",
|
47 |
+
"nyc": "15.1.0",
|
48 |
+
"safe-buffer": "5.2.1",
|
49 |
+
"top-sites": "1.1.97"
|
50 |
+
},
|
51 |
+
"engines": {
|
52 |
+
"node": ">= 0.6"
|
53 |
+
},
|
54 |
+
"files": [
|
55 |
+
"HISTORY.md",
|
56 |
+
"LICENSE",
|
57 |
+
"README.md",
|
58 |
+
"SECURITY.md",
|
59 |
+
"index.js"
|
60 |
+
],
|
61 |
+
"homepage": "https://github.com/jshttp/cookie#readme",
|
62 |
+
"keywords": [
|
63 |
+
"cookie",
|
64 |
+
"cookies"
|
65 |
+
],
|
66 |
+
"license": "MIT",
|
67 |
+
"name": "cookie",
|
68 |
+
"repository": {
|
69 |
+
"type": "git",
|
70 |
+
"url": "git+https://github.com/jshttp/cookie.git"
|
71 |
+
},
|
72 |
+
"scripts": {
|
73 |
+
"bench": "node benchmark/index.js",
|
74 |
+
"lint": "eslint .",
|
75 |
+
"test": "mocha --reporter spec --bail --check-leaks test/",
|
76 |
+
"test-ci": "nyc --reporter=lcov --reporter=text npm test",
|
77 |
+
"test-cov": "nyc --reporter=html --reporter=text npm test",
|
78 |
+
"update-bench": "node scripts/update-benchmark.js",
|
79 |
+
"version": "node scripts/version-history.js && git add HISTORY.md"
|
80 |
+
},
|
81 |
+
"version": "0.5.0"
|
82 |
+
}
|
node_modules/@bundled-es-modules/cookie/package.json
ADDED
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"_from": "@bundled-es-modules/cookie@^2.0.0",
|
3 |
+
"_id": "@bundled-es-modules/cookie@2.0.0",
|
4 |
+
"_inBundle": false,
|
5 |
+
"_integrity": "sha512-Or6YHg/kamKHpxULAdSqhGqnWFneIXu1NKvvfBBzKGwpVsYuFIQ5aBPHDnnoR3ghW1nvSkALd+EF9iMtY7Vjxw==",
|
6 |
+
"_location": "/@bundled-es-modules/cookie",
|
7 |
+
"_phantomChildren": {},
|
8 |
+
"_requested": {
|
9 |
+
"type": "range",
|
10 |
+
"registry": true,
|
11 |
+
"raw": "@bundled-es-modules/cookie@^2.0.0",
|
12 |
+
"name": "@bundled-es-modules/cookie",
|
13 |
+
"escapedName": "@bundled-es-modules%2fcookie",
|
14 |
+
"scope": "@bundled-es-modules",
|
15 |
+
"rawSpec": "^2.0.0",
|
16 |
+
"saveSpec": null,
|
17 |
+
"fetchSpec": "^2.0.0"
|
18 |
+
},
|
19 |
+
"_requiredBy": [
|
20 |
+
"/msw"
|
21 |
+
],
|
22 |
+
"_resolved": "https://registry.npmjs.org/@bundled-es-modules/cookie/-/cookie-2.0.0.tgz",
|
23 |
+
"_shasum": "c3b82703969a61cf6a46e959a012b2c257f6b164",
|
24 |
+
"_spec": "@bundled-es-modules/cookie@^2.0.0",
|
25 |
+
"_where": "/Users/sylvainfiloni/Documents/HuggingFace_Projects/live-vision/node_modules/msw",
|
26 |
+
"author": {
|
27 |
+
"name": "Pascal Schilp",
|
28 |
+
"email": "pascalschilp@gmail.com"
|
29 |
+
},
|
30 |
+
"bundleDependencies": false,
|
31 |
+
"dependencies": {
|
32 |
+
"cookie": "^0.5.0"
|
33 |
+
},
|
34 |
+
"deprecated": false,
|
35 |
+
"description": "mirror of cookie, bundled and exposed as ES module",
|
36 |
+
"devDependencies": {
|
37 |
+
"esbuild": "^0.17.17"
|
38 |
+
},
|
39 |
+
"exports": {
|
40 |
+
".": {
|
41 |
+
"import": "./index-esm.js",
|
42 |
+
"require": "./index-cjs.cjs"
|
43 |
+
}
|
44 |
+
},
|
45 |
+
"files": [
|
46 |
+
"index-esm.js",
|
47 |
+
"index-cjs.cjs"
|
48 |
+
],
|
49 |
+
"keywords": [],
|
50 |
+
"license": "ISC",
|
51 |
+
"main": "index-esm.js",
|
52 |
+
"name": "@bundled-es-modules/cookie",
|
53 |
+
"scripts": {
|
54 |
+
"build": "esbuild source.js --bundle --format=esm --outfile=index.js",
|
55 |
+
"dev": "node --watch dev.js"
|
56 |
+
},
|
57 |
+
"type": "module",
|
58 |
+
"version": "2.0.0"
|
59 |
+
}
|
node_modules/@bundled-es-modules/statuses/README.md
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# statuses
|
2 |
+
|
3 |
+
This is a mirror of [statuses](https://www.npmjs.com/package/statuses), bundled and exposed as ES module.
|
4 |
+
|
5 |
+
## Install
|
6 |
+
|
7 |
+
```
|
8 |
+
npm install @bundled-es-modules/statuses
|
9 |
+
```
|
10 |
+
|
11 |
+
## Use
|
12 |
+
|
13 |
+
```html
|
14 |
+
<script type="module">
|
15 |
+
import status from '@bundled-es-modules/statuses';
|
16 |
+
</script>
|
17 |
+
```
|
node_modules/@bundled-es-modules/statuses/index-cjs.cjs
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
const status = require('statuses');
|
2 |
+
module.exports = status;
|
node_modules/@bundled-es-modules/statuses/index-esm.js
ADDED
@@ -0,0 +1,184 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
var __create = Object.create;
|
2 |
+
var __defProp = Object.defineProperty;
|
3 |
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
4 |
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
5 |
+
var __getProtoOf = Object.getPrototypeOf;
|
6 |
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
7 |
+
var __commonJS = (cb, mod) => function __require() {
|
8 |
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
9 |
+
};
|
10 |
+
var __copyProps = (to, from, except, desc) => {
|
11 |
+
if (from && typeof from === "object" || typeof from === "function") {
|
12 |
+
for (let key of __getOwnPropNames(from))
|
13 |
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
14 |
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
15 |
+
}
|
16 |
+
return to;
|
17 |
+
};
|
18 |
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
19 |
+
// If the importer is in node compatibility mode or this is not an ESM
|
20 |
+
// file that has been converted to a CommonJS file using a Babel-
|
21 |
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
22 |
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
23 |
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
24 |
+
mod
|
25 |
+
));
|
26 |
+
|
27 |
+
// node_modules/statuses/codes.json
|
28 |
+
var require_codes = __commonJS({
|
29 |
+
"node_modules/statuses/codes.json"(exports, module) {
|
30 |
+
module.exports = {
|
31 |
+
"100": "Continue",
|
32 |
+
"101": "Switching Protocols",
|
33 |
+
"102": "Processing",
|
34 |
+
"103": "Early Hints",
|
35 |
+
"200": "OK",
|
36 |
+
"201": "Created",
|
37 |
+
"202": "Accepted",
|
38 |
+
"203": "Non-Authoritative Information",
|
39 |
+
"204": "No Content",
|
40 |
+
"205": "Reset Content",
|
41 |
+
"206": "Partial Content",
|
42 |
+
"207": "Multi-Status",
|
43 |
+
"208": "Already Reported",
|
44 |
+
"226": "IM Used",
|
45 |
+
"300": "Multiple Choices",
|
46 |
+
"301": "Moved Permanently",
|
47 |
+
"302": "Found",
|
48 |
+
"303": "See Other",
|
49 |
+
"304": "Not Modified",
|
50 |
+
"305": "Use Proxy",
|
51 |
+
"307": "Temporary Redirect",
|
52 |
+
"308": "Permanent Redirect",
|
53 |
+
"400": "Bad Request",
|
54 |
+
"401": "Unauthorized",
|
55 |
+
"402": "Payment Required",
|
56 |
+
"403": "Forbidden",
|
57 |
+
"404": "Not Found",
|
58 |
+
"405": "Method Not Allowed",
|
59 |
+
"406": "Not Acceptable",
|
60 |
+
"407": "Proxy Authentication Required",
|
61 |
+
"408": "Request Timeout",
|
62 |
+
"409": "Conflict",
|
63 |
+
"410": "Gone",
|
64 |
+
"411": "Length Required",
|
65 |
+
"412": "Precondition Failed",
|
66 |
+
"413": "Payload Too Large",
|
67 |
+
"414": "URI Too Long",
|
68 |
+
"415": "Unsupported Media Type",
|
69 |
+
"416": "Range Not Satisfiable",
|
70 |
+
"417": "Expectation Failed",
|
71 |
+
"418": "I'm a Teapot",
|
72 |
+
"421": "Misdirected Request",
|
73 |
+
"422": "Unprocessable Entity",
|
74 |
+
"423": "Locked",
|
75 |
+
"424": "Failed Dependency",
|
76 |
+
"425": "Too Early",
|
77 |
+
"426": "Upgrade Required",
|
78 |
+
"428": "Precondition Required",
|
79 |
+
"429": "Too Many Requests",
|
80 |
+
"431": "Request Header Fields Too Large",
|
81 |
+
"451": "Unavailable For Legal Reasons",
|
82 |
+
"500": "Internal Server Error",
|
83 |
+
"501": "Not Implemented",
|
84 |
+
"502": "Bad Gateway",
|
85 |
+
"503": "Service Unavailable",
|
86 |
+
"504": "Gateway Timeout",
|
87 |
+
"505": "HTTP Version Not Supported",
|
88 |
+
"506": "Variant Also Negotiates",
|
89 |
+
"507": "Insufficient Storage",
|
90 |
+
"508": "Loop Detected",
|
91 |
+
"509": "Bandwidth Limit Exceeded",
|
92 |
+
"510": "Not Extended",
|
93 |
+
"511": "Network Authentication Required"
|
94 |
+
};
|
95 |
+
}
|
96 |
+
});
|
97 |
+
|
98 |
+
// node_modules/statuses/index.js
|
99 |
+
var require_statuses = __commonJS({
|
100 |
+
"node_modules/statuses/index.js"(exports, module) {
|
101 |
+
"use strict";
|
102 |
+
var codes = require_codes();
|
103 |
+
module.exports = status2;
|
104 |
+
status2.message = codes;
|
105 |
+
status2.code = createMessageToStatusCodeMap(codes);
|
106 |
+
status2.codes = createStatusCodeList(codes);
|
107 |
+
status2.redirect = {
|
108 |
+
300: true,
|
109 |
+
301: true,
|
110 |
+
302: true,
|
111 |
+
303: true,
|
112 |
+
305: true,
|
113 |
+
307: true,
|
114 |
+
308: true
|
115 |
+
};
|
116 |
+
status2.empty = {
|
117 |
+
204: true,
|
118 |
+
205: true,
|
119 |
+
304: true
|
120 |
+
};
|
121 |
+
status2.retry = {
|
122 |
+
502: true,
|
123 |
+
503: true,
|
124 |
+
504: true
|
125 |
+
};
|
126 |
+
function createMessageToStatusCodeMap(codes2) {
|
127 |
+
var map = {};
|
128 |
+
Object.keys(codes2).forEach(function forEachCode(code) {
|
129 |
+
var message = codes2[code];
|
130 |
+
var status3 = Number(code);
|
131 |
+
map[message.toLowerCase()] = status3;
|
132 |
+
});
|
133 |
+
return map;
|
134 |
+
}
|
135 |
+
function createStatusCodeList(codes2) {
|
136 |
+
return Object.keys(codes2).map(function mapCode(code) {
|
137 |
+
return Number(code);
|
138 |
+
});
|
139 |
+
}
|
140 |
+
function getStatusCode(message) {
|
141 |
+
var msg = message.toLowerCase();
|
142 |
+
if (!Object.prototype.hasOwnProperty.call(status2.code, msg)) {
|
143 |
+
throw new Error('invalid status message: "' + message + '"');
|
144 |
+
}
|
145 |
+
return status2.code[msg];
|
146 |
+
}
|
147 |
+
function getStatusMessage(code) {
|
148 |
+
if (!Object.prototype.hasOwnProperty.call(status2.message, code)) {
|
149 |
+
throw new Error("invalid status code: " + code);
|
150 |
+
}
|
151 |
+
return status2.message[code];
|
152 |
+
}
|
153 |
+
function status2(code) {
|
154 |
+
if (typeof code === "number") {
|
155 |
+
return getStatusMessage(code);
|
156 |
+
}
|
157 |
+
if (typeof code !== "string") {
|
158 |
+
throw new TypeError("code must be a number or string");
|
159 |
+
}
|
160 |
+
var n = parseInt(code, 10);
|
161 |
+
if (!isNaN(n)) {
|
162 |
+
return getStatusMessage(n);
|
163 |
+
}
|
164 |
+
return getStatusCode(code);
|
165 |
+
}
|
166 |
+
}
|
167 |
+
});
|
168 |
+
|
169 |
+
// source.js
|
170 |
+
var import_statuses = __toESM(require_statuses(), 1);
|
171 |
+
var source_default = import_statuses.default;
|
172 |
+
export {
|
173 |
+
source_default as default
|
174 |
+
};
|
175 |
+
/*! Bundled license information:
|
176 |
+
|
177 |
+
statuses/index.js:
|
178 |
+
(*!
|
179 |
+
* statuses
|
180 |
+
* Copyright(c) 2014 Jonathan Ong
|
181 |
+
* Copyright(c) 2016 Douglas Christopher Wilson
|
182 |
+
* MIT Licensed
|
183 |
+
*)
|
184 |
+
*/
|
node_modules/@bundled-es-modules/statuses/package.json
ADDED
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"_from": "@bundled-es-modules/statuses@^1.0.1",
|
3 |
+
"_id": "@bundled-es-modules/statuses@1.0.1",
|
4 |
+
"_inBundle": false,
|
5 |
+
"_integrity": "sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==",
|
6 |
+
"_location": "/@bundled-es-modules/statuses",
|
7 |
+
"_phantomChildren": {},
|
8 |
+
"_requested": {
|
9 |
+
"type": "range",
|
10 |
+
"registry": true,
|
11 |
+
"raw": "@bundled-es-modules/statuses@^1.0.1",
|
12 |
+
"name": "@bundled-es-modules/statuses",
|
13 |
+
"escapedName": "@bundled-es-modules%2fstatuses",
|
14 |
+
"scope": "@bundled-es-modules",
|
15 |
+
"rawSpec": "^1.0.1",
|
16 |
+
"saveSpec": null,
|
17 |
+
"fetchSpec": "^1.0.1"
|
18 |
+
},
|
19 |
+
"_requiredBy": [
|
20 |
+
"/msw"
|
21 |
+
],
|
22 |
+
"_resolved": "https://registry.npmjs.org/@bundled-es-modules/statuses/-/statuses-1.0.1.tgz",
|
23 |
+
"_shasum": "761d10f44e51a94902c4da48675b71a76cc98872",
|
24 |
+
"_spec": "@bundled-es-modules/statuses@^1.0.1",
|
25 |
+
"_where": "/Users/sylvainfiloni/Documents/HuggingFace_Projects/live-vision/node_modules/msw",
|
26 |
+
"author": {
|
27 |
+
"name": "Pascal Schilp",
|
28 |
+
"email": "pascalschilp@gmail.com"
|
29 |
+
},
|
30 |
+
"bundleDependencies": false,
|
31 |
+
"dependencies": {
|
32 |
+
"statuses": "^2.0.1"
|
33 |
+
},
|
34 |
+
"deprecated": false,
|
35 |
+
"description": "mirror of statuses, bundled and exposed as ES module",
|
36 |
+
"devDependencies": {
|
37 |
+
"esbuild": "^0.17.17"
|
38 |
+
},
|
39 |
+
"exports": {
|
40 |
+
".": {
|
41 |
+
"import": "./index-esm.js",
|
42 |
+
"require": "./index-cjs.cjs"
|
43 |
+
}
|
44 |
+
},
|
45 |
+
"files": [
|
46 |
+
"index-esm.js",
|
47 |
+
"index-cjs.cjs"
|
48 |
+
],
|
49 |
+
"keywords": [],
|
50 |
+
"license": "ISC",
|
51 |
+
"main": "index-esm.js",
|
52 |
+
"name": "@bundled-es-modules/statuses",
|
53 |
+
"scripts": {
|
54 |
+
"build": "esbuild source.js --bundle --format=esm --outfile=index-esm.js",
|
55 |
+
"dev": "node dev.js"
|
56 |
+
},
|
57 |
+
"type": "module",
|
58 |
+
"version": "1.0.1"
|
59 |
+
}
|
node_modules/@gradio/.DS_Store
DELETED
Binary file (6.15 kB)
|
|
node_modules/@gradio/client/.DS_Store
DELETED
Binary file (6.15 kB)
|
|
node_modules/@gradio/client/CHANGELOG.md
CHANGED
@@ -1,5 +1,420 @@
|
|
1 |
# @gradio/client
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
## 0.10.1
|
4 |
|
5 |
### Fixes
|
|
|
1 |
# @gradio/client
|
2 |
|
3 |
+
## 1.1.1
|
4 |
+
|
5 |
+
### Features
|
6 |
+
|
7 |
+
- [#8499](https://github.com/gradio-app/gradio/pull/8499) [`c5f6e77`](https://github.com/gradio-app/gradio/commit/c5f6e7722a197d4706419ade14276ddecf3196f8) - Cache break themes on change. Thanks @aliabid94!
|
8 |
+
|
9 |
+
## 1.1.0
|
10 |
+
|
11 |
+
### Features
|
12 |
+
|
13 |
+
- [#8483](https://github.com/gradio-app/gradio/pull/8483) [`e2271e2`](https://github.com/gradio-app/gradio/commit/e2271e207d98074bf39b02ae3c5443b2f097627d) - documentation for @gradio/client. Thanks @pngwn!
|
14 |
+
- [#8485](https://github.com/gradio-app/gradio/pull/8485) [`f8ebace`](https://github.com/gradio-app/gradio/commit/f8ebaceccef60a112603d290d10072ef4e938a6a) - Ensure all status are reported internally when calling `predict`. Thanks @pngwn!
|
15 |
+
|
16 |
+
## 1.0.0
|
17 |
+
|
18 |
+
### Highlights
|
19 |
+
|
20 |
+
#### Clients 1.0 Launch! ([#8468](https://github.com/gradio-app/gradio/pull/8468) [`7cc0a0c`](https://github.com/gradio-app/gradio/commit/7cc0a0c1abea585c3f50ffb1ff78d2b08ddbdd92))
|
21 |
+
|
22 |
+
We're excited to unveil the first major release of the Gradio clients.
|
23 |
+
We've made it even easier to turn any Gradio application into a production endpoint thanks to the clients' **ergonomic**, **transparent**, and **portable** design.
|
24 |
+
|
25 |
+
#### Ergonomic API 💆
|
26 |
+
|
27 |
+
**Stream From a Gradio app in 5 lines**
|
28 |
+
|
29 |
+
Use the `submit` method to get a job you can iterate over:
|
30 |
+
|
31 |
+
```python
|
32 |
+
from gradio_client import Client
|
33 |
+
|
34 |
+
client = Client("gradio/llm_stream")
|
35 |
+
|
36 |
+
for result in client.submit("What's the best UI framework in Python?"):
|
37 |
+
print(result)
|
38 |
+
```
|
39 |
+
|
40 |
+
```ts
|
41 |
+
import { Client } from "@gradio/client";
|
42 |
+
|
43 |
+
const client = await Client.connect("gradio/llm_stream")
|
44 |
+
const job = client.submit("/predict", {"text": "What's the best UI framework in Python?"})
|
45 |
+
|
46 |
+
for await (const msg of job) console.log(msg.data)
|
47 |
+
```
|
48 |
+
|
49 |
+
**Use the same keyword arguments as the app**
|
50 |
+
|
51 |
+
|
52 |
+
```python
|
53 |
+
from gradio_client import Client
|
54 |
+
|
55 |
+
client = Client("http://127.0.0.1:7860/")
|
56 |
+
result = client.predict(
|
57 |
+
message="Hello!!",
|
58 |
+
system_prompt="You are helpful AI.",
|
59 |
+
tokens=10,
|
60 |
+
api_name="/chat"
|
61 |
+
)
|
62 |
+
print(result)
|
63 |
+
```
|
64 |
+
|
65 |
+
```ts
|
66 |
+
import { Client } from "@gradio/client";
|
67 |
+
|
68 |
+
const client = await Client.connect("http://127.0.0.1:7860/");
|
69 |
+
const result = await client.predict("/chat", {
|
70 |
+
message: "Hello!!",
|
71 |
+
system_prompt: "Hello!!",
|
72 |
+
tokens: 10,
|
73 |
+
});
|
74 |
+
|
75 |
+
console.log(result.data);
|
76 |
+
```
|
77 |
+
|
78 |
+
**Better Error Messages**
|
79 |
+
|
80 |
+
If something goes wrong in the upstream app, the client will raise the same exception as the app provided that `show_error=True` in the original app's `launch()` function, or it's a `gr.Error` exception.
|
81 |
+
|
82 |
+
#### Transparent Design 🪟
|
83 |
+
|
84 |
+
Anything you can do in the UI, you can do with the client:
|
85 |
+
* 🔒 Authentication
|
86 |
+
* 🛑 Job Cancelling
|
87 |
+
* ℹ️ Access Queue Position and API
|
88 |
+
* 📕 View the API information
|
89 |
+
|
90 |
+
Here's an example showing how to display the queue position of a pending job:
|
91 |
+
|
92 |
+
```python
|
93 |
+
from gradio_client import Client
|
94 |
+
|
95 |
+
client = Client("gradio/diffusion_model")
|
96 |
+
|
97 |
+
job = client.submit("A cute cat")
|
98 |
+
while not job.done():
|
99 |
+
status = job.status()
|
100 |
+
print(f"Current in position {status.rank} out of {status.queue_size}")
|
101 |
+
```
|
102 |
+
|
103 |
+
#### Portable Design ⛺️
|
104 |
+
|
105 |
+
The client can run from pretty much any python and javascript environment (node, deno, the browser, Service Workers).
|
106 |
+
|
107 |
+
Here's an example using the client from a Flask server using gevent:
|
108 |
+
|
109 |
+
```python
|
110 |
+
from gevent import monkey
|
111 |
+
monkey.patch_all()
|
112 |
+
|
113 |
+
from gradio_client import Client
|
114 |
+
from flask import Flask, send_file
|
115 |
+
import time
|
116 |
+
|
117 |
+
app = Flask(__name__)
|
118 |
+
|
119 |
+
imageclient = Client("gradio/diffusion_model")
|
120 |
+
|
121 |
+
@app.route("/gen")
|
122 |
+
def gen():
|
123 |
+
result = imageclient.predict(
|
124 |
+
"A cute cat",
|
125 |
+
api_name="/predict"
|
126 |
+
)
|
127 |
+
return send_file(result)
|
128 |
+
|
129 |
+
if __name__ == "__main__":
|
130 |
+
app.run(host="0.0.0.0", port=5000)
|
131 |
+
```
|
132 |
+
|
133 |
+
#### 1.0 Migration Guide and Breaking Changes
|
134 |
+
|
135 |
+
**Python**
|
136 |
+
- The `serialize` argument of the `Client` class was removed. Has no effect.
|
137 |
+
- The `upload_files` argument of the `Client` was removed.
|
138 |
+
- All filepaths must be wrapped in the `handle_file` method. Example:
|
139 |
+
```python
|
140 |
+
from gradio_client import Client, handle_file
|
141 |
+
|
142 |
+
client = Client("gradio/image_captioner")
|
143 |
+
client.predict(handle_file("cute_cat.jpg"))
|
144 |
+
```
|
145 |
+
- The `output_dir` argument was removed. It is not specified in the `download_files` argument.
|
146 |
+
|
147 |
+
|
148 |
+
**Javascript**
|
149 |
+
The client has been redesigned entirely. It was refactored from a function into a class. An instance can now be constructed by awaiting the `connect` method.
|
150 |
+
|
151 |
+
```js
|
152 |
+
const app = await Client.connect("gradio/whisper")
|
153 |
+
```
|
154 |
+
The app variable has the same methods as the python class (`submit`, `predict`, `view_api`, `duplicate`).
|
155 |
+
|
156 |
+
|
157 |
+
|
158 |
+
#### Additional Changes
|
159 |
+
|
160 |
+
- [#8243](https://github.com/gradio-app/gradio/pull/8243) - Set orig_name in python client file uploads.
|
161 |
+
- [#8264](https://github.com/gradio-app/gradio/pull/8264) - Make exceptions in the Client more specific.
|
162 |
+
- [#8247](https://github.com/gradio-app/gradio/pull/8247) - Fix api recorder.
|
163 |
+
- [#8276](https://github.com/gradio-app/gradio/pull/8276) - Fix bug where client could not connect to apps that had self signed certificates.
|
164 |
+
- [#8245](https://github.com/gradio-app/gradio/pull/8245) - Cancel server progress from the python client.
|
165 |
+
- [#8200](https://github.com/gradio-app/gradio/pull/8200) - Support custom components in gr.load
|
166 |
+
- [#8182](https://github.com/gradio-app/gradio/pull/8182) - Convert sse calls in client from async to sync.
|
167 |
+
- [#7732](https://github.com/gradio-app/gradio/pull/7732) - Adds support for kwargs and default arguments in the python client, and improves how parameter information is displayed in the "view API" page.
|
168 |
+
- [#7888](https://github.com/gradio-app/gradio/pull/7888) - Cache view_api info in server and python client.
|
169 |
+
- [#7575](https://github.com/gradio-app/gradio/pull/7575) - Files should now be supplied as `file(...)` in the Client, and some fixes to `gr.load()` as well.
|
170 |
+
- [#8401](https://github.com/gradio-app/gradio/pull/8401) - Add CDN installation to JS docs.
|
171 |
+
- [#8299](https://github.com/gradio-app/gradio/pull/8299) - Allow JS Client to work with authenticated spaces 🍪.
|
172 |
+
- [#8408](https://github.com/gradio-app/gradio/pull/8408) - Connect heartbeat if state created in render. Also fix config cleanup bug #8407.
|
173 |
+
- [#8258](https://github.com/gradio-app/gradio/pull/8258) - Improve URL handling in JS Client.
|
174 |
+
- [#8322](https://github.com/gradio-app/gradio/pull/8322) - ensure the client correctly handles all binary data.
|
175 |
+
- [#8296](https://github.com/gradio-app/gradio/pull/8296) - always create a jwt when connecting to a space if a hf_token is present.
|
176 |
+
- [#8285](https://github.com/gradio-app/gradio/pull/8285) - use the correct query param to pass the jwt to the heartbeat event.
|
177 |
+
- [#8272](https://github.com/gradio-app/gradio/pull/8272) - ensure client works for private spaces.
|
178 |
+
- [#8197](https://github.com/gradio-app/gradio/pull/8197) - Add support for passing keyword args to `data` in JS client.
|
179 |
+
- [#8252](https://github.com/gradio-app/gradio/pull/8252) - Client node fix.
|
180 |
+
- [#8209](https://github.com/gradio-app/gradio/pull/8209) - Rename `eventSource_Factory` and `fetch_implementation`.
|
181 |
+
- [#8109](https://github.com/gradio-app/gradio/pull/8109) - Implement JS Client tests.
|
182 |
+
- [#8211](https://github.com/gradio-app/gradio/pull/8211) - remove redundant event source logic.
|
183 |
+
- [#8179](https://github.com/gradio-app/gradio/pull/8179) - rework upload to be a class method + pass client into each component.
|
184 |
+
- [#8181](https://github.com/gradio-app/gradio/pull/8181) - Ensure connectivity to private HF spaces with SSE protocol.
|
185 |
+
- [#8169](https://github.com/gradio-app/gradio/pull/8169) - Only connect to heartbeat if needed.
|
186 |
+
- [#8118](https://github.com/gradio-app/gradio/pull/8118) - Add eventsource polyfill for Node.js and browser environments.
|
187 |
+
- [#7646](https://github.com/gradio-app/gradio/pull/7646) - Refactor JS Client.
|
188 |
+
- [#7974](https://github.com/gradio-app/gradio/pull/7974) - Fix heartbeat in the js client to be Lite compatible.
|
189 |
+
- [#7926](https://github.com/gradio-app/gradio/pull/7926) - Fixes streaming event race condition.
|
190 |
+
|
191 |
+
Thanks @freddyaboulton!
|
192 |
+
|
193 |
+
### Features
|
194 |
+
|
195 |
+
- [#8370](https://github.com/gradio-app/gradio/pull/8370) [`48eeea4`](https://github.com/gradio-app/gradio/commit/48eeea4eaab7e24168688e3c3fbafb30e4e78d51) - Refactor Cancelling Logic To Use /cancel. Thanks @freddyaboulton!
|
196 |
+
|
197 |
+
### Fixes
|
198 |
+
|
199 |
+
- [#8477](https://github.com/gradio-app/gradio/pull/8477) [`d5a9604`](https://github.com/gradio-app/gradio/commit/d5a960493017a4890685af61d78ce7d3b3b12e6b) - Fix js client bundle. Thanks @pngwn!
|
200 |
+
- [#8451](https://github.com/gradio-app/gradio/pull/8451) [`9d2d605`](https://github.com/gradio-app/gradio/commit/9d2d6051caed5c8749a26a6fa7480a5ae6e6c4f3) - Change client submit API to be an AsyncIterable and support more platforms. Thanks @pngwn!
|
201 |
+
- [#8462](https://github.com/gradio-app/gradio/pull/8462) [`6447dfa`](https://github.com/gradio-app/gradio/commit/6447dface4d46db1c69460e8325a1928d0476a46) - Improve file handling in JS Client. Thanks @hannahblair!
|
202 |
+
- [#8439](https://github.com/gradio-app/gradio/pull/8439) [`63d36fb`](https://github.com/gradio-app/gradio/commit/63d36fbbf4bf6dc909be9a0ffc7b6bf6621d83e8) - Handle gradio apps using `state` in the JS Client. Thanks @hannahblair!
|
203 |
+
|
204 |
+
## 0.20.1
|
205 |
+
|
206 |
+
### Features
|
207 |
+
|
208 |
+
- [#8415](https://github.com/gradio-app/gradio/pull/8415) [`227de35`](https://github.com/gradio-app/gradio/commit/227de352982b3dcdf9384eaa28b7e9cf09afb6e8) - Fix spaces load error. Thanks @aliabid94!
|
209 |
+
|
210 |
+
## 0.20.0
|
211 |
+
|
212 |
+
### Features
|
213 |
+
|
214 |
+
- [#8401](https://github.com/gradio-app/gradio/pull/8401) [`d078621`](https://github.com/gradio-app/gradio/commit/d078621928136c09ca902d2f37594ed887c67d2e) - Add CDN installation to JS docs. Thanks @hannahblair!
|
215 |
+
- [#8243](https://github.com/gradio-app/gradio/pull/8243) [`55f664f`](https://github.com/gradio-app/gradio/commit/55f664f2979a49acc29a73cde16c6ebdfcc91db2) - Add event listener support to render blocks. Thanks @aliabid94!
|
216 |
+
- [#8398](https://github.com/gradio-app/gradio/pull/8398) [`945ac83`](https://github.com/gradio-app/gradio/commit/945ac837e779b120790814ea6f6f81bd2712f5f8) - Improve rendering. Thanks @aliabid94!
|
217 |
+
- [#8299](https://github.com/gradio-app/gradio/pull/8299) [`ab65360`](https://github.com/gradio-app/gradio/commit/ab653608045ff9462db7ad9fe63e1c60bf20e773) - Allow JS Client to work with authenticated spaces 🍪. Thanks @hannahblair!
|
218 |
+
|
219 |
+
### Fixes
|
220 |
+
|
221 |
+
- [#8408](https://github.com/gradio-app/gradio/pull/8408) [`e86dd01`](https://github.com/gradio-app/gradio/commit/e86dd01b6e8f7bab3d3c25b84f2ad33129138af4) - Connect heartbeat if state created in render. Also fix config cleanup bug #8407. Thanks @freddyaboulton!
|
222 |
+
- [#8258](https://github.com/gradio-app/gradio/pull/8258) [`1f8e5c4`](https://github.com/gradio-app/gradio/commit/1f8e5c44e054b943052d8f24d044696ddfd01a54) - Improve URL handling in JS Client. Thanks @hannahblair!
|
223 |
+
|
224 |
+
## 0.19.4
|
225 |
+
|
226 |
+
### Fixes
|
227 |
+
|
228 |
+
- [#8322](https://github.com/gradio-app/gradio/pull/8322) [`47012a0`](https://github.com/gradio-app/gradio/commit/47012a0c4e3e8a80fcae620aaf08b16ceb343cde) - ensure the client correctly handles all binary data. Thanks @Saghen!
|
229 |
+
|
230 |
+
## 0.19.3
|
231 |
+
|
232 |
+
### Features
|
233 |
+
|
234 |
+
- [#8229](https://github.com/gradio-app/gradio/pull/8229) [`7c81897`](https://github.com/gradio-app/gradio/commit/7c81897076ddcd0bb05e0e4ffec35bb9a986d330) - chore(deps): update dependency esbuild to ^0.21.0. Thanks @renovate!
|
235 |
+
|
236 |
+
### Fixes
|
237 |
+
|
238 |
+
- [#8296](https://github.com/gradio-app/gradio/pull/8296) [`929d216`](https://github.com/gradio-app/gradio/commit/929d216d49aa05614bc83f0761cf7b1cd803d8fe) - always create a jwt when connecting to a space if a hf_token is present. Thanks @pngwn!
|
239 |
+
|
240 |
+
## 0.19.2
|
241 |
+
|
242 |
+
### Fixes
|
243 |
+
|
244 |
+
- [#8285](https://github.com/gradio-app/gradio/pull/8285) [`7d9d8ea`](https://github.com/gradio-app/gradio/commit/7d9d8eab50d36cbecbb84c6a0f3cc1bca7215604) - use the correct query param to pass the jwt to the heartbeat event. Thanks @pngwn!
|
245 |
+
|
246 |
+
## 0.19.1
|
247 |
+
|
248 |
+
### Fixes
|
249 |
+
|
250 |
+
- [#8272](https://github.com/gradio-app/gradio/pull/8272) [`fbf4edd`](https://github.com/gradio-app/gradio/commit/fbf4edde7c896cdf4c903463e44c31ed96111b3c) - ensure client works for private spaces. Thanks @pngwn!
|
251 |
+
|
252 |
+
## 0.19.0
|
253 |
+
|
254 |
+
### Features
|
255 |
+
|
256 |
+
- [#8110](https://github.com/gradio-app/gradio/pull/8110) [`5436031`](https://github.com/gradio-app/gradio/commit/5436031f92c1596282eb64e1e74d555f279e9697) - Render decorator 2. Thanks @aliabid94!
|
257 |
+
- [#8197](https://github.com/gradio-app/gradio/pull/8197) [`e09b4e8`](https://github.com/gradio-app/gradio/commit/e09b4e8216b970bc1b142a0f08e7d190b954eb35) - Add support for passing keyword args to `data` in JS client. Thanks @hannahblair!
|
258 |
+
|
259 |
+
### Fixes
|
260 |
+
|
261 |
+
- [#8252](https://github.com/gradio-app/gradio/pull/8252) [`22df61a`](https://github.com/gradio-app/gradio/commit/22df61a26adf8023f6dd49c051979990e8d3879a) - Client node fix. Thanks @pngwn!
|
262 |
+
|
263 |
+
## 0.18.0
|
264 |
+
|
265 |
+
### Features
|
266 |
+
|
267 |
+
- [#8121](https://github.com/gradio-app/gradio/pull/8121) [`f5b710c`](https://github.com/gradio-app/gradio/commit/f5b710c919b0ce604ea955f0d5f4faa91095ca4a) - chore(deps): update dependency eslint to v9. Thanks @renovate!
|
268 |
+
- [#8209](https://github.com/gradio-app/gradio/pull/8209) [`b9afe93`](https://github.com/gradio-app/gradio/commit/b9afe93915401df5bd6737c89395c2477acfa585) - Rename `eventSource_Factory` and `fetch_implementation`. Thanks @hannahblair!
|
269 |
+
- [#8109](https://github.com/gradio-app/gradio/pull/8109) [`bed2f82`](https://github.com/gradio-app/gradio/commit/bed2f82e2297b50f7b59423a3de05af0b9910724) - Implement JS Client tests. Thanks @hannahblair!
|
270 |
+
- [#8211](https://github.com/gradio-app/gradio/pull/8211) [`91b5cd6`](https://github.com/gradio-app/gradio/commit/91b5cd6132fb8903c92f70fce0800324836a1fc3) - remove redundant event source logic. Thanks @hannahblair!
|
271 |
+
|
272 |
+
### Fixes
|
273 |
+
|
274 |
+
- [#8179](https://github.com/gradio-app/gradio/pull/8179) [`6a218b4`](https://github.com/gradio-app/gradio/commit/6a218b4148095aaa0c58d8c20973ba01c8764fc2) - rework upload to be a class method + pass client into each component. Thanks @pngwn!
|
275 |
+
- [#8181](https://github.com/gradio-app/gradio/pull/8181) [`cf52ca6`](https://github.com/gradio-app/gradio/commit/cf52ca6a51320ece97f009a177792840b5fbc785) - Ensure connectivity to private HF spaces with SSE protocol. Thanks @hannahblair!
|
276 |
+
- [#8169](https://github.com/gradio-app/gradio/pull/8169) [`3a6f1a5`](https://github.com/gradio-app/gradio/commit/3a6f1a50b263e0a733f609a08019fc4d05480e1a) - Only connect to heartbeat if needed. Thanks @freddyaboulton!
|
277 |
+
- [#8118](https://github.com/gradio-app/gradio/pull/8118) [`7aca673`](https://github.com/gradio-app/gradio/commit/7aca673b38a087533524b2fd8dd3a03e0e4bacfe) - Add eventsource polyfill for Node.js and browser environments. Thanks @hannahblair!
|
278 |
+
|
279 |
+
## 0.17.0
|
280 |
+
|
281 |
+
### Highlights
|
282 |
+
|
283 |
+
#### Setting File Upload Limits ([#7909](https://github.com/gradio-app/gradio/pull/7909) [`2afca65`](https://github.com/gradio-app/gradio/commit/2afca6541912b37dc84f447c7ad4af21607d7c72))
|
284 |
+
|
285 |
+
We have added a `max_file_size` size parameter to `launch()` that limits to size of files uploaded to the server. This limit applies to each individual file. This parameter can be specified as a string or an integer (corresponding to the size in bytes).
|
286 |
+
|
287 |
+
The following code snippet sets a max file size of 5 megabytes.
|
288 |
+
|
289 |
+
```python
|
290 |
+
import gradio as gr
|
291 |
+
|
292 |
+
demo = gr.Interface(lambda x: x, "image", "image")
|
293 |
+
|
294 |
+
demo.launch(max_file_size="5mb")
|
295 |
+
# or
|
296 |
+
demo.launch(max_file_size=5 * gr.FileSize.MB)
|
297 |
+
```
|
298 |
+
|
299 |
+
![max_file_size_upload](https://github.com/gradio-app/gradio/assets/41651716/7547330c-a082-4901-a291-3f150a197e45)
|
300 |
+
|
301 |
+
|
302 |
+
#### Error states can now be cleared
|
303 |
+
|
304 |
+
When a component encounters an error, the error state shown in the UI can now be cleared by clicking on the `x` icon in the top right of the component. This applies to all types of errors, whether it's raised in the UI or the server.
|
305 |
+
|
306 |
+
![error_modal_calculator](https://github.com/gradio-app/gradio/assets/41651716/16cb071c-accd-45a6-9c18-0dea27d4bd98)
|
307 |
+
|
308 |
+
Thanks @freddyaboulton!
|
309 |
+
|
310 |
+
### Features
|
311 |
+
|
312 |
+
- [#8056](https://github.com/gradio-app/gradio/pull/8056) [`2e469a5`](https://github.com/gradio-app/gradio/commit/2e469a5f99e52a5011a010f46e47dde7bb0c7140) - Using keys to preserve values between reloads. Thanks @aliabid94!
|
313 |
+
- [#7646](https://github.com/gradio-app/gradio/pull/7646) [`450b8cc`](https://github.com/gradio-app/gradio/commit/450b8cc898f130f15caa3742f65c17b9f7a8f398) - Refactor JS Client. Thanks @hannahblair!
|
314 |
+
- [#8061](https://github.com/gradio-app/gradio/pull/8061) [`17e83c9`](https://github.com/gradio-app/gradio/commit/17e83c958ebb35b3e122ca486067d1bd5ce33a22) - Docs Reorg and Intro Page. Thanks @aliabd!
|
315 |
+
|
316 |
+
### Fixes
|
317 |
+
|
318 |
+
- [#8066](https://github.com/gradio-app/gradio/pull/8066) [`624f9b9`](https://github.com/gradio-app/gradio/commit/624f9b9477f74a581a6c14119234f9efdfcda398) - make gradio dev tools a local dependency rather than bundling. Thanks @pngwn!
|
319 |
+
|
320 |
+
## 0.16.0
|
321 |
+
|
322 |
+
### Features
|
323 |
+
|
324 |
+
- [#7845](https://github.com/gradio-app/gradio/pull/7845) [`dbb7373`](https://github.com/gradio-app/gradio/commit/dbb7373dde69d4ed2741942b5a1898f8620cec24) - ensure `ImageEditor` events work as expected. Thanks @pngwn!
|
325 |
+
|
326 |
+
### Fixes
|
327 |
+
|
328 |
+
- [#7974](https://github.com/gradio-app/gradio/pull/7974) [`79e0aa8`](https://github.com/gradio-app/gradio/commit/79e0aa81c94e755faa6e85d76ac5d5a666313e6a) - Fix heartbeat in the js client to be Lite compatible. Thanks @whitphx!
|
329 |
+
|
330 |
+
## 0.15.1
|
331 |
+
|
332 |
+
### Fixes
|
333 |
+
|
334 |
+
- [#7926](https://github.com/gradio-app/gradio/pull/7926) [`9666854`](https://github.com/gradio-app/gradio/commit/966685479078f59430b3bced7e6068eb8157c003) - Fixes streaming event race condition. Thanks @aliabid94!
|
335 |
+
|
336 |
+
## 0.15.0
|
337 |
+
|
338 |
+
### Highlights
|
339 |
+
|
340 |
+
#### Automatically delete state after user has disconnected from the webpage ([#7829](https://github.com/gradio-app/gradio/pull/7829) [`6a4bf7a`](https://github.com/gradio-app/gradio/commit/6a4bf7abe29059dbdc6a342e0366fdaa2e4120ee))
|
341 |
+
|
342 |
+
Gradio now automatically deletes `gr.State` variables stored in the server's RAM when users close their browser tab.
|
343 |
+
The deletion will happen 60 minutes after the server detected a disconnect from the user's browser.
|
344 |
+
If the user connects again in that timeframe, their state will not be deleted.
|
345 |
+
|
346 |
+
Additionally, Gradio now includes a `Blocks.unload()` event, allowing you to run arbitrary cleanup functions when users disconnect (this does not have a 60 minute delay).
|
347 |
+
You can think of the `unload` event as the opposite of the `load` event.
|
348 |
+
|
349 |
+
|
350 |
+
```python
|
351 |
+
with gr.Blocks() as demo:
|
352 |
+
gr.Markdown(
|
353 |
+
"""# State Cleanup Demo
|
354 |
+
🖼️ Images are saved in a user-specific directory and deleted when the users closes the page via demo.unload.
|
355 |
+
""")
|
356 |
+
with gr.Row():
|
357 |
+
with gr.Column(scale=1):
|
358 |
+
with gr.Row():
|
359 |
+
img = gr.Image(label="Generated Image", height=300, width=300)
|
360 |
+
with gr.Row():
|
361 |
+
gen = gr.Button(value="Generate")
|
362 |
+
with gr.Row():
|
363 |
+
history = gr.Gallery(label="Previous Generations", height=500, columns=10)
|
364 |
+
state = gr.State(value=[], delete_callback=lambda v: print("STATE DELETED"))
|
365 |
+
|
366 |
+
demo.load(generate_random_img, [state], [img, state, history])
|
367 |
+
gen.click(generate_random_img, [state], [img, state, history])
|
368 |
+
demo.unload(delete_directory)
|
369 |
+
|
370 |
+
|
371 |
+
demo.launch(auth=lambda user,pwd: True,
|
372 |
+
auth_message="Enter any username and password to continue")
|
373 |
+
```
|
374 |
+
|
375 |
+
Thanks @freddyaboulton!
|
376 |
+
|
377 |
+
## 0.14.0
|
378 |
+
|
379 |
+
### Features
|
380 |
+
|
381 |
+
- [#7691](https://github.com/gradio-app/gradio/pull/7691) [`84f81fe`](https://github.com/gradio-app/gradio/commit/84f81fec9287b041203a141bbf2852720f7d199c) - Closing stream from the backend. Thanks @aliabid94!
|
382 |
+
|
383 |
+
### Fixes
|
384 |
+
|
385 |
+
- [#7564](https://github.com/gradio-app/gradio/pull/7564) [`5d1e8da`](https://github.com/gradio-app/gradio/commit/5d1e8dae5ac23f605c3b5f41dbe18751dff380a0) - batch UI updates on a per frame basis. Thanks @pngwn!
|
386 |
+
|
387 |
+
## 0.13.0
|
388 |
+
|
389 |
+
### Fixes
|
390 |
+
|
391 |
+
- [#7575](https://github.com/gradio-app/gradio/pull/7575) [`d0688b3`](https://github.com/gradio-app/gradio/commit/d0688b3c25feabb4fc7dfa0ab86086b3af7eb337) - Files should now be supplied as `file(...)` in the Client, and some fixes to `gr.load()` as well. Thanks @abidlabs!
|
392 |
+
|
393 |
+
## 0.12.2
|
394 |
+
|
395 |
+
### Features
|
396 |
+
|
397 |
+
- [#7528](https://github.com/gradio-app/gradio/pull/7528) [`eda33b3`](https://github.com/gradio-app/gradio/commit/eda33b3763897a542acf298e523fa493dc655aee) - Refactors `get_fetchable_url_or_file()` to remove it from the frontend. Thanks [@abidlabs](https://github.com/abidlabs)!
|
398 |
+
- [#7340](https://github.com/gradio-app/gradio/pull/7340) [`4b0d589`](https://github.com/gradio-app/gradio/commit/4b0d58933057432758a54169a360eb352903d6b4) - chore(deps): update all non-major dependencies. Thanks [@renovate](https://github.com/apps/renovate)!
|
399 |
+
|
400 |
+
## 0.12.1
|
401 |
+
|
402 |
+
### Fixes
|
403 |
+
|
404 |
+
- [#7411](https://github.com/gradio-app/gradio/pull/7411) [`32b317f`](https://github.com/gradio-app/gradio/commit/32b317f24e3d43f26684bb9f3964f31efd0ea556) - Set `root` correctly for Gradio apps that are deployed behind reverse proxies. Thanks [@abidlabs](https://github.com/abidlabs)!
|
405 |
+
|
406 |
+
## 0.12.0
|
407 |
+
|
408 |
+
### Features
|
409 |
+
|
410 |
+
- [#7183](https://github.com/gradio-app/gradio/pull/7183) [`49d9c48`](https://github.com/gradio-app/gradio/commit/49d9c48537aa706bf72628e3640389470138bdc6) - [WIP] Refactor file normalization to be in the backend and remove it from the frontend of each component. Thanks [@abidlabs](https://github.com/abidlabs)!
|
411 |
+
|
412 |
+
## 0.11.0
|
413 |
+
|
414 |
+
### Features
|
415 |
+
|
416 |
+
- [#7102](https://github.com/gradio-app/gradio/pull/7102) [`68a54a7`](https://github.com/gradio-app/gradio/commit/68a54a7a310d8d7072fdae930bf1cfdf12c45a7f) - Improve chatbot streaming performance with diffs. Thanks [@aliabid94](https://github.com/aliabid94)!/n Note that this PR changes the API format for generator functions, which would be a breaking change for any clients reading the EventStream directly
|
417 |
+
|
418 |
## 0.10.1
|
419 |
|
420 |
### Fixes
|
node_modules/@gradio/client/README.md
CHANGED
@@ -1,29 +1,36 @@
|
|
1 |
## JavaScript Client Library
|
2 |
|
3 |
-
|
|
|
4 |
|
5 |
## Installation
|
6 |
|
7 |
-
The Gradio JavaScript
|
8 |
|
9 |
-
```
|
10 |
npm i @gradio/client
|
11 |
```
|
12 |
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
## Usage
|
14 |
|
15 |
-
The JavaScript Gradio Client exposes
|
16 |
|
17 |
-
### `
|
18 |
|
19 |
-
The
|
20 |
|
21 |
The simplest example looks like this:
|
22 |
|
23 |
```ts
|
24 |
-
import {
|
25 |
|
26 |
-
const app = await
|
27 |
const result = await app.predict("/predict");
|
28 |
```
|
29 |
|
@@ -34,7 +41,7 @@ This function accepts two arguments: `source` and `options`:
|
|
34 |
This is the url or name of the gradio app whose API you wish to connect to. This parameter is required and should always be a string. For example:
|
35 |
|
36 |
```ts
|
37 |
-
|
38 |
```
|
39 |
|
40 |
#### `options`
|
@@ -48,23 +55,23 @@ This should be a Hugging Face personal access token and is required if you wish
|
|
48 |
Example:
|
49 |
|
50 |
```ts
|
51 |
-
import {
|
52 |
|
53 |
-
const app = await
|
54 |
```
|
55 |
|
56 |
##### `status_callback`
|
57 |
|
58 |
-
This should be a function which will notify
|
59 |
|
60 |
**Additional context**
|
61 |
|
62 |
Applications hosted on Hugging Face spaces can be in a number of different states. As spaces are a GitOps tool and will rebuild when new changes are pushed to the repository, they have various building, running and error states. If a space is not 'running' then the function passed as the `status_callback` will notify you of the current state of the space and the status of the space as it changes. Spaces that are building or sleeping can take longer than usual to respond, so you can use this information to give users feedback about the progress of their action.
|
63 |
|
64 |
```ts
|
65 |
-
import {
|
66 |
|
67 |
-
const app = await
|
68 |
// The space_status parameter does not need to be manually annotated, this is just for illustration.
|
69 |
space_status: (space_status: SpaceStatus) => console.log(space_status)
|
70 |
});
|
@@ -100,9 +107,9 @@ The gradio client returns an object with a number of methods and properties:
|
|
100 |
The `predict` method allows you to call an api endpoint and get a prediction result:
|
101 |
|
102 |
```ts
|
103 |
-
import {
|
104 |
|
105 |
-
const app = await
|
106 |
const result = await app.predict("/predict");
|
107 |
```
|
108 |
|
@@ -113,21 +120,25 @@ const result = await app.predict("/predict");
|
|
113 |
This is the endpoint for an api request and is required. The default endpoint for a `gradio.Interface` is `"/predict"`. Explicitly named endpoints have a custom name. The endpoint names can be found on the "View API" page of a space.
|
114 |
|
115 |
```ts
|
116 |
-
import {
|
117 |
|
118 |
-
const app = await
|
119 |
const result = await app.predict("/predict");
|
120 |
```
|
121 |
|
122 |
##### `payload`
|
123 |
|
124 |
-
The `payload` argument is generally
|
125 |
|
126 |
```ts
|
127 |
-
import {
|
128 |
|
129 |
-
const app = await
|
130 |
-
const result = await app.predict("/predict",
|
|
|
|
|
|
|
|
|
131 |
```
|
132 |
|
133 |
#### `submit`
|
@@ -135,19 +146,27 @@ const result = await app.predict("/predict", [1, "Hello", "friends"]);
|
|
135 |
The `submit` method provides a more flexible way to call an API endpoint, providing you with status updates about the current progress of the prediction as well as supporting more complex endpoint types.
|
136 |
|
137 |
```ts
|
138 |
-
import {
|
139 |
|
140 |
-
const app = await
|
141 |
-
const submission = app.submit("/predict",
|
142 |
```
|
143 |
|
144 |
The `submit` method accepts the same [`endpoint`](#endpoint) and [`payload`](#payload) arguments as `predict`.
|
145 |
|
146 |
-
The `submit` method does not return a promise and should not be awaited, instead it returns an
|
|
|
|
|
147 |
|
148 |
-
|
149 |
|
150 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
151 |
|
152 |
`"data"` updates are issued when the API computes a value, the callback provided as the second argument will be called when such a value is sent to the client. The shape of the data depends on the way the API itself is constructed. This event may fire more than once if that endpoint supports emmitting new values over time.
|
153 |
|
@@ -176,61 +195,38 @@ interface Status {
|
|
176 |
}
|
177 |
```
|
178 |
|
179 |
-
Usage
|
180 |
|
181 |
```ts
|
182 |
-
import {
|
183 |
|
184 |
-
const app = await
|
185 |
const submission = app
|
186 |
-
.submit("/predict",
|
187 |
-
.on("data", (data) => console.log(data))
|
188 |
-
.on("status", (status: Status) => console.log(status));
|
189 |
-
```
|
190 |
-
|
191 |
-
##### `off`
|
192 |
|
193 |
-
|
|
|
|
|
|
|
194 |
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
const handle_data = (data) => console.log(data);
|
200 |
-
|
201 |
-
const submission = app.submit("/predict", payload).on("data", handle_data);
|
202 |
-
|
203 |
-
// later
|
204 |
-
submission.off("/predict", handle_data);
|
205 |
```
|
206 |
|
207 |
-
##### `destroy`
|
208 |
-
|
209 |
-
The `destroy` method will remove all subscriptions to a job, regardless of whether or not they are `"data"` or `"status"` events. This is a convenience method for when you do not want to unsubscribe use the `off` method.
|
210 |
-
|
211 |
-
```js
|
212 |
-
import { client } from "@gradio/client";
|
213 |
-
|
214 |
-
const app = await client("user/space-name");
|
215 |
-
const handle_data = (data) => console.log(data);
|
216 |
-
|
217 |
-
const submission = app.submit("/predict", payload).on("data", handle_data);
|
218 |
-
|
219 |
-
// later
|
220 |
-
submission.destroy();
|
221 |
-
```
|
222 |
|
223 |
##### `cancel`
|
224 |
|
225 |
Certain types of gradio function can run repeatedly and in some cases indefinitely. the `cancel` method will stop such an endpoints and prevent the API from issuing additional updates.
|
226 |
|
227 |
```ts
|
228 |
-
import {
|
229 |
|
230 |
-
const app = await
|
231 |
const submission = app
|
232 |
-
.submit("/predict",
|
233 |
-
|
234 |
|
235 |
// later
|
236 |
|
@@ -242,9 +238,9 @@ submission.cancel();
|
|
242 |
The `view_api` method provides details about the API you are connected to. It returns a JavaScript object of all named endpoints, unnamed endpoints and what values they accept and return. This method does not accept arguments.
|
243 |
|
244 |
```ts
|
245 |
-
import {
|
246 |
|
247 |
-
const app = await
|
248 |
const api_info = await app.view_api();
|
249 |
|
250 |
console.log(api_info);
|
@@ -255,9 +251,9 @@ console.log(api_info);
|
|
255 |
The `config` property contains the configuration for the gradio application you are connected to. This object may contain useful meta information about the application.
|
256 |
|
257 |
```ts
|
258 |
-
import {
|
259 |
|
260 |
-
const app = await
|
261 |
console.log(app.config);
|
262 |
```
|
263 |
|
@@ -268,9 +264,9 @@ The duplicate function will attempt to duplicate the space that is referenced an
|
|
268 |
`duplicate` accepts the same arguments as `client` with the addition of a `private` options property dictating whether the duplicated space should be private or public. A huggingface token is required for duplication to work.
|
269 |
|
270 |
```ts
|
271 |
-
import {
|
272 |
|
273 |
-
const app = await duplicate("user/space-name", {
|
274 |
hf_token: "hf_..."
|
275 |
});
|
276 |
```
|
@@ -292,9 +288,9 @@ Accepts all options that `client` accepts, except `hf_token` is required. [See `
|
|
292 |
This is an optional property specific to `duplicate`'s options object and will determine whether the space should be public or private. Spaces duplicated via the `duplicate` method are public by default.
|
293 |
|
294 |
```ts
|
295 |
-
import {
|
296 |
|
297 |
-
const app = await duplicate("user/space-name", {
|
298 |
hf_token: "hf_...",
|
299 |
private: true
|
300 |
});
|
@@ -305,9 +301,9 @@ const app = await duplicate("user/space-name", {
|
|
305 |
This is an optional property specific to `duplicate`'s options object and will set the timeout in minutes before the duplicated space will go to sleep.
|
306 |
|
307 |
```ts
|
308 |
-
import {
|
309 |
|
310 |
-
const app = await duplicate("user/space-name", {
|
311 |
hf_token: "hf_...",
|
312 |
private: true,
|
313 |
timeout: 5
|
@@ -322,16 +318,22 @@ Possible hardware options are:
|
|
322 |
|
323 |
- `"cpu-basic"`
|
324 |
- `"cpu-upgrade"`
|
|
|
325 |
- `"t4-small"`
|
326 |
- `"t4-medium"`
|
327 |
- `"a10g-small"`
|
328 |
- `"a10g-large"`
|
|
|
|
|
329 |
- `"a100-large"`
|
|
|
|
|
|
|
330 |
|
331 |
```ts
|
332 |
-
import {
|
333 |
|
334 |
-
const app = await duplicate("user/space-name", {
|
335 |
hf_token: "hf_...",
|
336 |
private: true,
|
337 |
hardware: "a10g-small"
|
|
|
1 |
## JavaScript Client Library
|
2 |
|
3 |
+
Interact with Gradio APIs using our JavaScript (and TypeScript) client.
|
4 |
+
|
5 |
|
6 |
## Installation
|
7 |
|
8 |
+
The Gradio JavaScript Client is available on npm as `@gradio/client`. You can install it as below:
|
9 |
|
10 |
+
```shell
|
11 |
npm i @gradio/client
|
12 |
```
|
13 |
|
14 |
+
Or, you can include it directly in your HTML via the jsDelivr CDN:
|
15 |
+
|
16 |
+
```shell
|
17 |
+
<script src="https://cdn.jsdelivr.net/npm/@gradio/client/dist/index.min.js"></script>
|
18 |
+
```
|
19 |
+
|
20 |
## Usage
|
21 |
|
22 |
+
The JavaScript Gradio Client exposes the Client class, `Client`, along with various other utility functions. `Client` is used to initialise and establish a connection to, or duplicate, a Gradio app.
|
23 |
|
24 |
+
### `Client`
|
25 |
|
26 |
+
The Client function connects to the API of a hosted Gradio space and returns an object that allows you to make calls to that API.
|
27 |
|
28 |
The simplest example looks like this:
|
29 |
|
30 |
```ts
|
31 |
+
import { Client } from "@gradio/client";
|
32 |
|
33 |
+
const app = await Client.connect("user/space-name");
|
34 |
const result = await app.predict("/predict");
|
35 |
```
|
36 |
|
|
|
41 |
This is the url or name of the gradio app whose API you wish to connect to. This parameter is required and should always be a string. For example:
|
42 |
|
43 |
```ts
|
44 |
+
Client.connect("user/space-name");
|
45 |
```
|
46 |
|
47 |
#### `options`
|
|
|
55 |
Example:
|
56 |
|
57 |
```ts
|
58 |
+
import { Client } from "@gradio/client";
|
59 |
|
60 |
+
const app = await Client.connect("user/space-name", { hf_token: "hf_..." });
|
61 |
```
|
62 |
|
63 |
##### `status_callback`
|
64 |
|
65 |
+
This should be a function which will notify you of the status of a space if it is not running. If the gradio API you are connecting to is not awake and running or is not hosted on Hugging Face space then this function will do nothing.
|
66 |
|
67 |
**Additional context**
|
68 |
|
69 |
Applications hosted on Hugging Face spaces can be in a number of different states. As spaces are a GitOps tool and will rebuild when new changes are pushed to the repository, they have various building, running and error states. If a space is not 'running' then the function passed as the `status_callback` will notify you of the current state of the space and the status of the space as it changes. Spaces that are building or sleeping can take longer than usual to respond, so you can use this information to give users feedback about the progress of their action.
|
70 |
|
71 |
```ts
|
72 |
+
import { Client, type SpaceStatus } from "@gradio/client";
|
73 |
|
74 |
+
const app = await Client.connect("user/space-name", {
|
75 |
// The space_status parameter does not need to be manually annotated, this is just for illustration.
|
76 |
space_status: (space_status: SpaceStatus) => console.log(space_status)
|
77 |
});
|
|
|
107 |
The `predict` method allows you to call an api endpoint and get a prediction result:
|
108 |
|
109 |
```ts
|
110 |
+
import { Client } from "@gradio/client";
|
111 |
|
112 |
+
const app = await Client.connect("user/space-name");
|
113 |
const result = await app.predict("/predict");
|
114 |
```
|
115 |
|
|
|
120 |
This is the endpoint for an api request and is required. The default endpoint for a `gradio.Interface` is `"/predict"`. Explicitly named endpoints have a custom name. The endpoint names can be found on the "View API" page of a space.
|
121 |
|
122 |
```ts
|
123 |
+
import { Client } from "@gradio/client";
|
124 |
|
125 |
+
const app = await Client.connect("user/space-name");
|
126 |
const result = await app.predict("/predict");
|
127 |
```
|
128 |
|
129 |
##### `payload`
|
130 |
|
131 |
+
The `payload` argument is generally required but this depends on the API itself. If the API endpoint depends on values being passed in then the argument is required for the API request to succeed. The data that should be passed in is detailed on the "View API" page of a space, or accessible via the `view_api()` method of the client.
|
132 |
|
133 |
```ts
|
134 |
+
import { Client } from "@gradio/client";
|
135 |
|
136 |
+
const app = await Client.connect("user/space-name");
|
137 |
+
const result = await app.predict("/predict", {
|
138 |
+
input: 1,
|
139 |
+
word_1: "Hello",
|
140 |
+
word_2: "friends"
|
141 |
+
});
|
142 |
```
|
143 |
|
144 |
#### `submit`
|
|
|
146 |
The `submit` method provides a more flexible way to call an API endpoint, providing you with status updates about the current progress of the prediction as well as supporting more complex endpoint types.
|
147 |
|
148 |
```ts
|
149 |
+
import { Client } from "@gradio/client";
|
150 |
|
151 |
+
const app = await Client.connect("user/space-name");
|
152 |
+
const submission = app.submit("/predict", { name: "Chewbacca" });
|
153 |
```
|
154 |
|
155 |
The `submit` method accepts the same [`endpoint`](#endpoint) and [`payload`](#payload) arguments as `predict`.
|
156 |
|
157 |
+
The `submit` method does not return a promise and should not be awaited, instead it returns an async iterator with a `cancel` method.
|
158 |
+
|
159 |
+
##### Accessing values
|
160 |
|
161 |
+
Iterating the submission allows you to access the events related to the submitted API request. There are two types of events that can be listened for: `"data"` updates and `"status"` updates. By default only the `"data"` event is reported, but you can listen for the `"status"` event by manually passing the events you care about when instantiating the client:
|
162 |
|
163 |
+
```ts
|
164 |
+
import { Client } from "@gradio/client";
|
165 |
+
|
166 |
+
const app = await Client.connect("user/space-name", {
|
167 |
+
events: ["data", "status"]
|
168 |
+
});
|
169 |
+
```
|
170 |
|
171 |
`"data"` updates are issued when the API computes a value, the callback provided as the second argument will be called when such a value is sent to the client. The shape of the data depends on the way the API itself is constructed. This event may fire more than once if that endpoint supports emmitting new values over time.
|
172 |
|
|
|
195 |
}
|
196 |
```
|
197 |
|
198 |
+
Usage looks like this:
|
199 |
|
200 |
```ts
|
201 |
+
import { Client } from "@gradio/client";
|
202 |
|
203 |
+
const app = await Client.connect("user/space-name");
|
204 |
const submission = app
|
205 |
+
.submit("/predict", { name: "Chewbacca" })
|
|
|
|
|
|
|
|
|
|
|
206 |
|
207 |
+
for await (const msg of submission) {
|
208 |
+
if (msg.type === "data") {
|
209 |
+
console.log(msg.data);
|
210 |
+
}
|
211 |
|
212 |
+
if (msg.type === "status") {
|
213 |
+
console.log(msg);
|
214 |
+
}
|
215 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
216 |
```
|
217 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
218 |
|
219 |
##### `cancel`
|
220 |
|
221 |
Certain types of gradio function can run repeatedly and in some cases indefinitely. the `cancel` method will stop such an endpoints and prevent the API from issuing additional updates.
|
222 |
|
223 |
```ts
|
224 |
+
import { Client } from "@gradio/client";
|
225 |
|
226 |
+
const app = await Client.connect("user/space-name");
|
227 |
const submission = app
|
228 |
+
.submit("/predict", { name: "Chewbacca" })
|
229 |
+
|
230 |
|
231 |
// later
|
232 |
|
|
|
238 |
The `view_api` method provides details about the API you are connected to. It returns a JavaScript object of all named endpoints, unnamed endpoints and what values they accept and return. This method does not accept arguments.
|
239 |
|
240 |
```ts
|
241 |
+
import { Client } from "@gradio/client";
|
242 |
|
243 |
+
const app = await Client.connect("user/space-name");
|
244 |
const api_info = await app.view_api();
|
245 |
|
246 |
console.log(api_info);
|
|
|
251 |
The `config` property contains the configuration for the gradio application you are connected to. This object may contain useful meta information about the application.
|
252 |
|
253 |
```ts
|
254 |
+
import { Client } from "@gradio/client";
|
255 |
|
256 |
+
const app = await Client.connect("user/space-name");
|
257 |
console.log(app.config);
|
258 |
```
|
259 |
|
|
|
264 |
`duplicate` accepts the same arguments as `client` with the addition of a `private` options property dictating whether the duplicated space should be private or public. A huggingface token is required for duplication to work.
|
265 |
|
266 |
```ts
|
267 |
+
import { Client } from "@gradio/client";
|
268 |
|
269 |
+
const app = await Client.duplicate("user/space-name", {
|
270 |
hf_token: "hf_..."
|
271 |
});
|
272 |
```
|
|
|
288 |
This is an optional property specific to `duplicate`'s options object and will determine whether the space should be public or private. Spaces duplicated via the `duplicate` method are public by default.
|
289 |
|
290 |
```ts
|
291 |
+
import { Client } from "@gradio/client";
|
292 |
|
293 |
+
const app = await Client.duplicate("user/space-name", {
|
294 |
hf_token: "hf_...",
|
295 |
private: true
|
296 |
});
|
|
|
301 |
This is an optional property specific to `duplicate`'s options object and will set the timeout in minutes before the duplicated space will go to sleep.
|
302 |
|
303 |
```ts
|
304 |
+
import { Client } from "@gradio/client";
|
305 |
|
306 |
+
const app = await Client.duplicate("user/space-name", {
|
307 |
hf_token: "hf_...",
|
308 |
private: true,
|
309 |
timeout: 5
|
|
|
318 |
|
319 |
- `"cpu-basic"`
|
320 |
- `"cpu-upgrade"`
|
321 |
+
- `"cpu-xl"`
|
322 |
- `"t4-small"`
|
323 |
- `"t4-medium"`
|
324 |
- `"a10g-small"`
|
325 |
- `"a10g-large"`
|
326 |
+
- `"a10g-largex2"`
|
327 |
+
- `"a10g-largex4"`
|
328 |
- `"a100-large"`
|
329 |
+
- `"zero-a10g"`
|
330 |
+
- `"h100"`
|
331 |
+
- `"h100x8"`
|
332 |
|
333 |
```ts
|
334 |
+
import { Client } from "@gradio/client";
|
335 |
|
336 |
+
const app = await Client.duplicate("user/space-name", {
|
337 |
hf_token: "hf_...",
|
338 |
private: true,
|
339 |
hardware: "a10g-small"
|
node_modules/@gradio/client/dist/client.d.ts
CHANGED
@@ -1,76 +1,70 @@
|
|
1 |
-
import {
|
2 |
-
import
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
off: event;
|
16 |
-
cancel: () => Promise<void>;
|
17 |
-
destroy: () => void;
|
18 |
-
};
|
19 |
-
export declare let NodeBlob: any;
|
20 |
-
export declare function duplicate(app_reference: string, options: {
|
21 |
-
hf_token: `hf_${string}`;
|
22 |
-
private?: boolean;
|
23 |
-
status_callback: SpaceStatusCallback;
|
24 |
-
hardware?: (typeof hardware_types)[number];
|
25 |
-
timeout?: number;
|
26 |
-
}): Promise<client_return>;
|
27 |
-
interface Client {
|
28 |
-
post_data: (url: string, body: unknown, token?: `hf_${string}`) => Promise<[PostResponse, number]>;
|
29 |
-
upload_files: (root: string, files: File[], token?: `hf_${string}`, upload_id?: string) => Promise<UploadResponse>;
|
30 |
-
client: (app_reference: string, options: {
|
31 |
-
hf_token?: `hf_${string}`;
|
32 |
-
status_callback?: SpaceStatusCallback;
|
33 |
-
normalise_files?: boolean;
|
34 |
-
}) => Promise<client_return>;
|
35 |
-
handle_blob: (endpoint: string, data: unknown[], api_info: ApiInfo<JsApiData>, token?: `hf_${string}`) => Promise<unknown[]>;
|
36 |
-
}
|
37 |
-
export declare function api_factory(fetch_implementation: typeof fetch, EventSource_factory: (url: URL) => EventSource): Client;
|
38 |
-
export declare const post_data: (url: string, body: unknown, token?: `hf_${string}`) => Promise<[PostResponse, number]>, upload_files: (root: string, files: File[], token?: `hf_${string}`, upload_id?: string) => Promise<UploadResponse>, client: (app_reference: string, options: {
|
39 |
-
hf_token?: `hf_${string}`;
|
40 |
-
status_callback?: SpaceStatusCallback;
|
41 |
-
normalise_files?: boolean;
|
42 |
-
}) => Promise<client_return>, handle_blob: (endpoint: string, data: unknown[], api_info: ApiInfo<JsApiData>, token?: `hf_${string}`) => Promise<unknown[]>;
|
43 |
-
interface ApiData {
|
44 |
-
label: string;
|
45 |
-
type: {
|
46 |
-
type: any;
|
47 |
-
description: string;
|
48 |
-
};
|
49 |
-
component: string;
|
50 |
-
example_input?: any;
|
51 |
-
}
|
52 |
-
interface JsApiData {
|
53 |
-
label: string;
|
54 |
-
type: string;
|
55 |
-
component: string;
|
56 |
-
example_input: any;
|
57 |
-
}
|
58 |
-
interface EndpointInfo<T extends ApiData | JsApiData> {
|
59 |
-
parameters: T[];
|
60 |
-
returns: T[];
|
61 |
-
}
|
62 |
-
interface ApiInfo<T extends ApiData | JsApiData> {
|
63 |
-
named_endpoints: {
|
64 |
-
[key: string]: EndpointInfo<T>;
|
65 |
-
};
|
66 |
-
unnamed_endpoints: {
|
67 |
-
[key: string]: EndpointInfo<T>;
|
68 |
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
}
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
}
|
75 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
76 |
//# sourceMappingURL=client.d.ts.map
|
|
|
1 |
+
import type { ApiData, ApiInfo, ClientOptions, Config, DuplicateOptions, EndpointInfo, JsApiData, PredictReturn, SpaceStatus, Status, UploadResponse, SubmitIterable, GradioEvent } from "./types";
|
2 |
+
import { FileData } from "./upload";
|
3 |
+
export declare class Client {
|
4 |
+
app_reference: string;
|
5 |
+
options: ClientOptions;
|
6 |
+
config: Config | undefined;
|
7 |
+
api_info: ApiInfo<JsApiData> | undefined;
|
8 |
+
api_map: Record<string, number>;
|
9 |
+
session_hash: string;
|
10 |
+
jwt: string | false;
|
11 |
+
last_status: Record<string, Status["stage"]>;
|
12 |
+
private cookies;
|
13 |
+
stream_status: {
|
14 |
+
open: boolean;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
};
|
16 |
+
pending_stream_messages: Record<string, any[][]>;
|
17 |
+
pending_diff_streams: Record<string, any[][]>;
|
18 |
+
event_callbacks: Record<string, (data?: unknown) => Promise<void>>;
|
19 |
+
unclosed_events: Set<string>;
|
20 |
+
heartbeat_event: EventSource | null;
|
21 |
+
abort_controller: AbortController | null;
|
22 |
+
stream_instance: EventSource | null;
|
23 |
+
fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
|
24 |
+
stream(url: URL): EventSource;
|
25 |
+
view_api: () => Promise<ApiInfo<JsApiData>>;
|
26 |
+
upload_files: (root_url: string, files: (Blob | File)[], upload_id?: string) => Promise<UploadResponse>;
|
27 |
+
upload: (file_data: FileData[], root_url: string, upload_id?: string, max_file_size?: number) => Promise<(FileData | null)[] | null>;
|
28 |
+
handle_blob: (endpoint: string, data: unknown[], endpoint_info: EndpointInfo<ApiData | JsApiData>) => Promise<unknown[]>;
|
29 |
+
post_data: (url: string, body: unknown, additional_headers?: any) => Promise<unknown[]>;
|
30 |
+
submit: (endpoint: string | number, data: unknown[] | Record<string, unknown>, event_data?: unknown, trigger_id?: number | null, all_events?: boolean) => SubmitIterable<GradioEvent>;
|
31 |
+
predict: (endpoint: string | number, data: unknown[] | Record<string, unknown>, event_data?: unknown) => Promise<PredictReturn>;
|
32 |
+
open_stream: () => Promise<void>;
|
33 |
+
private resolve_config;
|
34 |
+
private resolve_cookies;
|
35 |
+
constructor(app_reference: string, options?: ClientOptions);
|
36 |
+
private init;
|
37 |
+
_resolve_hearbeat(_config: Config): Promise<void>;
|
38 |
+
static connect(app_reference: string, options?: ClientOptions): Promise<Client>;
|
39 |
+
close(): void;
|
40 |
+
static duplicate(app_reference: string, options?: DuplicateOptions): Promise<Client>;
|
41 |
+
private _resolve_config;
|
42 |
+
private config_success;
|
43 |
+
handle_space_success(status: SpaceStatus): Promise<Config | void>;
|
44 |
+
component_server(component_id: number, fn_name: string, data: unknown[] | {
|
45 |
+
binary: boolean;
|
46 |
+
data: Record<string, any>;
|
47 |
+
}): Promise<unknown>;
|
48 |
+
set_cookies(raw_cookies: string): void;
|
49 |
+
private prepare_return_obj;
|
50 |
}
|
51 |
+
/**
|
52 |
+
* @deprecated This method will be removed in v1.0. Use `Client.connect()` instead.
|
53 |
+
* Creates a client instance for interacting with Gradio apps.
|
54 |
+
*
|
55 |
+
* @param {string} app_reference - The reference or URL to a Gradio space or app.
|
56 |
+
* @param {ClientOptions} options - Configuration options for the client.
|
57 |
+
* @returns {Promise<Client>} A promise that resolves to a `Client` instance.
|
58 |
+
*/
|
59 |
+
export declare function client(app_reference: string, options?: ClientOptions): Promise<Client>;
|
60 |
+
/**
|
61 |
+
* @deprecated This method will be removed in v1.0. Use `Client.duplicate()` instead.
|
62 |
+
* Creates a duplicate of a space and returns a client instance for the duplicated space.
|
63 |
+
*
|
64 |
+
* @param {string} app_reference - The reference or URL to a Gradio space or app to duplicate.
|
65 |
+
* @param {DuplicateOptions} options - Configuration options for the client.
|
66 |
+
* @returns {Promise<Client>} A promise that resolves to a `Client` instance.
|
67 |
+
*/
|
68 |
+
export declare function duplicate_space(app_reference: string, options: DuplicateOptions): Promise<Client>;
|
69 |
+
export type ClientInstance = Client;
|
70 |
//# sourceMappingURL=client.d.ts.map
|
node_modules/@gradio/client/dist/client.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"
|
|
|
1 |
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,OAAO,EACP,OAAO,EACP,aAAa,EACb,MAAM,EACN,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,aAAa,EACb,WAAW,EACX,MAAM,EACN,cAAc,EAEd,cAAc,EACd,WAAW,EACX,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAU,QAAQ,EAAE,MAAM,UAAU,CAAC;AAkB5C,qBAAa,MAAM;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,aAAa,CAAC;IAEvB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IACrC,YAAY,EAAE,MAAM,CAA2C;IAC/D,GAAG,EAAE,MAAM,GAAG,KAAK,CAAS;IAC5B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAM;IAElD,OAAO,CAAC,OAAO,CAAuB;IAGtC,aAAa;;MAAmB;IAChC,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAM;IACtD,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAM;IACnD,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAM;IACxE,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IACzC,eAAe,EAAE,WAAW,GAAG,IAAI,CAAQ;IAC3C,gBAAgB,EAAE,eAAe,GAAG,IAAI,CAAQ;IAChD,eAAe,EAAE,WAAW,GAAG,IAAI,CAAQ;IAE3C,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;IAStE,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW;IAU7B,QAAQ,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5C,YAAY,EAAE,CACb,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,EACtB,SAAS,CAAC,EAAE,MAAM,KACd,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7B,MAAM,EAAE,CACP,SAAS,EAAE,QAAQ,EAAE,EACrB,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,MAAM,KAClB,OAAO,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IACzC,WAAW,EAAE,CACZ,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,EAAE,EACf,aAAa,EAAE,YAAY,CAAC,OAAO,GAAG,SAAS,CAAC,KAC5C,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACxB,SAAS,EAAE,CACV,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,OAAO,EACb,kBAAkB,CAAC,EAAE,GAAG,KACpB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACxB,MAAM,EAAE,CACP,QAAQ,EAAE,MAAM,GAAG,MAAM,EACzB,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,UAAU,CAAC,EAAE,OAAO,EACpB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,EAC1B,UAAU,CAAC,EAAE,OAAO,KAChB,cAAc,CAAC,WAAW,CAAC,CAAC;IACjC,OAAO,EAAE,CACR,QAAQ,EAAE,MAAM,GAAG,MAAM,EACzB,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,UAAU,CAAC,EAAE,OAAO,KAChB,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5B,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,CAAC,cAAc,CAAoD;IAC1E,OAAO,CAAC,eAAe,CAAsB;gBAE5C,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,aAAoC;YAqBhC,IAAI;IAyBZ,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;WAoC1C,OAAO,CACnB,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,aAER,GACC,OAAO,CAAC,MAAM,CAAC;IAMlB,KAAK,IAAI,IAAI;WAIA,SAAS,CACrB,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,gBAER,GACC,OAAO,CAAC,MAAM,CAAC;YAIJ,eAAe;YAqCf,cAAc;IAwBtB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA8B1D,gBAAgB,CAC5B,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,OAAO,EAAE,GAAG;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,GAC9D,OAAO,CAAC,OAAO,CAAC;IA0EZ,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAI7C,OAAO,CAAC,kBAAkB;CAS1B;AAED;;;;;;;GAOG;AACH,wBAAsB,MAAM,CAC3B,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,aAER,GACC,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACpC,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,gBAAgB,GACvB,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC"}
|
node_modules/@gradio/client/dist/constants.d.ts
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
export declare const HOST_URL = "host";
|
2 |
+
export declare const API_URL = "api/predict/";
|
3 |
+
export declare const SSE_URL_V0 = "queue/join";
|
4 |
+
export declare const SSE_DATA_URL_V0 = "queue/data";
|
5 |
+
export declare const SSE_URL = "queue/data";
|
6 |
+
export declare const SSE_DATA_URL = "queue/join";
|
7 |
+
export declare const UPLOAD_URL = "upload";
|
8 |
+
export declare const LOGIN_URL = "login";
|
9 |
+
export declare const CONFIG_URL = "config";
|
10 |
+
export declare const API_INFO_URL = "info";
|
11 |
+
export declare const RUNTIME_URL = "runtime";
|
12 |
+
export declare const SLEEPTIME_URL = "sleeptime";
|
13 |
+
export declare const RAW_API_INFO_URL = "info?serialize=False";
|
14 |
+
export declare const SPACE_FETCHER_URL = "https://gradio-space-api-fetcher-v2.hf.space/api";
|
15 |
+
export declare const RESET_URL = "reset";
|
16 |
+
export declare const SPACE_URL = "https://hf.space/{}";
|
17 |
+
export declare const QUEUE_FULL_MSG = "This application is currently busy. Please try again. ";
|
18 |
+
export declare const BROKEN_CONNECTION_MSG = "Connection errored out. ";
|
19 |
+
export declare const CONFIG_ERROR_MSG = "Could not resolve app config. ";
|
20 |
+
export declare const SPACE_STATUS_ERROR_MSG = "Could not get space status. ";
|
21 |
+
export declare const API_INFO_ERROR_MSG = "Could not get API info. ";
|
22 |
+
export declare const SPACE_METADATA_ERROR_MSG = "Space metadata could not be loaded. ";
|
23 |
+
export declare const INVALID_URL_MSG = "Invalid URL. A full URL path is required.";
|
24 |
+
export declare const UNAUTHORIZED_MSG = "Not authorized to access this space. ";
|
25 |
+
export declare const INVALID_CREDENTIALS_MSG = "Invalid credentials. Could not login. ";
|
26 |
+
export declare const MISSING_CREDENTIALS_MSG = "Login credentials are required to access this space.";
|
27 |
+
export declare const NODEJS_FS_ERROR_MSG = "File system access is only available in Node.js environments";
|
28 |
+
export declare const ROOT_URL_ERROR_MSG = "Root URL not found in client config";
|
29 |
+
export declare const FILE_PROCESSING_ERROR_MSG = "Error uploading file";
|
30 |
+
//# sourceMappingURL=constants.d.ts.map
|
node_modules/@gradio/client/dist/constants.d.ts.map
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,QAAQ,SAAS,CAAC;AAC/B,eAAO,MAAM,OAAO,iBAAiB,CAAC;AACtC,eAAO,MAAM,UAAU,eAAe,CAAC;AACvC,eAAO,MAAM,eAAe,eAAe,CAAC;AAC5C,eAAO,MAAM,OAAO,eAAe,CAAC;AACpC,eAAO,MAAM,YAAY,eAAe,CAAC;AACzC,eAAO,MAAM,UAAU,WAAW,CAAC;AACnC,eAAO,MAAM,SAAS,UAAU,CAAC;AACjC,eAAO,MAAM,UAAU,WAAW,CAAC;AACnC,eAAO,MAAM,YAAY,SAAS,CAAC;AACnC,eAAO,MAAM,WAAW,YAAY,CAAC;AACrC,eAAO,MAAM,aAAa,cAAc,CAAC;AACzC,eAAO,MAAM,gBAAgB,yBAAyB,CAAC;AACvD,eAAO,MAAM,iBAAiB,qDACqB,CAAC;AACpD,eAAO,MAAM,SAAS,UAAU,CAAC;AACjC,eAAO,MAAM,SAAS,wBAAwB,CAAC;AAG/C,eAAO,MAAM,cAAc,2DAC8B,CAAC;AAC1D,eAAO,MAAM,qBAAqB,6BAA6B,CAAC;AAChE,eAAO,MAAM,gBAAgB,mCAAmC,CAAC;AACjE,eAAO,MAAM,sBAAsB,iCAAiC,CAAC;AACrE,eAAO,MAAM,kBAAkB,6BAA6B,CAAC;AAC7D,eAAO,MAAM,wBAAwB,yCAAyC,CAAC;AAC/E,eAAO,MAAM,eAAe,8CAA8C,CAAC;AAC3E,eAAO,MAAM,gBAAgB,0CAA0C,CAAC;AACxE,eAAO,MAAM,uBAAuB,2CAA2C,CAAC;AAChF,eAAO,MAAM,uBAAuB,yDACmB,CAAC;AACxD,eAAO,MAAM,mBAAmB,iEAC+B,CAAC;AAChE,eAAO,MAAM,kBAAkB,wCAAwC,CAAC;AACxE,eAAO,MAAM,yBAAyB,yBAAyB,CAAC"}
|
node_modules/@gradio/client/dist/helpers/api_info.d.ts
ADDED
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import type { Status } from "../types";
|
2 |
+
import type { ApiData, ApiInfo, Config, JsApiData } from "../types";
|
3 |
+
export declare const RE_SPACE_NAME: RegExp;
|
4 |
+
export declare const RE_SPACE_DOMAIN: RegExp;
|
5 |
+
export declare function process_endpoint(app_reference: string, hf_token?: `hf_${string}`): Promise<{
|
6 |
+
space_id: string | false;
|
7 |
+
host: string;
|
8 |
+
ws_protocol: "ws" | "wss";
|
9 |
+
http_protocol: "http:" | "https:";
|
10 |
+
}>;
|
11 |
+
export declare const join_urls: (...urls: string[]) => string;
|
12 |
+
export declare function transform_api_info(api_info: ApiInfo<ApiData>, config: Config, api_map: Record<string, number>): ApiInfo<JsApiData>;
|
13 |
+
export declare function get_type(type: {
|
14 |
+
type: any;
|
15 |
+
description: string;
|
16 |
+
}, component: string, serializer: string, signature_type: "return" | "parameter"): string | undefined;
|
17 |
+
export declare function get_description(type: {
|
18 |
+
type: any;
|
19 |
+
description: string;
|
20 |
+
}, serializer: string): string;
|
21 |
+
export declare function handle_message(data: any, last_status: Status["stage"]): {
|
22 |
+
type: "hash" | "data" | "update" | "complete" | "generating" | "log" | "none" | "heartbeat" | "unexpected_error";
|
23 |
+
data?: any;
|
24 |
+
status?: Status;
|
25 |
+
};
|
26 |
+
/**
|
27 |
+
* Maps the provided `data` to the parameters defined by the `/info` endpoint response.
|
28 |
+
* This allows us to support both positional and keyword arguments passed to the client
|
29 |
+
* and ensures that all parameters are either directly provided or have default values assigned.
|
30 |
+
*
|
31 |
+
* @param {unknown[] | Record<string, unknown>} data - The input data for the function,
|
32 |
+
* which can be either an array of values for positional arguments or an object
|
33 |
+
* with key-value pairs for keyword arguments.
|
34 |
+
* @param {JsApiData[]} parameters - Array of parameter descriptions retrieved from the
|
35 |
+
* `/info` endpoint.
|
36 |
+
*
|
37 |
+
* @returns {unknown[]} - Returns an array of resolved data where each element corresponds
|
38 |
+
* to the expected parameter from the API. The `parameter_default` value is used where
|
39 |
+
* a value is not provided for a parameter, and optional parameters without defaults are
|
40 |
+
* set to `undefined`.
|
41 |
+
*
|
42 |
+
* @throws {Error} - Throws an error:
|
43 |
+
* - If more arguments are provided than are defined in the parameters.
|
44 |
+
* * - If no parameter value is provided for a required parameter and no default value is defined.
|
45 |
+
* - If an argument is provided that does not match any defined parameter.
|
46 |
+
*/
|
47 |
+
export declare const map_data_to_params: (data: unknown[] | Record<string, unknown>, api_info: ApiInfo<JsApiData | ApiData>) => unknown[];
|
48 |
+
//# sourceMappingURL=api_info.d.ts.map
|
node_modules/@gradio/client/dist/helpers/api_info.d.ts.map
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
{"version":3,"file":"api_info.d.ts","sourceRoot":"","sources":["../../src/helpers/api_info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAOvC,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGpE,eAAO,MAAM,aAAa,QAA2C,CAAC;AACtE,eAAO,MAAM,eAAe,QAAwB,CAAC;AAErD,wBAAsB,gBAAgB,CACrC,aAAa,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,MAAM,MAAM,EAAE,GACvB,OAAO,CAAC;IACV,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,IAAI,GAAG,KAAK,CAAC;IAC1B,aAAa,EAAE,OAAO,GAAG,QAAQ,CAAC;CAClC,CAAC,CA4CD;AAED,eAAO,MAAM,SAAS,YAAa,MAAM,EAAE,KAAG,MAU7C,CAAC;AAEF,wBAAgB,kBAAkB,CACjC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,EAC1B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,OAAO,CAAC,SAAS,CAAC,CAsFpB;AAED,wBAAgB,QAAQ,CACvB,IAAI,EAAE;IAAE,IAAI,EAAE,GAAG,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,EACxC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,QAAQ,GAAG,WAAW,GACpC,MAAM,GAAG,SAAS,CAiCpB;AAED,wBAAgB,eAAe,CAC9B,IAAI,EAAE;IAAE,IAAI,EAAE,GAAG,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,EACxC,UAAU,EAAE,MAAM,GAChB,MAAM,CASR;AAGD,wBAAgB,cAAc,CAC7B,IAAI,EAAE,GAAG,EACT,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,GAC1B;IACF,IAAI,EACD,MAAM,GACN,MAAM,GACN,QAAQ,GACR,UAAU,GACV,YAAY,GACZ,KAAK,GACL,MAAM,GACN,WAAW,GACX,kBAAkB,CAAC;IACtB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,CAmHA;AAGD;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,eAAO,MAAM,kBAAkB,SACxB,OAAO,EAAE,GAAG,OAAO,MAAM,EAAE,OAAO,CAAC,YAC/B,QAAQ,SAAS,GAAG,OAAO,CAAC,KACpC,OAAO,EA4CT,CAAC"}
|
node_modules/@gradio/client/dist/helpers/data.d.ts
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/// <reference types="node" />
|
2 |
+
import { type ApiData, type BlobRef, type Config, type EndpointInfo, type JsApiData, type DataType, Command, type Dependency, type ComponentMeta } from "../types";
|
3 |
+
import { FileData } from "../upload";
|
4 |
+
export declare function update_object(object: {
|
5 |
+
[x: string]: any;
|
6 |
+
}, newValue: any, stack: (string | number)[]): void;
|
7 |
+
export declare function walk_and_store_blobs(data: DataType, type?: string | undefined, path?: string[], root?: boolean, endpoint_info?: EndpointInfo<ApiData | JsApiData> | undefined): Promise<BlobRef[]>;
|
8 |
+
export declare function skip_queue(id: number, config: Config): boolean;
|
9 |
+
export declare function post_message<Res = any>(message: any, origin: string): Promise<Res>;
|
10 |
+
export declare function handle_file(file_or_url: File | string | Blob | Buffer): FileData | Blob | Command;
|
11 |
+
/**
|
12 |
+
* Handles the payload by filtering out state inputs and returning an array of resolved payload values.
|
13 |
+
* We send null values for state inputs to the server, but we don't want to include them in the resolved payload.
|
14 |
+
*
|
15 |
+
* @param resolved_payload - The resolved payload values received from the client or the server
|
16 |
+
* @param dependency - The dependency object.
|
17 |
+
* @param components - The array of component metadata.
|
18 |
+
* @param with_null_state - Optional. Specifies whether to include null values for state inputs. Default is false.
|
19 |
+
* @returns An array of resolved payload values, filtered based on the dependency and component metadata.
|
20 |
+
*/
|
21 |
+
export declare function handle_payload(resolved_payload: unknown[], dependency: Dependency, components: ComponentMeta[], type: "input" | "output", with_null_state?: boolean): unknown[];
|
22 |
+
//# sourceMappingURL=data.d.ts.map
|
node_modules/@gradio/client/dist/helpers/data.d.ts.map
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../src/helpers/data.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,OAAO,EACP,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAKrC,wBAAgB,aAAa,CAC5B,MAAM,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC5B,QAAQ,EAAE,GAAG,EACb,KAAK,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GACxB,IAAI,CAgBN;AAED,wBAAsB,oBAAoB,CACzC,IAAI,EAAE,QAAQ,EACd,IAAI,GAAE,MAAM,GAAG,SAAqB,EACpC,IAAI,GAAE,MAAM,EAAO,EACnB,IAAI,UAAQ,EACZ,aAAa,GAAE,YAAY,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,SAAqB,GACtE,OAAO,CAAC,OAAO,EAAE,CAAC,CAwDpB;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAM9D;AAID,wBAAgB,YAAY,CAAC,GAAG,GAAG,GAAG,EACrC,OAAO,EAAE,GAAG,EACZ,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,GAAG,CAAC,CASd;AAED,wBAAgB,WAAW,CAC1B,WAAW,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GACxC,QAAQ,GAAG,IAAI,GAAG,OAAO,CA8C3B;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC7B,gBAAgB,EAAE,OAAO,EAAE,EAC3B,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,aAAa,EAAE,EAC3B,IAAI,EAAE,OAAO,GAAG,QAAQ,EACxB,eAAe,UAAQ,GACrB,OAAO,EAAE,CAyCX"}
|
node_modules/@gradio/client/dist/{utils.d.ts → helpers/init_helpers.d.ts}
RENAMED
@@ -1,4 +1,5 @@
|
|
1 |
-
import type { Config } from "
|
|
|
2 |
/**
|
3 |
* This function is used to resolve the URL for making requests when the app has a root path.
|
4 |
* The root path could be a path suffix like "/app" which is appended to the end of the base URL. Or
|
@@ -10,23 +11,15 @@ import type { Config } from "./types.js";
|
|
10 |
* @returns {string} the resolved URL
|
11 |
*/
|
12 |
export declare function resolve_root(base_url: string, root_path: string, prioritize_base: boolean): string;
|
|
|
|
|
|
|
|
|
|
|
13 |
export declare function determine_protocol(endpoint: string): {
|
14 |
ws_protocol: "ws" | "wss";
|
15 |
http_protocol: "http:" | "https:";
|
16 |
host: string;
|
17 |
};
|
18 |
-
export declare const
|
19 |
-
|
20 |
-
export declare function process_endpoint(app_reference: string, token?: `hf_${string}`): Promise<{
|
21 |
-
space_id: string | false;
|
22 |
-
host: string;
|
23 |
-
ws_protocol: "ws" | "wss";
|
24 |
-
http_protocol: "http:" | "https:";
|
25 |
-
}>;
|
26 |
-
export declare function map_names_to_ids(fns: Config["dependencies"]): Record<string, number>;
|
27 |
-
export declare function discussions_enabled(space_id: string): Promise<boolean>;
|
28 |
-
export declare function get_space_hardware(space_id: string, token: `hf_${string}`): Promise<(typeof hardware_types)[number]>;
|
29 |
-
export declare function set_space_hardware(space_id: string, new_hardware: (typeof hardware_types)[number], token: `hf_${string}`): Promise<(typeof hardware_types)[number]>;
|
30 |
-
export declare function set_space_timeout(space_id: string, timeout: number, token: `hf_${string}`): Promise<number>;
|
31 |
-
export declare const hardware_types: readonly ["cpu-basic", "cpu-upgrade", "t4-small", "t4-medium", "a10g-small", "a10g-large", "a100-large"];
|
32 |
-
//# sourceMappingURL=utils.d.ts.map
|
|
|
1 |
+
import type { Config } from "../types";
|
2 |
+
import { Client } from "..";
|
3 |
/**
|
4 |
* This function is used to resolve the URL for making requests when the app has a root path.
|
5 |
* The root path could be a path suffix like "/app" which is appended to the end of the base URL. Or
|
|
|
11 |
* @returns {string} the resolved URL
|
12 |
*/
|
13 |
export declare function resolve_root(base_url: string, root_path: string, prioritize_base: boolean): string;
|
14 |
+
export declare function get_jwt(space: string, token: `hf_${string}`, cookies?: string | null): Promise<string | false>;
|
15 |
+
export declare function map_names_to_ids(fns: Config["dependencies"]): Record<string, number>;
|
16 |
+
export declare function resolve_config(this: Client, endpoint: string): Promise<Config | undefined>;
|
17 |
+
export declare function resolve_cookies(this: Client): Promise<void>;
|
18 |
+
export declare function get_cookie_header(http_protocol: string, host: string, auth: [string, string], _fetch: typeof fetch, hf_token?: `hf_${string}`): Promise<string | null>;
|
19 |
export declare function determine_protocol(endpoint: string): {
|
20 |
ws_protocol: "ws" | "wss";
|
21 |
http_protocol: "http:" | "https:";
|
22 |
host: string;
|
23 |
};
|
24 |
+
export declare const parse_and_set_cookies: (cookie_header: string) => string[];
|
25 |
+
//# sourceMappingURL=init_helpers.d.ts.map
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
node_modules/@gradio/client/dist/helpers/init_helpers.d.ts.map
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
{"version":3,"file":"init_helpers.d.ts","sourceRoot":"","sources":["../../src/helpers/init_helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAUvC,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAG5B;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC3B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,OAAO,GACtB,MAAM,CAKR;AAED,wBAAsB,OAAO,CAC5B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,MAAM,EAAE,EACrB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,CAezB;AAED,wBAAgB,gBAAgB,CAC/B,GAAG,EAAE,MAAM,CAAC,cAAc,CAAC,GACzB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOxB;AAED,wBAAsB,cAAc,CACnC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA+C7B;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBjE;AAGD,wBAAsB,iBAAiB,CACtC,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EACtB,MAAM,EAAE,OAAO,KAAK,EACpB,QAAQ,CAAC,EAAE,MAAM,MAAM,EAAE,GACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAyBxB;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG;IACrD,WAAW,EAAE,IAAI,GAAG,KAAK,CAAC;IAC1B,aAAa,EAAE,OAAO,GAAG,QAAQ,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC;CACb,CAgCA;AAED,eAAO,MAAM,qBAAqB,kBAAmB,MAAM,KAAG,MAAM,EAUnE,CAAC"}
|
node_modules/@gradio/client/dist/helpers/spaces.d.ts
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import type { SpaceStatusCallback } from "../types";
|
2 |
+
export declare function check_space_status(id: string, type: "subdomain" | "space_name", status_callback: SpaceStatusCallback): Promise<void>;
|
3 |
+
export declare function discussions_enabled(space_id: string): Promise<boolean>;
|
4 |
+
export declare function get_space_hardware(space_id: string, hf_token?: `hf_${string}` | undefined): Promise<(typeof hardware_types)[number]>;
|
5 |
+
export declare function set_space_timeout(space_id: string, timeout: number, hf_token?: `hf_${string}`): Promise<any>;
|
6 |
+
export declare const hardware_types: readonly ["cpu-basic", "cpu-upgrade", "cpu-xl", "t4-small", "t4-medium", "a10g-small", "a10g-large", "a10g-largex2", "a10g-largex4", "a100-large", "zero-a10g", "h100", "h100x8"];
|
7 |
+
//# sourceMappingURL=spaces.d.ts.map
|
node_modules/@gradio/client/dist/helpers/spaces.d.ts.map
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
{"version":3,"file":"spaces.d.ts","sourceRoot":"","sources":["../../src/helpers/spaces.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEpD,wBAAsB,kBAAkB,CACvC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,WAAW,GAAG,YAAY,EAChC,eAAe,EAAE,mBAAmB,GAClC,OAAO,CAAC,IAAI,CAAC,CAqFf;AAID,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAgB5E;AAED,wBAAsB,kBAAkB,CACvC,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,MAAM,EAAE,GAAG,SAAS,GACnC,OAAO,CAAC,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAqB1C;AAED,wBAAsB,iBAAiB,CACtC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,MAAM,EAAE,GACvB,OAAO,CAAC,GAAG,CAAC,CAiCd;AAED,eAAO,MAAM,cAAc,mLAcjB,CAAC"}
|
node_modules/@gradio/client/dist/index.d.ts
CHANGED
@@ -1,4 +1,10 @@
|
|
1 |
-
export {
|
2 |
-
export
|
3 |
-
export {
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
//# sourceMappingURL=index.d.ts.map
|
|
|
1 |
+
export { Client } from "./client";
|
2 |
+
export { predict } from "./utils/predict";
|
3 |
+
export { submit } from "./utils/submit";
|
4 |
+
export { upload_files } from "./utils/upload_files";
|
5 |
+
export { FileData, upload, prepare_files } from "./upload";
|
6 |
+
export { handle_file } from "./helpers/data";
|
7 |
+
export type { SpaceStatus, StatusMessage, Status, client_return, UploadResponse, RenderMessage, LogMessage, Payload } from "./types";
|
8 |
+
export { client } from "./client";
|
9 |
+
export { duplicate_space as duplicate } from "./client";
|
10 |
//# sourceMappingURL=index.d.ts.map
|
node_modules/@gradio/client/dist/index.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
|
1 |
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,YAAY,EACX,WAAW,EACX,aAAa,EACb,MAAM,EACN,aAAa,EACb,cAAc,EACd,aAAa,EACb,UAAU,EACV,OAAO,EACP,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,eAAe,IAAI,SAAS,EAAE,MAAM,UAAU,CAAC"}
|
node_modules/@gradio/client/dist/index.js
CHANGED
The diff for this file is too large to render.
See raw diff
|
|
node_modules/@gradio/client/dist/test/handlers.d.ts
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import { RequestHandler } from "msw";
|
2 |
+
export declare const direct_space_url = "https://hmb-hello-world.hf.space";
|
3 |
+
export declare const handlers: RequestHandler[];
|
4 |
+
//# sourceMappingURL=handlers.d.ts.map
|
node_modules/@gradio/client/dist/test/handlers.d.ts.map
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/test/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,cAAc,EAAE,MAAM,KAAK,CAAC;AAuBzD,eAAO,MAAM,gBAAgB,qCAAqC,CAAC;AAqBnE,eAAO,MAAM,QAAQ,EAAE,cAAc,EAwoBpC,CAAC"}
|
node_modules/@gradio/client/dist/test/mock_eventsource.d.ts
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
export {};
|
2 |
+
//# sourceMappingURL=mock_eventsource.d.ts.map
|
node_modules/@gradio/client/dist/test/mock_eventsource.d.ts.map
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
{"version":3,"file":"mock_eventsource.d.ts","sourceRoot":"","sources":["../../src/test/mock_eventsource.ts"],"names":[],"mappings":""}
|
node_modules/@gradio/client/dist/test/server.d.ts
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
export declare function initialise_server(): any;
|
2 |
+
//# sourceMappingURL=server.d.ts.map
|
node_modules/@gradio/client/dist/test/server.d.ts.map
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/test/server.ts"],"names":[],"mappings":"AAGA,wBAAgB,iBAAiB,IAAI,GAAG,CAEvC"}
|
node_modules/@gradio/client/dist/test/test_data.d.ts
ADDED
@@ -0,0 +1,76 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import { ApiData, ApiInfo, Config, EndpointInfo } from "../types";
|
2 |
+
export declare const runtime_response: {
|
3 |
+
stage: string;
|
4 |
+
hardware: {
|
5 |
+
current: string;
|
6 |
+
requested: string;
|
7 |
+
};
|
8 |
+
storage: {
|
9 |
+
current: null;
|
10 |
+
requested: null;
|
11 |
+
};
|
12 |
+
gcTimeout: number;
|
13 |
+
replicas: {
|
14 |
+
current: number;
|
15 |
+
requested: number;
|
16 |
+
};
|
17 |
+
devMode: boolean;
|
18 |
+
domains: {
|
19 |
+
domain: string;
|
20 |
+
isCustom: boolean;
|
21 |
+
stage: string;
|
22 |
+
}[];
|
23 |
+
};
|
24 |
+
export declare const transformed_api_info: ApiInfo<ApiData>;
|
25 |
+
export declare const response_api_info: ApiInfo<ApiData>;
|
26 |
+
export declare const config_response: Config;
|
27 |
+
export declare const whoami_response: {
|
28 |
+
type: string;
|
29 |
+
id: string;
|
30 |
+
name: string;
|
31 |
+
fullname: string;
|
32 |
+
email: string;
|
33 |
+
emailVerified: boolean;
|
34 |
+
canPay: boolean;
|
35 |
+
periodEnd: number;
|
36 |
+
isPro: boolean;
|
37 |
+
avatarUrl: string;
|
38 |
+
orgs: never[];
|
39 |
+
auth: {
|
40 |
+
type: string;
|
41 |
+
accessToken: {
|
42 |
+
displayName: string;
|
43 |
+
role: string;
|
44 |
+
};
|
45 |
+
};
|
46 |
+
};
|
47 |
+
export declare const duplicate_response: {
|
48 |
+
url: string;
|
49 |
+
};
|
50 |
+
export declare const hardware_sleeptime_response: {
|
51 |
+
stage: string;
|
52 |
+
hardware: {
|
53 |
+
current: string;
|
54 |
+
requested: string;
|
55 |
+
};
|
56 |
+
storage: null;
|
57 |
+
gcTimeout: number;
|
58 |
+
replicas: {
|
59 |
+
current: number;
|
60 |
+
requested: number;
|
61 |
+
};
|
62 |
+
devMode: boolean;
|
63 |
+
domains: {
|
64 |
+
domain: string;
|
65 |
+
isCustom: boolean;
|
66 |
+
stage: string;
|
67 |
+
}[];
|
68 |
+
};
|
69 |
+
export declare const endpoint_info: EndpointInfo<ApiData>;
|
70 |
+
export declare const discussions_response: {
|
71 |
+
discussions: never[];
|
72 |
+
count: number;
|
73 |
+
start: number;
|
74 |
+
numClosedDiscussions: number;
|
75 |
+
};
|
76 |
+
//# sourceMappingURL=test_data.d.ts.map
|
node_modules/@gradio/client/dist/test/test_data.d.ts.map
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
{"version":3,"file":"test_data.d.ts","sourceRoot":"","sources":["../../src/test/test_data.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAElE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;CAuB5B,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,OAAO,CAAC,OAAO,CA6CjD,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,OAAO,CAAC,OAAO,CAiC9C,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,MAkW7B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;CAmB3B,CAAC;AAEF,eAAO,MAAM,kBAAkB;;CAE9B,CAAC;AAEF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;CAoBvC,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,YAAY,CAAC,OAAO,CA0C/C,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;CAKhC,CAAC"}
|