@wandelbots/nova-js 3.9.0-pr.280.2b62f3c → 3.9.0-pr.280.432dc39

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 (56) hide show
  1. package/README.md +11 -12
  2. package/dist/{AutoReconnectingWebsocket-DEs8wlLZ.d.cts → AutoReconnectingWebsocket-DNOF9mpz.d.cts} +2 -1
  3. package/dist/AutoReconnectingWebsocket-DNOF9mpz.d.cts.map +1 -0
  4. package/dist/{AutoReconnectingWebsocket-DEs8wlLZ.d.mts → AutoReconnectingWebsocket-DNOF9mpz.d.mts} +2 -1
  5. package/dist/AutoReconnectingWebsocket-DNOF9mpz.d.mts.map +1 -0
  6. package/dist/index.cjs +1 -1
  7. package/dist/index.d.cts +2 -2
  8. package/dist/index.d.mts +2 -2
  9. package/dist/index.mjs +1 -1
  10. package/dist/lib/deprecated/v1/index.cjs +4 -1
  11. package/dist/lib/deprecated/v1/index.cjs.map +1 -1
  12. package/dist/lib/deprecated/v1/index.d.cts +7 -2
  13. package/dist/lib/deprecated/v1/index.d.cts.map +1 -1
  14. package/dist/lib/deprecated/v1/index.d.mts +7 -2
  15. package/dist/lib/deprecated/v1/index.d.mts.map +1 -1
  16. package/dist/lib/deprecated/v1/index.mjs +4 -1
  17. package/dist/lib/deprecated/v1/index.mjs.map +1 -1
  18. package/dist/lib/v2/index.cjs +38 -25
  19. package/dist/lib/v2/index.cjs.map +1 -1
  20. package/dist/lib/v2/index.d.cts +45 -39
  21. package/dist/lib/v2/index.d.cts.map +1 -1
  22. package/dist/lib/v2/index.d.mts +45 -39
  23. package/dist/lib/v2/index.d.mts.map +1 -1
  24. package/dist/lib/v2/index.mjs +38 -24
  25. package/dist/lib/v2/index.mjs.map +1 -1
  26. package/dist/{wandelscriptUtils-Cz-yQ2eJ.d.mts → wandelscriptUtils-1A9uFPV_.d.cts} +13 -3
  27. package/dist/wandelscriptUtils-1A9uFPV_.d.cts.map +1 -0
  28. package/dist/{wandelscriptUtils-CsQAUu_9.mjs → wandelscriptUtils-C7hQePlo.mjs} +12 -5
  29. package/dist/wandelscriptUtils-C7hQePlo.mjs.map +1 -0
  30. package/dist/{wandelscriptUtils-BvZ8hcul.cjs → wandelscriptUtils-P0WYSZww.cjs} +12 -6
  31. package/dist/wandelscriptUtils-P0WYSZww.cjs.map +1 -0
  32. package/dist/{wandelscriptUtils-_Si3ueEd.d.cts → wandelscriptUtils-pySXnBlX.d.mts} +13 -3
  33. package/dist/wandelscriptUtils-pySXnBlX.d.mts.map +1 -0
  34. package/package.json +2 -3
  35. package/src/lib/deprecated/v1/ConnectedMotionGroup.ts +2 -0
  36. package/src/lib/deprecated/v1/JoggerConnection.ts +2 -0
  37. package/src/lib/deprecated/v1/MotionStreamConnection.ts +1 -0
  38. package/src/lib/deprecated/v1/NovaCellAPIClient.ts +3 -0
  39. package/src/lib/deprecated/v1/NovaClient.ts +8 -8
  40. package/src/lib/deprecated/v1/ProgramStateConnection.ts +4 -0
  41. package/src/lib/deprecated/v1/getLatestTrajectories.ts +1 -0
  42. package/src/lib/deprecated/v1/mock/MockNovaInstance.ts +1 -0
  43. package/src/lib/deprecated/v1/motionStateUpdate.ts +2 -0
  44. package/src/lib/deprecated/v1/wandelscriptUtils.ts +1 -0
  45. package/src/lib/deprecated/v2/NovaCellAPIClient.ts +3 -0
  46. package/src/lib/deprecated/v2/NovaClient.ts +9 -9
  47. package/src/lib/deprecated/v2/wandelscriptUtils.ts +1 -0
  48. package/src/lib/v2/Nova.ts +10 -9
  49. package/src/lib/v2/NovaAPIClient.ts +83 -96
  50. package/src/lib/v2/index.ts +1 -1
  51. package/dist/AutoReconnectingWebsocket-DEs8wlLZ.d.cts.map +0 -1
  52. package/dist/AutoReconnectingWebsocket-DEs8wlLZ.d.mts.map +0 -1
  53. package/dist/wandelscriptUtils-BvZ8hcul.cjs.map +0 -1
  54. package/dist/wandelscriptUtils-CsQAUu_9.mjs.map +0 -1
  55. package/dist/wandelscriptUtils-Cz-yQ2eJ.d.mts.map +0 -1
  56. package/dist/wandelscriptUtils-_Si3ueEd.d.cts.map +0 -1
@@ -2,14 +2,15 @@
2
2
  import type { Configuration as BaseConfiguration } from "@wandelbots/nova-api/v2"
3
3
  import type { AxiosRequestConfig } from "axios"
4
4
  import axios, { isAxiosError } from "axios"
5
- import urlJoin from "url-join"
6
5
  import { loginWithAuth0 } from "../../../LoginWithAuth0"
7
6
  import { AutoReconnectingWebsocket } from "../../AutoReconnectingWebsocket"
8
7
  import { availableStorage } from "../../availableStorage"
9
8
  import { parseNovaInstanceUrl } from "../../converters"
9
+
10
10
  import { MockNovaInstance } from "../../v2/mock/MockNovaInstance"
11
11
  import { NovaCellAPIClient } from "./NovaCellAPIClient"
12
12
 
13
+ /** @deprecated Use `NovaClientConfig` from `Nova` instead. */
13
14
  export type NovaClientConfig = {
14
15
  /**
15
16
  * Url of the deployed Nova instance to connect to
@@ -44,8 +45,8 @@ export type NovaClientConfig = {
44
45
  type NovaClientConfigWithDefaults = NovaClientConfig & { cellId: string }
45
46
 
46
47
  /**
47
- *
48
48
  * Client for connecting to a Nova instance and controlling robots.
49
+ * @deprecated Use `Nova` from `@wandelbots/nova-js/v2` instead.
49
50
  */
50
51
  export class NovaClient {
51
52
  readonly api: NovaCellAPIClient
@@ -73,7 +74,7 @@ export class NovaClient {
73
74
 
74
75
  // Set up Axios instance with interceptor for token fetching
75
76
  const axiosInstance = axios.create({
76
- baseURL: urlJoin(this.instanceUrl.href, "/api/v2"),
77
+ baseURL: new URL("/api/v2", this.instanceUrl).href,
77
78
  // TODO - backend needs to set proper CORS headers for this
78
79
  headers:
79
80
  typeof window !== "undefined" &&
@@ -135,7 +136,7 @@ export class NovaClient {
135
136
 
136
137
  this.api = new NovaCellAPIClient(cellId, {
137
138
  ...config,
138
- basePath: urlJoin(this.instanceUrl.href, "/api/v2"),
139
+ basePath: new URL("/api/v2", this.instanceUrl).href,
139
140
  isJsonMime: (mime: string) => {
140
141
  return mime === "application/json"
141
142
  },
@@ -183,11 +184,10 @@ export class NovaClient {
183
184
 
184
185
  makeWebsocketURL(path: string): string {
185
186
  const url = new URL(
186
- urlJoin(
187
- this.instanceUrl.href,
188
- `/api/v2/cells/${this.config.cellId}`,
189
- path,
190
- ),
187
+ new URL(
188
+ `/api/v2/cells/${this.config.cellId}/${path.replace(/^\/+/, "")}`,
189
+ this.instanceUrl,
190
+ ).href,
191
191
  )
192
192
  url.protocol = url.protocol.replace("http", "ws")
193
193
  url.protocol = url.protocol.replace("https", "wss")
@@ -3,6 +3,7 @@ import type { Pose } from "@wandelbots/nova-api/v2"
3
3
  /**
4
4
  * Convert a Pose object representing a motion group position
5
5
  * into a string which represents that pose in Wandelscript.
6
+ * @deprecated Wandelscript usage is deprecated; switching to Python is recommended.
6
7
  */
7
8
  export function poseToWandelscriptString(
8
9
  pose: Pick<Pose, "position" | "orientation">,
@@ -1,7 +1,6 @@
1
1
  import type { Configuration as BaseConfiguration } from "@wandelbots/nova-api/v2"
2
2
  import type { AxiosRequestConfig } from "axios"
3
3
  import axios, { isAxiosError } from "axios"
4
- import urlJoin from "url-join"
5
4
  import { loginWithAuth0 } from "../../LoginWithAuth0"
6
5
  import { AutoReconnectingWebsocket } from "../AutoReconnectingWebsocket"
7
6
  import { availableStorage } from "../availableStorage"
@@ -9,7 +8,7 @@ import { parseNovaInstanceUrl } from "../converters"
9
8
  import { NovaAPIClient } from "./NovaAPIClient"
10
9
  import { MockNovaInstance } from "./mock/MockNovaInstance"
11
10
 
12
- export type NovaClientConfig = {
11
+ export type NovaConfig = {
13
12
  /**
14
13
  * Url of the deployed NOVA instance to connect to
15
14
  * e.g. https://saeattii.instance.wandelbots.io
@@ -30,13 +29,13 @@ export type NovaClientConfig = {
30
29
  */
31
30
  export class Nova {
32
31
  readonly api: NovaAPIClient
33
- readonly config: NovaClientConfig
32
+ readonly config: NovaConfig
34
33
  readonly mock?: MockNovaInstance
35
34
  readonly instanceUrl: URL
36
35
  authPromise: Promise<string | null> | null = null
37
36
  accessToken: string | null = null
38
37
 
39
- constructor(config: NovaClientConfig) {
38
+ constructor(config: NovaConfig) {
40
39
  this.config = config
41
40
  this.accessToken =
42
41
  config.accessToken ||
@@ -50,7 +49,7 @@ export class Nova {
50
49
 
51
50
  // Set up Axios instance with interceptor for token fetching
52
51
  const axiosInstance = axios.create({
53
- baseURL: urlJoin(this.instanceUrl.href, "/api/v2"),
52
+ baseURL: new URL("/api/v2", this.instanceUrl).href,
54
53
  // TODO - backend needs to set proper CORS headers for this
55
54
  headers:
56
55
  typeof window !== "undefined" &&
@@ -112,7 +111,7 @@ export class Nova {
112
111
 
113
112
  this.api = new NovaAPIClient({
114
113
  ...config,
115
- basePath: urlJoin(this.instanceUrl.href, "/api/v2"),
114
+ basePath: new URL("/api/v2", this.instanceUrl).href,
116
115
  isJsonMime: (mime: string) => {
117
116
  return mime === "application/json"
118
117
  },
@@ -120,8 +119,10 @@ export class Nova {
120
119
  ...(this.mock
121
120
  ? ({
122
121
  adapter: (config) => {
123
- // biome-ignore lint/style/noNonNullAssertion: guarded by ternary condition
124
- return this.mock!.handleAPIRequest(config)
122
+ if (!this.mock) {
123
+ throw new Error("Mock adapter used without a mock instance")
124
+ }
125
+ return this.mock.handleAPIRequest(config)
125
126
  },
126
127
  } satisfies AxiosRequestConfig)
127
128
  : {}),
@@ -160,7 +161,7 @@ export class Nova {
160
161
  }
161
162
 
162
163
  makeWebsocketURL(path: string): string {
163
- const url = new URL(urlJoin(this.instanceUrl.href, `/api/v2`, path))
164
+ const url = new URL(`/api/v2/${path.replace(/^\/+/, "")}`, this.instanceUrl)
164
165
  url.protocol = url.protocol.replace("http", "ws")
165
166
  url.protocol = url.protocol.replace("https", "wss")
166
167
 
@@ -2,11 +2,38 @@ import type {
2
2
  BaseAPI,
3
3
  Configuration as BaseConfiguration,
4
4
  } from "@wandelbots/nova-api/v2"
5
- import * as novaApiV2 from "@wandelbots/nova-api/v2"
5
+ import {
6
+ ApplicationApi,
7
+ BUSInputsOutputsApi,
8
+ CellApi,
9
+ ControllerApi,
10
+ ControllerInputsOutputsApi,
11
+ JoggingApi,
12
+ KinematicsApi,
13
+ LicenseApi,
14
+ MotionGroupApi,
15
+ MotionGroupModelsApi,
16
+ NOVACloudApi,
17
+ ProgramApi,
18
+ RobotConfigurationsApi,
19
+ SessionApi,
20
+ StoreCollisionComponentsApi,
21
+ StoreCollisionSetupsApi,
22
+ StoreObjectApi,
23
+ SystemApi,
24
+ TrajectoryCachingApi,
25
+ TrajectoryExecutionApi,
26
+ TrajectoryPlanningApi,
27
+ VersionApi,
28
+ VirtualControllerApi,
29
+ VirtualControllerBehaviorApi,
30
+ VirtualControllerInputsOutputsApi,
31
+ } from "@wandelbots/nova-api/v2"
6
32
  import type { AxiosInstance } from "axios"
7
33
  import axios from "axios"
8
34
 
9
- type UnwrapAxiosResponseReturn<T> = T extends (...a: unknown[]) => unknown[]
35
+ // biome-ignore lint/suspicious/noExplicitAny: metamagic
36
+ type UnwrapAxiosResponseReturn<T> = T extends (...a: any[]) => any
10
37
  ? (
11
38
  ...a: Parameters<T>
12
39
  ) => Promise<Awaited<ReturnType<T>> extends { data: infer D } ? D : never>
@@ -16,73 +43,12 @@ type WithUnwrappedAxiosResponse<T> = {
16
43
  [P in keyof T]: UnwrapAxiosResponseReturn<T[P]>
17
44
  }
18
45
 
19
- /**
20
- * Filters nova-api/v2 exports to just the API class constructors,
21
- * excluding helper factories and param creators.
22
- */
23
- type ApiConstructors = {
24
- [K in keyof typeof novaApiV2 as K extends `${string}Api`
25
- ? K extends
26
- | `${string}Factory${string}`
27
- | `${string}Fp${string}`
28
- | `${string}ParamCreator${string}`
29
- ? never
30
- : K
31
- : never]: (typeof novaApiV2)[K]
32
- }
33
-
34
- /**
35
- * Lowercases leading uppercase characters to produce a camelCase property name.
36
- * e.g. "BUSInputsOutputs" -> "busInputsOutputs", "NOVACloud" -> "novaCloud",
37
- * "Application" -> "application"
38
- */
39
- type CamelCase<S extends string> =
40
- S extends `${Uppercase<infer A>}${Uppercase<infer B>}${infer Rest}`
41
- ? Rest extends `${Lowercase<string>}${string}`
42
- ? `${Lowercase<A>}${CamelCase<`${Uppercase<B>}${Rest}`>}`
43
- : `${Lowercase<A>}${CamelCase<`${Uppercase<B>}${Rest}`>}`
44
- : Uncapitalize<S>
45
-
46
- /**
47
- * Maps API class names to property names by stripping "Api" and converting
48
- * the leading acronym to lowercase camelCase.
49
- *
50
- * Properties are auto-discovered from the upstream package at runtime,
51
- * so new API sections are available immediately without code changes.
52
- */
53
- type ApiProperties = {
54
- readonly [K in keyof ApiConstructors as K extends `${infer P}Api`
55
- ? CamelCase<P>
56
- : never]: ApiConstructors[K] extends new (
57
- ...args: unknown[]
58
- ) => infer I
59
- ? WithUnwrappedAxiosResponse<I>
60
- : never
61
- }
62
-
63
46
  type NovaAPIClientOpts = BaseConfiguration & {
64
47
  axiosInstance?: AxiosInstance
65
48
  mock?: boolean
66
49
  }
67
50
 
68
- function isApiClass(
69
- name: string,
70
- value: unknown,
71
- ): value is new (
72
- config: BaseConfiguration,
73
- basePath: string,
74
- axios: AxiosInstance,
75
- ) => BaseAPI {
76
- return (
77
- name.endsWith("Api") &&
78
- typeof value === "function" &&
79
- !name.includes("Factory") &&
80
- !name.includes("Fp") &&
81
- !name.includes("ParamCreator")
82
- )
83
- }
84
-
85
- function wrapApi<T extends BaseAPI>(
51
+ function unwrap<T extends BaseAPI>(
86
52
  ApiConstructor: new (
87
53
  config: BaseConfiguration,
88
54
  basePath: string,
@@ -116,43 +82,64 @@ function wrapApi<T extends BaseAPI>(
116
82
 
117
83
  /**
118
84
  * API client providing type-safe access to all the endpoints of a NOVA
119
- * instance. API sections are auto-discovered from @wandelbots/nova-api/v2
120
- * at runtime, so new sections added upstream are exposed automatically.
85
+ * instance.
121
86
  */
122
- export const NovaAPIClient = class NovaAPIClient {
87
+ export class NovaAPIClient {
123
88
  readonly opts: NovaAPIClientOpts
124
89
 
90
+ readonly application: WithUnwrappedAxiosResponse<ApplicationApi>
91
+ readonly busIOs: WithUnwrappedAxiosResponse<BUSInputsOutputsApi>
92
+ readonly cell: WithUnwrappedAxiosResponse<CellApi>
93
+ readonly controller: WithUnwrappedAxiosResponse<ControllerApi>
94
+ readonly controllerIOs: WithUnwrappedAxiosResponse<ControllerInputsOutputsApi>
95
+ readonly jogging: WithUnwrappedAxiosResponse<JoggingApi>
96
+ readonly kinematics: WithUnwrappedAxiosResponse<KinematicsApi>
97
+ readonly license: WithUnwrappedAxiosResponse<LicenseApi>
98
+ readonly motionGroup: WithUnwrappedAxiosResponse<MotionGroupApi>
99
+ readonly motionGroupModels: WithUnwrappedAxiosResponse<MotionGroupModelsApi>
100
+ readonly novaCloud: WithUnwrappedAxiosResponse<NOVACloudApi>
101
+ readonly program: WithUnwrappedAxiosResponse<ProgramApi>
102
+ readonly robotConfigurations: WithUnwrappedAxiosResponse<RobotConfigurationsApi>
103
+ readonly session: WithUnwrappedAxiosResponse<SessionApi>
104
+ readonly storeCollisionComponents: WithUnwrappedAxiosResponse<StoreCollisionComponentsApi>
105
+ readonly storeCollisionSetups: WithUnwrappedAxiosResponse<StoreCollisionSetupsApi>
106
+ readonly storeObject: WithUnwrappedAxiosResponse<StoreObjectApi>
107
+ readonly system: WithUnwrappedAxiosResponse<SystemApi>
108
+ readonly trajectoryCaching: WithUnwrappedAxiosResponse<TrajectoryCachingApi>
109
+ readonly trajectoryExecution: WithUnwrappedAxiosResponse<TrajectoryExecutionApi>
110
+ readonly trajectoryPlanning: WithUnwrappedAxiosResponse<TrajectoryPlanningApi>
111
+ readonly version: WithUnwrappedAxiosResponse<VersionApi>
112
+ readonly virtualController: WithUnwrappedAxiosResponse<VirtualControllerApi>
113
+ readonly virtualControllerBehavior: WithUnwrappedAxiosResponse<VirtualControllerBehaviorApi>
114
+ readonly virtualControllerIOs: WithUnwrappedAxiosResponse<VirtualControllerInputsOutputsApi>
115
+
125
116
  constructor(opts: NovaAPIClientOpts) {
126
117
  this.opts = opts
127
118
 
128
- for (const [name, value] of Object.entries(novaApiV2)) {
129
- if (isApiClass(name, value)) {
130
- const stripped = name.slice(0, -3)
131
- // Lowercase leading acronym run: "BUSInputsOutputs" -> "busInputsOutputs"
132
- let i = 0
133
- while (
134
- i < stripped.length &&
135
- stripped[i] === stripped[i].toUpperCase() &&
136
- stripped[i] !== stripped[i].toLowerCase()
137
- ) {
138
- i++
139
- }
140
- // If multiple uppercase chars, keep the last one uppercase (it starts the next word)
141
- const boundary = i > 1 ? i - 1 : i
142
- const propName =
143
- stripped.slice(0, boundary).toLowerCase() + stripped.slice(boundary)
144
- // biome-ignore lint/suspicious/noExplicitAny: dynamically assigning discovered API properties
145
- ;(this as any)[propName] = wrapApi(value, opts)
146
- }
147
- }
148
- }
149
- } as {
150
- new (
151
- opts: NovaAPIClientOpts,
152
- ): ApiProperties & {
153
- readonly cellId: string
154
- readonly opts: NovaAPIClientOpts
119
+ this.application = unwrap(ApplicationApi, opts)
120
+ this.busIOs = unwrap(BUSInputsOutputsApi, opts)
121
+ this.cell = unwrap(CellApi, opts)
122
+ this.controller = unwrap(ControllerApi, opts)
123
+ this.controllerIOs = unwrap(ControllerInputsOutputsApi, opts)
124
+ this.jogging = unwrap(JoggingApi, opts)
125
+ this.kinematics = unwrap(KinematicsApi, opts)
126
+ this.license = unwrap(LicenseApi, opts)
127
+ this.motionGroup = unwrap(MotionGroupApi, opts)
128
+ this.motionGroupModels = unwrap(MotionGroupModelsApi, opts)
129
+ this.novaCloud = unwrap(NOVACloudApi, opts)
130
+ this.program = unwrap(ProgramApi, opts)
131
+ this.robotConfigurations = unwrap(RobotConfigurationsApi, opts)
132
+ this.session = unwrap(SessionApi, opts)
133
+ this.storeCollisionComponents = unwrap(StoreCollisionComponentsApi, opts)
134
+ this.storeCollisionSetups = unwrap(StoreCollisionSetupsApi, opts)
135
+ this.storeObject = unwrap(StoreObjectApi, opts)
136
+ this.system = unwrap(SystemApi, opts)
137
+ this.trajectoryCaching = unwrap(TrajectoryCachingApi, opts)
138
+ this.trajectoryExecution = unwrap(TrajectoryExecutionApi, opts)
139
+ this.trajectoryPlanning = unwrap(TrajectoryPlanningApi, opts)
140
+ this.version = unwrap(VersionApi, opts)
141
+ this.virtualController = unwrap(VirtualControllerApi, opts)
142
+ this.virtualControllerBehavior = unwrap(VirtualControllerBehaviorApi, opts)
143
+ this.virtualControllerIOs = unwrap(VirtualControllerInputsOutputsApi, opts)
155
144
  }
156
145
  }
157
-
158
- export type NovaAPIClient = InstanceType<typeof NovaAPIClient>
@@ -3,5 +3,5 @@ export * from "../deprecated/v2/NovaCellAPIClient"
3
3
  export * from "../deprecated/v2/NovaClient"
4
4
  export * from "../deprecated/v2/wandelscriptUtils"
5
5
  export { Nova } from "./Nova"
6
- export type { NovaClientConfig } from "./Nova"
6
+ export type { NovaConfig } from "./Nova"
7
7
  export { NovaAPIClient } from "./NovaAPIClient"
@@ -1 +0,0 @@
1
- {"version":3,"file":"AutoReconnectingWebsocket-DEs8wlLZ.d.cts","names":[],"sources":["../src/lib/deprecated/v1/mock/MockNovaInstance.ts","../src/lib/v2/mock/MockNovaInstance.ts","../src/lib/AutoReconnectingWebsocket.ts"],"mappings":";;;;;;AAeA;cAAa,kBAAA;EAAA,SACF,WAAA,EAAa,yBAAA;EAEhB,gBAAA,CACJ,MAAA,EAAQ,0BAAA,GACP,OAAA,CAAQ,aAAA;EAg8BX,yBAAA,CAA0B,MAAA,EAAQ,yBAAA;EAkOlC,sBAAA,CAAuB,MAAA,EAAQ,yBAAA,EAA2B,OAAA;AAAA;;;;;AAvqC5D;cCAa,gBAAA;EAAA,SACF,WAAA,EAAa,yBAAA;EAEhB,gBAAA,CACJ,MAAA,EAAQ,0BAAA,GACP,OAAA,CAAQ,aAAA;EAyCX,yBAAA,CAA0B,MAAA,EAAQ,yBAAA;EA+BlC,sBAAA,CAAuB,MAAA,EAAQ,yBAAA,EAA2B,OAAA;AAAA;;;cCxF/C,yBAAA,SAAkC,qBAAA;EAAA,SAOlC,IAAA;IACP,IAAA,GAAO,kBAAA,GAAsB,gBAAA;IAC7B,SAAA;EAAA;EARJ,oBAAA,GAAuB,YAAA;EACvB,SAAA;EACA,QAAA;cAGE,SAAA,UACS,IAAA;IACP,IAAA,GAAO,kBAAA,GAAsB,gBAAA;IAC7B,SAAA;EAAA;EA4CJ,SAAA,CAAU,SAAA;EAMV,QAAA,CAAS,IAAA;EF7CH;;;;EEyDN,OAAA,CAAA;EFy4BA;;;EE93BM,MAAA,CAAA,GAAM,OAAA;EFgmCmB;;;EEllCzB,MAAA,CAAA,GAAM,OAAA;EFklC6D;;;;ACvqC3E;ECqGQ,YAAA,CAAA,GAAY,OAAA,CAAA,YAAA;;;;;EA4BZ,WAAA,CAAA,GAAW,OAAA,CAAA,YAAA;AAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"AutoReconnectingWebsocket-DEs8wlLZ.d.mts","names":[],"sources":["../src/lib/deprecated/v1/mock/MockNovaInstance.ts","../src/lib/v2/mock/MockNovaInstance.ts","../src/lib/AutoReconnectingWebsocket.ts"],"mappings":";;;;;;AAeA;cAAa,kBAAA;EAAA,SACF,WAAA,EAAa,yBAAA;EAEhB,gBAAA,CACJ,MAAA,EAAQ,0BAAA,GACP,OAAA,CAAQ,aAAA;EAg8BX,yBAAA,CAA0B,MAAA,EAAQ,yBAAA;EAkOlC,sBAAA,CAAuB,MAAA,EAAQ,yBAAA,EAA2B,OAAA;AAAA;;;;;AAvqC5D;cCAa,gBAAA;EAAA,SACF,WAAA,EAAa,yBAAA;EAEhB,gBAAA,CACJ,MAAA,EAAQ,0BAAA,GACP,OAAA,CAAQ,aAAA;EAyCX,yBAAA,CAA0B,MAAA,EAAQ,yBAAA;EA+BlC,sBAAA,CAAuB,MAAA,EAAQ,yBAAA,EAA2B,OAAA;AAAA;;;cCxF/C,yBAAA,SAAkC,qBAAA;EAAA,SAOlC,IAAA;IACP,IAAA,GAAO,kBAAA,GAAsB,gBAAA;IAC7B,SAAA;EAAA;EARJ,oBAAA,GAAuB,YAAA;EACvB,SAAA;EACA,QAAA;cAGE,SAAA,UACS,IAAA;IACP,IAAA,GAAO,kBAAA,GAAsB,gBAAA;IAC7B,SAAA;EAAA;EA4CJ,SAAA,CAAU,SAAA;EAMV,QAAA,CAAS,IAAA;EF7CH;;;;EEyDN,OAAA,CAAA;EFy4BA;;;EE93BM,MAAA,CAAA,GAAM,OAAA;EFgmCmB;;;EEllCzB,MAAA,CAAA,GAAM,OAAA;EFklC6D;;;;ACvqC3E;ECqGQ,YAAA,CAAA,GAAY,OAAA,CAAA,YAAA;;;;;EA4BZ,WAAA,CAAA,GAAW,OAAA,CAAA,YAAA;AAAA"}