@kulupu-linku/sona 0.3.5 → 0.3.7

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.
package/dist/client.d.ts CHANGED
@@ -1 +1,2 @@
1
1
  export * from './lib/client'
2
+ export {}
package/dist/client.js CHANGED
@@ -1,7 +1,7 @@
1
- var y = Object.defineProperty;
2
- var w = (e, r, t) => r in e ? y(e, r, { enumerable: !0, configurable: !0, writable: !0, value: t }) : e[r] = t;
3
- var c = (e, r, t) => (w(e, typeof r != "symbol" ? r + "" : r, t), t);
4
- var v = (e, r, t = {}) => {
1
+ var k = Object.defineProperty;
2
+ var P = (e, r, t) => r in e ? k(e, r, { enumerable: !0, configurable: !0, writable: !0, value: t }) : e[r] = t;
3
+ var f = (e, r, t) => P(e, typeof r != "symbol" ? r + "" : r, t);
4
+ var p = (e, r, t = {}) => {
5
5
  let i = `${e}=${r}`;
6
6
  if (e.startsWith("__Secure-") && !t.secure)
7
7
  throw new Error("__Secure- Cookie must have Secure attributes");
@@ -27,74 +27,78 @@ var v = (e, r, t = {}) => {
27
27
  );
28
28
  i += `; Expires=${t.expires.toUTCString()}`;
29
29
  }
30
- if (t.httpOnly && (i += "; HttpOnly"), t.secure && (i += "; Secure"), t.sameSite && (i += `; SameSite=${t.sameSite}`), t.partitioned) {
30
+ if (t.httpOnly && (i += "; HttpOnly"), t.secure && (i += "; Secure"), t.sameSite && (i += `; SameSite=${t.sameSite.charAt(0).toUpperCase() + t.sameSite.slice(1)}`), t.partitioned) {
31
31
  if (!t.secure)
32
32
  throw new Error("Partitioned Cookie must have Secure attributes");
33
33
  i += "; Partitioned";
34
34
  }
35
35
  return i;
36
- }, x = (e, r, t) => (r = encodeURIComponent(r), v(e, r, t)), p = (e, r) => (e = e.replace(/\/+$/, ""), e = e + "/", r = r.replace(/^\/+/, ""), e + r), m = (e, r) => {
36
+ }, C = (e, r, t) => (r = encodeURIComponent(r), p(e, r, t)), U = (e, r) => (e = e.replace(/\/+$/, ""), e = e + "/", r = r.replace(/^\/+/, ""), e + r), w = (e, r) => {
37
37
  for (const [t, i] of Object.entries(r)) {
38
- const n = new RegExp("/:" + t + "(?:{[^/]+})?");
39
- e = e.replace(n, `/${i}`);
38
+ const a = new RegExp("/:" + t + "(?:{[^/]+})?");
39
+ e = e.replace(a, `/${i}`);
40
40
  }
41
41
  return e;
42
- }, P = (e, r) => {
42
+ }, g = (e, r) => {
43
43
  switch (r) {
44
44
  case "ws":
45
45
  return e.replace(/^http/, "ws");
46
46
  case "http":
47
47
  return e.replace(/^ws/, "http");
48
48
  }
49
- }, k = (e) => /^https?:\/\/[^\/]+?\/index$/.test(e) ? e.replace(/\/index$/, "/") : e.replace(/\/index$/, "");
50
- function f(e) {
49
+ }, A = (e) => /^https?:\/\/[^\/]+?\/index$/.test(e) ? e.replace(/\/index$/, "/") : e.replace(/\/index$/, "");
50
+ function m(e) {
51
51
  return typeof e == "object" && e !== null && !Array.isArray(e);
52
52
  }
53
- function l(e, r) {
54
- if (!f(e) && !f(r))
53
+ function b(e, r) {
54
+ if (!m(e) && !m(r))
55
55
  return r;
56
56
  const t = { ...e };
57
57
  for (const i in r) {
58
- const n = r[i];
59
- f(t[i]) && f(n) ? t[i] = l(t[i], n) : t[i] = n;
58
+ const a = r[i];
59
+ m(t[i]) && m(a) ? t[i] = b(t[i], a) : t[i] = a;
60
60
  }
61
61
  return t;
62
62
  }
63
- var d = (e, r) => new Proxy(() => {
63
+ var x = (e, r) => new Proxy(() => {
64
64
  }, {
65
- get(i, n) {
66
- if (!(typeof n != "string" || n === "then"))
67
- return d(e, [...r, n]);
65
+ get(i, a) {
66
+ if (!(typeof a != "string" || a === "then"))
67
+ return x(e, [...r, a]);
68
68
  },
69
- apply(i, n, a) {
69
+ apply(i, a, n) {
70
70
  return e({
71
71
  path: r,
72
- args: a
72
+ args: n
73
73
  });
74
74
  }
75
- }), C = class {
75
+ }), _ = class {
76
76
  constructor(e, r) {
77
- c(this, "url");
78
- c(this, "method");
79
- c(this, "queryParams");
80
- c(this, "pathParams", {});
81
- c(this, "rBody");
82
- c(this, "cType");
83
- c(this, "fetch", async (e, r) => {
77
+ f(this, "url");
78
+ f(this, "method");
79
+ f(this, "queryParams");
80
+ f(this, "pathParams", {});
81
+ f(this, "rBody");
82
+ f(this, "cType");
83
+ f(this, "fetch", async (e, r) => {
84
84
  if (e) {
85
85
  if (e.query) {
86
- for (const [s, h] of Object.entries(e.query))
87
- if (h !== void 0)
88
- if (this.queryParams || (this.queryParams = new URLSearchParams()), Array.isArray(h))
89
- for (const o of h)
90
- this.queryParams.append(s, o);
86
+ for (const [s, o] of Object.entries(e.query))
87
+ if (o !== void 0)
88
+ if (this.queryParams || (this.queryParams = new URLSearchParams()), Array.isArray(o))
89
+ for (const c of o)
90
+ this.queryParams.append(s, c);
91
91
  else
92
- this.queryParams.set(s, h);
92
+ this.queryParams.set(s, o);
93
93
  }
94
94
  if (e.form) {
95
95
  const s = new FormData();
96
- for (const [h, o] of Object.entries(e.form))
97
- s.append(h, o);
96
+ for (const [o, c] of Object.entries(e.form))
97
+ if (Array.isArray(c))
98
+ for (const h of c)
99
+ s.append(o, h);
100
+ else
101
+ s.append(o, c);
98
102
  this.rBody = s;
99
103
  }
100
104
  e.json && (this.rBody = JSON.stringify(e.json), this.cType = "application/json"), e.param && (this.pathParams = e.param);
@@ -106,60 +110,63 @@ var d = (e, r) => new Proxy(() => {
106
110
  };
107
111
  if (e != null && e.cookie) {
108
112
  const s = [];
109
- for (const [h, o] of Object.entries(e.cookie))
110
- s.push(x(h, o, { path: "/" }));
113
+ for (const [o, c] of Object.entries(e.cookie))
114
+ s.push(C(o, c, { path: "/" }));
111
115
  i.Cookie = s.join(",");
112
116
  }
113
117
  this.cType && (i["Content-Type"] = this.cType);
114
- const n = new Headers(i ?? void 0);
115
- let a = this.url;
116
- a = k(a), a = m(a, this.pathParams), this.queryParams && (a = a + "?" + this.queryParams.toString()), t = this.method.toUpperCase();
117
- const u = !(t === "GET" || t === "HEAD");
118
- return ((r == null ? void 0 : r.fetch) || fetch)(a, {
119
- body: u ? this.rBody : void 0,
118
+ const a = new Headers(i ?? void 0);
119
+ let n = this.url;
120
+ n = A(n), n = w(n, this.pathParams), this.queryParams && (n = n + "?" + this.queryParams.toString()), t = this.method.toUpperCase();
121
+ const l = !(t === "GET" || t === "HEAD");
122
+ return ((r == null ? void 0 : r.fetch) || fetch)(n, {
123
+ body: l ? this.rBody : void 0,
120
124
  method: t,
121
- headers: n,
125
+ headers: a,
122
126
  ...r == null ? void 0 : r.init
123
127
  });
124
128
  });
125
129
  this.url = e, this.method = r;
126
130
  }
127
- }, _ = (e, r) => d(function t(i) {
128
- const n = [...i.path];
129
- if (n[n.length - 1] === "toString")
130
- return n[n.length - 2] === "name" ? n[n.length - 3] || "" : t.toString();
131
- if (n[n.length - 1] === "valueOf")
132
- return n[n.length - 2] === "name" ? n[n.length - 3] || "" : t;
133
- let a = "";
134
- if (/^\$/.test(n[n.length - 1])) {
135
- const o = n.pop();
136
- o && (a = o.replace(/^\$/, ""));
131
+ }, E = (e, r) => x(function t(i) {
132
+ var c;
133
+ const a = [...i.path];
134
+ if (a[a.length - 1] === "toString")
135
+ return a[a.length - 2] === "name" ? a[a.length - 3] || "" : t.toString();
136
+ if (a[a.length - 1] === "valueOf")
137
+ return a[a.length - 2] === "name" ? a[a.length - 3] || "" : t;
138
+ let n = "";
139
+ if (/^\$/.test(a[a.length - 1])) {
140
+ const h = a.pop();
141
+ h && (n = h.replace(/^\$/, ""));
137
142
  }
138
- const u = n.join("/"), s = p(e, u);
139
- if (a === "url")
140
- return i.args[0] && i.args[0].param ? new URL(m(s, i.args[0].param)) : new URL(s);
141
- if (a === "ws") {
142
- const o = P(
143
- i.args[0] && i.args[0].param ? m(s, i.args[0].param) : s,
143
+ const l = a.join("/"), s = U(e, l);
144
+ if (n === "url")
145
+ return i.args[0] && i.args[0].param ? new URL(w(s, i.args[0].param)) : new URL(s);
146
+ if (n === "ws") {
147
+ const h = g(
148
+ i.args[0] && i.args[0].param ? w(s, i.args[0].param) : s,
144
149
  "ws"
145
- );
146
- return new WebSocket(o);
150
+ ), d = new URL(h), v = (c = i.args[0]) == null ? void 0 : c.query;
151
+ return v && Object.entries(v).forEach(([u, y]) => {
152
+ Array.isArray(y) ? y.forEach((S) => d.searchParams.append(u, S)) : d.searchParams.set(u, y);
153
+ }), ((...u) => (r == null ? void 0 : r.webSocket) !== void 0 && typeof r.webSocket == "function" ? r.webSocket(...u) : new WebSocket(...u))(d.toString());
147
154
  }
148
- const h = new C(s, a);
149
- if (a) {
155
+ const o = new _(s, n);
156
+ if (n) {
150
157
  r ?? (r = {});
151
- const o = l(r, { ...i.args[1] ?? {} });
152
- return h.fetch(i.args[0], o);
158
+ const h = b(r, { ...i.args[1] ?? {} });
159
+ return o.fetch(i.args[0], h);
153
160
  }
154
- return h;
161
+ return o;
155
162
  }, []);
156
- const g = (e) => {
163
+ const j = (e) => {
157
164
  const { baseUrl: r = "https://api.linku.la", fetch: t = globalThis.fetch } = e ?? {};
158
- return _(r, {
165
+ return E(r, {
159
166
  fetch: t
160
167
  });
161
168
  };
162
169
  export {
163
- g as client
170
+ j as client
164
171
  };
165
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlcyI6WyIuLi9ub2RlX21vZHVsZXMvLnBucG0vaG9ub0A0LjMuNi9ub2RlX21vZHVsZXMvaG9uby9kaXN0L3V0aWxzL2Nvb2tpZS5qcyIsIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9ob25vQDQuMy42L25vZGVfbW9kdWxlcy9ob25vL2Rpc3QvY2xpZW50L3V0aWxzLmpzIiwiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2hvbm9ANC4zLjYvbm9kZV9tb2R1bGVzL2hvbm8vZGlzdC9jbGllbnQvY2xpZW50LmpzIiwiLi4vc3JjL2xpYi9jbGllbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gc3JjL3V0aWxzL2Nvb2tpZS50c1xuaW1wb3J0IHsgZGVjb2RlVVJJQ29tcG9uZW50XyB9IGZyb20gXCIuL3VybC5qc1wiO1xudmFyIGFsZ29yaXRobSA9IHsgbmFtZTogXCJITUFDXCIsIGhhc2g6IFwiU0hBLTI1NlwiIH07XG52YXIgZ2V0Q3J5cHRvS2V5ID0gYXN5bmMgKHNlY3JldCkgPT4ge1xuICBjb25zdCBzZWNyZXRCdWYgPSB0eXBlb2Ygc2VjcmV0ID09PSBcInN0cmluZ1wiID8gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHNlY3JldCkgOiBzZWNyZXQ7XG4gIHJldHVybiBhd2FpdCBjcnlwdG8uc3VidGxlLmltcG9ydEtleShcInJhd1wiLCBzZWNyZXRCdWYsIGFsZ29yaXRobSwgZmFsc2UsIFtcInNpZ25cIiwgXCJ2ZXJpZnlcIl0pO1xufTtcbnZhciBtYWtlU2lnbmF0dXJlID0gYXN5bmMgKHZhbHVlLCBzZWNyZXQpID0+IHtcbiAgY29uc3Qga2V5ID0gYXdhaXQgZ2V0Q3J5cHRvS2V5KHNlY3JldCk7XG4gIGNvbnN0IHNpZ25hdHVyZSA9IGF3YWl0IGNyeXB0by5zdWJ0bGUuc2lnbihhbGdvcml0aG0ubmFtZSwga2V5LCBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodmFsdWUpKTtcbiAgcmV0dXJuIGJ0b2EoU3RyaW5nLmZyb21DaGFyQ29kZSguLi5uZXcgVWludDhBcnJheShzaWduYXR1cmUpKSk7XG59O1xudmFyIHZlcmlmeVNpZ25hdHVyZSA9IGFzeW5jIChiYXNlNjRTaWduYXR1cmUsIHZhbHVlLCBzZWNyZXQpID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBzaWduYXR1cmVCaW5TdHIgPSBhdG9iKGJhc2U2NFNpZ25hdHVyZSk7XG4gICAgY29uc3Qgc2lnbmF0dXJlID0gbmV3IFVpbnQ4QXJyYXkoc2lnbmF0dXJlQmluU3RyLmxlbmd0aCk7XG4gICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IHNpZ25hdHVyZUJpblN0ci5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgc2lnbmF0dXJlW2ldID0gc2lnbmF0dXJlQmluU3RyLmNoYXJDb2RlQXQoaSk7XG4gICAgfVxuICAgIHJldHVybiBhd2FpdCBjcnlwdG8uc3VidGxlLnZlcmlmeShhbGdvcml0aG0sIHNlY3JldCwgc2lnbmF0dXJlLCBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodmFsdWUpKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufTtcbnZhciB2YWxpZENvb2tpZU5hbWVSZWdFeCA9IC9eW1xcdyEjJCUmJyouXmB8fistXSskLztcbnZhciB2YWxpZENvb2tpZVZhbHVlUmVnRXggPSAvXlsgISMtOjwtW1xcXS1+XSokLztcbnZhciBwYXJzZSA9IChjb29raWUsIG5hbWUpID0+IHtcbiAgY29uc3QgcGFpcnMgPSBjb29raWUudHJpbSgpLnNwbGl0KFwiO1wiKTtcbiAgcmV0dXJuIHBhaXJzLnJlZHVjZSgocGFyc2VkQ29va2llLCBwYWlyU3RyKSA9PiB7XG4gICAgcGFpclN0ciA9IHBhaXJTdHIudHJpbSgpO1xuICAgIGNvbnN0IHZhbHVlU3RhcnRQb3MgPSBwYWlyU3RyLmluZGV4T2YoXCI9XCIpO1xuICAgIGlmICh2YWx1ZVN0YXJ0UG9zID09PSAtMSkge1xuICAgICAgcmV0dXJuIHBhcnNlZENvb2tpZTtcbiAgICB9XG4gICAgY29uc3QgY29va2llTmFtZSA9IHBhaXJTdHIuc3Vic3RyaW5nKDAsIHZhbHVlU3RhcnRQb3MpLnRyaW0oKTtcbiAgICBpZiAobmFtZSAmJiBuYW1lICE9PSBjb29raWVOYW1lIHx8ICF2YWxpZENvb2tpZU5hbWVSZWdFeC50ZXN0KGNvb2tpZU5hbWUpKSB7XG4gICAgICByZXR1cm4gcGFyc2VkQ29va2llO1xuICAgIH1cbiAgICBsZXQgY29va2llVmFsdWUgPSBwYWlyU3RyLnN1YnN0cmluZyh2YWx1ZVN0YXJ0UG9zICsgMSkudHJpbSgpO1xuICAgIGlmIChjb29raWVWYWx1ZS5zdGFydHNXaXRoKCdcIicpICYmIGNvb2tpZVZhbHVlLmVuZHNXaXRoKCdcIicpKSB7XG4gICAgICBjb29raWVWYWx1ZSA9IGNvb2tpZVZhbHVlLnNsaWNlKDEsIC0xKTtcbiAgICB9XG4gICAgaWYgKHZhbGlkQ29va2llVmFsdWVSZWdFeC50ZXN0KGNvb2tpZVZhbHVlKSkge1xuICAgICAgcGFyc2VkQ29va2llW2Nvb2tpZU5hbWVdID0gZGVjb2RlVVJJQ29tcG9uZW50Xyhjb29raWVWYWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiBwYXJzZWRDb29raWU7XG4gIH0sIHt9KTtcbn07XG52YXIgcGFyc2VTaWduZWQgPSBhc3luYyAoY29va2llLCBzZWNyZXQsIG5hbWUpID0+IHtcbiAgY29uc3QgcGFyc2VkQ29va2llID0ge307XG4gIGNvbnN0IHNlY3JldEtleSA9IGF3YWl0IGdldENyeXB0b0tleShzZWNyZXQpO1xuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhwYXJzZShjb29raWUsIG5hbWUpKSkge1xuICAgIGNvbnN0IHNpZ25hdHVyZVN0YXJ0UG9zID0gdmFsdWUubGFzdEluZGV4T2YoXCIuXCIpO1xuICAgIGlmIChzaWduYXR1cmVTdGFydFBvcyA8IDEpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCBzaWduZWRWYWx1ZSA9IHZhbHVlLnN1YnN0cmluZygwLCBzaWduYXR1cmVTdGFydFBvcyk7XG4gICAgY29uc3Qgc2lnbmF0dXJlID0gdmFsdWUuc3Vic3RyaW5nKHNpZ25hdHVyZVN0YXJ0UG9zICsgMSk7XG4gICAgaWYgKHNpZ25hdHVyZS5sZW5ndGggIT09IDQ0IHx8ICFzaWduYXR1cmUuZW5kc1dpdGgoXCI9XCIpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgY29uc3QgaXNWZXJpZmllZCA9IGF3YWl0IHZlcmlmeVNpZ25hdHVyZShzaWduYXR1cmUsIHNpZ25lZFZhbHVlLCBzZWNyZXRLZXkpO1xuICAgIHBhcnNlZENvb2tpZVtrZXldID0gaXNWZXJpZmllZCA/IHNpZ25lZFZhbHVlIDogZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHBhcnNlZENvb2tpZTtcbn07XG52YXIgX3NlcmlhbGl6ZSA9IChuYW1lLCB2YWx1ZSwgb3B0ID0ge30pID0+IHtcbiAgbGV0IGNvb2tpZSA9IGAke25hbWV9PSR7dmFsdWV9YDtcbiAgaWYgKG5hbWUuc3RhcnRzV2l0aChcIl9fU2VjdXJlLVwiKSAmJiAhb3B0LnNlY3VyZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIl9fU2VjdXJlLSBDb29raWUgbXVzdCBoYXZlIFNlY3VyZSBhdHRyaWJ1dGVzXCIpO1xuICB9XG4gIGlmIChuYW1lLnN0YXJ0c1dpdGgoXCJfX0hvc3QtXCIpKSB7XG4gICAgaWYgKCFvcHQuc2VjdXJlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJfX0hvc3QtIENvb2tpZSBtdXN0IGhhdmUgU2VjdXJlIGF0dHJpYnV0ZXNcIik7XG4gICAgfVxuICAgIGlmIChvcHQucGF0aCAhPT0gXCIvXCIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignX19Ib3N0LSBDb29raWUgbXVzdCBoYXZlIFBhdGggYXR0cmlidXRlcyB3aXRoIFwiL1wiJyk7XG4gICAgfVxuICAgIGlmIChvcHQuZG9tYWluKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJfX0hvc3QtIENvb2tpZSBtdXN0IG5vdCBoYXZlIERvbWFpbiBhdHRyaWJ1dGVzXCIpO1xuICAgIH1cbiAgfVxuICBpZiAob3B0ICYmIHR5cGVvZiBvcHQubWF4QWdlID09PSBcIm51bWJlclwiICYmIG9wdC5tYXhBZ2UgPj0gMCkge1xuICAgIGlmIChvcHQubWF4QWdlID4gMzQ1NmU0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiQ29va2llcyBNYXgtQWdlIFNIT1VMRCBOT1QgYmUgZ3JlYXRlciB0aGFuIDQwMCBkYXlzICgzNDU2MDAwMCBzZWNvbmRzKSBpbiBkdXJhdGlvbi5cIlxuICAgICAgKTtcbiAgICB9XG4gICAgY29va2llICs9IGA7IE1heC1BZ2U9JHtNYXRoLmZsb29yKG9wdC5tYXhBZ2UpfWA7XG4gIH1cbiAgaWYgKG9wdC5kb21haW4gJiYgb3B0LnByZWZpeCAhPT0gXCJob3N0XCIpIHtcbiAgICBjb29raWUgKz0gYDsgRG9tYWluPSR7b3B0LmRvbWFpbn1gO1xuICB9XG4gIGlmIChvcHQucGF0aCkge1xuICAgIGNvb2tpZSArPSBgOyBQYXRoPSR7b3B0LnBhdGh9YDtcbiAgfVxuICBpZiAob3B0LmV4cGlyZXMpIHtcbiAgICBpZiAob3B0LmV4cGlyZXMuZ2V0VGltZSgpIC0gRGF0ZS5ub3coKSA+IDM0NTZlNykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIkNvb2tpZXMgRXhwaXJlcyBTSE9VTEQgTk9UIGJlIGdyZWF0ZXIgdGhhbiA0MDAgZGF5cyAoMzQ1NjAwMDAgc2Vjb25kcykgaW4gdGhlIGZ1dHVyZS5cIlxuICAgICAgKTtcbiAgICB9XG4gICAgY29va2llICs9IGA7IEV4cGlyZXM9JHtvcHQuZXhwaXJlcy50b1VUQ1N0cmluZygpfWA7XG4gIH1cbiAgaWYgKG9wdC5odHRwT25seSkge1xuICAgIGNvb2tpZSArPSBcIjsgSHR0cE9ubHlcIjtcbiAgfVxuICBpZiAob3B0LnNlY3VyZSkge1xuICAgIGNvb2tpZSArPSBcIjsgU2VjdXJlXCI7XG4gIH1cbiAgaWYgKG9wdC5zYW1lU2l0ZSkge1xuICAgIGNvb2tpZSArPSBgOyBTYW1lU2l0ZT0ke29wdC5zYW1lU2l0ZX1gO1xuICB9XG4gIGlmIChvcHQucGFydGl0aW9uZWQpIHtcbiAgICBpZiAoIW9wdC5zZWN1cmUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlBhcnRpdGlvbmVkIENvb2tpZSBtdXN0IGhhdmUgU2VjdXJlIGF0dHJpYnV0ZXNcIik7XG4gICAgfVxuICAgIGNvb2tpZSArPSBcIjsgUGFydGl0aW9uZWRcIjtcbiAgfVxuICByZXR1cm4gY29va2llO1xufTtcbnZhciBzZXJpYWxpemUgPSAobmFtZSwgdmFsdWUsIG9wdCkgPT4ge1xuICB2YWx1ZSA9IGVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSk7XG4gIHJldHVybiBfc2VyaWFsaXplKG5hbWUsIHZhbHVlLCBvcHQpO1xufTtcbnZhciBzZXJpYWxpemVTaWduZWQgPSBhc3luYyAobmFtZSwgdmFsdWUsIHNlY3JldCwgb3B0ID0ge30pID0+IHtcbiAgY29uc3Qgc2lnbmF0dXJlID0gYXdhaXQgbWFrZVNpZ25hdHVyZSh2YWx1ZSwgc2VjcmV0KTtcbiAgdmFsdWUgPSBgJHt2YWx1ZX0uJHtzaWduYXR1cmV9YDtcbiAgdmFsdWUgPSBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpO1xuICByZXR1cm4gX3NlcmlhbGl6ZShuYW1lLCB2YWx1ZSwgb3B0KTtcbn07XG5leHBvcnQge1xuICBwYXJzZSxcbiAgcGFyc2VTaWduZWQsXG4gIHNlcmlhbGl6ZSxcbiAgc2VyaWFsaXplU2lnbmVkXG59O1xuIiwiLy8gc3JjL2NsaWVudC91dGlscy50c1xudmFyIG1lcmdlUGF0aCA9IChiYXNlLCBwYXRoKSA9PiB7XG4gIGJhc2UgPSBiYXNlLnJlcGxhY2UoL1xcLyskLywgXCJcIik7XG4gIGJhc2UgPSBiYXNlICsgXCIvXCI7XG4gIHBhdGggPSBwYXRoLnJlcGxhY2UoL15cXC8rLywgXCJcIik7XG4gIHJldHVybiBiYXNlICsgcGF0aDtcbn07XG52YXIgcmVwbGFjZVVybFBhcmFtID0gKHVybFN0cmluZywgcGFyYW1zKSA9PiB7XG4gIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHBhcmFtcykpIHtcbiAgICBjb25zdCByZWcgPSBuZXcgUmVnRXhwKFwiLzpcIiArIGsgKyBcIig/OntbXi9dK30pP1wiKTtcbiAgICB1cmxTdHJpbmcgPSB1cmxTdHJpbmcucmVwbGFjZShyZWcsIGAvJHt2fWApO1xuICB9XG4gIHJldHVybiB1cmxTdHJpbmc7XG59O1xudmFyIHJlcGxhY2VVcmxQcm90b2NvbCA9ICh1cmxTdHJpbmcsIHByb3RvY29sKSA9PiB7XG4gIHN3aXRjaCAocHJvdG9jb2wpIHtcbiAgICBjYXNlIFwid3NcIjpcbiAgICAgIHJldHVybiB1cmxTdHJpbmcucmVwbGFjZSgvXmh0dHAvLCBcIndzXCIpO1xuICAgIGNhc2UgXCJodHRwXCI6XG4gICAgICByZXR1cm4gdXJsU3RyaW5nLnJlcGxhY2UoL153cy8sIFwiaHR0cFwiKTtcbiAgfVxufTtcbnZhciByZW1vdmVJbmRleFN0cmluZyA9ICh1cmxTdGluZykgPT4ge1xuICBpZiAoL15odHRwcz86XFwvXFwvW15cXC9dKz9cXC9pbmRleCQvLnRlc3QodXJsU3RpbmcpKSB7XG4gICAgcmV0dXJuIHVybFN0aW5nLnJlcGxhY2UoL1xcL2luZGV4JC8sIFwiL1wiKTtcbiAgfVxuICByZXR1cm4gdXJsU3RpbmcucmVwbGFjZSgvXFwvaW5kZXgkLywgXCJcIik7XG59O1xuZnVuY3Rpb24gaXNPYmplY3QoaXRlbSkge1xuICByZXR1cm4gdHlwZW9mIGl0ZW0gPT09IFwib2JqZWN0XCIgJiYgaXRlbSAhPT0gbnVsbCAmJiAhQXJyYXkuaXNBcnJheShpdGVtKTtcbn1cbmZ1bmN0aW9uIGRlZXBNZXJnZSh0YXJnZXQsIHNvdXJjZSkge1xuICBpZiAoIWlzT2JqZWN0KHRhcmdldCkgJiYgIWlzT2JqZWN0KHNvdXJjZSkpIHtcbiAgICByZXR1cm4gc291cmNlO1xuICB9XG4gIGNvbnN0IG1lcmdlZCA9IHsgLi4udGFyZ2V0IH07XG4gIGZvciAoY29uc3Qga2V5IGluIHNvdXJjZSkge1xuICAgIGNvbnN0IHZhbHVlID0gc291cmNlW2tleV07XG4gICAgaWYgKGlzT2JqZWN0KG1lcmdlZFtrZXldKSAmJiBpc09iamVjdCh2YWx1ZSkpIHtcbiAgICAgIG1lcmdlZFtrZXldID0gZGVlcE1lcmdlKG1lcmdlZFtrZXldLCB2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG1lcmdlZFtrZXldID0gdmFsdWU7XG4gICAgfVxuICB9XG4gIHJldHVybiBtZXJnZWQ7XG59XG5leHBvcnQge1xuICBkZWVwTWVyZ2UsXG4gIG1lcmdlUGF0aCxcbiAgcmVtb3ZlSW5kZXhTdHJpbmcsXG4gIHJlcGxhY2VVcmxQYXJhbSxcbiAgcmVwbGFjZVVybFByb3RvY29sXG59O1xuIiwiLy8gc3JjL2NsaWVudC9jbGllbnQudHNcbmltcG9ydCB7IHNlcmlhbGl6ZSB9IGZyb20gXCIuLi91dGlscy9jb29raWUuanNcIjtcbmltcG9ydCB7XG4gIGRlZXBNZXJnZSxcbiAgbWVyZ2VQYXRoLFxuICByZW1vdmVJbmRleFN0cmluZyxcbiAgcmVwbGFjZVVybFBhcmFtLFxuICByZXBsYWNlVXJsUHJvdG9jb2xcbn0gZnJvbSBcIi4vdXRpbHMuanNcIjtcbnZhciBjcmVhdGVQcm94eSA9IChjYWxsYmFjaywgcGF0aCkgPT4ge1xuICBjb25zdCBwcm94eSA9IG5ldyBQcm94eSgoKSA9PiB7XG4gIH0sIHtcbiAgICBnZXQoX29iaiwga2V5KSB7XG4gICAgICBpZiAodHlwZW9mIGtleSAhPT0gXCJzdHJpbmdcIiB8fCBrZXkgPT09IFwidGhlblwiKSB7XG4gICAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgICB9XG4gICAgICByZXR1cm4gY3JlYXRlUHJveHkoY2FsbGJhY2ssIFsuLi5wYXRoLCBrZXldKTtcbiAgICB9LFxuICAgIGFwcGx5KF8xLCBfMiwgYXJncykge1xuICAgICAgcmV0dXJuIGNhbGxiYWNrKHtcbiAgICAgICAgcGF0aCxcbiAgICAgICAgYXJnc1xuICAgICAgfSk7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHByb3h5O1xufTtcbnZhciBDbGllbnRSZXF1ZXN0SW1wbCA9IGNsYXNzIHtcbiAgdXJsO1xuICBtZXRob2Q7XG4gIHF1ZXJ5UGFyYW1zID0gdm9pZCAwO1xuICBwYXRoUGFyYW1zID0ge307XG4gIHJCb2R5O1xuICBjVHlwZSA9IHZvaWQgMDtcbiAgY29uc3RydWN0b3IodXJsLCBtZXRob2QpIHtcbiAgICB0aGlzLnVybCA9IHVybDtcbiAgICB0aGlzLm1ldGhvZCA9IG1ldGhvZDtcbiAgfVxuICBmZXRjaCA9IGFzeW5jIChhcmdzLCBvcHQpID0+IHtcbiAgICBpZiAoYXJncykge1xuICAgICAgaWYgKGFyZ3MucXVlcnkpIHtcbiAgICAgICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMoYXJncy5xdWVyeSkpIHtcbiAgICAgICAgICBpZiAodiA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5xdWVyeVBhcmFtcyB8fD0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHYpKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHYyIG9mIHYpIHtcbiAgICAgICAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy5hcHBlbmQoaywgdjIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnNldChrLCB2KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChhcmdzLmZvcm0pIHtcbiAgICAgICAgY29uc3QgZm9ybSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhhcmdzLmZvcm0pKSB7XG4gICAgICAgICAgZm9ybS5hcHBlbmQoaywgdik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yQm9keSA9IGZvcm07XG4gICAgICB9XG4gICAgICBpZiAoYXJncy5qc29uKSB7XG4gICAgICAgIHRoaXMuckJvZHkgPSBKU09OLnN0cmluZ2lmeShhcmdzLmpzb24pO1xuICAgICAgICB0aGlzLmNUeXBlID0gXCJhcHBsaWNhdGlvbi9qc29uXCI7XG4gICAgICB9XG4gICAgICBpZiAoYXJncy5wYXJhbSkge1xuICAgICAgICB0aGlzLnBhdGhQYXJhbXMgPSBhcmdzLnBhcmFtO1xuICAgICAgfVxuICAgIH1cbiAgICBsZXQgbWV0aG9kVXBwZXJDYXNlID0gdGhpcy5tZXRob2QudG9VcHBlckNhc2UoKTtcbiAgICBjb25zdCBoZWFkZXJWYWx1ZXMgPSB7XG4gICAgICAuLi5hcmdzPy5oZWFkZXIgPz8ge30sXG4gICAgICAuLi50eXBlb2Ygb3B0Py5oZWFkZXJzID09PSBcImZ1bmN0aW9uXCIgPyBhd2FpdCBvcHQuaGVhZGVycygpIDogb3B0Py5oZWFkZXJzID8gb3B0LmhlYWRlcnMgOiB7fVxuICAgIH07XG4gICAgaWYgKGFyZ3M/LmNvb2tpZSkge1xuICAgICAgY29uc3QgY29va2llcyA9IFtdO1xuICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoYXJncy5jb29raWUpKSB7XG4gICAgICAgIGNvb2tpZXMucHVzaChzZXJpYWxpemUoa2V5LCB2YWx1ZSwgeyBwYXRoOiBcIi9cIiB9KSk7XG4gICAgICB9XG4gICAgICBoZWFkZXJWYWx1ZXNbXCJDb29raWVcIl0gPSBjb29raWVzLmpvaW4oXCIsXCIpO1xuICAgIH1cbiAgICBpZiAodGhpcy5jVHlwZSkge1xuICAgICAgaGVhZGVyVmFsdWVzW1wiQ29udGVudC1UeXBlXCJdID0gdGhpcy5jVHlwZTtcbiAgICB9XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIZWFkZXJzKGhlYWRlclZhbHVlcyA/PyB2b2lkIDApO1xuICAgIGxldCB1cmwgPSB0aGlzLnVybDtcbiAgICB1cmwgPSByZW1vdmVJbmRleFN0cmluZyh1cmwpO1xuICAgIHVybCA9IHJlcGxhY2VVcmxQYXJhbSh1cmwsIHRoaXMucGF0aFBhcmFtcyk7XG4gICAgaWYgKHRoaXMucXVlcnlQYXJhbXMpIHtcbiAgICAgIHVybCA9IHVybCArIFwiP1wiICsgdGhpcy5xdWVyeVBhcmFtcy50b1N0cmluZygpO1xuICAgIH1cbiAgICBtZXRob2RVcHBlckNhc2UgPSB0aGlzLm1ldGhvZC50b1VwcGVyQ2FzZSgpO1xuICAgIGNvbnN0IHNldEJvZHkgPSAhKG1ldGhvZFVwcGVyQ2FzZSA9PT0gXCJHRVRcIiB8fCBtZXRob2RVcHBlckNhc2UgPT09IFwiSEVBRFwiKTtcbiAgICByZXR1cm4gKG9wdD8uZmV0Y2ggfHwgZmV0Y2gpKHVybCwge1xuICAgICAgYm9keTogc2V0Qm9keSA/IHRoaXMuckJvZHkgOiB2b2lkIDAsXG4gICAgICBtZXRob2Q6IG1ldGhvZFVwcGVyQ2FzZSxcbiAgICAgIGhlYWRlcnMsXG4gICAgICAuLi5vcHQ/LmluaXRcbiAgICB9KTtcbiAgfTtcbn07XG52YXIgaGMgPSAoYmFzZVVybCwgb3B0aW9ucykgPT4gY3JlYXRlUHJveHkoZnVuY3Rpb24gcHJveHlDYWxsYmFjayhvcHRzKSB7XG4gIGNvbnN0IHBhcnRzID0gWy4uLm9wdHMucGF0aF07XG4gIGlmIChwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXSA9PT0gXCJ0b1N0cmluZ1wiKSB7XG4gICAgaWYgKHBhcnRzW3BhcnRzLmxlbmd0aCAtIDJdID09PSBcIm5hbWVcIikge1xuICAgICAgcmV0dXJuIHBhcnRzW3BhcnRzLmxlbmd0aCAtIDNdIHx8IFwiXCI7XG4gICAgfVxuICAgIHJldHVybiBwcm94eUNhbGxiYWNrLnRvU3RyaW5nKCk7XG4gIH1cbiAgaWYgKHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdID09PSBcInZhbHVlT2ZcIikge1xuICAgIGlmIChwYXJ0c1twYXJ0cy5sZW5ndGggLSAyXSA9PT0gXCJuYW1lXCIpIHtcbiAgICAgIHJldHVybiBwYXJ0c1twYXJ0cy5sZW5ndGggLSAzXSB8fCBcIlwiO1xuICAgIH1cbiAgICByZXR1cm4gcHJveHlDYWxsYmFjaztcbiAgfVxuICBsZXQgbWV0aG9kID0gXCJcIjtcbiAgaWYgKC9eXFwkLy50ZXN0KHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdKSkge1xuICAgIGNvbnN0IGxhc3QgPSBwYXJ0cy5wb3AoKTtcbiAgICBpZiAobGFzdCkge1xuICAgICAgbWV0aG9kID0gbGFzdC5yZXBsYWNlKC9eXFwkLywgXCJcIik7XG4gICAgfVxuICB9XG4gIGNvbnN0IHBhdGggPSBwYXJ0cy5qb2luKFwiL1wiKTtcbiAgY29uc3QgdXJsID0gbWVyZ2VQYXRoKGJhc2VVcmwsIHBhdGgpO1xuICBpZiAobWV0aG9kID09PSBcInVybFwiKSB7XG4gICAgaWYgKG9wdHMuYXJnc1swXSAmJiBvcHRzLmFyZ3NbMF0ucGFyYW0pIHtcbiAgICAgIHJldHVybiBuZXcgVVJMKHJlcGxhY2VVcmxQYXJhbSh1cmwsIG9wdHMuYXJnc1swXS5wYXJhbSkpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFVSTCh1cmwpO1xuICB9XG4gIGlmIChtZXRob2QgPT09IFwid3NcIikge1xuICAgIGNvbnN0IHRhcmdldFVybCA9IHJlcGxhY2VVcmxQcm90b2NvbChcbiAgICAgIG9wdHMuYXJnc1swXSAmJiBvcHRzLmFyZ3NbMF0ucGFyYW0gPyByZXBsYWNlVXJsUGFyYW0odXJsLCBvcHRzLmFyZ3NbMF0ucGFyYW0pIDogdXJsLFxuICAgICAgXCJ3c1wiXG4gICAgKTtcbiAgICByZXR1cm4gbmV3IFdlYlNvY2tldCh0YXJnZXRVcmwpO1xuICB9XG4gIGNvbnN0IHJlcSA9IG5ldyBDbGllbnRSZXF1ZXN0SW1wbCh1cmwsIG1ldGhvZCk7XG4gIGlmIChtZXRob2QpIHtcbiAgICBvcHRpb25zID8/PSB7fTtcbiAgICBjb25zdCBhcmdzID0gZGVlcE1lcmdlKG9wdGlvbnMsIHsgLi4ub3B0cy5hcmdzWzFdID8/IHt9IH0pO1xuICAgIHJldHVybiByZXEuZmV0Y2gob3B0cy5hcmdzWzBdLCBhcmdzKTtcbiAgfVxuICByZXR1cm4gcmVxO1xufSwgW10pO1xuZXhwb3J0IHtcbiAgaGNcbn07XG4iLCJpbXBvcnQgeyBoYyB9IGZyb20gXCJob25vL2NsaWVudFwiO1xuaW1wb3J0IHR5cGUgeyBBcHBUeXBlIH0gZnJvbSBcIi4uL3NlcnZlclwiO1xuXG5leHBvcnQgY29uc3QgY2xpZW50ID0gKGFyZ3M/OiB7IGJhc2VVcmw/OiBzdHJpbmc7IGZldGNoPzogKHR5cGVvZiBnbG9iYWxUaGlzKVtcImZldGNoXCJdIH0pID0+IHtcblx0Y29uc3QgeyBiYXNlVXJsID0gXCJodHRwczovL2FwaS5saW5rdS5sYVwiLCBmZXRjaCA9IGdsb2JhbFRoaXMuZmV0Y2ggfSA9IGFyZ3MgPz8ge307XG5cdHJldHVybiBoYzxBcHBUeXBlPihiYXNlVXJsLCB7XG5cdFx0ZmV0Y2gsXG5cdH0pO1xufTtcblxuZXhwb3J0IHR5cGUgQXBpVHlwZSA9IEFwcFR5cGU7XG4iXSwibmFtZXMiOlsiX3NlcmlhbGl6ZSIsIm5hbWUiLCJ2YWx1ZSIsIm9wdCIsImNvb2tpZSIsInNlcmlhbGl6ZSIsIm1lcmdlUGF0aCIsImJhc2UiLCJwYXRoIiwicmVwbGFjZVVybFBhcmFtIiwidXJsU3RyaW5nIiwicGFyYW1zIiwiayIsInYiLCJyZWciLCJyZXBsYWNlVXJsUHJvdG9jb2wiLCJwcm90b2NvbCIsInJlbW92ZUluZGV4U3RyaW5nIiwidXJsU3RpbmciLCJpc09iamVjdCIsIml0ZW0iLCJkZWVwTWVyZ2UiLCJ0YXJnZXQiLCJzb3VyY2UiLCJtZXJnZWQiLCJrZXkiLCJjcmVhdGVQcm94eSIsImNhbGxiYWNrIiwiX29iaiIsIl8xIiwiXzIiLCJhcmdzIiwiQ2xpZW50UmVxdWVzdEltcGwiLCJ1cmwiLCJtZXRob2QiLCJfX3B1YmxpY0ZpZWxkIiwidjIiLCJmb3JtIiwibWV0aG9kVXBwZXJDYXNlIiwiaGVhZGVyVmFsdWVzIiwiY29va2llcyIsImhlYWRlcnMiLCJzZXRCb2R5IiwiaGMiLCJiYXNlVXJsIiwib3B0aW9ucyIsInByb3h5Q2FsbGJhY2si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
172
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlcyI6WyIuLi9ub2RlX21vZHVsZXMvLnBucG0vaG9ub0A0LjUuNi9ub2RlX21vZHVsZXMvaG9uby9kaXN0L3V0aWxzL2Nvb2tpZS5qcyIsIi4uL25vZGVfbW9kdWxlcy8ucG5wbS9ob25vQDQuNS42L25vZGVfbW9kdWxlcy9ob25vL2Rpc3QvY2xpZW50L3V0aWxzLmpzIiwiLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2hvbm9ANC41LjYvbm9kZV9tb2R1bGVzL2hvbm8vZGlzdC9jbGllbnQvY2xpZW50LmpzIiwiLi4vc3JjL2xpYi9jbGllbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gc3JjL3V0aWxzL2Nvb2tpZS50c1xuaW1wb3J0IHsgZGVjb2RlVVJJQ29tcG9uZW50XyB9IGZyb20gXCIuL3VybC5qc1wiO1xudmFyIGFsZ29yaXRobSA9IHsgbmFtZTogXCJITUFDXCIsIGhhc2g6IFwiU0hBLTI1NlwiIH07XG52YXIgZ2V0Q3J5cHRvS2V5ID0gYXN5bmMgKHNlY3JldCkgPT4ge1xuICBjb25zdCBzZWNyZXRCdWYgPSB0eXBlb2Ygc2VjcmV0ID09PSBcInN0cmluZ1wiID8gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHNlY3JldCkgOiBzZWNyZXQ7XG4gIHJldHVybiBhd2FpdCBjcnlwdG8uc3VidGxlLmltcG9ydEtleShcInJhd1wiLCBzZWNyZXRCdWYsIGFsZ29yaXRobSwgZmFsc2UsIFtcInNpZ25cIiwgXCJ2ZXJpZnlcIl0pO1xufTtcbnZhciBtYWtlU2lnbmF0dXJlID0gYXN5bmMgKHZhbHVlLCBzZWNyZXQpID0+IHtcbiAgY29uc3Qga2V5ID0gYXdhaXQgZ2V0Q3J5cHRvS2V5KHNlY3JldCk7XG4gIGNvbnN0IHNpZ25hdHVyZSA9IGF3YWl0IGNyeXB0by5zdWJ0bGUuc2lnbihhbGdvcml0aG0ubmFtZSwga2V5LCBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodmFsdWUpKTtcbiAgcmV0dXJuIGJ0b2EoU3RyaW5nLmZyb21DaGFyQ29kZSguLi5uZXcgVWludDhBcnJheShzaWduYXR1cmUpKSk7XG59O1xudmFyIHZlcmlmeVNpZ25hdHVyZSA9IGFzeW5jIChiYXNlNjRTaWduYXR1cmUsIHZhbHVlLCBzZWNyZXQpID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBzaWduYXR1cmVCaW5TdHIgPSBhdG9iKGJhc2U2NFNpZ25hdHVyZSk7XG4gICAgY29uc3Qgc2lnbmF0dXJlID0gbmV3IFVpbnQ4QXJyYXkoc2lnbmF0dXJlQmluU3RyLmxlbmd0aCk7XG4gICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IHNpZ25hdHVyZUJpblN0ci5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgc2lnbmF0dXJlW2ldID0gc2lnbmF0dXJlQmluU3RyLmNoYXJDb2RlQXQoaSk7XG4gICAgfVxuICAgIHJldHVybiBhd2FpdCBjcnlwdG8uc3VidGxlLnZlcmlmeShhbGdvcml0aG0sIHNlY3JldCwgc2lnbmF0dXJlLCBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodmFsdWUpKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufTtcbnZhciB2YWxpZENvb2tpZU5hbWVSZWdFeCA9IC9eW1xcdyEjJCUmJyouXmB8fistXSskLztcbnZhciB2YWxpZENvb2tpZVZhbHVlUmVnRXggPSAvXlsgISMtOjwtW1xcXS1+XSokLztcbnZhciBwYXJzZSA9IChjb29raWUsIG5hbWUpID0+IHtcbiAgY29uc3QgcGFpcnMgPSBjb29raWUudHJpbSgpLnNwbGl0KFwiO1wiKTtcbiAgcmV0dXJuIHBhaXJzLnJlZHVjZSgocGFyc2VkQ29va2llLCBwYWlyU3RyKSA9PiB7XG4gICAgcGFpclN0ciA9IHBhaXJTdHIudHJpbSgpO1xuICAgIGNvbnN0IHZhbHVlU3RhcnRQb3MgPSBwYWlyU3RyLmluZGV4T2YoXCI9XCIpO1xuICAgIGlmICh2YWx1ZVN0YXJ0UG9zID09PSAtMSkge1xuICAgICAgcmV0dXJuIHBhcnNlZENvb2tpZTtcbiAgICB9XG4gICAgY29uc3QgY29va2llTmFtZSA9IHBhaXJTdHIuc3Vic3RyaW5nKDAsIHZhbHVlU3RhcnRQb3MpLnRyaW0oKTtcbiAgICBpZiAobmFtZSAmJiBuYW1lICE9PSBjb29raWVOYW1lIHx8ICF2YWxpZENvb2tpZU5hbWVSZWdFeC50ZXN0KGNvb2tpZU5hbWUpKSB7XG4gICAgICByZXR1cm4gcGFyc2VkQ29va2llO1xuICAgIH1cbiAgICBsZXQgY29va2llVmFsdWUgPSBwYWlyU3RyLnN1YnN0cmluZyh2YWx1ZVN0YXJ0UG9zICsgMSkudHJpbSgpO1xuICAgIGlmIChjb29raWVWYWx1ZS5zdGFydHNXaXRoKCdcIicpICYmIGNvb2tpZVZhbHVlLmVuZHNXaXRoKCdcIicpKSB7XG4gICAgICBjb29raWVWYWx1ZSA9IGNvb2tpZVZhbHVlLnNsaWNlKDEsIC0xKTtcbiAgICB9XG4gICAgaWYgKHZhbGlkQ29va2llVmFsdWVSZWdFeC50ZXN0KGNvb2tpZVZhbHVlKSkge1xuICAgICAgcGFyc2VkQ29va2llW2Nvb2tpZU5hbWVdID0gZGVjb2RlVVJJQ29tcG9uZW50Xyhjb29raWVWYWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiBwYXJzZWRDb29raWU7XG4gIH0sIHt9KTtcbn07XG52YXIgcGFyc2VTaWduZWQgPSBhc3luYyAoY29va2llLCBzZWNyZXQsIG5hbWUpID0+IHtcbiAgY29uc3QgcGFyc2VkQ29va2llID0ge307XG4gIGNvbnN0IHNlY3JldEtleSA9IGF3YWl0IGdldENyeXB0b0tleShzZWNyZXQpO1xuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhwYXJzZShjb29raWUsIG5hbWUpKSkge1xuICAgIGNvbnN0IHNpZ25hdHVyZVN0YXJ0UG9zID0gdmFsdWUubGFzdEluZGV4T2YoXCIuXCIpO1xuICAgIGlmIChzaWduYXR1cmVTdGFydFBvcyA8IDEpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCBzaWduZWRWYWx1ZSA9IHZhbHVlLnN1YnN0cmluZygwLCBzaWduYXR1cmVTdGFydFBvcyk7XG4gICAgY29uc3Qgc2lnbmF0dXJlID0gdmFsdWUuc3Vic3RyaW5nKHNpZ25hdHVyZVN0YXJ0UG9zICsgMSk7XG4gICAgaWYgKHNpZ25hdHVyZS5sZW5ndGggIT09IDQ0IHx8ICFzaWduYXR1cmUuZW5kc1dpdGgoXCI9XCIpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgY29uc3QgaXNWZXJpZmllZCA9IGF3YWl0IHZlcmlmeVNpZ25hdHVyZShzaWduYXR1cmUsIHNpZ25lZFZhbHVlLCBzZWNyZXRLZXkpO1xuICAgIHBhcnNlZENvb2tpZVtrZXldID0gaXNWZXJpZmllZCA/IHNpZ25lZFZhbHVlIDogZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHBhcnNlZENvb2tpZTtcbn07XG52YXIgX3NlcmlhbGl6ZSA9IChuYW1lLCB2YWx1ZSwgb3B0ID0ge30pID0+IHtcbiAgbGV0IGNvb2tpZSA9IGAke25hbWV9PSR7dmFsdWV9YDtcbiAgaWYgKG5hbWUuc3RhcnRzV2l0aChcIl9fU2VjdXJlLVwiKSAmJiAhb3B0LnNlY3VyZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIl9fU2VjdXJlLSBDb29raWUgbXVzdCBoYXZlIFNlY3VyZSBhdHRyaWJ1dGVzXCIpO1xuICB9XG4gIGlmIChuYW1lLnN0YXJ0c1dpdGgoXCJfX0hvc3QtXCIpKSB7XG4gICAgaWYgKCFvcHQuc2VjdXJlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJfX0hvc3QtIENvb2tpZSBtdXN0IGhhdmUgU2VjdXJlIGF0dHJpYnV0ZXNcIik7XG4gICAgfVxuICAgIGlmIChvcHQucGF0aCAhPT0gXCIvXCIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignX19Ib3N0LSBDb29raWUgbXVzdCBoYXZlIFBhdGggYXR0cmlidXRlcyB3aXRoIFwiL1wiJyk7XG4gICAgfVxuICAgIGlmIChvcHQuZG9tYWluKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJfX0hvc3QtIENvb2tpZSBtdXN0IG5vdCBoYXZlIERvbWFpbiBhdHRyaWJ1dGVzXCIpO1xuICAgIH1cbiAgfVxuICBpZiAob3B0ICYmIHR5cGVvZiBvcHQubWF4QWdlID09PSBcIm51bWJlclwiICYmIG9wdC5tYXhBZ2UgPj0gMCkge1xuICAgIGlmIChvcHQubWF4QWdlID4gMzQ1NmU0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiQ29va2llcyBNYXgtQWdlIFNIT1VMRCBOT1QgYmUgZ3JlYXRlciB0aGFuIDQwMCBkYXlzICgzNDU2MDAwMCBzZWNvbmRzKSBpbiBkdXJhdGlvbi5cIlxuICAgICAgKTtcbiAgICB9XG4gICAgY29va2llICs9IGA7IE1heC1BZ2U9JHtNYXRoLmZsb29yKG9wdC5tYXhBZ2UpfWA7XG4gIH1cbiAgaWYgKG9wdC5kb21haW4gJiYgb3B0LnByZWZpeCAhPT0gXCJob3N0XCIpIHtcbiAgICBjb29raWUgKz0gYDsgRG9tYWluPSR7b3B0LmRvbWFpbn1gO1xuICB9XG4gIGlmIChvcHQucGF0aCkge1xuICAgIGNvb2tpZSArPSBgOyBQYXRoPSR7b3B0LnBhdGh9YDtcbiAgfVxuICBpZiAob3B0LmV4cGlyZXMpIHtcbiAgICBpZiAob3B0LmV4cGlyZXMuZ2V0VGltZSgpIC0gRGF0ZS5ub3coKSA+IDM0NTZlNykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIkNvb2tpZXMgRXhwaXJlcyBTSE9VTEQgTk9UIGJlIGdyZWF0ZXIgdGhhbiA0MDAgZGF5cyAoMzQ1NjAwMDAgc2Vjb25kcykgaW4gdGhlIGZ1dHVyZS5cIlxuICAgICAgKTtcbiAgICB9XG4gICAgY29va2llICs9IGA7IEV4cGlyZXM9JHtvcHQuZXhwaXJlcy50b1VUQ1N0cmluZygpfWA7XG4gIH1cbiAgaWYgKG9wdC5odHRwT25seSkge1xuICAgIGNvb2tpZSArPSBcIjsgSHR0cE9ubHlcIjtcbiAgfVxuICBpZiAob3B0LnNlY3VyZSkge1xuICAgIGNvb2tpZSArPSBcIjsgU2VjdXJlXCI7XG4gIH1cbiAgaWYgKG9wdC5zYW1lU2l0ZSkge1xuICAgIGNvb2tpZSArPSBgOyBTYW1lU2l0ZT0ke29wdC5zYW1lU2l0ZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIG9wdC5zYW1lU2l0ZS5zbGljZSgxKX1gO1xuICB9XG4gIGlmIChvcHQucGFydGl0aW9uZWQpIHtcbiAgICBpZiAoIW9wdC5zZWN1cmUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlBhcnRpdGlvbmVkIENvb2tpZSBtdXN0IGhhdmUgU2VjdXJlIGF0dHJpYnV0ZXNcIik7XG4gICAgfVxuICAgIGNvb2tpZSArPSBcIjsgUGFydGl0aW9uZWRcIjtcbiAgfVxuICByZXR1cm4gY29va2llO1xufTtcbnZhciBzZXJpYWxpemUgPSAobmFtZSwgdmFsdWUsIG9wdCkgPT4ge1xuICB2YWx1ZSA9IGVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSk7XG4gIHJldHVybiBfc2VyaWFsaXplKG5hbWUsIHZhbHVlLCBvcHQpO1xufTtcbnZhciBzZXJpYWxpemVTaWduZWQgPSBhc3luYyAobmFtZSwgdmFsdWUsIHNlY3JldCwgb3B0ID0ge30pID0+IHtcbiAgY29uc3Qgc2lnbmF0dXJlID0gYXdhaXQgbWFrZVNpZ25hdHVyZSh2YWx1ZSwgc2VjcmV0KTtcbiAgdmFsdWUgPSBgJHt2YWx1ZX0uJHtzaWduYXR1cmV9YDtcbiAgdmFsdWUgPSBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpO1xuICByZXR1cm4gX3NlcmlhbGl6ZShuYW1lLCB2YWx1ZSwgb3B0KTtcbn07XG5leHBvcnQge1xuICBwYXJzZSxcbiAgcGFyc2VTaWduZWQsXG4gIHNlcmlhbGl6ZSxcbiAgc2VyaWFsaXplU2lnbmVkXG59O1xuIiwiLy8gc3JjL2NsaWVudC91dGlscy50c1xudmFyIG1lcmdlUGF0aCA9IChiYXNlLCBwYXRoKSA9PiB7XG4gIGJhc2UgPSBiYXNlLnJlcGxhY2UoL1xcLyskLywgXCJcIik7XG4gIGJhc2UgPSBiYXNlICsgXCIvXCI7XG4gIHBhdGggPSBwYXRoLnJlcGxhY2UoL15cXC8rLywgXCJcIik7XG4gIHJldHVybiBiYXNlICsgcGF0aDtcbn07XG52YXIgcmVwbGFjZVVybFBhcmFtID0gKHVybFN0cmluZywgcGFyYW1zKSA9PiB7XG4gIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHBhcmFtcykpIHtcbiAgICBjb25zdCByZWcgPSBuZXcgUmVnRXhwKFwiLzpcIiArIGsgKyBcIig/OntbXi9dK30pP1wiKTtcbiAgICB1cmxTdHJpbmcgPSB1cmxTdHJpbmcucmVwbGFjZShyZWcsIGAvJHt2fWApO1xuICB9XG4gIHJldHVybiB1cmxTdHJpbmc7XG59O1xudmFyIHJlcGxhY2VVcmxQcm90b2NvbCA9ICh1cmxTdHJpbmcsIHByb3RvY29sKSA9PiB7XG4gIHN3aXRjaCAocHJvdG9jb2wpIHtcbiAgICBjYXNlIFwid3NcIjpcbiAgICAgIHJldHVybiB1cmxTdHJpbmcucmVwbGFjZSgvXmh0dHAvLCBcIndzXCIpO1xuICAgIGNhc2UgXCJodHRwXCI6XG4gICAgICByZXR1cm4gdXJsU3RyaW5nLnJlcGxhY2UoL153cy8sIFwiaHR0cFwiKTtcbiAgfVxufTtcbnZhciByZW1vdmVJbmRleFN0cmluZyA9ICh1cmxTdGluZykgPT4ge1xuICBpZiAoL15odHRwcz86XFwvXFwvW15cXC9dKz9cXC9pbmRleCQvLnRlc3QodXJsU3RpbmcpKSB7XG4gICAgcmV0dXJuIHVybFN0aW5nLnJlcGxhY2UoL1xcL2luZGV4JC8sIFwiL1wiKTtcbiAgfVxuICByZXR1cm4gdXJsU3RpbmcucmVwbGFjZSgvXFwvaW5kZXgkLywgXCJcIik7XG59O1xuZnVuY3Rpb24gaXNPYmplY3QoaXRlbSkge1xuICByZXR1cm4gdHlwZW9mIGl0ZW0gPT09IFwib2JqZWN0XCIgJiYgaXRlbSAhPT0gbnVsbCAmJiAhQXJyYXkuaXNBcnJheShpdGVtKTtcbn1cbmZ1bmN0aW9uIGRlZXBNZXJnZSh0YXJnZXQsIHNvdXJjZSkge1xuICBpZiAoIWlzT2JqZWN0KHRhcmdldCkgJiYgIWlzT2JqZWN0KHNvdXJjZSkpIHtcbiAgICByZXR1cm4gc291cmNlO1xuICB9XG4gIGNvbnN0IG1lcmdlZCA9IHsgLi4udGFyZ2V0IH07XG4gIGZvciAoY29uc3Qga2V5IGluIHNvdXJjZSkge1xuICAgIGNvbnN0IHZhbHVlID0gc291cmNlW2tleV07XG4gICAgaWYgKGlzT2JqZWN0KG1lcmdlZFtrZXldKSAmJiBpc09iamVjdCh2YWx1ZSkpIHtcbiAgICAgIG1lcmdlZFtrZXldID0gZGVlcE1lcmdlKG1lcmdlZFtrZXldLCB2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG1lcmdlZFtrZXldID0gdmFsdWU7XG4gICAgfVxuICB9XG4gIHJldHVybiBtZXJnZWQ7XG59XG5leHBvcnQge1xuICBkZWVwTWVyZ2UsXG4gIG1lcmdlUGF0aCxcbiAgcmVtb3ZlSW5kZXhTdHJpbmcsXG4gIHJlcGxhY2VVcmxQYXJhbSxcbiAgcmVwbGFjZVVybFByb3RvY29sXG59O1xuIiwiLy8gc3JjL2NsaWVudC9jbGllbnQudHNcbmltcG9ydCB7IHNlcmlhbGl6ZSB9IGZyb20gXCIuLi91dGlscy9jb29raWUuanNcIjtcbmltcG9ydCB7XG4gIGRlZXBNZXJnZSxcbiAgbWVyZ2VQYXRoLFxuICByZW1vdmVJbmRleFN0cmluZyxcbiAgcmVwbGFjZVVybFBhcmFtLFxuICByZXBsYWNlVXJsUHJvdG9jb2xcbn0gZnJvbSBcIi4vdXRpbHMuanNcIjtcbnZhciBjcmVhdGVQcm94eSA9IChjYWxsYmFjaywgcGF0aCkgPT4ge1xuICBjb25zdCBwcm94eSA9IG5ldyBQcm94eSgoKSA9PiB7XG4gIH0sIHtcbiAgICBnZXQoX29iaiwga2V5KSB7XG4gICAgICBpZiAodHlwZW9mIGtleSAhPT0gXCJzdHJpbmdcIiB8fCBrZXkgPT09IFwidGhlblwiKSB7XG4gICAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgICB9XG4gICAgICByZXR1cm4gY3JlYXRlUHJveHkoY2FsbGJhY2ssIFsuLi5wYXRoLCBrZXldKTtcbiAgICB9LFxuICAgIGFwcGx5KF8xLCBfMiwgYXJncykge1xuICAgICAgcmV0dXJuIGNhbGxiYWNrKHtcbiAgICAgICAgcGF0aCxcbiAgICAgICAgYXJnc1xuICAgICAgfSk7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHByb3h5O1xufTtcbnZhciBDbGllbnRSZXF1ZXN0SW1wbCA9IGNsYXNzIHtcbiAgdXJsO1xuICBtZXRob2Q7XG4gIHF1ZXJ5UGFyYW1zID0gdm9pZCAwO1xuICBwYXRoUGFyYW1zID0ge307XG4gIHJCb2R5O1xuICBjVHlwZSA9IHZvaWQgMDtcbiAgY29uc3RydWN0b3IodXJsLCBtZXRob2QpIHtcbiAgICB0aGlzLnVybCA9IHVybDtcbiAgICB0aGlzLm1ldGhvZCA9IG1ldGhvZDtcbiAgfVxuICBmZXRjaCA9IGFzeW5jIChhcmdzLCBvcHQpID0+IHtcbiAgICBpZiAoYXJncykge1xuICAgICAgaWYgKGFyZ3MucXVlcnkpIHtcbiAgICAgICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMoYXJncy5xdWVyeSkpIHtcbiAgICAgICAgICBpZiAodiA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5xdWVyeVBhcmFtcyB8fD0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHYpKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHYyIG9mIHYpIHtcbiAgICAgICAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy5hcHBlbmQoaywgdjIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnNldChrLCB2KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChhcmdzLmZvcm0pIHtcbiAgICAgICAgY29uc3QgZm9ybSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhhcmdzLmZvcm0pKSB7XG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodikpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgdjIgb2Ygdikge1xuICAgICAgICAgICAgICBmb3JtLmFwcGVuZChrLCB2Mik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZvcm0uYXBwZW5kKGssIHYpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJCb2R5ID0gZm9ybTtcbiAgICAgIH1cbiAgICAgIGlmIChhcmdzLmpzb24pIHtcbiAgICAgICAgdGhpcy5yQm9keSA9IEpTT04uc3RyaW5naWZ5KGFyZ3MuanNvbik7XG4gICAgICAgIHRoaXMuY1R5cGUgPSBcImFwcGxpY2F0aW9uL2pzb25cIjtcbiAgICAgIH1cbiAgICAgIGlmIChhcmdzLnBhcmFtKSB7XG4gICAgICAgIHRoaXMucGF0aFBhcmFtcyA9IGFyZ3MucGFyYW07XG4gICAgICB9XG4gICAgfVxuICAgIGxldCBtZXRob2RVcHBlckNhc2UgPSB0aGlzLm1ldGhvZC50b1VwcGVyQ2FzZSgpO1xuICAgIGNvbnN0IGhlYWRlclZhbHVlcyA9IHtcbiAgICAgIC4uLmFyZ3M/LmhlYWRlciA/PyB7fSxcbiAgICAgIC4uLnR5cGVvZiBvcHQ/LmhlYWRlcnMgPT09IFwiZnVuY3Rpb25cIiA/IGF3YWl0IG9wdC5oZWFkZXJzKCkgOiBvcHQ/LmhlYWRlcnMgPyBvcHQuaGVhZGVycyA6IHt9XG4gICAgfTtcbiAgICBpZiAoYXJncz8uY29va2llKSB7XG4gICAgICBjb25zdCBjb29raWVzID0gW107XG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhhcmdzLmNvb2tpZSkpIHtcbiAgICAgICAgY29va2llcy5wdXNoKHNlcmlhbGl6ZShrZXksIHZhbHVlLCB7IHBhdGg6IFwiL1wiIH0pKTtcbiAgICAgIH1cbiAgICAgIGhlYWRlclZhbHVlc1tcIkNvb2tpZVwiXSA9IGNvb2tpZXMuam9pbihcIixcIik7XG4gICAgfVxuICAgIGlmICh0aGlzLmNUeXBlKSB7XG4gICAgICBoZWFkZXJWYWx1ZXNbXCJDb250ZW50LVR5cGVcIl0gPSB0aGlzLmNUeXBlO1xuICAgIH1cbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEhlYWRlcnMoaGVhZGVyVmFsdWVzID8/IHZvaWQgMCk7XG4gICAgbGV0IHVybCA9IHRoaXMudXJsO1xuICAgIHVybCA9IHJlbW92ZUluZGV4U3RyaW5nKHVybCk7XG4gICAgdXJsID0gcmVwbGFjZVVybFBhcmFtKHVybCwgdGhpcy5wYXRoUGFyYW1zKTtcbiAgICBpZiAodGhpcy5xdWVyeVBhcmFtcykge1xuICAgICAgdXJsID0gdXJsICsgXCI/XCIgKyB0aGlzLnF1ZXJ5UGFyYW1zLnRvU3RyaW5nKCk7XG4gICAgfVxuICAgIG1ldGhvZFVwcGVyQ2FzZSA9IHRoaXMubWV0aG9kLnRvVXBwZXJDYXNlKCk7XG4gICAgY29uc3Qgc2V0Qm9keSA9ICEobWV0aG9kVXBwZXJDYXNlID09PSBcIkdFVFwiIHx8IG1ldGhvZFVwcGVyQ2FzZSA9PT0gXCJIRUFEXCIpO1xuICAgIHJldHVybiAob3B0Py5mZXRjaCB8fCBmZXRjaCkodXJsLCB7XG4gICAgICBib2R5OiBzZXRCb2R5ID8gdGhpcy5yQm9keSA6IHZvaWQgMCxcbiAgICAgIG1ldGhvZDogbWV0aG9kVXBwZXJDYXNlLFxuICAgICAgaGVhZGVycyxcbiAgICAgIC4uLm9wdD8uaW5pdFxuICAgIH0pO1xuICB9O1xufTtcbnZhciBoYyA9IChiYXNlVXJsLCBvcHRpb25zKSA9PiBjcmVhdGVQcm94eShmdW5jdGlvbiBwcm94eUNhbGxiYWNrKG9wdHMpIHtcbiAgY29uc3QgcGFydHMgPSBbLi4ub3B0cy5wYXRoXTtcbiAgaWYgKHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdID09PSBcInRvU3RyaW5nXCIpIHtcbiAgICBpZiAocGFydHNbcGFydHMubGVuZ3RoIC0gMl0gPT09IFwibmFtZVwiKSB7XG4gICAgICByZXR1cm4gcGFydHNbcGFydHMubGVuZ3RoIC0gM10gfHwgXCJcIjtcbiAgICB9XG4gICAgcmV0dXJuIHByb3h5Q2FsbGJhY2sudG9TdHJpbmcoKTtcbiAgfVxuICBpZiAocGFydHNbcGFydHMubGVuZ3RoIC0gMV0gPT09IFwidmFsdWVPZlwiKSB7XG4gICAgaWYgKHBhcnRzW3BhcnRzLmxlbmd0aCAtIDJdID09PSBcIm5hbWVcIikge1xuICAgICAgcmV0dXJuIHBhcnRzW3BhcnRzLmxlbmd0aCAtIDNdIHx8IFwiXCI7XG4gICAgfVxuICAgIHJldHVybiBwcm94eUNhbGxiYWNrO1xuICB9XG4gIGxldCBtZXRob2QgPSBcIlwiO1xuICBpZiAoL15cXCQvLnRlc3QocGFydHNbcGFydHMubGVuZ3RoIC0gMV0pKSB7XG4gICAgY29uc3QgbGFzdCA9IHBhcnRzLnBvcCgpO1xuICAgIGlmIChsYXN0KSB7XG4gICAgICBtZXRob2QgPSBsYXN0LnJlcGxhY2UoL15cXCQvLCBcIlwiKTtcbiAgICB9XG4gIH1cbiAgY29uc3QgcGF0aCA9IHBhcnRzLmpvaW4oXCIvXCIpO1xuICBjb25zdCB1cmwgPSBtZXJnZVBhdGgoYmFzZVVybCwgcGF0aCk7XG4gIGlmIChtZXRob2QgPT09IFwidXJsXCIpIHtcbiAgICBpZiAob3B0cy5hcmdzWzBdICYmIG9wdHMuYXJnc1swXS5wYXJhbSkge1xuICAgICAgcmV0dXJuIG5ldyBVUkwocmVwbGFjZVVybFBhcmFtKHVybCwgb3B0cy5hcmdzWzBdLnBhcmFtKSk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgVVJMKHVybCk7XG4gIH1cbiAgaWYgKG1ldGhvZCA9PT0gXCJ3c1wiKSB7XG4gICAgY29uc3Qgd2ViU29ja2V0VXJsID0gcmVwbGFjZVVybFByb3RvY29sKFxuICAgICAgb3B0cy5hcmdzWzBdICYmIG9wdHMuYXJnc1swXS5wYXJhbSA/IHJlcGxhY2VVcmxQYXJhbSh1cmwsIG9wdHMuYXJnc1swXS5wYXJhbSkgOiB1cmwsXG4gICAgICBcIndzXCJcbiAgICApO1xuICAgIGNvbnN0IHRhcmdldFVybCA9IG5ldyBVUkwod2ViU29ja2V0VXJsKTtcbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IG9wdHMuYXJnc1swXT8ucXVlcnk7XG4gICAgaWYgKHF1ZXJ5UGFyYW1zKSB7XG4gICAgICBPYmplY3QuZW50cmllcyhxdWVyeVBhcmFtcykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgIHZhbHVlLmZvckVhY2goKGl0ZW0pID0+IHRhcmdldFVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGtleSwgaXRlbSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRhcmdldFVybC5zZWFyY2hQYXJhbXMuc2V0KGtleSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgZXN0YWJsaXNoV2ViU29ja2V0ID0gKC4uLmFyZ3MpID0+IHtcbiAgICAgIGlmIChvcHRpb25zPy53ZWJTb2NrZXQgIT09IHZvaWQgMCAmJiB0eXBlb2Ygb3B0aW9ucy53ZWJTb2NrZXQgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4gb3B0aW9ucy53ZWJTb2NrZXQoLi4uYXJncyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV3IFdlYlNvY2tldCguLi5hcmdzKTtcbiAgICB9O1xuICAgIHJldHVybiBlc3RhYmxpc2hXZWJTb2NrZXQodGFyZ2V0VXJsLnRvU3RyaW5nKCkpO1xuICB9XG4gIGNvbnN0IHJlcSA9IG5ldyBDbGllbnRSZXF1ZXN0SW1wbCh1cmwsIG1ldGhvZCk7XG4gIGlmIChtZXRob2QpIHtcbiAgICBvcHRpb25zID8/PSB7fTtcbiAgICBjb25zdCBhcmdzID0gZGVlcE1lcmdlKG9wdGlvbnMsIHsgLi4ub3B0cy5hcmdzWzFdID8/IHt9IH0pO1xuICAgIHJldHVybiByZXEuZmV0Y2gob3B0cy5hcmdzWzBdLCBhcmdzKTtcbiAgfVxuICByZXR1cm4gcmVxO1xufSwgW10pO1xuZXhwb3J0IHtcbiAgaGNcbn07XG4iLCJpbXBvcnQgeyBoYyB9IGZyb20gXCJob25vL2NsaWVudFwiO1xuaW1wb3J0IHR5cGUgeyBBcHBUeXBlIH0gZnJvbSBcIi4uL3NlcnZlclwiO1xuXG5leHBvcnQgY29uc3QgY2xpZW50ID0gKGFyZ3M/OiB7IGJhc2VVcmw/OiBzdHJpbmc7IGZldGNoPzogKHR5cGVvZiBnbG9iYWxUaGlzKVtcImZldGNoXCJdIH0pID0+IHtcblx0Y29uc3QgeyBiYXNlVXJsID0gXCJodHRwczovL2FwaS5saW5rdS5sYVwiLCBmZXRjaCA9IGdsb2JhbFRoaXMuZmV0Y2ggfSA9IGFyZ3MgPz8ge307XG5cdHJldHVybiBoYzxBcHBUeXBlPihiYXNlVXJsLCB7XG5cdFx0ZmV0Y2gsXG5cdH0pO1xufTtcblxuZXhwb3J0IHR5cGUgQXBpVHlwZSA9IEFwcFR5cGU7XG4iXSwibmFtZXMiOlsiX3NlcmlhbGl6ZSIsIm5hbWUiLCJ2YWx1ZSIsIm9wdCIsImNvb2tpZSIsInNlcmlhbGl6ZSIsIm1lcmdlUGF0aCIsImJhc2UiLCJwYXRoIiwicmVwbGFjZVVybFBhcmFtIiwidXJsU3RyaW5nIiwicGFyYW1zIiwiayIsInYiLCJyZWciLCJyZXBsYWNlVXJsUHJvdG9jb2wiLCJwcm90b2NvbCIsInJlbW92ZUluZGV4U3RyaW5nIiwidXJsU3RpbmciLCJpc09iamVjdCIsIml0ZW0iLCJkZWVwTWVyZ2UiLCJ0YXJnZXQiLCJzb3VyY2UiLCJtZXJnZWQiLCJrZXkiLCJjcmVhdGVQcm94eSIsImNhbGxiYWNrIiwiX29iaiIsIl8xIiwiXzIiLCJhcmdzIiwiQ2xpZW50UmVxdWVzdEltcGwiLCJ1cmwiLCJtZXRob2QiLCJfX3B1YmxpY0ZpZWxkIiwidjIiLCJmb3JtIiwibWV0aG9kVXBwZXJDYXNlIiwiaGVhZGVyVmFsdWVzIiwiY29va2llcyIsImhlYWRlcnMiLCJzZXRCb2R5IiwiaGMiLCJiYXNlVXJsIiwib3B0aW9ucyIsInByb3h5Q2FsbGJhY2siLCJvcHRzIiwiX2EiLCJwYXJ0cyIsImxhc3QiLCJ3ZWJTb2NrZXRVcmwiLCJ0YXJnZXRV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
package/dist/index.d.ts CHANGED
@@ -1 +1,2 @@
1
1
  export * from './lib/index'
2
+ export {}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { z as e, B as o, C as n, U as t, W as r } from "./utils-GfUvEzD4.js";
1
+ import { z as e, B as o, C as n, U as t, W as r } from "./utils-B3Jq5OVZ.js";
2
2
  const s = e.string().regex(/^20\d{2}-(0[1-9]|1[0-2])$/g), a = e.object({
3
3
  id: e.string().min(1).describe(
4
4
  'A unique identifier for the word. Usually the word but may have an integer added in case of a word with multiple definitions (like "we")'
@@ -1,5 +1,4 @@
1
1
  import { AppType } from '../server';
2
-
3
2
  export declare const client: (args?: {
4
3
  baseUrl?: string;
5
4
  fetch?: (typeof globalThis)["fetch"];
@@ -7,9 +6,9 @@ export declare const client: (args?: {
7
6
  index: import('hono/client').ClientRequest<{
8
7
  $get: {
9
8
  input: {};
10
- output: {};
11
- outputFormat: string;
12
- status: import('hono/utils/http-status').StatusCode;
9
+ output: undefined;
10
+ outputFormat: "redirect";
11
+ status: 302;
13
12
  };
14
13
  }>;
15
14
  } & {
@@ -80,7 +79,7 @@ export declare const client: (args?: {
80
79
  };
81
80
  };
82
81
  outputFormat: "json";
83
- status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
82
+ status: 200;
84
83
  };
85
84
  }>;
86
85
  };
@@ -88,18 +87,20 @@ export declare const client: (args?: {
88
87
  v1: import('hono/client').ClientRequest<{
89
88
  $get: {
90
89
  input: {};
91
- output: {};
92
- outputFormat: string;
93
- status: import('hono/utils/http-status').StatusCode;
90
+ output: undefined;
91
+ outputFormat: "redirect";
92
+ status: 302;
94
93
  };
95
94
  }>;
95
+ } & {
96
+ "*": import('hono/client').ClientRequest<{}>;
96
97
  } & {
97
98
  jasima: import('hono/client').ClientRequest<{
98
99
  $get: {
99
100
  input: {};
100
101
  output: {};
101
102
  outputFormat: "json";
102
- status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
103
+ status: import('hono/utils/http-status').StatusCode;
103
104
  };
104
105
  }>;
105
106
  } & {
@@ -113,7 +114,7 @@ export declare const client: (args?: {
113
114
  };
114
115
  } & {
115
116
  param: {
116
- word: string | undefined;
117
+ word: string;
117
118
  };
118
119
  };
119
120
  output: {
@@ -176,7 +177,7 @@ export declare const client: (args?: {
176
177
  };
177
178
  };
178
179
  outputFormat: "json";
179
- status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
180
+ status: 200;
180
181
  } | {
181
182
  input: {
182
183
  query: {
@@ -184,7 +185,7 @@ export declare const client: (args?: {
184
185
  };
185
186
  } & {
186
187
  param: {
187
- word: string | undefined;
188
+ word: string;
188
189
  };
189
190
  };
190
191
  output: {
@@ -265,7 +266,7 @@ export declare const client: (args?: {
265
266
  };
266
267
  };
267
268
  outputFormat: "json";
268
- status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
269
+ status: 200;
269
270
  };
270
271
  }>;
271
272
  };
@@ -280,7 +281,7 @@ export declare const client: (args?: {
280
281
  };
281
282
  } & {
282
283
  param: {
283
- word: string | undefined;
284
+ word: string;
284
285
  };
285
286
  };
286
287
  output: {
@@ -343,7 +344,7 @@ export declare const client: (args?: {
343
344
  };
344
345
  };
345
346
  outputFormat: "json";
346
- status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
347
+ status: 200;
347
348
  } | {
348
349
  input: {
349
350
  query: {
@@ -351,7 +352,7 @@ export declare const client: (args?: {
351
352
  };
352
353
  } & {
353
354
  param: {
354
- word: string | undefined;
355
+ word: string;
355
356
  };
356
357
  };
357
358
  output: {
@@ -403,7 +404,7 @@ export declare const client: (args?: {
403
404
  };
404
405
  };
405
406
  outputFormat: "json";
406
- status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
407
+ status: 200;
407
408
  };
408
409
  }>;
409
410
  };
@@ -420,7 +421,7 @@ export declare const client: (args?: {
420
421
  };
421
422
  } & {
422
423
  param: {
423
- sign: string | undefined;
424
+ sign: string;
424
425
  };
425
426
  };
426
427
  output: {
@@ -453,7 +454,7 @@ export declare const client: (args?: {
453
454
  };
454
455
  };
455
456
  outputFormat: "json";
456
- status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
457
+ status: 200;
457
458
  } | {
458
459
  input: {
459
460
  query: {
@@ -461,7 +462,7 @@ export declare const client: (args?: {
461
462
  };
462
463
  } & {
463
464
  param: {
464
- sign: string | undefined;
465
+ sign: string;
465
466
  };
466
467
  };
467
468
  output: {
@@ -518,7 +519,7 @@ export declare const client: (args?: {
518
519
  };
519
520
  };
520
521
  outputFormat: "json";
521
- status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
522
+ status: 200;
522
523
  };
523
524
  }>;
524
525
  };
@@ -535,7 +536,7 @@ export declare const client: (args?: {
535
536
  };
536
537
  } & {
537
538
  param: {
538
- sign: string | undefined;
539
+ sign: string;
539
540
  };
540
541
  };
541
542
  output: {
@@ -572,7 +573,7 @@ export declare const client: (args?: {
572
573
  };
573
574
  };
574
575
  outputFormat: "json";
575
- status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
576
+ status: 200;
576
577
  } | {
577
578
  input: {
578
579
  query: {
@@ -580,7 +581,7 @@ export declare const client: (args?: {
580
581
  };
581
582
  } & {
582
583
  param: {
583
- sign: string | undefined;
584
+ sign: string;
584
585
  };
585
586
  };
586
587
  output: {
@@ -621,7 +622,7 @@ export declare const client: (args?: {
621
622
  };
622
623
  };
623
624
  outputFormat: "json";
624
- status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
625
+ status: 200;
625
626
  };
626
627
  }>;
627
628
  };
@@ -632,7 +633,7 @@ export declare const client: (args?: {
632
633
  $get: {
633
634
  input: {
634
635
  param: {
635
- font: string | undefined;
636
+ font: string;
636
637
  };
637
638
  };
638
639
  output: {
@@ -658,11 +659,11 @@ export declare const client: (args?: {
658
659
  };
659
660
  };
660
661
  outputFormat: "json";
661
- status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
662
+ status: 200;
662
663
  } | {
663
664
  input: {
664
665
  param: {
665
- font: string | undefined;
666
+ font: string;
666
667
  };
667
668
  };
668
669
  output: {
@@ -693,7 +694,7 @@ export declare const client: (args?: {
693
694
  };
694
695
  };
695
696
  outputFormat: "json";
696
- status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
697
+ status: 200;
697
698
  };
698
699
  }>;
699
700
  };
@@ -704,7 +705,7 @@ export declare const client: (args?: {
704
705
  $get: {
705
706
  input: {
706
707
  param: {
707
- language: string | undefined;
708
+ language: string;
708
709
  };
709
710
  };
710
711
  output: {
@@ -721,11 +722,11 @@ export declare const client: (args?: {
721
722
  };
722
723
  };
723
724
  outputFormat: "json";
724
- status: 100 | 101 | 102 | 103 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 226 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 | -1;
725
+ status: 200;
725
726
  } | {
726
727
  input: {
727
728
  param: {
728
- language: string | undefined;
729
+ language: string;
729
730
  };
730
731
  };
731
732
  output: {
@@ -2,7 +2,6 @@ import { Fingerspelling, Font, Fonts, Language, Languages, LocalizedFingerspelli
2
2
  import { client } from './client';
3
3
  import { ClientResponse } from 'hono/client';
4
4
  import { Equal, Expect } from 'hono/utils/types';
5
-
6
5
  type ResponseType<F> = F extends {
7
6
  $get: (...args: any[]) => Promise<ClientResponse<infer O>>;
8
7
  } ? O : never;
@@ -1,5 +1,4 @@
1
1
  import { z } from 'zod';
2
-
3
2
  export type * from './types';
4
3
  export declare const Word: z.ZodObject<{
5
4
  id: z.ZodString;
@@ -1,5 +1,4 @@
1
1
  import { Font, LocalizedWord, ParametersTranslation, Sign } from './index';
2
-
3
2
  export type WordRepresentations = LocalizedWord["representations"];
4
3
  export type WordAudio = LocalizedWord["audio"];
5
4
  export type WordUsage = LocalizedWord["usage"];
@@ -1,5 +1,4 @@
1
1
  import { z } from 'zod';
2
-
3
2
  export declare const Book: z.ZodUnion<[z.ZodLiteral<"pu">, z.ZodLiteral<"ku suli">, z.ZodLiteral<"ku lili">, z.ZodLiteral<"none">]>;
4
3
  export type Book = z.infer<typeof Book>;
5
4
  export declare const CoinedEra: z.ZodUnion<[z.ZodLiteral<"pre-pu">, z.ZodLiteral<"post-pu">, z.ZodLiteral<"post-ku">]>;