@thoughtspot/visual-embed-sdk 1.52.0 → 1.52.2-beta
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 +19 -4
- 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 +416 -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/embed/app.d.ts +21 -143
- package/cjs/src/embed/app.d.ts.map +1 -1
- package/cjs/src/embed/app.js +21 -121
- package/cjs/src/embed/app.js.map +1 -1
- package/cjs/src/embed/app.spec.js +80 -26
- package/cjs/src/embed/app.spec.js.map +1 -1
- package/cjs/src/embed/auto-frame-renderer.js +1 -1
- package/cjs/src/embed/auto-frame-renderer.js.map +1 -1
- package/cjs/src/embed/auto-frame-renderer.spec.js +24 -13
- package/cjs/src/embed/auto-frame-renderer.spec.js.map +1 -1
- package/cjs/src/embed/bodyless-conversation.js +1 -1
- package/cjs/src/embed/bodyless-conversation.js.map +1 -1
- package/cjs/src/embed/conversation.d.ts +1 -0
- package/cjs/src/embed/conversation.d.ts.map +1 -1
- package/cjs/src/embed/conversation.js +4 -4
- package/cjs/src/embed/conversation.js.map +1 -1
- package/cjs/src/embed/conversation.spec.js +35 -24
- package/cjs/src/embed/conversation.spec.js.map +1 -1
- package/cjs/src/embed/embedConfig.spec.js +2 -1
- package/cjs/src/embed/embedConfig.spec.js.map +1 -1
- 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 +5 -4
- package/cjs/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
- package/cjs/src/embed/hostEventClient/host-event-client.js +34 -23
- package/cjs/src/embed/hostEventClient/host-event-client.js.map +1 -1
- package/cjs/src/embed/hostEventClient/host-event-client.spec.js +50 -44
- package/cjs/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
- package/cjs/src/embed/hostEventClient/utils.d.ts +10 -1
- package/cjs/src/embed/hostEventClient/utils.d.ts.map +1 -1
- package/cjs/src/embed/hostEventClient/utils.js +52 -6
- package/cjs/src/embed/hostEventClient/utils.js.map +1 -1
- package/cjs/src/embed/hostEventClient/utils.spec.js +151 -0
- package/cjs/src/embed/hostEventClient/utils.spec.js.map +1 -1
- package/cjs/src/embed/liveboard.d.ts +13 -164
- package/cjs/src/embed/liveboard.d.ts.map +1 -1
- package/cjs/src/embed/liveboard.js +72 -135
- package/cjs/src/embed/liveboard.js.map +1 -1
- package/cjs/src/embed/liveboard.spec.js +213 -29
- package/cjs/src/embed/liveboard.spec.js.map +1 -1
- package/cjs/src/embed/search-bar.js +1 -1
- package/cjs/src/embed/search-bar.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 +5 -2
- package/cjs/src/embed/search.js.map +1 -1
- package/cjs/src/embed/search.spec.js +85 -0
- package/cjs/src/embed/search.spec.js.map +1 -1
- package/cjs/src/embed/spotter-utils.d.ts +8 -1
- package/cjs/src/embed/spotter-utils.d.ts.map +1 -1
- package/cjs/src/embed/spotter-utils.js +14 -1
- package/cjs/src/embed/spotter-utils.js.map +1 -1
- package/cjs/src/embed/spotter-utils.spec.js +26 -0
- package/cjs/src/embed/spotter-utils.spec.js.map +1 -1
- package/cjs/src/embed/ts-embed.d.ts +20 -22
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +171 -66
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +486 -38
- package/cjs/src/embed/ts-embed.spec.js.map +1 -1
- package/cjs/src/errors.js +1 -1
- package/cjs/src/errors.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 +5 -3
- package/cjs/src/index.d.ts.map +1 -1
- package/cjs/src/index.js +6 -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/types.d.ts +584 -24
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +370 -22
- package/cjs/src/types.js.map +1 -1
- package/cjs/src/utils/authService/tokenizedAuthService.spec.js +2 -1
- package/cjs/src/utils/authService/tokenizedAuthService.spec.js.map +1 -1
- package/cjs/src/utils/custom-actions.spec.js +4 -2
- package/cjs/src/utils/custom-actions.spec.js.map +1 -1
- package/cjs/src/utils/filterConverter.d.ts +106 -0
- package/cjs/src/utils/filterConverter.d.ts.map +1 -0
- package/cjs/src/utils/filterConverter.js +215 -0
- package/cjs/src/utils/filterConverter.js.map +1 -0
- package/cjs/src/utils/filterConverter.spec.d.ts +2 -0
- package/cjs/src/utils/filterConverter.spec.d.ts.map +1 -0
- package/cjs/src/utils/filterConverter.spec.js +709 -0
- package/cjs/src/utils/filterConverter.spec.js.map +1 -0
- package/cjs/src/utils/processData.spec.js +2 -1
- package/cjs/src/utils/processData.spec.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-BMppCU63.js → index-CcBYlGo9.js} +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 +416 -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/embed/app.d.ts +21 -143
- package/dist/src/embed/app.d.ts.map +1 -1
- package/dist/src/embed/conversation.d.ts +1 -0
- package/dist/src/embed/conversation.d.ts.map +1 -1
- package/dist/src/embed/hostEventClient/host-event-client.d.ts +5 -4
- package/dist/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
- package/dist/src/embed/hostEventClient/utils.d.ts +10 -1
- package/dist/src/embed/hostEventClient/utils.d.ts.map +1 -1
- package/dist/src/embed/liveboard.d.ts +13 -164
- 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/spotter-utils.d.ts +8 -1
- package/dist/src/embed/spotter-utils.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.d.ts +20 -22
- package/dist/src/embed/ts-embed.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 +5 -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/types.d.ts +584 -24
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/filterConverter.d.ts +106 -0
- package/dist/src/utils/filterConverter.d.ts.map +1 -0
- package/dist/src/utils/filterConverter.spec.d.ts +2 -0
- package/dist/src/utils/filterConverter.spec.d.ts.map +1 -0
- 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 +1144 -412
- package/dist/tsembed-react.js +1143 -411
- package/dist/tsembed.es.js +1357 -418
- package/dist/tsembed.js +1352 -412
- package/dist/visual-embed-sdk-react-full.d.ts +1514 -651
- package/dist/visual-embed-sdk-react.d.ts +1351 -632
- package/dist/visual-embed-sdk.d.ts +1508 -668
- package/lib/package.json +19 -4
- 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 +416 -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/embed/app.d.ts +21 -143
- package/lib/src/embed/app.d.ts.map +1 -1
- package/lib/src/embed/app.js +23 -123
- package/lib/src/embed/app.js.map +1 -1
- package/lib/src/embed/app.spec.js +80 -26
- package/lib/src/embed/app.spec.js.map +1 -1
- package/lib/src/embed/auto-frame-renderer.js +1 -1
- package/lib/src/embed/auto-frame-renderer.js.map +1 -1
- package/lib/src/embed/auto-frame-renderer.spec.js +24 -13
- package/lib/src/embed/auto-frame-renderer.spec.js.map +1 -1
- package/lib/src/embed/bodyless-conversation.js +1 -1
- package/lib/src/embed/bodyless-conversation.js.map +1 -1
- package/lib/src/embed/conversation.d.ts +1 -0
- package/lib/src/embed/conversation.d.ts.map +1 -1
- package/lib/src/embed/conversation.js +5 -5
- package/lib/src/embed/conversation.js.map +1 -1
- package/lib/src/embed/conversation.spec.js +35 -24
- package/lib/src/embed/conversation.spec.js.map +1 -1
- package/lib/src/embed/embedConfig.spec.js +2 -1
- package/lib/src/embed/embedConfig.spec.js.map +1 -1
- 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 +5 -4
- package/lib/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
- package/lib/src/embed/hostEventClient/host-event-client.js +19 -8
- package/lib/src/embed/hostEventClient/host-event-client.js.map +1 -1
- package/lib/src/embed/hostEventClient/host-event-client.spec.js +15 -9
- package/lib/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
- package/lib/src/embed/hostEventClient/utils.d.ts +10 -1
- package/lib/src/embed/hostEventClient/utils.d.ts.map +1 -1
- package/lib/src/embed/hostEventClient/utils.js +48 -3
- package/lib/src/embed/hostEventClient/utils.js.map +1 -1
- package/lib/src/embed/hostEventClient/utils.spec.js +152 -1
- package/lib/src/embed/hostEventClient/utils.spec.js.map +1 -1
- package/lib/src/embed/liveboard.d.ts +13 -164
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +73 -136
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +213 -29
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/embed/search-bar.js +1 -1
- package/lib/src/embed/search-bar.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 +5 -2
- package/lib/src/embed/search.js.map +1 -1
- package/lib/src/embed/search.spec.js +85 -0
- package/lib/src/embed/search.spec.js.map +1 -1
- package/lib/src/embed/spotter-utils.d.ts +8 -1
- package/lib/src/embed/spotter-utils.d.ts.map +1 -1
- package/lib/src/embed/spotter-utils.js +12 -0
- package/lib/src/embed/spotter-utils.js.map +1 -1
- package/lib/src/embed/spotter-utils.spec.js +27 -1
- package/lib/src/embed/spotter-utils.spec.js.map +1 -1
- package/lib/src/embed/ts-embed.d.ts +20 -22
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +171 -66
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +484 -36
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/errors.js +1 -1
- package/lib/src/errors.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 +5 -3
- package/lib/src/index.d.ts.map +1 -1
- package/lib/src/index.js +3 -2
- 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/types.d.ts +584 -24
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +370 -22
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/authService/tokenizedAuthService.spec.js +2 -1
- package/lib/src/utils/authService/tokenizedAuthService.spec.js.map +1 -1
- package/lib/src/utils/custom-actions.spec.js +4 -2
- package/lib/src/utils/custom-actions.spec.js.map +1 -1
- package/lib/src/utils/filterConverter.d.ts +106 -0
- package/lib/src/utils/filterConverter.d.ts.map +1 -0
- package/lib/src/utils/filterConverter.js +210 -0
- package/lib/src/utils/filterConverter.js.map +1 -0
- package/lib/src/utils/filterConverter.spec.d.ts +2 -0
- package/lib/src/utils/filterConverter.spec.d.ts.map +1 -0
- package/lib/src/utils/filterConverter.spec.js +707 -0
- package/lib/src/utils/filterConverter.spec.js.map +1 -0
- package/lib/src/utils/processData.spec.js +2 -1
- package/lib/src/utils/processData.spec.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 +1508 -668
- package/package.json +19 -4
- package/src/contracts/contracts.spec.ts +392 -0
- package/src/contracts/embed-event-payloads.ts +83 -0
- package/src/contracts/host-event-contracts.ts +500 -0
- package/src/contracts/index.ts +53 -0
- package/src/contracts/ui-passthrough-contracts.ts +301 -0
- package/src/embed/app.spec.ts +101 -34
- package/src/embed/app.ts +42 -268
- package/src/embed/auto-frame-renderer.spec.ts +24 -13
- package/src/embed/auto-frame-renderer.ts +1 -1
- package/src/embed/bodyless-conversation.ts +1 -1
- package/src/embed/conversation.spec.ts +38 -27
- package/src/embed/conversation.ts +5 -5
- package/src/embed/embedConfig.spec.ts +2 -1
- package/src/embed/events.spec.ts +14 -2
- package/src/embed/hostEventClient/host-event-client.spec.ts +16 -10
- package/src/embed/hostEventClient/host-event-client.ts +31 -10
- package/src/embed/hostEventClient/utils.spec.ts +176 -1
- package/src/embed/hostEventClient/utils.ts +53 -3
- package/src/embed/liveboard.spec.ts +261 -41
- package/src/embed/liveboard.ts +85 -300
- package/src/embed/search-bar.tsx +1 -1
- package/src/embed/search.spec.ts +103 -0
- package/src/embed/search.ts +21 -1
- package/src/embed/spotter-utils.spec.ts +29 -0
- package/src/embed/spotter-utils.ts +16 -0
- package/src/embed/ts-embed.spec.ts +650 -36
- package/src/embed/ts-embed.ts +205 -76
- package/src/errors.ts +1 -1
- package/src/full-height.spec.ts +1008 -0
- package/src/full-height.ts +361 -0
- package/src/index.ts +103 -5
- package/src/react/all-types-export.parity.spec.ts +63 -3
- package/src/react/all-types-export.ts +49 -0
- package/src/types.ts +584 -22
- package/src/utils/authService/tokenizedAuthService.spec.ts +2 -1
- package/src/utils/custom-actions.spec.ts +4 -2
- package/src/utils/filterConverter.spec.ts +801 -0
- package/src/utils/filterConverter.ts +304 -0
- package/src/utils/processData.spec.ts +2 -1
- 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.52.
|
|
3
|
+
"version": "1.52.2-beta",
|
|
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
|
},
|
|
@@ -44,7 +52,8 @@
|
|
|
44
52
|
"scripts": {
|
|
45
53
|
"lint": "eslint 'src/**'",
|
|
46
54
|
"lint:fix": "eslint 'src/**/*.*' --fix",
|
|
47
|
-
"tsc": "tsc -p tsconfig.build.json --incremental false
|
|
55
|
+
"tsc": "tsc -p tsconfig.build.json --incremental false && tsc -p tsconfig.build.json --incremental false --module commonjs --outDir cjs",
|
|
56
|
+
"tsc:check": "tsc -p tsconfig.build.json --incremental false --noEmit",
|
|
48
57
|
"bundle-dts-file": "dts-bundle-generator --config ./dts-config/dts-bundle-file.config.js && node dts-config/wrap-ambient-module.mjs",
|
|
49
58
|
"bundle-dts": "dts-bundle-generator --config ./dts-config/dts-bundle.config.js",
|
|
50
59
|
"bundle-dts-react": "dts-bundle-generator --config ./dts-config/dts-bundle-react.config.js",
|
|
@@ -56,11 +65,15 @@
|
|
|
56
65
|
"test": "npm run test-sdk",
|
|
57
66
|
"posttest": "cat ./coverage/sdk/lcov.info | npx coveralls-next || echo 'Warning: Coveralls upload failed but not breaking the build.'",
|
|
58
67
|
"is-publish-allowed": "node scripts/is-publish-allowed.js",
|
|
59
|
-
"prepublishOnly": "npm run is-publish-allowed && npm run
|
|
68
|
+
"prepublishOnly": "npm run is-publish-allowed && npm run tsc && npm run bundle-dts-file && npm run bundle-dts && npm run bundle-dts-react && npm run bundle-dts-react-full && npm run build",
|
|
60
69
|
"check-size": "npm run build && size-limit",
|
|
61
70
|
"publish-dev": "npm publish --tag dev",
|
|
62
71
|
"publish-prod": "npm publish --tag latest",
|
|
63
|
-
"dev": "vite -c vite.local.config.ts"
|
|
72
|
+
"dev": "vite -c vite.local.config.ts",
|
|
73
|
+
"prepare": "husky"
|
|
74
|
+
},
|
|
75
|
+
"lint-staged": {
|
|
76
|
+
"src/**/*.{ts,tsx,js,jsx}": "eslint --fix"
|
|
64
77
|
},
|
|
65
78
|
"peerDependencies": {
|
|
66
79
|
"react": "> 16.8.0",
|
|
@@ -115,11 +128,13 @@
|
|
|
115
128
|
"globals": "^16.0.0",
|
|
116
129
|
"highlight.js": "^10.6.0",
|
|
117
130
|
"html-to-text": "^8.0.0",
|
|
131
|
+
"husky": "^9.1.7",
|
|
118
132
|
"identity-obj-proxy": "^3.0.0",
|
|
119
133
|
"istanbul-merge": "^2.0.0",
|
|
120
134
|
"jest": "^30.2.0",
|
|
121
135
|
"jest-environment-jsdom": "^29.7.0",
|
|
122
136
|
"jest-fetch-mock": "^3.0.3",
|
|
137
|
+
"lint-staged": "^17.5.1",
|
|
123
138
|
"prettier": "3.8.1",
|
|
124
139
|
"react": "^16.14.0",
|
|
125
140
|
"react-dom": "^16.14.0",
|
|
@@ -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":""}
|