ironflock 1.2.9 → 1.3.3

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/index.mjs CHANGED
@@ -1,156 +1,156 @@
1
- import x from "autobahn";
2
- function D(d) {
1
+ import T from "autobahn";
2
+ function U(d) {
3
3
  return d && d.__esModule && Object.prototype.hasOwnProperty.call(d, "default") ? d.default : d;
4
4
  }
5
5
  var S = { exports: {} }, O;
6
- function j() {
6
+ function F() {
7
7
  return O || (O = 1, (function(d) {
8
- var r = Object.prototype.hasOwnProperty, s = "~";
8
+ var s = Object.prototype.hasOwnProperty, t = "~";
9
9
  function o() {
10
10
  }
11
- Object.create && (o.prototype = /* @__PURE__ */ Object.create(null), new o().__proto__ || (s = !1));
12
- function c(i, e, n) {
13
- this.fn = i, this.context = e, this.once = n || !1;
11
+ Object.create && (o.prototype = /* @__PURE__ */ Object.create(null), new o().__proto__ || (t = !1));
12
+ function l(a, r, n) {
13
+ this.fn = a, this.context = r, this.once = n || !1;
14
14
  }
15
- function a(i, e, n, l, h) {
15
+ function i(a, r, n, u, h) {
16
16
  if (typeof n != "function")
17
17
  throw new TypeError("The listener must be a function");
18
- var v = new c(n, l || i, h), g = s ? s + e : e;
19
- return i._events[g] ? i._events[g].fn ? i._events[g] = [i._events[g], v] : i._events[g].push(v) : (i._events[g] = v, i._eventsCount++), i;
18
+ var v = new l(n, u || a, h), y = t ? t + r : r;
19
+ return a._events[y] ? a._events[y].fn ? a._events[y] = [a._events[y], v] : a._events[y].push(v) : (a._events[y] = v, a._eventsCount++), a;
20
20
  }
21
- function u(i, e) {
22
- --i._eventsCount === 0 ? i._events = new o() : delete i._events[e];
21
+ function c(a, r) {
22
+ --a._eventsCount === 0 ? a._events = new o() : delete a._events[r];
23
23
  }
24
- function t() {
24
+ function e() {
25
25
  this._events = new o(), this._eventsCount = 0;
26
26
  }
27
- t.prototype.eventNames = function() {
28
- var e = [], n, l;
29
- if (this._eventsCount === 0) return e;
30
- for (l in n = this._events)
31
- r.call(n, l) && e.push(s ? l.slice(1) : l);
32
- return Object.getOwnPropertySymbols ? e.concat(Object.getOwnPropertySymbols(n)) : e;
33
- }, t.prototype.listeners = function(e) {
34
- var n = s ? s + e : e, l = this._events[n];
35
- if (!l) return [];
36
- if (l.fn) return [l.fn];
37
- for (var h = 0, v = l.length, g = new Array(v); h < v; h++)
38
- g[h] = l[h].fn;
39
- return g;
40
- }, t.prototype.listenerCount = function(e) {
41
- var n = s ? s + e : e, l = this._events[n];
42
- return l ? l.fn ? 1 : l.length : 0;
43
- }, t.prototype.emit = function(e, n, l, h, v, g) {
44
- var w = s ? s + e : e;
27
+ e.prototype.eventNames = function() {
28
+ var r = [], n, u;
29
+ if (this._eventsCount === 0) return r;
30
+ for (u in n = this._events)
31
+ s.call(n, u) && r.push(t ? u.slice(1) : u);
32
+ return Object.getOwnPropertySymbols ? r.concat(Object.getOwnPropertySymbols(n)) : r;
33
+ }, e.prototype.listeners = function(r) {
34
+ var n = t ? t + r : r, u = this._events[n];
35
+ if (!u) return [];
36
+ if (u.fn) return [u.fn];
37
+ for (var h = 0, v = u.length, y = new Array(v); h < v; h++)
38
+ y[h] = u[h].fn;
39
+ return y;
40
+ }, e.prototype.listenerCount = function(r) {
41
+ var n = t ? t + r : r, u = this._events[n];
42
+ return u ? u.fn ? 1 : u.length : 0;
43
+ }, e.prototype.emit = function(r, n, u, h, v, y) {
44
+ var w = t ? t + r : r;
45
45
  if (!this._events[w]) return !1;
46
- var f = this._events[w], b = arguments.length, _, y;
46
+ var f = this._events[w], b = arguments.length, A, g;
47
47
  if (f.fn) {
48
- switch (f.once && this.removeListener(e, f.fn, void 0, !0), b) {
48
+ switch (f.once && this.removeListener(r, f.fn, void 0, !0), b) {
49
49
  case 1:
50
50
  return f.fn.call(f.context), !0;
51
51
  case 2:
52
52
  return f.fn.call(f.context, n), !0;
53
53
  case 3:
54
- return f.fn.call(f.context, n, l), !0;
54
+ return f.fn.call(f.context, n, u), !0;
55
55
  case 4:
56
- return f.fn.call(f.context, n, l, h), !0;
56
+ return f.fn.call(f.context, n, u, h), !0;
57
57
  case 5:
58
- return f.fn.call(f.context, n, l, h, v), !0;
58
+ return f.fn.call(f.context, n, u, h, v), !0;
59
59
  case 6:
60
- return f.fn.call(f.context, n, l, h, v, g), !0;
60
+ return f.fn.call(f.context, n, u, h, v, y), !0;
61
61
  }
62
- for (y = 1, _ = new Array(b - 1); y < b; y++)
63
- _[y - 1] = arguments[y];
64
- f.fn.apply(f.context, _);
62
+ for (g = 1, A = new Array(b - 1); g < b; g++)
63
+ A[g - 1] = arguments[g];
64
+ f.fn.apply(f.context, A);
65
65
  } else {
66
- var P = f.length, A;
67
- for (y = 0; y < P; y++)
68
- switch (f[y].once && this.removeListener(e, f[y].fn, void 0, !0), b) {
66
+ var D = f.length, R;
67
+ for (g = 0; g < D; g++)
68
+ switch (f[g].once && this.removeListener(r, f[g].fn, void 0, !0), b) {
69
69
  case 1:
70
- f[y].fn.call(f[y].context);
70
+ f[g].fn.call(f[g].context);
71
71
  break;
72
72
  case 2:
73
- f[y].fn.call(f[y].context, n);
73
+ f[g].fn.call(f[g].context, n);
74
74
  break;
75
75
  case 3:
76
- f[y].fn.call(f[y].context, n, l);
76
+ f[g].fn.call(f[g].context, n, u);
77
77
  break;
78
78
  case 4:
79
- f[y].fn.call(f[y].context, n, l, h);
79
+ f[g].fn.call(f[g].context, n, u, h);
80
80
  break;
81
81
  default:
82
- if (!_) for (A = 1, _ = new Array(b - 1); A < b; A++)
83
- _[A - 1] = arguments[A];
84
- f[y].fn.apply(f[y].context, _);
82
+ if (!A) for (R = 1, A = new Array(b - 1); R < b; R++)
83
+ A[R - 1] = arguments[R];
84
+ f[g].fn.apply(f[g].context, A);
85
85
  }
86
86
  }
87
87
  return !0;
88
- }, t.prototype.on = function(e, n, l) {
89
- return a(this, e, n, l, !1);
90
- }, t.prototype.once = function(e, n, l) {
91
- return a(this, e, n, l, !0);
92
- }, t.prototype.removeListener = function(e, n, l, h) {
93
- var v = s ? s + e : e;
88
+ }, e.prototype.on = function(r, n, u) {
89
+ return i(this, r, n, u, !1);
90
+ }, e.prototype.once = function(r, n, u) {
91
+ return i(this, r, n, u, !0);
92
+ }, e.prototype.removeListener = function(r, n, u, h) {
93
+ var v = t ? t + r : r;
94
94
  if (!this._events[v]) return this;
95
95
  if (!n)
96
- return u(this, v), this;
97
- var g = this._events[v];
98
- if (g.fn)
99
- g.fn === n && (!h || g.once) && (!l || g.context === l) && u(this, v);
96
+ return c(this, v), this;
97
+ var y = this._events[v];
98
+ if (y.fn)
99
+ y.fn === n && (!h || y.once) && (!u || y.context === u) && c(this, v);
100
100
  else {
101
- for (var w = 0, f = [], b = g.length; w < b; w++)
102
- (g[w].fn !== n || h && !g[w].once || l && g[w].context !== l) && f.push(g[w]);
103
- f.length ? this._events[v] = f.length === 1 ? f[0] : f : u(this, v);
101
+ for (var w = 0, f = [], b = y.length; w < b; w++)
102
+ (y[w].fn !== n || h && !y[w].once || u && y[w].context !== u) && f.push(y[w]);
103
+ f.length ? this._events[v] = f.length === 1 ? f[0] : f : c(this, v);
104
104
  }
105
105
  return this;
106
- }, t.prototype.removeAllListeners = function(e) {
106
+ }, e.prototype.removeAllListeners = function(r) {
107
107
  var n;
108
- return e ? (n = s ? s + e : e, this._events[n] && u(this, n)) : (this._events = new o(), this._eventsCount = 0), this;
109
- }, t.prototype.off = t.prototype.removeListener, t.prototype.addListener = t.prototype.on, t.prefixed = s, t.EventEmitter = t, d.exports = t;
108
+ return r ? (n = t ? t + r : r, this._events[n] && c(this, n)) : (this._events = new o(), this._eventsCount = 0), this;
109
+ }, e.prototype.off = e.prototype.removeListener, e.prototype.addListener = e.prototype.on, e.prefixed = t, e.EventEmitter = e, d.exports = e;
110
110
  })(S)), S.exports;
111
111
  }
112
- var U = j();
113
- const F = /* @__PURE__ */ D(U), W = "wss://cbw.datapods.io/ws-ua-usr", T = "wss://cbw.ironflock.com/ws-ua-usr", V = "wss://cbw.ironflock.dev/ws-ua-usr", Y = "wss://cbw.record-evolution.com/ws-ua-usr", $ = "ws://localhost:8080/ws-ua-usr", N = {
114
- "https://studio.datapods.io": W,
115
- "https://studio.ironflock.dev": V,
116
- "https://studio.ironflock.com": T,
117
- "https://studio.record-evolution.com": Y,
112
+ var W = F();
113
+ const V = /* @__PURE__ */ U(W), Y = "wss://cbw.datapods.io/ws-ua-usr", P = "wss://cbw.ironflock.com/ws-ua-usr", B = "wss://cbw.ironflock.dev/ws-ua-usr", Q = "wss://cbw.record-evolution.com/ws-ua-usr", $ = "ws://localhost:8080/ws-ua-usr", N = {
114
+ "https://studio.datapods.io": Y,
115
+ "https://studio.ironflock.dev": B,
116
+ "https://studio.ironflock.com": P,
117
+ "https://studio.record-evolution.com": Q,
118
118
  "http://localhost:8085": $,
119
119
  "http://localhost:8086": $,
120
120
  "http://host.docker.internal:8086": $
121
- }, Q = 6e3;
122
- class I extends F {
121
+ }, J = 6e3;
122
+ class I extends V {
123
123
  constructor() {
124
124
  super(), this.subscriptions = [], this.registrations = [], this.firstResolver = () => {
125
125
  }, this.firstRejecter = () => {
126
126
  }, this.shouldReconnect = !1, this.isReconnecting = !1, this.hasOpenedOnce = !1;
127
127
  }
128
- static getWebSocketURI(r) {
129
- var c;
130
- const s = typeof process < "u" ? (c = process.env) == null ? void 0 : c.DEVICE_ENDPOINT_URL : void 0;
131
- if (s)
128
+ static getWebSocketURI(s) {
129
+ var l;
130
+ const t = typeof process < "u" ? (l = process.env) == null ? void 0 : l.DEVICE_ENDPOINT_URL : void 0;
131
+ if (t)
132
132
  try {
133
- const a = new URL(s);
134
- return a.pathname = "/ws-ua-usr", a.toString().replace(/\/$/, "");
133
+ const i = new URL(t);
134
+ return i.pathname = "/ws-ua-usr", i.toString().replace(/\/$/, "");
135
135
  } catch {
136
136
  }
137
- if (!r) return T;
138
- const o = N[r];
137
+ if (!s) return P;
138
+ const o = N[s];
139
139
  if (o === void 0)
140
140
  throw new Error(
141
- `Cannot resolve WebSocket URI for reswarmUrl=${JSON.stringify(r)}. Set DEVICE_ENDPOINT_URL to the deployment's WAMP router URL (e.g. ws://<host>:18080/ws-re-dev) or pass ironFlockUrl=… to IronFlock(). Known cloud URLs: ${JSON.stringify(Object.keys(N))}`
141
+ `Cannot resolve WebSocket URI for reswarmUrl=${JSON.stringify(s)}. Set DEVICE_ENDPOINT_URL to the deployment's WAMP router URL (e.g. ws://<host>:18080/ws-re-dev) or pass ironFlockUrl=… to IronFlock(). Known cloud URLs: ${JSON.stringify(Object.keys(N))}`
142
142
  );
143
143
  return o;
144
144
  }
145
- configure(r, s, o, c, a) {
146
- this.realm = `realm-${r}-${s}-${o}`, this.serial_number = c, this.socketURI = a ?? I.getWebSocketURI();
145
+ configure(s, t, o, l, i) {
146
+ this.realm = `realm-${s}-${t}-${o}`, this.serial_number = l, this.socketURI = i ?? I.getWebSocketURI();
147
147
  }
148
148
  async start() {
149
149
  if (!this.realm || !this.serial_number || !this.socketURI)
150
150
  throw new Error("CrossbarConnection must be configured before starting. Call configure() first.");
151
- return this.shouldReconnect = !0, this.firstConnection = new Promise((r, s) => {
152
- this.firstResolver = r, this.firstRejecter = s;
153
- }), this.connection = new x.Connection({
151
+ return this.shouldReconnect = !0, this.firstConnection = new Promise((s, t) => {
152
+ this.firstResolver = s, this.firstRejecter = t;
153
+ }), this.connection = new T.Connection({
154
154
  realm: this.realm,
155
155
  url: this.socketURI,
156
156
  authmethods: ["wampcra"],
@@ -161,47 +161,47 @@ class I extends F {
161
161
  // @ts-ignore
162
162
  autoping_interval: 2,
163
163
  autoping_timeout: 4,
164
- onchallenge: (r, s, o) => x.auth_cra.sign(this.serial_number, o.challenge)
164
+ onchallenge: (s, t, o) => T.auth_cra.sign(this.serial_number, o.challenge)
165
165
  }), this.connection.onopen = this.onOpen.bind(this), this.connection.onclose = this.onClose.bind(this), this.connection.open(), this.firstConnection;
166
166
  }
167
- onOpen(r) {
168
- this.session = r, this.session.caller_disclose_me = !0, this.hasOpenedOnce = !0, this.resubscribeAll(), this.reregisterAll(), this.emit("connected", this.serial_number), this.firstResolver(), this.firstResolver = () => {
167
+ onOpen(s) {
168
+ this.session = s, this.session.caller_disclose_me = !0, this.hasOpenedOnce = !0, this.resubscribeAll(), this.reregisterAll(), this.emit("connected", this.serial_number), this.firstResolver(), this.firstResolver = () => {
169
169
  };
170
170
  }
171
- onClose(r, s) {
171
+ onClose(s, t) {
172
172
  return this.session = void 0, this.emit("disconnected"), this.firstRejecter(
173
173
  new Error(
174
- `Connection failed: ${r} - ${JSON.stringify(s, null, 2)}`
174
+ `Connection failed: ${s} - ${JSON.stringify(t, null, 2)}`
175
175
  )
176
176
  ), this.firstRejecter = () => {
177
177
  }, console.warn("Connection closed:", {
178
- reason: r,
179
- details: s,
178
+ reason: s,
179
+ details: t,
180
180
  realm: this.realm,
181
181
  url: this.socketURI,
182
182
  authid: this.serial_number
183
- }), this.shouldReconnect && this.hasOpenedOnce && (s == null ? void 0 : s.will_retry) === !1 && this.handleManualReconnect((s == null ? void 0 : s.reason) ?? r), !1;
183
+ }), this.shouldReconnect && this.hasOpenedOnce && (t == null ? void 0 : t.will_retry) === !1 && this.handleManualReconnect((t == null ? void 0 : t.reason) ?? s), !1;
184
184
  }
185
- async handleManualReconnect(r) {
185
+ async handleManualReconnect(s) {
186
186
  if (!(this.isReconnecting || !this.shouldReconnect)) {
187
187
  for (this.isReconnecting = !0; this.shouldReconnect && !this.session; )
188
- if (await new Promise((s) => setTimeout(s, 1e3)), this.shouldReconnect && this.connection && !this.session) {
189
- console.log(`Manually retrying connection after ${r}...`);
188
+ if (await new Promise((t) => setTimeout(t, 1e3)), this.shouldReconnect && this.connection && !this.session) {
189
+ console.log(`Manually retrying connection after ${s}...`);
190
190
  try {
191
- this.connection.open(), await new Promise((s) => setTimeout(s, 500));
192
- } catch (s) {
193
- console.error("Error during manual reconnection attempt:", s);
191
+ this.connection.open(), await new Promise((t) => setTimeout(t, 500));
192
+ } catch (t) {
193
+ console.error("Error during manual reconnection attempt:", t);
194
194
  }
195
195
  }
196
196
  this.isReconnecting = !1;
197
197
  }
198
198
  }
199
199
  async sessionWait() {
200
- const r = Date.now();
200
+ const s = Date.now();
201
201
  for (; !this.session; ) {
202
- if (Date.now() - r > Q)
202
+ if (Date.now() - s > J)
203
203
  throw new Error("Timeout waiting for session");
204
- await new Promise((s) => setTimeout(s, 200));
204
+ await new Promise((t) => setTimeout(t, 200));
205
205
  }
206
206
  }
207
207
  async waitForConnection() {
@@ -211,91 +211,91 @@ class I extends F {
211
211
  return this.session;
212
212
  }
213
213
  get is_open() {
214
- var r;
215
- return !!((r = this.session) != null && r.isOpen);
214
+ var s;
215
+ return !!((s = this.session) != null && s.isOpen);
216
216
  }
217
217
  isConnected() {
218
218
  return this.is_open;
219
219
  }
220
220
  stop() {
221
- var r;
222
- this.shouldReconnect = !1, (r = this.connection) == null || r.close("wamp.close.normal", "Connection closed by client");
221
+ var s;
222
+ this.shouldReconnect = !1, (s = this.connection) == null || s.close("wamp.close.normal", "Connection closed by client");
223
223
  }
224
- async subscribe(r, s) {
225
- var c;
224
+ async subscribe(s, t) {
225
+ var l;
226
226
  await this.sessionWait();
227
- const o = await ((c = this.session) == null ? void 0 : c.subscribe(r, s));
227
+ const o = await ((l = this.session) == null ? void 0 : l.subscribe(s, t));
228
228
  return o && this.subscriptions.push(o), o;
229
229
  }
230
- async unsubscribe(r) {
230
+ async unsubscribe(s) {
231
231
  var o;
232
232
  await this.sessionWait();
233
- const s = this.subscriptions.indexOf(r);
234
- s !== -1 && (this.subscriptions.splice(s, 1), await ((o = this.session) == null ? void 0 : o.unsubscribe(r)));
233
+ const t = this.subscriptions.indexOf(s);
234
+ t !== -1 && (this.subscriptions.splice(t, 1), await ((o = this.session) == null ? void 0 : o.unsubscribe(s)));
235
235
  }
236
- async unsubscribeTopic(r) {
237
- const s = this.subscriptions.filter((o) => o.topic === r);
238
- for (const o of s)
236
+ async unsubscribeTopic(s) {
237
+ const t = this.subscriptions.filter((o) => o.topic === s);
238
+ for (const o of t)
239
239
  await this.unsubscribe(o);
240
240
  }
241
241
  async resubscribeAll() {
242
- const r = [...this.subscriptions];
242
+ const s = [...this.subscriptions];
243
243
  this.subscriptions = [], await Promise.all(
244
- r.map((s) => this.subscribe(s.topic, s.handler))
244
+ s.map((t) => this.subscribe(t.topic, t.handler))
245
245
  );
246
246
  }
247
247
  async reregisterAll() {
248
- const r = [...this.registrations];
248
+ const s = [...this.registrations];
249
249
  this.registrations = [], await Promise.all(
250
- r.map((s) => this.register(s.procedure, s.endpoint, s.options))
250
+ s.map((t) => this.register(t.procedure, t.endpoint, t.options))
251
251
  );
252
252
  }
253
- async register(r, s, o) {
254
- var u;
253
+ async register(s, t, o) {
254
+ var c;
255
255
  await this.sessionWait();
256
- const c = { force_reregister: !0, ...o ?? {} }, a = await ((u = this.session) == null ? void 0 : u.register(r, s, c));
257
- return a && this.registrations.push(a), a;
256
+ const l = { force_reregister: !0, ...o ?? {} }, i = await ((c = this.session) == null ? void 0 : c.register(s, t, l));
257
+ return i && this.registrations.push(i), i;
258
258
  }
259
- async unregister(r) {
259
+ async unregister(s) {
260
260
  var o;
261
- await this.sessionWait(), await ((o = this.session) == null ? void 0 : o.unregister(r));
262
- const s = this.registrations.indexOf(r);
263
- s !== -1 && this.registrations.splice(s, 1);
261
+ await this.sessionWait(), await ((o = this.session) == null ? void 0 : o.unregister(s));
262
+ const t = this.registrations.indexOf(s);
263
+ t !== -1 && this.registrations.splice(t, 1);
264
264
  }
265
- async call(r, s, o, c) {
266
- var a;
267
- return await this.sessionWait(), (a = this.session) == null ? void 0 : a.call(r, s, o, c);
265
+ async call(s, t, o, l) {
266
+ var i;
267
+ return await this.sessionWait(), (i = this.session) == null ? void 0 : i.call(s, t, o, l);
268
268
  }
269
- async publish(r, s, o, c) {
270
- var a;
271
- return await this.sessionWait(), (a = this.session) == null ? void 0 : a.publish(r, s, o, c);
269
+ async publish(s, t, o, l) {
270
+ var i;
271
+ return await this.sessionWait(), (i = this.session) == null ? void 0 : i.publish(s, t, o, l);
272
272
  }
273
273
  }
274
- const R = (d) => Math.floor(d) === d && J <= d && d <= B, J = 0, B = 2 ** 32 - 1, K = (d) => H.test(d), H = /^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(T|\s)([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\.[0-9]{1,9})?(Z|[+-]([01][0-9]|2[0-3]):[0-5][0-9])$/i, p = (d) => {
275
- const r = (s) => {
274
+ const p = (d) => Math.floor(d) === d && H <= d && d <= G, H = 0, G = 2 ** 32 - 1, K = (d) => q.test(d), q = /^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(T|\s)([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\.[0-9]{1,9})?(Z|[+-]([01][0-9]|2[0-3]):[0-5][0-9])$/i, k = (d) => {
275
+ const s = (t) => {
276
276
  if (d.length === 0)
277
277
  return !0;
278
278
  const o = d[d.length - 1].path;
279
- return s.length > o.length || o.substring(0, s.length) !== s;
279
+ return t.length > o.length || o.substring(0, t.length) !== t;
280
280
  };
281
- return (s, o) => (s && r(o.path) && (o.value === void 0 && (o.description ?? (o.description = [
281
+ return (t, o) => (t && s(o.path) && (o.value === void 0 && (o.description ?? (o.description = [
282
282
  "The value at this path is `undefined`.",
283
283
  "",
284
284
  `Please fill the \`${o.expected}\` typed value next time.`
285
285
  ].join(`
286
286
  `))), d.push(o)), !1);
287
- }, k = (d) => Object.assign(d, {
287
+ }, _ = (d) => Object.assign(d, {
288
288
  "~standard": {
289
289
  version: 1,
290
290
  vendor: "typia",
291
- validate: (r) => {
292
- const s = d(r);
293
- return s.success ? {
294
- value: s.data
291
+ validate: (s) => {
292
+ const t = d(s);
293
+ return t.success ? {
294
+ value: t.data
295
295
  } : {
296
- issues: s.errors.map((o) => ({
296
+ issues: t.errors.map((o) => ({
297
297
  message: `expected ${o.expected}, got ${o.value}`,
298
- path: G(o.path)
298
+ path: X(o.path)
299
299
  }))
300
300
  };
301
301
  }
@@ -305,27 +305,27 @@ var m;
305
305
  (function(d) {
306
306
  d[d.Start = 0] = "Start", d[d.Property = 1] = "Property", d[d.StringKey = 2] = "StringKey", d[d.NumberKey = 3] = "NumberKey";
307
307
  })(m || (m = {}));
308
- const G = (d) => {
308
+ const X = (d) => {
309
309
  if (!d.startsWith("$input"))
310
310
  throw new Error(`Invalid path: ${JSON.stringify(d)}`);
311
- const r = [];
312
- let s = "", o = m.Start, c = 5;
313
- for (; c < d.length - 1; ) {
314
- c++;
315
- const a = d[c];
316
- if (o === m.Property ? a === "." || a === "[" ? (r.push({
317
- key: s
318
- }), o = m.Start) : c === d.length - 1 ? (s += a, r.push({
319
- key: s
320
- }), c++, o = m.Start) : s += a : o === m.StringKey ? a === '"' ? (r.push({
321
- key: JSON.parse(s + a)
322
- }), c += 2, o = m.Start) : a === "\\" ? (s += d[c], c++, s += d[c]) : s += a : o === m.NumberKey && (a === "]" ? (r.push({
323
- key: Number.parseInt(s)
324
- }), c++, o = m.Start) : s += a), o === m.Start && c < d.length - 1) {
325
- const u = d[c];
326
- if (s = "", u === "[")
327
- d[c + 1] === '"' ? (o = m.StringKey, c++, s = '"') : o = m.NumberKey;
328
- else if (u === ".")
311
+ const s = [];
312
+ let t = "", o = m.Start, l = 5;
313
+ for (; l < d.length - 1; ) {
314
+ l++;
315
+ const i = d[l];
316
+ if (o === m.Property ? i === "." || i === "[" ? (s.push({
317
+ key: t
318
+ }), o = m.Start) : l === d.length - 1 ? (t += i, s.push({
319
+ key: t
320
+ }), l++, o = m.Start) : t += i : o === m.StringKey ? i === '"' ? (s.push({
321
+ key: JSON.parse(t + i)
322
+ }), l += 2, o = m.Start) : i === "\\" ? (t += d[l], l++, t += d[l]) : t += i : o === m.NumberKey && (i === "]" ? (s.push({
323
+ key: Number.parseInt(t)
324
+ }), l++, o = m.Start) : t += i), o === m.Start && l < d.length - 1) {
325
+ const c = d[l];
326
+ if (t = "", c === "[")
327
+ d[l + 1] === '"' ? (o = m.StringKey, l++, t = '"') : o = m.NumberKey;
328
+ else if (c === ".")
329
329
  o = m.Property;
330
330
  else
331
331
  throw new Error("Unreachable: pointer points invalid character");
@@ -333,367 +333,432 @@ const G = (d) => {
333
333
  }
334
334
  if (o !== m.Start)
335
335
  throw new Error(`Failed to parse path: ${JSON.stringify(d)}`);
336
- return r;
336
+ return s;
337
337
  };
338
338
  var M = /* @__PURE__ */ ((d) => (d.DEVELOPMENT = "dev", d.PRODUCTION = "prod", d))(M || {});
339
- const q = (() => {
340
- const d = (e) => typeof e.limit == "number" && R(e.limit) && 1 <= e.limit && e.limit <= 1e4 && (e.offset === void 0 || typeof e.offset == "number" && R(e.offset) && 0 <= e.offset) && (e.timeRange === void 0 || typeof e.timeRange == "object" && e.timeRange !== null && r(e.timeRange)) && (e.filterAnd === void 0 || Array.isArray(e.filterAnd) && e.filterAnd.every((n) => typeof n == "object" && n !== null && s(n))), r = (e) => typeof e.start == "string" && K(e.start) && typeof e.end == "string" && K(e.end), s = (e) => typeof e.column == "string" && 1 <= e.column.length && typeof e.operator == "string" && 1 <= e.operator.length && e.value !== null && e.value !== void 0 && (typeof e.value == "string" || typeof e.value == "number" || typeof e.value == "boolean" || Array.isArray(e.value) && e.value.every((n) => typeof n == "string" || typeof n == "number")), o = (e, n, l = !0) => [typeof e.limit == "number" && (R(e.limit) || i(l, {
339
+ const Z = (() => {
340
+ const d = (r) => typeof r.limit == "number" && p(r.limit) && 1 <= r.limit && r.limit <= 1e4 && (r.offset === void 0 || typeof r.offset == "number" && p(r.offset) && 0 <= r.offset) && (r.timeRange === void 0 || typeof r.timeRange == "object" && r.timeRange !== null && s(r.timeRange)) && (r.filterAnd === void 0 || Array.isArray(r.filterAnd) && r.filterAnd.every((n) => typeof n == "object" && n !== null && t(n))), s = (r) => typeof r.start == "string" && K(r.start) && typeof r.end == "string" && K(r.end), t = (r) => typeof r.column == "string" && 1 <= r.column.length && typeof r.operator == "string" && 1 <= r.operator.length && r.value !== null && r.value !== void 0 && (typeof r.value == "string" || typeof r.value == "number" || typeof r.value == "boolean" || Array.isArray(r.value) && r.value.every((n) => typeof n == "string" || typeof n == "number")), o = (r, n, u = !0) => [typeof r.limit == "number" && (p(r.limit) || a(u, {
341
341
  path: n + ".limit",
342
342
  expected: 'number & Type<"uint32">',
343
- value: e.limit
344
- })) && (1 <= e.limit || i(l, {
343
+ value: r.limit
344
+ })) && (1 <= r.limit || a(u, {
345
345
  path: n + ".limit",
346
346
  expected: "number & Minimum<1>",
347
- value: e.limit
348
- })) && (e.limit <= 1e4 || i(l, {
347
+ value: r.limit
348
+ })) && (r.limit <= 1e4 || a(u, {
349
349
  path: n + ".limit",
350
350
  expected: "number & Maximum<10000>",
351
- value: e.limit
352
- })) || i(l, {
351
+ value: r.limit
352
+ })) || a(u, {
353
353
  path: n + ".limit",
354
354
  expected: '(number & Type<"uint32"> & Minimum<1> & Maximum<10000>)',
355
- value: e.limit
356
- }), e.offset === void 0 || typeof e.offset == "number" && (R(e.offset) || i(l, {
355
+ value: r.limit
356
+ }), r.offset === void 0 || typeof r.offset == "number" && (p(r.offset) || a(u, {
357
357
  path: n + ".offset",
358
358
  expected: 'number & Type<"uint32">',
359
- value: e.offset
360
- })) && (0 <= e.offset || i(l, {
359
+ value: r.offset
360
+ })) && (0 <= r.offset || a(u, {
361
361
  path: n + ".offset",
362
362
  expected: "number & Minimum<0>",
363
- value: e.offset
364
- })) || i(l, {
363
+ value: r.offset
364
+ })) || a(u, {
365
365
  path: n + ".offset",
366
366
  expected: '((number & Type<"uint32"> & Minimum<0>) | undefined)',
367
- value: e.offset
368
- }), e.timeRange === void 0 || (typeof e.timeRange == "object" && e.timeRange !== null || i(l, {
367
+ value: r.offset
368
+ }), r.timeRange === void 0 || (typeof r.timeRange == "object" && r.timeRange !== null || a(u, {
369
369
  path: n + ".timeRange",
370
370
  expected: "(ISOTimeRange | undefined)",
371
- value: e.timeRange
372
- })) && c(e.timeRange, n + ".timeRange", l) || i(l, {
371
+ value: r.timeRange
372
+ })) && l(r.timeRange, n + ".timeRange", u) || a(u, {
373
373
  path: n + ".timeRange",
374
374
  expected: "(ISOTimeRange | undefined)",
375
- value: e.timeRange
376
- }), e.filterAnd === void 0 || (Array.isArray(e.filterAnd) || i(l, {
375
+ value: r.timeRange
376
+ }), r.filterAnd === void 0 || (Array.isArray(r.filterAnd) || a(u, {
377
377
  path: n + ".filterAnd",
378
378
  expected: "(Array<SQLFilterAnd> | undefined)",
379
- value: e.filterAnd
380
- })) && e.filterAnd.map((h, v) => (typeof h == "object" && h !== null || i(l, {
379
+ value: r.filterAnd
380
+ })) && r.filterAnd.map((h, v) => (typeof h == "object" && h !== null || a(u, {
381
381
  path: n + ".filterAnd[" + v + "]",
382
382
  expected: "SQLFilterAnd",
383
383
  value: h
384
- })) && a(h, n + ".filterAnd[" + v + "]", l) || i(l, {
384
+ })) && i(h, n + ".filterAnd[" + v + "]", u) || a(u, {
385
385
  path: n + ".filterAnd[" + v + "]",
386
386
  expected: "SQLFilterAnd",
387
387
  value: h
388
- })).every((h) => h) || i(l, {
388
+ })).every((h) => h) || a(u, {
389
389
  path: n + ".filterAnd",
390
390
  expected: "(Array<SQLFilterAnd> | undefined)",
391
- value: e.filterAnd
392
- })].every((h) => h), c = (e, n, l = !0) => [typeof e.start == "string" && (K(e.start) || i(l, {
391
+ value: r.filterAnd
392
+ })].every((h) => h), l = (r, n, u = !0) => [typeof r.start == "string" && (K(r.start) || a(u, {
393
393
  path: n + ".start",
394
394
  expected: 'string & Format<"date-time">',
395
- value: e.start
396
- })) || i(l, {
395
+ value: r.start
396
+ })) || a(u, {
397
397
  path: n + ".start",
398
398
  expected: '(string & Format<"date-time">)',
399
- value: e.start
400
- }), typeof e.end == "string" && (K(e.end) || i(l, {
399
+ value: r.start
400
+ }), typeof r.end == "string" && (K(r.end) || a(u, {
401
401
  path: n + ".end",
402
402
  expected: 'string & Format<"date-time">',
403
- value: e.end
404
- })) || i(l, {
403
+ value: r.end
404
+ })) || a(u, {
405
405
  path: n + ".end",
406
406
  expected: '(string & Format<"date-time">)',
407
- value: e.end
408
- })].every((h) => h), a = (e, n, l = !0) => [typeof e.column == "string" && (1 <= e.column.length || i(l, {
407
+ value: r.end
408
+ })].every((h) => h), i = (r, n, u = !0) => [typeof r.column == "string" && (1 <= r.column.length || a(u, {
409
409
  path: n + ".column",
410
410
  expected: "string & MinLength<1>",
411
- value: e.column
412
- })) || i(l, {
411
+ value: r.column
412
+ })) || a(u, {
413
413
  path: n + ".column",
414
414
  expected: "(string & MinLength<1>)",
415
- value: e.column
416
- }), typeof e.operator == "string" && (1 <= e.operator.length || i(l, {
415
+ value: r.column
416
+ }), typeof r.operator == "string" && (1 <= r.operator.length || a(u, {
417
417
  path: n + ".operator",
418
418
  expected: "string & MinLength<1>",
419
- value: e.operator
420
- })) || i(l, {
419
+ value: r.operator
420
+ })) || a(u, {
421
421
  path: n + ".operator",
422
422
  expected: "(string & MinLength<1>)",
423
- value: e.operator
424
- }), (e.value !== null || i(l, {
423
+ value: r.operator
424
+ }), (r.value !== null || a(u, {
425
425
  path: n + ".value",
426
426
  expected: "(Array<string | number> | boolean | number | string)",
427
- value: e.value
428
- })) && (e.value !== void 0 || i(l, {
427
+ value: r.value
428
+ })) && (r.value !== void 0 || a(u, {
429
429
  path: n + ".value",
430
430
  expected: "(Array<string | number> | boolean | number | string)",
431
- value: e.value
432
- })) && (typeof e.value == "string" || typeof e.value == "number" || typeof e.value == "boolean" || (Array.isArray(e.value) || i(l, {
431
+ value: r.value
432
+ })) && (typeof r.value == "string" || typeof r.value == "number" || typeof r.value == "boolean" || (Array.isArray(r.value) || a(u, {
433
433
  path: n + ".value",
434
434
  expected: "(Array<string | number> | boolean | number | string)",
435
- value: e.value
436
- })) && e.value.map((h, v) => typeof h == "string" || typeof h == "number" || i(l, {
435
+ value: r.value
436
+ })) && r.value.map((h, v) => typeof h == "string" || typeof h == "number" || a(u, {
437
437
  path: n + ".value[" + v + "]",
438
438
  expected: "(number | string)",
439
439
  value: h
440
- })).every((h) => h) || i(l, {
440
+ })).every((h) => h) || a(u, {
441
441
  path: n + ".value",
442
442
  expected: "(Array<string | number> | boolean | number | string)",
443
- value: e.value
444
- }))].every((h) => h), u = (e) => typeof e == "object" && e !== null && d(e);
445
- let t, i;
446
- return k((e) => {
447
- if (u(e) === !1) {
448
- t = [], i = p(t), ((l, h, v = !0) => (typeof l == "object" && l !== null || i(!0, {
443
+ value: r.value
444
+ }))].every((h) => h), c = (r) => typeof r == "object" && r !== null && d(r);
445
+ let e, a;
446
+ return _((r) => {
447
+ if (c(r) === !1) {
448
+ e = [], a = k(e), ((u, h, v = !0) => (typeof u == "object" && u !== null || a(!0, {
449
449
  path: h + "",
450
450
  expected: "TableQueryParams",
451
- value: l
452
- })) && o(l, h + "", !0) || i(!0, {
451
+ value: u
452
+ })) && o(u, h + "", !0) || a(!0, {
453
453
  path: h + "",
454
454
  expected: "TableQueryParams",
455
- value: l
456
- }))(e, "$input", !0);
457
- const n = t.length === 0;
455
+ value: u
456
+ }))(r, "$input", !0);
457
+ const n = e.length === 0;
458
458
  return n ? {
459
459
  success: n,
460
- data: e
460
+ data: r
461
461
  } : {
462
462
  success: n,
463
- errors: t,
464
- data: e
463
+ errors: e,
464
+ data: r
465
465
  };
466
466
  }
467
467
  return {
468
468
  success: !0,
469
- data: e
469
+ data: r
470
470
  };
471
471
  });
472
- })(), X = (() => {
473
- const d = (a) => typeof a.longitude == "number" && -180 <= a.longitude && a.longitude <= 180 && typeof a.latitude == "number" && -90 <= a.latitude && a.latitude <= 90, r = (a, u, t = !0) => [typeof a.longitude == "number" && (-180 <= a.longitude || c(t, {
474
- path: u + ".longitude",
472
+ })(), z = (() => {
473
+ const d = (i) => typeof i.longitude == "number" && -180 <= i.longitude && i.longitude <= 180 && typeof i.latitude == "number" && -90 <= i.latitude && i.latitude <= 90, s = (i, c, e = !0) => [typeof i.longitude == "number" && (-180 <= i.longitude || l(e, {
474
+ path: c + ".longitude",
475
475
  expected: "number & Minimum<-180>",
476
- value: a.longitude
477
- })) && (a.longitude <= 180 || c(t, {
478
- path: u + ".longitude",
476
+ value: i.longitude
477
+ })) && (i.longitude <= 180 || l(e, {
478
+ path: c + ".longitude",
479
479
  expected: "number & Maximum<180>",
480
- value: a.longitude
481
- })) || c(t, {
482
- path: u + ".longitude",
480
+ value: i.longitude
481
+ })) || l(e, {
482
+ path: c + ".longitude",
483
483
  expected: "(number & Minimum<-180> & Maximum<180>)",
484
- value: a.longitude
485
- }), typeof a.latitude == "number" && (-90 <= a.latitude || c(t, {
486
- path: u + ".latitude",
484
+ value: i.longitude
485
+ }), typeof i.latitude == "number" && (-90 <= i.latitude || l(e, {
486
+ path: c + ".latitude",
487
487
  expected: "number & Minimum<-90>",
488
- value: a.latitude
489
- })) && (a.latitude <= 90 || c(t, {
490
- path: u + ".latitude",
488
+ value: i.latitude
489
+ })) && (i.latitude <= 90 || l(e, {
490
+ path: c + ".latitude",
491
491
  expected: "number & Maximum<90>",
492
- value: a.latitude
493
- })) || c(t, {
494
- path: u + ".latitude",
492
+ value: i.latitude
493
+ })) || l(e, {
494
+ path: c + ".latitude",
495
495
  expected: "(number & Minimum<-90> & Maximum<90>)",
496
- value: a.latitude
497
- })].every((i) => i), s = (a) => typeof a == "object" && a !== null && d(a);
498
- let o, c;
499
- return k((a) => {
500
- if (s(a) === !1) {
501
- o = [], c = p(o), ((t, i, e = !0) => (typeof t == "object" && t !== null || c(!0, {
502
- path: i + "",
496
+ value: i.latitude
497
+ })].every((a) => a), t = (i) => typeof i == "object" && i !== null && d(i);
498
+ let o, l;
499
+ return _((i) => {
500
+ if (t(i) === !1) {
501
+ o = [], l = k(o), ((e, a, r = !0) => (typeof e == "object" && e !== null || l(!0, {
502
+ path: a + "",
503
503
  expected: "LocationParams",
504
- value: t
505
- })) && r(t, i + "", !0) || c(!0, {
506
- path: i + "",
504
+ value: e
505
+ })) && s(e, a + "", !0) || l(!0, {
506
+ path: a + "",
507
507
  expected: "LocationParams",
508
- value: t
509
- }))(a, "$input", !0);
510
- const u = o.length === 0;
511
- return u ? {
512
- success: u,
513
- data: a
508
+ value: e
509
+ }))(i, "$input", !0);
510
+ const c = o.length === 0;
511
+ return c ? {
512
+ success: c,
513
+ data: i
514
514
  } : {
515
- success: u,
515
+ success: c,
516
516
  errors: o,
517
- data: a
517
+ data: i
518
518
  };
519
519
  }
520
520
  return {
521
521
  success: !0,
522
- data: a
522
+ data: i
523
523
  };
524
524
  });
525
- })(), Z = (() => {
526
- const d = (t) => typeof t.topic == "string" && 1 <= t.topic.length && (t.args === void 0 || Array.isArray(t.args)) && (t.kwargs === void 0 || typeof t.kwargs == "object" && t.kwargs !== null && Array.isArray(t.kwargs) === !1 && r(t.kwargs)), r = (t) => Object.keys(t).every((i) => (t[i] === void 0, !0)), s = (t, i, e = !0) => [typeof t.topic == "string" && (1 <= t.topic.length || u(e, {
527
- path: i + ".topic",
525
+ })(), ee = (() => {
526
+ const d = (e) => typeof e.topic == "string" && 1 <= e.topic.length && (e.args === void 0 || Array.isArray(e.args)) && (e.kwargs === void 0 || typeof e.kwargs == "object" && e.kwargs !== null && Array.isArray(e.kwargs) === !1 && s(e.kwargs)), s = (e) => Object.keys(e).every((a) => (e[a] === void 0, !0)), t = (e, a, r = !0) => [typeof e.topic == "string" && (1 <= e.topic.length || c(r, {
527
+ path: a + ".topic",
528
528
  expected: "string & MinLength<1>",
529
- value: t.topic
530
- })) || u(e, {
531
- path: i + ".topic",
529
+ value: e.topic
530
+ })) || c(r, {
531
+ path: a + ".topic",
532
532
  expected: "(string & MinLength<1>)",
533
- value: t.topic
534
- }), t.args === void 0 || Array.isArray(t.args) || u(e, {
535
- path: i + ".args",
533
+ value: e.topic
534
+ }), e.args === void 0 || Array.isArray(e.args) || c(r, {
535
+ path: a + ".args",
536
536
  expected: "(Array<unknown> | undefined)",
537
- value: t.args
538
- }), t.kwargs === void 0 || (typeof t.kwargs == "object" && t.kwargs !== null && Array.isArray(t.kwargs) === !1 || u(e, {
539
- path: i + ".kwargs",
537
+ value: e.args
538
+ }), e.kwargs === void 0 || (typeof e.kwargs == "object" && e.kwargs !== null && Array.isArray(e.kwargs) === !1 || c(r, {
539
+ path: a + ".kwargs",
540
540
  expected: "(Record<string, unknown> | undefined)",
541
- value: t.kwargs
542
- })) && o(t.kwargs, i + ".kwargs", e) || u(e, {
543
- path: i + ".kwargs",
541
+ value: e.kwargs
542
+ })) && o(e.kwargs, a + ".kwargs", r) || c(r, {
543
+ path: a + ".kwargs",
544
544
  expected: "(Record<string, unknown> | undefined)",
545
- value: t.kwargs
546
- })].every((n) => n), o = (t, i, e = !0) => [e === !1 || Object.keys(t).map((n) => (t[n] === void 0, !0)).every((n) => n)].every((n) => n), c = (t) => typeof t == "object" && t !== null && d(t);
547
- let a, u;
548
- return k((t) => {
549
- if (c(t) === !1) {
550
- a = [], u = p(a), ((e, n, l = !0) => (typeof e == "object" && e !== null || u(!0, {
545
+ value: e.kwargs
546
+ })].every((n) => n), o = (e, a, r = !0) => [r === !1 || Object.keys(e).map((n) => (e[n] === void 0, !0)).every((n) => n)].every((n) => n), l = (e) => typeof e == "object" && e !== null && d(e);
547
+ let i, c;
548
+ return _((e) => {
549
+ if (l(e) === !1) {
550
+ i = [], c = k(i), ((r, n, u = !0) => (typeof r == "object" && r !== null || c(!0, {
551
551
  path: n + "",
552
552
  expected: "PublishParams",
553
- value: e
554
- })) && s(e, n + "", !0) || u(!0, {
553
+ value: r
554
+ })) && t(r, n + "", !0) || c(!0, {
555
555
  path: n + "",
556
556
  expected: "PublishParams",
557
- value: e
558
- }))(t, "$input", !0);
559
- const i = a.length === 0;
560
- return i ? {
561
- success: i,
562
- data: t
557
+ value: r
558
+ }))(e, "$input", !0);
559
+ const a = i.length === 0;
560
+ return a ? {
561
+ success: a,
562
+ data: e
563
563
  } : {
564
- success: i,
565
- errors: a,
566
- data: t
564
+ success: a,
565
+ errors: i,
566
+ data: e
567
567
  };
568
568
  }
569
569
  return {
570
570
  success: !0,
571
- data: t
571
+ data: e
572
572
  };
573
573
  });
574
- })(), te = (() => {
575
- const d = (t) => typeof t.deviceKey == "string" && 1 <= t.deviceKey.length && typeof t.topic == "string" && 1 <= t.topic.length && (t.args === void 0 || Array.isArray(t.args)) && (t.kwargs === void 0 || typeof t.kwargs == "object" && t.kwargs !== null && Array.isArray(t.kwargs) === !1 && r(t.kwargs)), r = (t) => Object.keys(t).every((i) => (t[i] === void 0, !0)), s = (t, i, e = !0) => [typeof t.deviceKey == "string" && (1 <= t.deviceKey.length || u(e, {
576
- path: i + ".deviceKey",
574
+ })(), se = (() => {
575
+ const d = (e) => typeof e.deviceKey == "string" && 1 <= e.deviceKey.length && typeof e.topic == "string" && 1 <= e.topic.length && (e.args === void 0 || Array.isArray(e.args)) && (e.kwargs === void 0 || typeof e.kwargs == "object" && e.kwargs !== null && Array.isArray(e.kwargs) === !1 && s(e.kwargs)), s = (e) => Object.keys(e).every((a) => (e[a] === void 0, !0)), t = (e, a, r = !0) => [typeof e.deviceKey == "string" && (1 <= e.deviceKey.length || c(r, {
576
+ path: a + ".deviceKey",
577
577
  expected: "string & MinLength<1>",
578
- value: t.deviceKey
579
- })) || u(e, {
580
- path: i + ".deviceKey",
578
+ value: e.deviceKey
579
+ })) || c(r, {
580
+ path: a + ".deviceKey",
581
581
  expected: "(string & MinLength<1>)",
582
- value: t.deviceKey
583
- }), typeof t.topic == "string" && (1 <= t.topic.length || u(e, {
584
- path: i + ".topic",
582
+ value: e.deviceKey
583
+ }), typeof e.topic == "string" && (1 <= e.topic.length || c(r, {
584
+ path: a + ".topic",
585
585
  expected: "string & MinLength<1>",
586
- value: t.topic
587
- })) || u(e, {
588
- path: i + ".topic",
586
+ value: e.topic
587
+ })) || c(r, {
588
+ path: a + ".topic",
589
589
  expected: "(string & MinLength<1>)",
590
- value: t.topic
591
- }), t.args === void 0 || Array.isArray(t.args) || u(e, {
592
- path: i + ".args",
590
+ value: e.topic
591
+ }), e.args === void 0 || Array.isArray(e.args) || c(r, {
592
+ path: a + ".args",
593
593
  expected: "(Array<unknown> | undefined)",
594
- value: t.args
595
- }), t.kwargs === void 0 || (typeof t.kwargs == "object" && t.kwargs !== null && Array.isArray(t.kwargs) === !1 || u(e, {
596
- path: i + ".kwargs",
594
+ value: e.args
595
+ }), e.kwargs === void 0 || (typeof e.kwargs == "object" && e.kwargs !== null && Array.isArray(e.kwargs) === !1 || c(r, {
596
+ path: a + ".kwargs",
597
597
  expected: "(Record<string, unknown> | undefined)",
598
- value: t.kwargs
599
- })) && o(t.kwargs, i + ".kwargs", e) || u(e, {
600
- path: i + ".kwargs",
598
+ value: e.kwargs
599
+ })) && o(e.kwargs, a + ".kwargs", r) || c(r, {
600
+ path: a + ".kwargs",
601
601
  expected: "(Record<string, unknown> | undefined)",
602
- value: t.kwargs
603
- })].every((n) => n), o = (t, i, e = !0) => [e === !1 || Object.keys(t).map((n) => (t[n] === void 0, !0)).every((n) => n)].every((n) => n), c = (t) => typeof t == "object" && t !== null && d(t);
604
- let a, u;
605
- return k((t) => {
606
- if (c(t) === !1) {
607
- a = [], u = p(a), ((e, n, l = !0) => (typeof e == "object" && e !== null || u(!0, {
602
+ value: e.kwargs
603
+ })].every((n) => n), o = (e, a, r = !0) => [r === !1 || Object.keys(e).map((n) => (e[n] === void 0, !0)).every((n) => n)].every((n) => n), l = (e) => typeof e == "object" && e !== null && d(e);
604
+ let i, c;
605
+ return _((e) => {
606
+ if (l(e) === !1) {
607
+ i = [], c = k(i), ((r, n, u = !0) => (typeof r == "object" && r !== null || c(!0, {
608
608
  path: n + "",
609
609
  expected: "CallParams",
610
- value: e
611
- })) && s(e, n + "", !0) || u(!0, {
610
+ value: r
611
+ })) && t(r, n + "", !0) || c(!0, {
612
612
  path: n + "",
613
613
  expected: "CallParams",
614
- value: e
615
- }))(t, "$input", !0);
616
- const i = a.length === 0;
617
- return i ? {
618
- success: i,
619
- data: t
614
+ value: r
615
+ }))(e, "$input", !0);
616
+ const a = i.length === 0;
617
+ return a ? {
618
+ success: a,
619
+ data: e
620
620
  } : {
621
- success: i,
622
- errors: a,
623
- data: t
621
+ success: a,
622
+ errors: i,
623
+ data: e
624
624
  };
625
625
  }
626
626
  return {
627
627
  success: !0,
628
- data: t
628
+ data: e
629
629
  };
630
630
  });
631
- })(), C = (() => {
632
- const d = (t) => typeof t.tablename == "string" && 1 <= t.tablename.length && (t.args === void 0 || Array.isArray(t.args)) && (t.kwargs === void 0 || typeof t.kwargs == "object" && t.kwargs !== null && Array.isArray(t.kwargs) === !1 && r(t.kwargs)), r = (t) => Object.keys(t).every((i) => (t[i] === void 0, !0)), s = (t, i, e = !0) => [typeof t.tablename == "string" && (1 <= t.tablename.length || u(e, {
633
- path: i + ".tablename",
631
+ })(), x = (() => {
632
+ const d = (e) => typeof e.tablename == "string" && 1 <= e.tablename.length && (e.args === void 0 || Array.isArray(e.args)) && (e.kwargs === void 0 || typeof e.kwargs == "object" && e.kwargs !== null && Array.isArray(e.kwargs) === !1 && s(e.kwargs)), s = (e) => Object.keys(e).every((a) => (e[a] === void 0, !0)), t = (e, a, r = !0) => [typeof e.tablename == "string" && (1 <= e.tablename.length || c(r, {
633
+ path: a + ".tablename",
634
634
  expected: "string & MinLength<1>",
635
- value: t.tablename
636
- })) || u(e, {
637
- path: i + ".tablename",
635
+ value: e.tablename
636
+ })) || c(r, {
637
+ path: a + ".tablename",
638
638
  expected: "(string & MinLength<1>)",
639
- value: t.tablename
640
- }), t.args === void 0 || Array.isArray(t.args) || u(e, {
641
- path: i + ".args",
639
+ value: e.tablename
640
+ }), e.args === void 0 || Array.isArray(e.args) || c(r, {
641
+ path: a + ".args",
642
642
  expected: "(Array<unknown> | undefined)",
643
- value: t.args
644
- }), t.kwargs === void 0 || (typeof t.kwargs == "object" && t.kwargs !== null && Array.isArray(t.kwargs) === !1 || u(e, {
645
- path: i + ".kwargs",
643
+ value: e.args
644
+ }), e.kwargs === void 0 || (typeof e.kwargs == "object" && e.kwargs !== null && Array.isArray(e.kwargs) === !1 || c(r, {
645
+ path: a + ".kwargs",
646
646
  expected: "(Record<string, unknown> | undefined)",
647
- value: t.kwargs
648
- })) && o(t.kwargs, i + ".kwargs", e) || u(e, {
649
- path: i + ".kwargs",
647
+ value: e.kwargs
648
+ })) && o(e.kwargs, a + ".kwargs", r) || c(r, {
649
+ path: a + ".kwargs",
650
650
  expected: "(Record<string, unknown> | undefined)",
651
- value: t.kwargs
652
- })].every((n) => n), o = (t, i, e = !0) => [e === !1 || Object.keys(t).map((n) => (t[n] === void 0, !0)).every((n) => n)].every((n) => n), c = (t) => typeof t == "object" && t !== null && d(t);
653
- let a, u;
654
- return k((t) => {
655
- if (c(t) === !1) {
656
- a = [], u = p(a), ((e, n, l = !0) => (typeof e == "object" && e !== null || u(!0, {
651
+ value: e.kwargs
652
+ })].every((n) => n), o = (e, a, r = !0) => [r === !1 || Object.keys(e).map((n) => (e[n] === void 0, !0)).every((n) => n)].every((n) => n), l = (e) => typeof e == "object" && e !== null && d(e);
653
+ let i, c;
654
+ return _((e) => {
655
+ if (l(e) === !1) {
656
+ i = [], c = k(i), ((r, n, u = !0) => (typeof r == "object" && r !== null || c(!0, {
657
657
  path: n + "",
658
658
  expected: "TableParams",
659
- value: e
660
- })) && s(e, n + "", !0) || u(!0, {
659
+ value: r
660
+ })) && t(r, n + "", !0) || c(!0, {
661
661
  path: n + "",
662
662
  expected: "TableParams",
663
- value: e
664
- }))(t, "$input", !0);
665
- const i = a.length === 0;
666
- return i ? {
667
- success: i,
668
- data: t
663
+ value: r
664
+ }))(e, "$input", !0);
665
+ const a = i.length === 0;
666
+ return a ? {
667
+ success: a,
668
+ data: e
669
669
  } : {
670
- success: i,
671
- errors: a,
672
- data: t
670
+ success: a,
671
+ errors: i,
672
+ data: e
673
673
  };
674
674
  }
675
675
  return {
676
676
  success: !0,
677
- data: t
677
+ data: e
678
678
  };
679
679
  });
680
- })();
680
+ })(), C = (() => {
681
+ const d = (e) => typeof e.tablename == "string" && 1 <= e.tablename.length && Array.isArray(e.rows) && 1 <= e.rows.length && e.rows.every((a) => typeof a == "object" && a !== null && Array.isArray(a) === !1 && s(a)) && (e.kwargs === void 0 || typeof e.kwargs == "object" && e.kwargs !== null && Array.isArray(e.kwargs) === !1 && s(e.kwargs)), s = (e) => Object.keys(e).every((a) => (e[a] === void 0, !0)), t = (e, a, r = !0) => [typeof e.tablename == "string" && (1 <= e.tablename.length || c(r, {
682
+ path: a + ".tablename",
683
+ expected: "string & MinLength<1>",
684
+ value: e.tablename
685
+ })) || c(r, {
686
+ path: a + ".tablename",
687
+ expected: "(string & MinLength<1>)",
688
+ value: e.tablename
689
+ }), (Array.isArray(e.rows) || c(r, {
690
+ path: a + ".rows",
691
+ expected: "(Array<Record<string, unknown>> & MinItems<1>)",
692
+ value: e.rows
693
+ })) && (1 <= e.rows.length || c(r, {
694
+ path: a + ".rows",
695
+ expected: "Array<> & MinItems<1>",
696
+ value: e.rows
697
+ })) && e.rows.map((n, u) => (typeof n == "object" && n !== null && Array.isArray(n) === !1 || c(r, {
698
+ path: a + ".rows[" + u + "]",
699
+ expected: "Record<string, unknown>",
700
+ value: n
701
+ })) && o(n, a + ".rows[" + u + "]", r) || c(r, {
702
+ path: a + ".rows[" + u + "]",
703
+ expected: "Record<string, unknown>",
704
+ value: n
705
+ })).every((n) => n) || c(r, {
706
+ path: a + ".rows",
707
+ expected: "(Array<Record<string, unknown>> & MinItems<1>)",
708
+ value: e.rows
709
+ }), e.kwargs === void 0 || (typeof e.kwargs == "object" && e.kwargs !== null && Array.isArray(e.kwargs) === !1 || c(r, {
710
+ path: a + ".kwargs",
711
+ expected: "(Record<string, unknown> | undefined)",
712
+ value: e.kwargs
713
+ })) && o(e.kwargs, a + ".kwargs", r) || c(r, {
714
+ path: a + ".kwargs",
715
+ expected: "(Record<string, unknown> | undefined)",
716
+ value: e.kwargs
717
+ })].every((n) => n), o = (e, a, r = !0) => [r === !1 || Object.keys(e).map((n) => (e[n] === void 0, !0)).every((n) => n)].every((n) => n), l = (e) => typeof e == "object" && e !== null && d(e);
718
+ let i, c;
719
+ return _((e) => {
720
+ if (l(e) === !1) {
721
+ i = [], c = k(i), ((r, n, u = !0) => (typeof r == "object" && r !== null || c(!0, {
722
+ path: n + "",
723
+ expected: "BulkTableParams",
724
+ value: r
725
+ })) && t(r, n + "", !0) || c(!0, {
726
+ path: n + "",
727
+ expected: "BulkTableParams",
728
+ value: r
729
+ }))(e, "$input", !0);
730
+ const a = i.length === 0;
731
+ return a ? {
732
+ success: a,
733
+ data: e
734
+ } : {
735
+ success: a,
736
+ errors: i,
737
+ data: e
738
+ };
739
+ }
740
+ return {
741
+ success: !0,
742
+ data: e
743
+ };
744
+ });
745
+ })(), j = "error-logs";
681
746
  function E(d) {
682
- var r;
683
- return typeof process < "u" ? (r = process.env) == null ? void 0 : r[d] : void 0;
747
+ var s;
748
+ return typeof process < "u" ? (s = process.env) == null ? void 0 : s[d] : void 0;
684
749
  }
685
- function z(d) {
686
- const r = d ?? E("DEVICE_SERIAL_NUMBER");
687
- if (!r)
750
+ function re(d) {
751
+ const s = d ?? E("DEVICE_SERIAL_NUMBER");
752
+ if (!s)
688
753
  throw new Error("serialNumber option is required (or set DEVICE_SERIAL_NUMBER env var in Node.js)");
689
- return r;
754
+ return s;
690
755
  }
691
756
  class L {
692
- constructor(r) {
693
- this._isConfigured = !1, this._serialNumber = z(r == null ? void 0 : r.serialNumber), this._deviceName = (r == null ? void 0 : r.deviceName) ?? E("DEVICE_NAME"), this._deviceKey = (r == null ? void 0 : r.deviceKey) ?? E("DEVICE_KEY"), this._appName = (r == null ? void 0 : r.appName) ?? E("APP_NAME"), this._swarmKey = (r == null ? void 0 : r.swarmKey) ?? parseInt(E("SWARM_KEY") ?? "0", 10), this._appKey = (r == null ? void 0 : r.appKey) ?? parseInt(E("APP_KEY") ?? "0", 10), this._env = (r == null ? void 0 : r.env) ?? E("ENV"), this._reswarmUrl = (r == null ? void 0 : r.reswarmUrl) ?? E("RESWARM_URL"), this._cburl = (r == null ? void 0 : r.ironFlockUrl) ?? (r == null ? void 0 : r.cburl), this._connection = new I();
694
- const s = [];
695
- this._deviceKey || s.push("DEVICE_KEY"), this._appName || s.push("APP_NAME"), this._swarmKey || s.push("SWARM_KEY"), this._appKey || s.push("APP_KEY"), s.length > 0 && console.warn(
696
- `Warning: The following environment variables must be present: ${s.join(", ")}`
757
+ constructor(s) {
758
+ this._isConfigured = !1, this._serialNumber = re(s == null ? void 0 : s.serialNumber), this._deviceName = (s == null ? void 0 : s.deviceName) ?? E("DEVICE_NAME"), this._deviceKey = (s == null ? void 0 : s.deviceKey) ?? E("DEVICE_KEY"), this._appName = (s == null ? void 0 : s.appName) ?? E("APP_NAME"), this._swarmKey = (s == null ? void 0 : s.swarmKey) ?? parseInt(E("SWARM_KEY") ?? "0", 10), this._appKey = (s == null ? void 0 : s.appKey) ?? parseInt(E("APP_KEY") ?? "0", 10), this._env = (s == null ? void 0 : s.env) ?? E("ENV"), this._reswarmUrl = (s == null ? void 0 : s.reswarmUrl) ?? E("RESWARM_URL"), this._cburl = (s == null ? void 0 : s.ironFlockUrl) ?? (s == null ? void 0 : s.cburl), this._connection = new I();
759
+ const t = [];
760
+ this._deviceKey || t.push("DEVICE_KEY"), this._appName || t.push("APP_NAME"), this._swarmKey || t.push("SWARM_KEY"), this._appKey || t.push("APP_KEY"), t.length > 0 && console.warn(
761
+ `Warning: The following environment variables must be present: ${t.join(", ")}`
697
762
  );
698
763
  }
699
764
  get connection() {
@@ -702,111 +767,176 @@ class L {
702
767
  get isConnected() {
703
768
  return this._connection.is_open;
704
769
  }
705
- configureConnection(r) {
770
+ configureConnection(s) {
706
771
  if (this._isConfigured) return;
707
- const s = (this._env ?? "DEV").toUpperCase(), c = {
772
+ const t = (this._env ?? "DEV").toUpperCase(), l = {
708
773
  DEV: M.DEVELOPMENT,
709
774
  PROD: M.PRODUCTION
710
- }[s] ?? M.DEVELOPMENT, a = r ?? this._cburl ?? I.getWebSocketURI(this._reswarmUrl);
775
+ }[t] ?? M.DEVELOPMENT, i = s ?? this._cburl ?? I.getWebSocketURI(this._reswarmUrl);
711
776
  this._connection.configure(
712
777
  this._swarmKey,
713
778
  this._appKey,
714
- c,
779
+ l,
715
780
  this._serialNumber,
716
- a
781
+ i
717
782
  ), this._isConfigured = !0;
718
783
  }
719
- async start(r) {
720
- this.configureConnection(r), await this._connection.start();
784
+ async start(s) {
785
+ this.configureConnection(s), await this._connection.start();
721
786
  }
722
787
  async stop() {
723
788
  this._connection.stop();
724
789
  }
725
- async publish(r, s, o) {
726
- const c = Z({ topic: r, args: s, kwargs: o });
727
- if (!c.success)
728
- throw new Error(`Invalid publish parameters: ${c.errors.map((t) => t.path + ": " + t.expected).join(", ")}`);
729
- const u = { ...{
790
+ async publish(s, t, o) {
791
+ const l = ee({ topic: s, args: t, kwargs: o });
792
+ if (!l.success)
793
+ throw new Error(`Invalid publish parameters: ${l.errors.map((e) => e.path + ": " + e.expected).join(", ")}`);
794
+ const c = { ...{
730
795
  DEVICE_SERIAL_NUMBER: this._serialNumber,
731
796
  DEVICE_KEY: this._deviceKey,
732
797
  DEVICE_NAME: this._deviceName
733
798
  }, ...o ?? {} };
734
- return this._connection.publish(r, s, u, {
799
+ return this._connection.publish(s, t, c, {
735
800
  acknowledge: !0
736
801
  });
737
802
  }
738
- async publishToTable(r, s, o) {
739
- const c = C({ tablename: r, args: s, kwargs: o });
740
- if (!c.success)
741
- throw new Error(`Invalid table parameters: ${c.errors.map((u) => u.path + ": " + u.expected).join(", ")}`);
803
+ async publishToTable(s, t, o) {
804
+ const l = x({ tablename: s, args: t, kwargs: o });
805
+ if (!l.success)
806
+ throw new Error(`Invalid table parameters: ${l.errors.map((c) => c.path + ": " + c.expected).join(", ")}`);
742
807
  if (!this._swarmKey) throw new Error("SWARM_KEY not set in environment variables!");
743
808
  if (!this._appKey) throw new Error("APP_KEY not set in environment variables!");
744
- const a = `${this._swarmKey}.${this._appKey}.${r}`;
745
- return this.publish(a, s, o);
809
+ const i = `${this._swarmKey}.${this._appKey}.${s}`;
810
+ return this.publish(i, t, o);
746
811
  }
747
- async appendToTable(r, s, o) {
748
- const c = C({ tablename: r, args: s, kwargs: o });
749
- if (!c.success)
750
- throw new Error(`Invalid table parameters: ${c.errors.map((i) => i.path + ": " + i.expected).join(", ")}`);
812
+ /**
813
+ * Reports an application error into the databackend's `error-logs` table.
814
+ *
815
+ * This is a thin convenience wrapper over {@link publishToTable} /
816
+ * {@link appendToTable}: it stamps the row with `source: "app"`, a severity
817
+ * `level`, and a timestamp, then writes it like any normal table row. The error
818
+ * therefore lands in the same `error-logs` table that fleetdb system errors use
819
+ * (tagged `source: "system"`), and is delivered in realtime on
820
+ * `transformed.error-logs` — the channel board-templates consume — without
821
+ * touching the platform error-toast channel (`databackend.errors.*`).
822
+ *
823
+ * @param error An error message, or an Error whose stack/message is recorded.
824
+ * @param opts Optional level (default "error"), append flag, and tsp override.
825
+ */
826
+ async reportError(s, t) {
827
+ const o = s instanceof Error ? s.stack ?? s.message : s, l = {
828
+ tsp: (t == null ? void 0 : t.tsp) ?? (/* @__PURE__ */ new Date()).toISOString(),
829
+ msg: o,
830
+ source: "app",
831
+ level: (t == null ? void 0 : t.level) ?? "error"
832
+ };
833
+ return t != null && t.append ? this.appendToTable(j, [l]) : this.publishToTable(j, [l]);
834
+ }
835
+ async appendToTable(s, t, o) {
836
+ const l = x({ tablename: s, args: t, kwargs: o });
837
+ if (!l.success)
838
+ throw new Error(`Invalid table parameters: ${l.errors.map((a) => a.path + ": " + a.expected).join(", ")}`);
839
+ if (!this._swarmKey) throw new Error("SWARM_KEY not set in environment variables!");
840
+ if (!this._appKey) throw new Error("APP_KEY not set in environment variables!");
841
+ const i = `append.${this._swarmKey}.${this._appKey}.${s}`, e = { ...{
842
+ DEVICE_SERIAL_NUMBER: this._serialNumber,
843
+ DEVICE_KEY: this._deviceKey,
844
+ DEVICE_NAME: this._deviceName
845
+ }, ...o ?? {} };
846
+ return this._connection.call(i, t, e);
847
+ }
848
+ /**
849
+ * Publishes many rows in a single message (bulk insert) to the dedicated topic
850
+ * `bulk.{swarmKey}.{appKey}.{tablename}`. The platform inserts the whole batch
851
+ * atomically (all-or-nothing). Use for high-frequency data where one round-trip
852
+ * per row is too costly. Like publishToTable this is fire-and-forget — the ack
853
+ * confirms delivery to the router, not the DB insert. Use appendRowsToTable when
854
+ * you need the insert outcome.
855
+ */
856
+ async publishRowsToTable(s, t, o) {
857
+ const l = C({ tablename: s, rows: t, kwargs: o });
858
+ if (!l.success)
859
+ throw new Error(`Invalid bulk table parameters: ${l.errors.map((c) => c.path + ": " + c.expected).join(", ")}`);
860
+ if (!this._swarmKey) throw new Error("SWARM_KEY not set in environment variables!");
861
+ if (!this._appKey) throw new Error("APP_KEY not set in environment variables!");
862
+ const i = `bulk.${this._swarmKey}.${this._appKey}.${s}`;
863
+ return this.publish(i, [t], o);
864
+ }
865
+ /**
866
+ * Appends many rows in a single RPC (bulk insert) by calling the dedicated
867
+ * procedure `appendBulk.{swarmKey}.{appKey}.{tablename}`. The platform inserts
868
+ * the whole batch atomically (all-or-nothing): if any row is invalid the entire
869
+ * batch is rejected and nothing is persisted. Resolves with the RPC result
870
+ * (e.g. { success: true, count: N }). Prefer over publishRowsToTable when you
871
+ * need the insert outcome.
872
+ */
873
+ async appendRowsToTable(s, t, o) {
874
+ const l = C({ tablename: s, rows: t, kwargs: o });
875
+ if (!l.success)
876
+ throw new Error(`Invalid bulk table parameters: ${l.errors.map((a) => a.path + ": " + a.expected).join(", ")}`);
751
877
  if (!this._swarmKey) throw new Error("SWARM_KEY not set in environment variables!");
752
878
  if (!this._appKey) throw new Error("APP_KEY not set in environment variables!");
753
- const a = `append.${this._swarmKey}.${this._appKey}.${r}`, t = { ...{
879
+ const i = `appendBulk.${this._swarmKey}.${this._appKey}.${s}`, e = { ...{
754
880
  DEVICE_SERIAL_NUMBER: this._serialNumber,
755
881
  DEVICE_KEY: this._deviceKey,
756
882
  DEVICE_NAME: this._deviceName
757
883
  }, ...o ?? {} };
758
- return this._connection.call(a, s, t);
884
+ return this._connection.call(i, [t], e);
759
885
  }
760
- async subscribe(r, s, o) {
761
- return this._connection.subscribe(r, s);
886
+ async subscribe(s, t, o) {
887
+ return this._connection.subscribe(s, t);
762
888
  }
763
- async subscribeToTable(r, s, o) {
889
+ async subscribeToTable(s, t, o) {
764
890
  if (!this._swarmKey) throw new Error("SWARM_KEY not set in environment variables!");
765
891
  if (!this._appKey) throw new Error("APP_KEY not set in environment variables!");
766
- const c = `${this._swarmKey}.${this._appKey}.${r}`;
767
- return this.subscribe(c, s, o);
892
+ const l = `transformed.${s}`, i = await this.subscribe(l, t, o), c = (e, a, r) => {
893
+ const n = Array.isArray(e) ? e[0] : e, u = Array.isArray(n) ? n : n == null ? [] : [n];
894
+ for (const h of u)
895
+ t([h], a, r);
896
+ };
897
+ return await this.subscribe(`transformed.bulk.${s}`, c, o), i;
768
898
  }
769
- async call(r, s, o, c) {
770
- return this._connection.call(r, s, o, c);
899
+ async call(s, t, o, l) {
900
+ return this._connection.call(s, t, o, l);
771
901
  }
772
- async callDeviceFunction(r, s, o, c, a) {
773
- const u = `${this._swarmKey}.${r}.${this._appKey}.${this._env}.${s}`;
774
- return this._connection.call(u, o, c, a);
902
+ async callDeviceFunction(s, t, o, l, i) {
903
+ const c = `${this._swarmKey}.${s}.${this._appKey}.${this._env}.${t}`;
904
+ return this._connection.call(c, o, l, i);
775
905
  }
776
906
  /** @deprecated Use callDeviceFunction() instead. */
777
- async callFunction(r, s, o, c, a) {
778
- return console.warn("callFunction() is deprecated and will be removed in a future version. Use callDeviceFunction() instead."), this.callDeviceFunction(r, s, o, c, a);
907
+ async callFunction(s, t, o, l, i) {
908
+ return console.warn("callFunction() is deprecated and will be removed in a future version. Use callDeviceFunction() instead."), this.callDeviceFunction(s, t, o, l, i);
779
909
  }
780
- async registerDeviceFunction(r, s, o) {
781
- const c = `${this._swarmKey}.${this._deviceKey}.${this._appKey}.${this._env}.${r}`, a = await this._connection.register(c, s, o);
782
- return console.log(`Function registered for IronFlock topic '${r}'. (Full WAMP topic: '${c}')`), a;
910
+ async registerDeviceFunction(s, t, o) {
911
+ const l = `${this._swarmKey}.${this._deviceKey}.${this._appKey}.${this._env}.${s}`, i = await this._connection.register(l, t, o);
912
+ return console.log(`Function registered for IronFlock topic '${s}'. (Full WAMP topic: '${l}')`), i;
783
913
  }
784
914
  /** @deprecated Use registerDeviceFunction() instead. */
785
- async registerFunction(r, s, o) {
786
- return console.warn("registerFunction() is deprecated and will be removed in a future version. Use registerDeviceFunction() instead."), this.registerDeviceFunction(r, s, o);
915
+ async registerFunction(s, t, o) {
916
+ return console.warn("registerFunction() is deprecated and will be removed in a future version. Use registerDeviceFunction() instead."), this.registerDeviceFunction(s, t, o);
787
917
  }
788
- async register(r, s, o) {
789
- return this.registerDeviceFunction(r, s, o);
918
+ async register(s, t, o) {
919
+ return this.registerDeviceFunction(s, t, o);
790
920
  }
791
- async getHistory(r, s = { limit: 10 }) {
792
- if (!r) throw new Error("Tablename must not be empty!");
793
- s.offset == null && (s.offset = 0);
794
- const o = q(s);
921
+ async getHistory(s, t = { limit: 10 }) {
922
+ if (!s) throw new Error("Tablename must not be empty!");
923
+ t.offset == null && (t.offset = 0);
924
+ const o = Z(t);
795
925
  if (!o.success)
796
- throw new Error(`Invalid query parameters: ${o.errors.map((a) => a.path + ": " + a.expected).join(", ")}`);
797
- const c = `history.transformed.app.${this._appKey}.${r}`;
926
+ throw new Error(`Invalid query parameters: ${o.errors.map((i) => i.path + ": " + i.expected).join(", ")}`);
927
+ const l = `history.transformed.${s}`;
798
928
  try {
799
- return await this._connection.call(c, [s]);
800
- } catch (a) {
801
- const u = String(a);
802
- return u.includes("no_such_procedure") || u.includes("no callee registered") ? (console.error(`Get history failed: History service procedure '${c}' not registered`), null) : (console.error(`Get history failed: ${a}`), null);
929
+ return await this._connection.call(l, [t]);
930
+ } catch (i) {
931
+ const c = String(i);
932
+ return c.includes("no_such_procedure") || c.includes("no callee registered") ? (console.error(`Get history failed: History service procedure '${l}' not registered`), null) : (console.error(`Get history failed: ${i}`), null);
803
933
  }
804
934
  }
805
- async setDeviceLocation(r, s) {
806
- const o = X({ longitude: r, latitude: s });
935
+ async setDeviceLocation(s, t) {
936
+ const o = z({ longitude: s, latitude: t });
807
937
  if (!o.success)
808
- throw new Error(`Invalid location parameters: ${o.errors.map((u) => u.path + ": " + u.expected).join(", ")}`);
809
- const c = { long: r, lat: s }, a = {
938
+ throw new Error(`Invalid location parameters: ${o.errors.map((c) => c.path + ": " + c.expected).join(", ")}`);
939
+ const l = { long: s, lat: t }, i = {
810
940
  DEVICE_SERIAL_NUMBER: this._serialNumber,
811
941
  DEVICE_KEY: this._deviceKey,
812
942
  DEVICE_NAME: this._deviceName
@@ -814,15 +944,15 @@ class L {
814
944
  try {
815
945
  return await this._connection.call(
816
946
  "ironflock.location_service.update",
817
- [c],
818
- a
947
+ [l],
948
+ i
819
949
  );
820
- } catch (u) {
821
- return console.error(`Set location failed: ${u}`), null;
950
+ } catch (c) {
951
+ return console.error(`Set location failed: ${c}`), null;
822
952
  }
823
953
  }
824
- getRemoteAccessUrlForPort(r) {
825
- return this._deviceKey && this._appName ? `https://${this._deviceKey}-${this._appName.toLowerCase()}-${r}.app.ironflock.com` : null;
954
+ getRemoteAccessUrlForPort(s) {
955
+ return this._deviceKey && this._appName ? `https://${this._deviceKey}-${this._appName.toLowerCase()}-${s}.app.ironflock.com` : null;
826
956
  }
827
957
  /**
828
958
  * Create an IronFlock instance by fetching configuration from a server endpoint.
@@ -834,22 +964,24 @@ class L {
834
964
  * await flock.start();
835
965
  * ```
836
966
  */
837
- static async fromServer(r) {
838
- const s = await fetch(r);
839
- if (!s.ok)
840
- throw new Error(`Failed to fetch IronFlock config from ${r}: ${s.status} ${s.statusText}`);
841
- const o = await s.json();
967
+ static async fromServer(s) {
968
+ const t = await fetch(s);
969
+ if (!t.ok)
970
+ throw new Error(`Failed to fetch IronFlock config from ${s}: ${t.status} ${t.statusText}`);
971
+ const o = await t.json();
842
972
  return new L(o);
843
973
  }
844
974
  }
845
975
  export {
846
976
  I as CrossbarConnection,
977
+ j as ERROR_LOGS_TABLE,
847
978
  L as IronFlock,
848
979
  M as Stage,
849
- te as validateCallParams,
850
- X as validateLocationParams,
851
- Z as validatePublishParams,
852
- C as validateTableParams,
853
- q as validateTableQueryParams
980
+ C as validateBulkTableParams,
981
+ se as validateCallParams,
982
+ z as validateLocationParams,
983
+ ee as validatePublishParams,
984
+ x as validateTableParams,
985
+ Z as validateTableQueryParams
854
986
  };
855
987
  //# sourceMappingURL=index.mjs.map