@thoughtspot/visual-embed-sdk 1.51.2 → 1.52.1
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/cjs/package.json +9 -1
- package/cjs/src/api-intercept.d.ts.map +1 -1
- package/cjs/src/api-intercept.js +1 -0
- package/cjs/src/api-intercept.js.map +1 -1
- package/cjs/src/contracts/contracts.spec.d.ts +2 -0
- package/cjs/src/contracts/contracts.spec.d.ts.map +1 -0
- package/cjs/src/contracts/contracts.spec.js +345 -0
- package/cjs/src/contracts/contracts.spec.js.map +1 -0
- package/cjs/src/contracts/embed-event-payloads.d.ts +73 -0
- package/cjs/src/contracts/embed-event-payloads.d.ts.map +1 -0
- package/cjs/src/contracts/embed-event-payloads.js +3 -0
- package/cjs/src/contracts/embed-event-payloads.js.map +1 -0
- package/cjs/src/contracts/host-event-contracts.d.ts +378 -0
- package/cjs/src/contracts/host-event-contracts.d.ts.map +1 -0
- package/cjs/src/contracts/host-event-contracts.js +3 -0
- package/cjs/src/contracts/host-event-contracts.js.map +1 -0
- package/cjs/src/contracts/index.d.ts +22 -0
- package/cjs/src/contracts/index.d.ts.map +1 -0
- package/cjs/src/contracts/index.js +33 -0
- package/cjs/src/contracts/index.js.map +1 -0
- package/cjs/src/contracts/ui-passthrough-contracts.d.ts +277 -0
- package/cjs/src/contracts/ui-passthrough-contracts.d.ts.map +1 -0
- package/cjs/src/{embed/hostEventClient/contracts.js → contracts/ui-passthrough-contracts.js} +6 -2
- package/cjs/src/contracts/ui-passthrough-contracts.js.map +1 -0
- package/cjs/src/css-variables.d.ts +1 -1
- package/cjs/src/embed/app.d.ts +17 -140
- package/cjs/src/embed/app.d.ts.map +1 -1
- package/cjs/src/embed/app.js +20 -120
- package/cjs/src/embed/app.js.map +1 -1
- package/cjs/src/embed/app.spec.js +70 -26
- package/cjs/src/embed/app.spec.js.map +1 -1
- package/cjs/src/embed/conversation.d.ts +5 -5
- package/cjs/src/embed/events.spec.js +12 -2
- package/cjs/src/embed/events.spec.js.map +1 -1
- package/cjs/src/embed/hostEventClient/host-event-client.d.ts +3 -2
- package/cjs/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
- package/cjs/src/embed/hostEventClient/host-event-client.js +23 -18
- package/cjs/src/embed/hostEventClient/host-event-client.js.map +1 -1
- package/cjs/src/embed/hostEventClient/host-event-client.spec.js +36 -36
- package/cjs/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
- package/cjs/src/embed/hostEventClient/utils.d.ts +1 -1
- package/cjs/src/embed/hostEventClient/utils.d.ts.map +1 -1
- package/cjs/src/embed/hostEventClient/utils.js +3 -3
- package/cjs/src/embed/hostEventClient/utils.js.map +1 -1
- package/cjs/src/embed/liveboard.d.ts +9 -161
- package/cjs/src/embed/liveboard.d.ts.map +1 -1
- package/cjs/src/embed/liveboard.js +68 -135
- package/cjs/src/embed/liveboard.js.map +1 -1
- package/cjs/src/embed/liveboard.spec.js +215 -32
- package/cjs/src/embed/liveboard.spec.js.map +1 -1
- package/cjs/src/embed/search.d.ts +14 -0
- package/cjs/src/embed/search.d.ts.map +1 -1
- package/cjs/src/embed/search.js +4 -1
- package/cjs/src/embed/search.js.map +1 -1
- package/cjs/src/embed/search.spec.js +65 -0
- package/cjs/src/embed/search.spec.js.map +1 -1
- package/cjs/src/embed/ts-embed.d.ts +21 -25
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +105 -72
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +380 -33
- package/cjs/src/embed/ts-embed.spec.js.map +1 -1
- package/cjs/src/full-height.d.ts +137 -0
- package/cjs/src/full-height.d.ts.map +1 -0
- package/cjs/src/full-height.js +272 -0
- package/cjs/src/full-height.js.map +1 -0
- package/cjs/src/full-height.spec.d.ts +2 -0
- package/cjs/src/full-height.spec.d.ts.map +1 -0
- package/cjs/src/full-height.spec.js +835 -0
- package/cjs/src/full-height.spec.js.map +1 -0
- package/cjs/src/index.d.ts +4 -3
- package/cjs/src/index.d.ts.map +1 -1
- package/cjs/src/index.js +5 -4
- package/cjs/src/index.js.map +1 -1
- package/cjs/src/react/all-types-export.d.ts +1 -1
- package/cjs/src/react/all-types-export.d.ts.map +1 -1
- package/cjs/src/react/all-types-export.js +2 -1
- package/cjs/src/react/all-types-export.js.map +1 -1
- package/cjs/src/react/all-types-export.parity.spec.js +55 -3
- package/cjs/src/react/all-types-export.parity.spec.js.map +1 -1
- package/cjs/src/react/index.d.ts +8 -8
- package/cjs/src/react/index.d.ts.map +1 -1
- package/cjs/src/react/index.js +1 -1
- package/cjs/src/react/index.js.map +1 -1
- package/cjs/src/react/index.spec.js +7 -7
- package/cjs/src/react/index.spec.js.map +1 -1
- package/cjs/src/types.d.ts +664 -39
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +406 -13
- package/cjs/src/types.js.map +1 -1
- package/cjs/src/utils/processTrigger.d.ts +3 -1
- package/cjs/src/utils/processTrigger.d.ts.map +1 -1
- package/cjs/src/utils/processTrigger.js +19 -51
- package/cjs/src/utils/processTrigger.js.map +1 -1
- package/cjs/src/utils/transport/iframe-transport.d.ts +55 -0
- package/cjs/src/utils/transport/iframe-transport.d.ts.map +1 -0
- package/cjs/src/utils/transport/iframe-transport.js +108 -0
- package/cjs/src/utils/transport/iframe-transport.js.map +1 -0
- package/cjs/src/utils/transport/iframe-transport.spec.d.ts +2 -0
- package/cjs/src/utils/transport/iframe-transport.spec.d.ts.map +1 -0
- package/cjs/src/utils/transport/iframe-transport.spec.js +140 -0
- package/cjs/src/utils/transport/iframe-transport.spec.js.map +1 -0
- package/cjs/src/utils.d.ts +18 -0
- package/cjs/src/utils.d.ts.map +1 -1
- package/cjs/src/utils.js +39 -1
- package/cjs/src/utils.js.map +1 -1
- package/cjs/src/utils.spec.js +62 -0
- package/cjs/src/utils.spec.js.map +1 -1
- package/dist/{index-D8_Zs-Nr.js → index-C1pmYb5H.js} +1 -1
- package/dist/src/api-intercept.d.ts.map +1 -1
- package/dist/src/contracts/contracts.spec.d.ts +2 -0
- package/dist/src/contracts/contracts.spec.d.ts.map +1 -0
- package/dist/src/contracts/embed-event-payloads.d.ts +73 -0
- package/dist/src/contracts/embed-event-payloads.d.ts.map +1 -0
- package/dist/src/contracts/host-event-contracts.d.ts +378 -0
- package/dist/src/contracts/host-event-contracts.d.ts.map +1 -0
- package/dist/src/contracts/index.d.ts +22 -0
- package/dist/src/contracts/index.d.ts.map +1 -0
- package/dist/src/contracts/ui-passthrough-contracts.d.ts +277 -0
- package/dist/src/contracts/ui-passthrough-contracts.d.ts.map +1 -0
- package/dist/src/css-variables.d.ts +1 -1
- package/dist/src/embed/app.d.ts +17 -140
- package/dist/src/embed/app.d.ts.map +1 -1
- package/dist/src/embed/conversation.d.ts +5 -5
- package/dist/src/embed/hostEventClient/host-event-client.d.ts +3 -2
- package/dist/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
- package/dist/src/embed/hostEventClient/utils.d.ts +1 -1
- package/dist/src/embed/hostEventClient/utils.d.ts.map +1 -1
- package/dist/src/embed/liveboard.d.ts +9 -161
- package/dist/src/embed/liveboard.d.ts.map +1 -1
- package/dist/src/embed/search.d.ts +14 -0
- package/dist/src/embed/search.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.d.ts +21 -25
- package/dist/src/embed/ts-embed.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.spec.d.ts.map +1 -1
- package/dist/src/full-height.d.ts +137 -0
- package/dist/src/full-height.d.ts.map +1 -0
- package/dist/src/full-height.spec.d.ts +2 -0
- package/dist/src/full-height.spec.d.ts.map +1 -0
- package/dist/src/index.d.ts +4 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/react/all-types-export.d.ts +1 -1
- package/dist/src/react/all-types-export.d.ts.map +1 -1
- package/dist/src/react/index.d.ts +8 -8
- package/dist/src/react/index.d.ts.map +1 -1
- package/dist/src/types.d.ts +664 -39
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/processTrigger.d.ts +3 -1
- package/dist/src/utils/processTrigger.d.ts.map +1 -1
- package/dist/src/utils/transport/iframe-transport.d.ts +55 -0
- package/dist/src/utils/transport/iframe-transport.d.ts.map +1 -0
- package/dist/src/utils/transport/iframe-transport.spec.d.ts +2 -0
- package/dist/src/utils/transport/iframe-transport.spec.d.ts.map +1 -0
- package/dist/src/utils.d.ts +18 -0
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +1031 -392
- package/dist/tsembed-react.js +1030 -391
- package/dist/tsembed.es.js +1031 -392
- package/dist/tsembed.js +1029 -390
- package/dist/visual-embed-sdk-react-full.d.ts +1483 -693
- package/dist/visual-embed-sdk-react.d.ts +1364 -647
- package/dist/visual-embed-sdk.d.ts +1426 -659
- package/lib/package.json +9 -1
- package/lib/src/api-intercept.d.ts.map +1 -1
- package/lib/src/api-intercept.js +2 -1
- package/lib/src/api-intercept.js.map +1 -1
- package/lib/src/contracts/contracts.spec.d.ts +2 -0
- package/lib/src/contracts/contracts.spec.d.ts.map +1 -0
- package/lib/src/contracts/contracts.spec.js +342 -0
- package/lib/src/contracts/contracts.spec.js.map +1 -0
- package/lib/src/contracts/embed-event-payloads.d.ts +73 -0
- package/lib/src/contracts/embed-event-payloads.d.ts.map +1 -0
- package/lib/src/contracts/embed-event-payloads.js +2 -0
- package/lib/src/contracts/embed-event-payloads.js.map +1 -0
- package/lib/src/contracts/host-event-contracts.d.ts +378 -0
- package/lib/src/contracts/host-event-contracts.d.ts.map +1 -0
- package/lib/src/contracts/host-event-contracts.js +2 -0
- package/lib/src/contracts/host-event-contracts.js.map +1 -0
- package/lib/src/contracts/index.d.ts +22 -0
- package/lib/src/contracts/index.d.ts.map +1 -0
- package/lib/src/contracts/index.js +22 -0
- package/lib/src/contracts/index.js.map +1 -0
- package/lib/src/contracts/ui-passthrough-contracts.d.ts +277 -0
- package/lib/src/contracts/ui-passthrough-contracts.d.ts.map +1 -0
- package/lib/src/{embed/hostEventClient/contracts.js → contracts/ui-passthrough-contracts.js} +6 -2
- package/lib/src/contracts/ui-passthrough-contracts.js.map +1 -0
- package/lib/src/css-variables.d.ts +1 -1
- package/lib/src/embed/app.d.ts +17 -140
- package/lib/src/embed/app.d.ts.map +1 -1
- package/lib/src/embed/app.js +22 -122
- package/lib/src/embed/app.js.map +1 -1
- package/lib/src/embed/app.spec.js +70 -26
- package/lib/src/embed/app.spec.js.map +1 -1
- package/lib/src/embed/conversation.d.ts +5 -5
- package/lib/src/embed/events.spec.js +12 -2
- package/lib/src/embed/events.spec.js.map +1 -1
- package/lib/src/embed/hostEventClient/host-event-client.d.ts +3 -2
- package/lib/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
- package/lib/src/embed/hostEventClient/host-event-client.js +6 -1
- package/lib/src/embed/hostEventClient/host-event-client.js.map +1 -1
- package/lib/src/embed/hostEventClient/host-event-client.spec.js +1 -1
- package/lib/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
- package/lib/src/embed/hostEventClient/utils.d.ts +1 -1
- package/lib/src/embed/hostEventClient/utils.d.ts.map +1 -1
- package/lib/src/embed/hostEventClient/utils.js +1 -1
- package/lib/src/embed/hostEventClient/utils.js.map +1 -1
- package/lib/src/embed/liveboard.d.ts +9 -161
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +70 -137
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +215 -32
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/embed/search.d.ts +14 -0
- package/lib/src/embed/search.d.ts.map +1 -1
- package/lib/src/embed/search.js +4 -1
- package/lib/src/embed/search.js.map +1 -1
- package/lib/src/embed/search.spec.js +65 -0
- package/lib/src/embed/search.spec.js.map +1 -1
- package/lib/src/embed/ts-embed.d.ts +21 -25
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +106 -73
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +378 -31
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/full-height.d.ts +137 -0
- package/lib/src/full-height.d.ts.map +1 -0
- package/lib/src/full-height.js +268 -0
- package/lib/src/full-height.js.map +1 -0
- package/lib/src/full-height.spec.d.ts +2 -0
- package/lib/src/full-height.spec.d.ts.map +1 -0
- package/lib/src/full-height.spec.js +833 -0
- package/lib/src/full-height.spec.js.map +1 -0
- package/lib/src/index.d.ts +4 -3
- package/lib/src/index.d.ts.map +1 -1
- package/lib/src/index.js +3 -3
- package/lib/src/index.js.map +1 -1
- package/lib/src/react/all-types-export.d.ts +1 -1
- package/lib/src/react/all-types-export.d.ts.map +1 -1
- package/lib/src/react/all-types-export.js +1 -1
- package/lib/src/react/all-types-export.js.map +1 -1
- package/lib/src/react/all-types-export.parity.spec.js +55 -3
- package/lib/src/react/all-types-export.parity.spec.js.map +1 -1
- package/lib/src/react/index.d.ts +8 -8
- package/lib/src/react/index.d.ts.map +1 -1
- package/lib/src/react/index.js +1 -1
- package/lib/src/react/index.js.map +1 -1
- package/lib/src/react/index.spec.js +7 -7
- package/lib/src/react/index.spec.js.map +1 -1
- package/lib/src/types.d.ts +664 -39
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +405 -12
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/processTrigger.d.ts +3 -1
- package/lib/src/utils/processTrigger.d.ts.map +1 -1
- package/lib/src/utils/processTrigger.js +19 -51
- package/lib/src/utils/processTrigger.js.map +1 -1
- package/lib/src/utils/transport/iframe-transport.d.ts +55 -0
- package/lib/src/utils/transport/iframe-transport.d.ts.map +1 -0
- package/lib/src/utils/transport/iframe-transport.js +101 -0
- package/lib/src/utils/transport/iframe-transport.js.map +1 -0
- package/lib/src/utils/transport/iframe-transport.spec.d.ts +2 -0
- package/lib/src/utils/transport/iframe-transport.spec.d.ts.map +1 -0
- package/lib/src/utils/transport/iframe-transport.spec.js +138 -0
- package/lib/src/utils/transport/iframe-transport.spec.js.map +1 -0
- package/lib/src/utils.d.ts +18 -0
- package/lib/src/utils.d.ts.map +1 -1
- package/lib/src/utils.js +37 -0
- package/lib/src/utils.js.map +1 -1
- package/lib/src/utils.spec.js +63 -1
- package/lib/src/utils.spec.js.map +1 -1
- package/lib/src/visual-embed-sdk.d.ts +1426 -659
- package/package.json +9 -1
- package/src/api-intercept.ts +2 -1
- package/src/contracts/contracts.spec.ts +392 -0
- package/src/contracts/embed-event-payloads.ts +83 -0
- package/src/contracts/host-event-contracts.ts +456 -0
- package/src/contracts/index.ts +53 -0
- package/src/contracts/ui-passthrough-contracts.ts +301 -0
- package/src/css-variables.ts +1 -1
- package/src/embed/app.spec.ts +86 -34
- package/src/embed/app.ts +37 -264
- package/src/embed/conversation.ts +5 -5
- package/src/embed/events.spec.ts +14 -2
- package/src/embed/hostEventClient/host-event-client.spec.ts +2 -2
- package/src/embed/hostEventClient/host-event-client.ts +18 -5
- package/src/embed/hostEventClient/utils.ts +2 -1
- package/src/embed/liveboard.spec.ts +261 -42
- package/src/embed/liveboard.ts +78 -297
- package/src/embed/search.spec.ts +80 -0
- package/src/embed/search.ts +20 -0
- package/src/embed/ts-embed.spec.ts +518 -31
- package/src/embed/ts-embed.ts +133 -82
- package/src/full-height.spec.ts +1008 -0
- package/src/full-height.ts +361 -0
- package/src/index.ts +95 -5
- package/src/react/all-types-export.parity.spec.ts +63 -3
- package/src/react/all-types-export.ts +46 -0
- package/src/react/index.spec.tsx +7 -7
- package/src/react/index.tsx +9 -9
- package/src/types.ts +665 -37
- package/src/utils/processTrigger.ts +28 -58
- package/src/utils/transport/iframe-transport.spec.ts +177 -0
- package/src/utils/transport/iframe-transport.ts +122 -0
- package/src/utils.spec.ts +71 -0
- package/src/utils.ts +38 -0
- package/cjs/src/embed/hostEventClient/contracts.d.ts +0 -231
- package/cjs/src/embed/hostEventClient/contracts.d.ts.map +0 -1
- package/cjs/src/embed/hostEventClient/contracts.js.map +0 -1
- package/dist/src/embed/hostEventClient/contracts.d.ts +0 -231
- package/dist/src/embed/hostEventClient/contracts.d.ts.map +0 -1
- package/lib/src/embed/hostEventClient/contracts.d.ts +0 -231
- package/lib/src/embed/hostEventClient/contracts.d.ts.map +0 -1
- package/lib/src/embed/hostEventClient/contracts.js.map +0 -1
- package/src/embed/hostEventClient/contracts.ts +0 -262
package/lib/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thoughtspot/visual-embed-sdk",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.52.1",
|
|
4
4
|
"description": "ThoughtSpot Embed SDK",
|
|
5
5
|
"module": "lib/src/index.js",
|
|
6
6
|
"main": "dist/tsembed.js",
|
|
@@ -22,6 +22,11 @@
|
|
|
22
22
|
"require": "./cjs/src/react/all-types-export.js",
|
|
23
23
|
"types": "./lib/src/react/all-types-export.d.ts"
|
|
24
24
|
},
|
|
25
|
+
"./contracts": {
|
|
26
|
+
"import": "./lib/src/contracts/index.js",
|
|
27
|
+
"require": "./cjs/src/contracts/index.js",
|
|
28
|
+
"types": "./lib/src/contracts/index.d.ts"
|
|
29
|
+
},
|
|
25
30
|
"./lib/src/react": {
|
|
26
31
|
"import": "./lib/src/react/all-types-export.js",
|
|
27
32
|
"require": "./cjs/src/react/all-types-export.js",
|
|
@@ -32,6 +37,9 @@
|
|
|
32
37
|
"*": {
|
|
33
38
|
"react": [
|
|
34
39
|
"./lib/src/react/all-types-export.d.ts"
|
|
40
|
+
],
|
|
41
|
+
"contracts": [
|
|
42
|
+
"./lib/src/contracts/index.d.ts"
|
|
35
43
|
]
|
|
36
44
|
}
|
|
37
45
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-intercept.d.ts","sourceRoot":"","sources":["../../src/api-intercept.ts"],"names":[],"mappings":"AAGA,OAAO,EAAsB,cAAc,EAAE,iBAAiB,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"api-intercept.d.ts","sourceRoot":"","sources":["../../src/api-intercept.ts"],"names":[],"mappings":"AAGA,OAAO,EAAsB,cAAc,EAAE,iBAAiB,EAAE,UAAU,EAAkF,MAAM,SAAS,CAAC;AAwC5K;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,eAAgB,cAAc,KAAG,SAAS,KAAK,iBAAiB,EAAE,sCAAsC,CAAC,CAgBzI,CAAA;AA6CD;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB;eAClB,GAAG;8BACY,UAAU,QAAQ,GAAG,KAAK,IAAI;gBAC5C,cAAc;iCACG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,QAAQ;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;mBA6CnG,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,YAAa,GAAG,QAQvD,CAAA;AAED,eAAO,MAAM,8BAA8B,YAAa,GAAG;;;;;;;;;;;;;;CAuB1D,CAAA"}
|
package/lib/src/api-intercept.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getThoughtSpotHost } from "./config";
|
|
2
2
|
import { getEmbedConfig } from "./embed/embedConfig";
|
|
3
3
|
import { ERROR_MESSAGE } from "./errors";
|
|
4
|
-
import { InterceptedApiType, EmbedEvent, EmbedErrorCodes, ErrorDetailsTypes } from "./types";
|
|
4
|
+
import { InterceptedApiType, EmbedEvent, EmbedErrorCodes, ErrorDetailsTypes, EmbedErrorSeverity } from "./types";
|
|
5
5
|
import { embedEventStatus } from "./utils";
|
|
6
6
|
import { logger } from "./utils/logger";
|
|
7
7
|
const DefaultInterceptUrlsMap = {
|
|
@@ -113,6 +113,7 @@ export const handleInterceptEvent = async (params) => {
|
|
|
113
113
|
errorType: ErrorDetailsTypes.API,
|
|
114
114
|
message: ERROR_MESSAGE.ERROR_PARSING_API_INTERCEPT_BODY,
|
|
115
115
|
code: EmbedErrorCodes.PARSING_API_INTERCEPT_BODY_ERROR,
|
|
116
|
+
severity: EmbedErrorSeverity.SEV3,
|
|
116
117
|
error: ERROR_MESSAGE.ERROR_PARSING_API_INTERCEPT_BODY,
|
|
117
118
|
};
|
|
118
119
|
executeEvent(EmbedEvent.Error, errorDetails);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-intercept.js","sourceRoot":"","sources":["../../src/api-intercept.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAqC,UAAU,EAAE,eAAe,EAAE,iBAAiB,EAA0B,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"api-intercept.js","sourceRoot":"","sources":["../../src/api-intercept.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.spec.d.ts","sourceRoot":"","sources":["../../../src/contracts/contracts.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contract drift guardrails.
|
|
3
|
+
*
|
|
4
|
+
* These tests are the CI gate for the additive-only contract policy:
|
|
5
|
+
* - The explicit wire-value lists below record which events have TYPED
|
|
6
|
+
* contracts. Removing an event from the typed maps (or renaming its wire
|
|
7
|
+
* value) fails the equality check and must be treated as a breaking change,
|
|
8
|
+
* not a refactor.
|
|
9
|
+
* - Type-level assertions verify the request/response resolution helpers
|
|
10
|
+
* keep resolving typed events to their contracts and unknown events to
|
|
11
|
+
* `any` (backward compatibility).
|
|
12
|
+
*
|
|
13
|
+
* When a list check fails: if you ADDED an event, add its wire value to the
|
|
14
|
+
* expected list here. If an existing entry disappeared or changed value,
|
|
15
|
+
* stop — that breaks published SDK consumers and the host runtime validation
|
|
16
|
+
* derived from these contracts.
|
|
17
|
+
*/
|
|
18
|
+
import { HostEvent, EmbedEvent, RuntimeFilterOp } from '../types';
|
|
19
|
+
import { UIPassthroughEvent } from './ui-passthrough-contracts';
|
|
20
|
+
import * as contractsBarrel from './index';
|
|
21
|
+
// Events with explicitly typed requests in HostEventRequestMap.
|
|
22
|
+
// Keep in sync with the interface — this list is what the snapshot locks.
|
|
23
|
+
const TYPED_HOST_EVENTS = [
|
|
24
|
+
// Filters and parameters
|
|
25
|
+
HostEvent.UpdateRuntimeFilters,
|
|
26
|
+
HostEvent.UpdateParameters,
|
|
27
|
+
HostEvent.UpdateFilters,
|
|
28
|
+
HostEvent.UpdateCrossFilter,
|
|
29
|
+
HostEvent.OpenFilter,
|
|
30
|
+
HostEvent.OpenParameter,
|
|
31
|
+
// Tabs and vizs
|
|
32
|
+
HostEvent.SetVisibleVizs,
|
|
33
|
+
HostEvent.SetVisibleTabs,
|
|
34
|
+
HostEvent.SetHiddenTabs,
|
|
35
|
+
HostEvent.SetActiveTab,
|
|
36
|
+
// Navigation
|
|
37
|
+
HostEvent.Navigate,
|
|
38
|
+
// Search and columns
|
|
39
|
+
HostEvent.Search,
|
|
40
|
+
HostEvent.ResetSearch,
|
|
41
|
+
HostEvent.AddColumns,
|
|
42
|
+
HostEvent.RemoveColumn,
|
|
43
|
+
// Viz-scoped actions
|
|
44
|
+
HostEvent.Edit,
|
|
45
|
+
HostEvent.Save,
|
|
46
|
+
HostEvent.Delete,
|
|
47
|
+
HostEvent.Share,
|
|
48
|
+
HostEvent.Present,
|
|
49
|
+
HostEvent.CopyLink,
|
|
50
|
+
HostEvent.ExportTML,
|
|
51
|
+
HostEvent.EditTML,
|
|
52
|
+
HostEvent.UpdateTML,
|
|
53
|
+
HostEvent.SchedulesList,
|
|
54
|
+
HostEvent.Schedule,
|
|
55
|
+
HostEvent.SpotIQAnalyze,
|
|
56
|
+
HostEvent.ShowUnderlyingData,
|
|
57
|
+
HostEvent.CreateMonitor,
|
|
58
|
+
HostEvent.ManageMonitor,
|
|
59
|
+
HostEvent.SyncToSheets,
|
|
60
|
+
HostEvent.SyncToOtherApps,
|
|
61
|
+
HostEvent.ManagePipelines,
|
|
62
|
+
HostEvent.DownloadAsPng,
|
|
63
|
+
HostEvent.DownloadAsCsv,
|
|
64
|
+
HostEvent.DownloadAsXlsx,
|
|
65
|
+
HostEvent.DownloadAsPdf,
|
|
66
|
+
HostEvent.Explore,
|
|
67
|
+
HostEvent.AskSage,
|
|
68
|
+
HostEvent.AskSpotter,
|
|
69
|
+
HostEvent.AnswerChartSwitcher,
|
|
70
|
+
// Liveboard
|
|
71
|
+
HostEvent.UpdatePersonalisedView,
|
|
72
|
+
HostEvent.SelectPersonalizedView,
|
|
73
|
+
HostEvent.ResetLiveboardPersonalisedView,
|
|
74
|
+
HostEvent.AIHighlights,
|
|
75
|
+
HostEvent.SendTestScheduleEmail,
|
|
76
|
+
HostEvent.RefreshLiveboardBrowserCache,
|
|
77
|
+
// Spotter
|
|
78
|
+
HostEvent.SpotterSearch,
|
|
79
|
+
HostEvent.ResetSpotterConversation,
|
|
80
|
+
HostEvent.ShareSpotterConversation,
|
|
81
|
+
HostEvent.CloseSpotterShareConversation,
|
|
82
|
+
HostEvent.ExitSpotterSharedConversation,
|
|
83
|
+
HostEvent.PinSpotterConversation,
|
|
84
|
+
HostEvent.UnpinSpotterConversation,
|
|
85
|
+
HostEvent.EditLastPrompt,
|
|
86
|
+
HostEvent.DeleteLastPrompt,
|
|
87
|
+
HostEvent.PreviewSpotterData,
|
|
88
|
+
HostEvent.SpotterVizSendUserMessage,
|
|
89
|
+
HostEvent.InitSpotterVizConversation,
|
|
90
|
+
HostEvent.OpenSpotterVizPanel,
|
|
91
|
+
HostEvent.CloseSpotterVizPanel,
|
|
92
|
+
];
|
|
93
|
+
// Type-level assertions: compile failures here mean contract resolution
|
|
94
|
+
// regressed. `expectType` is erased at runtime.
|
|
95
|
+
const expectType = (value) => value;
|
|
96
|
+
describe('event contracts (drift guardrails)', () => {
|
|
97
|
+
// The lists below LOCK the set of typed events. Adding an event is an
|
|
98
|
+
// intentional, additive edit here; a removed/renamed wire value fails this
|
|
99
|
+
// test — which is the signal that it is a breaking change, not a refactor.
|
|
100
|
+
test('typed host event wire values are stable (additive-only)', () => {
|
|
101
|
+
expect(TYPED_HOST_EVENTS.map((event) => `${event}`).sort()).toEqual([
|
|
102
|
+
'AIHighlights',
|
|
103
|
+
'AskSage',
|
|
104
|
+
'AskSpotter',
|
|
105
|
+
'CloseSpotterShareConversation',
|
|
106
|
+
'CloseSpotterVizPanel',
|
|
107
|
+
'DeleteLastPrompt',
|
|
108
|
+
'EditLastPrompt',
|
|
109
|
+
'ExitSpotterSharedConversation',
|
|
110
|
+
'InitSpotterVizConversation',
|
|
111
|
+
'Navigate',
|
|
112
|
+
'OpenSpotterVizPanel',
|
|
113
|
+
'PinSpotterConversation',
|
|
114
|
+
'PreviewSpotterData',
|
|
115
|
+
'ResetLiveboardPersonalisedView',
|
|
116
|
+
'ResetSpotterConversation',
|
|
117
|
+
'SelectPersonalisedView',
|
|
118
|
+
'SetActiveTab',
|
|
119
|
+
'SetPinboardHiddenTabs',
|
|
120
|
+
'SetPinboardVisibleTabs',
|
|
121
|
+
'SetPinboardVisibleVizs',
|
|
122
|
+
'ShareSpotterConversation',
|
|
123
|
+
'SpotterSearch',
|
|
124
|
+
'SpotterVizSendUserMessage',
|
|
125
|
+
'UnpinSpotterConversation',
|
|
126
|
+
'UpdateCrossFilter',
|
|
127
|
+
'UpdateParameters',
|
|
128
|
+
'UpdatePersonalisedView',
|
|
129
|
+
'UpdateRuntimeFilters',
|
|
130
|
+
'addColumns',
|
|
131
|
+
'answerChartSwitcher',
|
|
132
|
+
'createMonitor',
|
|
133
|
+
'downloadAsCSV',
|
|
134
|
+
'downloadAsPdf',
|
|
135
|
+
'downloadAsPng',
|
|
136
|
+
'downloadAsXLSX',
|
|
137
|
+
'edit',
|
|
138
|
+
'editTSL',
|
|
139
|
+
'embedDocument',
|
|
140
|
+
'explore',
|
|
141
|
+
'exportTSL',
|
|
142
|
+
'manage-pipeline',
|
|
143
|
+
'manageMonitor',
|
|
144
|
+
'onDeleteAnswer',
|
|
145
|
+
'openFilter',
|
|
146
|
+
'openParameter',
|
|
147
|
+
'present',
|
|
148
|
+
'refreshLiveboardBrowserCache',
|
|
149
|
+
'removeColumn',
|
|
150
|
+
'resetSearch',
|
|
151
|
+
'save',
|
|
152
|
+
'schedule-list',
|
|
153
|
+
'search',
|
|
154
|
+
'sendTestScheduleEmail',
|
|
155
|
+
'share',
|
|
156
|
+
'showUnderlyingData',
|
|
157
|
+
'spotIQAnalyze',
|
|
158
|
+
'subscription',
|
|
159
|
+
'sync-to-other-apps',
|
|
160
|
+
'sync-to-sheets',
|
|
161
|
+
'updateFilters',
|
|
162
|
+
'updateTSL',
|
|
163
|
+
]);
|
|
164
|
+
});
|
|
165
|
+
test('UI passthrough wire values are stable (additive-only)', () => {
|
|
166
|
+
expect(Object.values(UIPassthroughEvent).sort()).toEqual([
|
|
167
|
+
'addVizToPinboard',
|
|
168
|
+
'drillDown',
|
|
169
|
+
'getAnswerPageConfig',
|
|
170
|
+
'getAnswerSession',
|
|
171
|
+
'getAvailableUiPassthroughs',
|
|
172
|
+
'getDiscoverabilityStatus',
|
|
173
|
+
'getExportRequestForCurrentPinboard',
|
|
174
|
+
'getFilters',
|
|
175
|
+
'getGroups',
|
|
176
|
+
'getIframeUrl',
|
|
177
|
+
'getParameters',
|
|
178
|
+
'getPinboardPageConfig',
|
|
179
|
+
'getTML',
|
|
180
|
+
'getTabs',
|
|
181
|
+
'getUnsavedAnswerTML',
|
|
182
|
+
'saveAnswer',
|
|
183
|
+
'updateFilters',
|
|
184
|
+
]);
|
|
185
|
+
});
|
|
186
|
+
test('every typed host event is a real HostEvent member', () => {
|
|
187
|
+
const allHostEventValues = new Set(Object.values(HostEvent));
|
|
188
|
+
TYPED_HOST_EVENTS.forEach((event) => {
|
|
189
|
+
expect(allHostEventValues.has(event)).toBe(true);
|
|
190
|
+
});
|
|
191
|
+
});
|
|
192
|
+
test('contract resolution helpers compile against the typed map', () => {
|
|
193
|
+
// Typed event resolves to its contract type.
|
|
194
|
+
expectType(undefined);
|
|
195
|
+
expectType(undefined);
|
|
196
|
+
expectType(undefined);
|
|
197
|
+
// Untyped event stays `any` (backward compatible).
|
|
198
|
+
const untyped = { anything: 'goes' };
|
|
199
|
+
expect(untyped).toBeDefined();
|
|
200
|
+
// Response helper resolves for UI-passthrough-backed events.
|
|
201
|
+
expectType(undefined);
|
|
202
|
+
});
|
|
203
|
+
test('embed event enum wire values referenced by typed payloads are stable', () => {
|
|
204
|
+
expect([
|
|
205
|
+
EmbedEvent.AuthInit,
|
|
206
|
+
EmbedEvent.EmbedListenerReady,
|
|
207
|
+
EmbedEvent.CustomAction,
|
|
208
|
+
].map((e) => `${e}`).sort()).toEqual([
|
|
209
|
+
'EmbedListenerReady',
|
|
210
|
+
'authInit',
|
|
211
|
+
'customAction',
|
|
212
|
+
]);
|
|
213
|
+
});
|
|
214
|
+
test('CustomAction resolves to its typed payload; answerService on the dedicated type', () => {
|
|
215
|
+
// Wire data resolves to CustomActionPayload.
|
|
216
|
+
expectType(undefined);
|
|
217
|
+
// payload.data.id is a typed string (type-level indexed access).
|
|
218
|
+
expectType(undefined);
|
|
219
|
+
const svc = undefined;
|
|
220
|
+
expect(svc).toBeUndefined();
|
|
221
|
+
// Untyped embed event stays `any` (backward compatible).
|
|
222
|
+
const untyped = { anything: 'goes' };
|
|
223
|
+
expect(untyped).toBeDefined();
|
|
224
|
+
});
|
|
225
|
+
test('HostEvent doc examples compile against TriggerData (docs and types must agree)', () => {
|
|
226
|
+
// Payloads copied verbatim from the HostEvent enum @example blocks.
|
|
227
|
+
// If one stops compiling, the docs or the contract is wrong; fix that.
|
|
228
|
+
const trigger = (_event, _data) => true;
|
|
229
|
+
const ok = [
|
|
230
|
+
trigger(HostEvent.UpdateParameters, [{ name: 'Integer Range Param', value: 10, isVisibleToUser: false }]),
|
|
231
|
+
trigger(HostEvent.UpdateParameters, [{
|
|
232
|
+
name: 'Integer Range Param',
|
|
233
|
+
value: 10,
|
|
234
|
+
applicability: { level: 'TAB', targetId: 'e0836cad-4fdf-42d4-bd97-567a6b2a6058' },
|
|
235
|
+
}]),
|
|
236
|
+
trigger(HostEvent.UpdateRuntimeFilters, [
|
|
237
|
+
{ columnName: 'state', operator: RuntimeFilterOp.EQ, values: ['michigan'] },
|
|
238
|
+
{ columnName: 'product', operator: RuntimeFilterOp.IN, values: ['shoes', 'boots'] },
|
|
239
|
+
]),
|
|
240
|
+
trigger(HostEvent.UpdateFilters, { filter: { column: 'item type', oper: 'IN', values: ['bags', 'shirts'] } }),
|
|
241
|
+
trigger(HostEvent.UpdateFilters, {
|
|
242
|
+
filter: { column: 'date', oper: 'EQ', values: ['JULY', '2023'], type: 'MONTH_YEAR' },
|
|
243
|
+
}),
|
|
244
|
+
trigger(HostEvent.OpenFilter, {
|
|
245
|
+
column: { columnId: '<column-GUID>', name: 'column name', type: 'ATTRIBUTE', dataType: 'INT64' },
|
|
246
|
+
}),
|
|
247
|
+
trigger(HostEvent.OpenFilter, { column: { columnId: '<column-GUID>' } }),
|
|
248
|
+
trigger(HostEvent.OpenParameter, { parameter: { parameterId: '<parameter-GUID>' } }),
|
|
249
|
+
trigger(HostEvent.OpenParameter, {
|
|
250
|
+
parameter: { parameterId: '<parameter-GUID>' },
|
|
251
|
+
applicability: { level: 'GROUP', targetId: '<group-GUID>' },
|
|
252
|
+
}),
|
|
253
|
+
trigger(HostEvent.UpdateFilters, {
|
|
254
|
+
filter: {
|
|
255
|
+
column: 'item type',
|
|
256
|
+
oper: 'IN',
|
|
257
|
+
values: ['bags', 'shirts'],
|
|
258
|
+
applicability: { level: 'TAB', targetId: 'e0836cad-4fdf-42d4-bd97-567a6b2a6058' },
|
|
259
|
+
},
|
|
260
|
+
}),
|
|
261
|
+
trigger(HostEvent.OpenFilter, {
|
|
262
|
+
column: { columnId: '<column-GUID>' },
|
|
263
|
+
applicability: { level: 'TAB', targetId: '<tab-GUID>' },
|
|
264
|
+
}),
|
|
265
|
+
trigger(HostEvent.Navigate, -1),
|
|
266
|
+
trigger(HostEvent.Navigate, 'home'),
|
|
267
|
+
trigger(HostEvent.Navigate, { path: 'home', replace: true }),
|
|
268
|
+
trigger(HostEvent.Search, {
|
|
269
|
+
searchQuery: '[sales] by [item type]',
|
|
270
|
+
dataSources: ['cd252e5c-b552-49a8-821d-3eadaa049cca'],
|
|
271
|
+
execute: true,
|
|
272
|
+
}),
|
|
273
|
+
trigger(HostEvent.SetActiveTab, { tabId: '730496d6-6903-4601-937e-2c691821af3c' }),
|
|
274
|
+
trigger(HostEvent.UpdateCrossFilter, {
|
|
275
|
+
vizId: 'b535c760-8bbe-4e6f-bb26-af56b4129a1e',
|
|
276
|
+
conditions: [
|
|
277
|
+
{ columnName: 'Category', values: ['mfgr#12', 'mfgr#14'] },
|
|
278
|
+
{ columnName: 'color', values: ['mint', 'hot'] },
|
|
279
|
+
],
|
|
280
|
+
}),
|
|
281
|
+
trigger(HostEvent.SpotterSearch, { query: 'revenue per year', executeSearch: true }),
|
|
282
|
+
];
|
|
283
|
+
expect(ok.every(Boolean)).toBe(true);
|
|
284
|
+
});
|
|
285
|
+
// Per-context request interfaces are documentation-only today: exported and
|
|
286
|
+
// linked from docs, but trigger() still accepts the cross-context superset.
|
|
287
|
+
test('per-context request interfaces are exported and shaped as documented', () => {
|
|
288
|
+
expectType({ column: { columnId: 'c' } });
|
|
289
|
+
expectType({ column: { columnId: 'c', dataType: 'INT64' } });
|
|
290
|
+
// The default request stays the cross-context superset.
|
|
291
|
+
expectType({});
|
|
292
|
+
});
|
|
293
|
+
test('the /contracts barrel re-exports the public runtime surface', () => {
|
|
294
|
+
// Importing the barrel executes its re-exports; assert the runtime
|
|
295
|
+
// values consumers rely on from the /contracts entry point.
|
|
296
|
+
expect(contractsBarrel.UIPassthroughEvent).toBeDefined();
|
|
297
|
+
expect(contractsBarrel.CustomActionsPosition).toBeDefined();
|
|
298
|
+
expect(contractsBarrel.CustomActionTarget).toBeDefined();
|
|
299
|
+
expect(contractsBarrel.ApplicabilityLevel).toBeDefined();
|
|
300
|
+
});
|
|
301
|
+
test('trigger data (TriggerData) autocompletes and flags unknown fields', () => {
|
|
302
|
+
// Known fields resolve (drives autocomplete + hover).
|
|
303
|
+
const valid = {
|
|
304
|
+
filters: [{ columnName: 'Region', values: ['East'] }],
|
|
305
|
+
};
|
|
306
|
+
// Omitting fields still compiles (all fields optional).
|
|
307
|
+
const empty = {};
|
|
308
|
+
// Extra fields via a variable still compile (no excess check).
|
|
309
|
+
const viaVariable = {
|
|
310
|
+
filters: [{ columnName: 'Region', values: ['East'] }],
|
|
311
|
+
someExtra: 1,
|
|
312
|
+
};
|
|
313
|
+
const loose = viaVariable;
|
|
314
|
+
// Unknown fields on an object literal are flagged — at the top level...
|
|
315
|
+
const topExtra = {
|
|
316
|
+
filters: [],
|
|
317
|
+
// @ts-expect-error — `topLevelExtra` is not on the contract
|
|
318
|
+
topLevelExtra: 1,
|
|
319
|
+
};
|
|
320
|
+
// ...and at any depth.
|
|
321
|
+
const nestedExtra = {
|
|
322
|
+
// @ts-expect-error — `legacyField` is not on the filter contract
|
|
323
|
+
filters: [{ columnName: 'Region', values: ['East'], legacyField: true }],
|
|
324
|
+
};
|
|
325
|
+
// A non-literal sharing no field is flagged (TS weak-type check).
|
|
326
|
+
const unrelated = { totallyDifferent: true };
|
|
327
|
+
// @ts-expect-error — no overlap with the UpdateFilters contract
|
|
328
|
+
const zeroOverlap = unrelated;
|
|
329
|
+
// A wrong TYPE on a known field is flagged.
|
|
330
|
+
const bad = {
|
|
331
|
+
// @ts-expect-error — values must be an array, not a number
|
|
332
|
+
filters: [{ values: 123 }],
|
|
333
|
+
};
|
|
334
|
+
// `{}` is accepted for void events (AIHighlights requires it).
|
|
335
|
+
const voidEmpty = {};
|
|
336
|
+
// Unmapped events keep a fully permissive payload.
|
|
337
|
+
const unmapped = { anything: 'goes' };
|
|
338
|
+
const all = [valid, empty, loose, topExtra, nestedExtra, zeroOverlap, bad];
|
|
339
|
+
expect([...all, voidEmpty, unmapped].every(Boolean)).toBe(true);
|
|
340
|
+
});
|
|
341
|
+
});
|
|
342
|
+
//# sourceMappingURL=contracts.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.spec.js","sourceRoot":"","sources":["../../../src/contracts/contracts.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2026
|
|
3
|
+
*
|
|
4
|
+
* Typed payload contracts for {@link EmbedEvent}s (ThoughtSpot app -> SDK).
|
|
5
|
+
*
|
|
6
|
+
* The SDK delivers embed events to `embed.on()` callbacks wrapped in the
|
|
7
|
+
* {@link MessagePayload} envelope `{ type, data, status? }`. The map below
|
|
8
|
+
* types the `data` field per event. Events absent from the map resolve to
|
|
9
|
+
* `any` until their payload is audited against what the host actually sends
|
|
10
|
+
* (codify observed behavior, not documented behavior).
|
|
11
|
+
*
|
|
12
|
+
* Same additive-only evolution rules as host-event-contracts.ts.
|
|
13
|
+
* @module contracts
|
|
14
|
+
*/
|
|
15
|
+
import type { CustomActionPayload, EmbedEvent, MessagePayload } from '../types';
|
|
16
|
+
import type { AnswerService } from '../utils/graphql/answerService/answerService';
|
|
17
|
+
/**
|
|
18
|
+
* Typed `data` field per embed event. Seed with audited events only.
|
|
19
|
+
*/
|
|
20
|
+
export interface EmbedEventDataExtension {
|
|
21
|
+
[EmbedEvent.AuthInit]: {
|
|
22
|
+
/**
|
|
23
|
+
* Whether authentication was successful.
|
|
24
|
+
*/
|
|
25
|
+
isLoggedIn?: boolean;
|
|
26
|
+
[key: string]: any;
|
|
27
|
+
};
|
|
28
|
+
[EmbedEvent.EmbedListenerReady]: Record<string, any>;
|
|
29
|
+
/**
|
|
30
|
+
* Fired when a callback-type custom action is triggered. Use
|
|
31
|
+
* `payload.data.id` to identify which action fired.
|
|
32
|
+
*/
|
|
33
|
+
[EmbedEvent.CustomAction]: CustomActionPayload;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Resolves the typed `data` payload for an embed event; `any` when the
|
|
37
|
+
* event has not been audited/typed yet.
|
|
38
|
+
*/
|
|
39
|
+
export type EmbedEventData<EmbedEventT extends EmbedEvent> = EmbedEventT extends keyof EmbedEventDataExtension ? EmbedEventDataExtension[EmbedEventT] : any;
|
|
40
|
+
/**
|
|
41
|
+
* Full envelope delivered to `embed.on()` callbacks for a given event:
|
|
42
|
+
* the wire fields (`type`, `status`) plus the typed `data`.
|
|
43
|
+
*/
|
|
44
|
+
export type EmbedEventPayload<EmbedEventT extends EmbedEvent> = Omit<MessagePayload, 'data'> & {
|
|
45
|
+
data: EmbedEventData<EmbedEventT>;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Payload delivered to `on(EmbedEvent.CustomAction)`. Beyond the wire fields,
|
|
49
|
+
* the SDK attaches an {@link AnswerService} built from the event's session and
|
|
50
|
+
* answer data (see utils/processData.ts `processCustomAction`) — annotate your
|
|
51
|
+
* callback with this type to access it:
|
|
52
|
+
*
|
|
53
|
+
* ```ts
|
|
54
|
+
* embed.on(EmbedEvent.CustomAction, (payload: CustomActionEventPayload) => {
|
|
55
|
+
* if (payload.data.id === 'my-action') {
|
|
56
|
+
* payload.answerService?.getUnderlyingDataForPoint([]);
|
|
57
|
+
* }
|
|
58
|
+
* });
|
|
59
|
+
* ```
|
|
60
|
+
*
|
|
61
|
+
* It is a dedicated type rather than folded into `on()`'s generic callback
|
|
62
|
+
* because the SDK's event registry types callbacks as the plain
|
|
63
|
+
* {@link MessagePayload}, which the enrichment cannot be intersected into
|
|
64
|
+
* without restructuring that registry.
|
|
65
|
+
*/
|
|
66
|
+
export type CustomActionEventPayload = EmbedEventPayload<EmbedEvent.CustomAction> & {
|
|
67
|
+
answerService?: AnswerService;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* String-name keyed view for the host side (addresses events by wire value).
|
|
71
|
+
*/
|
|
72
|
+
export type EmbedEventName = `${EmbedEvent}`;
|
|
73
|
+
//# sourceMappingURL=embed-event-payloads.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embed-event-payloads.d.ts","sourceRoot":"","sources":["../../../src/contracts/embed-event-payloads.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAIhF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAElF;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QACnB;;WAEG;QACH,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACtB,CAAC;IACF,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrD;;;OAGG;IACH,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC;CAClD;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,CAAC,WAAW,SAAS,UAAU,IACrD,WAAW,SAAS,MAAM,uBAAuB,GAC3C,uBAAuB,CAAC,WAAW,CAAC,GACpC,GAAG,CAAC;AAEd;;;GAGG;AACH,MAAM,MAAM,iBAAiB,CAAC,WAAW,SAAS,UAAU,IACxD,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG;IAC3B,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;CACrC,CAAC;AAEN;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,wBAAwB,GAChC,iBAAiB,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG;IAAE,aAAa,CAAC,EAAE,aAAa,CAAA;CAAE,CAAC;AAEnF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,GAAG,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embed-event-payloads.js","sourceRoot":"","sources":["../../../src/contracts/embed-event-payloads.ts"],"names":[],"mappings":""}
|