@tomorrowevening/hermes 0.0.170 → 0.0.172

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/hermes.es.js CHANGED
@@ -165,8 +165,8 @@ const n_ = ({ mobileTiers: a = [0, 15, 30, 60], desktopTiers: e = [0, 15, 30, 60
165
165
  W.length || (W = k.filter(([be]) => be.includes(T)));
166
166
  const $ = W.length;
167
167
  if ($ === 0) return;
168
- const q = T.split(/[.,()\[\]/\s]/g).sort().filter((be, ot, Lt) => ot === 0 || be !== Lt[ot - 1]).join(" ");
169
- let Z, [we, , , , ue] = $ > 1 ? W.map((be) => [be, s_(q, be[2])]).sort(([, be], [, ot]) => be - ot)[0][0] : W[0], ge = Number.MAX_VALUE;
168
+ const Y = T.split(/[.,()\[\]/\s]/g).sort().filter((be, ot, Lt) => ot === 0 || be !== Lt[ot - 1]).join(" ");
169
+ let Z, [we, , , , ue] = $ > 1 ? W.map((be) => [be, s_(Y, be[2])]).sort(([, be], [, ot]) => be - ot)[0][0] : W[0], ge = Number.MAX_VALUE;
170
170
  const { devicePixelRatio: ie } = window, Ee = c.width * ie * c.height * ie;
171
171
  for (const be of ue) {
172
172
  const [ot, Lt] = be, Ir = ot * Lt, Rn = Math.abs(Ee - Ir);
@@ -771,7 +771,7 @@ class fP {
771
771
  this.targets[e.id]?.handleEvent(e.data);
772
772
  }
773
773
  }
774
- var Y = /* @__PURE__ */ ((a) => (a.CUSTOM = "ToolEvents::custom", a.REMOTE_CONNECTED = "ToolEvents::remoteConnected", a.REMOTE_DISCONNECTED = "ToolEvents::remoteDisconnected", a.SELECT_DROPDOWN = "ToolEvents::selectDropdown", a.DRAG_UPDATE = "ToolEvents::dragUpdate", a.ADD_SCENE = "ToolEvents::addScene", a.REFRESH_SCENE = "ToolEvents::refreshScene", a.REMOVE_SCENE = "ToolEvents::removeScene", a.SET_SCENE = "ToolEvents::setScene", a.GET_OBJECT = "ToolEvents::getObject", a.SET_OBJECT = "ToolEvents::setObject", a.CLEAR_OBJECT = "ToolEvents::clearObject", a.UPDATE_OBJECT = "ToolEvents::updateObject", a.CREATE_TEXTURE = "ToolEvents::createTexture", a.REQUEST_METHOD = "ToolEvents::requestMethod", a.ADD_CAMERA = "ToolEvents::addCamera", a.REMOVE_CAMERA = "ToolEvents::removeCamera", a.ADD_GROUP = "ToolEvents::addGroup", a.REMOVE_GROUP = "ToolEvents::removeGroup", a.ADD_SPLINE = "ToolEvents::addSpline", a.ADD_RENDERER = "ToolEvents::addRenderer", a.UPDATE_RENDERER = "ToolEvents::updateRenderer", a))(Y || {});
774
+ var q = /* @__PURE__ */ ((a) => (a.CUSTOM = "ToolEvents::custom", a.REMOTE_CONNECTED = "ToolEvents::remoteConnected", a.REMOTE_DISCONNECTED = "ToolEvents::remoteDisconnected", a.SELECT_DROPDOWN = "ToolEvents::selectDropdown", a.DRAG_UPDATE = "ToolEvents::dragUpdate", a.ADD_SCENE = "ToolEvents::addScene", a.REFRESH_SCENE = "ToolEvents::refreshScene", a.REMOVE_SCENE = "ToolEvents::removeScene", a.SET_SCENE = "ToolEvents::setScene", a.GET_OBJECT = "ToolEvents::getObject", a.SET_OBJECT = "ToolEvents::setObject", a.CLEAR_OBJECT = "ToolEvents::clearObject", a.UPDATE_OBJECT = "ToolEvents::updateObject", a.CREATE_TEXTURE = "ToolEvents::createTexture", a.REQUEST_METHOD = "ToolEvents::requestMethod", a.ADD_CAMERA = "ToolEvents::addCamera", a.REMOVE_CAMERA = "ToolEvents::removeCamera", a.ADD_GROUP = "ToolEvents::addGroup", a.REMOVE_GROUP = "ToolEvents::removeGroup", a.ADD_SPLINE = "ToolEvents::addSpline", a.ADD_RENDERER = "ToolEvents::addRenderer", a.UPDATE_RENDERER = "ToolEvents::updateRenderer", a))(q || {});
775
775
  class mP extends xu {
776
776
  assets = {
777
777
  audio: /* @__PURE__ */ new Map(),
@@ -1099,10 +1099,10 @@ class xP extends Su {
1099
1099
  handleApp(e) {
1100
1100
  switch (e.event) {
1101
1101
  case "selectComponent":
1102
- this.app.dispatchEvent({ type: Y.SELECT_DROPDOWN, value: e.data });
1102
+ this.app.dispatchEvent({ type: q.SELECT_DROPDOWN, value: e.data });
1103
1103
  break;
1104
1104
  case "draggableListUpdate":
1105
- this.app.dispatchEvent({ type: Y.DRAG_UPDATE, value: e.data });
1105
+ this.app.dispatchEvent({ type: q.DRAG_UPDATE, value: e.data });
1106
1106
  break;
1107
1107
  }
1108
1108
  }
@@ -1250,14 +1250,15 @@ class TP extends Su {
1250
1250
  let c = this.sheetObjects.get(l), h = s;
1251
1251
  c !== void 0 && (h = { ...s, ...c.value }), c = r.object(t, h), this.sheetObjects.set(l, c), this.sheetObjectCBs.set(l, i !== void 0 ? i : rl);
1252
1252
  const u = c.onValuesChange((d) => {
1253
+ const p = this.sheetObjectCBs.get(l);
1253
1254
  if (this.app.editor) {
1254
- for (const p in d) {
1255
- const f = d[p];
1256
- typeof f == "object" && Jx(f) && (d[p] = {
1257
- r: f.r,
1258
- g: f.g,
1259
- b: f.b,
1260
- a: f.a
1255
+ for (const f in d) {
1256
+ const m = d[f];
1257
+ typeof m == "object" && Jx(m) && (d[f] = {
1258
+ r: m.r,
1259
+ g: m.g,
1260
+ b: m.b,
1261
+ a: m.a
1261
1262
  });
1262
1263
  }
1263
1264
  this.app.send({
@@ -1268,12 +1269,8 @@ class TP extends Su {
1268
1269
  sheetObject: l,
1269
1270
  values: d
1270
1271
  }
1271
- });
1272
- }
1273
- if (!this.app.debugEnabled) {
1274
- const p = this.sheetObjectCBs.get(l);
1275
- p !== void 0 && p(d);
1276
- }
1272
+ }), p && p(d);
1273
+ } else this.app.debugEnabled || p && p(d);
1277
1274
  });
1278
1275
  return this.sheetObjectUnsubscribe.set(l, u), c;
1279
1276
  }
@@ -1827,16 +1824,16 @@ class SP extends Su {
1827
1824
  handleApp(e) {
1828
1825
  switch (e.event) {
1829
1826
  case "getObject":
1830
- this.app.dispatchEvent({ type: Y.GET_OBJECT, value: e.data });
1827
+ this.app.dispatchEvent({ type: q.GET_OBJECT, value: e.data });
1831
1828
  break;
1832
1829
  case "updateObject":
1833
- this.app.dispatchEvent({ type: Y.UPDATE_OBJECT, value: e.data });
1830
+ this.app.dispatchEvent({ type: q.UPDATE_OBJECT, value: e.data });
1834
1831
  break;
1835
1832
  case "createTexture":
1836
- this.app.dispatchEvent({ type: Y.CREATE_TEXTURE, value: e.data });
1833
+ this.app.dispatchEvent({ type: q.CREATE_TEXTURE, value: e.data });
1837
1834
  break;
1838
1835
  case "requestMethod":
1839
- this.app.dispatchEvent({ type: Y.REQUEST_METHOD, value: e.data });
1836
+ this.app.dispatchEvent({ type: q.REQUEST_METHOD, value: e.data });
1840
1837
  break;
1841
1838
  case "refreshScene":
1842
1839
  this.app.send({
@@ -1857,37 +1854,37 @@ class SP extends Su {
1857
1854
  handleEditor(e) {
1858
1855
  switch (e.event) {
1859
1856
  case "setObject":
1860
- this.app.dispatchEvent({ type: Y.SET_OBJECT, value: e.data });
1857
+ this.app.dispatchEvent({ type: q.SET_OBJECT, value: e.data });
1861
1858
  break;
1862
1859
  case "addScene":
1863
- this.app.dispatchEvent({ type: Y.ADD_SCENE, value: e.data });
1860
+ this.app.dispatchEvent({ type: q.ADD_SCENE, value: e.data });
1864
1861
  break;
1865
1862
  case "refreshScene":
1866
- this.app.dispatchEvent({ type: Y.REFRESH_SCENE, value: e.data });
1863
+ this.app.dispatchEvent({ type: q.REFRESH_SCENE, value: e.data });
1867
1864
  break;
1868
1865
  case "removeScene":
1869
- this.app.dispatchEvent({ type: Y.REMOVE_SCENE, value: e.data });
1866
+ this.app.dispatchEvent({ type: q.REMOVE_SCENE, value: e.data });
1870
1867
  break;
1871
1868
  case "setScene":
1872
- this.app.dispatchEvent({ type: Y.SET_SCENE, value: e.data });
1869
+ this.app.dispatchEvent({ type: q.SET_SCENE, value: e.data });
1873
1870
  break;
1874
1871
  case "addCamera":
1875
- this.app.dispatchEvent({ type: Y.ADD_CAMERA, value: e.data });
1872
+ this.app.dispatchEvent({ type: q.ADD_CAMERA, value: e.data });
1876
1873
  break;
1877
1874
  case "removeCamera":
1878
- this.app.dispatchEvent({ type: Y.REMOVE_CAMERA, value: e.data });
1875
+ this.app.dispatchEvent({ type: q.REMOVE_CAMERA, value: e.data });
1879
1876
  break;
1880
1877
  case "addGroup":
1881
- this.app.dispatchEvent({ type: Y.ADD_GROUP, value: e.data });
1878
+ this.app.dispatchEvent({ type: q.ADD_GROUP, value: e.data });
1882
1879
  break;
1883
1880
  case "removeGroup":
1884
- this.app.dispatchEvent({ type: Y.REMOVE_GROUP, value: e.data });
1881
+ this.app.dispatchEvent({ type: q.REMOVE_GROUP, value: e.data });
1885
1882
  break;
1886
1883
  case "addSpline":
1887
- this.app.dispatchEvent({ type: Y.ADD_SPLINE, value: e.data });
1884
+ this.app.dispatchEvent({ type: q.ADD_SPLINE, value: e.data });
1888
1885
  break;
1889
1886
  case "addRenderer":
1890
- this.app.dispatchEvent({ type: Y.ADD_RENDERER, value: e.data });
1887
+ this.app.dispatchEvent({ type: q.ADD_RENDERER, value: e.data });
1891
1888
  }
1892
1889
  }
1893
1890
  // Renderer
@@ -2045,7 +2042,7 @@ function A_() {
2045
2042
  }
2046
2043
  return null;
2047
2044
  }
2048
- var q = Object.assign, Z = 0, we, ue, ge, ie, Ee, ze, at;
2045
+ var Y = Object.assign, Z = 0, we, ue, ge, ie, Ee, ze, at;
2049
2046
  function be() {
2050
2047
  }
2051
2048
  be.__reactDisabledLog = !0;
@@ -2081,25 +2078,25 @@ function A_() {
2081
2078
  writable: !0
2082
2079
  };
2083
2080
  Object.defineProperties(console, {
2084
- log: q({}, S, {
2081
+ log: Y({}, S, {
2085
2082
  value: we
2086
2083
  }),
2087
- info: q({}, S, {
2084
+ info: Y({}, S, {
2088
2085
  value: ue
2089
2086
  }),
2090
- warn: q({}, S, {
2087
+ warn: Y({}, S, {
2091
2088
  value: ge
2092
2089
  }),
2093
- error: q({}, S, {
2090
+ error: Y({}, S, {
2094
2091
  value: ie
2095
2092
  }),
2096
- group: q({}, S, {
2093
+ group: Y({}, S, {
2097
2094
  value: Ee
2098
2095
  }),
2099
- groupCollapsed: q({}, S, {
2096
+ groupCollapsed: Y({}, S, {
2100
2097
  value: ze
2101
2098
  }),
2102
- groupEnd: q({}, S, {
2099
+ groupEnd: Y({}, S, {
2103
2100
  value: at
2104
2101
  })
2105
2102
  });
@@ -2684,7 +2681,7 @@ function I_(a) {
2684
2681
  }
2685
2682
  function ol(a) {
2686
2683
  const [e, t] = Ne(a.open !== void 0 ? a.open : !0), s = !e || a.children === void 0, i = Ge(null), n = () => {
2687
- a.app.dispatchEvent({ type: Y.REMOVE_SCENE, value: a.scene });
2684
+ a.app.dispatchEvent({ type: q.REMOVE_SCENE, value: a.scene });
2688
2685
  };
2689
2686
  return /* @__PURE__ */ C.jsxs("div", { className: `accordion ${s ? "hide" : ""}`, children: [
2690
2687
  /* @__PURE__ */ C.jsxs(
@@ -2940,8 +2937,8 @@ function B_(a) {
2940
2937
  window.removeEventListener("mousemove", T), window.removeEventListener("mouseup", b), x(!1);
2941
2938
  }
2942
2939
  function T(N) {
2943
- const k = n.current.getBoundingClientRect(), H = rn(0, 99, N.clientX - k.left) / 99, W = 1 - rn(0, 99, N.clientY - k.top) / 99, $ = vs(Fa(m.min, m.max, H), 3), q = vs(Fa(m.min, m.max, W), 3);
2944
- a.onChange({ target: { value: { x: $, y: q } } }), d($), f(q);
2940
+ const k = n.current.getBoundingClientRect(), H = rn(0, 99, N.clientX - k.left) / 99, W = 1 - rn(0, 99, N.clientY - k.top) / 99, $ = vs(Fa(m.min, m.max, H), 3), Y = vs(Fa(m.min, m.max, W), 3);
2941
+ a.onChange({ target: { value: { x: $, y: Y } } }), d($), f(Y);
2945
2942
  }
2946
2943
  function E() {
2947
2944
  const N = Number(s.current.value);
@@ -4690,10 +4687,10 @@ class xe extends Va {
4690
4687
  static groupTitles = [];
4691
4688
  static app;
4692
4689
  constructor(e) {
4693
- super(e), this.state = { lastUpdate: Date.now() }, xe.app = e.app, xe.instance = this, xe.app.addEventListener(Y.ADD_GROUP, this.addGroup), xe.app.addEventListener(Y.REMOVE_GROUP, this.removeGroup);
4690
+ super(e), this.state = { lastUpdate: Date.now() }, xe.app = e.app, xe.instance = this, xe.app.addEventListener(q.ADD_GROUP, this.addGroup), xe.app.addEventListener(q.REMOVE_GROUP, this.removeGroup);
4694
4691
  }
4695
4692
  componentWillUnmount() {
4696
- xe.app.removeEventListener(Y.ADD_GROUP, this.addGroup), xe.app.removeEventListener(Y.REMOVE_GROUP, this.removeGroup);
4693
+ xe.app.removeEventListener(q.ADD_GROUP, this.addGroup), xe.app.removeEventListener(q.REMOVE_GROUP, this.removeGroup);
4697
4694
  }
4698
4695
  render() {
4699
4696
  return /* @__PURE__ */ C.jsx("div", { className: "customGroups", children: xe.groups }, this.state.lastUpdate);
@@ -7655,8 +7652,8 @@ class Be {
7655
7652
  * @return {Matrix4} A reference to this matrix.
7656
7653
  */
7657
7654
  multiplyMatrices(e, t) {
7658
- const s = e.elements, i = t.elements, n = this.elements, r = s[0], o = s[4], l = s[8], c = s[12], h = s[1], u = s[5], d = s[9], p = s[13], f = s[2], m = s[6], y = s[10], g = s[14], x = s[3], _ = s[7], b = s[11], T = s[15], E = i[0], v = i[4], A = i[8], N = i[12], k = i[1], H = i[5], W = i[9], $ = i[13], q = i[2], Z = i[6], we = i[10], ue = i[14], ge = i[3], ie = i[7], Ee = i[11], ze = i[15];
7659
- return n[0] = r * E + o * k + l * q + c * ge, n[4] = r * v + o * H + l * Z + c * ie, n[8] = r * A + o * W + l * we + c * Ee, n[12] = r * N + o * $ + l * ue + c * ze, n[1] = h * E + u * k + d * q + p * ge, n[5] = h * v + u * H + d * Z + p * ie, n[9] = h * A + u * W + d * we + p * Ee, n[13] = h * N + u * $ + d * ue + p * ze, n[2] = f * E + m * k + y * q + g * ge, n[6] = f * v + m * H + y * Z + g * ie, n[10] = f * A + m * W + y * we + g * Ee, n[14] = f * N + m * $ + y * ue + g * ze, n[3] = x * E + _ * k + b * q + T * ge, n[7] = x * v + _ * H + b * Z + T * ie, n[11] = x * A + _ * W + b * we + T * Ee, n[15] = x * N + _ * $ + b * ue + T * ze, this;
7655
+ const s = e.elements, i = t.elements, n = this.elements, r = s[0], o = s[4], l = s[8], c = s[12], h = s[1], u = s[5], d = s[9], p = s[13], f = s[2], m = s[6], y = s[10], g = s[14], x = s[3], _ = s[7], b = s[11], T = s[15], E = i[0], v = i[4], A = i[8], N = i[12], k = i[1], H = i[5], W = i[9], $ = i[13], Y = i[2], Z = i[6], we = i[10], ue = i[14], ge = i[3], ie = i[7], Ee = i[11], ze = i[15];
7656
+ return n[0] = r * E + o * k + l * Y + c * ge, n[4] = r * v + o * H + l * Z + c * ie, n[8] = r * A + o * W + l * we + c * Ee, n[12] = r * N + o * $ + l * ue + c * ze, n[1] = h * E + u * k + d * Y + p * ge, n[5] = h * v + u * H + d * Z + p * ie, n[9] = h * A + u * W + d * we + p * Ee, n[13] = h * N + u * $ + d * ue + p * ze, n[2] = f * E + m * k + y * Y + g * ge, n[6] = f * v + m * H + y * Z + g * ie, n[10] = f * A + m * W + y * we + g * Ee, n[14] = f * N + m * $ + y * ue + g * ze, n[3] = x * E + _ * k + b * Y + T * ge, n[7] = x * v + _ * H + b * Z + T * ie, n[11] = x * A + _ * W + b * we + T * Ee, n[15] = x * N + _ * $ + b * ue + T * ze, this;
7660
7657
  }
7661
7658
  /**
7662
7659
  * Multiplies every component of the matrix by the given scalar.
@@ -19925,7 +19922,7 @@ class yi extends En {
19925
19922
  }]);
19926
19923
  for (let A = 0, N = x.length; A < N; ++A) {
19927
19924
  const k = x[A], H = k.start, W = k.count;
19928
- for (let $ = H, q = H + W; $ < q; $ += 3)
19925
+ for (let $ = H, Y = H + W; $ < Y; $ += 3)
19929
19926
  g(
19930
19927
  e.getX($ + 0),
19931
19928
  e.getX($ + 1),
@@ -19942,7 +19939,7 @@ class yi extends En {
19942
19939
  }
19943
19940
  for (let A = 0, N = x.length; A < N; ++A) {
19944
19941
  const k = x[A], H = k.start, W = k.count;
19945
- for (let $ = H, q = H + W; $ < q; $ += 3)
19942
+ for (let $ = H, Y = H + W; $ < Y; $ += 3)
19946
19943
  v(e.getX($ + 0)), v(e.getX($ + 1)), v(e.getX($ + 2));
19947
19944
  }
19948
19945
  }
@@ -22631,14 +22628,14 @@ class qa extends yi {
22631
22628
  let d = 0, p = 0;
22632
22629
  f("z", "y", "x", -1, -1, s, t, e, r, n, 0), f("z", "y", "x", 1, -1, s, t, -e, r, n, 1), f("x", "z", "y", 1, 1, e, s, t, i, r, 2), f("x", "z", "y", 1, -1, e, s, -t, i, r, 3), f("x", "y", "z", 1, -1, e, t, s, i, n, 4), f("x", "y", "z", -1, -1, e, t, -s, i, n, 5), this.setIndex(l), this.setAttribute("position", new Ot(c, 3)), this.setAttribute("normal", new Ot(h, 3)), this.setAttribute("uv", new Ot(u, 2));
22633
22630
  function f(m, y, g, x, _, b, T, E, v, A, N) {
22634
- const k = b / v, H = T / A, W = b / 2, $ = T / 2, q = E / 2, Z = v + 1, we = A + 1;
22631
+ const k = b / v, H = T / A, W = b / 2, $ = T / 2, Y = E / 2, Z = v + 1, we = A + 1;
22635
22632
  let ue = 0, ge = 0;
22636
22633
  const ie = new R();
22637
22634
  for (let Ee = 0; Ee < we; Ee++) {
22638
22635
  const ze = Ee * H - $;
22639
22636
  for (let at = 0; at < Z; at++) {
22640
22637
  const be = at * k - W;
22641
- ie[m] = be * x, ie[y] = ze * _, ie[g] = q, c.push(ie.x, ie.y, ie.z), ie[m] = 0, ie[y] = 0, ie[g] = E > 0 ? 1 : -1, h.push(ie.x, ie.y, ie.z), u.push(at / v), u.push(1 - Ee / A), ue += 1;
22638
+ ie[m] = be * x, ie[y] = ze * _, ie[g] = Y, c.push(ie.x, ie.y, ie.z), ie[m] = 0, ie[y] = 0, ie[g] = E > 0 ? 1 : -1, h.push(ie.x, ie.y, ie.z), u.push(at / v), u.push(1 - Ee / A), ue += 1;
22642
22639
  }
22643
22640
  }
22644
22641
  for (let Ee = 0; Ee < A; Ee++)
@@ -27344,7 +27341,7 @@ class yd extends yi {
27344
27341
  for (let A = 0; A <= n; A++) {
27345
27342
  const N = [], k = A / n, H = k * (t - e) + e;
27346
27343
  for (let W = 0; W <= i; W++) {
27347
- const $ = W / i, q = $ * l + o, Z = Math.sin(q), we = Math.cos(q);
27344
+ const $ = W / i, Y = $ * l + o, Z = Math.sin(Y), we = Math.cos(Y);
27348
27345
  T.x = H * Z, T.y = -k * s + y, T.z = H * we, u.push(T.x, T.y, T.z), b.set(Z, v, we).normalize(), d.push(b.x, b.y, b.z), p.push($, 1 - k), N.push(f++);
27349
27346
  }
27350
27347
  m.push(N);
@@ -27364,12 +27361,12 @@ class yd extends yi {
27364
27361
  u.push(0, y * k, 0), d.push(0, k, 0), p.push(0.5, 0.5), f++;
27365
27362
  const H = f;
27366
27363
  for (let W = 0; W <= i; W++) {
27367
- const q = W / i * l + o, Z = Math.cos(q), we = Math.sin(q);
27364
+ const Y = W / i * l + o, Z = Math.cos(Y), we = Math.sin(Y);
27368
27365
  v.x = N * we, v.y = y * k, v.z = N * Z, u.push(v.x, v.y, v.z), d.push(0, k, 0), E.x = Z * 0.5 + 0.5, E.y = we * 0.5 * k + 0.5, p.push(E.x, E.y), f++;
27369
27366
  }
27370
27367
  for (let W = 0; W < i; W++) {
27371
- const $ = T + W, q = H + W;
27372
- b === !0 ? h.push(q, q + 1, $) : h.push(q + 1, q, $), A += 3;
27368
+ const $ = T + W, Y = H + W;
27369
+ b === !0 ? h.push(Y, Y + 1, $) : h.push(Y + 1, Y, $), A += 3;
27373
27370
  }
27374
27371
  c.addGroup(g, A, b === !0 ? 1 : 2), g += A;
27375
27372
  }
@@ -32098,15 +32095,15 @@ class DR {
32098
32095
  if (s !== null)
32099
32096
  f = s.max.x - s.min.x, m = s.max.y - s.min.y, y = s.isBox3 ? s.max.z - s.min.z : 1, g = s.min.x, x = s.min.y, _ = s.isBox3 ? s.min.z : 0;
32100
32097
  else {
32101
- const q = Math.pow(2, -n);
32102
- f = Math.floor(v.width * q), m = Math.floor(v.height * q), e.isDataArrayTexture || e.isArrayTexture ? y = v.depth : e.isData3DTexture ? y = Math.floor(v.depth * q) : y = 1, g = 0, x = 0, _ = 0;
32098
+ const Y = Math.pow(2, -n);
32099
+ f = Math.floor(v.width * Y), m = Math.floor(v.height * Y), e.isDataArrayTexture || e.isArrayTexture ? y = v.depth : e.isData3DTexture ? y = Math.floor(v.depth * Y) : y = 1, g = 0, x = 0, _ = 0;
32103
32100
  }
32104
32101
  i !== null ? (b = i.x, T = i.y, E = i.z) : (b = 0, T = 0, E = 0), o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL, t.flipY), o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL, t.premultiplyAlpha), o.pixelStorei(o.UNPACK_ALIGNMENT, t.unpackAlignment);
32105
32102
  const A = o.getParameter(o.UNPACK_ROW_LENGTH), N = o.getParameter(o.UNPACK_IMAGE_HEIGHT), k = o.getParameter(o.UNPACK_SKIP_PIXELS), H = o.getParameter(o.UNPACK_SKIP_ROWS), W = o.getParameter(o.UNPACK_SKIP_IMAGES);
32106
32103
  o.pixelStorei(o.UNPACK_ROW_LENGTH, v.width), o.pixelStorei(o.UNPACK_IMAGE_HEIGHT, v.height), o.pixelStorei(o.UNPACK_SKIP_PIXELS, g), o.pixelStorei(o.UNPACK_SKIP_ROWS, x), o.pixelStorei(o.UNPACK_SKIP_IMAGES, _);
32107
32104
  const $ = t.isDataArrayTexture || t.isData3DTexture || t.isArrayTexture;
32108
32105
  if (e.isRenderTargetTexture || e.isDepthTexture) {
32109
- const q = l.get(e), Z = l.get(t), we = l.get(q.renderTarget), ue = l.get(Z.renderTarget), ge = we.framebuffers[q.cacheKey], ie = ue.framebuffers[Z.cacheKey];
32106
+ const Y = l.get(e), Z = l.get(t), we = l.get(Y.renderTarget), ue = l.get(Z.renderTarget), ge = we.framebuffers[Y.cacheKey], ie = ue.framebuffers[Z.cacheKey];
32110
32107
  c.bindFramebuffer(o.READ_FRAMEBUFFER, ge), c.bindFramebuffer(o.DRAW_FRAMEBUFFER, ie);
32111
32108
  let Ee = o.COLOR_BUFFER_BIT;
32112
32109
  e.isDepthTexture && (Ee = o.DEPTH_BUFFER_BIT), o.blitFramebuffer(g, x, f, m, b, T, f, m, Ee, o.NEAREST), c.bindFramebuffer(o.READ_FRAMEBUFFER, null), c.bindFramebuffer(o.DRAW_FRAMEBUFFER, null);
@@ -32909,7 +32906,7 @@ class sm extends M0 {
32909
32906
  }
32910
32907
  v.indexesGPU = we;
32911
32908
  }
32912
- const k = this.get(N), H = this.renderer.getPixelRatio(), W = this._currentContext.renderTarget, $ = this._isRenderCameraDepthArray(this._currentContext), q = this._currentContext.activeCubeFace;
32909
+ const k = this.get(N), H = this.renderer.getPixelRatio(), W = this._currentContext.renderTarget, $ = this._isRenderCameraDepthArray(this._currentContext), Y = this._currentContext.activeCubeFace;
32913
32910
  if ($) {
32914
32911
  const Z = this.get(W.depthTexture);
32915
32912
  if (Z.clearedRenderId !== this.renderer._nodes.nodeFrame.renderId) {
@@ -32917,7 +32914,7 @@ class sm extends M0 {
32917
32914
  const { stencilBuffer: we } = W;
32918
32915
  for (let ue = 0, ge = A.length; ue < ge; ue++)
32919
32916
  this.renderer._activeCubeFace = ue, this._currentContext.activeCubeFace = ue, this._setFramebuffer(this._currentContext), this.clear(!1, !0, we, this._currentContext, !1);
32920
- this.renderer._activeCubeFace = q, this._currentContext.activeCubeFace = q;
32917
+ this.renderer._activeCubeFace = Y, this._currentContext.activeCubeFace = Y;
32921
32918
  }
32922
32919
  }
32923
32920
  for (let Z = 0, we = A.length; Z < we; Z++) {
@@ -32936,7 +32933,7 @@ class sm extends M0 {
32936
32933
  }
32937
32934
  c.bindBufferBase(l.UNIFORM_BUFFER, k.index, v.indexesGPU[Z]), E();
32938
32935
  }
32939
- this._currentContext.activeCubeFace = q, this.renderer._activeCubeFace = q;
32936
+ this._currentContext.activeCubeFace = Y, this.renderer._activeCubeFace = Y;
32940
32937
  }
32941
32938
  } else
32942
32939
  E();
@@ -36691,8 +36688,8 @@ class l1 {
36691
36688
  createRenderPipeline(e, t) {
36692
36689
  const { object: s, material: i, geometry: n, pipeline: r } = e, { vertexProgram: o, fragmentProgram: l } = r, c = this.backend, h = c.device, u = c.utils, d = c.get(r), p = [];
36693
36690
  for (const $ of e.getBindings()) {
36694
- const q = c.get($);
36695
- p.push(q.layout);
36691
+ const Y = c.get($);
36692
+ p.push(Y.layout);
36696
36693
  }
36697
36694
  const f = c.attributeUtils.createShaderVertexBuffers(e);
36698
36695
  let m;
@@ -36707,8 +36704,8 @@ class l1 {
36707
36704
  const g = this._getColorWriteMask(i), x = [];
36708
36705
  if (e.context.textures !== null) {
36709
36706
  const $ = e.context.textures;
36710
- for (let q = 0; q < $.length; q++) {
36711
- const Z = u.getTextureFormatGPU($[q]);
36707
+ for (let Y = 0; Y < $.length; Y++) {
36708
+ const Z = u.getTextureFormatGPU($[Y]);
36712
36709
  x.push({
36713
36710
  format: Z,
36714
36711
  blend: m,
@@ -36739,9 +36736,9 @@ class l1 {
36739
36736
  if ((H === !0 || W === !0) && (H === !0 && (k.format = v, k.depthWriteEnabled = i.depthWrite, k.depthCompare = E), W === !0 && (k.stencilFront = y, k.stencilBack = {}, k.stencilReadMask = i.stencilFuncMask, k.stencilWriteMask = i.stencilWriteMask), i.polygonOffset === !0 && (k.depthBias = i.polygonOffsetUnits, k.depthBiasSlopeScale = i.polygonOffsetFactor, k.depthBiasClamp = 0), N.depthStencil = k), t === null)
36740
36737
  d.pipeline = h.createRenderPipeline(N);
36741
36738
  else {
36742
- const $ = new Promise((q) => {
36739
+ const $ = new Promise((Y) => {
36743
36740
  h.createRenderPipelineAsync(N).then((Z) => {
36744
- d.pipeline = Z, q();
36741
+ d.pipeline = Z, Y();
36745
36742
  });
36746
36743
  });
36747
36744
  t.push($);
@@ -40379,8 +40376,8 @@ function ym(a, e, t, s, i = 1 / 0, n, r) {
40379
40376
  h = a.x - p, u = a.y - f, d = a.z - m;
40380
40377
  const E = (t.x + o * p) * n, v = (t.y + o * f) * n, A = (t.z + o * m) * n;
40381
40378
  t.x = (t.x - o * E) * c, t.y = (t.y - o * v) * c, t.z = (t.z - o * A) * c, r.x = h + (p + E) * c, r.y = u + (f + v) * c, r.z = d + (m + A) * c;
40382
- const N = y - a.x, k = g - a.y, H = x - a.z, W = r.x - y, $ = r.y - g, q = r.z - x;
40383
- return N * W + k * $ + H * q > 0 && (r.x = y, r.y = g, r.z = x, t.x = (r.x - y) / n, t.y = (r.y - g) / n, t.z = (r.z - x) / n), r;
40379
+ const N = y - a.x, k = g - a.y, H = x - a.z, W = r.x - y, $ = r.y - g, Y = r.z - x;
40380
+ return N * W + k * $ + H * Y > 0 && (r.x = y, r.y = g, r.z = x, t.x = (r.x - y) / n, t.y = (r.y - g) / n, t.z = (r.z - x) / n), r;
40384
40381
  }
40385
40382
  function yh(a, e) {
40386
40383
  e.set(0, 0), a.forEach((t) => {
@@ -42381,7 +42378,7 @@ class zN extends Tr {
42381
42378
  [new Ls(g, i.clone()), [0, 0, -1e3], [0, -Math.PI / 2, 0], [1e6, 1, 1], "helper"]
42382
42379
  ]
42383
42380
  };
42384
- function q(Z) {
42381
+ function Y(Z) {
42385
42382
  const we = new Tr();
42386
42383
  for (const ue in Z)
42387
42384
  for (let ge = Z[ue].length; ge--; ) {
@@ -42392,7 +42389,7 @@ class zN extends Tr {
42392
42389
  }
42393
42390
  return we;
42394
42391
  }
42395
- this.gizmo = {}, this.picker = {}, this.helper = {}, this.add(this.gizmo.translate = q(T)), this.add(this.gizmo.rotate = q(A)), this.add(this.gizmo.scale = q(H)), this.add(this.picker.translate = q(E)), this.add(this.picker.rotate = q(k)), this.add(this.picker.scale = q(W)), this.add(this.helper.translate = q(v)), this.add(this.helper.rotate = q(N)), this.add(this.helper.scale = q($)), this.picker.translate.visible = !1, this.picker.rotate.visible = !1, this.picker.scale.visible = !1;
42392
+ this.gizmo = {}, this.picker = {}, this.helper = {}, this.add(this.gizmo.translate = Y(T)), this.add(this.gizmo.rotate = Y(A)), this.add(this.gizmo.scale = Y(H)), this.add(this.picker.translate = Y(E)), this.add(this.picker.rotate = Y(k)), this.add(this.picker.scale = Y(W)), this.add(this.helper.translate = Y(v)), this.add(this.helper.rotate = Y(N)), this.add(this.helper.scale = Y($)), this.picker.translate.visible = !1, this.picker.rotate.visible = !1, this.picker.scale.visible = !1;
42396
42393
  }
42397
42394
  // updateMatrixWorld will update transformations and appearance of individual handles
42398
42395
  updateMatrixWorld(e) {
@@ -42469,7 +42466,7 @@ class xt extends xu {
42469
42466
  controls = /* @__PURE__ */ new Map();
42470
42467
  visibility = /* @__PURE__ */ new Map();
42471
42468
  setApp(e, t) {
42472
- this.app = e, this.three = t, this.app.addEventListener(Y.SET_SCENE, this.setScene);
42469
+ this.app = e, this.three = t, this.app.addEventListener(q.SET_SCENE, this.setScene);
42473
42470
  }
42474
42471
  clear() {
42475
42472
  for (const e of this.controls.values()) {
@@ -42869,7 +42866,7 @@ class HN extends Tr {
42869
42866
  app;
42870
42867
  splineDataText = "";
42871
42868
  constructor(e, t) {
42872
- super(), this.name = "Spline Editor", this._camera = e, this.app = t, this.app.addEventListener(Y.ADD_SPLINE, this.onAddSpline);
42869
+ super(), this.name = "Spline Editor", this._camera = e, this.app = t, this.app.addEventListener(q.ADD_SPLINE, this.onAddSpline);
42873
42870
  }
42874
42871
  initDebug() {
42875
42872
  this.group = xe.addEditorGroup({
@@ -42941,7 +42938,7 @@ class HN extends Tr {
42941
42938
  });
42942
42939
  }
42943
42940
  dispose() {
42944
- this.app.removeEventListener(Y.ADD_SPLINE, this.onAddSpline), xe.removeEditorGroup(this.name);
42941
+ this.app.removeEventListener(q.ADD_SPLINE, this.onAddSpline), xe.removeEditorGroup(this.name);
42945
42942
  }
42946
42943
  addSpline(e) {
42947
42944
  e.draggableScale = this.defaultScale, e.hideTransform(), this.group?.current !== null && e.initDebug(this.group.current), this.add(e), this.currentSpline = e;
@@ -43123,7 +43120,7 @@ class ht extends Va {
43123
43120
  "Debug"
43124
43121
  ];
43125
43122
  constructor(e) {
43126
- super(e), this.app = e.app, this.app.addEventListener(Y.ADD_RENDERER, this.setupRenderer), this.scene = new yu(), this.scene.name = this.scene.uuid = "", this.canvasRef = Ai(), this.containerRef = Ai(), this.tlWindow = Ai(), this.trWindow = Ai(), this.blWindow = Ai(), this.brWindow = Ai();
43123
+ super(e), this.app = e.app, this.app.addEventListener(q.ADD_RENDERER, this.setupRenderer), this.scene = new yu(), this.scene.name = this.scene.uuid = "", this.canvasRef = Ai(), this.containerRef = Ai(), this.tlWindow = Ai(), this.trWindow = Ai(), this.blWindow = Ai(), this.brWindow = Ai();
43127
43124
  const t = e.three.app.appID, s = localStorage, i = s.getItem(`${t}_mode`);
43128
43125
  this.state = {
43129
43126
  mode: i !== null ? i : "Single",
@@ -43428,13 +43425,10 @@ class ht extends Va {
43428
43425
  });
43429
43426
  }
43430
43427
  clear() {
43431
- this.app.dispatchEvent({ type: Y.CLEAR_OBJECT }), xe.removeAllGroups(), this.clearLightHelpers(), this.clearControls(), this.currentTransform !== void 0 && (this.currentTransform.removeEventListener("objectChange", this.onUpdateTransform), xt.instance.remove(this.currentTransform.getHelper().name)), this.currentTransform = void 0, xt.instance.clear(), this.cameras.forEach((e) => {
43432
- if (this.editorCameras.indexOf(e.name) < 0) {
43433
- const s = this.cameraHelpers.get(e.uuid);
43434
- s && (s.parent?.remove(s), this.helpersContainer.remove(s), s.dispose()), this.cameraHelpers.delete(e.uuid);
43435
- }
43428
+ this.app.dispatchEvent({ type: q.CLEAR_OBJECT }), xe.removeAllGroups(), this.clearLightHelpers(), this.clearControls(), this.currentTransform !== void 0 && (this.currentTransform.removeEventListener("objectChange", this.onUpdateTransform), xt.instance.remove(this.currentTransform.getHelper().name)), this.currentTransform = void 0, xt.instance.clear(), this.cameras.forEach((e) => {
43429
+ this.editorCameras.indexOf(e.name) < 0 && this.app.dispatchEvent({ type: q.REMOVE_CAMERA, value: e });
43436
43430
  }), this.currentCamera = this.debugCamera, this.currentScene = void 0, this.scenes.forEach((e) => {
43437
- this.app.dispatchEvent({ type: Y.REMOVE_SCENE, value: e });
43431
+ this.app.dispatchEvent({ type: q.REMOVE_SCENE, value: e });
43438
43432
  }), this.scenes.clear();
43439
43433
  }
43440
43434
  // Playback
@@ -43463,11 +43457,11 @@ class ht extends Va {
43463
43457
  // Events
43464
43458
  enable() {
43465
43459
  const e = this.containerRef.current;
43466
- e.addEventListener("mousemove", this.onMouseMove), e.addEventListener("click", this.onClick), window.addEventListener("keydown", this.onKey), window.addEventListener("resize", this.resize), this.app.addEventListener(Y.ADD_SCENE, this.addScene), this.app.addEventListener(Y.SET_SCENE, this.sceneUpdate), this.app.addEventListener(Y.REMOVE_SCENE, this.removeScene), this.app.addEventListener(Y.ADD_CAMERA, this.addCamera), this.app.addEventListener(Y.REMOVE_CAMERA, this.removeCamera), this.app.addEventListener(Y.SET_OBJECT, this.onSetSelectedItem), this.app.addEventListener(Y.REMOTE_CONNECTED, this.onRemoteConnected), this.app.addEventListener(Y.REMOTE_DISCONNECTED, this.onRemoteDisconnected);
43460
+ e.addEventListener("mousemove", this.onMouseMove), e.addEventListener("click", this.onClick), window.addEventListener("keydown", this.onKey), window.addEventListener("resize", this.resize), this.app.addEventListener(q.ADD_SCENE, this.addScene), this.app.addEventListener(q.SET_SCENE, this.sceneUpdate), this.app.addEventListener(q.REMOVE_SCENE, this.removeScene), this.app.addEventListener(q.ADD_CAMERA, this.addCamera), this.app.addEventListener(q.REMOVE_CAMERA, this.removeCamera), this.app.addEventListener(q.SET_OBJECT, this.onSetSelectedItem), this.app.addEventListener(q.REMOTE_CONNECTED, this.onRemoteConnected), this.app.addEventListener(q.REMOTE_DISCONNECTED, this.onRemoteDisconnected);
43467
43461
  }
43468
43462
  disable() {
43469
43463
  const e = this.containerRef.current;
43470
- e.removeEventListener("mousemove", this.onMouseMove), e.removeEventListener("click", this.onClick), window.removeEventListener("keydown", this.onKey), window.removeEventListener("resize", this.resize), this.app.removeEventListener(Y.ADD_SCENE, this.addScene), this.app.removeEventListener(Y.SET_SCENE, this.sceneUpdate), this.app.removeEventListener(Y.ADD_CAMERA, this.addCamera), this.app.removeEventListener(Y.REMOVE_CAMERA, this.removeCamera), this.app.removeEventListener(Y.SET_OBJECT, this.onSetSelectedItem), this.app.removeEventListener(Y.REMOTE_CONNECTED, this.onRemoteConnected), this.app.removeEventListener(Y.REMOTE_DISCONNECTED, this.onRemoteDisconnected);
43464
+ e.removeEventListener("mousemove", this.onMouseMove), e.removeEventListener("click", this.onClick), window.removeEventListener("keydown", this.onKey), window.removeEventListener("resize", this.resize), this.app.removeEventListener(q.ADD_SCENE, this.addScene), this.app.removeEventListener(q.SET_SCENE, this.sceneUpdate), this.app.removeEventListener(q.ADD_CAMERA, this.addCamera), this.app.removeEventListener(q.REMOVE_CAMERA, this.removeCamera), this.app.removeEventListener(q.SET_OBJECT, this.onSetSelectedItem), this.app.removeEventListener(q.REMOTE_CONNECTED, this.onRemoteConnected), this.app.removeEventListener(q.REMOTE_DISCONNECTED, this.onRemoteDisconnected);
43471
43465
  }
43472
43466
  resize = () => {
43473
43467
  this.width = window.innerWidth - 300, this.height = window.innerHeight, this.renderer?.setSize(this.width, this.height);
@@ -44069,8 +44063,8 @@ function XN(a) {
44069
44063
  function o() {
44070
44064
  t(Rh);
44071
44065
  }
44072
- return a.app.addEventListener(Y.CLEAR_OBJECT, o), a.app.addEventListener(Y.SET_SCENE, o), a.app.addEventListener(Y.SET_OBJECT, r), () => {
44073
- a.app.removeEventListener(Y.CLEAR_OBJECT, o), a.app.removeEventListener(Y.SET_SCENE, o), a.app.removeEventListener(Y.SET_OBJECT, r);
44066
+ return a.app.addEventListener(q.CLEAR_OBJECT, o), a.app.addEventListener(q.SET_SCENE, o), a.app.addEventListener(q.SET_OBJECT, r), () => {
44067
+ a.app.removeEventListener(q.CLEAR_OBJECT, o), a.app.removeEventListener(q.SET_SCENE, o), a.app.removeEventListener(q.SET_OBJECT, r);
44074
44068
  };
44075
44069
  }, []);
44076
44070
  const s = e.type.toLowerCase(), i = e.animations.length > 0 || e.mixer !== void 0, n = s.search("mesh") > -1 || s.search("line") > -1 || s.search("points") > -1;
@@ -44151,10 +44145,10 @@ class ZN extends Va {
44151
44145
  const i = ht.instance.renderer;
44152
44146
  i && (this.autoClear = i.autoClear, this.autoClearColor = i.autoClearColor, this.autoClearDepth = i.autoClearDepth, this.autoClearStencil = i.autoClearStencil, this.clearAlpha = i.getClearAlpha(), this.toneMapping = i.toneMapping, this.toneMappingExposure = i.toneMappingExposure, i instanceof da && (this.localClippingEnabled = i.localClippingEnabled, i.getClearColor(this.clearColor)));
44153
44147
  }
44154
- this.app.addEventListener(Y.ADD_RENDERER, this.onAddRenderer);
44148
+ this.app.addEventListener(q.ADD_RENDERER, this.onAddRenderer);
44155
44149
  }
44156
44150
  componentwillunmount() {
44157
- this.app.removeEventListener(Y.ADD_RENDERER, this.onAddRenderer);
44151
+ this.app.removeEventListener(q.ADD_RENDERER, this.onAddRenderer);
44158
44152
  }
44159
44153
  onAddRenderer = (e) => {
44160
44154
  const t = e.value;
@@ -44400,8 +44394,8 @@ function KN(a) {
44400
44394
  return;
44401
44395
  }
44402
44396
  };
44403
- return wn(() => (a.app.addEventListener(Y.ADD_SCENE, n), a.app.addEventListener(Y.REFRESH_SCENE, r), a.app.addEventListener(Y.REMOVE_SCENE, o), () => {
44404
- a.app.removeEventListener(Y.ADD_SCENE, n), a.app.removeEventListener(Y.REFRESH_SCENE, r), a.app.removeEventListener(Y.REMOVE_SCENE, o);
44397
+ return wn(() => (a.app.addEventListener(q.ADD_SCENE, n), a.app.addEventListener(q.REFRESH_SCENE, r), a.app.addEventListener(q.REMOVE_SCENE, o), () => {
44398
+ a.app.removeEventListener(q.ADD_SCENE, n), a.app.removeEventListener(q.REFRESH_SCENE, r), a.app.removeEventListener(q.REMOVE_SCENE, o);
44405
44399
  }), []), /* @__PURE__ */ C.jsxs("div", { id: "SidePanel", children: [
44406
44400
  /* @__PURE__ */ C.jsx("div", { className: "scenes", children: t }, s),
44407
44401
  /* @__PURE__ */ C.jsx(XN, { app: a.app, three: a.three }),
@@ -44478,8 +44472,8 @@ function EP(a) {
44478
44472
  console.log("Error requesting method:"), console.log(f), console.log(l), console.log(h);
44479
44473
  }
44480
44474
  };
44481
- return a.app.addEventListener(Y.GET_OBJECT, t), a.app.addEventListener(Y.UPDATE_OBJECT, i), a.app.addEventListener(Y.CREATE_TEXTURE, n), a.app.addEventListener(Y.REQUEST_METHOD, r), () => {
44482
- a.app.removeEventListener(Y.GET_OBJECT, t), a.app.removeEventListener(Y.UPDATE_OBJECT, i), a.app.removeEventListener(Y.CREATE_TEXTURE, n), a.app.removeEventListener(Y.REQUEST_METHOD, r);
44475
+ return a.app.addEventListener(q.GET_OBJECT, t), a.app.addEventListener(q.UPDATE_OBJECT, i), a.app.addEventListener(q.CREATE_TEXTURE, n), a.app.addEventListener(q.REQUEST_METHOD, r), () => {
44476
+ a.app.removeEventListener(q.GET_OBJECT, t), a.app.removeEventListener(q.UPDATE_OBJECT, i), a.app.removeEventListener(q.CREATE_TEXTURE, n), a.app.removeEventListener(q.REQUEST_METHOD, r);
44483
44477
  };
44484
44478
  }, []), null;
44485
44479
  }
@@ -44534,7 +44528,7 @@ export {
44534
44528
  Ah as Spline,
44535
44529
  HN as SplineEditor,
44536
44530
  CP as ThreeEditor,
44537
- Y as ToolEvents,
44531
+ q as ToolEvents,
44538
44532
  xt as Transform,
44539
44533
  dP as WebworkerEventHandlers,
44540
44534
  al as capitalize,
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "module": "./dist/hermes.esm.js",
8
8
  "types": "./types/index.d.ts",
9
9
  "type": "module",
10
- "version": "0.0.170",
10
+ "version": "0.0.172",
11
11
  "homepage": "https://github.com/tomorrowevening/hermes#readme",
12
12
  "bugs": {
13
13
  "url": "https://github.com/tomorrowevening/hermes/issues"