@wandelbots/nova-js 3.13.0-pr.307.8728cb4 → 3.13.0-pr.307.dd54f61

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.
@@ -0,0 +1,85 @@
1
+ import { n as MockNovaInstance, t as AutoReconnectingWebsocket } from "./AutoReconnectingWebsocket-1K2J1NA4.mjs";
2
+ import { AxiosInstance } from "axios";
3
+ import { ApplicationApi, BUSInputsOutputsApi, CellApi, Configuration, ControllerApi, ControllerInputsOutputsApi, JoggingApi, KinematicsApi, LicenseApi, MotionGroupApi, MotionGroupModelsApi, NOVACloudApi, ProgramApi, RobotConfigurationsApi, SessionApi, StoreCollisionComponentsApi, StoreCollisionSetupsApi, StoreObjectApi, SystemApi, TrajectoryCachingApi, TrajectoryExecutionApi, TrajectoryPlanningApi, VersionApi, VirtualControllerApi, VirtualControllerBehaviorApi, VirtualControllerInputsOutputsApi } from "@wandelbots/nova-api/v2";
4
+
5
+ //#region src/lib/NovaAPIClient.d.ts
6
+ type UnwrapAxiosResponseReturn<T> = T extends ((...a: any[]) => any) ? (...a: Parameters<T>) => Promise<Awaited<ReturnType<T>> extends {
7
+ data: infer D;
8
+ } ? D : never> : never;
9
+ type WithUnwrappedAxiosResponse<T> = { [P in keyof T]: UnwrapAxiosResponseReturn<T[P]> };
10
+ type NovaAPIClientOpts = Configuration & {
11
+ axiosInstance?: AxiosInstance;
12
+ mock?: boolean;
13
+ };
14
+ /**
15
+ * API client providing type-safe access to all the endpoints of a NOVA
16
+ * instance.
17
+ */
18
+ declare class NovaAPIClient {
19
+ readonly opts: NovaAPIClientOpts;
20
+ readonly application: WithUnwrappedAxiosResponse<ApplicationApi>;
21
+ readonly busIOs: WithUnwrappedAxiosResponse<BUSInputsOutputsApi>;
22
+ readonly cell: WithUnwrappedAxiosResponse<CellApi>;
23
+ readonly controller: WithUnwrappedAxiosResponse<ControllerApi>;
24
+ readonly controllerIOs: WithUnwrappedAxiosResponse<ControllerInputsOutputsApi>;
25
+ readonly jogging: WithUnwrappedAxiosResponse<JoggingApi>;
26
+ readonly kinematics: WithUnwrappedAxiosResponse<KinematicsApi>;
27
+ readonly license: WithUnwrappedAxiosResponse<LicenseApi>;
28
+ readonly motionGroup: WithUnwrappedAxiosResponse<MotionGroupApi>;
29
+ readonly motionGroupModels: WithUnwrappedAxiosResponse<MotionGroupModelsApi>;
30
+ readonly novaCloud: WithUnwrappedAxiosResponse<NOVACloudApi>;
31
+ readonly program: WithUnwrappedAxiosResponse<ProgramApi>;
32
+ readonly robotConfigurations: WithUnwrappedAxiosResponse<RobotConfigurationsApi>;
33
+ readonly session: WithUnwrappedAxiosResponse<SessionApi>;
34
+ readonly storeCollisionComponents: WithUnwrappedAxiosResponse<StoreCollisionComponentsApi>;
35
+ readonly storeCollisionSetups: WithUnwrappedAxiosResponse<StoreCollisionSetupsApi>;
36
+ readonly storeObject: WithUnwrappedAxiosResponse<StoreObjectApi>;
37
+ readonly system: WithUnwrappedAxiosResponse<SystemApi>;
38
+ readonly trajectoryCaching: WithUnwrappedAxiosResponse<TrajectoryCachingApi>;
39
+ readonly trajectoryExecution: WithUnwrappedAxiosResponse<TrajectoryExecutionApi>;
40
+ readonly trajectoryPlanning: WithUnwrappedAxiosResponse<TrajectoryPlanningApi>;
41
+ readonly version: WithUnwrappedAxiosResponse<VersionApi>;
42
+ readonly virtualController: WithUnwrappedAxiosResponse<VirtualControllerApi>;
43
+ readonly virtualControllerBehavior: WithUnwrappedAxiosResponse<VirtualControllerBehaviorApi>;
44
+ readonly virtualControllerIOs: WithUnwrappedAxiosResponse<VirtualControllerInputsOutputsApi>;
45
+ constructor(opts: NovaAPIClientOpts);
46
+ }
47
+ //#endregion
48
+ //#region src/lib/Nova.d.ts
49
+ type NovaConfig = {
50
+ /**
51
+ * Url of the deployed NOVA instance to connect to
52
+ * e.g. https://saeattii.instance.wandelbots.io
53
+ */
54
+ instanceUrl: string;
55
+ /**
56
+ * Access token for Bearer authentication.
57
+ * If running on a NOVA instance, this can be automatically retrieved from
58
+ * the current session when omitted.
59
+ */
60
+ accessToken?: string;
61
+ } & Omit<Configuration, "isJsonMime" | "basePath">;
62
+ /**
63
+ *
64
+ * Client for connecting to a NOVA instance and controlling robots.
65
+ */
66
+ declare class Nova {
67
+ readonly api: NovaAPIClient;
68
+ readonly config: NovaConfig;
69
+ readonly mock?: MockNovaInstance;
70
+ readonly instanceUrl: URL;
71
+ authPromise: Promise<string | null> | null;
72
+ accessToken: string | null;
73
+ constructor(config: NovaConfig);
74
+ renewAuthentication(): Promise<void>;
75
+ makeWebsocketURL(path: string): string;
76
+ /**
77
+ * Retrieve an AutoReconnectingWebsocket to the given path on the Nova instance.
78
+ * If you explicitly want to reconnect an existing websocket, call `reconnect`
79
+ * on the returned object.
80
+ */
81
+ openReconnectingWebsocket(path: string): AutoReconnectingWebsocket;
82
+ }
83
+ //#endregion
84
+ export { NovaConfig as n, NovaAPIClient as r, Nova as t };
85
+ //# sourceMappingURL=Nova--8gozkLR.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Nova--8gozkLR.d.mts","names":[],"sources":["../src/lib/NovaAPIClient.ts","../src/lib/Nova.ts"],"mappings":";;;;;KAmCK,yBAAA,MAA+B,CAAA,cAAc,CAAA,uBAEzC,CAAA,EAAG,UAAA,CAAW,CAAA,MACd,OAAA,CAAQ,OAAA,CAAQ,UAAA,CAAW,CAAA;EAAc,IAAA;AAAA,IAAkB,CAAA;AAAA,KAG/D,0BAAA,oBACS,CAAA,GAAI,yBAAA,CAA0B,CAAA,CAAE,CAAA;AAAA,KAGzC,iBAAA,GAAoB,aAAA;EACvB,aAAA,GAAgB,aAAa;EAC7B,IAAA;AAAA;;;;;cAuCW,aAAA;EAAA,SACF,IAAA,EAAM,iBAAA;EAAA,SAEN,WAAA,EAAa,0BAAA,CAA2B,cAAA;EAAA,SACxC,MAAA,EAAQ,0BAAA,CAA2B,mBAAA;EAAA,SACnC,IAAA,EAAM,0BAAA,CAA2B,OAAA;EAAA,SACjC,UAAA,EAAY,0BAAA,CAA2B,aAAA;EAAA,SACvC,aAAA,EAAe,0BAAA,CAA2B,0BAAA;EAAA,SAC1C,OAAA,EAAS,0BAAA,CAA2B,UAAA;EAAA,SACpC,UAAA,EAAY,0BAAA,CAA2B,aAAA;EAAA,SACvC,OAAA,EAAS,0BAAA,CAA2B,UAAA;EAAA,SACpC,WAAA,EAAa,0BAAA,CAA2B,cAAA;EAAA,SACxC,iBAAA,EAAmB,0BAAA,CAA2B,oBAAA;EAAA,SAC9C,SAAA,EAAW,0BAAA,CAA2B,YAAA;EAAA,SACtC,OAAA,EAAS,0BAAA,CAA2B,UAAA;EAAA,SACpC,mBAAA,EAAqB,0BAAA,CAA2B,sBAAA;EAAA,SAChD,OAAA,EAAS,0BAAA,CAA2B,UAAA;EAAA,SACpC,wBAAA,EAA0B,0BAAA,CAA2B,2BAAA;EAAA,SACrD,oBAAA,EAAsB,0BAAA,CAA2B,uBAAA;EAAA,SACjD,WAAA,EAAa,0BAAA,CAA2B,cAAA;EAAA,SACxC,MAAA,EAAQ,0BAAA,CAA2B,SAAA;EAAA,SACnC,iBAAA,EAAmB,0BAAA,CAA2B,oBAAA;EAAA,SAC9C,mBAAA,EAAqB,0BAAA,CAA2B,sBAAA;EAAA,SAChD,kBAAA,EAAoB,0BAAA,CAA2B,qBAAA;EAAA,SAC/C,OAAA,EAAS,0BAAA,CAA2B,UAAA;EAAA,SACpC,iBAAA,EAAmB,0BAAA,CAA2B,oBAAA;EAAA,SAC9C,yBAAA,EAA2B,0BAAA,CAA2B,4BAAA;EAAA,SACtD,oBAAA,EAAsB,0BAAA,CAA2B,iCAAA;cAE9C,IAAA,EAAM,iBAAA;AAAA;;;KCvGR,UAAA;EDuBP;;;;EClBH,WAAA;EDoBU;;;;;ECbV,WAAA;AAAA,IACE,IAAI,CAAC,aAAA;;;;;cAMI,IAAA;EAAA,SACF,GAAA,EAAK,aAAA;EAAA,SACL,MAAA,EAAQ,UAAA;EAAA,SACR,IAAA,GAAO,gBAAA;EAAA,SACP,WAAA,EAAa,GAAA;EACtB,WAAA,EAAa,OAAA;EACb,WAAA;cAEY,MAAA,EAAQ,UAAA;EAqId,mBAAA,IAAuB,OAAA;EA4B7B,gBAAA,CAAiB,IAAA;EDlKkD;AAAA;;;;ECmLnE,yBAAA,CAA0B,IAAA,WAAY,yBAAA;AAAA"}
@@ -0,0 +1,85 @@
1
+ import { n as MockNovaInstance, t as AutoReconnectingWebsocket } from "./AutoReconnectingWebsocket-1K2J1NA4.cjs";
2
+ import { ApplicationApi, BUSInputsOutputsApi, CellApi, Configuration, ControllerApi, ControllerInputsOutputsApi, JoggingApi, KinematicsApi, LicenseApi, MotionGroupApi, MotionGroupModelsApi, NOVACloudApi, ProgramApi, RobotConfigurationsApi, SessionApi, StoreCollisionComponentsApi, StoreCollisionSetupsApi, StoreObjectApi, SystemApi, TrajectoryCachingApi, TrajectoryExecutionApi, TrajectoryPlanningApi, VersionApi, VirtualControllerApi, VirtualControllerBehaviorApi, VirtualControllerInputsOutputsApi } from "@wandelbots/nova-api/v2";
3
+ import { AxiosInstance } from "axios";
4
+
5
+ //#region src/lib/NovaAPIClient.d.ts
6
+ type UnwrapAxiosResponseReturn<T> = T extends ((...a: any[]) => any) ? (...a: Parameters<T>) => Promise<Awaited<ReturnType<T>> extends {
7
+ data: infer D;
8
+ } ? D : never> : never;
9
+ type WithUnwrappedAxiosResponse<T> = { [P in keyof T]: UnwrapAxiosResponseReturn<T[P]> };
10
+ type NovaAPIClientOpts = Configuration & {
11
+ axiosInstance?: AxiosInstance;
12
+ mock?: boolean;
13
+ };
14
+ /**
15
+ * API client providing type-safe access to all the endpoints of a NOVA
16
+ * instance.
17
+ */
18
+ declare class NovaAPIClient {
19
+ readonly opts: NovaAPIClientOpts;
20
+ readonly application: WithUnwrappedAxiosResponse<ApplicationApi>;
21
+ readonly busIOs: WithUnwrappedAxiosResponse<BUSInputsOutputsApi>;
22
+ readonly cell: WithUnwrappedAxiosResponse<CellApi>;
23
+ readonly controller: WithUnwrappedAxiosResponse<ControllerApi>;
24
+ readonly controllerIOs: WithUnwrappedAxiosResponse<ControllerInputsOutputsApi>;
25
+ readonly jogging: WithUnwrappedAxiosResponse<JoggingApi>;
26
+ readonly kinematics: WithUnwrappedAxiosResponse<KinematicsApi>;
27
+ readonly license: WithUnwrappedAxiosResponse<LicenseApi>;
28
+ readonly motionGroup: WithUnwrappedAxiosResponse<MotionGroupApi>;
29
+ readonly motionGroupModels: WithUnwrappedAxiosResponse<MotionGroupModelsApi>;
30
+ readonly novaCloud: WithUnwrappedAxiosResponse<NOVACloudApi>;
31
+ readonly program: WithUnwrappedAxiosResponse<ProgramApi>;
32
+ readonly robotConfigurations: WithUnwrappedAxiosResponse<RobotConfigurationsApi>;
33
+ readonly session: WithUnwrappedAxiosResponse<SessionApi>;
34
+ readonly storeCollisionComponents: WithUnwrappedAxiosResponse<StoreCollisionComponentsApi>;
35
+ readonly storeCollisionSetups: WithUnwrappedAxiosResponse<StoreCollisionSetupsApi>;
36
+ readonly storeObject: WithUnwrappedAxiosResponse<StoreObjectApi>;
37
+ readonly system: WithUnwrappedAxiosResponse<SystemApi>;
38
+ readonly trajectoryCaching: WithUnwrappedAxiosResponse<TrajectoryCachingApi>;
39
+ readonly trajectoryExecution: WithUnwrappedAxiosResponse<TrajectoryExecutionApi>;
40
+ readonly trajectoryPlanning: WithUnwrappedAxiosResponse<TrajectoryPlanningApi>;
41
+ readonly version: WithUnwrappedAxiosResponse<VersionApi>;
42
+ readonly virtualController: WithUnwrappedAxiosResponse<VirtualControllerApi>;
43
+ readonly virtualControllerBehavior: WithUnwrappedAxiosResponse<VirtualControllerBehaviorApi>;
44
+ readonly virtualControllerIOs: WithUnwrappedAxiosResponse<VirtualControllerInputsOutputsApi>;
45
+ constructor(opts: NovaAPIClientOpts);
46
+ }
47
+ //#endregion
48
+ //#region src/lib/Nova.d.ts
49
+ type NovaConfig = {
50
+ /**
51
+ * Url of the deployed NOVA instance to connect to
52
+ * e.g. https://saeattii.instance.wandelbots.io
53
+ */
54
+ instanceUrl: string;
55
+ /**
56
+ * Access token for Bearer authentication.
57
+ * If running on a NOVA instance, this can be automatically retrieved from
58
+ * the current session when omitted.
59
+ */
60
+ accessToken?: string;
61
+ } & Omit<Configuration, "isJsonMime" | "basePath">;
62
+ /**
63
+ *
64
+ * Client for connecting to a NOVA instance and controlling robots.
65
+ */
66
+ declare class Nova {
67
+ readonly api: NovaAPIClient;
68
+ readonly config: NovaConfig;
69
+ readonly mock?: MockNovaInstance;
70
+ readonly instanceUrl: URL;
71
+ authPromise: Promise<string | null> | null;
72
+ accessToken: string | null;
73
+ constructor(config: NovaConfig);
74
+ renewAuthentication(): Promise<void>;
75
+ makeWebsocketURL(path: string): string;
76
+ /**
77
+ * Retrieve an AutoReconnectingWebsocket to the given path on the Nova instance.
78
+ * If you explicitly want to reconnect an existing websocket, call `reconnect`
79
+ * on the returned object.
80
+ */
81
+ openReconnectingWebsocket(path: string): AutoReconnectingWebsocket;
82
+ }
83
+ //#endregion
84
+ export { NovaConfig as n, NovaAPIClient as r, Nova as t };
85
+ //# sourceMappingURL=Nova-B1o5iTQ6.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Nova-B1o5iTQ6.d.cts","names":[],"sources":["../src/lib/NovaAPIClient.ts","../src/lib/Nova.ts"],"mappings":";;;;;KAmCK,yBAAA,MAA+B,CAAA,cAAc,CAAA,uBAEzC,CAAA,EAAG,UAAA,CAAW,CAAA,MACd,OAAA,CAAQ,OAAA,CAAQ,UAAA,CAAW,CAAA;EAAc,IAAA;AAAA,IAAkB,CAAA;AAAA,KAG/D,0BAAA,oBACS,CAAA,GAAI,yBAAA,CAA0B,CAAA,CAAE,CAAA;AAAA,KAGzC,iBAAA,GAAoB,aAAA;EACvB,aAAA,GAAgB,aAAa;EAC7B,IAAA;AAAA;;;;;cAuCW,aAAA;EAAA,SACF,IAAA,EAAM,iBAAA;EAAA,SAEN,WAAA,EAAa,0BAAA,CAA2B,cAAA;EAAA,SACxC,MAAA,EAAQ,0BAAA,CAA2B,mBAAA;EAAA,SACnC,IAAA,EAAM,0BAAA,CAA2B,OAAA;EAAA,SACjC,UAAA,EAAY,0BAAA,CAA2B,aAAA;EAAA,SACvC,aAAA,EAAe,0BAAA,CAA2B,0BAAA;EAAA,SAC1C,OAAA,EAAS,0BAAA,CAA2B,UAAA;EAAA,SACpC,UAAA,EAAY,0BAAA,CAA2B,aAAA;EAAA,SACvC,OAAA,EAAS,0BAAA,CAA2B,UAAA;EAAA,SACpC,WAAA,EAAa,0BAAA,CAA2B,cAAA;EAAA,SACxC,iBAAA,EAAmB,0BAAA,CAA2B,oBAAA;EAAA,SAC9C,SAAA,EAAW,0BAAA,CAA2B,YAAA;EAAA,SACtC,OAAA,EAAS,0BAAA,CAA2B,UAAA;EAAA,SACpC,mBAAA,EAAqB,0BAAA,CAA2B,sBAAA;EAAA,SAChD,OAAA,EAAS,0BAAA,CAA2B,UAAA;EAAA,SACpC,wBAAA,EAA0B,0BAAA,CAA2B,2BAAA;EAAA,SACrD,oBAAA,EAAsB,0BAAA,CAA2B,uBAAA;EAAA,SACjD,WAAA,EAAa,0BAAA,CAA2B,cAAA;EAAA,SACxC,MAAA,EAAQ,0BAAA,CAA2B,SAAA;EAAA,SACnC,iBAAA,EAAmB,0BAAA,CAA2B,oBAAA;EAAA,SAC9C,mBAAA,EAAqB,0BAAA,CAA2B,sBAAA;EAAA,SAChD,kBAAA,EAAoB,0BAAA,CAA2B,qBAAA;EAAA,SAC/C,OAAA,EAAS,0BAAA,CAA2B,UAAA;EAAA,SACpC,iBAAA,EAAmB,0BAAA,CAA2B,oBAAA;EAAA,SAC9C,yBAAA,EAA2B,0BAAA,CAA2B,4BAAA;EAAA,SACtD,oBAAA,EAAsB,0BAAA,CAA2B,iCAAA;cAE9C,IAAA,EAAM,iBAAA;AAAA;;;KCvGR,UAAA;EDuBP;;;;EClBH,WAAA;EDoBU;;;;;ECbV,WAAA;AAAA,IACE,IAAI,CAAC,aAAA;;;;;cAMI,IAAA;EAAA,SACF,GAAA,EAAK,aAAA;EAAA,SACL,MAAA,EAAQ,UAAA;EAAA,SACR,IAAA,GAAO,gBAAA;EAAA,SACP,WAAA,EAAa,GAAA;EACtB,WAAA,EAAa,OAAA;EACb,WAAA;cAEY,MAAA,EAAQ,UAAA;EAqId,mBAAA,IAAuB,OAAA;EA4B7B,gBAAA,CAAiB,IAAA;EDlKkD;AAAA;;;;ECmLnE,yBAAA,CAA0B,IAAA,WAAY,yBAAA;AAAA"}
@@ -65,8 +65,11 @@ function buildSubject(template, params) {
65
65
  var NovaNatsClient = class {
66
66
  config;
67
67
  connectionPromise = null;
68
- constructor(config) {
69
- this.config = config;
68
+ constructor(nova, config = {}) {
69
+ this.config = {
70
+ servers: buildNatsServerUrl(nova.instanceUrl.href),
71
+ ...config
72
+ };
70
73
  }
71
74
  /**
72
75
  * Connects to NATS if not already connected or connecting, and returns the
@@ -99,7 +102,8 @@ var NovaNatsClient = class {
99
102
  *
100
103
  * Returns a function that unsubscribes when called.
101
104
  */
102
- async subscribe(subject, params, handler) {
105
+ async subscribe(subject, ...args) {
106
+ const [params, handler] = args.length === 1 ? [{}, args[0]] : [args[0], args[1]];
103
107
  const nc = await this.connect();
104
108
  const resolvedSubject = buildSubject(subject, params);
105
109
  const sub = nc.subscribe(resolvedSubject);
@@ -123,6 +127,19 @@ var NovaNatsClient = class {
123
127
  const resolvedSubject = buildSubject(subject, params);
124
128
  return (await nc.request(resolvedSubject, JSON.stringify(payload), { timeout: opts.timeout ?? 5e3 })).json();
125
129
  }
130
+ /**
131
+ * Publishes a JSON payload to any NATS subject defined in the spec,
132
+ * without waiting for a reply.
133
+ *
134
+ * `subject` is the subject template as it appears on the wire, e.g.
135
+ * `"nova.v2.cells.{cell}.bus-ios.ios.set"`, with `{param}` placeholders
136
+ * filled in from `params`.
137
+ */
138
+ async publish(subject, params, payload) {
139
+ const nc = await this.connect();
140
+ const resolvedSubject = buildSubject(subject, params);
141
+ nc.publish(resolvedSubject, JSON.stringify(payload));
142
+ }
126
143
  };
127
144
  //#endregion
128
145
  exports.NovaNatsClient = NovaNatsClient;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["parseNovaInstanceUrl"],"sources":["../../../src/lib/experimental/nats/buildNatsServerUrl.ts","../../../src/lib/experimental/nats/buildSubject.ts","../../../src/lib/experimental/nats/NovaNatsClient.ts"],"sourcesContent":["import { parseNovaInstanceUrl } from \"../../converters.ts\"\n\n/**\n * Builds the WebSocket URL for a NOVA instance's NATS gateway from its\n * instance URL, e.g. `https://foo.instance.wandelbots.io` becomes\n * `wss://foo.instance.wandelbots.io/api/nats`.\n *\n * Pass the result as `servers` in the `NovaNatsClientConfig` passed to\n * `NovaNatsClient`.\n */\nexport function buildNatsServerUrl(instanceUrl: string): string {\n const url = parseNovaInstanceUrl(instanceUrl)\n const protocol = url.protocol === \"https:\" ? \"wss:\" : \"ws:\"\n return `${protocol}//${url.host}/api/nats`\n}\n","/**\n * Builds a NATS subject from an AsyncAPI-style channel address template\n * (e.g. `\"{instance}.v2.cells.{cell}\"`) by substituting each `{param}`\n * placeholder with the corresponding value from `params`.\n */\n\nfunction isValidSubjectChar(char: string): boolean {\n const code = char.charCodeAt(0)\n return (\n (code >= 48 && code <= 57) || // 0-9\n (code >= 65 && code <= 90) || // A-Z\n (code >= 97 && code <= 122) || // a-z\n char === \"-\" ||\n char === \"_\" ||\n char === \"*\"\n )\n}\n\nfunction isValidSubjectValue(value: string): boolean {\n if (value.length === 0) return false\n for (const char of value) {\n if (!isValidSubjectChar(char)) return false\n }\n return true\n}\n\nexport function buildSubject(\n template: string,\n params: Record<string, string>,\n): string {\n // Scanned manually (rather than with a regex like /\\{([^}]+)\\}/g) to avoid\n // a polynomial-time backtracking blowup on pathological input, e.g. a\n // template consisting of many \"{\" characters with no closing \"}\".\n let result = \"\"\n let cursor = 0\n\n while (cursor < template.length) {\n const openIndex = template.indexOf(\"{\", cursor)\n if (openIndex === -1) {\n result += template.slice(cursor)\n break\n }\n\n const closeIndex = template.indexOf(\"}\", openIndex + 1)\n if (closeIndex === -1) {\n result += template.slice(cursor)\n break\n }\n\n result += template.slice(cursor, openIndex)\n const paramName = template.slice(openIndex + 1, closeIndex)\n const value = params[paramName]\n if (value === undefined) {\n throw new Error(\n `Missing value for subject parameter \"${paramName}\" in template \"${template}\"`,\n )\n }\n if (!isValidSubjectValue(value)) {\n throw new Error(\n `Invalid value for subject parameter \"${paramName}\": \"${value}\" (must be non-empty and contain only letters, digits, \"-\", and \"_\")`,\n )\n }\n result += value\n\n cursor = closeIndex + 1\n }\n\n return result\n}\n","import {\n type ConnectionOptions,\n type Msg,\n type NatsConnection,\n wsconnect,\n} from \"@nats-io/nats-core\"\nimport { buildSubject } from \"./buildSubject.ts\"\nimport type {\n NatsOperationParams,\n NatsReplyPayloads,\n NatsRequestPayloads,\n NatsRequestSubject,\n NatsSubscribePayloads,\n NatsSubscribeSubject,\n} from \"./generated/operations.ts\"\n\nexport type NovaNatsClientConfig = ConnectionOptions\n\n/**\n * Typed NATS client for the Wandelbots NOVA messaging API, generated from\n * src/asyncapi.yaml (see scripts/generate-nats-client.ts).\n *\n * Connects over WebSocket via `@nats-io/nats-core`'s `wsconnect`.\n */\nexport class NovaNatsClient {\n readonly config: NovaNatsClientConfig\n private connectionPromise: Promise<NatsConnection> | null = null\n\n constructor(config: NovaNatsClientConfig) {\n this.config = config\n }\n\n /**\n * Connects to NATS if not already connected or connecting, and returns the\n * connection. Safe to call concurrently: all callers share the same\n * in-flight connection attempt instead of each starting their own.\n */\n connect(): Promise<NatsConnection> {\n if (!this.connectionPromise) {\n this.connectionPromise = wsconnect(this.config).catch((err: unknown) => {\n // Allow a subsequent connect() call to retry after a failed attempt.\n this.connectionPromise = null\n throw err\n })\n }\n return this.connectionPromise\n }\n\n /** Closes the underlying NATS connection, if open or connecting. */\n async close(): Promise<void> {\n const connectionPromise = this.connectionPromise\n this.connectionPromise = null\n if (!connectionPromise) return\n try {\n const nc = await connectionPromise\n await nc.close()\n } catch {\n // Connection never succeeded; nothing to close.\n }\n }\n\n /**\n * Subscribes to a NATS subject published by the server, invoking `handler`\n * with the JSON-decoded payload of every message received.\n *\n * `subject` is the subject template as it appears on the wire, e.g.\n * `\"nova.v2.cells.{cell}\"`, with `{param}` placeholders filled in from\n * `params`.\n *\n * Returns a function that unsubscribes when called.\n */\n async subscribe<K extends NatsSubscribeSubject>(\n subject: K,\n params: NatsOperationParams[K],\n handler: (payload: NatsSubscribePayloads[K], msg: Msg) => void,\n ): Promise<() => void> {\n const nc = await this.connect()\n const resolvedSubject = buildSubject(subject, params)\n const sub = nc.subscribe(resolvedSubject)\n\n ;(async () => {\n for await (const msg of sub) {\n handler(msg.json<NatsSubscribePayloads[K]>(), msg)\n }\n })().catch((err: unknown) => {\n console.error(\n `Error handling NATS subscription for \"${resolvedSubject}\"`,\n err,\n )\n })\n\n return () => sub.unsubscribe()\n }\n\n /**\n * Sends a request payload for a NATS subject the server receives, and\n * waits for the JSON-decoded reply.\n *\n * `subject` is the subject template as it appears on the wire, e.g.\n * `\"nova.v2.cells.{cell}.bus-ios.ios.set\"`, with `{param}` placeholders\n * filled in from `params`.\n */\n async request<K extends NatsRequestSubject>(\n subject: K,\n params: NatsOperationParams[K],\n payload: NatsRequestPayloads[K],\n opts: { timeout?: number } = {},\n ): Promise<NatsReplyPayloads[K]> {\n const nc = await this.connect()\n const resolvedSubject = buildSubject(subject, params)\n const msg = await nc.request(resolvedSubject, JSON.stringify(payload), {\n timeout: opts.timeout ?? 5000,\n })\n return msg.json<NatsReplyPayloads[K]>()\n }\n}\n"],"mappings":";;;;;;;;;;;;AAUA,SAAgB,mBAAmB,aAA6B;CAC9D,MAAM,MAAMA,mBAAAA,qBAAqB,WAAW;CAE5C,OAAO,GADU,IAAI,aAAa,WAAW,SAAS,MACnC,IAAI,IAAI,KAAK;AAClC;;;;;;;;ACRA,SAAS,mBAAmB,MAAuB;CACjD,MAAM,OAAO,KAAK,WAAW,CAAC;CAC9B,OACG,QAAQ,MAAM,QAAQ,MACtB,QAAQ,MAAM,QAAQ,MACtB,QAAQ,MAAM,QAAQ,OACvB,SAAS,OACT,SAAS,OACT,SAAS;AAEb;AAEA,SAAS,oBAAoB,OAAwB;CACnD,IAAI,MAAM,WAAW,GAAG,OAAO;CAC/B,KAAK,MAAM,QAAQ,OACjB,IAAI,CAAC,mBAAmB,IAAI,GAAG,OAAO;CAExC,OAAO;AACT;AAEA,SAAgB,aACd,UACA,QACQ;CAIR,IAAI,SAAS;CACb,IAAI,SAAS;CAEb,OAAO,SAAS,SAAS,QAAQ;EAC/B,MAAM,YAAY,SAAS,QAAQ,KAAK,MAAM;EAC9C,IAAI,cAAc,IAAI;GACpB,UAAU,SAAS,MAAM,MAAM;GAC/B;EACF;EAEA,MAAM,aAAa,SAAS,QAAQ,KAAK,YAAY,CAAC;EACtD,IAAI,eAAe,IAAI;GACrB,UAAU,SAAS,MAAM,MAAM;GAC/B;EACF;EAEA,UAAU,SAAS,MAAM,QAAQ,SAAS;EAC1C,MAAM,YAAY,SAAS,MAAM,YAAY,GAAG,UAAU;EAC1D,MAAM,QAAQ,OAAO;EACrB,IAAI,UAAU,KAAA,GACZ,MAAM,IAAI,MACR,wCAAwC,UAAU,iBAAiB,SAAS,EAC9E;EAEF,IAAI,CAAC,oBAAoB,KAAK,GAC5B,MAAM,IAAI,MACR,wCAAwC,UAAU,MAAM,MAAM,qEAChE;EAEF,UAAU;EAEV,SAAS,aAAa;CACxB;CAEA,OAAO;AACT;;;;;;;;;AC5CA,IAAa,iBAAb,MAA4B;CAC1B;CACA,oBAA4D;CAE5D,YAAY,QAA8B;EACxC,KAAK,SAAS;CAChB;;;;;;CAOA,UAAmC;EACjC,IAAI,CAAC,KAAK,mBACR,KAAK,qBAAA,GAAA,mBAAA,WAA8B,KAAK,MAAM,EAAE,OAAO,QAAiB;GAEtE,KAAK,oBAAoB;GACzB,MAAM;EACR,CAAC;EAEH,OAAO,KAAK;CACd;;CAGA,MAAM,QAAuB;EAC3B,MAAM,oBAAoB,KAAK;EAC/B,KAAK,oBAAoB;EACzB,IAAI,CAAC,mBAAmB;EACxB,IAAI;GAEF,OAAM,MADW,mBACR,MAAM;EACjB,QAAQ,CAER;CACF;;;;;;;;;;;CAYA,MAAM,UACJ,SACA,QACA,SACqB;EACrB,MAAM,KAAK,MAAM,KAAK,QAAQ;EAC9B,MAAM,kBAAkB,aAAa,SAAS,MAAM;EACpD,MAAM,MAAM,GAAG,UAAU,eAAe;EAEvC,CAAC,YAAY;GACZ,WAAW,MAAM,OAAO,KACtB,QAAQ,IAAI,KAA+B,GAAG,GAAG;EAErD,GAAG,EAAE,OAAO,QAAiB;GAC3B,QAAQ,MACN,yCAAyC,gBAAgB,IACzD,GACF;EACF,CAAC;EAED,aAAa,IAAI,YAAY;CAC/B;;;;;;;;;CAUA,MAAM,QACJ,SACA,QACA,SACA,OAA6B,CAAC,GACC;EAC/B,MAAM,KAAK,MAAM,KAAK,QAAQ;EAC9B,MAAM,kBAAkB,aAAa,SAAS,MAAM;EAIpD,QAAO,MAHW,GAAG,QAAQ,iBAAiB,KAAK,UAAU,OAAO,GAAG,EACrE,SAAS,KAAK,WAAW,IAC3B,CAAC,GACU,KAA2B;CACxC;AACF"}
1
+ {"version":3,"file":"index.cjs","names":["parseNovaInstanceUrl"],"sources":["../../../src/lib/experimental/nats/buildNatsServerUrl.ts","../../../src/lib/experimental/nats/buildSubject.ts","../../../src/lib/experimental/nats/NovaNatsClient.ts"],"sourcesContent":["import { parseNovaInstanceUrl } from \"../../converters.ts\"\n\n/**\n * Builds the WebSocket URL for a NOVA instance's NATS gateway from its\n * instance URL, e.g. `https://foo.instance.wandelbots.io` becomes\n * `wss://foo.instance.wandelbots.io/api/nats`.\n *\n * Pass the result as `servers` in the `NovaNatsClientConfig` passed to\n * `NovaNatsClient`.\n */\nexport function buildNatsServerUrl(instanceUrl: string): string {\n const url = parseNovaInstanceUrl(instanceUrl)\n const protocol = url.protocol === \"https:\" ? \"wss:\" : \"ws:\"\n return `${protocol}//${url.host}/api/nats`\n}\n","/**\n * Builds a NATS subject from an AsyncAPI-style channel address template\n * (e.g. `\"{instance}.v2.cells.{cell}\"`) by substituting each `{param}`\n * placeholder with the corresponding value from `params`.\n */\n\nfunction isValidSubjectChar(char: string): boolean {\n const code = char.charCodeAt(0)\n return (\n (code >= 48 && code <= 57) || // 0-9\n (code >= 65 && code <= 90) || // A-Z\n (code >= 97 && code <= 122) || // a-z\n char === \"-\" ||\n char === \"_\" ||\n char === \"*\"\n )\n}\n\nfunction isValidSubjectValue(value: string): boolean {\n if (value.length === 0) return false\n for (const char of value) {\n if (!isValidSubjectChar(char)) return false\n }\n return true\n}\n\nexport function buildSubject(\n template: string,\n params: Record<string, string>,\n): string {\n // Scanned manually (rather than with a regex like /\\{([^}]+)\\}/g) to avoid\n // a polynomial-time backtracking blowup on pathological input, e.g. a\n // template consisting of many \"{\" characters with no closing \"}\".\n let result = \"\"\n let cursor = 0\n\n while (cursor < template.length) {\n const openIndex = template.indexOf(\"{\", cursor)\n if (openIndex === -1) {\n result += template.slice(cursor)\n break\n }\n\n const closeIndex = template.indexOf(\"}\", openIndex + 1)\n if (closeIndex === -1) {\n result += template.slice(cursor)\n break\n }\n\n result += template.slice(cursor, openIndex)\n const paramName = template.slice(openIndex + 1, closeIndex)\n const value = params[paramName]\n if (value === undefined) {\n throw new Error(\n `Missing value for subject parameter \"${paramName}\" in template \"${template}\"`,\n )\n }\n if (!isValidSubjectValue(value)) {\n throw new Error(\n `Invalid value for subject parameter \"${paramName}\": \"${value}\" (must be non-empty and contain only letters, digits, \"-\", and \"_\")`,\n )\n }\n result += value\n\n cursor = closeIndex + 1\n }\n\n return result\n}\n","import {\n type ConnectionOptions,\n type Msg,\n type NatsConnection,\n wsconnect,\n} from \"@nats-io/nats-core\"\nimport type { Nova } from \"../../Nova.ts\"\nimport { buildNatsServerUrl } from \"./buildNatsServerUrl.ts\"\nimport { buildSubject } from \"./buildSubject.ts\"\nimport type {\n NatsOperationParams,\n NatsPublishPayloads,\n NatsPublishSubject,\n NatsReplyPayloads,\n NatsRequestPayloads,\n NatsRequestSubject,\n NatsSubscribePayloads,\n NatsSubscribeSubject,\n} from \"./generated/operations.ts\"\n\nexport type NovaNatsClientConfig = ConnectionOptions\n\ntype NatsMessageHandler<K extends NatsSubscribeSubject> = (\n payload: NatsSubscribePayloads[K],\n msg: Msg,\n) => void\n\ntype SubscribeArgs<K extends NatsSubscribeSubject> =\n keyof NatsOperationParams[K] extends never\n ? [handler: NatsMessageHandler<K>]\n : [params: NatsOperationParams[K], handler: NatsMessageHandler<K>]\n\n/**\n * Typed NATS client for the Wandelbots NOVA messaging API, generated from\n * src/asyncapi.yaml (see scripts/generate-nats-client.ts).\n *\n * Connects over WebSocket via `@nats-io/nats-core`'s `wsconnect`.\n */\nexport class NovaNatsClient {\n readonly config: NovaNatsClientConfig\n private connectionPromise: Promise<NatsConnection> | null = null\n\n constructor(nova: Nova, config: NovaNatsClientConfig = {}) {\n this.config = {\n servers: buildNatsServerUrl(nova.instanceUrl.href),\n ...config,\n }\n }\n\n /**\n * Connects to NATS if not already connected or connecting, and returns the\n * connection. Safe to call concurrently: all callers share the same\n * in-flight connection attempt instead of each starting their own.\n */\n connect(): Promise<NatsConnection> {\n if (!this.connectionPromise) {\n this.connectionPromise = wsconnect(this.config).catch((err: unknown) => {\n // Allow a subsequent connect() call to retry after a failed attempt.\n this.connectionPromise = null\n throw err\n })\n }\n return this.connectionPromise\n }\n\n /** Closes the underlying NATS connection, if open or connecting. */\n async close(): Promise<void> {\n const connectionPromise = this.connectionPromise\n this.connectionPromise = null\n if (!connectionPromise) return\n try {\n const nc = await connectionPromise\n await nc.close()\n } catch {\n // Connection never succeeded; nothing to close.\n }\n }\n\n /**\n * Subscribes to a NATS subject published by the server, invoking `handler`\n * with the JSON-decoded payload of every message received.\n *\n * `subject` is the subject template as it appears on the wire, e.g.\n * `\"nova.v2.cells.{cell}\"`, with `{param}` placeholders filled in from\n * `params`.\n *\n * Returns a function that unsubscribes when called.\n */\n async subscribe<K extends NatsSubscribeSubject>(\n subject: K,\n ...args: SubscribeArgs<K>\n ): Promise<() => void> {\n const [params, handler] =\n args.length === 1\n ? ([{}, args[0]] as const)\n : ([args[0], args[1]] as const)\n\n const nc = await this.connect()\n const resolvedSubject = buildSubject(subject, params)\n const sub = nc.subscribe(resolvedSubject)\n\n ;(async () => {\n for await (const msg of sub) {\n handler(msg.json<NatsSubscribePayloads[K]>(), msg)\n }\n })().catch((err: unknown) => {\n console.error(\n `Error handling NATS subscription for \"${resolvedSubject}\"`,\n err,\n )\n })\n\n return () => sub.unsubscribe()\n }\n\n /**\n * Sends a request payload for a NATS subject the server receives, and\n * waits for the JSON-decoded reply.\n *\n * `subject` is the subject template as it appears on the wire, e.g.\n * `\"nova.v2.cells.{cell}.bus-ios.ios.set\"`, with `{param}` placeholders\n * filled in from `params`.\n */\n async request<K extends NatsRequestSubject>(\n subject: K,\n params: NatsOperationParams[K],\n payload: NatsRequestPayloads[K],\n opts: { timeout?: number } = {},\n ): Promise<NatsReplyPayloads[K]> {\n const nc = await this.connect()\n const resolvedSubject = buildSubject(subject, params)\n const msg = await nc.request(resolvedSubject, JSON.stringify(payload), {\n timeout: opts.timeout ?? 5000,\n })\n return msg.json<NatsReplyPayloads[K]>()\n }\n\n /**\n * Publishes a JSON payload to any NATS subject defined in the spec,\n * without waiting for a reply.\n *\n * `subject` is the subject template as it appears on the wire, e.g.\n * `\"nova.v2.cells.{cell}.bus-ios.ios.set\"`, with `{param}` placeholders\n * filled in from `params`.\n */\n async publish<K extends NatsPublishSubject>(\n subject: K,\n params: NatsOperationParams[K],\n payload: NatsPublishPayloads[K],\n ): Promise<void> {\n const nc = await this.connect()\n const resolvedSubject = buildSubject(subject, params)\n nc.publish(resolvedSubject, JSON.stringify(payload))\n }\n}\n"],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { t as Nova } from "../../Nova-B1o5iTQ6.cjs";
1
2
  import { ConnectionOptions, Msg, NatsConnection } from "@nats-io/nats-core";
2
3
 
3
4
  //#region src/lib/experimental/nats/buildNatsServerUrl.d.ts
@@ -2032,7 +2033,7 @@ interface NatsOperationParams {
2032
2033
  cell: string;
2033
2034
  };
2034
2035
  /** publishSystemStatus */
2035
- "nova.v2.system.status": Record<string, never>;
2036
+ "nova.v2.system.status": Record<never, never>;
2036
2037
  /** publishCollisionSetup */
2037
2038
  "nova.v2.cells.{cell}.collision.setups.{setup}": {
2038
2039
  cell: string;
@@ -2072,11 +2073,11 @@ interface NatsOperationParams {
2072
2073
  "motion-group": string;
2073
2074
  };
2074
2075
  /** eventSystemUpdateStarted */
2075
- "nova.v2.events.system.update.started": Record<string, never>;
2076
+ "nova.v2.events.system.update.started": Record<never, never>;
2076
2077
  /** eventSystemUpdateCompleted */
2077
- "nova.v2.events.system.update.completed": Record<string, never>;
2078
+ "nova.v2.events.system.update.completed": Record<never, never>;
2078
2079
  /** eventSystemNetworkStatusChanged */
2079
- "nova.v2.events.system.network.status.changed": Record<string, never>;
2080
+ "nova.v2.events.system.network.status.changed": Record<never, never>;
2080
2081
  /** eventCellCreated */
2081
2082
  "nova.v2.events.cells.{cell}.created": {
2082
2083
  cell: string;
@@ -2189,9 +2190,69 @@ interface NatsReplyPayloads {
2189
2190
  "nova.v2.cells.{cell}.controllers.{controller}.ios.select": NatsErrorPayload;
2190
2191
  }
2191
2192
  type NatsRequestSubject = keyof NatsRequestPayloads;
2193
+ /** Payload types for every subject defined in the spec, publishable via NovaNatsClient#publish. */
2194
+ interface NatsPublishPayloads {
2195
+ /** publishCell */
2196
+ "nova.v2.cells.{cell}": Cell;
2197
+ /** publishApp */
2198
+ "nova.v2.cells.{cell}.apps.{app}": App;
2199
+ /** publishProgramStatus */
2200
+ "nova.v2.cells.{cell}.programs": ProgramStatus;
2201
+ /** publishRobotController */
2202
+ "nova.v2.cells.{cell}.controllers.{controller}": RobotController;
2203
+ /** publishCellStatus */
2204
+ "nova.v2.cells.{cell}.status": ServiceStatusList;
2205
+ /** publishCellCycle */
2206
+ "nova.v2.cells.{cell}.cycle": CellCycleEvent;
2207
+ /** publishSystemStatus */
2208
+ "nova.v2.system.status": ServiceStatusList;
2209
+ /** publishCollisionSetup */
2210
+ "nova.v2.cells.{cell}.collision.setups.{setup}": CollisionSetup;
2211
+ /** publishBUSIOStatus */
2212
+ "nova.v2.cells.{cell}.bus-ios.status": BusIOsState;
2213
+ /** publishBUSIOsIOs */
2214
+ "nova.v2.cells.{cell}.bus-ios.ios": ListIOValuesResponse;
2215
+ /** setBUSIOsIOs */
2216
+ "nova.v2.cells.{cell}.bus-ios.ios.set": ListIOValuesResponse;
2217
+ /** selectRobotControllerIOs */
2218
+ "nova.v2.cells.{cell}.controllers.{controller}.ios.select": SelectIOs;
2219
+ /** publishRobotControllerIOs */
2220
+ "nova.v2.cells.{cell}.controllers.{controller}.ios": StreamIOValuesResponse;
2221
+ /** publishRobotControllersState */
2222
+ "nova.v2.cells.{cell}.controllers.{controller}.state": RobotControllerState;
2223
+ /** publishMotionGroupDescription */
2224
+ "nova.v2.cells.{cell}.controllers.{controller}.motion-groups.{motion-group}.description": MotionGroupDescription;
2225
+ /** eventSystemUpdateStarted */
2226
+ "nova.v2.events.system.update.started": SystemUpdateStartedEvent;
2227
+ /** eventSystemUpdateCompleted */
2228
+ "nova.v2.events.system.update.completed": SystemUpdateCompletedEvent;
2229
+ /** eventSystemNetworkStatusChanged */
2230
+ "nova.v2.events.system.network.status.changed": NetworkStatusChangedEvent;
2231
+ /** eventCellCreated */
2232
+ "nova.v2.events.cells.{cell}.created": CellCreatedEvent;
2233
+ /** eventCellUpdated */
2234
+ "nova.v2.events.cells.{cell}.updated": CellUpdatedEvent;
2235
+ /** eventCellDeleted */
2236
+ "nova.v2.events.cells.{cell}.deleted": CellDeletedEvent;
2237
+ /** eventAppCreated */
2238
+ "nova.v2.events.cells.{cell}.apps.{app}.created": AppCreatedEvent;
2239
+ /** eventAppUpdated */
2240
+ "nova.v2.events.cells.{cell}.apps.{app}.updated": AppUpdatedEvent;
2241
+ /** eventAppDeleted */
2242
+ "nova.v2.events.cells.{cell}.apps.{app}.deleted": AppDeletedEvent;
2243
+ /** eventRobotControllerCreated */
2244
+ "nova.v2.events.cells.{cell}.controllers.{controller}.created": RobotControllerCreatedEvent;
2245
+ /** eventRobotControllerUpdated */
2246
+ "nova.v2.events.cells.{cell}.controllers.{controller}.updated": RobotControllerUpdatedEvent;
2247
+ /** eventRobotControllerDeleted */
2248
+ "nova.v2.events.cells.{cell}.controllers.{controller}.deleted": RobotControllerDeletedEvent;
2249
+ }
2250
+ type NatsPublishSubject = keyof NatsPublishPayloads;
2192
2251
  //#endregion
2193
2252
  //#region src/lib/experimental/nats/NovaNatsClient.d.ts
2194
2253
  type NovaNatsClientConfig = ConnectionOptions;
2254
+ type NatsMessageHandler<K extends NatsSubscribeSubject> = (payload: NatsSubscribePayloads[K], msg: Msg) => void;
2255
+ type SubscribeArgs<K extends NatsSubscribeSubject> = keyof NatsOperationParams[K] extends never ? [handler: NatsMessageHandler<K>] : [params: NatsOperationParams[K], handler: NatsMessageHandler<K>];
2195
2256
  /**
2196
2257
  * Typed NATS client for the Wandelbots NOVA messaging API, generated from
2197
2258
  * src/asyncapi.yaml (see scripts/generate-nats-client.ts).
@@ -2201,7 +2262,7 @@ type NovaNatsClientConfig = ConnectionOptions;
2201
2262
  declare class NovaNatsClient {
2202
2263
  readonly config: NovaNatsClientConfig;
2203
2264
  private connectionPromise;
2204
- constructor(config: NovaNatsClientConfig);
2265
+ constructor(nova: Nova, config?: NovaNatsClientConfig);
2205
2266
  /**
2206
2267
  * Connects to NATS if not already connected or connecting, and returns the
2207
2268
  * connection. Safe to call concurrently: all callers share the same
@@ -2220,7 +2281,7 @@ declare class NovaNatsClient {
2220
2281
  *
2221
2282
  * Returns a function that unsubscribes when called.
2222
2283
  */
2223
- subscribe<K extends NatsSubscribeSubject>(subject: K, params: NatsOperationParams[K], handler: (payload: NatsSubscribePayloads[K], msg: Msg) => void): Promise<() => void>;
2284
+ subscribe<K extends NatsSubscribeSubject>(subject: K, ...args: SubscribeArgs<K>): Promise<() => void>;
2224
2285
  /**
2225
2286
  * Sends a request payload for a NATS subject the server receives, and
2226
2287
  * waits for the JSON-decoded reply.
@@ -2232,7 +2293,16 @@ declare class NovaNatsClient {
2232
2293
  request<K extends NatsRequestSubject>(subject: K, params: NatsOperationParams[K], payload: NatsRequestPayloads[K], opts?: {
2233
2294
  timeout?: number;
2234
2295
  }): Promise<NatsReplyPayloads[K]>;
2296
+ /**
2297
+ * Publishes a JSON payload to any NATS subject defined in the spec,
2298
+ * without waiting for a reply.
2299
+ *
2300
+ * `subject` is the subject template as it appears on the wire, e.g.
2301
+ * `"nova.v2.cells.{cell}.bus-ios.ios.set"`, with `{param}` placeholders
2302
+ * filled in from `params`.
2303
+ */
2304
+ publish<K extends NatsPublishSubject>(subject: K, params: NatsOperationParams[K], payload: NatsPublishPayloads[K]): Promise<void>;
2235
2305
  }
2236
2306
  //#endregion
2237
- export { type NatsOperationParams, type NatsReplyPayloads, type NatsRequestPayloads, type NatsRequestSubject, type NatsSubscribePayloads, type NatsSubscribeSubject, NovaNatsClient, type NovaNatsClientConfig, buildNatsServerUrl };
2307
+ export { type NatsOperationParams, type NatsPublishPayloads, type NatsPublishSubject, type NatsReplyPayloads, type NatsRequestPayloads, type NatsRequestSubject, type NatsSubscribePayloads, type NatsSubscribeSubject, NovaNatsClient, type NovaNatsClientConfig, buildNatsServerUrl };
2238
2308
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../../../src/lib/experimental/nats/buildNatsServerUrl.ts","../../../src/lib/experimental/nats/generated/types.ts","../../../src/lib/experimental/nats/generated/operations.ts","../../../src/lib/experimental/nats/NovaNatsClient.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../../src/lib/experimental/nats/buildNatsServerUrl.ts","../../../src/lib/experimental/nats/generated/types.ts","../../../src/lib/experimental/nats/generated/operations.ts","../../../src/lib/experimental/nats/NovaNatsClient.ts"],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { t as Nova } from "../../Nova--8gozkLR.mjs";
1
2
  import { ConnectionOptions, Msg, NatsConnection } from "@nats-io/nats-core";
2
3
 
3
4
  //#region src/lib/experimental/nats/buildNatsServerUrl.d.ts
@@ -2032,7 +2033,7 @@ interface NatsOperationParams {
2032
2033
  cell: string;
2033
2034
  };
2034
2035
  /** publishSystemStatus */
2035
- "nova.v2.system.status": Record<string, never>;
2036
+ "nova.v2.system.status": Record<never, never>;
2036
2037
  /** publishCollisionSetup */
2037
2038
  "nova.v2.cells.{cell}.collision.setups.{setup}": {
2038
2039
  cell: string;
@@ -2072,11 +2073,11 @@ interface NatsOperationParams {
2072
2073
  "motion-group": string;
2073
2074
  };
2074
2075
  /** eventSystemUpdateStarted */
2075
- "nova.v2.events.system.update.started": Record<string, never>;
2076
+ "nova.v2.events.system.update.started": Record<never, never>;
2076
2077
  /** eventSystemUpdateCompleted */
2077
- "nova.v2.events.system.update.completed": Record<string, never>;
2078
+ "nova.v2.events.system.update.completed": Record<never, never>;
2078
2079
  /** eventSystemNetworkStatusChanged */
2079
- "nova.v2.events.system.network.status.changed": Record<string, never>;
2080
+ "nova.v2.events.system.network.status.changed": Record<never, never>;
2080
2081
  /** eventCellCreated */
2081
2082
  "nova.v2.events.cells.{cell}.created": {
2082
2083
  cell: string;
@@ -2189,9 +2190,69 @@ interface NatsReplyPayloads {
2189
2190
  "nova.v2.cells.{cell}.controllers.{controller}.ios.select": NatsErrorPayload;
2190
2191
  }
2191
2192
  type NatsRequestSubject = keyof NatsRequestPayloads;
2193
+ /** Payload types for every subject defined in the spec, publishable via NovaNatsClient#publish. */
2194
+ interface NatsPublishPayloads {
2195
+ /** publishCell */
2196
+ "nova.v2.cells.{cell}": Cell;
2197
+ /** publishApp */
2198
+ "nova.v2.cells.{cell}.apps.{app}": App;
2199
+ /** publishProgramStatus */
2200
+ "nova.v2.cells.{cell}.programs": ProgramStatus;
2201
+ /** publishRobotController */
2202
+ "nova.v2.cells.{cell}.controllers.{controller}": RobotController;
2203
+ /** publishCellStatus */
2204
+ "nova.v2.cells.{cell}.status": ServiceStatusList;
2205
+ /** publishCellCycle */
2206
+ "nova.v2.cells.{cell}.cycle": CellCycleEvent;
2207
+ /** publishSystemStatus */
2208
+ "nova.v2.system.status": ServiceStatusList;
2209
+ /** publishCollisionSetup */
2210
+ "nova.v2.cells.{cell}.collision.setups.{setup}": CollisionSetup;
2211
+ /** publishBUSIOStatus */
2212
+ "nova.v2.cells.{cell}.bus-ios.status": BusIOsState;
2213
+ /** publishBUSIOsIOs */
2214
+ "nova.v2.cells.{cell}.bus-ios.ios": ListIOValuesResponse;
2215
+ /** setBUSIOsIOs */
2216
+ "nova.v2.cells.{cell}.bus-ios.ios.set": ListIOValuesResponse;
2217
+ /** selectRobotControllerIOs */
2218
+ "nova.v2.cells.{cell}.controllers.{controller}.ios.select": SelectIOs;
2219
+ /** publishRobotControllerIOs */
2220
+ "nova.v2.cells.{cell}.controllers.{controller}.ios": StreamIOValuesResponse;
2221
+ /** publishRobotControllersState */
2222
+ "nova.v2.cells.{cell}.controllers.{controller}.state": RobotControllerState;
2223
+ /** publishMotionGroupDescription */
2224
+ "nova.v2.cells.{cell}.controllers.{controller}.motion-groups.{motion-group}.description": MotionGroupDescription;
2225
+ /** eventSystemUpdateStarted */
2226
+ "nova.v2.events.system.update.started": SystemUpdateStartedEvent;
2227
+ /** eventSystemUpdateCompleted */
2228
+ "nova.v2.events.system.update.completed": SystemUpdateCompletedEvent;
2229
+ /** eventSystemNetworkStatusChanged */
2230
+ "nova.v2.events.system.network.status.changed": NetworkStatusChangedEvent;
2231
+ /** eventCellCreated */
2232
+ "nova.v2.events.cells.{cell}.created": CellCreatedEvent;
2233
+ /** eventCellUpdated */
2234
+ "nova.v2.events.cells.{cell}.updated": CellUpdatedEvent;
2235
+ /** eventCellDeleted */
2236
+ "nova.v2.events.cells.{cell}.deleted": CellDeletedEvent;
2237
+ /** eventAppCreated */
2238
+ "nova.v2.events.cells.{cell}.apps.{app}.created": AppCreatedEvent;
2239
+ /** eventAppUpdated */
2240
+ "nova.v2.events.cells.{cell}.apps.{app}.updated": AppUpdatedEvent;
2241
+ /** eventAppDeleted */
2242
+ "nova.v2.events.cells.{cell}.apps.{app}.deleted": AppDeletedEvent;
2243
+ /** eventRobotControllerCreated */
2244
+ "nova.v2.events.cells.{cell}.controllers.{controller}.created": RobotControllerCreatedEvent;
2245
+ /** eventRobotControllerUpdated */
2246
+ "nova.v2.events.cells.{cell}.controllers.{controller}.updated": RobotControllerUpdatedEvent;
2247
+ /** eventRobotControllerDeleted */
2248
+ "nova.v2.events.cells.{cell}.controllers.{controller}.deleted": RobotControllerDeletedEvent;
2249
+ }
2250
+ type NatsPublishSubject = keyof NatsPublishPayloads;
2192
2251
  //#endregion
2193
2252
  //#region src/lib/experimental/nats/NovaNatsClient.d.ts
2194
2253
  type NovaNatsClientConfig = ConnectionOptions;
2254
+ type NatsMessageHandler<K extends NatsSubscribeSubject> = (payload: NatsSubscribePayloads[K], msg: Msg) => void;
2255
+ type SubscribeArgs<K extends NatsSubscribeSubject> = keyof NatsOperationParams[K] extends never ? [handler: NatsMessageHandler<K>] : [params: NatsOperationParams[K], handler: NatsMessageHandler<K>];
2195
2256
  /**
2196
2257
  * Typed NATS client for the Wandelbots NOVA messaging API, generated from
2197
2258
  * src/asyncapi.yaml (see scripts/generate-nats-client.ts).
@@ -2201,7 +2262,7 @@ type NovaNatsClientConfig = ConnectionOptions;
2201
2262
  declare class NovaNatsClient {
2202
2263
  readonly config: NovaNatsClientConfig;
2203
2264
  private connectionPromise;
2204
- constructor(config: NovaNatsClientConfig);
2265
+ constructor(nova: Nova, config?: NovaNatsClientConfig);
2205
2266
  /**
2206
2267
  * Connects to NATS if not already connected or connecting, and returns the
2207
2268
  * connection. Safe to call concurrently: all callers share the same
@@ -2220,7 +2281,7 @@ declare class NovaNatsClient {
2220
2281
  *
2221
2282
  * Returns a function that unsubscribes when called.
2222
2283
  */
2223
- subscribe<K extends NatsSubscribeSubject>(subject: K, params: NatsOperationParams[K], handler: (payload: NatsSubscribePayloads[K], msg: Msg) => void): Promise<() => void>;
2284
+ subscribe<K extends NatsSubscribeSubject>(subject: K, ...args: SubscribeArgs<K>): Promise<() => void>;
2224
2285
  /**
2225
2286
  * Sends a request payload for a NATS subject the server receives, and
2226
2287
  * waits for the JSON-decoded reply.
@@ -2232,7 +2293,16 @@ declare class NovaNatsClient {
2232
2293
  request<K extends NatsRequestSubject>(subject: K, params: NatsOperationParams[K], payload: NatsRequestPayloads[K], opts?: {
2233
2294
  timeout?: number;
2234
2295
  }): Promise<NatsReplyPayloads[K]>;
2296
+ /**
2297
+ * Publishes a JSON payload to any NATS subject defined in the spec,
2298
+ * without waiting for a reply.
2299
+ *
2300
+ * `subject` is the subject template as it appears on the wire, e.g.
2301
+ * `"nova.v2.cells.{cell}.bus-ios.ios.set"`, with `{param}` placeholders
2302
+ * filled in from `params`.
2303
+ */
2304
+ publish<K extends NatsPublishSubject>(subject: K, params: NatsOperationParams[K], payload: NatsPublishPayloads[K]): Promise<void>;
2235
2305
  }
2236
2306
  //#endregion
2237
- export { type NatsOperationParams, type NatsReplyPayloads, type NatsRequestPayloads, type NatsRequestSubject, type NatsSubscribePayloads, type NatsSubscribeSubject, NovaNatsClient, type NovaNatsClientConfig, buildNatsServerUrl };
2307
+ export { type NatsOperationParams, type NatsPublishPayloads, type NatsPublishSubject, type NatsReplyPayloads, type NatsRequestPayloads, type NatsRequestSubject, type NatsSubscribePayloads, type NatsSubscribeSubject, NovaNatsClient, type NovaNatsClientConfig, buildNatsServerUrl };
2238
2308
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../../src/lib/experimental/nats/buildNatsServerUrl.ts","../../../src/lib/experimental/nats/generated/types.ts","../../../src/lib/experimental/nats/generated/operations.ts","../../../src/lib/experimental/nats/NovaNatsClient.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../../src/lib/experimental/nats/buildNatsServerUrl.ts","../../../src/lib/experimental/nats/generated/types.ts","../../../src/lib/experimental/nats/generated/operations.ts","../../../src/lib/experimental/nats/NovaNatsClient.ts"],"mappings":"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"}
@@ -64,8 +64,11 @@ function buildSubject(template, params) {
64
64
  var NovaNatsClient = class {
65
65
  config;
66
66
  connectionPromise = null;
67
- constructor(config) {
68
- this.config = config;
67
+ constructor(nova, config = {}) {
68
+ this.config = {
69
+ servers: buildNatsServerUrl(nova.instanceUrl.href),
70
+ ...config
71
+ };
69
72
  }
70
73
  /**
71
74
  * Connects to NATS if not already connected or connecting, and returns the
@@ -98,7 +101,8 @@ var NovaNatsClient = class {
98
101
  *
99
102
  * Returns a function that unsubscribes when called.
100
103
  */
101
- async subscribe(subject, params, handler) {
104
+ async subscribe(subject, ...args) {
105
+ const [params, handler] = args.length === 1 ? [{}, args[0]] : [args[0], args[1]];
102
106
  const nc = await this.connect();
103
107
  const resolvedSubject = buildSubject(subject, params);
104
108
  const sub = nc.subscribe(resolvedSubject);
@@ -122,6 +126,19 @@ var NovaNatsClient = class {
122
126
  const resolvedSubject = buildSubject(subject, params);
123
127
  return (await nc.request(resolvedSubject, JSON.stringify(payload), { timeout: opts.timeout ?? 5e3 })).json();
124
128
  }
129
+ /**
130
+ * Publishes a JSON payload to any NATS subject defined in the spec,
131
+ * without waiting for a reply.
132
+ *
133
+ * `subject` is the subject template as it appears on the wire, e.g.
134
+ * `"nova.v2.cells.{cell}.bus-ios.ios.set"`, with `{param}` placeholders
135
+ * filled in from `params`.
136
+ */
137
+ async publish(subject, params, payload) {
138
+ const nc = await this.connect();
139
+ const resolvedSubject = buildSubject(subject, params);
140
+ nc.publish(resolvedSubject, JSON.stringify(payload));
141
+ }
125
142
  };
126
143
  //#endregion
127
144
  export { NovaNatsClient, buildNatsServerUrl };
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../../src/lib/experimental/nats/buildNatsServerUrl.ts","../../../src/lib/experimental/nats/buildSubject.ts","../../../src/lib/experimental/nats/NovaNatsClient.ts"],"sourcesContent":["import { parseNovaInstanceUrl } from \"../../converters.ts\"\n\n/**\n * Builds the WebSocket URL for a NOVA instance's NATS gateway from its\n * instance URL, e.g. `https://foo.instance.wandelbots.io` becomes\n * `wss://foo.instance.wandelbots.io/api/nats`.\n *\n * Pass the result as `servers` in the `NovaNatsClientConfig` passed to\n * `NovaNatsClient`.\n */\nexport function buildNatsServerUrl(instanceUrl: string): string {\n const url = parseNovaInstanceUrl(instanceUrl)\n const protocol = url.protocol === \"https:\" ? \"wss:\" : \"ws:\"\n return `${protocol}//${url.host}/api/nats`\n}\n","/**\n * Builds a NATS subject from an AsyncAPI-style channel address template\n * (e.g. `\"{instance}.v2.cells.{cell}\"`) by substituting each `{param}`\n * placeholder with the corresponding value from `params`.\n */\n\nfunction isValidSubjectChar(char: string): boolean {\n const code = char.charCodeAt(0)\n return (\n (code >= 48 && code <= 57) || // 0-9\n (code >= 65 && code <= 90) || // A-Z\n (code >= 97 && code <= 122) || // a-z\n char === \"-\" ||\n char === \"_\" ||\n char === \"*\"\n )\n}\n\nfunction isValidSubjectValue(value: string): boolean {\n if (value.length === 0) return false\n for (const char of value) {\n if (!isValidSubjectChar(char)) return false\n }\n return true\n}\n\nexport function buildSubject(\n template: string,\n params: Record<string, string>,\n): string {\n // Scanned manually (rather than with a regex like /\\{([^}]+)\\}/g) to avoid\n // a polynomial-time backtracking blowup on pathological input, e.g. a\n // template consisting of many \"{\" characters with no closing \"}\".\n let result = \"\"\n let cursor = 0\n\n while (cursor < template.length) {\n const openIndex = template.indexOf(\"{\", cursor)\n if (openIndex === -1) {\n result += template.slice(cursor)\n break\n }\n\n const closeIndex = template.indexOf(\"}\", openIndex + 1)\n if (closeIndex === -1) {\n result += template.slice(cursor)\n break\n }\n\n result += template.slice(cursor, openIndex)\n const paramName = template.slice(openIndex + 1, closeIndex)\n const value = params[paramName]\n if (value === undefined) {\n throw new Error(\n `Missing value for subject parameter \"${paramName}\" in template \"${template}\"`,\n )\n }\n if (!isValidSubjectValue(value)) {\n throw new Error(\n `Invalid value for subject parameter \"${paramName}\": \"${value}\" (must be non-empty and contain only letters, digits, \"-\", and \"_\")`,\n )\n }\n result += value\n\n cursor = closeIndex + 1\n }\n\n return result\n}\n","import {\n type ConnectionOptions,\n type Msg,\n type NatsConnection,\n wsconnect,\n} from \"@nats-io/nats-core\"\nimport { buildSubject } from \"./buildSubject.ts\"\nimport type {\n NatsOperationParams,\n NatsReplyPayloads,\n NatsRequestPayloads,\n NatsRequestSubject,\n NatsSubscribePayloads,\n NatsSubscribeSubject,\n} from \"./generated/operations.ts\"\n\nexport type NovaNatsClientConfig = ConnectionOptions\n\n/**\n * Typed NATS client for the Wandelbots NOVA messaging API, generated from\n * src/asyncapi.yaml (see scripts/generate-nats-client.ts).\n *\n * Connects over WebSocket via `@nats-io/nats-core`'s `wsconnect`.\n */\nexport class NovaNatsClient {\n readonly config: NovaNatsClientConfig\n private connectionPromise: Promise<NatsConnection> | null = null\n\n constructor(config: NovaNatsClientConfig) {\n this.config = config\n }\n\n /**\n * Connects to NATS if not already connected or connecting, and returns the\n * connection. Safe to call concurrently: all callers share the same\n * in-flight connection attempt instead of each starting their own.\n */\n connect(): Promise<NatsConnection> {\n if (!this.connectionPromise) {\n this.connectionPromise = wsconnect(this.config).catch((err: unknown) => {\n // Allow a subsequent connect() call to retry after a failed attempt.\n this.connectionPromise = null\n throw err\n })\n }\n return this.connectionPromise\n }\n\n /** Closes the underlying NATS connection, if open or connecting. */\n async close(): Promise<void> {\n const connectionPromise = this.connectionPromise\n this.connectionPromise = null\n if (!connectionPromise) return\n try {\n const nc = await connectionPromise\n await nc.close()\n } catch {\n // Connection never succeeded; nothing to close.\n }\n }\n\n /**\n * Subscribes to a NATS subject published by the server, invoking `handler`\n * with the JSON-decoded payload of every message received.\n *\n * `subject` is the subject template as it appears on the wire, e.g.\n * `\"nova.v2.cells.{cell}\"`, with `{param}` placeholders filled in from\n * `params`.\n *\n * Returns a function that unsubscribes when called.\n */\n async subscribe<K extends NatsSubscribeSubject>(\n subject: K,\n params: NatsOperationParams[K],\n handler: (payload: NatsSubscribePayloads[K], msg: Msg) => void,\n ): Promise<() => void> {\n const nc = await this.connect()\n const resolvedSubject = buildSubject(subject, params)\n const sub = nc.subscribe(resolvedSubject)\n\n ;(async () => {\n for await (const msg of sub) {\n handler(msg.json<NatsSubscribePayloads[K]>(), msg)\n }\n })().catch((err: unknown) => {\n console.error(\n `Error handling NATS subscription for \"${resolvedSubject}\"`,\n err,\n )\n })\n\n return () => sub.unsubscribe()\n }\n\n /**\n * Sends a request payload for a NATS subject the server receives, and\n * waits for the JSON-decoded reply.\n *\n * `subject` is the subject template as it appears on the wire, e.g.\n * `\"nova.v2.cells.{cell}.bus-ios.ios.set\"`, with `{param}` placeholders\n * filled in from `params`.\n */\n async request<K extends NatsRequestSubject>(\n subject: K,\n params: NatsOperationParams[K],\n payload: NatsRequestPayloads[K],\n opts: { timeout?: number } = {},\n ): Promise<NatsReplyPayloads[K]> {\n const nc = await this.connect()\n const resolvedSubject = buildSubject(subject, params)\n const msg = await nc.request(resolvedSubject, JSON.stringify(payload), {\n timeout: opts.timeout ?? 5000,\n })\n return msg.json<NatsReplyPayloads[K]>()\n }\n}\n"],"mappings":";;;;;;;;;;;AAUA,SAAgB,mBAAmB,aAA6B;CAC9D,MAAM,MAAM,qBAAqB,WAAW;CAE5C,OAAO,GADU,IAAI,aAAa,WAAW,SAAS,MACnC,IAAI,IAAI,KAAK;AAClC;;;;;;;;ACRA,SAAS,mBAAmB,MAAuB;CACjD,MAAM,OAAO,KAAK,WAAW,CAAC;CAC9B,OACG,QAAQ,MAAM,QAAQ,MACtB,QAAQ,MAAM,QAAQ,MACtB,QAAQ,MAAM,QAAQ,OACvB,SAAS,OACT,SAAS,OACT,SAAS;AAEb;AAEA,SAAS,oBAAoB,OAAwB;CACnD,IAAI,MAAM,WAAW,GAAG,OAAO;CAC/B,KAAK,MAAM,QAAQ,OACjB,IAAI,CAAC,mBAAmB,IAAI,GAAG,OAAO;CAExC,OAAO;AACT;AAEA,SAAgB,aACd,UACA,QACQ;CAIR,IAAI,SAAS;CACb,IAAI,SAAS;CAEb,OAAO,SAAS,SAAS,QAAQ;EAC/B,MAAM,YAAY,SAAS,QAAQ,KAAK,MAAM;EAC9C,IAAI,cAAc,IAAI;GACpB,UAAU,SAAS,MAAM,MAAM;GAC/B;EACF;EAEA,MAAM,aAAa,SAAS,QAAQ,KAAK,YAAY,CAAC;EACtD,IAAI,eAAe,IAAI;GACrB,UAAU,SAAS,MAAM,MAAM;GAC/B;EACF;EAEA,UAAU,SAAS,MAAM,QAAQ,SAAS;EAC1C,MAAM,YAAY,SAAS,MAAM,YAAY,GAAG,UAAU;EAC1D,MAAM,QAAQ,OAAO;EACrB,IAAI,UAAU,KAAA,GACZ,MAAM,IAAI,MACR,wCAAwC,UAAU,iBAAiB,SAAS,EAC9E;EAEF,IAAI,CAAC,oBAAoB,KAAK,GAC5B,MAAM,IAAI,MACR,wCAAwC,UAAU,MAAM,MAAM,qEAChE;EAEF,UAAU;EAEV,SAAS,aAAa;CACxB;CAEA,OAAO;AACT;;;;;;;;;AC5CA,IAAa,iBAAb,MAA4B;CAC1B;CACA,oBAA4D;CAE5D,YAAY,QAA8B;EACxC,KAAK,SAAS;CAChB;;;;;;CAOA,UAAmC;EACjC,IAAI,CAAC,KAAK,mBACR,KAAK,oBAAoB,UAAU,KAAK,MAAM,EAAE,OAAO,QAAiB;GAEtE,KAAK,oBAAoB;GACzB,MAAM;EACR,CAAC;EAEH,OAAO,KAAK;CACd;;CAGA,MAAM,QAAuB;EAC3B,MAAM,oBAAoB,KAAK;EAC/B,KAAK,oBAAoB;EACzB,IAAI,CAAC,mBAAmB;EACxB,IAAI;GAEF,OAAM,MADW,mBACR,MAAM;EACjB,QAAQ,CAER;CACF;;;;;;;;;;;CAYA,MAAM,UACJ,SACA,QACA,SACqB;EACrB,MAAM,KAAK,MAAM,KAAK,QAAQ;EAC9B,MAAM,kBAAkB,aAAa,SAAS,MAAM;EACpD,MAAM,MAAM,GAAG,UAAU,eAAe;EAEvC,CAAC,YAAY;GACZ,WAAW,MAAM,OAAO,KACtB,QAAQ,IAAI,KAA+B,GAAG,GAAG;EAErD,GAAG,EAAE,OAAO,QAAiB;GAC3B,QAAQ,MACN,yCAAyC,gBAAgB,IACzD,GACF;EACF,CAAC;EAED,aAAa,IAAI,YAAY;CAC/B;;;;;;;;;CAUA,MAAM,QACJ,SACA,QACA,SACA,OAA6B,CAAC,GACC;EAC/B,MAAM,KAAK,MAAM,KAAK,QAAQ;EAC9B,MAAM,kBAAkB,aAAa,SAAS,MAAM;EAIpD,QAAO,MAHW,GAAG,QAAQ,iBAAiB,KAAK,UAAU,OAAO,GAAG,EACrE,SAAS,KAAK,WAAW,IAC3B,CAAC,GACU,KAA2B;CACxC;AACF"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../src/lib/experimental/nats/buildNatsServerUrl.ts","../../../src/lib/experimental/nats/buildSubject.ts","../../../src/lib/experimental/nats/NovaNatsClient.ts"],"sourcesContent":["import { parseNovaInstanceUrl } from \"../../converters.ts\"\n\n/**\n * Builds the WebSocket URL for a NOVA instance's NATS gateway from its\n * instance URL, e.g. `https://foo.instance.wandelbots.io` becomes\n * `wss://foo.instance.wandelbots.io/api/nats`.\n *\n * Pass the result as `servers` in the `NovaNatsClientConfig` passed to\n * `NovaNatsClient`.\n */\nexport function buildNatsServerUrl(instanceUrl: string): string {\n const url = parseNovaInstanceUrl(instanceUrl)\n const protocol = url.protocol === \"https:\" ? \"wss:\" : \"ws:\"\n return `${protocol}//${url.host}/api/nats`\n}\n","/**\n * Builds a NATS subject from an AsyncAPI-style channel address template\n * (e.g. `\"{instance}.v2.cells.{cell}\"`) by substituting each `{param}`\n * placeholder with the corresponding value from `params`.\n */\n\nfunction isValidSubjectChar(char: string): boolean {\n const code = char.charCodeAt(0)\n return (\n (code >= 48 && code <= 57) || // 0-9\n (code >= 65 && code <= 90) || // A-Z\n (code >= 97 && code <= 122) || // a-z\n char === \"-\" ||\n char === \"_\" ||\n char === \"*\"\n )\n}\n\nfunction isValidSubjectValue(value: string): boolean {\n if (value.length === 0) return false\n for (const char of value) {\n if (!isValidSubjectChar(char)) return false\n }\n return true\n}\n\nexport function buildSubject(\n template: string,\n params: Record<string, string>,\n): string {\n // Scanned manually (rather than with a regex like /\\{([^}]+)\\}/g) to avoid\n // a polynomial-time backtracking blowup on pathological input, e.g. a\n // template consisting of many \"{\" characters with no closing \"}\".\n let result = \"\"\n let cursor = 0\n\n while (cursor < template.length) {\n const openIndex = template.indexOf(\"{\", cursor)\n if (openIndex === -1) {\n result += template.slice(cursor)\n break\n }\n\n const closeIndex = template.indexOf(\"}\", openIndex + 1)\n if (closeIndex === -1) {\n result += template.slice(cursor)\n break\n }\n\n result += template.slice(cursor, openIndex)\n const paramName = template.slice(openIndex + 1, closeIndex)\n const value = params[paramName]\n if (value === undefined) {\n throw new Error(\n `Missing value for subject parameter \"${paramName}\" in template \"${template}\"`,\n )\n }\n if (!isValidSubjectValue(value)) {\n throw new Error(\n `Invalid value for subject parameter \"${paramName}\": \"${value}\" (must be non-empty and contain only letters, digits, \"-\", and \"_\")`,\n )\n }\n result += value\n\n cursor = closeIndex + 1\n }\n\n return result\n}\n","import {\n type ConnectionOptions,\n type Msg,\n type NatsConnection,\n wsconnect,\n} from \"@nats-io/nats-core\"\nimport type { Nova } from \"../../Nova.ts\"\nimport { buildNatsServerUrl } from \"./buildNatsServerUrl.ts\"\nimport { buildSubject } from \"./buildSubject.ts\"\nimport type {\n NatsOperationParams,\n NatsPublishPayloads,\n NatsPublishSubject,\n NatsReplyPayloads,\n NatsRequestPayloads,\n NatsRequestSubject,\n NatsSubscribePayloads,\n NatsSubscribeSubject,\n} from \"./generated/operations.ts\"\n\nexport type NovaNatsClientConfig = ConnectionOptions\n\ntype NatsMessageHandler<K extends NatsSubscribeSubject> = (\n payload: NatsSubscribePayloads[K],\n msg: Msg,\n) => void\n\ntype SubscribeArgs<K extends NatsSubscribeSubject> =\n keyof NatsOperationParams[K] extends never\n ? [handler: NatsMessageHandler<K>]\n : [params: NatsOperationParams[K], handler: NatsMessageHandler<K>]\n\n/**\n * Typed NATS client for the Wandelbots NOVA messaging API, generated from\n * src/asyncapi.yaml (see scripts/generate-nats-client.ts).\n *\n * Connects over WebSocket via `@nats-io/nats-core`'s `wsconnect`.\n */\nexport class NovaNatsClient {\n readonly config: NovaNatsClientConfig\n private connectionPromise: Promise<NatsConnection> | null = null\n\n constructor(nova: Nova, config: NovaNatsClientConfig = {}) {\n this.config = {\n servers: buildNatsServerUrl(nova.instanceUrl.href),\n ...config,\n }\n }\n\n /**\n * Connects to NATS if not already connected or connecting, and returns the\n * connection. Safe to call concurrently: all callers share the same\n * in-flight connection attempt instead of each starting their own.\n */\n connect(): Promise<NatsConnection> {\n if (!this.connectionPromise) {\n this.connectionPromise = wsconnect(this.config).catch((err: unknown) => {\n // Allow a subsequent connect() call to retry after a failed attempt.\n this.connectionPromise = null\n throw err\n })\n }\n return this.connectionPromise\n }\n\n /** Closes the underlying NATS connection, if open or connecting. */\n async close(): Promise<void> {\n const connectionPromise = this.connectionPromise\n this.connectionPromise = null\n if (!connectionPromise) return\n try {\n const nc = await connectionPromise\n await nc.close()\n } catch {\n // Connection never succeeded; nothing to close.\n }\n }\n\n /**\n * Subscribes to a NATS subject published by the server, invoking `handler`\n * with the JSON-decoded payload of every message received.\n *\n * `subject` is the subject template as it appears on the wire, e.g.\n * `\"nova.v2.cells.{cell}\"`, with `{param}` placeholders filled in from\n * `params`.\n *\n * Returns a function that unsubscribes when called.\n */\n async subscribe<K extends NatsSubscribeSubject>(\n subject: K,\n ...args: SubscribeArgs<K>\n ): Promise<() => void> {\n const [params, handler] =\n args.length === 1\n ? ([{}, args[0]] as const)\n : ([args[0], args[1]] as const)\n\n const nc = await this.connect()\n const resolvedSubject = buildSubject(subject, params)\n const sub = nc.subscribe(resolvedSubject)\n\n ;(async () => {\n for await (const msg of sub) {\n handler(msg.json<NatsSubscribePayloads[K]>(), msg)\n }\n })().catch((err: unknown) => {\n console.error(\n `Error handling NATS subscription for \"${resolvedSubject}\"`,\n err,\n )\n })\n\n return () => sub.unsubscribe()\n }\n\n /**\n * Sends a request payload for a NATS subject the server receives, and\n * waits for the JSON-decoded reply.\n *\n * `subject` is the subject template as it appears on the wire, e.g.\n * `\"nova.v2.cells.{cell}.bus-ios.ios.set\"`, with `{param}` placeholders\n * filled in from `params`.\n */\n async request<K extends NatsRequestSubject>(\n subject: K,\n params: NatsOperationParams[K],\n payload: NatsRequestPayloads[K],\n opts: { timeout?: number } = {},\n ): Promise<NatsReplyPayloads[K]> {\n const nc = await this.connect()\n const resolvedSubject = buildSubject(subject, params)\n const msg = await nc.request(resolvedSubject, JSON.stringify(payload), {\n timeout: opts.timeout ?? 5000,\n })\n return msg.json<NatsReplyPayloads[K]>()\n }\n\n /**\n * Publishes a JSON payload to any NATS subject defined in the spec,\n * without waiting for a reply.\n *\n * `subject` is the subject template as it appears on the wire, e.g.\n * `\"nova.v2.cells.{cell}.bus-ios.ios.set\"`, with `{param}` placeholders\n * filled in from `params`.\n */\n async publish<K extends NatsPublishSubject>(\n subject: K,\n params: NatsOperationParams[K],\n payload: NatsPublishPayloads[K],\n ): Promise<void> {\n const nc = await this.connect()\n const resolvedSubject = buildSubject(subject, params)\n nc.publish(resolvedSubject, JSON.stringify(payload))\n }\n}\n"],"mappings":"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"}
@@ -1,17 +1,18 @@
1
1
  import { n as MockNovaInstance, t as AutoReconnectingWebsocket } from "../AutoReconnectingWebsocket-1K2J1NA4.cjs";
2
- import { AxiosInstance } from "axios";
2
+ import { n as NovaConfig, r as NovaAPIClient, t as Nova } from "../Nova-B1o5iTQ6.cjs";
3
3
  import { ApplicationApi, BUSInputsOutputsApi, CellApi, Configuration, ControllerApi, ControllerInputsOutputsApi, JoggingApi, KinematicsApi, LicenseApi, MotionGroupApi, MotionGroupModelsApi, NOVACloudApi, Pose, ProgramApi, RobotConfigurationsApi, SessionApi, StoreCollisionComponentsApi, StoreCollisionSetupsApi, StoreObjectApi, SystemApi, TrajectoryCachingApi, TrajectoryExecutionApi, TrajectoryPlanningApi, VersionApi, VirtualControllerApi, VirtualControllerBehaviorApi, VirtualControllerInputsOutputsApi } from "@wandelbots/nova-api/v2";
4
+ import { AxiosInstance } from "axios";
4
5
  export * from "@wandelbots/nova-api/v2";
5
6
 
6
7
  //#region src/lib/deprecated/v2/NovaCellAPIClient.d.ts
7
8
  type OmitFirstArg<F> = F extends ((x: any, ...args: infer P) => infer R) ? (...args: P) => R : never;
8
- type UnwrapAxiosResponseReturn$1<T> = T extends ((...a: any) => any) ? (...a: Parameters<T>) => Promise<Awaited<ReturnType<T>> extends {
9
+ type UnwrapAxiosResponseReturn<T> = T extends ((...a: any) => any) ? (...a: Parameters<T>) => Promise<Awaited<ReturnType<T>> extends {
9
10
  data: infer D;
10
11
  } ? D : never> : never;
11
12
  /** @deprecated Use `NovaAPIClient` instead. */
12
- type WithCellId<T> = { [P in keyof T]: UnwrapAxiosResponseReturn$1<OmitFirstArg<T[P]>> };
13
+ type WithCellId<T> = { [P in keyof T]: UnwrapAxiosResponseReturn<OmitFirstArg<T[P]>> };
13
14
  /** @deprecated Use `NovaAPIClient` instead. */
14
- type WithUnwrappedAxiosResponse<T> = { [P in keyof T]: UnwrapAxiosResponseReturn$1<T[P]> };
15
+ type WithUnwrappedAxiosResponse<T> = { [P in keyof T]: UnwrapAxiosResponseReturn<T[P]> };
15
16
  /**
16
17
  * API client providing type-safe access to all the Nova API REST endpoints
17
18
  * associated with a specific cell id.
@@ -126,84 +127,5 @@ declare class NovaClient {
126
127
  */
127
128
  declare function poseToWandelscriptString(pose: Pick<Pose, "position" | "orientation">): string;
128
129
  //#endregion
129
- //#region src/lib/NovaAPIClient.d.ts
130
- type UnwrapAxiosResponseReturn<T> = T extends ((...a: any[]) => any) ? (...a: Parameters<T>) => Promise<Awaited<ReturnType<T>> extends {
131
- data: infer D;
132
- } ? D : never> : never;
133
- type WithUnwrappedAxiosResponse$1<T> = { [P in keyof T]: UnwrapAxiosResponseReturn<T[P]> };
134
- type NovaAPIClientOpts = Configuration & {
135
- axiosInstance?: AxiosInstance;
136
- mock?: boolean;
137
- };
138
- /**
139
- * API client providing type-safe access to all the endpoints of a NOVA
140
- * instance.
141
- */
142
- declare class NovaAPIClient {
143
- readonly opts: NovaAPIClientOpts;
144
- readonly application: WithUnwrappedAxiosResponse$1<ApplicationApi>;
145
- readonly busIOs: WithUnwrappedAxiosResponse$1<BUSInputsOutputsApi>;
146
- readonly cell: WithUnwrappedAxiosResponse$1<CellApi>;
147
- readonly controller: WithUnwrappedAxiosResponse$1<ControllerApi>;
148
- readonly controllerIOs: WithUnwrappedAxiosResponse$1<ControllerInputsOutputsApi>;
149
- readonly jogging: WithUnwrappedAxiosResponse$1<JoggingApi>;
150
- readonly kinematics: WithUnwrappedAxiosResponse$1<KinematicsApi>;
151
- readonly license: WithUnwrappedAxiosResponse$1<LicenseApi>;
152
- readonly motionGroup: WithUnwrappedAxiosResponse$1<MotionGroupApi>;
153
- readonly motionGroupModels: WithUnwrappedAxiosResponse$1<MotionGroupModelsApi>;
154
- readonly novaCloud: WithUnwrappedAxiosResponse$1<NOVACloudApi>;
155
- readonly program: WithUnwrappedAxiosResponse$1<ProgramApi>;
156
- readonly robotConfigurations: WithUnwrappedAxiosResponse$1<RobotConfigurationsApi>;
157
- readonly session: WithUnwrappedAxiosResponse$1<SessionApi>;
158
- readonly storeCollisionComponents: WithUnwrappedAxiosResponse$1<StoreCollisionComponentsApi>;
159
- readonly storeCollisionSetups: WithUnwrappedAxiosResponse$1<StoreCollisionSetupsApi>;
160
- readonly storeObject: WithUnwrappedAxiosResponse$1<StoreObjectApi>;
161
- readonly system: WithUnwrappedAxiosResponse$1<SystemApi>;
162
- readonly trajectoryCaching: WithUnwrappedAxiosResponse$1<TrajectoryCachingApi>;
163
- readonly trajectoryExecution: WithUnwrappedAxiosResponse$1<TrajectoryExecutionApi>;
164
- readonly trajectoryPlanning: WithUnwrappedAxiosResponse$1<TrajectoryPlanningApi>;
165
- readonly version: WithUnwrappedAxiosResponse$1<VersionApi>;
166
- readonly virtualController: WithUnwrappedAxiosResponse$1<VirtualControllerApi>;
167
- readonly virtualControllerBehavior: WithUnwrappedAxiosResponse$1<VirtualControllerBehaviorApi>;
168
- readonly virtualControllerIOs: WithUnwrappedAxiosResponse$1<VirtualControllerInputsOutputsApi>;
169
- constructor(opts: NovaAPIClientOpts);
170
- }
171
- //#endregion
172
- //#region src/lib/Nova.d.ts
173
- type NovaConfig = {
174
- /**
175
- * Url of the deployed NOVA instance to connect to
176
- * e.g. https://saeattii.instance.wandelbots.io
177
- */
178
- instanceUrl: string;
179
- /**
180
- * Access token for Bearer authentication.
181
- * If running on a NOVA instance, this can be automatically retrieved from
182
- * the current session when omitted.
183
- */
184
- accessToken?: string;
185
- } & Omit<Configuration, "isJsonMime" | "basePath">;
186
- /**
187
- *
188
- * Client for connecting to a NOVA instance and controlling robots.
189
- */
190
- declare class Nova {
191
- readonly api: NovaAPIClient;
192
- readonly config: NovaConfig;
193
- readonly mock?: MockNovaInstance;
194
- readonly instanceUrl: URL;
195
- authPromise: Promise<string | null> | null;
196
- accessToken: string | null;
197
- constructor(config: NovaConfig);
198
- renewAuthentication(): Promise<void>;
199
- makeWebsocketURL(path: string): string;
200
- /**
201
- * Retrieve an AutoReconnectingWebsocket to the given path on the Nova instance.
202
- * If you explicitly want to reconnect an existing websocket, call `reconnect`
203
- * on the returned object.
204
- */
205
- openReconnectingWebsocket(path: string): AutoReconnectingWebsocket;
206
- }
207
- //#endregion
208
130
  export { Nova, NovaAPIClient, NovaCellAPIClient, NovaClient, NovaClientConfig, type NovaConfig, WithCellId, WithUnwrappedAxiosResponse, poseToWandelscriptString };
209
131
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/lib/deprecated/v2/NovaCellAPIClient.ts","../../src/lib/deprecated/v2/NovaClient.ts","../../src/lib/deprecated/v2/wandelscriptUtils.ts","../../src/lib/NovaAPIClient.ts","../../src/lib/Nova.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/lib/deprecated/v2/NovaCellAPIClient.ts","../../src/lib/deprecated/v2/NovaClient.ts","../../src/lib/deprecated/v2/wandelscriptUtils.ts"],"mappings":"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"}
@@ -1,17 +1,18 @@
1
1
  import { n as MockNovaInstance, t as AutoReconnectingWebsocket } from "../AutoReconnectingWebsocket-1K2J1NA4.mjs";
2
+ import { n as NovaConfig, r as NovaAPIClient, t as Nova } from "../Nova--8gozkLR.mjs";
2
3
  import { AxiosInstance } from "axios";
3
4
  import { ApplicationApi, BUSInputsOutputsApi, CellApi, Configuration, ControllerApi, ControllerInputsOutputsApi, JoggingApi, KinematicsApi, LicenseApi, MotionGroupApi, MotionGroupModelsApi, NOVACloudApi, Pose, ProgramApi, RobotConfigurationsApi, SessionApi, StoreCollisionComponentsApi, StoreCollisionSetupsApi, StoreObjectApi, SystemApi, TrajectoryCachingApi, TrajectoryExecutionApi, TrajectoryPlanningApi, VersionApi, VirtualControllerApi, VirtualControllerBehaviorApi, VirtualControllerInputsOutputsApi } from "@wandelbots/nova-api/v2";
4
5
  export * from "@wandelbots/nova-api/v2";
5
6
 
6
7
  //#region src/lib/deprecated/v2/NovaCellAPIClient.d.ts
7
8
  type OmitFirstArg<F> = F extends ((x: any, ...args: infer P) => infer R) ? (...args: P) => R : never;
8
- type UnwrapAxiosResponseReturn$1<T> = T extends ((...a: any) => any) ? (...a: Parameters<T>) => Promise<Awaited<ReturnType<T>> extends {
9
+ type UnwrapAxiosResponseReturn<T> = T extends ((...a: any) => any) ? (...a: Parameters<T>) => Promise<Awaited<ReturnType<T>> extends {
9
10
  data: infer D;
10
11
  } ? D : never> : never;
11
12
  /** @deprecated Use `NovaAPIClient` instead. */
12
- type WithCellId<T> = { [P in keyof T]: UnwrapAxiosResponseReturn$1<OmitFirstArg<T[P]>> };
13
+ type WithCellId<T> = { [P in keyof T]: UnwrapAxiosResponseReturn<OmitFirstArg<T[P]>> };
13
14
  /** @deprecated Use `NovaAPIClient` instead. */
14
- type WithUnwrappedAxiosResponse<T> = { [P in keyof T]: UnwrapAxiosResponseReturn$1<T[P]> };
15
+ type WithUnwrappedAxiosResponse<T> = { [P in keyof T]: UnwrapAxiosResponseReturn<T[P]> };
15
16
  /**
16
17
  * API client providing type-safe access to all the Nova API REST endpoints
17
18
  * associated with a specific cell id.
@@ -126,84 +127,5 @@ declare class NovaClient {
126
127
  */
127
128
  declare function poseToWandelscriptString(pose: Pick<Pose, "position" | "orientation">): string;
128
129
  //#endregion
129
- //#region src/lib/NovaAPIClient.d.ts
130
- type UnwrapAxiosResponseReturn<T> = T extends ((...a: any[]) => any) ? (...a: Parameters<T>) => Promise<Awaited<ReturnType<T>> extends {
131
- data: infer D;
132
- } ? D : never> : never;
133
- type WithUnwrappedAxiosResponse$1<T> = { [P in keyof T]: UnwrapAxiosResponseReturn<T[P]> };
134
- type NovaAPIClientOpts = Configuration & {
135
- axiosInstance?: AxiosInstance;
136
- mock?: boolean;
137
- };
138
- /**
139
- * API client providing type-safe access to all the endpoints of a NOVA
140
- * instance.
141
- */
142
- declare class NovaAPIClient {
143
- readonly opts: NovaAPIClientOpts;
144
- readonly application: WithUnwrappedAxiosResponse$1<ApplicationApi>;
145
- readonly busIOs: WithUnwrappedAxiosResponse$1<BUSInputsOutputsApi>;
146
- readonly cell: WithUnwrappedAxiosResponse$1<CellApi>;
147
- readonly controller: WithUnwrappedAxiosResponse$1<ControllerApi>;
148
- readonly controllerIOs: WithUnwrappedAxiosResponse$1<ControllerInputsOutputsApi>;
149
- readonly jogging: WithUnwrappedAxiosResponse$1<JoggingApi>;
150
- readonly kinematics: WithUnwrappedAxiosResponse$1<KinematicsApi>;
151
- readonly license: WithUnwrappedAxiosResponse$1<LicenseApi>;
152
- readonly motionGroup: WithUnwrappedAxiosResponse$1<MotionGroupApi>;
153
- readonly motionGroupModels: WithUnwrappedAxiosResponse$1<MotionGroupModelsApi>;
154
- readonly novaCloud: WithUnwrappedAxiosResponse$1<NOVACloudApi>;
155
- readonly program: WithUnwrappedAxiosResponse$1<ProgramApi>;
156
- readonly robotConfigurations: WithUnwrappedAxiosResponse$1<RobotConfigurationsApi>;
157
- readonly session: WithUnwrappedAxiosResponse$1<SessionApi>;
158
- readonly storeCollisionComponents: WithUnwrappedAxiosResponse$1<StoreCollisionComponentsApi>;
159
- readonly storeCollisionSetups: WithUnwrappedAxiosResponse$1<StoreCollisionSetupsApi>;
160
- readonly storeObject: WithUnwrappedAxiosResponse$1<StoreObjectApi>;
161
- readonly system: WithUnwrappedAxiosResponse$1<SystemApi>;
162
- readonly trajectoryCaching: WithUnwrappedAxiosResponse$1<TrajectoryCachingApi>;
163
- readonly trajectoryExecution: WithUnwrappedAxiosResponse$1<TrajectoryExecutionApi>;
164
- readonly trajectoryPlanning: WithUnwrappedAxiosResponse$1<TrajectoryPlanningApi>;
165
- readonly version: WithUnwrappedAxiosResponse$1<VersionApi>;
166
- readonly virtualController: WithUnwrappedAxiosResponse$1<VirtualControllerApi>;
167
- readonly virtualControllerBehavior: WithUnwrappedAxiosResponse$1<VirtualControllerBehaviorApi>;
168
- readonly virtualControllerIOs: WithUnwrappedAxiosResponse$1<VirtualControllerInputsOutputsApi>;
169
- constructor(opts: NovaAPIClientOpts);
170
- }
171
- //#endregion
172
- //#region src/lib/Nova.d.ts
173
- type NovaConfig = {
174
- /**
175
- * Url of the deployed NOVA instance to connect to
176
- * e.g. https://saeattii.instance.wandelbots.io
177
- */
178
- instanceUrl: string;
179
- /**
180
- * Access token for Bearer authentication.
181
- * If running on a NOVA instance, this can be automatically retrieved from
182
- * the current session when omitted.
183
- */
184
- accessToken?: string;
185
- } & Omit<Configuration, "isJsonMime" | "basePath">;
186
- /**
187
- *
188
- * Client for connecting to a NOVA instance and controlling robots.
189
- */
190
- declare class Nova {
191
- readonly api: NovaAPIClient;
192
- readonly config: NovaConfig;
193
- readonly mock?: MockNovaInstance;
194
- readonly instanceUrl: URL;
195
- authPromise: Promise<string | null> | null;
196
- accessToken: string | null;
197
- constructor(config: NovaConfig);
198
- renewAuthentication(): Promise<void>;
199
- makeWebsocketURL(path: string): string;
200
- /**
201
- * Retrieve an AutoReconnectingWebsocket to the given path on the Nova instance.
202
- * If you explicitly want to reconnect an existing websocket, call `reconnect`
203
- * on the returned object.
204
- */
205
- openReconnectingWebsocket(path: string): AutoReconnectingWebsocket;
206
- }
207
- //#endregion
208
130
  export { Nova, NovaAPIClient, NovaCellAPIClient, NovaClient, NovaClientConfig, type NovaConfig, WithCellId, WithUnwrappedAxiosResponse, poseToWandelscriptString };
209
131
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/lib/deprecated/v2/NovaCellAPIClient.ts","../../src/lib/deprecated/v2/NovaClient.ts","../../src/lib/deprecated/v2/wandelscriptUtils.ts","../../src/lib/NovaAPIClient.ts","../../src/lib/Nova.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/lib/deprecated/v2/NovaCellAPIClient.ts","../../src/lib/deprecated/v2/NovaClient.ts","../../src/lib/deprecated/v2/wandelscriptUtils.ts"],"mappings":";;;;;;;KAoCK,YAAA,MAAkB,CAAA,WAAW,CAAA,UAAW,IAAA,6BACrC,IAAA,EAAM,CAAA,KAAM,CAAA;AAAA,KAGf,yBAAA,MAA+B,CAAA,cAAc,CAAA,qBAEzC,CAAA,EAAG,UAAA,CAAW,CAAA,MACd,OAAA,CAAQ,OAAA,CAAQ,UAAA,CAAW,CAAA;EAAc,IAAA;AAAA,IAAkB,CAAA;;KAIxD,UAAA,oBACE,CAAA,GAAI,yBAAA,CAA0B,YAAA,CAAa,CAAA,CAAE,CAAA;;KAI/C,0BAAA,oBACE,CAAA,GAAI,yBAAA,CAA0B,CAAA,CAAE,CAAA;;;;;;cAQjC,iBAAA;EAAA,SACF,MAAA,EAAQ,0BAAA,CAA2B,SAAA;EAAA,SACnC,IAAA,EAAM,0BAAA,CAA2B,OAAA;EAAA,SACjC,WAAA,EAAa,UAAA,CAAW,cAAA;EAAA,SACxB,iBAAA,EAAmB,0BAAA,CAA2B,oBAAA;EAAA,SAC9C,UAAA,EAAY,UAAA,CAAW,aAAA;EAAA,SACvB,aAAA,EAAe,UAAA,CAAW,0BAAA;EAAA,SAC1B,kBAAA,EAAoB,UAAA,CAAW,qBAAA;EAAA,SAC/B,mBAAA,EAAqB,UAAA,CAAW,sBAAA;EAAA,SAChC,iBAAA,EAAmB,UAAA,CAAW,oBAAA;EAAA,SAC9B,WAAA,EAAa,UAAA,CAAW,cAAA;EAAA,SACxB,iBAAA,EAAmB,0BAAA,CAA2B,cAAA;EAAA,SAC9C,OAAA,EAAS,UAAA,CAAW,UAAA;EAAA,SACpB,UAAA,EAAY,UAAA,CAAW,aAAA;EAAA,SACvB,gBAAA,EAAkB,UAAA,CAAW,mBAAA;EAAA,SAC7B,iBAAA,EAAmB,UAAA,CAAW,oBAAA;EAAA,SAC9B,yBAAA,EAA2B,UAAA,CAAW,4BAAA;EAAA,SACtC,oBAAA,EAAsB,UAAA,CAAW,iCAAA;EAAA,SACjC,WAAA,EAAa,UAAA,CAAW,cAAA;EAAA,SACxB,wBAAA,EAA0B,UAAA,CAAW,2BAAA;EAAA,SACrC,oBAAA,EAAsB,UAAA,CAAW,uBAAA;EAAA,SACjC,OAAA,EAAS,UAAA,CAAW,UAAA;EAAA,SACpB,OAAA,EAAS,0BAAA,CAA2B,UAAA;EAAA,SACpC,SAAA,EAAW,0BAAA,CAA2B,YAAA;EAAA,SACtC,mBAAA,EAAqB,0BAAA,CAA2B,sBAAA;EAAA,SAChD,OAAA,EAAS,0BAAA,CAA2B,UAAA;EAAA,SACpC,OAAA,EAAS,0BAAA,CAA2B,UAAA;EAAA,SAEpC,MAAA;EAAA,SACA,IAAA,EAAM,aAAA;IACb,aAAA,GAAgB,aAAA;IAChB,IAAA;EAAA;cAIA,MAAA,UACA,IAAA,EAAM,aAAA;IACJ,aAAA,GAAgB,aAAA;IAChB,IAAA;EAAA;EAnDmD;;;;;EAAA,QAgG/C,UAAA;EAjGa;;;EAAA,QAsIb,0BAAA;AAAA;;;;KCtKE,gBAAA;;ADkB8B;;;ECbxC,WAAA;EDiBY;;;;ECXZ,MAAA;EDUqB;;;;ECJrB,QAAA;EDKM;;;;ECCN,QAAA;EDEG;;;ECGH,WAAA;AAAA,IACE,IAAI,CAAC,aAAA;AAAA,KAEJ,4BAAA,GAA+B,gBAAgB;EAAK,MAAM;AAAA;;;;;cAMlD,UAAA;EAAA,SACF,GAAA,EAAK,iBAAA;EAAA,SACL,MAAA,EAAQ,4BAAA;EAAA,SACR,IAAA,GAAO,gBAAA;EAAA,SACP,WAAA,EAAa,GAAA;EACtB,WAAA,EAAa,OAAA;EACb,WAAA;cAEY,MAAA,EAAQ,gBAAA;EAgGd,mBAAA,IAAuB,OAAA;EA4B7B,gBAAA,CAAiB,IAAA;ED7I+B;;;;AAAmB;ECyKnE,yBAAA,CAA0B,IAAA,WAAY,yBAAA;AAAA;;;;;;;;iBC7MxB,wBAAA,CACd,IAAA,EAAM,IAAI,CAAC,IAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@wandelbots/nova-js",
3
3
  "type": "module",
4
- "version": "3.13.0-pr.307.8728cb4",
4
+ "version": "3.13.0-pr.307.dd54f61",
5
5
  "description": "Official JS client for the Wandelbots API",
6
6
  "sideEffects": false,
7
7
  "packageManager": "pnpm@11.9.0+sha512.bd682d5d03fe525ef7c9fd6780c6884d1e756ac4c9c9fe00c538782824310dcf90e3ddc4f53835f06dfaebd5085e41855e0bcbb3b60de2ac5bbab89e5036f03b",
@@ -7,6 +7,8 @@
7
7
  export { buildNatsServerUrl } from "../../lib/experimental/nats/buildNatsServerUrl.ts"
8
8
  export type {
9
9
  NatsOperationParams,
10
+ NatsPublishPayloads,
11
+ NatsPublishSubject,
10
12
  NatsReplyPayloads,
11
13
  NatsRequestPayloads,
12
14
  NatsRequestSubject,
@@ -4,9 +4,13 @@ import {
4
4
  type NatsConnection,
5
5
  wsconnect,
6
6
  } from "@nats-io/nats-core"
7
+ import type { Nova } from "../../Nova.ts"
8
+ import { buildNatsServerUrl } from "./buildNatsServerUrl.ts"
7
9
  import { buildSubject } from "./buildSubject.ts"
8
10
  import type {
9
11
  NatsOperationParams,
12
+ NatsPublishPayloads,
13
+ NatsPublishSubject,
10
14
  NatsReplyPayloads,
11
15
  NatsRequestPayloads,
12
16
  NatsRequestSubject,
@@ -16,6 +20,16 @@ import type {
16
20
 
17
21
  export type NovaNatsClientConfig = ConnectionOptions
18
22
 
23
+ type NatsMessageHandler<K extends NatsSubscribeSubject> = (
24
+ payload: NatsSubscribePayloads[K],
25
+ msg: Msg,
26
+ ) => void
27
+
28
+ type SubscribeArgs<K extends NatsSubscribeSubject> =
29
+ keyof NatsOperationParams[K] extends never
30
+ ? [handler: NatsMessageHandler<K>]
31
+ : [params: NatsOperationParams[K], handler: NatsMessageHandler<K>]
32
+
19
33
  /**
20
34
  * Typed NATS client for the Wandelbots NOVA messaging API, generated from
21
35
  * src/asyncapi.yaml (see scripts/generate-nats-client.ts).
@@ -26,8 +40,11 @@ export class NovaNatsClient {
26
40
  readonly config: NovaNatsClientConfig
27
41
  private connectionPromise: Promise<NatsConnection> | null = null
28
42
 
29
- constructor(config: NovaNatsClientConfig) {
30
- this.config = config
43
+ constructor(nova: Nova, config: NovaNatsClientConfig = {}) {
44
+ this.config = {
45
+ servers: buildNatsServerUrl(nova.instanceUrl.href),
46
+ ...config,
47
+ }
31
48
  }
32
49
 
33
50
  /**
@@ -71,9 +88,13 @@ export class NovaNatsClient {
71
88
  */
72
89
  async subscribe<K extends NatsSubscribeSubject>(
73
90
  subject: K,
74
- params: NatsOperationParams[K],
75
- handler: (payload: NatsSubscribePayloads[K], msg: Msg) => void,
91
+ ...args: SubscribeArgs<K>
76
92
  ): Promise<() => void> {
93
+ const [params, handler] =
94
+ args.length === 1
95
+ ? ([{}, args[0]] as const)
96
+ : ([args[0], args[1]] as const)
97
+
77
98
  const nc = await this.connect()
78
99
  const resolvedSubject = buildSubject(subject, params)
79
100
  const sub = nc.subscribe(resolvedSubject)
@@ -113,4 +134,22 @@ export class NovaNatsClient {
113
134
  })
114
135
  return msg.json<NatsReplyPayloads[K]>()
115
136
  }
137
+
138
+ /**
139
+ * Publishes a JSON payload to any NATS subject defined in the spec,
140
+ * without waiting for a reply.
141
+ *
142
+ * `subject` is the subject template as it appears on the wire, e.g.
143
+ * `"nova.v2.cells.{cell}.bus-ios.ios.set"`, with `{param}` placeholders
144
+ * filled in from `params`.
145
+ */
146
+ async publish<K extends NatsPublishSubject>(
147
+ subject: K,
148
+ params: NatsOperationParams[K],
149
+ payload: NatsPublishPayloads[K],
150
+ ): Promise<void> {
151
+ const nc = await this.connect()
152
+ const resolvedSubject = buildSubject(subject, params)
153
+ nc.publish(resolvedSubject, JSON.stringify(payload))
154
+ }
116
155
  }
@@ -51,7 +51,7 @@ export interface NatsOperationParams {
51
51
  /** publishCellCycle */
52
52
  "nova.v2.cells.{cell}.cycle": { cell: string }
53
53
  /** publishSystemStatus */
54
- "nova.v2.system.status": Record<string, never>
54
+ "nova.v2.system.status": Record<never, never>
55
55
  /** publishCollisionSetup */
56
56
  "nova.v2.cells.{cell}.collision.setups.{setup}": {
57
57
  cell: string
@@ -85,11 +85,11 @@ export interface NatsOperationParams {
85
85
  "motion-group": string
86
86
  }
87
87
  /** eventSystemUpdateStarted */
88
- "nova.v2.events.system.update.started": Record<string, never>
88
+ "nova.v2.events.system.update.started": Record<never, never>
89
89
  /** eventSystemUpdateCompleted */
90
- "nova.v2.events.system.update.completed": Record<string, never>
90
+ "nova.v2.events.system.update.completed": Record<never, never>
91
91
  /** eventSystemNetworkStatusChanged */
92
- "nova.v2.events.system.network.status.changed": Record<string, never>
92
+ "nova.v2.events.system.network.status.changed": Record<never, never>
93
93
  /** eventCellCreated */
94
94
  "nova.v2.events.cells.{cell}.created": { cell: string }
95
95
  /** eventCellUpdated */
@@ -201,3 +201,63 @@ export interface NatsReplyPayloads {
201
201
  }
202
202
 
203
203
  export type NatsRequestSubject = keyof NatsRequestPayloads
204
+
205
+ /** Payload types for every subject defined in the spec, publishable via NovaNatsClient#publish. */
206
+ export interface NatsPublishPayloads {
207
+ /** publishCell */
208
+ "nova.v2.cells.{cell}": Cell
209
+ /** publishApp */
210
+ "nova.v2.cells.{cell}.apps.{app}": App
211
+ /** publishProgramStatus */
212
+ "nova.v2.cells.{cell}.programs": ProgramStatus
213
+ /** publishRobotController */
214
+ "nova.v2.cells.{cell}.controllers.{controller}": RobotController
215
+ /** publishCellStatus */
216
+ "nova.v2.cells.{cell}.status": ServiceStatusList
217
+ /** publishCellCycle */
218
+ "nova.v2.cells.{cell}.cycle": CellCycleEvent
219
+ /** publishSystemStatus */
220
+ "nova.v2.system.status": ServiceStatusList
221
+ /** publishCollisionSetup */
222
+ "nova.v2.cells.{cell}.collision.setups.{setup}": CollisionSetup
223
+ /** publishBUSIOStatus */
224
+ "nova.v2.cells.{cell}.bus-ios.status": BusIOsState
225
+ /** publishBUSIOsIOs */
226
+ "nova.v2.cells.{cell}.bus-ios.ios": ListIOValuesResponse
227
+ /** setBUSIOsIOs */
228
+ "nova.v2.cells.{cell}.bus-ios.ios.set": ListIOValuesResponse
229
+ /** selectRobotControllerIOs */
230
+ "nova.v2.cells.{cell}.controllers.{controller}.ios.select": SelectIOs
231
+ /** publishRobotControllerIOs */
232
+ "nova.v2.cells.{cell}.controllers.{controller}.ios": StreamIOValuesResponse
233
+ /** publishRobotControllersState */
234
+ "nova.v2.cells.{cell}.controllers.{controller}.state": RobotControllerState
235
+ /** publishMotionGroupDescription */
236
+ "nova.v2.cells.{cell}.controllers.{controller}.motion-groups.{motion-group}.description": MotionGroupDescription
237
+ /** eventSystemUpdateStarted */
238
+ "nova.v2.events.system.update.started": SystemUpdateStartedEvent
239
+ /** eventSystemUpdateCompleted */
240
+ "nova.v2.events.system.update.completed": SystemUpdateCompletedEvent
241
+ /** eventSystemNetworkStatusChanged */
242
+ "nova.v2.events.system.network.status.changed": NetworkStatusChangedEvent
243
+ /** eventCellCreated */
244
+ "nova.v2.events.cells.{cell}.created": CellCreatedEvent
245
+ /** eventCellUpdated */
246
+ "nova.v2.events.cells.{cell}.updated": CellUpdatedEvent
247
+ /** eventCellDeleted */
248
+ "nova.v2.events.cells.{cell}.deleted": CellDeletedEvent
249
+ /** eventAppCreated */
250
+ "nova.v2.events.cells.{cell}.apps.{app}.created": AppCreatedEvent
251
+ /** eventAppUpdated */
252
+ "nova.v2.events.cells.{cell}.apps.{app}.updated": AppUpdatedEvent
253
+ /** eventAppDeleted */
254
+ "nova.v2.events.cells.{cell}.apps.{app}.deleted": AppDeletedEvent
255
+ /** eventRobotControllerCreated */
256
+ "nova.v2.events.cells.{cell}.controllers.{controller}.created": RobotControllerCreatedEvent
257
+ /** eventRobotControllerUpdated */
258
+ "nova.v2.events.cells.{cell}.controllers.{controller}.updated": RobotControllerUpdatedEvent
259
+ /** eventRobotControllerDeleted */
260
+ "nova.v2.events.cells.{cell}.controllers.{controller}.deleted": RobotControllerDeletedEvent
261
+ }
262
+
263
+ export type NatsPublishSubject = keyof NatsPublishPayloads