@gradio/client 0.19.4 → 0.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +8 -1
  3. package/dist/client.d.ts +4 -0
  4. package/dist/client.d.ts.map +1 -1
  5. package/dist/constants.d.ts +4 -0
  6. package/dist/constants.d.ts.map +1 -1
  7. package/dist/helpers/api_info.d.ts +1 -0
  8. package/dist/helpers/api_info.d.ts.map +1 -1
  9. package/dist/helpers/data.d.ts.map +1 -1
  10. package/dist/helpers/init_helpers.d.ts +4 -1
  11. package/dist/helpers/init_helpers.d.ts.map +1 -1
  12. package/dist/index.js +235 -61
  13. package/dist/test/handlers.d.ts.map +1 -1
  14. package/dist/test/test_data.d.ts.map +1 -1
  15. package/dist/types.d.ts +6 -0
  16. package/dist/types.d.ts.map +1 -1
  17. package/dist/utils/duplicate.d.ts.map +1 -1
  18. package/dist/utils/post_data.d.ts.map +1 -1
  19. package/dist/utils/predict.d.ts.map +1 -1
  20. package/dist/utils/submit.d.ts.map +1 -1
  21. package/dist/utils/upload_files.d.ts.map +1 -1
  22. package/dist/utils/view_api.d.ts.map +1 -1
  23. package/package.json +1 -1
  24. package/src/client.ts +70 -28
  25. package/src/constants.ts +5 -0
  26. package/src/helpers/api_info.ts +44 -17
  27. package/src/helpers/data.ts +3 -2
  28. package/src/helpers/init_helpers.ts +103 -9
  29. package/src/test/api_info.test.ts +69 -4
  30. package/src/test/data.test.ts +4 -4
  31. package/src/test/handlers.ts +249 -2
  32. package/src/test/init.test.ts +2 -2
  33. package/src/test/init_helpers.test.ts +53 -1
  34. package/src/test/test_data.ts +3 -0
  35. package/src/types.ts +6 -0
  36. package/src/utils/duplicate.ts +27 -2
  37. package/src/utils/post_data.ts +2 -1
  38. package/src/utils/predict.ts +4 -2
  39. package/src/utils/submit.ts +37 -8
  40. package/src/utils/upload_files.ts +2 -1
  41. package/src/utils/view_api.ts +7 -4
package/dist/index.js CHANGED
@@ -10,7 +10,9 @@ function semiver(a, b, bool) {
10
10
  b = b.split(".");
11
11
  return fn(a[0], b[0]) || fn(a[1], b[1]) || (b[2] = b.slice(2).join("."), bool = /[.-]/.test(a[2] = a.slice(2).join(".")), bool == /[.-]/.test(b[2]) ? fn(a[2], b[2]) : bool ? -1 : 1);
12
12
  }
13
+ const HOST_URL = "host";
13
14
  const UPLOAD_URL = "upload";
15
+ const LOGIN_URL = "login";
14
16
  const CONFIG_URL = "config";
15
17
  const API_INFO_URL = "info";
16
18
  const RUNTIME_URL = "runtime";
@@ -22,17 +24,22 @@ const CONFIG_ERROR_MSG = "Could not resolve app config. ";
22
24
  const SPACE_STATUS_ERROR_MSG = "Could not get space status. ";
23
25
  const API_INFO_ERROR_MSG = "Could not get API info. ";
24
26
  const SPACE_METADATA_ERROR_MSG = "Space metadata could not be loaded. ";
27
+ const INVALID_URL_MSG = "Invalid URL. A full URL path is required.";
28
+ const UNAUTHORIZED_MSG = "Not authorized to access this space. ";
29
+ const INVALID_CREDENTIALS_MSG = "Invalid credentials. Could not login. ";
30
+ const MISSING_CREDENTIALS_MSG = "Login credentials are required to access this space.";
25
31
  function resolve_root(base_url, root_path, prioritize_base) {
26
32
  if (root_path.startsWith("http://") || root_path.startsWith("https://")) {
27
33
  return prioritize_base ? base_url : root_path;
28
34
  }
29
35
  return base_url + root_path;
30
36
  }
31
- async function get_jwt(space, token) {
37
+ async function get_jwt(space, token, cookies) {
32
38
  try {
33
39
  const r = await fetch(`https://huggingface.co/api/spaces/${space}/jwt`, {
34
40
  headers: {
35
- Authorization: `Bearer ${token}`
41
+ Authorization: `Bearer ${token}`,
42
+ ...cookies ? { Cookie: cookies } : {}
36
43
  }
37
44
  });
38
45
  const jwt = (await r.json()).token;
@@ -43,13 +50,14 @@ async function get_jwt(space, token) {
43
50
  }
44
51
  function map_names_to_ids(fns) {
45
52
  let apis = {};
46
- fns.forEach(({ api_name }, i) => {
53
+ fns.forEach(({ api_name, id }) => {
47
54
  if (api_name)
48
- apis[api_name] = i;
55
+ apis[api_name] = id;
49
56
  });
50
57
  return apis;
51
58
  }
52
59
  async function resolve_config(endpoint) {
60
+ var _a;
53
61
  const headers = this.options.hf_token ? { Authorization: `Bearer ${this.options.hf_token}` } : {};
54
62
  headers["Content-Type"] = "application/json";
55
63
  if (typeof window !== "undefined" && window.gradio_config && location.origin !== "http://localhost:9876" && !window.gradio_config.dev_mode) {
@@ -59,22 +67,79 @@ async function resolve_config(endpoint) {
59
67
  config.root = config_root;
60
68
  return { ...config, path };
61
69
  } else if (endpoint) {
62
- const response = await this.fetch(`${endpoint}/${CONFIG_URL}`, {
63
- headers
70
+ const config_url = join_urls(endpoint, CONFIG_URL);
71
+ const response = await this.fetch(config_url, {
72
+ headers,
73
+ credentials: "include"
64
74
  });
75
+ if ((response == null ? void 0 : response.status) === 401 && !this.options.auth) {
76
+ throw new Error(MISSING_CREDENTIALS_MSG);
77
+ } else if ((response == null ? void 0 : response.status) === 401 && this.options.auth) {
78
+ throw new Error(INVALID_CREDENTIALS_MSG);
79
+ }
65
80
  if ((response == null ? void 0 : response.status) === 200) {
66
81
  let config = await response.json();
67
82
  config.path = config.path ?? "";
68
83
  config.root = endpoint;
84
+ (_a = config.dependencies) == null ? void 0 : _a.forEach((dep, i) => {
85
+ if (dep.id === void 0) {
86
+ dep.id = i;
87
+ }
88
+ });
69
89
  return config;
90
+ } else if ((response == null ? void 0 : response.status) === 401) {
91
+ throw new Error(UNAUTHORIZED_MSG);
70
92
  }
71
93
  throw new Error(CONFIG_ERROR_MSG);
72
94
  }
73
95
  throw new Error(CONFIG_ERROR_MSG);
74
96
  }
97
+ async function resolve_cookies() {
98
+ const { http_protocol, host } = await process_endpoint(
99
+ this.app_reference,
100
+ this.options.hf_token
101
+ );
102
+ try {
103
+ if (this.options.auth) {
104
+ const cookie_header = await get_cookie_header(
105
+ http_protocol,
106
+ host,
107
+ this.options.auth,
108
+ this.fetch,
109
+ this.options.hf_token
110
+ );
111
+ if (cookie_header)
112
+ this.set_cookies(cookie_header);
113
+ }
114
+ } catch (e) {
115
+ throw Error(e.message);
116
+ }
117
+ }
118
+ async function get_cookie_header(http_protocol, host, auth, _fetch, hf_token) {
119
+ const formData = new FormData();
120
+ formData.append("username", auth == null ? void 0 : auth[0]);
121
+ formData.append("password", auth == null ? void 0 : auth[1]);
122
+ let headers = {};
123
+ if (hf_token) {
124
+ headers.Authorization = `Bearer ${hf_token}`;
125
+ }
126
+ const res = await _fetch(`${http_protocol}//${host}/${LOGIN_URL}`, {
127
+ headers,
128
+ method: "POST",
129
+ body: formData,
130
+ credentials: "include"
131
+ });
132
+ if (res.status === 200) {
133
+ return res.headers.get("set-cookie");
134
+ } else if (res.status === 401) {
135
+ throw new Error(INVALID_CREDENTIALS_MSG);
136
+ } else {
137
+ throw new Error(SPACE_METADATA_ERROR_MSG);
138
+ }
139
+ }
75
140
  function determine_protocol(endpoint) {
76
141
  if (endpoint.startsWith("http")) {
77
- const { protocol, host } = new URL(endpoint);
142
+ const { protocol, host, pathname } = new URL(endpoint);
78
143
  if (host.endsWith("hf.space")) {
79
144
  return {
80
145
  ws_protocol: "wss",
@@ -85,7 +150,7 @@ function determine_protocol(endpoint) {
85
150
  return {
86
151
  ws_protocol: protocol === "https:" ? "wss" : "ws",
87
152
  http_protocol: protocol,
88
- host
153
+ host: host + (pathname !== "/" ? pathname : "")
89
154
  };
90
155
  } else if (endpoint.startsWith("file:")) {
91
156
  return {
@@ -101,18 +166,29 @@ function determine_protocol(endpoint) {
101
166
  host: endpoint
102
167
  };
103
168
  }
104
- const RE_SPACE_NAME = /^[^\/]*\/[^\/]*$/;
169
+ const parse_and_set_cookies = (cookie_header) => {
170
+ let cookies = [];
171
+ const parts = cookie_header.split(/,(?=\s*[^\s=;]+=[^\s=;]+)/);
172
+ parts.forEach((cookie) => {
173
+ const [cookie_name, cookie_value] = cookie.split(";")[0].split("=");
174
+ if (cookie_name && cookie_value) {
175
+ cookies.push(`${cookie_name.trim()}=${cookie_value.trim()}`);
176
+ }
177
+ });
178
+ return cookies;
179
+ };
180
+ const RE_SPACE_NAME = /^[a-zA-Z0-9_\-\.]+\/[a-zA-Z0-9_\-\.]+$/;
105
181
  const RE_SPACE_DOMAIN = /.*hf\.space\/{0,1}$/;
106
182
  async function process_endpoint(app_reference, hf_token) {
107
183
  const headers = {};
108
184
  if (hf_token) {
109
185
  headers.Authorization = `Bearer ${hf_token}`;
110
186
  }
111
- const _app_reference = app_reference.trim();
187
+ const _app_reference = app_reference.trim().replace(/\/$/, "");
112
188
  if (RE_SPACE_NAME.test(_app_reference)) {
113
189
  try {
114
190
  const res = await fetch(
115
- `https://huggingface.co/api/spaces/${_app_reference}/host`,
191
+ `https://huggingface.co/api/spaces/${_app_reference}/${HOST_URL}`,
116
192
  { headers }
117
193
  );
118
194
  const _host = (await res.json()).host;
@@ -121,9 +197,7 @@ async function process_endpoint(app_reference, hf_token) {
121
197
  ...determine_protocol(_host)
122
198
  };
123
199
  } catch (e) {
124
- throw new Error(
125
- "Space metadata could not be loaded. " + e.message
126
- );
200
+ throw new Error(SPACE_METADATA_ERROR_MSG);
127
201
  }
128
202
  }
129
203
  if (RE_SPACE_DOMAIN.test(_app_reference)) {
@@ -140,6 +214,17 @@ async function process_endpoint(app_reference, hf_token) {
140
214
  ...determine_protocol(_app_reference)
141
215
  };
142
216
  }
217
+ const join_urls = (...urls) => {
218
+ try {
219
+ return urls.reduce((base_url, part) => {
220
+ base_url = base_url.replace(/\/+$/, "");
221
+ part = part.replace(/^\/+/, "");
222
+ return new URL(part, base_url + "/").toString();
223
+ });
224
+ } catch (e) {
225
+ throw new Error(INVALID_URL_MSG);
226
+ }
227
+ };
143
228
  function transform_api_info(api_info, config, api_map) {
144
229
  const transformed_info = {
145
230
  named_endpoints: {},
@@ -150,13 +235,13 @@ function transform_api_info(api_info, config, api_map) {
150
235
  transformed_info[category] = {};
151
236
  Object.entries(api_info[category]).forEach(
152
237
  ([endpoint, { parameters, returns }]) => {
153
- var _a, _b;
154
- const dependencyIndex = config.dependencies.findIndex(
238
+ var _a, _b, _c, _d;
239
+ const dependencyIndex = ((_a = config.dependencies.find(
155
240
  (dep) => dep.api_name === endpoint || dep.api_name === endpoint.replace("/", "")
156
- ) || api_map[endpoint.replace("/", "")] || -1;
157
- const dependencyTypes = dependencyIndex !== -1 ? config.dependencies[dependencyIndex].types : { continuous: false, generator: false };
158
- if (dependencyIndex !== -1 && ((_b = (_a = config.dependencies[dependencyIndex]) == null ? void 0 : _a.inputs) == null ? void 0 : _b.length) !== parameters.length) {
159
- const components = config.dependencies[dependencyIndex].inputs.map(
241
+ )) == null ? void 0 : _a.id) || api_map[endpoint.replace("/", "")] || -1;
242
+ const dependencyTypes = dependencyIndex !== -1 ? (_b = config.dependencies.find((dep) => dep.id == dependencyIndex)) == null ? void 0 : _b.types : { continuous: false, generator: false };
243
+ if (dependencyIndex !== -1 && ((_d = (_c = config.dependencies.find((dep) => dep.id == dependencyIndex)) == null ? void 0 : _c.inputs) == null ? void 0 : _d.length) !== parameters.length) {
244
+ const components = config.dependencies.find((dep) => dep.id == dependencyIndex).inputs.map(
160
245
  (input) => {
161
246
  var _a2;
162
247
  return (_a2 = config.components.find((c) => c.id === input)) == null ? void 0 : _a2.type;
@@ -177,6 +262,7 @@ function transform_api_info(api_info, config, api_map) {
177
262
  }
178
263
  });
179
264
  } catch (e) {
265
+ console.error(e);
180
266
  }
181
267
  }
182
268
  const transform_type = (data, component, serializer, signature_type) => ({
@@ -324,7 +410,8 @@ function handle_message(data, last_status) {
324
410
  message: !data.success ? data.output.error : void 0,
325
411
  stage: data.success ? "complete" : "error",
326
412
  code: data.code,
327
- progress_data: data.progress_data
413
+ progress_data: data.progress_data,
414
+ changed_state_ids: data.success ? data.output.changed_state_ids : void 0
328
415
  },
329
416
  data: data.success ? data.output : null
330
417
  };
@@ -404,11 +491,14 @@ async function view_api() {
404
491
  serialize: false,
405
492
  config: JSON.stringify(config)
406
493
  }),
407
- headers
494
+ headers,
495
+ credentials: "include"
408
496
  });
409
497
  } else {
410
- response = await this.fetch(`${config == null ? void 0 : config.root}/${API_INFO_URL}`, {
411
- headers
498
+ const url = join_urls(config.root, API_INFO_URL);
499
+ response = await this.fetch(url, {
500
+ headers,
501
+ credentials: "include"
412
502
  });
413
503
  }
414
504
  if (!response.ok) {
@@ -446,7 +536,8 @@ async function upload_files(root_url, files, upload_id) {
446
536
  response = await this.fetch(upload_url, {
447
537
  method: "POST",
448
538
  body: formData,
449
- headers
539
+ headers,
540
+ credentials: "include"
450
541
  });
451
542
  } catch (e) {
452
543
  throw new Error(BROKEN_CONNECTION_MSG + e.message);
@@ -603,8 +694,9 @@ async function walk_and_store_blobs(data, type = void 0, path = [], root = false
603
694
  }
604
695
  function skip_queue(id, config) {
605
696
  var _a, _b;
606
- if (((_b = (_a = config == null ? void 0 : config.dependencies) == null ? void 0 : _a[id]) == null ? void 0 : _b.queue) !== null) {
607
- return !config.dependencies[id].queue;
697
+ let fn_queue = (_b = (_a = config == null ? void 0 : config.dependencies) == null ? void 0 : _a.find((dep) => dep.id == id)) == null ? void 0 : _b.queue;
698
+ if (fn_queue != null) {
699
+ return !fn_queue;
608
700
  }
609
701
  return !config.enable_queue;
610
702
  }
@@ -660,7 +752,8 @@ async function post_data(url, body, additional_headers) {
660
752
  var response = await this.fetch(url, {
661
753
  method: "POST",
662
754
  body: JSON.stringify(body),
663
- headers: { ...headers, ...additional_headers }
755
+ headers: { ...headers, ...additional_headers },
756
+ credentials: "include"
664
757
  });
665
758
  } catch (e) {
666
759
  return [{ error: BROKEN_CONNECTION_MSG }, 500];
@@ -684,10 +777,12 @@ async function predict(endpoint, data) {
684
777
  throw new Error("Could not resolve app config");
685
778
  }
686
779
  if (typeof endpoint === "number") {
687
- dependency = this.config.dependencies[endpoint];
780
+ dependency = this.config.dependencies.find((dep) => dep.id == endpoint);
688
781
  } else {
689
782
  const trimmed_endpoint = endpoint.replace(/^\//, "");
690
- dependency = this.config.dependencies[this.api_map[trimmed_endpoint]];
783
+ dependency = this.config.dependencies.find(
784
+ (dep) => dep.id == this.api_map[trimmed_endpoint]
785
+ );
691
786
  }
692
787
  if (dependency == null ? void 0 : dependency.types.continuous) {
693
788
  throw new Error(
@@ -875,15 +970,31 @@ const hardware_types = [
875
970
  "h100x8"
876
971
  ];
877
972
  async function duplicate(app_reference, options) {
878
- const { hf_token, private: _private, hardware, timeout } = options;
973
+ const { hf_token, private: _private, hardware, timeout, auth } = options;
879
974
  if (hardware && !hardware_types.includes(hardware)) {
880
975
  throw new Error(
881
976
  `Invalid hardware type provided. Valid types are: ${hardware_types.map((v) => `"${v}"`).join(",")}.`
882
977
  );
883
978
  }
979
+ const { http_protocol, host } = await process_endpoint(
980
+ app_reference,
981
+ hf_token
982
+ );
983
+ let cookies = null;
984
+ if (auth) {
985
+ const cookie_header = await get_cookie_header(
986
+ http_protocol,
987
+ host,
988
+ auth,
989
+ fetch
990
+ );
991
+ if (cookie_header)
992
+ cookies = parse_and_set_cookies(cookie_header);
993
+ }
884
994
  const headers = {
885
995
  Authorization: `Bearer ${hf_token}`,
886
- "Content-Type": "application/json"
996
+ "Content-Type": "application/json",
997
+ ...cookies ? { Cookie: cookies.join("; ") } : {}
887
998
  };
888
999
  const user = (await (await fetch(`https://huggingface.co/api/whoami-v2`, {
889
1000
  headers
@@ -1184,6 +1295,34 @@ function submit(endpoint, data, event_data, trigger_id) {
1184
1295
  );
1185
1296
  }
1186
1297
  }
1298
+ const resolve_heartbeat = async (config2) => {
1299
+ await this._resolve_hearbeat(config2);
1300
+ };
1301
+ async function handle_render_config(render_config) {
1302
+ if (!config)
1303
+ return;
1304
+ let render_id = render_config.render_id;
1305
+ config.components = [
1306
+ ...config.components.filter((c) => c.props.rendered_in !== render_id),
1307
+ ...render_config.components
1308
+ ];
1309
+ config.dependencies = [
1310
+ ...config.dependencies.filter((d) => d.rendered_in !== render_id),
1311
+ ...render_config.dependencies
1312
+ ];
1313
+ const any_state = config.components.some((c) => c.type === "state");
1314
+ const any_unload = config.dependencies.some(
1315
+ (d) => d.targets.some((t) => t[1] === "unload")
1316
+ );
1317
+ config.connect_heartbeat = any_state || any_unload;
1318
+ await resolve_heartbeat(config);
1319
+ fire_event({
1320
+ type: "render",
1321
+ data: render_config,
1322
+ endpoint: _endpoint,
1323
+ fn_index
1324
+ });
1325
+ }
1187
1326
  this.handle_blob(config.root, resolved_data, endpoint_info).then(
1188
1327
  async (_payload) => {
1189
1328
  var _a;
@@ -1220,6 +1359,9 @@ function submit(endpoint, data, event_data, trigger_id) {
1220
1359
  event_data,
1221
1360
  trigger_id
1222
1361
  });
1362
+ if (output.render_config) {
1363
+ handle_render_config(output.render_config);
1364
+ }
1223
1365
  fire_event({
1224
1366
  type: "status",
1225
1367
  endpoint: _endpoint,
@@ -1581,12 +1723,7 @@ function submit(endpoint, data, event_data, trigger_id) {
1581
1723
  fn_index
1582
1724
  });
1583
1725
  if (data2.render_config) {
1584
- fire_event({
1585
- type: "render",
1586
- data: data2.render_config,
1587
- endpoint: _endpoint,
1588
- fn_index
1589
- });
1726
+ await handle_render_config(data2.render_config);
1590
1727
  }
1591
1728
  if (complete) {
1592
1729
  fire_event({
@@ -1654,12 +1791,14 @@ function get_endpoint_info(api_info, endpoint, api_map, config) {
1654
1791
  if (typeof endpoint === "number") {
1655
1792
  fn_index = endpoint;
1656
1793
  endpoint_info = api_info.unnamed_endpoints[fn_index];
1657
- dependency = config.dependencies[endpoint];
1794
+ dependency = config.dependencies.find((dep) => dep.id == endpoint);
1658
1795
  } else {
1659
1796
  const trimmed_endpoint = endpoint.replace(/^\//, "");
1660
1797
  fn_index = api_map[trimmed_endpoint];
1661
1798
  endpoint_info = api_info.named_endpoints[endpoint.trim()];
1662
- dependency = config.dependencies[api_map[trimmed_endpoint]];
1799
+ dependency = config.dependencies.find(
1800
+ (dep) => dep.id == api_map[trimmed_endpoint]
1801
+ );
1663
1802
  }
1664
1803
  if (typeof fn_index !== "number") {
1665
1804
  throw new Error(
@@ -1683,6 +1822,7 @@ class Client {
1683
1822
  __publicField(this, "session_hash", Math.random().toString(36).substring(2));
1684
1823
  __publicField(this, "jwt", false);
1685
1824
  __publicField(this, "last_status", {});
1825
+ __publicField(this, "cookies", null);
1686
1826
  // streaming
1687
1827
  __publicField(this, "stream_status", { open: false });
1688
1828
  __publicField(this, "pending_stream_messages", {});
@@ -1699,6 +1839,7 @@ class Client {
1699
1839
  __publicField(this, "predict");
1700
1840
  __publicField(this, "open_stream");
1701
1841
  __publicField(this, "resolve_config");
1842
+ __publicField(this, "resolve_cookies");
1702
1843
  this.app_reference = app_reference;
1703
1844
  this.options = options;
1704
1845
  this.view_api = view_api.bind(this);
@@ -1709,10 +1850,15 @@ class Client {
1709
1850
  this.predict = predict.bind(this);
1710
1851
  this.open_stream = open_stream.bind(this);
1711
1852
  this.resolve_config = resolve_config.bind(this);
1853
+ this.resolve_cookies = resolve_cookies.bind(this);
1712
1854
  this.upload = upload.bind(this);
1713
1855
  }
1714
1856
  fetch(input, init) {
1715
- return fetch(input, init);
1857
+ const headers = new Headers((init == null ? void 0 : init.headers) || {});
1858
+ if (this && this.cookies) {
1859
+ headers.append("Cookie", this.cookies);
1860
+ }
1861
+ return fetch(input, { ...init, headers });
1716
1862
  }
1717
1863
  async stream(url) {
1718
1864
  if (typeof window === "undefined" || typeof EventSource === "undefined") {
@@ -1735,27 +1881,48 @@ class Client {
1735
1881
  global.WebSocket = ws.WebSocket;
1736
1882
  }
1737
1883
  try {
1738
- await this._resolve_config().then(async ({ config }) => {
1739
- this.config = config;
1740
- if (config.space_id && this.options.hf_token) {
1741
- this.jwt = await get_jwt(config.space_id, this.options.hf_token);
1742
- }
1743
- if (this.config && this.config.connect_heartbeat) {
1744
- const heartbeat_url = new URL(
1745
- `${this.config.root}/heartbeat/${this.session_hash}`
1746
- );
1747
- if (this.jwt) {
1748
- heartbeat_url.searchParams.set("__sign", this.jwt);
1749
- }
1750
- this.heartbeat_event = await this.stream(heartbeat_url);
1751
- }
1752
- });
1884
+ if (this.options.auth) {
1885
+ await this.resolve_cookies();
1886
+ }
1887
+ await this._resolve_config().then(
1888
+ ({ config }) => this._resolve_hearbeat(config)
1889
+ );
1753
1890
  } catch (e) {
1754
- throw Error(CONFIG_ERROR_MSG + e.message);
1891
+ throw Error(e);
1755
1892
  }
1756
1893
  this.api_info = await this.view_api();
1757
1894
  this.api_map = map_names_to_ids(((_a = this.config) == null ? void 0 : _a.dependencies) || []);
1758
1895
  }
1896
+ async _resolve_hearbeat(_config) {
1897
+ var _a;
1898
+ if (_config) {
1899
+ this.config = _config;
1900
+ if (this.config && this.config.connect_heartbeat) {
1901
+ if (this.config.space_id && this.options.hf_token) {
1902
+ this.jwt = await get_jwt(
1903
+ this.config.space_id,
1904
+ this.options.hf_token,
1905
+ this.cookies
1906
+ );
1907
+ }
1908
+ }
1909
+ }
1910
+ if (_config.space_id && this.options.hf_token) {
1911
+ this.jwt = await get_jwt(_config.space_id, this.options.hf_token);
1912
+ }
1913
+ if (this.config && this.config.connect_heartbeat) {
1914
+ const heartbeat_url = new URL(
1915
+ `${this.config.root}/heartbeat/${this.session_hash}`
1916
+ );
1917
+ if (this.jwt) {
1918
+ heartbeat_url.searchParams.set("__sign", this.jwt);
1919
+ }
1920
+ if (!this.heartbeat_event)
1921
+ this.heartbeat_event = await this.stream(heartbeat_url);
1922
+ } else {
1923
+ (_a = this.heartbeat_event) == null ? void 0 : _a.close();
1924
+ }
1925
+ }
1759
1926
  static async connect(app_reference, options = {}) {
1760
1927
  const client2 = new this(app_reference, options);
1761
1928
  await client2.init();
@@ -1782,8 +1949,7 @@ class Client {
1782
1949
  }
1783
1950
  return this.config_success(config);
1784
1951
  } catch (e) {
1785
- console.error(e);
1786
- if (space_id) {
1952
+ if (space_id && status_callback) {
1787
1953
  check_space_status(
1788
1954
  space_id,
1789
1955
  RE_SPACE_NAME.test(space_id) ? "space_name" : "subdomain",
@@ -1797,6 +1963,7 @@ class Client {
1797
1963
  load_status: "error",
1798
1964
  detail: "NOT_FOUND"
1799
1965
  });
1966
+ throw Error(e);
1800
1967
  }
1801
1968
  }
1802
1969
  }
@@ -1818,6 +1985,9 @@ class Client {
1818
1985
  return this.prepare_return_obj();
1819
1986
  }
1820
1987
  async handle_space_success(status) {
1988
+ if (!this) {
1989
+ throw new Error(CONFIG_ERROR_MSG);
1990
+ }
1821
1991
  const { status_callback } = this.options;
1822
1992
  if (status_callback)
1823
1993
  status_callback(status);
@@ -1830,7 +2000,6 @@ class Client {
1830
2000
  const _config = await this.config_success(this.config);
1831
2001
  return _config;
1832
2002
  } catch (e) {
1833
- console.error(e);
1834
2003
  if (status_callback) {
1835
2004
  status_callback({
1836
2005
  status: "error",
@@ -1839,6 +2008,7 @@ class Client {
1839
2008
  detail: "NOT_FOUND"
1840
2009
  });
1841
2010
  }
2011
+ throw e;
1842
2012
  }
1843
2013
  }
1844
2014
  }
@@ -1889,7 +2059,8 @@ class Client {
1889
2059
  const response = await this.fetch(`${root_url}/component_server/`, {
1890
2060
  method: "POST",
1891
2061
  body,
1892
- headers
2062
+ headers,
2063
+ credentials: "include"
1893
2064
  });
1894
2065
  if (!response.ok) {
1895
2066
  throw new Error(
@@ -1902,6 +2073,9 @@ class Client {
1902
2073
  console.warn(e);
1903
2074
  }
1904
2075
  }
2076
+ set_cookies(raw_cookies) {
2077
+ this.cookies = parse_and_set_cookies(raw_cookies).join("; ");
2078
+ }
1905
2079
  prepare_return_obj() {
1906
2080
  return {
1907
2081
  config: this.config,
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/test/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,cAAc,EAAE,MAAM,KAAK,CAAC;AAmCzD,eAAO,MAAM,QAAQ,EAAE,cAAc,EAkZpC,CAAC"}
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/test/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,cAAc,EAAE,MAAM,KAAK,CAAC;AA4CzD,eAAO,MAAM,QAAQ,EAAE,cAAc,EAgoBpC,CAAC"}
@@ -1 +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,MA4V7B,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"}
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,MA+V7B,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"}
package/dist/types.d.ts CHANGED
@@ -108,6 +108,7 @@ export interface Config {
108
108
  max_file_size?: number;
109
109
  }
110
110
  export interface Dependency {
111
+ id: number;
111
112
  targets: [number, string][];
112
113
  inputs: number[];
113
114
  outputs: number[];
@@ -133,6 +134,7 @@ export interface Dependency {
133
134
  final_event: Payload | null;
134
135
  show_api: boolean;
135
136
  zerogpu?: boolean;
137
+ rendered_in: number | null;
136
138
  }
137
139
  export interface DependencyTypes {
138
140
  continuous: boolean;
@@ -161,6 +163,7 @@ export interface DuplicateOptions extends ClientOptions {
161
163
  export interface ClientOptions {
162
164
  hf_token?: `hf_${string}`;
163
165
  status_callback?: SpaceStatusCallback | null;
166
+ auth?: [string, string] | null;
164
167
  }
165
168
  export interface FileData {
166
169
  name: string;
@@ -199,6 +202,8 @@ export interface RenderMessage {
199
202
  data: {
200
203
  components: any[];
201
204
  layout: any;
205
+ dependencies: Dependency[];
206
+ render_id: number;
202
207
  };
203
208
  }
204
209
  export interface Status {
@@ -219,6 +224,7 @@ export interface Status {
219
224
  desc: string | null;
220
225
  }[];
221
226
  time?: Date;
227
+ changed_state_ids?: number[];
222
228
  }
223
229
  export {};
224
230
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,WAAW,OAAO;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,IAAI,EAAE;QACL,IAAI,EAAE,GAAG,CAAC;QACV,WAAW,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CACnD;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,OAAO,GAAG,SAAS;IAC1D,UAAU,EAAE,CAAC,EAAE,CAAC;IAChB,OAAO,EAAE,CAAC,EAAE,CAAC;IACb,IAAI,CAAC,EAAE,eAAe,CAAC;CACvB;AAED,MAAM,WAAW,OAAO,CAAC,CAAC,SAAS,OAAO,GAAG,SAAS;IACrD,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,OAAO;IACvB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;CAC1B;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC;AAIrE,MAAM,MAAM,cAAc,GAAG,CAC5B,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,KACtB,YAAY,CAAC;AAElB,MAAM,MAAM,eAAe,GAAG,CAC7B,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,YAAY,CAAC,CAAC;AAI3B,KAAK,KAAK,GAAG,CAAC,CAAC,SAAS,SAAS,EAChC,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,KACtB,YAAY,CAAC;AAElB,MAAM,MAAM,aAAa,GAAG;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,OAAO,EAAE,eAAe,CAAC;IACzB,MAAM,EAAE,cAAc,CAAC;IACvB,gBAAgB,EAAE,CACjB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,OAAO,EAAE,KACX,GAAG,CAAC;IACT,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;CAChE,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IAC1B,EAAE,EAAE,KAAK,CAAC;IACV,GAAG,EAAE,KAAK,CAAC;IACX,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;CACpB,CAAC;AAIF,MAAM,MAAM,WAAW,GAAG,iBAAiB,GAAG,gBAAgB,CAAC;AAE/D,MAAM,WAAW,iBAAiB;IACjC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;IAClE,MAAM,EACH,UAAU,GACV,SAAS,GACT,kBAAkB,GAClB,UAAU,GACV,WAAW,CAAC;IACf,WAAW,EAAE,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,YAAY,CAAC;IAC7D,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,aAAa,GAAG,QAAQ,CAAC;IACjC,MAAM,EACH,aAAa,GACb,cAAc,GACd,aAAa,GACb,eAAe,GACf,QAAQ,CAAC;IACZ,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,CAAC;AAI3D,MAAM,WAAW,MAAM;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,GAAG,EAAE,CAAC;IAClB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,GAAG,CAAC;IACZ,IAAI,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC;IACrE,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IAC1B,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAC5B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC7C,WAAW,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,eAAe,CAAC;IACvB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,YAAY,EAAE,MAAM,GAAG,UAAU,GAAG,aAAa,CAAC;IAClD,WAAW,EAAE,OAAO,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC/B,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,OAAO;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAID,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,EAAE,MAAM,MAAM,EAAE,CAAC;IAC1B,eAAe,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;CAC7C;AAED,MAAM,WAAW,QAAQ;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAID,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC;AAE7D,MAAM,WAAW,QAAQ;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,UAAU,CAAC;IAChB,MAAM,EAAE,aAAa,CAAC;CACtB;AAED,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,SAAS,IAAI;KACvC,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;CACvE,CAAC,CAAC,CAAC,CAAC;AACL,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,SAAS,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;AAC3E,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,SAAS,IAAI;KAC7C,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE;CAC7B,CAAC;AACF,MAAM,WAAW,UAAU;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,SAAS,GAAG,MAAM,CAAC;CAC1B;AACD,MAAM,WAAW,aAAa;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE;QACL,UAAU,EAAE,GAAG,EAAE,CAAC;QAClB,MAAM,EAAE,GAAG,CAAC;KACZ,CAAC;CACF;AAED,MAAM,WAAW,MAAM;IACtB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,YAAY,CAAC;IACvD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE;QACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;KACpB,EAAE,CAAC;IACJ,IAAI,CAAC,EAAE,IAAI,CAAC;CACZ"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"duplicate.d.ts","sourceRoot":"","sources":["../../src/utils/duplicate.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGnC,wBAAsB,SAAS,CAC9B,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,gBAAgB,GACvB,OAAO,CAAC,MAAM,CAAC,CAmFjB"}
1
+ {"version":3,"file":"duplicate.d.ts","sourceRoot":"","sources":["../../src/utils/duplicate.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAQnC,wBAAsB,SAAS,CAC9B,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,gBAAgB,GACvB,OAAO,CAAC,MAAM,CAAC,CAuGjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"post_data.d.ts","sourceRoot":"","sources":["../../src/utils/post_data.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAE5B,wBAAsB,SAAS,CAC9B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,OAAO,EACb,kBAAkB,CAAC,EAAE,GAAG,GACtB,OAAO,CAAC,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CA2BjC"}
1
+ {"version":3,"file":"post_data.d.ts","sourceRoot":"","sources":["../../src/utils/post_data.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAE5B,wBAAsB,SAAS,CAC9B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,OAAO,EACb,kBAAkB,CAAC,EAAE,GAAG,GACtB,OAAO,CAAC,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CA4BjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"predict.d.ts","sourceRoot":"","sources":["../../src/utils/predict.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,KAAK,EAAc,YAAY,EAAE,MAAM,UAAU,CAAC;AAEzD,wBAAsB,OAAO,CAC5B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GAAG,MAAM,EACzB,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvC,OAAO,CAAC,YAAY,CAAC,CAgDvB"}
1
+ {"version":3,"file":"predict.d.ts","sourceRoot":"","sources":["../../src/utils/predict.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,KAAK,EAAc,YAAY,EAAE,MAAM,UAAU,CAAC;AAEzD,wBAAsB,OAAO,CAC5B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GAAG,MAAM,EACzB,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvC,OAAO,CAAC,YAAY,CAAC,CAkDvB"}