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