@intuitionrobotics/push-pub-sub 0.47.59 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/LICENSE +3 -0
  2. package/dist/app-backend/api/_push.d.ts +4 -0
  3. package/dist/app-backend/api/_push.d.ts.map +1 -0
  4. package/dist/app-backend/api/_push.js +3 -0
  5. package/dist/app-backend/api/_push.js.map +1 -0
  6. package/dist/app-backend/api/v1/push/read.d.ts +9 -0
  7. package/dist/app-backend/api/v1/push/read.d.ts.map +1 -0
  8. package/dist/app-backend/api/v1/push/read.js +15 -0
  9. package/dist/app-backend/api/v1/push/read.js.map +1 -0
  10. package/dist/app-backend/api/v1/push/register.d.ts +9 -0
  11. package/dist/app-backend/api/v1/push/register.d.ts.map +1 -0
  12. package/dist/app-backend/api/v1/push/register.js +15 -0
  13. package/dist/app-backend/api/v1/push/register.js.map +1 -0
  14. package/dist/app-backend/core/module-pack.d.ts +5 -0
  15. package/dist/app-backend/core/module-pack.d.ts.map +1 -0
  16. package/dist/app-backend/core/module-pack.js +10 -0
  17. package/dist/app-backend/core/module-pack.js.map +1 -0
  18. package/{app-backend → dist/app-backend}/modules/PushKey.d.ts +3 -2
  19. package/dist/app-backend/modules/PushKey.d.ts.map +1 -0
  20. package/dist/app-backend/modules/PushKey.js +16 -0
  21. package/dist/app-backend/modules/PushKey.js.map +1 -0
  22. package/{app-backend → dist/app-backend}/modules/PushPubSubModule.d.ts +5 -4
  23. package/dist/app-backend/modules/PushPubSubModule.d.ts.map +1 -0
  24. package/dist/app-backend/modules/PushPubSubModule.js +185 -0
  25. package/dist/app-backend/modules/PushPubSubModule.js.map +1 -0
  26. package/{app-backend → dist/app-backend}/modules/ScheduledPushCleanup.d.ts +1 -0
  27. package/dist/app-backend/modules/ScheduledPushCleanup.d.ts.map +1 -0
  28. package/dist/app-backend/modules/ScheduledPushCleanup.js +13 -0
  29. package/dist/app-backend/modules/ScheduledPushCleanup.js.map +1 -0
  30. package/{app-backend → dist/app-backend}/modules/_imports.d.ts +2 -1
  31. package/dist/app-backend/modules/_imports.d.ts.map +1 -0
  32. package/dist/app-backend/modules/_imports.js +4 -0
  33. package/{app-backend → dist/app-backend}/modules/_imports.js.map +1 -1
  34. package/dist/app-frontend/core/module-pack.d.ts +4 -0
  35. package/dist/app-frontend/core/module-pack.d.ts.map +1 -0
  36. package/dist/app-frontend/core/module-pack.js +11 -0
  37. package/dist/app-frontend/core/module-pack.js.map +1 -0
  38. package/{app-frontend → dist/app-frontend}/modules/NotificationModule.d.ts +2 -1
  39. package/dist/app-frontend/modules/NotificationModule.d.ts.map +1 -0
  40. package/dist/app-frontend/modules/NotificationModule.js +52 -0
  41. package/dist/app-frontend/modules/NotificationModule.js.map +1 -0
  42. package/{app-frontend → dist/app-frontend}/modules/PushPubSubModule.d.ts +2 -1
  43. package/dist/app-frontend/modules/PushPubSubModule.d.ts.map +1 -0
  44. package/dist/app-frontend/modules/PushPubSubModule.js +175 -0
  45. package/dist/app-frontend/modules/PushPubSubModule.js.map +1 -0
  46. package/dist/backend.d.ts +2 -0
  47. package/dist/backend.d.ts.map +1 -0
  48. package/dist/backend.js +2 -0
  49. package/dist/backend.js.map +1 -0
  50. package/dist/frontend.d.ts +4 -0
  51. package/dist/frontend.d.ts.map +1 -0
  52. package/dist/frontend.js +7 -0
  53. package/dist/frontend.js.map +1 -0
  54. package/dist/index.d.ts +3 -0
  55. package/dist/index.d.ts.map +1 -0
  56. package/dist/index.js +3 -0
  57. package/dist/index.js.map +1 -0
  58. package/dist/shared/api.d.ts +5 -0
  59. package/dist/shared/api.d.ts.map +1 -0
  60. package/dist/shared/api.js +3 -0
  61. package/dist/shared/api.js.map +1 -0
  62. package/{shared → dist/shared}/types.d.ts +3 -2
  63. package/dist/shared/types.d.ts.map +1 -0
  64. package/dist/shared/types.js +2 -0
  65. package/dist/shared/types.js.map +1 -0
  66. package/dist/tsconfig.tsbuildinfo +1 -0
  67. package/package.json +63 -14
  68. package/app-backend/api/_push.d.ts +0 -1
  69. package/app-backend/api/_push.js +0 -5
  70. package/app-backend/api/_push.js.map +0 -1
  71. package/app-backend/api/v1/push/read.d.ts +0 -1
  72. package/app-backend/api/v1/push/read.js +0 -27
  73. package/app-backend/api/v1/push/read.js.map +0 -1
  74. package/app-backend/api/v1/push/register.d.ts +0 -1
  75. package/app-backend/api/v1/push/register.js +0 -27
  76. package/app-backend/api/v1/push/register.js.map +0 -1
  77. package/app-backend/core/module-pack.d.ts +0 -4
  78. package/app-backend/core/module-pack.js +0 -27
  79. package/app-backend/core/module-pack.js.map +0 -1
  80. package/app-backend/modules/PushKey.js +0 -27
  81. package/app-backend/modules/PushKey.js.map +0 -1
  82. package/app-backend/modules/PushPubSubModule.js +0 -203
  83. package/app-backend/modules/PushPubSubModule.js.map +0 -1
  84. package/app-backend/modules/ScheduledPushCleanup.js +0 -26
  85. package/app-backend/modules/ScheduledPushCleanup.js.map +0 -1
  86. package/app-backend/modules/_imports.js +0 -21
  87. package/app-frontend/core/module-pack.d.ts +0 -3
  88. package/app-frontend/core/module-pack.js +0 -28
  89. package/app-frontend/core/module-pack.js.map +0 -1
  90. package/app-frontend/modules/NotificationModule.js +0 -55
  91. package/app-frontend/modules/NotificationModule.js.map +0 -1
  92. package/app-frontend/modules/PushPubSubModule.js +0 -184
  93. package/app-frontend/modules/PushPubSubModule.js.map +0 -1
  94. package/backend.d.ts +0 -1
  95. package/backend.js +0 -18
  96. package/backend.js.map +0 -1
  97. package/frontend.d.ts +0 -3
  98. package/frontend.js +0 -20
  99. package/frontend.js.map +0 -1
  100. package/index.d.ts +0 -2
  101. package/index.js +0 -19
  102. package/index.js.map +0 -1
  103. package/shared/api.d.ts +0 -4
  104. package/shared/api.js +0 -3
  105. package/shared/api.js.map +0 -1
  106. package/shared/types.js +0 -3
  107. package/shared/types.js.map +0 -1
@@ -0,0 +1,175 @@
1
+ /*
2
+ * A typescript & react boilerplate with api call example
3
+ *
4
+ * Copyright (C) 2018 Intuition Robotics
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License");
7
+ * you may not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ */
18
+ import { __stringify, BadImplementationException, compare, generateHex, ImplementationMissingException, Module } from "@intuitionrobotics/ts-common";
19
+ import { StorageKey, XhrHttpModule } from "@intuitionrobotics/thunderstorm/frontend";
20
+ // noinspection TypeScriptPreferShortImport
21
+ import {} from "../../index.js";
22
+ import { HttpMethod } from "@intuitionrobotics/thunderstorm";
23
+ import { FirebaseModule } from "@intuitionrobotics/firebase/app-frontend/FirebaseModule";
24
+ import { NotificationsModule } from "./NotificationModule.js";
25
+ export const Command_SwToApp = "SwToApp";
26
+ export const pushSessionIdKey = "x-push-session-id";
27
+ const pushSessionId = new StorageKey(pushSessionIdKey, false);
28
+ export class PushPubSubModule_Class extends Module {
29
+ subscriptions = [];
30
+ firebaseToken;
31
+ messaging;
32
+ pushSessionId;
33
+ timeout = 800;
34
+ constructor() {
35
+ super("PushPubSubModule");
36
+ window.name = window.name || generateHex(32);
37
+ this.pushSessionId = pushSessionId.set(window.name);
38
+ }
39
+ init() {
40
+ if (this.config?.registerOnInit === false)
41
+ return;
42
+ this.initApp();
43
+ }
44
+ getPushSessionId() {
45
+ return this.pushSessionId;
46
+ }
47
+ registerServiceWorker = async () => {
48
+ console.log("Registering service worker...");
49
+ return await navigator.serviceWorker.register(`/${this.config.swFileName || "ts_service_worker.js"}`);
50
+ };
51
+ initApp = () => {
52
+ if (!this.config?.publicKeyBase64)
53
+ throw new ImplementationMissingException(`Please specify the right config for the 'PushPubSubModule'`);
54
+ this.runAsync("Initializing Firebase SDK and registering SW", async () => {
55
+ if ("serviceWorker" in navigator) {
56
+ const asyncs = [
57
+ this.registerServiceWorker(),
58
+ FirebaseModule.createSession()
59
+ ];
60
+ const { 0: registration, 1: app } = await Promise.all(asyncs);
61
+ await registration.update();
62
+ this.messaging = await app.getMessaging();
63
+ // this.messaging.usePublicVapidKey(this.config.publicKeyBase64);
64
+ // await this.messaging.useServiceWorker(registration);
65
+ await this.getToken({ vapidKey: this.config.publicKeyBase64, serviceWorkerRegistration: registration });
66
+ if (navigator.serviceWorker.controller) {
67
+ console.log(`This page is currently controlled by: ${navigator.serviceWorker.controller}`);
68
+ }
69
+ navigator.serviceWorker.oncontrollerchange = function () {
70
+ console.log("This page is now controlled by:", navigator.serviceWorker.controller);
71
+ };
72
+ navigator.serviceWorker.onmessage = (event) => {
73
+ this.processMessageFromSw(event.data);
74
+ };
75
+ }
76
+ });
77
+ };
78
+ // / need to call this from the login verified
79
+ getToken = async (options) => {
80
+ try {
81
+ this.logVerbose("Checking/Requesting permission...");
82
+ const permission = await Notification.requestPermission();
83
+ this.logVerbose(`Notification permission: ${permission}`);
84
+ if (permission !== "granted")
85
+ return;
86
+ if (!this.messaging)
87
+ throw new BadImplementationException("I literally just set this!");
88
+ this.firebaseToken = await this.messaging.getToken(options);
89
+ if (!this.firebaseToken)
90
+ return;
91
+ this.messaging.onMessage((payload) => {
92
+ if (!payload.data)
93
+ return this.logInfo('No data passed to the message handler, I got this', payload);
94
+ this.processMessage(payload.data);
95
+ });
96
+ this.logVerbose("new token received: " + this.firebaseToken);
97
+ // this.logWarning("I don't believe there is a good reason to register whenever an app starts.. before we have any information about user or app status!!")
98
+ // this.logWarning("Convince me otherwise.. :)")
99
+ // Race Condition in CC proved that I didnt register for push due to the getToken being async which ended after modules init
100
+ // so I had subscriptions but didnt register them
101
+ if (this.subscriptions.length > 0)
102
+ this.register();
103
+ }
104
+ catch (err) {
105
+ this.logError("Unable to get token", err);
106
+ }
107
+ };
108
+ processMessageFromSw = (data) => {
109
+ this.logInfo("Got data from SW: ", data);
110
+ if (!data.command || !data.message || data.command !== Command_SwToApp)
111
+ return;
112
+ this.processMessage(data.message);
113
+ };
114
+ processMessage = (data) => {
115
+ this.logInfo("process message", data);
116
+ const arr = JSON.parse(data.messages);
117
+ arr.forEach(s => {
118
+ if (s.persistent)
119
+ NotificationsModule.addNotification(s);
120
+ this.subscriptions
121
+ .filter(d => d.pushKey === s.pushKey && compare(s.props, d.props))
122
+ .forEach(d => d.callBack(s.data));
123
+ });
124
+ };
125
+ subscribe = (subscription) => {
126
+ this.subscribeImpl(subscription);
127
+ return this.register();
128
+ };
129
+ subscribeImpl = (subscription) => {
130
+ const foundSubscription = this.subscriptions.find(d => d.pushKey === subscription.pushKey && compare(subscription.props, d.props));
131
+ if (foundSubscription) {
132
+ this.logError("Subscription already exists", subscription);
133
+ return;
134
+ }
135
+ this.subscriptions.push(subscription);
136
+ };
137
+ subscribeMulti = (subscriptions) => {
138
+ subscriptions.forEach(subscription => this.subscribeImpl(subscription));
139
+ return this.register();
140
+ };
141
+ unsubscribe = (subscription) => {
142
+ const idx = this.subscriptions.findIndex(d => d.pushKey === subscription.pushKey && compare(subscription.props, d.props));
143
+ const foundSubscription = idx !== -1 ? this.subscriptions[idx] : undefined;
144
+ if (foundSubscription)
145
+ this.subscriptions.splice(idx, 1);
146
+ return this.register();
147
+ };
148
+ register = () => {
149
+ const firebaseToken = this.firebaseToken;
150
+ if (!firebaseToken)
151
+ return this.logWarning("No Firebase token...");
152
+ this.debounce(() => {
153
+ const body = {
154
+ firebaseToken,
155
+ pushSessionId: this.getPushSessionId(),
156
+ subscriptions: this.subscriptions.map(({ pushKey, props }) => ({ pushKey, props }))
157
+ };
158
+ this.logDebug("Registering subscriptions");
159
+ for (const sub of this.subscriptions) {
160
+ this.logDebug(`${sub.pushKey} => ${sub.props ? __stringify(sub.props) : "no props"}`);
161
+ }
162
+ XhrHttpModule
163
+ .createRequest(HttpMethod.POST, "register-pub-sub-tab")
164
+ .setRelativeUrl("/v1/push/register")
165
+ .setJsonBody(body)
166
+ .setOnError("Failed to register for push")
167
+ .execute((response) => {
168
+ NotificationsModule.setNotificationList(response);
169
+ this.logVerbose("Finished register PubSub");
170
+ });
171
+ }, "debounce-register", this.timeout);
172
+ };
173
+ }
174
+ export const PushPubSubModule = new PushPubSubModule_Class();
175
+ //# sourceMappingURL=PushPubSubModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PushPubSubModule.js","sourceRoot":"","sources":["../../../src/main/app-frontend/modules/PushPubSubModule.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from "./app-backend/core/module-pack.js";
2
+ //# sourceMappingURL=backend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/main/backend.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from "./app-backend/core/module-pack.js";
2
+ //# sourceMappingURL=backend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backend.js","sourceRoot":"","sources":["../src/main/backend.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAA"}
@@ -0,0 +1,4 @@
1
+ export * from './app-frontend/modules/PushPubSubModule.js';
2
+ export * from './app-frontend/modules/NotificationModule.js';
3
+ export * from './app-frontend/core/module-pack.js';
4
+ //# sourceMappingURL=frontend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontend.d.ts","sourceRoot":"","sources":["../src/main/frontend.ts"],"names":[],"mappings":"AAGA,cAAc,4CAA4C,CAAC;AAC3D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,oCAAoC,CAAC"}
@@ -0,0 +1,7 @@
1
+ // Already lean: only the runtime singletons + module pack are exported.
2
+ // Heavy firebase wiring is reached via module-pack which imports
3
+ // FirebaseModule via the explicit subpath, not the firebase barrel.
4
+ export * from './app-frontend/modules/PushPubSubModule.js';
5
+ export * from './app-frontend/modules/NotificationModule.js';
6
+ export * from './app-frontend/core/module-pack.js';
7
+ //# sourceMappingURL=frontend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontend.js","sourceRoot":"","sources":["../src/main/frontend.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,iEAAiE;AACjE,oEAAoE;AACpE,cAAc,4CAA4C,CAAC;AAC3D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,oCAAoC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./shared/api.js";
2
+ export * from "./shared/types.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/main/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export * from "./shared/api.js";
2
+ export * from "./shared/types.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/main/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { type ApiWithBody } from "@intuitionrobotics/thunderstorm";
2
+ import { type Request_PushRegister, type Request_ReadPush, type Response_PushRegister } from "./types.js";
3
+ export type PubSubRegisterClient = ApiWithBody<'/v1/push/register', Request_PushRegister, Response_PushRegister>;
4
+ export type PubSubReadNotification = ApiWithBody<'/v1/push/read', Request_ReadPush, void>;
5
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/main/shared/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,WAAW,EAAC,MAAM,iCAAiC,CAAC;AACjE,OAAO,EACN,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,qBAAqB,CAAC,CAAA;AAChH,MAAM,MAAM,sBAAsB,GAAG,WAAW,CAAC,eAAe,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import {} from "@intuitionrobotics/thunderstorm";
2
+ import {} from "./types.js";
3
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/main/shared/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAIN,MAAM,YAAY,CAAC"}
@@ -1,4 +1,4 @@
1
- import { DB_Object } from "@intuitionrobotics/ts-common";
1
+ import { type DB_Object } from "@intuitionrobotics/ts-common";
2
2
  export type SubscribeProps = {
3
3
  [prop: string]: string | number;
4
4
  };
@@ -39,7 +39,8 @@ export type FirebaseToken = {
39
39
  export type PushSessionId = {
40
40
  pushSessionId: string;
41
41
  };
42
- export type MessageType<S extends string, P extends SubscribeProps, D> = {};
42
+ export type MessageType<_S extends string, _P extends SubscribeProps, _D> = {};
43
43
  export type IFP<Binder extends MessageType<any, any, any>> = Binder extends MessageType<infer S, any, any> ? S extends string ? S : never : never;
44
44
  export type ISP<Binder extends MessageType<any, any, any>> = Binder extends MessageType<any, infer P, any> ? P extends SubscribeProps ? P : never : never;
45
45
  export type ITP<Binder extends MessageType<any, any, any>> = Binder extends MessageType<any, any, infer D> ? D : never;
46
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/main/shared/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,SAAS,EAAC,MAAM,8BAA8B,CAAC;AAE5D,MAAM,MAAM,cAAc,GAAG;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AAEjE,MAAM,MAAM,oBAAoB,GAAG;IAC/B,KAAK,CAAC,EAAE,cAAc,CAAA;IACtB,OAAO,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,4BAA4B,CAAC,CAAC,GAAG,GAAG,IAAI,oBAAoB,GAAG;IACvE,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG;IAClD,IAAI,CAAC,EAAE,GAAG,CAAA;CACb,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG,aAAa,GAAG,QAAQ,GAAG;IAC1E,aAAa,EAAE,oBAAoB,EAAE,CAAA;CACxC,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG;IACvC,IAAI,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,gBAAgB,EAAE,CAAA;AAEtD,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,aAAa,GAAG,QAAQ,GAAG;IACpE,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,gBAAgB,GAAG;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,OAAO,CAAA;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,oBAAoB,CAAA;AAE9D,MAAM,MAAM,aAAa,GAAG;IACxB,aAAa,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IACxB,aAAa,EAAE,MAAM,CAAA;CACxB,CAAA;AAOD,MAAM,MAAM,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,cAAc,EAAE,EAAE,IAAI,EAAE,CAAA;AAC9E,MAAM,MAAM,GAAG,CAAC,MAAM,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,SAAS,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;AAClJ,MAAM,MAAM,GAAG,CAAC,MAAM,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,SAAS,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,SAAS,cAAc,GAAG,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;AAC1J,MAAM,MAAM,GAAG,CAAC,MAAM,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC"}
@@ -0,0 +1,2 @@
1
+ import {} from "@intuitionrobotics/ts-common";
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/main/shared/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,MAAM,8BAA8B,CAAC"}