@osdk/widget.client 2.1.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.
package/CHANGELOG.md ADDED
@@ -0,0 +1,516 @@
1
+ # @osdk/widget.client
2
+
3
+ ## 2.1.0
4
+
5
+ ### Patch Changes
6
+
7
+ - 322c5bc: Simulated release
8
+ - a1f5bdc: Adds react 19 as valid peer deps
9
+ - 317b555: Release
10
+ - Updated dependencies [322c5bc]
11
+ - Updated dependencies [322c5bc]
12
+ - Updated dependencies [b61e9f5]
13
+ - Updated dependencies [7416ce4]
14
+ - Updated dependencies [1ba3871]
15
+ - Updated dependencies [12843cb]
16
+ - Updated dependencies [18ba34f]
17
+ - Updated dependencies [cdd3154]
18
+ - Updated dependencies [56aa502]
19
+ - Updated dependencies [abe4897]
20
+ - Updated dependencies [63b2e63]
21
+ - Updated dependencies [cddfbf9]
22
+ - Updated dependencies [5a12181]
23
+ - Updated dependencies [2ce3659]
24
+ - Updated dependencies [7416ce4]
25
+ - Updated dependencies [26c2d95]
26
+ - Updated dependencies [430dee3]
27
+ - Updated dependencies [397f906]
28
+ - Updated dependencies [488b51c]
29
+ - Updated dependencies [fccd9ac]
30
+ - Updated dependencies [5665b18]
31
+ - Updated dependencies [761e69d]
32
+ - Updated dependencies [889e84b]
33
+ - Updated dependencies [62e5965]
34
+ - Updated dependencies [ed69666]
35
+ - Updated dependencies [c92fe73]
36
+ - Updated dependencies [2517750]
37
+ - Updated dependencies [4183a55]
38
+ - Updated dependencies [1e16dcb]
39
+ - Updated dependencies [70b4464]
40
+ - Updated dependencies [2f6206c]
41
+ - Updated dependencies [81c0d8c]
42
+ - Updated dependencies [81c0d8c]
43
+ - Updated dependencies [791e655]
44
+ - Updated dependencies [317b555]
45
+ - Updated dependencies [879b6c3]
46
+ - Updated dependencies [63b2e63]
47
+ - Updated dependencies [2517750]
48
+ - Updated dependencies [1e16dcb]
49
+ - Updated dependencies [f4370e3]
50
+ - Updated dependencies [ea4e4b1]
51
+ - Updated dependencies [a146ce4]
52
+ - Updated dependencies [cc380b5]
53
+ - Updated dependencies [e873024]
54
+ - Updated dependencies [88591f7]
55
+ - Updated dependencies [751e5b3]
56
+ - Updated dependencies [805df40]
57
+ - Updated dependencies [fe0cc43]
58
+ - Updated dependencies [2517750]
59
+ - Updated dependencies [5467a0f]
60
+ - Updated dependencies [2517750]
61
+ - Updated dependencies [63b2e63]
62
+ - @osdk/client@2.2.0
63
+ - @osdk/widget.client.unstable@2.1.0
64
+
65
+ ## 2.1.0-beta.11
66
+
67
+ ### Patch Changes
68
+
69
+ - Updated dependencies [4183a55]
70
+ - @osdk/client@2.2.0-beta.23
71
+ - @osdk/widget.api.unstable@2.1.0-beta.11
72
+
73
+ ## 2.1.0-beta.10
74
+
75
+ ### Minor Changes
76
+
77
+ - 317b555: Release
78
+
79
+ ### Patch Changes
80
+
81
+ - Updated dependencies [317b555]
82
+ - @osdk/widget.api.unstable@2.1.0-beta.10
83
+ - @osdk/client@2.2.0-beta.21
84
+
85
+ ## 2.1.0-beta.9
86
+
87
+ ### Patch Changes
88
+
89
+ - Updated dependencies [889e84b]
90
+ - @osdk/client@2.2.0-beta.20
91
+ - @osdk/widget.api.unstable@2.1.0-beta.9
92
+
93
+ ## 2.1.0-beta.8
94
+
95
+ ### Patch Changes
96
+
97
+ - Updated dependencies [b61e9f5]
98
+ - Updated dependencies [abe4897]
99
+ - Updated dependencies [5a12181]
100
+ - Updated dependencies [430dee3]
101
+ - Updated dependencies [70b4464]
102
+ - Updated dependencies [791e655]
103
+ - Updated dependencies [751e5b3]
104
+ - @osdk/client@2.2.0-beta.17
105
+ - @osdk/widget.api.unstable@2.1.0-beta.8
106
+
107
+ ## 2.1.0-beta.7
108
+
109
+ ### Patch Changes
110
+
111
+ - @osdk/client@2.2.0-beta.16
112
+ - @osdk/widget.api.unstable@2.1.0-beta.7
113
+
114
+ ## 2.1.0-beta.6
115
+
116
+ ### Patch Changes
117
+
118
+ - Updated dependencies [2ce3659]
119
+ - Updated dependencies [488b51c]
120
+ - Updated dependencies [e873024]
121
+ - Updated dependencies [88591f7]
122
+ - @osdk/client@2.2.0-beta.13
123
+ - @osdk/widget.api.unstable@2.1.0-beta.6
124
+
125
+ ## 2.1.0-beta.5
126
+
127
+ ### Patch Changes
128
+
129
+ - Updated dependencies [c92fe73]
130
+ - @osdk/client@2.2.0-beta.12
131
+ - @osdk/widget.api.unstable@2.1.0-beta.5
132
+
133
+ ## 2.1.0-beta.4
134
+
135
+ ### Patch Changes
136
+
137
+ - Updated dependencies [81c0d8c]
138
+ - Updated dependencies [81c0d8c]
139
+ - @osdk/client@2.2.0-beta.10
140
+ - @osdk/widget.api.unstable@2.1.0-beta.4
141
+
142
+ ## 2.1.0-beta.3
143
+
144
+ ### Patch Changes
145
+
146
+ - Updated dependencies [7416ce4]
147
+ - Updated dependencies [7416ce4]
148
+ - Updated dependencies [879b6c3]
149
+ - Updated dependencies [805df40]
150
+ - @osdk/client@2.2.0-beta.7
151
+ - @osdk/widget.api.unstable@2.1.0-beta.3
152
+
153
+ ## 2.1.0-beta.2
154
+
155
+ ### Patch Changes
156
+
157
+ - Updated dependencies [cddfbf9]
158
+ - Updated dependencies [ea4e4b1]
159
+ - @osdk/client@2.2.0-beta.6
160
+ - @osdk/widget.api.unstable@2.1.0-beta.2
161
+
162
+ ## 2.0.0
163
+
164
+ ### Major Changes
165
+
166
+ - 5a4ebd7: Bump unstable widget packages to v1 to avoid undesired v0.x version behavior
167
+
168
+ ### Minor Changes
169
+
170
+ - 009650f: Add initial views API
171
+ - 5f36612: Add support for events
172
+ - 9d35a1f: Remove unused imports
173
+ - c691c8b: Package now has experimental support for commonjs
174
+ - 314ae66: Move from "views" naming to "widgets"
175
+ - 21d2dd1: Add fetch proxy
176
+ - 01c02e5: Add vite plugin to parse out parameter config into a generated config file
177
+ - 121475a: Release versions 1.1.0 of Custom Widget client libraries
178
+ - 83e7ea3: Move from a single-widget to widget set model for custom widget libraries
179
+ - e4839b9: Add target type to widget manifest
180
+ - 7d1355e: Initial release of widget API
181
+
182
+ ### Patch Changes
183
+
184
+ - Updated dependencies [966d408]
185
+ - Updated dependencies [b773513]
186
+ - Updated dependencies [5a4ebd7]
187
+ - Updated dependencies [cddc196]
188
+ - Updated dependencies [d794c19]
189
+ - Updated dependencies [05febf4]
190
+ - Updated dependencies [55c05f2]
191
+ - Updated dependencies [a06ec35]
192
+ - Updated dependencies [0dc40b0]
193
+ - Updated dependencies [009650f]
194
+ - Updated dependencies [3703d81]
195
+ - Updated dependencies [6f50516]
196
+ - Updated dependencies [25fd9f0]
197
+ - Updated dependencies [11a05cc]
198
+ - Updated dependencies [7865cb6]
199
+ - Updated dependencies [e6fbd94]
200
+ - Updated dependencies [9c4efe6]
201
+ - Updated dependencies [0a7c747]
202
+ - Updated dependencies [f0b519d]
203
+ - Updated dependencies [3ea2e79]
204
+ - Updated dependencies [5f36612]
205
+ - Updated dependencies [1812118]
206
+ - Updated dependencies [d927a1d]
207
+ - Updated dependencies [bc1761c]
208
+ - Updated dependencies [656f975]
209
+ - Updated dependencies [f1145ff]
210
+ - Updated dependencies [1c59d93]
211
+ - Updated dependencies [f446d0c]
212
+ - Updated dependencies [c80ca45]
213
+ - Updated dependencies [bb8b219]
214
+ - Updated dependencies [44e62f6]
215
+ - Updated dependencies [03f95eb]
216
+ - Updated dependencies [91cfa3a]
217
+ - Updated dependencies [94463b6]
218
+ - Updated dependencies [14624f7]
219
+ - Updated dependencies [1a89f23]
220
+ - Updated dependencies [9d35a1f]
221
+ - Updated dependencies [c691c8b]
222
+ - Updated dependencies [314ae66]
223
+ - Updated dependencies [749cf69]
224
+ - Updated dependencies [f03e39f]
225
+ - Updated dependencies [d464009]
226
+ - Updated dependencies [21d2dd1]
227
+ - Updated dependencies [11088aa]
228
+ - Updated dependencies [720218d]
229
+ - Updated dependencies [01c02e5]
230
+ - Updated dependencies [9298f75]
231
+ - Updated dependencies [eb27b54]
232
+ - Updated dependencies [7a95618]
233
+ - Updated dependencies [f34b3d4]
234
+ - Updated dependencies [d88fdb9]
235
+ - Updated dependencies [8eb2378]
236
+ - Updated dependencies [acbfab9]
237
+ - Updated dependencies [c9da74c]
238
+ - Updated dependencies [27f0f77]
239
+ - Updated dependencies [015279b]
240
+ - Updated dependencies [62c1d63]
241
+ - Updated dependencies [3c9ac22]
242
+ - Updated dependencies [91cfa3a]
243
+ - Updated dependencies [e86e91d]
244
+ - Updated dependencies [abfe4b3]
245
+ - Updated dependencies [121475a]
246
+ - Updated dependencies [27866a8]
247
+ - Updated dependencies [0cd1603]
248
+ - Updated dependencies [a7a4aef]
249
+ - Updated dependencies [e5fe7c0]
250
+ - Updated dependencies [1b2e8c9]
251
+ - Updated dependencies [9f3807c]
252
+ - Updated dependencies [d12c92b]
253
+ - Updated dependencies [0c56d21]
254
+ - Updated dependencies [7c13070]
255
+ - Updated dependencies [e548b9b]
256
+ - Updated dependencies [6671a39]
257
+ - Updated dependencies [83e7ea3]
258
+ - Updated dependencies [5e78575]
259
+ - Updated dependencies [ee6224b]
260
+ - Updated dependencies [1dc0228]
261
+ - Updated dependencies [fa02ebf]
262
+ - Updated dependencies [9af346e]
263
+ - Updated dependencies [d3b3f35]
264
+ - Updated dependencies [c682504]
265
+ - Updated dependencies [9018dc2]
266
+ - Updated dependencies [a6c320d]
267
+ - Updated dependencies [e4839b9]
268
+ - Updated dependencies [8026baf]
269
+ - Updated dependencies [6b6c8a1]
270
+ - Updated dependencies [c537e2d]
271
+ - Updated dependencies [3fc2ee6]
272
+ - Updated dependencies [0d8ac3b]
273
+ - Updated dependencies [73fa373]
274
+ - Updated dependencies [8e6a5f4]
275
+ - Updated dependencies [7d1355e]
276
+ - Updated dependencies [09eaf24]
277
+ - Updated dependencies [71dfb4c]
278
+ - Updated dependencies [2d5e648]
279
+ - Updated dependencies [c4f88a8]
280
+ - Updated dependencies [d665147]
281
+ - Updated dependencies [f19da8e]
282
+ - @osdk/client@2.1.0
283
+ - @osdk/widget.api.unstable@2.0.0
284
+
285
+ ## 2.0.0-beta.16
286
+
287
+ ### Patch Changes
288
+
289
+ - Updated dependencies [966d408]
290
+ - Updated dependencies [f03e39f]
291
+ - Updated dependencies [0d8ac3b]
292
+ - Updated dependencies [2d5e648]
293
+ - @osdk/client@2.1.0-beta.30
294
+ - @osdk/widget.api.unstable@2.0.0-beta.16
295
+
296
+ ## 2.0.0-beta.15
297
+
298
+ ### Patch Changes
299
+
300
+ - Updated dependencies [f1145ff]
301
+ - Updated dependencies [8026baf]
302
+ - @osdk/client@2.1.0-beta.29
303
+ - @osdk/widget.api.unstable@2.0.0-beta.15
304
+
305
+ ## 2.0.0-beta.14
306
+
307
+ ### Patch Changes
308
+
309
+ - @osdk/widget.api.unstable@2.0.0-beta.14
310
+
311
+ ## 2.0.0-beta.13
312
+
313
+ ### Minor Changes
314
+
315
+ - 121475a: Release versions 1.1.0 of Custom Widget client libraries
316
+
317
+ ### Patch Changes
318
+
319
+ - Updated dependencies [f446d0c]
320
+ - Updated dependencies [121475a]
321
+ - @osdk/client@2.1.0-beta.28
322
+ - @osdk/widget.api.unstable@2.0.0-beta.13
323
+
324
+ ## 2.0.0-beta.12
325
+
326
+ ### Patch Changes
327
+
328
+ - @osdk/client@2.1.0-beta.27
329
+ - @osdk/widget-api.unstable@2.0.0-beta.12
330
+
331
+ ## 2.0.0-beta.11
332
+
333
+ ### Patch Changes
334
+
335
+ - Updated dependencies [7865cb6]
336
+ - Updated dependencies [e6fbd94]
337
+ - Updated dependencies [9c4efe6]
338
+ - Updated dependencies [44e62f6]
339
+ - Updated dependencies [94463b6]
340
+ - Updated dependencies [f19da8e]
341
+ - @osdk/client@2.1.0-beta.26
342
+ - @osdk/widget.api.unstable@2.0.0-beta.11
343
+
344
+ ## 2.0.0-beta.10
345
+
346
+ ### Patch Changes
347
+
348
+ - Updated dependencies [c80ca45]
349
+ - @osdk/client@2.1.0-beta.25
350
+ - @osdk/widget.api.unstable@2.0.0-beta.10
351
+
352
+ ## 2.0.0-beta.9
353
+
354
+ ### Minor Changes
355
+
356
+ - c691c8b: Package now has experimental support for commonjs
357
+
358
+ ### Patch Changes
359
+
360
+ - Updated dependencies [03f95eb]
361
+ - Updated dependencies [c691c8b]
362
+ - Updated dependencies [3c9ac22]
363
+ - @osdk/client@2.1.0-beta.24
364
+ - @osdk/widget.api.unstable@2.0.0-beta.9
365
+
366
+ ## 2.0.0-beta.8
367
+
368
+ ### Minor Changes
369
+
370
+ - 83e7ea3: Move from a single-widget to widget set model for custom widget libraries
371
+
372
+ ### Patch Changes
373
+
374
+ - Updated dependencies [d794c19]
375
+ - Updated dependencies [f0b519d]
376
+ - Updated dependencies [7a95618]
377
+ - Updated dependencies [62c1d63]
378
+ - Updated dependencies [83e7ea3]
379
+ - Updated dependencies [3fc2ee6]
380
+ - Updated dependencies [d665147]
381
+ - @osdk/client@2.1.0-beta.23
382
+ - @osdk/widget.api.unstable@2.0.0-beta.8
383
+
384
+ ## 2.0.0-beta.7
385
+
386
+ ### Patch Changes
387
+
388
+ - Updated dependencies [c9da74c]
389
+ - Updated dependencies [73fa373]
390
+ - @osdk/client@2.1.0-beta.22
391
+ - @osdk/widget.api.unstable@2.0.0-beta.7
392
+
393
+ ## 2.0.0-beta.6
394
+
395
+ ### Minor Changes
396
+
397
+ - 314ae66: Move from "views" naming to "widgets"
398
+
399
+ ### Patch Changes
400
+
401
+ - Updated dependencies [3ea2e79]
402
+ - Updated dependencies [656f975]
403
+ - Updated dependencies [314ae66]
404
+ - Updated dependencies [f34b3d4]
405
+ - Updated dependencies [e86e91d]
406
+ - @osdk/client@2.1.0-beta.21
407
+ - @osdk/widget.api.unstable@2.0.0-beta.6
408
+
409
+ ## 2.0.0-beta.5
410
+
411
+ ### Minor Changes
412
+
413
+ - 9d35a1f: Remove unused imports
414
+
415
+ ### Patch Changes
416
+
417
+ - Updated dependencies [b773513]
418
+ - Updated dependencies [9d35a1f]
419
+ - Updated dependencies [abfe4b3]
420
+ - Updated dependencies [c537e2d]
421
+ - @osdk/client@2.1.0-beta.20
422
+ - @osdk/widget.api.unstable@2.0.0-beta.5
423
+
424
+ ## 2.0.0-beta.4
425
+
426
+ ### Major Changes
427
+
428
+ - 5a4ebd7: Bump unstable widget packages to v1 to avoid undesired v0.x version behavior
429
+
430
+ ### Patch Changes
431
+
432
+ - Updated dependencies [5a4ebd7]
433
+ - Updated dependencies [cddc196]
434
+ - Updated dependencies [720218d]
435
+ - Updated dependencies [eb27b54]
436
+ - Updated dependencies [27f0f77]
437
+ - Updated dependencies [a7a4aef]
438
+ - Updated dependencies [6671a39]
439
+ - Updated dependencies [a6c320d]
440
+ - @osdk/widget.api.unstable@2.0.0-beta.4
441
+ - @osdk/client@2.1.0-beta.19
442
+
443
+ ## 0.3.0-beta.3
444
+
445
+ ### Patch Changes
446
+
447
+ - @osdk/client@2.1.0-beta.18
448
+ - @osdk/widget.api.unstable@0.3.0-beta.3
449
+
450
+ ## 0.3.0-beta.2
451
+
452
+ ### Patch Changes
453
+
454
+ - @osdk/client@2.1.0-beta.17
455
+ - @osdk/widget.api.unstable@0.3.0-beta.2
456
+
457
+ ## 0.3.0-beta.1
458
+
459
+ ### Patch Changes
460
+
461
+ - Updated dependencies [e5fe7c0]
462
+ - @osdk/client@2.1.0-beta.16
463
+ - @osdk/widget.api.unstable@0.3.0-beta.1
464
+
465
+ ## 0.2.0
466
+
467
+ ### Minor Changes
468
+
469
+ - e4839b9: Add target type to widget manifest
470
+
471
+ ### Patch Changes
472
+
473
+ - Updated dependencies [1c59d93]
474
+ - Updated dependencies [e4839b9]
475
+ - @osdk/client@2.1.0-beta.15
476
+ - @osdk/widget.api.unstable@0.2.0-beta.0
477
+
478
+ ## 0.1.0
479
+
480
+ ### Patch Changes
481
+
482
+ - Updated dependencies [0a7c747]
483
+ - Updated dependencies [91cfa3a]
484
+ - Updated dependencies [015279b]
485
+ - Updated dependencies [91cfa3a]
486
+ - Updated dependencies [0c56d21]
487
+ - Updated dependencies [6b6c8a1]
488
+ - @osdk/client@2.1.0-beta.14
489
+ - @osdk/widget.api.unstable@0.1.0-beta.2
490
+
491
+ ## 0.1.0-beta.1
492
+
493
+ ### Minor Changes
494
+
495
+ - 21d2dd1: Add fetch proxy
496
+
497
+ ### Patch Changes
498
+
499
+ - Updated dependencies [21d2dd1]
500
+ - Updated dependencies [7c13070]
501
+ - Updated dependencies [c4f88a8]
502
+ - @osdk/widget.api.unstable@0.1.0-beta.1
503
+ - @osdk/client@2.1.0-beta.13
504
+
505
+ ## 0.1.0-beta.0
506
+
507
+ ### Minor Changes
508
+
509
+ - 01c02e5: Add vite plugin to parse out parameter config into a generated config file
510
+ - 7d1355e: Initial release of widget API
511
+
512
+ ### Patch Changes
513
+
514
+ - Updated dependencies [01c02e5]
515
+ - Updated dependencies [7d1355e]
516
+ - @osdk/widget.api.unstable@0.1.0-beta.0
@@ -0,0 +1,128 @@
1
+ /*
2
+ * Copyright 2024 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { HostMessage, visitHostMessage } from "@osdk/widget.api";
18
+ import { META_TAG_HOST_ORIGIN } from "@osdk/widget.api";
19
+ import invariant from "tiny-invariant";
20
+ import { FoundryHostEventTarget } from "./host.js";
21
+ export function createFoundryWidgetClient() {
22
+ if ("__PALANTIR_WIDGET_API__" in window) {
23
+ return _createFoundryWidgetClient(window.__PALANTIR_WIDGET_API__);
24
+ }
25
+ // todo: drop support for sandbox v1
26
+ return _createFoundryWidgetClientLegacy();
27
+ }
28
+ function _createFoundryWidgetClient(widgetApi) {
29
+ const hostEventTarget = new FoundryHostEventTarget();
30
+ const listenForHostMessages = event => {
31
+ visitHostMessage(event.detail, {
32
+ "host.update-parameters": payload => {
33
+ hostEventTarget.dispatchEventMessage("host.update-parameters", payload);
34
+ },
35
+ _unknown: () => {
36
+ // Do nothing
37
+ }
38
+ });
39
+ };
40
+ const sendMessageToHost = message => {
41
+ widgetApi.sendMessage(message);
42
+ };
43
+ return {
44
+ hostEventTarget,
45
+ ready: () => {
46
+ sendMessageToHost({
47
+ type: "widget.ready",
48
+ payload: {
49
+ apiVersion: HostMessage.Version
50
+ }
51
+ });
52
+ },
53
+ emitEvent: (eventId, payload) => {
54
+ sendMessageToHost({
55
+ type: "widget.emit-event",
56
+ payload: {
57
+ eventId,
58
+ ...payload
59
+ }
60
+ });
61
+ },
62
+ sendMessage: sendMessageToHost,
63
+ subscribe: () => {
64
+ widgetApi.addEventListener("message", listenForHostMessages);
65
+ },
66
+ unsubscribe: () => {
67
+ widgetApi.removeEventListener("message", listenForHostMessages);
68
+ }
69
+ };
70
+ }
71
+
72
+ // todo: drop support for sandbox v1
73
+ function _createFoundryWidgetClientLegacy() {
74
+ !window.parent ? process.env.NODE_ENV !== "production" ? invariant(false, "[FoundryWidgetClient] Must be run in an iframe") : invariant(false) : void 0;
75
+ const parentWindow = window.parent;
76
+ const metaTag = document.querySelector(`meta[name="${META_TAG_HOST_ORIGIN}"]`);
77
+ !metaTag ? process.env.NODE_ENV !== "production" ? invariant(false, "[FoundryWidgetClient] Missing host origin meta tag " + META_TAG_HOST_ORIGIN) : invariant(false) : void 0;
78
+ const hostOrigin = metaTag.getAttribute("content");
79
+ !hostOrigin ? process.env.NODE_ENV !== "production" ? invariant(false, "[FoundryWidgetClient] Missing host origin meta tag content") : invariant(false) : void 0;
80
+ const hostEventTarget = new FoundryHostEventTarget();
81
+ const listenForHostMessages = event => {
82
+ visitHostMessage(event.data, {
83
+ "host.update-parameters": payload => {
84
+ hostEventTarget.dispatchEventMessage("host.update-parameters", payload);
85
+ },
86
+ _unknown: () => {
87
+ // Do nothing
88
+ }
89
+ });
90
+ };
91
+ const sendMessageToHost = message => {
92
+ parentWindow.postMessage(message, hostOrigin);
93
+ };
94
+ return {
95
+ hostEventTarget,
96
+ ready: () => {
97
+ sendMessageToHost({
98
+ type: "widget.ready",
99
+ payload: {
100
+ apiVersion: HostMessage.Version
101
+ }
102
+ });
103
+ },
104
+ emitEvent: (eventId, payload) => {
105
+ sendMessageToHost({
106
+ type: "widget.emit-event",
107
+ payload: {
108
+ eventId,
109
+ ...payload
110
+ }
111
+ });
112
+ },
113
+ sendMessage: sendMessageToHost,
114
+ subscribe: () => {
115
+ window.addEventListener("message", event => {
116
+ if (event.origin !== hostOrigin) {
117
+ // Reject messages that aren't coming from the configured host
118
+ return;
119
+ }
120
+ listenForHostMessages(event);
121
+ });
122
+ },
123
+ unsubscribe: () => {
124
+ window.removeEventListener("message", listenForHostMessages);
125
+ }
126
+ };
127
+ }
128
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","names":["HostMessage","visitHostMessage","META_TAG_HOST_ORIGIN","invariant","FoundryHostEventTarget","createFoundryWidgetClient","window","_createFoundryWidgetClient","__PALANTIR_WIDGET_API__","_createFoundryWidgetClientLegacy","widgetApi","hostEventTarget","listenForHostMessages","event","detail","payload","dispatchEventMessage","_unknown","sendMessageToHost","message","sendMessage","ready","type","apiVersion","Version","emitEvent","eventId","subscribe","addEventListener","unsubscribe","removeEventListener","parent","process","env","NODE_ENV","parentWindow","metaTag","document","querySelector","hostOrigin","getAttribute","data","postMessage","origin"],"sources":["client.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n HostMessage,\n visitHostMessage,\n type WidgetConfig,\n type WidgetMessage,\n} from \"@osdk/widget.api\";\nimport { META_TAG_HOST_ORIGIN } from \"@osdk/widget.api\";\nimport invariant from \"tiny-invariant\";\nimport { FoundryHostEventTarget } from \"./host.js\";\n\nexport interface FoundryWidgetClient<C extends WidgetConfig<C[\"parameters\"]>> {\n /**\n * Notifies the host that this client is ready to receive the first parameter values\n */\n ready: () => void;\n\n /**\n * Emits an event with the given ID and payload\n */\n emitEvent: <M extends WidgetMessage.EmitEvent<C>>(\n eventId: M[\"payload\"][\"eventId\"],\n payload: Omit<M[\"payload\"], \"eventId\">,\n ) => void;\n\n /**\n * Sends a message to the parent frame.\n * It is recommended to use the convenience methods for individual messages (e.g. ready or emitEvent) instead\n */\n sendMessage: <M extends WidgetMessage<C>>(message: M) => void;\n\n /**\n * Subscribes to events from the host, invoking the listener when a message is received\n */\n subscribe: () => void;\n\n /**\n * Unsubscribes a previously subscribed listener from host events, if one exists\n */\n unsubscribe: () => void;\n\n /**\n * Event targets on which you can subscribe to specific host messages\n */\n hostEventTarget: FoundryHostEventTarget<C>;\n}\n\nexport function createFoundryWidgetClient<\n C extends WidgetConfig<C[\"parameters\"]>,\n>(): FoundryWidgetClient<C> {\n if (\"__PALANTIR_WIDGET_API__\" in window) {\n return _createFoundryWidgetClient<C>(\n window.__PALANTIR_WIDGET_API__ as PalantirWidgetApi<C>,\n );\n }\n // todo: drop support for sandbox v1\n return _createFoundryWidgetClientLegacy<C>();\n}\n\ninterface PalantirWidgetApiEvents<C extends WidgetConfig<C[\"parameters\"]>> {\n message: CustomEvent<HostMessage<C>>;\n}\n\ninterface PalantirWidgetApi<C extends WidgetConfig<C[\"parameters\"]>> {\n sendMessage: <M extends WidgetMessage<C>>(message: M) => void;\n addEventListener<K extends keyof PalantirWidgetApiEvents<C>>(\n type: K,\n listener: (ev: PalantirWidgetApiEvents<C>[K]) => any,\n options?: boolean | AddEventListenerOptions,\n ): void;\n removeEventListener<K extends keyof PalantirWidgetApiEvents<C>>(\n type: K,\n listener: (ev: PalantirWidgetApiEvents<C>[K]) => any,\n options?: boolean | EventListenerOptions,\n ): void;\n}\n\nfunction _createFoundryWidgetClient<\n C extends WidgetConfig<C[\"parameters\"]>,\n>(\n widgetApi: PalantirWidgetApi<C>,\n): FoundryWidgetClient<C> {\n const hostEventTarget = new FoundryHostEventTarget<C>();\n\n const listenForHostMessages = (event: CustomEvent<HostMessage<C>>) => {\n visitHostMessage(event.detail, {\n \"host.update-parameters\": (payload) => {\n hostEventTarget.dispatchEventMessage(\"host.update-parameters\", payload);\n },\n _unknown: () => {\n // Do nothing\n },\n });\n };\n const sendMessageToHost = <M extends WidgetMessage<C>>(message: M) => {\n widgetApi.sendMessage(message);\n };\n\n return {\n hostEventTarget,\n ready: () => {\n sendMessageToHost({\n type: \"widget.ready\",\n payload: {\n apiVersion: HostMessage.Version,\n },\n });\n },\n emitEvent: (eventId, payload) => {\n sendMessageToHost({\n type: \"widget.emit-event\",\n payload: {\n eventId,\n ...payload,\n },\n });\n },\n sendMessage: sendMessageToHost,\n subscribe: () => {\n widgetApi.addEventListener(\"message\", listenForHostMessages);\n },\n unsubscribe: () => {\n widgetApi.removeEventListener(\"message\", listenForHostMessages);\n },\n };\n}\n\n// todo: drop support for sandbox v1\nfunction _createFoundryWidgetClientLegacy<\n C extends WidgetConfig<C[\"parameters\"]>,\n>(): FoundryWidgetClient<C> {\n invariant(window.parent, \"[FoundryWidgetClient] Must be run in an iframe\");\n const parentWindow = window.parent;\n const metaTag = document.querySelector(\n `meta[name=\"${META_TAG_HOST_ORIGIN}\"]`,\n );\n invariant(\n metaTag,\n \"[FoundryWidgetClient] Missing host origin meta tag \"\n + META_TAG_HOST_ORIGIN,\n );\n const hostOrigin = metaTag.getAttribute(\"content\");\n invariant(\n hostOrigin,\n \"[FoundryWidgetClient] Missing host origin meta tag content\",\n );\n const hostEventTarget = new FoundryHostEventTarget<C>();\n\n const listenForHostMessages = (event: MessageEvent<HostMessage<C>>) => {\n visitHostMessage(event.data, {\n \"host.update-parameters\": (payload) => {\n hostEventTarget.dispatchEventMessage(\"host.update-parameters\", payload);\n },\n _unknown: () => {\n // Do nothing\n },\n });\n };\n const sendMessageToHost = <M extends WidgetMessage<C>>(message: M) => {\n parentWindow.postMessage(message, hostOrigin);\n };\n\n return {\n hostEventTarget,\n ready: () => {\n sendMessageToHost({\n type: \"widget.ready\",\n payload: {\n apiVersion: HostMessage.Version,\n },\n });\n },\n emitEvent: (eventId, payload) => {\n sendMessageToHost({\n type: \"widget.emit-event\",\n payload: {\n eventId,\n ...payload,\n },\n });\n },\n sendMessage: sendMessageToHost,\n subscribe: () => {\n window.addEventListener(\"message\", (event) => {\n if (event.origin !== hostOrigin) {\n // Reject messages that aren't coming from the configured host\n return;\n }\n listenForHostMessages(event);\n });\n },\n unsubscribe: () => {\n window.removeEventListener(\"message\", listenForHostMessages);\n },\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SACEA,WAAW,EACXC,gBAAgB,QAGX,kBAAkB;AACzB,SAASC,oBAAoB,QAAQ,kBAAkB;AACvD,OAAOC,SAAS,MAAM,gBAAgB;AACtC,SAASC,sBAAsB,QAAQ,WAAW;AAsClD,OAAO,SAASC,yBAAyBA,CAAA,EAEb;EAC1B,IAAI,yBAAyB,IAAIC,MAAM,EAAE;IACvC,OAAOC,0BAA0B,CAC/BD,MAAM,CAACE,uBACT,CAAC;EACH;EACA;EACA,OAAOC,gCAAgC,CAAI,CAAC;AAC9C;AAoBA,SAASF,0BAA0BA,CAGjCG,SAA+B,EACP;EACxB,MAAMC,eAAe,GAAG,IAAIP,sBAAsB,CAAI,CAAC;EAEvD,MAAMQ,qBAAqB,GAAIC,KAAkC,IAAK;IACpEZ,gBAAgB,CAACY,KAAK,CAACC,MAAM,EAAE;MAC7B,wBAAwB,EAAGC,OAAO,IAAK;QACrCJ,eAAe,CAACK,oBAAoB,CAAC,wBAAwB,EAAED,OAAO,CAAC;MACzE,CAAC;MACDE,QAAQ,EAAEA,CAAA,KAAM;QACd;MAAA;IAEJ,CAAC,CAAC;EACJ,CAAC;EACD,MAAMC,iBAAiB,GAAgCC,OAAU,IAAK;IACpET,SAAS,CAACU,WAAW,CAACD,OAAO,CAAC;EAChC,CAAC;EAED,OAAO;IACLR,eAAe;IACfU,KAAK,EAAEA,CAAA,KAAM;MACXH,iBAAiB,CAAC;QAChBI,IAAI,EAAE,cAAc;QACpBP,OAAO,EAAE;UACPQ,UAAU,EAAEvB,WAAW,CAACwB;QAC1B;MACF,CAAC,CAAC;IACJ,CAAC;IACDC,SAAS,EAAEA,CAACC,OAAO,EAAEX,OAAO,KAAK;MAC/BG,iBAAiB,CAAC;QAChBI,IAAI,EAAE,mBAAmB;QACzBP,OAAO,EAAE;UACPW,OAAO;UACP,GAAGX;QACL;MACF,CAAC,CAAC;IACJ,CAAC;IACDK,WAAW,EAAEF,iBAAiB;IAC9BS,SAAS,EAAEA,CAAA,KAAM;MACfjB,SAAS,CAACkB,gBAAgB,CAAC,SAAS,EAAEhB,qBAAqB,CAAC;IAC9D,CAAC;IACDiB,WAAW,EAAEA,CAAA,KAAM;MACjBnB,SAAS,CAACoB,mBAAmB,CAAC,SAAS,EAAElB,qBAAqB,CAAC;IACjE;EACF,CAAC;AACH;;AAEA;AACA,SAASH,gCAAgCA,CAAA,EAEb;EAC1B,CAAUH,MAAM,CAACyB,MAAM,GAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAAvB/B,SAAS,QAAgB,gDAAgD,IAAzEA,SAAS;EACT,MAAMgC,YAAY,GAAG7B,MAAM,CAACyB,MAAM;EAClC,MAAMK,OAAO,GAAGC,QAAQ,CAACC,aAAa,CACpC,cAAcpC,oBAAoB,IACpC,CAAC;EACD,CACEkC,OAAO,GAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADT/B,SAAS,QAEP,qDAAqD,GACjDD,oBAAoB,IAH1BC,SAAS;EAKT,MAAMoC,UAAU,GAAGH,OAAO,CAACI,YAAY,CAAC,SAAS,CAAC;EAClD,CACED,UAAU,GAAAP,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADZ/B,SAAS,QAEP,4DAA4D,IAF9DA,SAAS;EAIT,MAAMQ,eAAe,GAAG,IAAIP,sBAAsB,CAAI,CAAC;EAEvD,MAAMQ,qBAAqB,GAAIC,KAAmC,IAAK;IACrEZ,gBAAgB,CAACY,KAAK,CAAC4B,IAAI,EAAE;MAC3B,wBAAwB,EAAG1B,OAAO,IAAK;QACrCJ,eAAe,CAACK,oBAAoB,CAAC,wBAAwB,EAAED,OAAO,CAAC;MACzE,CAAC;MACDE,QAAQ,EAAEA,CAAA,KAAM;QACd;MAAA;IAEJ,CAAC,CAAC;EACJ,CAAC;EACD,MAAMC,iBAAiB,GAAgCC,OAAU,IAAK;IACpEgB,YAAY,CAACO,WAAW,CAACvB,OAAO,EAAEoB,UAAU,CAAC;EAC/C,CAAC;EAED,OAAO;IACL5B,eAAe;IACfU,KAAK,EAAEA,CAAA,KAAM;MACXH,iBAAiB,CAAC;QAChBI,IAAI,EAAE,cAAc;QACpBP,OAAO,EAAE;UACPQ,UAAU,EAAEvB,WAAW,CAACwB;QAC1B;MACF,CAAC,CAAC;IACJ,CAAC;IACDC,SAAS,EAAEA,CAACC,OAAO,EAAEX,OAAO,KAAK;MAC/BG,iBAAiB,CAAC;QAChBI,IAAI,EAAE,mBAAmB;QACzBP,OAAO,EAAE;UACPW,OAAO;UACP,GAAGX;QACL;MACF,CAAC,CAAC;IACJ,CAAC;IACDK,WAAW,EAAEF,iBAAiB;IAC9BS,SAAS,EAAEA,CAAA,KAAM;MACfrB,MAAM,CAACsB,gBAAgB,CAAC,SAAS,EAAGf,KAAK,IAAK;QAC5C,IAAIA,KAAK,CAAC8B,MAAM,KAAKJ,UAAU,EAAE;UAC/B;UACA;QACF;QACA3B,qBAAqB,CAACC,KAAK,CAAC;MAC9B,CAAC,CAAC;IACJ,CAAC;IACDgB,WAAW,EAAEA,CAAA,KAAM;MACjBvB,MAAM,CAACwB,mBAAmB,CAAC,SAAS,EAAElB,qBAAqB,CAAC;IAC9D;EACF,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,30 @@
1
+ /*
2
+ * Copyright 2024 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ export class FoundryHostEventTarget extends EventTarget {
18
+ addEventListener(type, callback, options) {
19
+ super.addEventListener(type, callback, options);
20
+ }
21
+ removeEventListener(type, callback, options) {
22
+ super.removeEventListener(type, callback, options);
23
+ }
24
+ dispatchEventMessage(type, payload) {
25
+ this.dispatchEvent(new CustomEvent(type, {
26
+ detail: payload
27
+ }));
28
+ }
29
+ }
30
+ //# sourceMappingURL=host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host.js","names":["FoundryHostEventTarget","EventTarget","addEventListener","type","callback","options","removeEventListener","dispatchEventMessage","payload","dispatchEvent","CustomEvent","detail"],"sources":["host.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { HostMessage, WidgetConfig } from \"@osdk/widget.api\";\n\nexport interface HostMessageEventListener<P extends HostMessage.Payload> {\n (event: CustomEvent<P>): void;\n}\n\nexport interface HostMessageEventListenerObject<P extends HostMessage.Payload> {\n handleEvent(object: CustomEvent<P>): void;\n}\n\nexport class FoundryHostEventTarget<\n C extends WidgetConfig<C[\"parameters\"]>,\n> extends EventTarget {\n addEventListener<T extends HostMessage<C>[\"type\"]>(\n type: T,\n callback:\n | HostMessageEventListener<\n (HostMessage<C> & { type: T })[\"payload\"]\n >\n | HostMessageEventListenerObject<\n (HostMessage<C> & { type: T })[\"payload\"]\n >\n | null,\n options?: AddEventListenerOptions | boolean,\n ): void {\n super.addEventListener(type, callback as EventListener, options);\n }\n\n removeEventListener<T extends HostMessage<C>[\"type\"]>(\n type: T,\n callback:\n | HostMessageEventListener<\n (HostMessage<C> & { type: T })[\"payload\"]\n >\n | HostMessageEventListenerObject<\n (HostMessage<C> & { type: T })[\"payload\"]\n >\n | null,\n options?: EventListenerOptions | boolean,\n ): void {\n super.removeEventListener(type, callback as EventListener, options);\n }\n\n public dispatchEventMessage<T extends HostMessage<C>[\"type\"]>(\n type: T,\n payload: (HostMessage<C> & { type: T })[\"payload\"],\n ): void {\n this.dispatchEvent(\n new CustomEvent<HostMessage.Payload>(type, {\n detail: payload,\n }),\n );\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAYA,OAAO,MAAMA,sBAAsB,SAEzBC,WAAW,CAAC;EACpBC,gBAAgBA,CACdC,IAAO,EACPC,QAOQ,EACRC,OAA2C,EACrC;IACN,KAAK,CAACH,gBAAgB,CAACC,IAAI,EAAEC,QAAQ,EAAmBC,OAAO,CAAC;EAClE;EAEAC,mBAAmBA,CACjBH,IAAO,EACPC,QAOQ,EACRC,OAAwC,EAClC;IACN,KAAK,CAACC,mBAAmB,CAACH,IAAI,EAAEC,QAAQ,EAAmBC,OAAO,CAAC;EACrE;EAEOE,oBAAoBA,CACzBJ,IAAO,EACPK,OAAkD,EAC5C;IACN,IAAI,CAACC,aAAa,CAChB,IAAIC,WAAW,CAAsBP,IAAI,EAAE;MACzCQ,MAAM,EAAEH;IACV,CAAC,CACH,CAAC;EACH;AACF","ignoreList":[]}