@wandelbots/nova-js 3.2.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/README.md +32 -136
  2. package/dist/AutoReconnectingWebsocket-Qcrbm3Kb.d.cts +69 -0
  3. package/dist/AutoReconnectingWebsocket-Qcrbm3Kb.d.cts.map +1 -0
  4. package/dist/AutoReconnectingWebsocket-dHe-kceU.d.mts +69 -0
  5. package/dist/AutoReconnectingWebsocket-dHe-kceU.d.mts.map +1 -0
  6. package/dist/LoginWithAuth0-CBD9BXXz.cjs +264 -0
  7. package/dist/LoginWithAuth0-CBD9BXXz.cjs.map +1 -0
  8. package/dist/LoginWithAuth0-wQB-Sol1.mjs +217 -0
  9. package/dist/LoginWithAuth0-wQB-Sol1.mjs.map +1 -0
  10. package/dist/NovaClient-B8XM3OPO.mjs +2057 -0
  11. package/dist/NovaClient-B8XM3OPO.mjs.map +1 -0
  12. package/dist/NovaClient-CV7ooIkD.d.cts +349 -0
  13. package/dist/NovaClient-CV7ooIkD.d.cts.map +1 -0
  14. package/dist/NovaClient-D2EItmiH.cjs +2137 -0
  15. package/dist/NovaClient-D2EItmiH.cjs.map +1 -0
  16. package/dist/NovaClient-qJnHcx2s.d.mts +349 -0
  17. package/dist/NovaClient-qJnHcx2s.d.mts.map +1 -0
  18. package/dist/index.cjs +42 -386
  19. package/dist/index.cjs.map +1 -1
  20. package/dist/index.d.cts +73 -0
  21. package/dist/index.d.cts.map +1 -0
  22. package/dist/index.d.mts +73 -0
  23. package/dist/index.d.mts.map +1 -0
  24. package/dist/index.mjs +36 -0
  25. package/dist/index.mjs.map +1 -0
  26. package/dist/lib/v1/index.cjs +190 -2940
  27. package/dist/lib/v1/index.cjs.map +1 -1
  28. package/dist/lib/v1/index.d.cts +62 -0
  29. package/dist/lib/v1/index.d.cts.map +1 -0
  30. package/dist/lib/v1/index.d.mts +62 -0
  31. package/dist/lib/v1/index.d.mts.map +1 -0
  32. package/dist/lib/v1/index.mjs +182 -0
  33. package/dist/lib/v1/index.mjs.map +1 -0
  34. package/dist/lib/v2/index.cjs +1821 -1468
  35. package/dist/lib/v2/index.cjs.map +1 -1
  36. package/dist/lib/v2/index.d.cts +118 -0
  37. package/dist/lib/v2/index.d.cts.map +1 -0
  38. package/dist/lib/v2/index.d.mts +118 -0
  39. package/dist/lib/v2/index.d.mts.map +1 -0
  40. package/dist/lib/v2/index.mjs +1822 -0
  41. package/dist/lib/v2/index.mjs.map +1 -0
  42. package/package.json +21 -19
  43. package/src/LoginWithAuth0.ts +12 -12
  44. package/src/index.ts +2 -0
  45. package/src/lib/converters.ts +5 -23
  46. package/src/lib/v1/MotionStreamConnection.ts +0 -1
  47. package/src/lib/v1/NovaClient.ts +18 -0
  48. package/src/lib/v1/index.ts +6 -0
  49. package/src/lib/v1/mock/MockNovaInstance.ts +0 -1
  50. package/src/lib/v1/wandelscriptUtils.ts +22 -0
  51. package/src/lib/v2/NovaClient.ts +14 -7
  52. package/src/lib/v2/index.ts +1 -0
  53. package/src/lib/v2/mock/MockNovaInstance.ts +411 -21
  54. package/src/lib/v2/wandelscriptUtils.ts +27 -0
  55. package/dist/LoginWithAuth0.d.ts +0 -7
  56. package/dist/LoginWithAuth0.d.ts.map +0 -1
  57. package/dist/chunk-B2C22PTK.js +0 -53
  58. package/dist/chunk-B2C22PTK.js.map +0 -1
  59. package/dist/chunk-I3PUV6ZD.js +0 -286
  60. package/dist/chunk-I3PUV6ZD.js.map +0 -1
  61. package/dist/index.d.ts +0 -6
  62. package/dist/index.d.ts.map +0 -1
  63. package/dist/index.js +0 -60
  64. package/dist/index.js.map +0 -1
  65. package/dist/lib/AutoReconnectingWebsocket.d.ts +0 -43
  66. package/dist/lib/AutoReconnectingWebsocket.d.ts.map +0 -1
  67. package/dist/lib/availableStorage.d.ts +0 -15
  68. package/dist/lib/availableStorage.d.ts.map +0 -1
  69. package/dist/lib/converters.d.ts +0 -26
  70. package/dist/lib/converters.d.ts.map +0 -1
  71. package/dist/lib/errorHandling.d.ts +0 -15
  72. package/dist/lib/errorHandling.d.ts.map +0 -1
  73. package/dist/lib/v1/ConnectedMotionGroup.d.ts +0 -77
  74. package/dist/lib/v1/ConnectedMotionGroup.d.ts.map +0 -1
  75. package/dist/lib/v1/JoggerConnection.d.ts +0 -94
  76. package/dist/lib/v1/JoggerConnection.d.ts.map +0 -1
  77. package/dist/lib/v1/MotionStreamConnection.d.ts +0 -26
  78. package/dist/lib/v1/MotionStreamConnection.d.ts.map +0 -1
  79. package/dist/lib/v1/NovaCellAPIClient.d.ts +0 -68
  80. package/dist/lib/v1/NovaCellAPIClient.d.ts.map +0 -1
  81. package/dist/lib/v1/NovaClient.d.ts +0 -67
  82. package/dist/lib/v1/NovaClient.d.ts.map +0 -1
  83. package/dist/lib/v1/ProgramStateConnection.d.ts +0 -57
  84. package/dist/lib/v1/ProgramStateConnection.d.ts.map +0 -1
  85. package/dist/lib/v1/getLatestTrajectories.d.ts +0 -4
  86. package/dist/lib/v1/getLatestTrajectories.d.ts.map +0 -1
  87. package/dist/lib/v1/index.d.ts +0 -9
  88. package/dist/lib/v1/index.d.ts.map +0 -1
  89. package/dist/lib/v1/index.js +0 -2653
  90. package/dist/lib/v1/index.js.map +0 -1
  91. package/dist/lib/v1/mock/MockNovaInstance.d.ts +0 -13
  92. package/dist/lib/v1/mock/MockNovaInstance.d.ts.map +0 -1
  93. package/dist/lib/v1/motionStateUpdate.d.ts +0 -4
  94. package/dist/lib/v1/motionStateUpdate.d.ts.map +0 -1
  95. package/dist/lib/v2/NovaCellAPIClient.d.ts +0 -62
  96. package/dist/lib/v2/NovaCellAPIClient.d.ts.map +0 -1
  97. package/dist/lib/v2/NovaClient.d.ts +0 -60
  98. package/dist/lib/v2/NovaClient.d.ts.map +0 -1
  99. package/dist/lib/v2/index.d.ts +0 -4
  100. package/dist/lib/v2/index.d.ts.map +0 -1
  101. package/dist/lib/v2/index.js +0 -1196
  102. package/dist/lib/v2/index.js.map +0 -1
  103. package/dist/lib/v2/mock/MockNovaInstance.d.ts +0 -13
  104. package/dist/lib/v2/mock/MockNovaInstance.d.ts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NovaClient-qJnHcx2s.d.mts","names":[],"sources":["../src/lib/v1/wandelscriptUtils.ts","../src/lib/v1/ConnectedMotionGroup.ts","../src/lib/v1/MotionStreamConnection.ts","../src/lib/v1/JoggerConnection.ts","../src/lib/v1/NovaCellAPIClient.ts","../src/lib/v1/NovaClient.ts"],"sourcesContent":[],"mappings":"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"}
package/dist/index.cjs CHANGED
@@ -1,394 +1,50 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var __async = (__this, __arguments, generator) => {
30
- return new Promise((resolve, reject) => {
31
- var fulfilled = (value) => {
32
- try {
33
- step(generator.next(value));
34
- } catch (e) {
35
- reject(e);
36
- }
37
- };
38
- var rejected = (value) => {
39
- try {
40
- step(generator.throw(value));
41
- } catch (e) {
42
- reject(e);
43
- }
44
- };
45
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
46
- step((generator = generator.apply(__this, __arguments)).next());
47
- });
48
- };
1
+ const require_LoginWithAuth0 = require('./LoginWithAuth0-CBD9BXXz.cjs');
2
+ const require_NovaClient = require('./NovaClient-D2EItmiH.cjs');
3
+ let axios = require("axios");
49
4
 
50
- // src/index.ts
51
- var index_exports = {};
52
- __export(index_exports, {
53
- AutoReconnectingWebsocket: () => AutoReconnectingWebsocket,
54
- availableStorage: () => availableStorage,
55
- degreesToRadians: () => degreesToRadians,
56
- delay: () => delay,
57
- isSameCoordinateSystem: () => isSameCoordinateSystem,
58
- loginWithAuth0: () => loginWithAuth0,
59
- makeErrorMessage: () => makeErrorMessage,
60
- makeShortErrorMessage: () => makeShortErrorMessage,
61
- makeUrlQueryString: () => makeUrlQueryString,
62
- poseToWandelscriptString: () => poseToWandelscriptString,
63
- radiansToDegrees: () => radiansToDegrees,
64
- tryParseJson: () => tryParseJson,
65
- tryStringifyJson: () => tryStringifyJson
66
- });
67
- module.exports = __toCommonJS(index_exports);
68
-
69
- // src/lib/AutoReconnectingWebsocket.ts
70
- var import_reconnecting_websocket = __toESM(require("reconnecting-websocket"), 1);
71
- var AutoReconnectingWebsocket = class extends import_reconnecting_websocket.default {
72
- constructor(targetUrl, opts = {}) {
73
- console.log("Opening websocket to", targetUrl);
74
- super(() => this.targetUrl || targetUrl, void 0, {
75
- startClosed: true
76
- });
77
- this.opts = opts;
78
- this.disposed = false;
79
- Object.defineProperty(this, "url", {
80
- get() {
81
- return this.targetUrl;
82
- }
83
- });
84
- this.targetUrl = targetUrl;
85
- this.addEventListener("open", () => {
86
- console.log(`Websocket to ${this.url} opened`);
87
- });
88
- this.addEventListener("message", (ev) => {
89
- if (!this.receivedFirstMessage) {
90
- this.receivedFirstMessage = ev;
91
- }
92
- });
93
- this.addEventListener("close", () => {
94
- console.log(`Websocket to ${this.url} closed`);
95
- });
96
- const origReconnect = this.reconnect;
97
- this.reconnect = () => {
98
- if (this.opts.mock) {
99
- this.opts.mock.handleWebsocketConnection(this);
100
- } else {
101
- origReconnect.apply(this);
102
- }
103
- };
104
- this.reconnect();
105
- }
106
- changeUrl(targetUrl) {
107
- this.receivedFirstMessage = void 0;
108
- this.targetUrl = targetUrl;
109
- this.reconnect();
110
- }
111
- sendJson(data) {
112
- if (this.opts.mock) {
113
- this.opts.mock.handleWebsocketMessage(this, JSON.stringify(data));
114
- } else {
115
- this.send(JSON.stringify(data));
116
- }
117
- }
118
- /**
119
- * Permanently close this websocket and indicate that
120
- * this object should not be used again.
121
- **/
122
- dispose() {
123
- this.close();
124
- this.disposed = true;
125
- if (this.opts.onDispose) {
126
- this.opts.onDispose();
127
- }
128
- }
129
- /**
130
- * Returns a promise that resolves once the websocket
131
- * is in the OPEN state. */
132
- opened() {
133
- return __async(this, null, function* () {
134
- return new Promise((resolve, reject) => {
135
- if (this.readyState === WebSocket.OPEN) {
136
- resolve();
137
- } else {
138
- this.addEventListener("open", () => resolve());
139
- this.addEventListener("error", reject);
140
- }
141
- });
142
- });
143
- }
144
- /**
145
- * Returns a promise that resolves once the websocket
146
- * is in the CLOSED state. */
147
- closed() {
148
- return __async(this, null, function* () {
149
- return new Promise((resolve, reject) => {
150
- if (this.readyState === WebSocket.CLOSED) {
151
- resolve();
152
- } else {
153
- this.addEventListener("close", () => resolve());
154
- this.addEventListener("error", reject);
155
- }
156
- });
157
- });
158
- }
159
- /**
160
- * Returns a promise that resolves when the first message
161
- * is received from the websocket. Resolves immediately if
162
- * the first message has already been received.
163
- */
164
- firstMessage() {
165
- return __async(this, null, function* () {
166
- if (this.receivedFirstMessage) {
167
- return this.receivedFirstMessage;
168
- }
169
- return new Promise((resolve, reject) => {
170
- const onMessage = (ev) => {
171
- this.receivedFirstMessage = ev;
172
- this.removeEventListener("message", onMessage);
173
- this.removeEventListener("error", onError);
174
- resolve(ev);
175
- };
176
- const onError = (ev) => {
177
- this.removeEventListener("message", onMessage);
178
- this.removeEventListener("error", onError);
179
- reject(ev);
180
- };
181
- this.addEventListener("message", onMessage);
182
- this.addEventListener("error", onError);
183
- });
184
- });
185
- }
186
- /**
187
- * Returns a promise that resolves when the next message
188
- * is received from the websocket.
189
- */
190
- nextMessage() {
191
- return __async(this, null, function* () {
192
- return new Promise((resolve, reject) => {
193
- const onMessage = (ev) => {
194
- this.removeEventListener("message", onMessage);
195
- this.removeEventListener("error", onError);
196
- resolve(ev);
197
- };
198
- const onError = (ev) => {
199
- this.removeEventListener("message", onMessage);
200
- this.removeEventListener("error", onError);
201
- reject(ev);
202
- };
203
- this.addEventListener("message", onMessage);
204
- this.addEventListener("error", onError);
205
- });
206
- });
207
- }
208
- };
209
-
210
- // src/lib/availableStorage.ts
211
- var AvailableStorage = class {
212
- constructor() {
213
- this.available = typeof window !== "undefined" && !!window.localStorage;
214
- }
215
- getJSON(key) {
216
- if (!this.available) return null;
217
- const result = window.localStorage.getItem(key);
218
- if (result === null) return null;
219
- try {
220
- return JSON.parse(result);
221
- } catch (err) {
222
- return null;
223
- }
224
- }
225
- setJSON(key, obj) {
226
- if (!this.available) return null;
227
- window.localStorage.setItem(key, JSON.stringify(obj));
228
- }
229
- delete(key) {
230
- if (!this.available) return null;
231
- window.localStorage.removeItem(key);
232
- }
233
- setString(key, value) {
234
- if (!this.available) return null;
235
- window.localStorage.setItem(key, value);
236
- }
237
- getString(key) {
238
- if (!this.available) return null;
239
- return window.localStorage.getItem(key);
240
- }
241
- };
242
- var availableStorage = new AvailableStorage();
243
-
244
- // src/lib/converters.ts
245
- function tryParseJson(json) {
246
- try {
247
- return JSON.parse(json);
248
- } catch (e) {
249
- return void 0;
250
- }
251
- }
252
- function tryStringifyJson(json) {
253
- try {
254
- return JSON.stringify(json);
255
- } catch (e) {
256
- return void 0;
257
- }
258
- }
259
- function makeUrlQueryString(obj) {
260
- const str = new URLSearchParams(obj).toString();
261
- return str ? `?${str}` : "";
262
- }
263
- function radiansToDegrees(radians) {
264
- return radians * (180 / Math.PI);
265
- }
266
- function degreesToRadians(degrees) {
267
- return degrees * (Math.PI / 180);
268
- }
269
- function poseToWandelscriptString(pose) {
270
- var _a, _b, _c, _d, _e, _f;
271
- const position = [pose.position.x, pose.position.y, pose.position.z];
272
- const orientation = [
273
- (_b = (_a = pose.orientation) == null ? void 0 : _a.x) != null ? _b : 0,
274
- (_d = (_c = pose.orientation) == null ? void 0 : _c.y) != null ? _d : 0,
275
- (_f = (_e = pose.orientation) == null ? void 0 : _e.z) != null ? _f : 0
276
- ];
277
- const positionValues = position.map((v) => v.toFixed(1));
278
- const rotationValues = orientation.map((v) => v.toFixed(4));
279
- return `(${positionValues.concat(rotationValues).join(", ")})`;
280
- }
281
- function isSameCoordinateSystem(firstCoordSystem, secondCoordSystem) {
282
- if (!firstCoordSystem) firstCoordSystem = "world";
283
- if (!secondCoordSystem) secondCoordSystem = "world";
284
- return firstCoordSystem === secondCoordSystem;
285
- }
286
-
287
- // src/lib/errorHandling.ts
288
- var import_axios = require("axios");
5
+ //#region src/lib/errorHandling.ts
289
6
  function delay(ms) {
290
- return new Promise((resolve) => setTimeout(resolve, ms));
7
+ return new Promise((resolve) => setTimeout(resolve, ms));
291
8
  }
9
+ /**
10
+ * @deprecated Use makeErrorMessage instead and truncate the error for display as needed, or make a situation-specific localized error message based on a response code
11
+ */
292
12
  function makeShortErrorMessage(err) {
293
- return makeErrorMessage(err);
294
- }
13
+ return makeErrorMessage(err);
14
+ }
15
+ /**
16
+ * Attempts to make a helpful error message from an unknown thrown error
17
+ * or promise rejection.
18
+ *
19
+ * This function is mainly to aid debugging and good bug reports. For
20
+ * expected errors encountered by end users, it's more ideal to catch
21
+ * the specific error code and provide a localized app-specific error message.
22
+ */
295
23
  function makeErrorMessage(err) {
296
- var _a, _b, _c, _d, _e, _f, _g, _h;
297
- if (err instanceof import_axios.AxiosError) {
298
- if (err.response) {
299
- return `${(_a = err.response) == null ? void 0 : _a.status} ${(_b = err.response) == null ? void 0 : _b.statusText} from ${((_d = (_c = err.response) == null ? void 0 : _c.config.method) == null ? void 0 : _d.toUpperCase()) || "accessing"} ${(_e = err.response) == null ? void 0 : _e.config.url}: ${JSON.stringify((_f = err.response) == null ? void 0 : _f.data)}`;
300
- } else if (err.config) {
301
- if (err.code === "ERR_NETWORK") {
302
- return `${err.message} from ${((_g = err.config.method) == null ? void 0 : _g.toUpperCase()) || "accessing"} ${err.config.url}. This error can happen because of either connection issues or server CORS policy.`;
303
- } else {
304
- return `${err.message} from ${((_h = err.config.method) == null ? void 0 : _h.toUpperCase()) || "accessing"} ${err.config.url}`;
305
- }
306
- }
307
- } else if (err instanceof Error) {
308
- return err.message;
309
- } else if (typeof err === "string") {
310
- return err;
311
- } else if (typeof err === "object") {
312
- return tryStringifyJson(err) || `Unserializable object ${err}`;
313
- }
314
- return `${err}`;
24
+ if (err instanceof axios.AxiosError) {
25
+ if (err.response) return `${err.response?.status} ${err.response?.statusText} from ${err.response?.config.method?.toUpperCase() || "accessing"} ${err.response?.config.url}: ${JSON.stringify(err.response?.data)}`;
26
+ else if (err.config) if (err.code === "ERR_NETWORK") return `${err.message} from ${err.config.method?.toUpperCase() || "accessing"} ${err.config.url}. This error can happen because of either connection issues or server CORS policy.`;
27
+ else return `${err.message} from ${err.config.method?.toUpperCase() || "accessing"} ${err.config.url}`;
28
+ } else if (err instanceof Error) return err.message;
29
+ else if (typeof err === "string") return err;
30
+ else if (typeof err === "object") return require_NovaClient.tryStringifyJson(err) || `Unserializable object ${err}`;
31
+ return `${err}`;
315
32
  }
316
33
 
317
- // src/LoginWithAuth0.ts
318
- var DOMAIN_SUFFIX = "wandelbots.io";
319
- var auth0ConfigMap = {
320
- dev: {
321
- domain: `https://auth.portal.dev.${DOMAIN_SUFFIX}`,
322
- clientId: "fLbJD0RLp5r2Dpucm5j8BjwMR6Hunfha"
323
- },
324
- stg: {
325
- domain: `https://auth.portal.stg.${DOMAIN_SUFFIX}`,
326
- clientId: "joVDeD9e786WzFNSGCqoVq7HNkWt5j6s"
327
- },
328
- prod: {
329
- domain: `https://auth.portal.${DOMAIN_SUFFIX}`,
330
- clientId: "J7WJUi38xVQdJAEBNRT9Xw1b0fXDb4J2"
331
- }
332
- };
333
- var getAuth0Config = (instanceUrl) => {
334
- if (instanceUrl.includes(`dev.${DOMAIN_SUFFIX}`)) return auth0ConfigMap.dev;
335
- if (instanceUrl.includes(`stg.${DOMAIN_SUFFIX}`)) return auth0ConfigMap.stg;
336
- if (instanceUrl.includes(DOMAIN_SUFFIX)) return auth0ConfigMap.prod;
337
- throw new Error(
338
- "Unsupported instance URL. Cannot determine Auth0 configuration."
339
- );
340
- };
341
- var loginWithAuth0 = (instanceUrl) => __async(null, null, function* () {
342
- var _a;
343
- if (typeof window === "undefined") {
344
- throw new Error(
345
- `Access token must be set to use NovaClient when not in a browser environment.`
346
- );
347
- }
348
- const auth0Config = getAuth0Config(instanceUrl);
349
- if (new URL(instanceUrl).origin === window.location.origin) {
350
- window.location.reload();
351
- throw new Error(
352
- "Failed to reload page to get auth details, please refresh manually"
353
- );
354
- }
355
- const { Auth0Client } = yield import("@auth0/auth0-spa-js");
356
- const auth0Client = new Auth0Client({
357
- domain: auth0Config.domain,
358
- clientId: (_a = auth0Config.clientId) != null ? _a : "",
359
- useRefreshTokens: false,
360
- authorizationParams: {
361
- audience: "nova-api",
362
- redirect_uri: window.location.origin
363
- }
364
- });
365
- if (window.location.search.includes("code=") && window.location.search.includes("state=")) {
366
- const { appState } = yield auth0Client.handleRedirectCallback();
367
- window.history.replaceState(
368
- {},
369
- document.title,
370
- (appState == null ? void 0 : appState.returnTo) || window.location.pathname
371
- );
372
- } else {
373
- yield auth0Client.loginWithRedirect();
374
- }
375
- const accessToken = yield auth0Client.getTokenSilently();
376
- return accessToken;
377
- });
378
- // Annotate the CommonJS export names for ESM import in node:
379
- 0 && (module.exports = {
380
- AutoReconnectingWebsocket,
381
- availableStorage,
382
- degreesToRadians,
383
- delay,
384
- isSameCoordinateSystem,
385
- loginWithAuth0,
386
- makeErrorMessage,
387
- makeShortErrorMessage,
388
- makeUrlQueryString,
389
- poseToWandelscriptString,
390
- radiansToDegrees,
391
- tryParseJson,
392
- tryStringifyJson
393
- });
34
+ //#endregion
35
+ exports.AutoReconnectingWebsocket = require_LoginWithAuth0.AutoReconnectingWebsocket;
36
+ exports.NovaClient = require_NovaClient.NovaClient;
37
+ exports.XYZ_TO_VECTOR = require_NovaClient.XYZ_TO_VECTOR;
38
+ exports.availableStorage = require_LoginWithAuth0.availableStorage;
39
+ exports.degreesToRadians = require_NovaClient.degreesToRadians;
40
+ exports.delay = delay;
41
+ exports.isSameCoordinateSystem = require_NovaClient.isSameCoordinateSystem;
42
+ exports.loginWithAuth0 = require_LoginWithAuth0.loginWithAuth0;
43
+ exports.makeErrorMessage = makeErrorMessage;
44
+ exports.makeShortErrorMessage = makeShortErrorMessage;
45
+ exports.makeUrlQueryString = require_NovaClient.makeUrlQueryString;
46
+ exports.poseToWandelscriptString = require_NovaClient.poseToWandelscriptString;
47
+ exports.radiansToDegrees = require_NovaClient.radiansToDegrees;
48
+ exports.tryParseJson = require_NovaClient.tryParseJson;
49
+ exports.tryStringifyJson = require_NovaClient.tryStringifyJson;
394
50
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/lib/AutoReconnectingWebsocket.ts","../src/lib/availableStorage.ts","../src/lib/converters.ts","../src/lib/errorHandling.ts","../src/LoginWithAuth0.ts"],"sourcesContent":["export * from \"./lib/AutoReconnectingWebsocket\"\nexport * from \"./lib/availableStorage\"\nexport * from \"./lib/converters\"\nexport * from \"./lib/errorHandling\"\nexport * from \"./LoginWithAuth0\"\n","import ReconnectingWebSocket, { type ErrorEvent } from \"reconnecting-websocket\"\nimport type * as v1 from \"./v1/mock/MockNovaInstance\"\nimport type * as v2 from \"./v2/mock/MockNovaInstance\"\n\nexport class AutoReconnectingWebsocket extends ReconnectingWebSocket {\n receivedFirstMessage?: MessageEvent\n targetUrl: string\n disposed = false\n\n constructor(\n targetUrl: string,\n readonly opts: {\n mock?: v1.MockNovaInstance | v2.MockNovaInstance\n onDispose?: () => void\n } = {},\n ) {\n console.log(\"Opening websocket to\", targetUrl)\n\n super(() => this.targetUrl || targetUrl, undefined, {\n startClosed: true,\n })\n\n // Reconnecting websocket doesn't set this properly with startClosed\n Object.defineProperty(this, \"url\", {\n get() {\n return this.targetUrl\n },\n })\n\n this.targetUrl = targetUrl\n\n this.addEventListener(\"open\", () => {\n console.log(`Websocket to ${this.url} opened`)\n })\n\n this.addEventListener(\"message\", (ev) => {\n if (!this.receivedFirstMessage) {\n this.receivedFirstMessage = ev\n }\n })\n\n this.addEventListener(\"close\", () => {\n console.log(`Websocket to ${this.url} closed`)\n })\n\n const origReconnect = this.reconnect\n this.reconnect = () => {\n if (this.opts.mock) {\n this.opts.mock.handleWebsocketConnection(this)\n } else {\n origReconnect.apply(this)\n }\n }\n\n this.reconnect()\n }\n\n changeUrl(targetUrl: string) {\n this.receivedFirstMessage = undefined\n this.targetUrl = targetUrl\n this.reconnect()\n }\n\n sendJson(data: unknown) {\n if (this.opts.mock) {\n this.opts.mock.handleWebsocketMessage(this, JSON.stringify(data))\n } else {\n this.send(JSON.stringify(data))\n }\n }\n\n /**\n * Permanently close this websocket and indicate that\n * this object should not be used again.\n **/\n dispose() {\n this.close()\n this.disposed = true\n if (this.opts.onDispose) {\n this.opts.onDispose()\n }\n }\n\n /**\n * Returns a promise that resolves once the websocket\n * is in the OPEN state. */\n async opened() {\n return new Promise<void>((resolve, reject) => {\n if (this.readyState === WebSocket.OPEN) {\n resolve()\n } else {\n this.addEventListener(\"open\", () => resolve())\n this.addEventListener(\"error\", reject)\n }\n })\n }\n\n /**\n * Returns a promise that resolves once the websocket\n * is in the CLOSED state. */\n async closed() {\n return new Promise<void>((resolve, reject) => {\n if (this.readyState === WebSocket.CLOSED) {\n resolve()\n } else {\n this.addEventListener(\"close\", () => resolve())\n this.addEventListener(\"error\", reject)\n }\n })\n }\n\n /**\n * Returns a promise that resolves when the first message\n * is received from the websocket. Resolves immediately if\n * the first message has already been received.\n */\n async firstMessage() {\n if (this.receivedFirstMessage) {\n return this.receivedFirstMessage\n }\n\n return new Promise<MessageEvent>((resolve, reject) => {\n const onMessage = (ev: MessageEvent) => {\n this.receivedFirstMessage = ev\n this.removeEventListener(\"message\", onMessage)\n this.removeEventListener(\"error\", onError)\n resolve(ev)\n }\n\n const onError = (ev: ErrorEvent) => {\n this.removeEventListener(\"message\", onMessage)\n this.removeEventListener(\"error\", onError)\n reject(ev)\n }\n\n this.addEventListener(\"message\", onMessage)\n this.addEventListener(\"error\", onError)\n })\n }\n\n /**\n * Returns a promise that resolves when the next message\n * is received from the websocket.\n */\n async nextMessage() {\n return new Promise<MessageEvent>((resolve, reject) => {\n const onMessage = (ev: MessageEvent) => {\n this.removeEventListener(\"message\", onMessage)\n this.removeEventListener(\"error\", onError)\n resolve(ev)\n }\n\n const onError = (ev: ErrorEvent) => {\n this.removeEventListener(\"message\", onMessage)\n this.removeEventListener(\"error\", onError)\n reject(ev)\n }\n\n this.addEventListener(\"message\", onMessage)\n this.addEventListener(\"error\", onError)\n })\n }\n}\n","/**\n * Safety wrapper around browser localStorage providing context availability\n * checks and JSON parsing\n */\nclass AvailableStorage {\n available = typeof window !== \"undefined\" && !!window.localStorage\n\n getJSON<T>(key: string): Partial<T> | null {\n if (!this.available) return null\n\n const result = window.localStorage.getItem(key)\n if (result === null) return null\n\n try {\n return JSON.parse(result)\n } catch (err) {\n return null\n }\n }\n\n setJSON(key: string, obj: unknown) {\n if (!this.available) return null\n\n window.localStorage.setItem(key, JSON.stringify(obj))\n }\n\n delete(key: string) {\n if (!this.available) return null\n\n window.localStorage.removeItem(key)\n }\n\n setString(key: string, value: string) {\n if (!this.available) return null\n\n window.localStorage.setItem(key, value)\n }\n\n getString(key: string): string | null {\n if (!this.available) return null\n\n return window.localStorage.getItem(key)\n }\n}\n\nexport const availableStorage = new AvailableStorage()\n","import type { Pose } from \"@wandelbots/nova-api/v1\"\n\n/** Try to parse something as JSON; return undefined if we can't */\n// biome-ignore lint/suspicious/noExplicitAny: it's json\nexport function tryParseJson(json: unknown): any {\n try {\n return JSON.parse(json as string)\n } catch {\n return undefined\n }\n}\n\n/** Try to turn something into JSON; return undefined if we can't */\nexport function tryStringifyJson(json: unknown): string | undefined {\n try {\n return JSON.stringify(json)\n } catch {\n return undefined\n }\n}\n\n/**\n * Converts object parameters to query string.\n * e.g. { a: \"1\", b: \"2\" } => \"?a=1&b=2\"\n * {} => \"\"\n */\nexport function makeUrlQueryString(obj: Record<string, string>): string {\n const str = new URLSearchParams(obj).toString()\n return str ? `?${str}` : \"\"\n}\n\n/** Convert radians to degrees */\nexport function radiansToDegrees(radians: number): number {\n return radians * (180 / Math.PI)\n}\n\n/** Convert degrees to radians */\nexport function degreesToRadians(degrees: number): number {\n return degrees * (Math.PI / 180)\n}\n\n/**\n * Convert a Pose object representing a motion group position\n * into a string which represents that pose in Wandelscript.\n */\nexport function poseToWandelscriptString(\n pose: Pick<Pose, \"position\" | \"orientation\">,\n) {\n const position = [pose.position.x, pose.position.y, pose.position.z]\n const orientation = [\n pose.orientation?.x ?? 0,\n pose.orientation?.y ?? 0,\n pose.orientation?.z ?? 0,\n ]\n\n const positionValues = position.map((v) => v.toFixed(1))\n // Rotation needs more precision since it's in radians\n const rotationValues = orientation.map((v) => v.toFixed(4))\n\n return `(${positionValues.concat(rotationValues).join(\", \")})`\n}\n\n/**\n * Check for coordinate system id equivalence, accounting for the \"world\" default\n * on empty/undefined values.\n */\nexport function isSameCoordinateSystem(\n firstCoordSystem: string | undefined,\n secondCoordSystem: string | undefined,\n) {\n if (!firstCoordSystem) firstCoordSystem = \"world\"\n if (!secondCoordSystem) secondCoordSystem = \"world\"\n\n return firstCoordSystem === secondCoordSystem\n}\n","import { AxiosError } from \"axios\"\nimport { tryStringifyJson } from \"./converters\"\n\nexport function delay(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms))\n}\n\n/**\n * @deprecated Use makeErrorMessage instead and truncate the error for display as needed, or make a situation-specific localized error message based on a response code\n */\nexport function makeShortErrorMessage(err: unknown) {\n return makeErrorMessage(err)\n}\n\n/**\n * Attempts to make a helpful error message from an unknown thrown error\n * or promise rejection.\n *\n * This function is mainly to aid debugging and good bug reports. For\n * expected errors encountered by end users, it's more ideal to catch\n * the specific error code and provide a localized app-specific error message.\n */\nexport function makeErrorMessage(err: unknown): string {\n if (err instanceof AxiosError) {\n if (err.response) {\n return `${err.response?.status} ${err.response?.statusText} from ${err.response?.config.method?.toUpperCase() || \"accessing\"} ${err.response?.config.url}: ${JSON.stringify(err.response?.data)}`\n } else if (err.config) {\n if (err.code === \"ERR_NETWORK\") {\n return `${err.message} from ${err.config.method?.toUpperCase() || \"accessing\"} ${err.config.url}. This error can happen because of either connection issues or server CORS policy.`\n } else {\n return `${err.message} from ${err.config.method?.toUpperCase() || \"accessing\"} ${err.config.url}`\n }\n }\n } else if (err instanceof Error) {\n return err.message\n } else if (typeof err === \"string\") {\n return err\n } else if (typeof err === \"object\") {\n return tryStringifyJson(err) || `Unserializable object ${err}`\n }\n\n return `${err}`\n}\n","const DOMAIN_SUFFIX = \"wandelbots.io\"\n\n/** process.env is injected by tsup --env, so these are inlined at build time */\ndeclare const process: {\n env: Record<string, string | undefined>\n}\n\n/** Mapping of stages to Auth0 configurations */\nconst auth0ConfigMap = {\n dev: {\n domain: `https://auth.portal.dev.${DOMAIN_SUFFIX}`,\n clientId: process.env.NOVA_AUTH0_DEV_CLIENT_ID,\n },\n stg: {\n domain: `https://auth.portal.stg.${DOMAIN_SUFFIX}`,\n clientId: process.env.NOVA_AUTH0_STG_CLIENT_ID,\n },\n prod: {\n domain: `https://auth.portal.${DOMAIN_SUFFIX}`,\n clientId: process.env.NOVA_AUTH0_PROD_CLIENT_ID,\n },\n}\n\n/** Determine which Auth0 configuration to use based on instance URL */\nconst getAuth0Config = (instanceUrl: string) => {\n if (instanceUrl.includes(`dev.${DOMAIN_SUFFIX}`)) return auth0ConfigMap.dev\n if (instanceUrl.includes(`stg.${DOMAIN_SUFFIX}`)) return auth0ConfigMap.stg\n if (instanceUrl.includes(DOMAIN_SUFFIX)) return auth0ConfigMap.prod\n throw new Error(\n \"Unsupported instance URL. Cannot determine Auth0 configuration.\",\n )\n}\n\n/**\n * Initializes Auth0 login process using redirect if necessary and retrieves an access token.\n * Returns null when an access token should not be needed to authenticate (i.e. cookie auth\n * when deployed on the instance domain)\n */\nexport const loginWithAuth0 = async (\n instanceUrl: string,\n): Promise<string | null> => {\n if (typeof window === \"undefined\") {\n throw new Error(\n `Access token must be set to use NovaClient when not in a browser environment.`,\n )\n }\n\n const auth0Config = getAuth0Config(instanceUrl)\n\n if (new URL(instanceUrl).origin === window.location.origin) {\n // When deployed on the instance itself, our auth is handled by cookies\n // and no access token is needed-- just need to reload the page and it'll\n // login again / set cookie as needed\n window.location.reload()\n throw new Error(\n \"Failed to reload page to get auth details, please refresh manually\",\n )\n }\n\n // If we're on localhost or another domain, we need to do the full oauth flow\n // Note this will ONLY work for origins which are whitelisted as a redirect_uri\n // in the auth0 config, currently\n const { Auth0Client } = await import(\"@auth0/auth0-spa-js\")\n\n const auth0Client = new Auth0Client({\n domain: auth0Config.domain,\n clientId: auth0Config.clientId ?? \"\",\n useRefreshTokens: false,\n authorizationParams: {\n audience: \"nova-api\",\n redirect_uri: window.location.origin,\n },\n })\n\n // If the URL includes a redirect result, handle it\n if (\n window.location.search.includes(\"code=\") &&\n window.location.search.includes(\"state=\")\n ) {\n const { appState } = await auth0Client.handleRedirectCallback()\n // Return to the URL the user was originally on before the redirect\n window.history.replaceState(\n {},\n document.title,\n appState?.returnTo || window.location.pathname,\n )\n } else {\n // Initiate login with redirect\n await auth0Client.loginWithRedirect()\n }\n\n // Once logged in, retrieve the access token silently\n const accessToken = await auth0Client.getTokenSilently()\n return accessToken\n}\n"],"mappings":"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","names":["ReconnectingWebSocket"]}
1
+ {"version":3,"file":"index.cjs","names":["AxiosError","tryStringifyJson"],"sources":["../src/lib/errorHandling.ts"],"sourcesContent":["import { AxiosError } from \"axios\"\nimport { tryStringifyJson } from \"./converters\"\n\nexport function delay(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms))\n}\n\n/**\n * @deprecated Use makeErrorMessage instead and truncate the error for display as needed, or make a situation-specific localized error message based on a response code\n */\nexport function makeShortErrorMessage(err: unknown) {\n return makeErrorMessage(err)\n}\n\n/**\n * Attempts to make a helpful error message from an unknown thrown error\n * or promise rejection.\n *\n * This function is mainly to aid debugging and good bug reports. For\n * expected errors encountered by end users, it's more ideal to catch\n * the specific error code and provide a localized app-specific error message.\n */\nexport function makeErrorMessage(err: unknown): string {\n if (err instanceof AxiosError) {\n if (err.response) {\n return `${err.response?.status} ${err.response?.statusText} from ${err.response?.config.method?.toUpperCase() || \"accessing\"} ${err.response?.config.url}: ${JSON.stringify(err.response?.data)}`\n } else if (err.config) {\n if (err.code === \"ERR_NETWORK\") {\n return `${err.message} from ${err.config.method?.toUpperCase() || \"accessing\"} ${err.config.url}. This error can happen because of either connection issues or server CORS policy.`\n } else {\n return `${err.message} from ${err.config.method?.toUpperCase() || \"accessing\"} ${err.config.url}`\n }\n }\n } else if (err instanceof Error) {\n return err.message\n } else if (typeof err === \"string\") {\n return err\n } else if (typeof err === \"object\") {\n return tryStringifyJson(err) || `Unserializable object ${err}`\n }\n\n return `${err}`\n}\n"],"mappings":";;;;;AAGA,SAAgB,MAAM,IAAY;AAChC,QAAO,IAAI,SAAS,YAAY,WAAW,SAAS,GAAG,CAAC;;;;;AAM1D,SAAgB,sBAAsB,KAAc;AAClD,QAAO,iBAAiB,IAAI;;;;;;;;;;AAW9B,SAAgB,iBAAiB,KAAsB;AACrD,KAAI,eAAeA,kBACjB;MAAI,IAAI,SACN,QAAO,GAAG,IAAI,UAAU,OAAO,GAAG,IAAI,UAAU,WAAW,QAAQ,IAAI,UAAU,OAAO,QAAQ,aAAa,IAAI,YAAY,GAAG,IAAI,UAAU,OAAO,IAAI,IAAI,KAAK,UAAU,IAAI,UAAU,KAAK;WACtL,IAAI,OACb,KAAI,IAAI,SAAS,cACf,QAAO,GAAG,IAAI,QAAQ,QAAQ,IAAI,OAAO,QAAQ,aAAa,IAAI,YAAY,GAAG,IAAI,OAAO,IAAI;MAEhG,QAAO,GAAG,IAAI,QAAQ,QAAQ,IAAI,OAAO,QAAQ,aAAa,IAAI,YAAY,GAAG,IAAI,OAAO;YAGvF,eAAe,MACxB,QAAO,IAAI;UACF,OAAO,QAAQ,SACxB,QAAO;UACE,OAAO,QAAQ,SACxB,QAAOC,oCAAiB,IAAI,IAAI,yBAAyB;AAG3D,QAAO,GAAG"}
@@ -0,0 +1,73 @@
1
+ import { t as AutoReconnectingWebsocket } from "./AutoReconnectingWebsocket-Qcrbm3Kb.cjs";
2
+ import { d as poseToWandelscriptString, n as NovaClientConfig, t as NovaClient } from "./NovaClient-CV7ooIkD.cjs";
3
+
4
+ //#region src/lib/availableStorage.d.ts
5
+ /**
6
+ * Safety wrapper around browser localStorage providing context availability
7
+ * checks and JSON parsing
8
+ */
9
+ declare class AvailableStorage {
10
+ available: boolean;
11
+ getJSON<T>(key: string): Partial<T> | null;
12
+ setJSON(key: string, obj: unknown): null | undefined;
13
+ delete(key: string): null | undefined;
14
+ setString(key: string, value: string): null | undefined;
15
+ getString(key: string): string | null;
16
+ }
17
+ declare const availableStorage: AvailableStorage;
18
+ //#endregion
19
+ //#region src/lib/converters.d.ts
20
+ /** Try to parse something as JSON; return undefined if we can't */
21
+ declare function tryParseJson(json: unknown): any;
22
+ /** Try to turn something into JSON; return undefined if we can't */
23
+ declare function tryStringifyJson(json: unknown): string | undefined;
24
+ /**
25
+ * Converts object parameters to query string.
26
+ * e.g. { a: "1", b: "2" } => "?a=1&b=2"
27
+ * {} => ""
28
+ */
29
+ declare function makeUrlQueryString(obj: Record<string, string>): string;
30
+ /** Convert radians to degrees */
31
+ declare function radiansToDegrees(radians: number): number;
32
+ /** Convert degrees to radians */
33
+ declare function degreesToRadians(degrees: number): number;
34
+ /**
35
+ * Check for coordinate system id equivalence, accounting for the "world" default
36
+ * on empty/undefined values.
37
+ */
38
+ declare function isSameCoordinateSystem(firstCoordSystem: string | undefined, secondCoordSystem: string | undefined): boolean;
39
+ /**
40
+ * Helpful const for converting {x, y, z} to [x, y, z] and vice versa
41
+ */
42
+ declare const XYZ_TO_VECTOR: {
43
+ x: number;
44
+ y: number;
45
+ z: number;
46
+ };
47
+ //#endregion
48
+ //#region src/lib/errorHandling.d.ts
49
+ declare function delay(ms: number): Promise<unknown>;
50
+ /**
51
+ * @deprecated Use makeErrorMessage instead and truncate the error for display as needed, or make a situation-specific localized error message based on a response code
52
+ */
53
+ declare function makeShortErrorMessage(err: unknown): string;
54
+ /**
55
+ * Attempts to make a helpful error message from an unknown thrown error
56
+ * or promise rejection.
57
+ *
58
+ * This function is mainly to aid debugging and good bug reports. For
59
+ * expected errors encountered by end users, it's more ideal to catch
60
+ * the specific error code and provide a localized app-specific error message.
61
+ */
62
+ declare function makeErrorMessage(err: unknown): string;
63
+ //#endregion
64
+ //#region src/LoginWithAuth0.d.ts
65
+ /**
66
+ * Initializes Auth0 login process using redirect if necessary and retrieves an access token.
67
+ * Returns null when an access token should not be needed to authenticate (i.e. cookie auth
68
+ * when deployed on the instance domain)
69
+ */
70
+ declare const loginWithAuth0: (instanceUrl: string) => Promise<string | null>;
71
+ //#endregion
72
+ export { AutoReconnectingWebsocket, NovaClient, NovaClientConfig, XYZ_TO_VECTOR, availableStorage, degreesToRadians, delay, isSameCoordinateSystem, loginWithAuth0, makeErrorMessage, makeShortErrorMessage, makeUrlQueryString, poseToWandelscriptString, radiansToDegrees, tryParseJson, tryStringifyJson };
73
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/lib/availableStorage.ts","../src/lib/converters.ts","../src/lib/errorHandling.ts","../src/LoginWithAuth0.ts"],"sourcesContent":[],"mappings":";;;;;;;;cAIM,gBAAA,CAAgB;EAyCT,SAAA,EAAA,OAAA;2BAtCc,QAAQ;;;ECLnB,SAAA,CAAA,GAAA,EAAY,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,EAAA,IAAA,GAAA,SAAA;EASZ,SAAA,CAAA,GAAA,EAAA,MAAgB,CAAA,EAAA,MAAA,GAAA,IAAA;AAahC;AAMgB,cDeH,gBCfmB,EDeH,gBCfG;;;;iBA5BhB,YAAA;;iBASA,gBAAA;;ADkChB;;;;AC3CgB,iBAsBA,kBAAA,CAtBY,GAAA,EAsBY,MAtBZ,CAAA,MAAA,EAAA,MAAA,CAAA,CAAA,EAAA,MAAA;AAS5B;AAagB,iBAMA,gBAAA,CANwB,OAAM,EAAA,MAAA,CAAA,EAAA,MAAA;AAM9C;AAKgB,iBAAA,gBAAA,CAAgB,OAAA,EAAA,MAAA,CAAA,EAAA,MAAA;AAQhC;AAaA;;;iBAbgB,sBAAA;ACxChB;AAOA;AAYA;cDkCa;;;EElBA,CAAA,EAAA,MAAA;;;;iBDnCG,KAAA,cAAgB;;;;AFC1B,iBEMU,qBAAA,CFHkB,GAAA,EAAA,OAAA,CAAA,EAAA,MAAA;AAsClC;;;;AC3CA;AASA;AAaA;AAMA;AAKgB,iBCbA,gBAAA,CDagB,GAAA,EAAA,OAAA,CAAA,EAAA,MAAA;;;;;;;;ADUnB,cGPA,cHOgB,EAAA,CAAA,WAAA,EAAyB,MAAA,EAAA,GGLnD,OHKmD,CAAA,MAAA,GAAA,IAAA,CAAA"}
@@ -0,0 +1,73 @@
1
+ import { t as AutoReconnectingWebsocket } from "./AutoReconnectingWebsocket-dHe-kceU.mjs";
2
+ import { d as poseToWandelscriptString, n as NovaClientConfig, t as NovaClient } from "./NovaClient-qJnHcx2s.mjs";
3
+
4
+ //#region src/lib/availableStorage.d.ts
5
+ /**
6
+ * Safety wrapper around browser localStorage providing context availability
7
+ * checks and JSON parsing
8
+ */
9
+ declare class AvailableStorage {
10
+ available: boolean;
11
+ getJSON<T>(key: string): Partial<T> | null;
12
+ setJSON(key: string, obj: unknown): null | undefined;
13
+ delete(key: string): null | undefined;
14
+ setString(key: string, value: string): null | undefined;
15
+ getString(key: string): string | null;
16
+ }
17
+ declare const availableStorage: AvailableStorage;
18
+ //#endregion
19
+ //#region src/lib/converters.d.ts
20
+ /** Try to parse something as JSON; return undefined if we can't */
21
+ declare function tryParseJson(json: unknown): any;
22
+ /** Try to turn something into JSON; return undefined if we can't */
23
+ declare function tryStringifyJson(json: unknown): string | undefined;
24
+ /**
25
+ * Converts object parameters to query string.
26
+ * e.g. { a: "1", b: "2" } => "?a=1&b=2"
27
+ * {} => ""
28
+ */
29
+ declare function makeUrlQueryString(obj: Record<string, string>): string;
30
+ /** Convert radians to degrees */
31
+ declare function radiansToDegrees(radians: number): number;
32
+ /** Convert degrees to radians */
33
+ declare function degreesToRadians(degrees: number): number;
34
+ /**
35
+ * Check for coordinate system id equivalence, accounting for the "world" default
36
+ * on empty/undefined values.
37
+ */
38
+ declare function isSameCoordinateSystem(firstCoordSystem: string | undefined, secondCoordSystem: string | undefined): boolean;
39
+ /**
40
+ * Helpful const for converting {x, y, z} to [x, y, z] and vice versa
41
+ */
42
+ declare const XYZ_TO_VECTOR: {
43
+ x: number;
44
+ y: number;
45
+ z: number;
46
+ };
47
+ //#endregion
48
+ //#region src/lib/errorHandling.d.ts
49
+ declare function delay(ms: number): Promise<unknown>;
50
+ /**
51
+ * @deprecated Use makeErrorMessage instead and truncate the error for display as needed, or make a situation-specific localized error message based on a response code
52
+ */
53
+ declare function makeShortErrorMessage(err: unknown): string;
54
+ /**
55
+ * Attempts to make a helpful error message from an unknown thrown error
56
+ * or promise rejection.
57
+ *
58
+ * This function is mainly to aid debugging and good bug reports. For
59
+ * expected errors encountered by end users, it's more ideal to catch
60
+ * the specific error code and provide a localized app-specific error message.
61
+ */
62
+ declare function makeErrorMessage(err: unknown): string;
63
+ //#endregion
64
+ //#region src/LoginWithAuth0.d.ts
65
+ /**
66
+ * Initializes Auth0 login process using redirect if necessary and retrieves an access token.
67
+ * Returns null when an access token should not be needed to authenticate (i.e. cookie auth
68
+ * when deployed on the instance domain)
69
+ */
70
+ declare const loginWithAuth0: (instanceUrl: string) => Promise<string | null>;
71
+ //#endregion
72
+ export { AutoReconnectingWebsocket, NovaClient, NovaClientConfig, XYZ_TO_VECTOR, availableStorage, degreesToRadians, delay, isSameCoordinateSystem, loginWithAuth0, makeErrorMessage, makeShortErrorMessage, makeUrlQueryString, poseToWandelscriptString, radiansToDegrees, tryParseJson, tryStringifyJson };
73
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/lib/availableStorage.ts","../src/lib/converters.ts","../src/lib/errorHandling.ts","../src/LoginWithAuth0.ts"],"sourcesContent":[],"mappings":";;;;;;;;cAIM,gBAAA,CAAgB;EAyCT,SAAA,EAAA,OAAA;2BAtCc,QAAQ;;;ECLnB,SAAA,CAAA,GAAA,EAAY,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,EAAA,IAAA,GAAA,SAAA;EASZ,SAAA,CAAA,GAAA,EAAA,MAAgB,CAAA,EAAA,MAAA,GAAA,IAAA;AAahC;AAMgB,cDeH,gBCfmB,EDeH,gBCfG;;;;iBA5BhB,YAAA;;iBASA,gBAAA;;ADkChB;;;;AC3CgB,iBAsBA,kBAAA,CAtBY,GAAA,EAsBY,MAtBZ,CAAA,MAAA,EAAA,MAAA,CAAA,CAAA,EAAA,MAAA;AAS5B;AAagB,iBAMA,gBAAA,CANwB,OAAM,EAAA,MAAA,CAAA,EAAA,MAAA;AAM9C;AAKgB,iBAAA,gBAAA,CAAgB,OAAA,EAAA,MAAA,CAAA,EAAA,MAAA;AAQhC;AAaA;;;iBAbgB,sBAAA;ACxChB;AAOA;AAYA;cDkCa;;;EElBA,CAAA,EAAA,MAAA;;;;iBDnCG,KAAA,cAAgB;;;;AFC1B,iBEMU,qBAAA,CFHW,GAAO,EAAA,OAAA,CAAA,EAAA,MAAA;AAsClC;;;;AC3CA;AASA;AAaA;AAMA;AAKgB,iBCbA,gBAAA,CDagB,GAAA,EAAA,OAAA,CAAA,EAAA,MAAA;;;;;;;;ADUnB,cGPA,cHOgB,EAAA,CAAA,WAAA,EAAA,MAAyB,EAAA,GGLnD,OHKmD,CAAA,MAAA,GAAA,IAAA,CAAA"}