@looker/extension-sdk 23.16.0 → 23.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +0 -1
  3. package/lib/connect/connect_extension_host.js.map +1 -1
  4. package/lib/connect/extension_host_api.js.map +1 -1
  5. package/lib/connect/fetch_proxy.js.map +1 -1
  6. package/lib/connect/global_listener.js.map +1 -1
  7. package/lib/connect/tile/tile_sdk.js.map +1 -1
  8. package/lib/connect/types.d.ts +0 -1
  9. package/lib/connect/types.js +0 -1
  10. package/lib/connect/types.js.map +1 -1
  11. package/lib/connect/visualization/types.d.ts +28 -1
  12. package/lib/connect/visualization/types.js.map +1 -1
  13. package/lib/connect/visualization/visualization_sdk.d.ts +3 -2
  14. package/lib/connect/visualization/visualization_sdk.js +9 -3
  15. package/lib/connect/visualization/visualization_sdk.js.map +1 -1
  16. package/lib/esm/connect/connect_extension_host.js +8 -15
  17. package/lib/esm/connect/connect_extension_host.js.map +1 -1
  18. package/lib/esm/connect/extension_host_api.js +49 -58
  19. package/lib/esm/connect/extension_host_api.js.map +1 -1
  20. package/lib/esm/connect/fetch_proxy.js +3 -11
  21. package/lib/esm/connect/fetch_proxy.js.map +1 -1
  22. package/lib/esm/connect/global_listener.js +5 -13
  23. package/lib/esm/connect/global_listener.js.map +1 -1
  24. package/lib/esm/connect/index.js +5 -63
  25. package/lib/esm/connect/index.js.map +1 -1
  26. package/lib/esm/connect/tile/index.js +1 -16
  27. package/lib/esm/connect/tile/index.js.map +1 -1
  28. package/lib/esm/connect/tile/tile_sdk.js +23 -30
  29. package/lib/esm/connect/tile/tile_sdk.js.map +1 -1
  30. package/lib/esm/connect/tile/types.js +1 -8
  31. package/lib/esm/connect/tile/types.js.map +1 -1
  32. package/lib/esm/connect/types.js +6 -19
  33. package/lib/esm/connect/types.js.map +1 -1
  34. package/lib/esm/connect/visualization/index.js +2 -27
  35. package/lib/esm/connect/visualization/index.js.map +1 -1
  36. package/lib/esm/connect/visualization/types.js.map +1 -1
  37. package/lib/esm/connect/visualization/visualization_sdk.js +14 -15
  38. package/lib/esm/connect/visualization/visualization_sdk.js.map +1 -1
  39. package/lib/esm/index.js +9 -115
  40. package/lib/esm/index.js.map +1 -1
  41. package/lib/esm/sdk/extension_sdk.js +6 -16
  42. package/lib/esm/sdk/extension_sdk.js.map +1 -1
  43. package/lib/esm/sdk/extension_sdk_40.js +5 -12
  44. package/lib/esm/sdk/extension_sdk_40.js.map +1 -1
  45. package/lib/esm/sdk/index.js +1 -16
  46. package/lib/esm/sdk/index.js.map +1 -1
  47. package/lib/esm/sdk/sdk_connection.js +1 -8
  48. package/lib/esm/sdk/sdk_connection.js.map +1 -1
  49. package/lib/esm/util/errors.js +1 -8
  50. package/lib/esm/util/errors.js.map +1 -1
  51. package/lib/esm/util/index.js +2 -27
  52. package/lib/esm/util/index.js.map +1 -1
  53. package/lib/esm/util/logger.js +2 -10
  54. package/lib/esm/util/logger.js.map +1 -1
  55. package/lib/index.d.ts +0 -1
  56. package/lib/index.js +1 -12
  57. package/lib/index.js.map +1 -1
  58. package/lib/sdk/extension_sdk.d.ts +2 -3
  59. package/lib/sdk/extension_sdk.js +1 -4
  60. package/lib/sdk/extension_sdk.js.map +1 -1
  61. package/lib/sdk/extension_sdk_40.js.map +1 -1
  62. package/lib/sdk/sdk_connection.js.map +1 -1
  63. package/lib/util/errors.js.map +1 -1
  64. package/package.json +3 -3
  65. package/lib/esm/sdk/extension_sdk_31.js +0 -16
  66. package/lib/esm/sdk/extension_sdk_31.js.map +0 -1
  67. package/lib/sdk/extension_sdk_31.d.ts +0 -5
  68. package/lib/sdk/extension_sdk_31.js +0 -16
  69. package/lib/sdk/extension_sdk_31.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"extension_host_api.js","names":["_intersects","_interopRequireDefault","require","_util","_visualization_sdk","_tile_sdk","_fetch_proxy","_types","obj","__esModule","default","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","_defineProperty","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","res","call","TypeError","Number","EXTENSION_SDK_VERSION","exports","ExtensionHostApiImpl","constructor","configuration","_configuration","chattyHost","setInitialRoute","hostChangedRoute","visualizationDataReceivedCallback","tileHostDataChangedCallback","isDashboardMountSupported","_this$_lookerHostData","_this$lookerHostData","_this$lookerHostData2","_this$lookerHostData3","_lookerHostData","extensionDashboardTileEnabled","lookerHostData","mountPoint","MountPoint","dashboardTile","dashboardVisualization","dashboardTilePopup","visualizationSDK","_visualizationSDK","VisualizationSDKImpl","tileSDK","_tileSDK","TileSDKImpl","handleNotification","message","type","ExtensionNotificationType","ROUTE_CHANGED","payload","route","routeState","VISUALIZATION_DATA","updateVisData","TILE_HOST_DATA","tileHostDataChanged","INITIALIZE","standalone","contextData","errorMessage","requiredLookerVersion","lookerVersion","verifyLookerVersion","logError","extensionSdkVersion","Error","concat","createSecretKeyTag","keyName","match","extensionId","replace","verifyHostConnection","_this","sendAndReceive","ExtensionRequestType","VERIFY_HOST","invokeCoreSdk","httpMethod","path","params","body","authenticator","options","apiVersion","_this2","INVOKE_CORE_SDK","invokeCoreSdkRaw","_this3","RAW_INVOKE_CORE_SDK","updateTitle","title","send","UPDATE_TITLE","updateLocation","url","state","target","UPDATE_LOCATION","spartanLogout","SPARTAN_LOGOUT","openBrowserWindow","closeHostPopovers","CLOSE_HOST_POPOVERS","clientRouteChanged","localStorageSetItem","name","_arguments","_this4","length","LOCAL_STORAGE","localStorageGetItem","_this5","localStorageRemoveItem","_this6","clipboardWrite","_this7","CLIPBOARD","userAttributeSetItem","_arguments2","_this8","USER_ATTRIBUTE","userAttributeGetItem","_this9","userAttributeResetItem","_this10","getContextData","JSON","parse","saveContextData","context","_this11","stringify","CONTEXT_DATA","refreshContextData","_this12","track","trackAction","attributes","TRACK_ACTION","errorEvent","filename","lineno","colno","ERROR_EVENT","toString","unloaded","EXTENSION_UNLOADED","createFetchProxy","baseUrl","init","responseBodyType","FetchProxyImpl","fetchProxy","resource","_this13","INVOKE_EXTERNAL_API","serverProxy","_this14","oauth2Authenticate","authEndpoint","authParameters","_arguments3","_this15","validateAuthParameters","signal","AbortController","oauth2ExchangeCodeForToken","_this16","rendered","failureMessage","RENDERED","_this17","messagePayload","chattyPayload","ExtensionEvent","EXTENSION_API_REQUEST","values","version","intersects","client_id","redirect_uri","response_type"],"sources":["../../../src/connect/extension_host_api.ts"],"sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport type { ChattyHostConnection, Options } from '@looker/chatty'\nimport intersects from 'semver/ranges/intersects'\nimport { logError } from '../util'\nimport type {\n VisualizationDataReceivedCallback,\n VisualizationSDK,\n} from './visualization'\nimport { VisualizationSDKImpl } from './visualization/visualization_sdk'\nimport type { TileHostDataChangedCallback, TileSDK } from './tile'\nimport { TileSDKImpl } from './tile/tile_sdk'\nimport { FetchProxyImpl } from './fetch_proxy'\nimport type {\n ExtensionInitializationResponse,\n ExtensionHostApi,\n ExtensionHostApiConfiguration,\n ExtensionNotification,\n FetchCustomParameters,\n FetchResponseBodyType,\n LookerHostData,\n ApiVersion,\n} from './types'\nimport {\n ExtensionEvent,\n ExtensionNotificationType,\n ExtensionRequestType,\n MountPoint,\n} from './types'\n\nexport const EXTENSION_SDK_VERSION = '0.10.5'\n\nexport class ExtensionHostApiImpl implements ExtensionHostApi {\n private _configuration: ExtensionHostApiConfiguration\n private _lookerHostData?: Readonly<LookerHostData>\n private chattyHost: ChattyHostConnection\n private setInitialRoute?: (route: string, routeState?: any) => void\n private hostChangedRoute?: (route: string, routeState?: any) => void\n private visualizationDataReceivedCallback?: VisualizationDataReceivedCallback\n private tileHostDataChangedCallback?: TileHostDataChangedCallback\n private _visualizationSDK?: VisualizationSDK\n private _tileSDK?: TileSDK\n\n private contextData?: string\n\n constructor(configuration: ExtensionHostApiConfiguration) {\n this._configuration = configuration\n const {\n chattyHost,\n setInitialRoute,\n hostChangedRoute,\n visualizationDataReceivedCallback,\n tileHostDataChangedCallback,\n } = this._configuration\n this.chattyHost = chattyHost\n this.setInitialRoute = setInitialRoute\n this.hostChangedRoute = hostChangedRoute\n this.visualizationDataReceivedCallback = visualizationDataReceivedCallback\n this.tileHostDataChangedCallback = tileHostDataChangedCallback\n }\n\n get isDashboardMountSupported(): boolean {\n return (\n !!this._lookerHostData?.extensionDashboardTileEnabled &&\n (this.lookerHostData?.mountPoint === MountPoint.dashboardTile ||\n this.lookerHostData?.mountPoint === MountPoint.dashboardVisualization ||\n this.lookerHostData?.mountPoint === MountPoint.dashboardTilePopup)\n )\n }\n\n get visualizationSDK(): VisualizationSDK {\n if (!this._visualizationSDK) {\n this._visualizationSDK = new VisualizationSDKImpl(this)\n }\n return this._visualizationSDK\n }\n\n get tileSDK(): TileSDK {\n if (!this._tileSDK) {\n this._tileSDK = new TileSDKImpl(this)\n }\n return this._tileSDK\n }\n\n get lookerHostData() {\n return this._lookerHostData\n }\n\n handleNotification(\n message: ExtensionNotification\n ): ExtensionInitializationResponse | undefined {\n const { type } = message\n switch (type) {\n case ExtensionNotificationType.ROUTE_CHANGED: {\n const { payload } = message\n if (this.hostChangedRoute && payload) {\n const { route, routeState } = payload\n if (route) {\n this.hostChangedRoute(route, routeState)\n }\n }\n return undefined\n }\n case ExtensionNotificationType.VISUALIZATION_DATA: {\n const { payload } = message\n this.visualizationSDK.updateVisData(payload)\n if (this.visualizationDataReceivedCallback) {\n this.visualizationDataReceivedCallback(payload)\n }\n return undefined\n }\n case ExtensionNotificationType.TILE_HOST_DATA: {\n const { payload } = message\n this.tileSDK.tileHostDataChanged(payload)\n if (this.tileHostDataChangedCallback) {\n this.tileHostDataChangedCallback(payload)\n }\n return undefined\n }\n case ExtensionNotificationType.INITIALIZE: {\n const { payload } = message\n const lookerHostData = payload || {}\n if (!lookerHostData.mountPoint) {\n lookerHostData.mountPoint = MountPoint.standalone\n }\n this._lookerHostData = lookerHostData\n this.contextData = lookerHostData.contextData\n let errorMessage\n if (\n this._configuration.requiredLookerVersion &&\n lookerHostData.lookerVersion\n ) {\n errorMessage = this.verifyLookerVersion(\n this._configuration.requiredLookerVersion\n )\n if (errorMessage) {\n logError(errorMessage)\n }\n }\n if (this.setInitialRoute && payload) {\n const { route, routeState } = payload\n if (route) {\n this.setInitialRoute(route, routeState)\n }\n }\n return {\n extensionSdkVersion: EXTENSION_SDK_VERSION,\n errorMessage,\n }\n }\n default:\n logError('Unrecognized extension notification', message)\n throw new Error(`Unrecognized extension notification type ${type}`)\n }\n }\n\n createSecretKeyTag(keyName: string): string {\n const errorMessage = this.verifyLookerVersion('>=7.11')\n if (errorMessage) {\n throw new Error(errorMessage)\n }\n if (!keyName.match(/^[A-Za-z0-9_.]+$/)) {\n throw new Error('Unsupported characters in key name')\n }\n return `{{${(this._lookerHostData as LookerHostData).extensionId.replace(\n /::|-/g,\n '_'\n )}_${keyName}}}`\n }\n\n async verifyHostConnection() {\n return this.sendAndReceive(ExtensionRequestType.VERIFY_HOST)\n }\n\n async invokeCoreSdk(\n httpMethod: string,\n path: string,\n params?: any,\n body?: any,\n authenticator?: any,\n options?: any,\n apiVersion?: ApiVersion\n ): Promise<any> {\n return this.sendAndReceive(ExtensionRequestType.INVOKE_CORE_SDK, {\n httpMethod,\n path,\n params,\n body,\n authenticator,\n options,\n apiVersion,\n })\n }\n\n async invokeCoreSdkRaw(\n httpMethod: string,\n path: string,\n params?: any,\n body?: any,\n apiVersion?: ApiVersion\n ): Promise<any> {\n return this.sendAndReceive(ExtensionRequestType.RAW_INVOKE_CORE_SDK, {\n httpMethod,\n path,\n params,\n body,\n apiVersion,\n })\n }\n\n updateTitle(title: string) {\n this.send(ExtensionRequestType.UPDATE_TITLE, { title })\n }\n\n updateLocation(url: string, state?: any, target?: string) {\n this.send(ExtensionRequestType.UPDATE_LOCATION, { url, state, target })\n }\n\n spartanLogout() {\n this.send(ExtensionRequestType.SPARTAN_LOGOUT)\n }\n\n openBrowserWindow(url: string, target?: string) {\n this.send(ExtensionRequestType.UPDATE_LOCATION, {\n url,\n undefined,\n target: target || '_blank',\n })\n }\n\n closeHostPopovers() {\n this.send(ExtensionRequestType.CLOSE_HOST_POPOVERS)\n }\n\n clientRouteChanged(route: string, routeState?: any) {\n this.send(ExtensionRequestType.ROUTE_CHANGED, {\n route,\n routeState,\n })\n }\n\n async localStorageSetItem(name: string, value = ''): Promise<boolean> {\n if (this._lookerHostData && !this._lookerHostData.lookerVersion) {\n return Promise.reject(\n new Error(\n 'localStorageSetItem not supported by the current Looker host'\n )\n )\n }\n return this.sendAndReceive(ExtensionRequestType.LOCAL_STORAGE, {\n type: 'set',\n name,\n value,\n })\n }\n\n async localStorageGetItem(name: string): Promise<string | null> {\n if (this._lookerHostData && !this._lookerHostData.lookerVersion) {\n return Promise.reject(\n new Error(\n 'localStorageGetItem not supported by the current Looker host'\n )\n )\n }\n return this.sendAndReceive(ExtensionRequestType.LOCAL_STORAGE, {\n type: 'get',\n name,\n })\n }\n\n async localStorageRemoveItem(name: string): Promise<boolean> {\n if (this._lookerHostData && !this._lookerHostData.lookerVersion) {\n return Promise.reject(\n new Error(\n 'localStorageRemoveItem not supported by the current Looker host'\n )\n )\n }\n return this.sendAndReceive(ExtensionRequestType.LOCAL_STORAGE, {\n type: 'remove',\n name,\n })\n }\n\n async clipboardWrite(value: string): Promise<void> {\n const errorMessage = this.verifyLookerVersion('>=21.7')\n if (errorMessage) {\n return Promise.reject(new Error(errorMessage))\n }\n return this.sendAndReceive(ExtensionRequestType.CLIPBOARD, {\n type: 'write',\n value,\n })\n }\n\n async userAttributeSetItem(name: string, value = ''): Promise<boolean> {\n // User attributes added in Looker version 7.13, updated in 7.15\n const errorMessage = this.verifyLookerVersion('>=7.15')\n if (errorMessage) {\n return Promise.reject(new Error(errorMessage))\n }\n return this.sendAndReceive(ExtensionRequestType.USER_ATTRIBUTE, {\n type: 'set',\n name,\n value,\n })\n }\n\n async userAttributeGetItem(name: string): Promise<string | null> {\n // User attributes added in Looker version 7.13, updated in 7.15\n const errorMessage = this.verifyLookerVersion('>=7.15')\n if (errorMessage) {\n return Promise.reject(new Error(errorMessage))\n }\n return this.sendAndReceive(ExtensionRequestType.USER_ATTRIBUTE, {\n type: 'get',\n name,\n })\n }\n\n async userAttributeResetItem(name: string): Promise<void> {\n // User attributes added in Looker version 7.13, updated in 7.15\n const errorMessage = this.verifyLookerVersion('>=7.15')\n if (errorMessage) {\n return Promise.reject(new Error(errorMessage))\n }\n return this.sendAndReceive(ExtensionRequestType.USER_ATTRIBUTE, {\n type: 'reset',\n name,\n })\n }\n\n getContextData() {\n const errorMessage = this.verifyLookerVersion('>=7.13')\n if (errorMessage) {\n throw new Error(errorMessage)\n }\n if (this.contextData) {\n return JSON.parse(this.contextData)\n } else {\n return undefined\n }\n }\n\n async saveContextData(context: any): Promise<any> {\n const errorMessage = this.verifyLookerVersion('>=7.13')\n if (errorMessage) {\n return Promise.reject(new Error(errorMessage))\n }\n let contextData: string | undefined\n if (context) {\n try {\n contextData = JSON.stringify(context)\n } catch (err) {\n return Promise.reject(new Error('context cannot be serialized'))\n }\n } else {\n contextData = undefined\n }\n await this.sendAndReceive(ExtensionRequestType.CONTEXT_DATA, {\n type: 'save',\n contextData,\n })\n return this.getContextData()\n }\n\n async refreshContextData(): Promise<any> {\n const errorMessage = this.verifyLookerVersion('>=7.13')\n if (errorMessage) {\n return Promise.reject(new Error(errorMessage))\n }\n this.contextData = await this.sendAndReceive(\n ExtensionRequestType.CONTEXT_DATA,\n {\n type: 'refresh',\n }\n )\n return this.getContextData()\n }\n\n track(name: string, trackAction: string, attributes?: Record<string, any>) {\n this.send(ExtensionRequestType.TRACK_ACTION, {\n name,\n trackAction,\n attributes,\n })\n }\n\n error(errorEvent: ErrorEvent) {\n if (this._lookerHostData) {\n const { message, filename, lineno, colno, error } = errorEvent || {}\n this.send(ExtensionRequestType.ERROR_EVENT, {\n message,\n filename,\n lineno,\n colno,\n error: error && error.toString ? error.toString() : error,\n })\n } else {\n logError(\n 'Unhandled error but Looker host connection not established',\n errorEvent\n )\n }\n }\n\n unloaded() {\n this.send(ExtensionRequestType.EXTENSION_UNLOADED, {})\n }\n\n createFetchProxy(\n baseUrl?: string,\n init?: FetchCustomParameters,\n responseBodyType?: FetchResponseBodyType\n ) {\n return new FetchProxyImpl(this, baseUrl, init, responseBodyType)\n }\n\n async fetchProxy(\n resource: string,\n init?: FetchCustomParameters,\n responseBodyType?: FetchResponseBodyType\n ) {\n // Fetch proxy support added to Looker 7.9\n const errorMessage = this.verifyLookerVersion('>=7.9')\n if (errorMessage) {\n return Promise.reject(new Error(errorMessage))\n }\n return this.sendAndReceive(ExtensionRequestType.INVOKE_EXTERNAL_API, {\n type: 'fetch',\n payload: {\n resource,\n init,\n responseBodyType,\n },\n })\n }\n\n async serverProxy(\n resource: string,\n init?: FetchCustomParameters,\n responseBodyType?: FetchResponseBodyType\n ) {\n // Server proxy support added to Looker 7.11\n const errorMessage = this.verifyLookerVersion('>=7.11')\n if (errorMessage) {\n return Promise.reject(new Error(errorMessage))\n }\n return this.sendAndReceive(ExtensionRequestType.INVOKE_EXTERNAL_API, {\n type: 'server-proxy',\n payload: {\n resource,\n init,\n responseBodyType,\n },\n })\n }\n\n async oauth2Authenticate(\n authEndpoint: string,\n authParameters: Record<string, string>,\n httpMethod = 'POST'\n ) {\n // oauth2Authenticate proxy support added to Looker 7.9\n let errorMessage = this.verifyLookerVersion('>=7.9')\n if (errorMessage) {\n return Promise.reject(new Error(errorMessage))\n }\n errorMessage = this.validateAuthParameters(authParameters)\n if (errorMessage) {\n return Promise.reject(new Error(errorMessage))\n }\n return this.sendAndReceive(\n ExtensionRequestType.INVOKE_EXTERNAL_API,\n {\n type: 'oauth2_authenticate',\n payload: {\n authEndpoint,\n authParameters,\n httpMethod,\n },\n },\n // Adding the signal disables the default timeout\n { signal: new AbortController().signal }\n )\n }\n\n async oauth2ExchangeCodeForToken(\n authEndpoint: string,\n authParameters: Record<string, string>\n ) {\n const errorMessage = this.verifyLookerVersion('>=7.11')\n if (errorMessage) {\n return Promise.reject(new Error(errorMessage))\n }\n return this.sendAndReceive(ExtensionRequestType.INVOKE_EXTERNAL_API, {\n type: 'oauth2_exchange_code',\n payload: {\n authEndpoint,\n authParameters,\n },\n })\n }\n\n rendered(failureMessage?: string) {\n this.send(ExtensionRequestType.RENDERED, { failureMessage })\n }\n\n async sendAndReceive(\n type: string,\n payload?: any,\n options?: Options\n ): Promise<any> {\n if (!this._lookerHostData) {\n return Promise.reject(new Error('Looker host connection not established'))\n }\n const messagePayload = {\n type,\n payload,\n }\n const chattyPayload = options ? [messagePayload, options] : [messagePayload]\n return this.chattyHost\n .sendAndReceive(ExtensionEvent.EXTENSION_API_REQUEST, ...chattyPayload)\n .then((values) => values[0])\n }\n\n send(type: string, payload?: any) {\n if (!this._lookerHostData) {\n throw new Error('Looker host connection not established')\n }\n this.chattyHost.send(ExtensionEvent.EXTENSION_API_REQUEST, {\n type,\n payload,\n })\n }\n\n private verifyLookerVersion(version: string): string | undefined {\n // Default version to 7.0 as that's the first Looker version that officially\n // supported extensions. Version 6.24 has some support for extensions but most\n // likely will fail before reaching this point\n const lookerVersion = this._lookerHostData\n ? this._lookerHostData.lookerVersion || '7.0'\n : '7.0'\n if (!this._lookerHostData || !intersects(version, lookerVersion, true)) {\n return `Extension requires Looker version ${version}, got ${lookerVersion}`\n }\n return undefined\n }\n\n private validateAuthParameters(authParameters: Record<string, string>) {\n if (!authParameters.client_id) {\n return 'client_id missing'\n }\n if (authParameters.redirect_uri) {\n return 'redirect_uri must NOT be included'\n }\n if (\n authParameters.response_type !== 'token' &&\n authParameters.response_type !== 'id_token' &&\n authParameters.response_type !== 'code'\n ) {\n return `invalid response_type, must be token, id_token or code, ${authParameters.response_type}`\n }\n return undefined\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"extension_host_api.js","names":["intersects","logError","VisualizationSDKImpl","TileSDKImpl","FetchProxyImpl","ExtensionEvent","ExtensionNotificationType","ExtensionRequestType","MountPoint","EXTENSION_SDK_VERSION","ExtensionHostApiImpl","constructor","configuration","_defineProperty","_configuration","chattyHost","setInitialRoute","hostChangedRoute","visualizationDataReceivedCallback","tileHostDataChangedCallback","isDashboardMountSupported","_this$_lookerHostData","_this$lookerHostData","_this$lookerHostData2","_this$lookerHostData3","_lookerHostData","extensionDashboardTileEnabled","lookerHostData","mountPoint","dashboardTile","dashboardVisualization","dashboardTilePopup","visualizationSDK","_visualizationSDK","tileSDK","_tileSDK","handleNotification","message","type","ROUTE_CHANGED","payload","route","routeState","undefined","VISUALIZATION_DATA","updateVisData","TILE_HOST_DATA","tileHostDataChanged","INITIALIZE","standalone","contextData","errorMessage","requiredLookerVersion","lookerVersion","verifyLookerVersion","extensionSdkVersion","Error","concat","createSecretKeyTag","keyName","match","extensionId","replace","verifyHostConnection","_this","_asyncToGenerator","sendAndReceive","VERIFY_HOST","invokeCoreSdk","httpMethod","path","params","body","authenticator","options","apiVersion","_this2","INVOKE_CORE_SDK","invokeCoreSdkRaw","_this3","RAW_INVOKE_CORE_SDK","updateTitle","title","send","UPDATE_TITLE","updateLocation","url","state","target","UPDATE_LOCATION","spartanLogout","SPARTAN_LOGOUT","openBrowserWindow","closeHostPopovers","CLOSE_HOST_POPOVERS","clientRouteChanged","localStorageSetItem","name","_arguments","arguments","_this4","value","length","Promise","reject","LOCAL_STORAGE","localStorageGetItem","_this5","localStorageRemoveItem","_this6","clipboardWrite","_this7","CLIPBOARD","userAttributeSetItem","_arguments2","_this8","USER_ATTRIBUTE","userAttributeGetItem","_this9","userAttributeResetItem","_this10","getContextData","JSON","parse","saveContextData","context","_this11","stringify","err","CONTEXT_DATA","refreshContextData","_this12","track","trackAction","attributes","TRACK_ACTION","error","errorEvent","filename","lineno","colno","ERROR_EVENT","toString","unloaded","EXTENSION_UNLOADED","createFetchProxy","baseUrl","init","responseBodyType","fetchProxy","resource","_this13","INVOKE_EXTERNAL_API","serverProxy","_this14","oauth2Authenticate","authEndpoint","authParameters","_arguments3","_this15","validateAuthParameters","signal","AbortController","oauth2ExchangeCodeForToken","_this16","rendered","failureMessage","RENDERED","_this17","messagePayload","chattyPayload","EXTENSION_API_REQUEST","then","values","version","client_id","redirect_uri","response_type"],"sources":["../../../src/connect/extension_host_api.ts"],"sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport type { ChattyHostConnection, Options } from '@looker/chatty'\nimport intersects from 'semver/ranges/intersects'\nimport { logError } from '../util'\nimport type {\n VisualizationDataReceivedCallback,\n VisualizationSDK,\n} from './visualization'\nimport { VisualizationSDKImpl } from './visualization/visualization_sdk'\nimport type { TileHostDataChangedCallback, TileSDK } from './tile'\nimport { TileSDKImpl } from './tile/tile_sdk'\nimport { FetchProxyImpl } from './fetch_proxy'\nimport type {\n ExtensionInitializationResponse,\n ExtensionHostApi,\n ExtensionHostApiConfiguration,\n ExtensionNotification,\n FetchCustomParameters,\n FetchResponseBodyType,\n LookerHostData,\n ApiVersion,\n} from './types'\nimport {\n ExtensionEvent,\n ExtensionNotificationType,\n ExtensionRequestType,\n MountPoint,\n} from './types'\n\nexport const EXTENSION_SDK_VERSION = '0.10.5'\n\nexport class ExtensionHostApiImpl implements ExtensionHostApi {\n private _configuration: ExtensionHostApiConfiguration\n private _lookerHostData?: Readonly<LookerHostData>\n private chattyHost: ChattyHostConnection\n private setInitialRoute?: (route: string, routeState?: any) => void\n private hostChangedRoute?: (route: string, routeState?: any) => void\n private visualizationDataReceivedCallback?: VisualizationDataReceivedCallback\n private tileHostDataChangedCallback?: TileHostDataChangedCallback\n private _visualizationSDK?: VisualizationSDK\n private _tileSDK?: TileSDK\n\n private contextData?: string\n\n constructor(configuration: ExtensionHostApiConfiguration) {\n this._configuration = configuration\n const {\n chattyHost,\n setInitialRoute,\n hostChangedRoute,\n visualizationDataReceivedCallback,\n tileHostDataChangedCallback,\n } = this._configuration\n this.chattyHost = chattyHost\n this.setInitialRoute = setInitialRoute\n this.hostChangedRoute = hostChangedRoute\n this.visualizationDataReceivedCallback = visualizationDataReceivedCallback\n this.tileHostDataChangedCallback = tileHostDataChangedCallback\n }\n\n get isDashboardMountSupported(): boolean {\n return (\n !!this._lookerHostData?.extensionDashboardTileEnabled &&\n (this.lookerHostData?.mountPoint === MountPoint.dashboardTile ||\n this.lookerHostData?.mountPoint === MountPoint.dashboardVisualization ||\n this.lookerHostData?.mountPoint === MountPoint.dashboardTilePopup)\n )\n }\n\n get visualizationSDK(): VisualizationSDK {\n if (!this._visualizationSDK) {\n this._visualizationSDK = new VisualizationSDKImpl(this)\n }\n return this._visualizationSDK\n }\n\n get tileSDK(): TileSDK {\n if (!this._tileSDK) {\n this._tileSDK = new TileSDKImpl(this)\n }\n return this._tileSDK\n }\n\n get lookerHostData() {\n return this._lookerHostData\n }\n\n handleNotification(\n message: ExtensionNotification\n ): ExtensionInitializationResponse | undefined {\n const { type } = message\n switch (type) {\n case ExtensionNotificationType.ROUTE_CHANGED: {\n const { payload } = message\n if (this.hostChangedRoute && payload) {\n const { route, routeState } = payload\n if (route) {\n this.hostChangedRoute(route, routeState)\n }\n }\n return undefined\n }\n case ExtensionNotificationType.VISUALIZATION_DATA: {\n const { payload } = message\n this.visualizationSDK.updateVisData(payload)\n if (this.visualizationDataReceivedCallback) {\n this.visualizationDataReceivedCallback(payload)\n }\n return undefined\n }\n case ExtensionNotificationType.TILE_HOST_DATA: {\n const { payload } = message\n this.tileSDK.tileHostDataChanged(payload)\n if (this.tileHostDataChangedCallback) {\n this.tileHostDataChangedCallback(payload)\n }\n return undefined\n }\n case ExtensionNotificationType.INITIALIZE: {\n const { payload } = message\n const lookerHostData = payload || {}\n if (!lookerHostData.mountPoint) {\n lookerHostData.mountPoint = MountPoint.standalone\n }\n this._lookerHostData = lookerHostData\n this.contextData = lookerHostData.contextData\n let errorMessage\n if (\n this._configuration.requiredLookerVersion &&\n lookerHostData.lookerVersion\n ) {\n errorMessage = this.verifyLookerVersion(\n this._configuration.requiredLookerVersion\n )\n if (errorMessage) {\n logError(errorMessage)\n }\n }\n if (this.setInitialRoute && payload) {\n const { route, routeState } = payload\n if (route) {\n this.setInitialRoute(route, routeState)\n }\n }\n return {\n extensionSdkVersion: EXTENSION_SDK_VERSION,\n errorMessage,\n }\n }\n default:\n logError('Unrecognized extension notification', message)\n throw new Error(`Unrecognized extension notification type ${type}`)\n }\n }\n\n createSecretKeyTag(keyName: string): string {\n const errorMessage = this.verifyLookerVersion('>=7.11')\n if (errorMessage) {\n throw new Error(errorMessage)\n }\n if (!keyName.match(/^[A-Za-z0-9_.]+$/)) {\n throw new Error('Unsupported characters in key name')\n }\n return `{{${(this._lookerHostData as LookerHostData).extensionId.replace(\n /::|-/g,\n '_'\n )}_${keyName}}}`\n }\n\n async verifyHostConnection() {\n return this.sendAndReceive(ExtensionRequestType.VERIFY_HOST)\n }\n\n async invokeCoreSdk(\n httpMethod: string,\n path: string,\n params?: any,\n body?: any,\n authenticator?: any,\n options?: any,\n apiVersion?: ApiVersion\n ): Promise<any> {\n return this.sendAndReceive(ExtensionRequestType.INVOKE_CORE_SDK, {\n httpMethod,\n path,\n params,\n body,\n authenticator,\n options,\n apiVersion,\n })\n }\n\n async invokeCoreSdkRaw(\n httpMethod: string,\n path: string,\n params?: any,\n body?: any,\n apiVersion?: ApiVersion\n ): Promise<any> {\n return this.sendAndReceive(ExtensionRequestType.RAW_INVOKE_CORE_SDK, {\n httpMethod,\n path,\n params,\n body,\n apiVersion,\n })\n }\n\n updateTitle(title: string) {\n this.send(ExtensionRequestType.UPDATE_TITLE, { title })\n }\n\n updateLocation(url: string, state?: any, target?: string) {\n this.send(ExtensionRequestType.UPDATE_LOCATION, { url, state, target })\n }\n\n spartanLogout() {\n this.send(ExtensionRequestType.SPARTAN_LOGOUT)\n }\n\n openBrowserWindow(url: string, target?: string) {\n this.send(ExtensionRequestType.UPDATE_LOCATION, {\n url,\n undefined,\n target: target || '_blank',\n })\n }\n\n closeHostPopovers() {\n this.send(ExtensionRequestType.CLOSE_HOST_POPOVERS)\n }\n\n clientRouteChanged(route: string, routeState?: any) {\n this.send(ExtensionRequestType.ROUTE_CHANGED, {\n route,\n routeState,\n })\n }\n\n async localStorageSetItem(name: string, value = ''): Promise<boolean> {\n if (this._lookerHostData && !this._lookerHostData.lookerVersion) {\n return Promise.reject(\n new Error(\n 'localStorageSetItem not supported by the current Looker host'\n )\n )\n }\n return this.sendAndReceive(ExtensionRequestType.LOCAL_STORAGE, {\n type: 'set',\n name,\n value,\n })\n }\n\n async localStorageGetItem(name: string): Promise<string | null> {\n if (this._lookerHostData && !this._lookerHostData.lookerVersion) {\n return Promise.reject(\n new Error(\n 'localStorageGetItem not supported by the current Looker host'\n )\n )\n }\n return this.sendAndReceive(ExtensionRequestType.LOCAL_STORAGE, {\n type: 'get',\n name,\n })\n }\n\n async localStorageRemoveItem(name: string): Promise<boolean> {\n if (this._lookerHostData && !this._lookerHostData.lookerVersion) {\n return Promise.reject(\n new Error(\n 'localStorageRemoveItem not supported by the current Looker host'\n )\n )\n }\n return this.sendAndReceive(ExtensionRequestType.LOCAL_STORAGE, {\n type: 'remove',\n name,\n })\n }\n\n async clipboardWrite(value: string): Promise<void> {\n const errorMessage = this.verifyLookerVersion('>=21.7')\n if (errorMessage) {\n return Promise.reject(new Error(errorMessage))\n }\n return this.sendAndReceive(ExtensionRequestType.CLIPBOARD, {\n type: 'write',\n value,\n })\n }\n\n async userAttributeSetItem(name: string, value = ''): Promise<boolean> {\n // User attributes added in Looker version 7.13, updated in 7.15\n const errorMessage = this.verifyLookerVersion('>=7.15')\n if (errorMessage) {\n return Promise.reject(new Error(errorMessage))\n }\n return this.sendAndReceive(ExtensionRequestType.USER_ATTRIBUTE, {\n type: 'set',\n name,\n value,\n })\n }\n\n async userAttributeGetItem(name: string): Promise<string | null> {\n // User attributes added in Looker version 7.13, updated in 7.15\n const errorMessage = this.verifyLookerVersion('>=7.15')\n if (errorMessage) {\n return Promise.reject(new Error(errorMessage))\n }\n return this.sendAndReceive(ExtensionRequestType.USER_ATTRIBUTE, {\n type: 'get',\n name,\n })\n }\n\n async userAttributeResetItem(name: string): Promise<void> {\n // User attributes added in Looker version 7.13, updated in 7.15\n const errorMessage = this.verifyLookerVersion('>=7.15')\n if (errorMessage) {\n return Promise.reject(new Error(errorMessage))\n }\n return this.sendAndReceive(ExtensionRequestType.USER_ATTRIBUTE, {\n type: 'reset',\n name,\n })\n }\n\n getContextData() {\n const errorMessage = this.verifyLookerVersion('>=7.13')\n if (errorMessage) {\n throw new Error(errorMessage)\n }\n if (this.contextData) {\n return JSON.parse(this.contextData)\n } else {\n return undefined\n }\n }\n\n async saveContextData(context: any): Promise<any> {\n const errorMessage = this.verifyLookerVersion('>=7.13')\n if (errorMessage) {\n return Promise.reject(new Error(errorMessage))\n }\n let contextData: string | undefined\n if (context) {\n try {\n contextData = JSON.stringify(context)\n } catch (err) {\n return Promise.reject(new Error('context cannot be serialized'))\n }\n } else {\n contextData = undefined\n }\n await this.sendAndReceive(ExtensionRequestType.CONTEXT_DATA, {\n type: 'save',\n contextData,\n })\n return this.getContextData()\n }\n\n async refreshContextData(): Promise<any> {\n const errorMessage = this.verifyLookerVersion('>=7.13')\n if (errorMessage) {\n return Promise.reject(new Error(errorMessage))\n }\n this.contextData = await this.sendAndReceive(\n ExtensionRequestType.CONTEXT_DATA,\n {\n type: 'refresh',\n }\n )\n return this.getContextData()\n }\n\n track(name: string, trackAction: string, attributes?: Record<string, any>) {\n this.send(ExtensionRequestType.TRACK_ACTION, {\n name,\n trackAction,\n attributes,\n })\n }\n\n error(errorEvent: ErrorEvent) {\n if (this._lookerHostData) {\n const { message, filename, lineno, colno, error } = errorEvent || {}\n this.send(ExtensionRequestType.ERROR_EVENT, {\n message,\n filename,\n lineno,\n colno,\n error: error && error.toString ? error.toString() : error,\n })\n } else {\n logError(\n 'Unhandled error but Looker host connection not established',\n errorEvent\n )\n }\n }\n\n unloaded() {\n this.send(ExtensionRequestType.EXTENSION_UNLOADED, {})\n }\n\n createFetchProxy(\n baseUrl?: string,\n init?: FetchCustomParameters,\n responseBodyType?: FetchResponseBodyType\n ) {\n return new FetchProxyImpl(this, baseUrl, init, responseBodyType)\n }\n\n async fetchProxy(\n resource: string,\n init?: FetchCustomParameters,\n responseBodyType?: FetchResponseBodyType\n ) {\n // Fetch proxy support added to Looker 7.9\n const errorMessage = this.verifyLookerVersion('>=7.9')\n if (errorMessage) {\n return Promise.reject(new Error(errorMessage))\n }\n return this.sendAndReceive(ExtensionRequestType.INVOKE_EXTERNAL_API, {\n type: 'fetch',\n payload: {\n resource,\n init,\n responseBodyType,\n },\n })\n }\n\n async serverProxy(\n resource: string,\n init?: FetchCustomParameters,\n responseBodyType?: FetchResponseBodyType\n ) {\n // Server proxy support added to Looker 7.11\n const errorMessage = this.verifyLookerVersion('>=7.11')\n if (errorMessage) {\n return Promise.reject(new Error(errorMessage))\n }\n return this.sendAndReceive(ExtensionRequestType.INVOKE_EXTERNAL_API, {\n type: 'server-proxy',\n payload: {\n resource,\n init,\n responseBodyType,\n },\n })\n }\n\n async oauth2Authenticate(\n authEndpoint: string,\n authParameters: Record<string, string>,\n httpMethod = 'POST'\n ) {\n // oauth2Authenticate proxy support added to Looker 7.9\n let errorMessage = this.verifyLookerVersion('>=7.9')\n if (errorMessage) {\n return Promise.reject(new Error(errorMessage))\n }\n errorMessage = this.validateAuthParameters(authParameters)\n if (errorMessage) {\n return Promise.reject(new Error(errorMessage))\n }\n return this.sendAndReceive(\n ExtensionRequestType.INVOKE_EXTERNAL_API,\n {\n type: 'oauth2_authenticate',\n payload: {\n authEndpoint,\n authParameters,\n httpMethod,\n },\n },\n // Adding the signal disables the default timeout\n { signal: new AbortController().signal }\n )\n }\n\n async oauth2ExchangeCodeForToken(\n authEndpoint: string,\n authParameters: Record<string, string>\n ) {\n const errorMessage = this.verifyLookerVersion('>=7.11')\n if (errorMessage) {\n return Promise.reject(new Error(errorMessage))\n }\n return this.sendAndReceive(ExtensionRequestType.INVOKE_EXTERNAL_API, {\n type: 'oauth2_exchange_code',\n payload: {\n authEndpoint,\n authParameters,\n },\n })\n }\n\n rendered(failureMessage?: string) {\n this.send(ExtensionRequestType.RENDERED, { failureMessage })\n }\n\n async sendAndReceive(\n type: string,\n payload?: any,\n options?: Options\n ): Promise<any> {\n if (!this._lookerHostData) {\n return Promise.reject(new Error('Looker host connection not established'))\n }\n const messagePayload = {\n type,\n payload,\n }\n const chattyPayload = options ? [messagePayload, options] : [messagePayload]\n return this.chattyHost\n .sendAndReceive(ExtensionEvent.EXTENSION_API_REQUEST, ...chattyPayload)\n .then((values) => values[0])\n }\n\n send(type: string, payload?: any) {\n if (!this._lookerHostData) {\n throw new Error('Looker host connection not established')\n }\n this.chattyHost.send(ExtensionEvent.EXTENSION_API_REQUEST, {\n type,\n payload,\n })\n }\n\n private verifyLookerVersion(version: string): string | undefined {\n // Default version to 7.0 as that's the first Looker version that officially\n // supported extensions. Version 6.24 has some support for extensions but most\n // likely will fail before reaching this point\n const lookerVersion = this._lookerHostData\n ? this._lookerHostData.lookerVersion || '7.0'\n : '7.0'\n if (!this._lookerHostData || !intersects(version, lookerVersion, true)) {\n return `Extension requires Looker version ${version}, got ${lookerVersion}`\n }\n return undefined\n }\n\n private validateAuthParameters(authParameters: Record<string, string>) {\n if (!authParameters.client_id) {\n return 'client_id missing'\n }\n if (authParameters.redirect_uri) {\n return 'redirect_uri must NOT be included'\n }\n if (\n authParameters.response_type !== 'token' &&\n authParameters.response_type !== 'id_token' &&\n authParameters.response_type !== 'code'\n ) {\n return `invalid response_type, must be token, id_token or code, ${authParameters.response_type}`\n }\n return undefined\n }\n}\n"],"mappings":"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"}
@@ -1,14 +1,7 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.FetchProxyImpl = void 0;
7
- var _deepmerge = _interopRequireDefault(require("deepmerge"));
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
1
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
10
2
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
11
- class FetchProxyImpl {
3
+ import deepmerge from 'deepmerge';
4
+ export class FetchProxyImpl {
12
5
  constructor(extensionHost, baseUrl, init, responseBodyType) {
13
6
  this.extensionHost = extensionHost;
14
7
  this.baseUrl = baseUrl;
@@ -26,7 +19,7 @@ class FetchProxyImpl {
26
19
  }
27
20
  getInit(init) {
28
21
  if (init || this.init) {
29
- return (0, _deepmerge.default)(this.init || {}, init || {});
22
+ return deepmerge(this.init || {}, init || {});
30
23
  }
31
24
  return undefined;
32
25
  }
@@ -34,5 +27,4 @@ class FetchProxyImpl {
34
27
  return responseBodyType || this.responseBodyType;
35
28
  }
36
29
  }
37
- exports.FetchProxyImpl = FetchProxyImpl;
38
30
  //# sourceMappingURL=fetch_proxy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch_proxy.js","names":["_deepmerge","_interopRequireDefault","require","obj","__esModule","default","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","FetchProxyImpl","constructor","extensionHost","baseUrl","init","responseBodyType","fetchProxy","resource","_this","getResource","getInit","getResponseBodyType","deepmerge","exports"],"sources":["../../../src/connect/fetch_proxy.ts"],"sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\nimport deepmerge from 'deepmerge'\nimport type {\n FetchProxy,\n FetchCustomParameters,\n FetchResponseBodyType,\n FetchProxyDataResponse,\n} from './types'\nimport type { ExtensionHostApiImpl } from './extension_host_api'\n\nexport class FetchProxyImpl implements FetchProxy {\n constructor(\n private extensionHost: ExtensionHostApiImpl,\n private baseUrl?: string,\n private init?: FetchCustomParameters,\n private responseBodyType?: FetchResponseBodyType\n ) {}\n\n async fetchProxy(\n resource: string,\n init?: FetchCustomParameters,\n responseBodyType?: FetchResponseBodyType\n ): Promise<FetchProxyDataResponse> {\n return this.extensionHost.fetchProxy(\n this.getResource(resource),\n this.getInit(init),\n this.getResponseBodyType(responseBodyType)\n )\n }\n\n private getResource(resource: string) {\n return this.baseUrl ? this.baseUrl + resource : resource\n }\n\n private getInit(init?: FetchCustomParameters) {\n if (init || this.init) {\n return deepmerge(this.init || {}, init || {})\n }\n return undefined\n }\n\n private getResponseBodyType(responseBodyType?: FetchResponseBodyType) {\n return responseBodyType || this.responseBodyType\n }\n}\n"],"mappings":";;;;;;AAyBA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAiC,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,mBAAAC,GAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,MAAA,EAAAC,GAAA,EAAAC,GAAA,cAAAC,IAAA,GAAAP,GAAA,CAAAK,GAAA,EAAAC,GAAA,OAAAE,KAAA,GAAAD,IAAA,CAAAC,KAAA,WAAAC,KAAA,IAAAP,MAAA,CAAAO,KAAA,iBAAAF,IAAA,CAAAG,IAAA,IAAAT,OAAA,CAAAO,KAAA,YAAAG,OAAA,CAAAV,OAAA,CAAAO,KAAA,EAAAI,IAAA,CAAAT,KAAA,EAAAC,MAAA;AAAA,SAAAS,kBAAAC,EAAA,6BAAAC,IAAA,SAAAC,IAAA,GAAAC,SAAA,aAAAN,OAAA,WAAAV,OAAA,EAAAC,MAAA,QAAAF,GAAA,GAAAc,EAAA,CAAAI,KAAA,CAAAH,IAAA,EAAAC,IAAA,YAAAb,MAAAK,KAAA,IAAAT,kBAAA,CAAAC,GAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,MAAA,UAAAI,KAAA,cAAAJ,OAAAe,GAAA,IAAApB,kBAAA,CAAAC,GAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,MAAA,WAAAe,GAAA,KAAAhB,KAAA,CAAAiB,SAAA;AAS1B,MAAMC,cAAc,CAAuB;EAChDC,WAAWA,CACDC,aAAmC,EACnCC,OAAgB,EAChBC,IAA4B,EAC5BC,gBAAwC,EAChD;IAAA,KAJQH,aAAmC,GAAnCA,aAAmC;IAAA,KACnCC,OAAgB,GAAhBA,OAAgB;IAAA,KAChBC,IAA4B,GAA5BA,IAA4B;IAAA,KAC5BC,gBAAwC,GAAxCA,gBAAwC;EAC/C;EAEGC,UAAUA,CACdC,QAAgB,EAChBH,IAA4B,EAC5BC,gBAAwC,EACP;IAAA,IAAAG,KAAA;IAAA,OAAAhB,iBAAA;MACjC,OAAOgB,KAAI,CAACN,aAAa,CAACI,UAAU,CAClCE,KAAI,CAACC,WAAW,CAACF,QAAQ,CAAC,EAC1BC,KAAI,CAACE,OAAO,CAACN,IAAI,CAAC,EAClBI,KAAI,CAACG,mBAAmB,CAACN,gBAAgB,CAAC,CAC3C;IAAA;EACH;EAEQI,WAAWA,CAACF,QAAgB,EAAE;IACpC,OAAO,IAAI,CAACJ,OAAO,GAAG,IAAI,CAACA,OAAO,GAAGI,QAAQ,GAAGA,QAAQ;EAC1D;EAEQG,OAAOA,CAACN,IAA4B,EAAE;IAC5C,IAAIA,IAAI,IAAI,IAAI,CAACA,IAAI,EAAE;MACrB,OAAO,IAAAQ,kBAAS,EAAC,IAAI,CAACR,IAAI,IAAI,CAAC,CAAC,EAAEA,IAAI,IAAI,CAAC,CAAC,CAAC;IAC/C;IACA,OAAOL,SAAS;EAClB;EAEQY,mBAAmBA,CAACN,gBAAwC,EAAE;IACpE,OAAOA,gBAAgB,IAAI,IAAI,CAACA,gBAAgB;EAClD;AACF;AAACQ,OAAA,CAAAb,cAAA,GAAAA,cAAA"}
1
+ {"version":3,"file":"fetch_proxy.js","names":["deepmerge","FetchProxyImpl","constructor","extensionHost","baseUrl","init","responseBodyType","fetchProxy","resource","_this","_asyncToGenerator","getResource","getInit","getResponseBodyType","undefined"],"sources":["../../../src/connect/fetch_proxy.ts"],"sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\nimport deepmerge from 'deepmerge'\nimport type {\n FetchProxy,\n FetchCustomParameters,\n FetchResponseBodyType,\n FetchProxyDataResponse,\n} from './types'\nimport type { ExtensionHostApiImpl } from './extension_host_api'\n\nexport class FetchProxyImpl implements FetchProxy {\n constructor(\n private extensionHost: ExtensionHostApiImpl,\n private baseUrl?: string,\n private init?: FetchCustomParameters,\n private responseBodyType?: FetchResponseBodyType\n ) {}\n\n async fetchProxy(\n resource: string,\n init?: FetchCustomParameters,\n responseBodyType?: FetchResponseBodyType\n ): Promise<FetchProxyDataResponse> {\n return this.extensionHost.fetchProxy(\n this.getResource(resource),\n this.getInit(init),\n this.getResponseBodyType(responseBodyType)\n )\n }\n\n private getResource(resource: string) {\n return this.baseUrl ? this.baseUrl + resource : resource\n }\n\n private getInit(init?: FetchCustomParameters) {\n if (init || this.init) {\n return deepmerge(this.init || {}, init || {})\n }\n return undefined\n }\n\n private getResponseBodyType(responseBodyType?: FetchResponseBodyType) {\n return responseBodyType || this.responseBodyType\n }\n}\n"],"mappings":";;AAyBA,OAAOA,SAAS,MAAM,WAAW;AASjC,OAAO,MAAMC,cAAc,CAAuB;EAChDC,WAAWA,CACDC,aAAmC,EACnCC,OAAgB,EAChBC,IAA4B,EAC5BC,gBAAwC,EAChD;IAAA,KAJQH,aAAmC,GAAnCA,aAAmC;IAAA,KACnCC,OAAgB,GAAhBA,OAAgB;IAAA,KAChBC,IAA4B,GAA5BA,IAA4B;IAAA,KAC5BC,gBAAwC,GAAxCA,gBAAwC;EAC/C;EAEGC,UAAUA,CACdC,QAAgB,EAChBH,IAA4B,EAC5BC,gBAAwC,EACP;IAAA,IAAAG,KAAA;IAAA,OAAAC,iBAAA;MACjC,OAAOD,KAAI,CAACN,aAAa,CAACI,UAAU,CAClCE,KAAI,CAACE,WAAW,CAACH,QAAQ,CAAC,EAC1BC,KAAI,CAACG,OAAO,CAACP,IAAI,CAAC,EAClBI,KAAI,CAACI,mBAAmB,CAACP,gBAAgB,CAC3C,CAAC;IAAA;EACH;EAEQK,WAAWA,CAACH,QAAgB,EAAE;IACpC,OAAO,IAAI,CAACJ,OAAO,GAAG,IAAI,CAACA,OAAO,GAAGI,QAAQ,GAAGA,QAAQ;EAC1D;EAEQI,OAAOA,CAACP,IAA4B,EAAE;IAC5C,IAAIA,IAAI,IAAI,IAAI,CAACA,IAAI,EAAE;MACrB,OAAOL,SAAS,CAAC,IAAI,CAACK,IAAI,IAAI,CAAC,CAAC,EAAEA,IAAI,IAAI,CAAC,CAAC,CAAC;IAC/C;IACA,OAAOS,SAAS;EAClB;EAEQD,mBAAmBA,CAACP,gBAAwC,EAAE;IACpE,OAAOA,gBAAgB,IAAI,IAAI,CAACA,gBAAgB;EAClD;AACF"}
@@ -1,10 +1,4 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.registerHostApi = exports.getExtensionSDK = void 0;
7
- var _util = require("../util");
1
+ import { logError, logWarn } from '../util';
8
2
  var _hostApi;
9
3
  var errorListener = event => {
10
4
  if (_hostApi) {
@@ -17,13 +11,13 @@ var errorListener = event => {
17
11
  _hostApi.error(event);
18
12
  }
19
13
  } else {
20
- (0, _util.logError)('Extension has unhandled error. Reporting on console as Looker host api not initialized', event);
14
+ logError('Extension has unhandled error. Reporting on console as Looker host api not initialized', event);
21
15
  }
22
16
  };
23
17
  var beforeUnloadListener = () => {
24
18
  if (_hostApi) {
25
19
  _hostApi.unloaded();
26
- (0, _util.logWarn)('Extension is being unloaded');
20
+ logWarn('Extension is being unloaded');
27
21
  }
28
22
  };
29
23
  var setupGlobalListeners = () => {
@@ -31,15 +25,13 @@ var setupGlobalListeners = () => {
31
25
  window.addEventListener('beforeunload', beforeUnloadListener);
32
26
  };
33
27
  setupGlobalListeners();
34
- var registerHostApi = hostApi => {
28
+ export var registerHostApi = hostApi => {
35
29
  _hostApi = hostApi;
36
30
  };
37
- exports.registerHostApi = registerHostApi;
38
- var getExtensionSDK = () => {
31
+ export var getExtensionSDK = () => {
39
32
  if (_hostApi && _hostApi.lookerHostData) {
40
33
  return _hostApi;
41
34
  }
42
35
  throw new Error('ExtensionSDK not initialized');
43
36
  };
44
- exports.getExtensionSDK = getExtensionSDK;
45
37
  //# sourceMappingURL=global_listener.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"global_listener.js","names":["_util","require","_hostApi","errorListener","event","error","_looker_reported","logError","beforeUnloadListener","unloaded","logWarn","setupGlobalListeners","window","addEventListener","registerHostApi","hostApi","exports","getExtensionSDK","lookerHostData","Error"],"sources":["../../../src/connect/global_listener.ts"],"sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport { logError, logWarn } from '../util'\nimport type { ExtensionHostApi, ExtensionSDK } from './types'\n\nlet _hostApi: ExtensionHostApi | undefined\n\nconst errorListener = (event: ErrorEvent) => {\n if (_hostApi) {\n // in development mode errors get reported twice. Suspect react\n // development code re-reporting the error. Before error reporting\n // was working correctly in sandboxed iframe there were two distinct\n // errors on two separate events. After the fix the same error is\n // reported twice on two events. A \"looker\" property is set on the\n // error object. The second time the listener is called, the error\n // is ignored as it has already been reported.\n if (event.error) {\n if (!event.error._looker_reported) {\n _hostApi.error(event)\n event.error._looker_reported = true\n }\n } else {\n _hostApi.error(event)\n }\n } else {\n logError(\n 'Extension has unhandled error. Reporting on console as Looker host api not initialized',\n event\n )\n }\n}\n\n/**\n * Listen for unload events and send message to host.\n * Host will reload the extension. Stops new pages being\n * loaded using form submission.\n */\nconst beforeUnloadListener = () => {\n if (_hostApi) {\n _hostApi.unloaded()\n logWarn('Extension is being unloaded')\n }\n}\n\nconst setupGlobalListeners = () => {\n window.addEventListener('error', errorListener)\n window.addEventListener('beforeunload', beforeUnloadListener)\n}\n\nsetupGlobalListeners()\n\n/**\n * Register the api with the error listener.\n */\nexport const registerHostApi = (hostApi: ExtensionHostApi) => {\n _hostApi = hostApi\n}\n\n/**\n * Static reference to extension SDK.\n * Will throw an error if the extensionSDK has not been initialized\n */\nexport const getExtensionSDK = (): ExtensionSDK => {\n if (_hostApi && _hostApi.lookerHostData) {\n return _hostApi\n }\n throw new Error('ExtensionSDK not initialized')\n}\n"],"mappings":";;;;;;AA0BA,IAAAA,KAAA,GAAAC,OAAA;AAGA,IAAIC,QAAsC;AAE1C,IAAMC,aAAa,GAAIC,KAAiB,IAAK;EAC3C,IAAIF,QAAQ,EAAE;IAQZ,IAAIE,KAAK,CAACC,KAAK,EAAE;MACf,IAAI,CAACD,KAAK,CAACC,KAAK,CAACC,gBAAgB,EAAE;QACjCJ,QAAQ,CAACG,KAAK,CAACD,KAAK,CAAC;QACrBA,KAAK,CAACC,KAAK,CAACC,gBAAgB,GAAG,IAAI;MACrC;IACF,CAAC,MAAM;MACLJ,QAAQ,CAACG,KAAK,CAACD,KAAK,CAAC;IACvB;EACF,CAAC,MAAM;IACL,IAAAG,cAAQ,EACN,wFAAwF,EACxFH,KAAK,CACN;EACH;AACF,CAAC;AAOD,IAAMI,oBAAoB,GAAGA,CAAA,KAAM;EACjC,IAAIN,QAAQ,EAAE;IACZA,QAAQ,CAACO,QAAQ,EAAE;IACnB,IAAAC,aAAO,EAAC,6BAA6B,CAAC;EACxC;AACF,CAAC;AAED,IAAMC,oBAAoB,GAAGA,CAAA,KAAM;EACjCC,MAAM,CAACC,gBAAgB,CAAC,OAAO,EAAEV,aAAa,CAAC;EAC/CS,MAAM,CAACC,gBAAgB,CAAC,cAAc,EAAEL,oBAAoB,CAAC;AAC/D,CAAC;AAEDG,oBAAoB,EAAE;AAKf,IAAMG,eAAe,GAAIC,OAAyB,IAAK;EAC5Db,QAAQ,GAAGa,OAAO;AACpB,CAAC;AAAAC,OAAA,CAAAF,eAAA,GAAAA,eAAA;AAMM,IAAMG,eAAe,GAAGA,CAAA,KAAoB;EACjD,IAAIf,QAAQ,IAAIA,QAAQ,CAACgB,cAAc,EAAE;IACvC,OAAOhB,QAAQ;EACjB;EACA,MAAM,IAAIiB,KAAK,CAAC,8BAA8B,CAAC;AACjD,CAAC;AAAAH,OAAA,CAAAC,eAAA,GAAAA,eAAA"}
1
+ {"version":3,"file":"global_listener.js","names":["logError","logWarn","_hostApi","errorListener","event","error","_looker_reported","beforeUnloadListener","unloaded","setupGlobalListeners","window","addEventListener","registerHostApi","hostApi","getExtensionSDK","lookerHostData","Error"],"sources":["../../../src/connect/global_listener.ts"],"sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport { logError, logWarn } from '../util'\nimport type { ExtensionHostApi, ExtensionSDK } from './types'\n\nlet _hostApi: ExtensionHostApi | undefined\n\nconst errorListener = (event: ErrorEvent) => {\n if (_hostApi) {\n // in development mode errors get reported twice. Suspect react\n // development code re-reporting the error. Before error reporting\n // was working correctly in sandboxed iframe there were two distinct\n // errors on two separate events. After the fix the same error is\n // reported twice on two events. A \"looker\" property is set on the\n // error object. The second time the listener is called, the error\n // is ignored as it has already been reported.\n if (event.error) {\n if (!event.error._looker_reported) {\n _hostApi.error(event)\n event.error._looker_reported = true\n }\n } else {\n _hostApi.error(event)\n }\n } else {\n logError(\n 'Extension has unhandled error. Reporting on console as Looker host api not initialized',\n event\n )\n }\n}\n\n/**\n * Listen for unload events and send message to host.\n * Host will reload the extension. Stops new pages being\n * loaded using form submission.\n */\nconst beforeUnloadListener = () => {\n if (_hostApi) {\n _hostApi.unloaded()\n logWarn('Extension is being unloaded')\n }\n}\n\nconst setupGlobalListeners = () => {\n window.addEventListener('error', errorListener)\n window.addEventListener('beforeunload', beforeUnloadListener)\n}\n\nsetupGlobalListeners()\n\n/**\n * Register the api with the error listener.\n */\nexport const registerHostApi = (hostApi: ExtensionHostApi) => {\n _hostApi = hostApi\n}\n\n/**\n * Static reference to extension SDK.\n * Will throw an error if the extensionSDK has not been initialized\n */\nexport const getExtensionSDK = (): ExtensionSDK => {\n if (_hostApi && _hostApi.lookerHostData) {\n return _hostApi\n }\n throw new Error('ExtensionSDK not initialized')\n}\n"],"mappings":"AA0BA,SAASA,QAAQ,EAAEC,OAAO,QAAQ,SAAS;AAG3C,IAAIC,QAAsC;AAE1C,IAAMC,aAAa,GAAIC,KAAiB,IAAK;EAC3C,IAAIF,QAAQ,EAAE;IAQZ,IAAIE,KAAK,CAACC,KAAK,EAAE;MACf,IAAI,CAACD,KAAK,CAACC,KAAK,CAACC,gBAAgB,EAAE;QACjCJ,QAAQ,CAACG,KAAK,CAACD,KAAK,CAAC;QACrBA,KAAK,CAACC,KAAK,CAACC,gBAAgB,GAAG,IAAI;MACrC;IACF,CAAC,MAAM;MACLJ,QAAQ,CAACG,KAAK,CAACD,KAAK,CAAC;IACvB;EACF,CAAC,MAAM;IACLJ,QAAQ,CACN,wFAAwF,EACxFI,KACF,CAAC;EACH;AACF,CAAC;AAOD,IAAMG,oBAAoB,GAAGA,CAAA,KAAM;EACjC,IAAIL,QAAQ,EAAE;IACZA,QAAQ,CAACM,QAAQ,CAAC,CAAC;IACnBP,OAAO,CAAC,6BAA6B,CAAC;EACxC;AACF,CAAC;AAED,IAAMQ,oBAAoB,GAAGA,CAAA,KAAM;EACjCC,MAAM,CAACC,gBAAgB,CAAC,OAAO,EAAER,aAAa,CAAC;EAC/CO,MAAM,CAACC,gBAAgB,CAAC,cAAc,EAAEJ,oBAAoB,CAAC;AAC/D,CAAC;AAEDE,oBAAoB,CAAC,CAAC;AAKtB,OAAO,IAAMG,eAAe,GAAIC,OAAyB,IAAK;EAC5DX,QAAQ,GAAGW,OAAO;AACpB,CAAC;AAMD,OAAO,IAAMC,eAAe,GAAGA,CAAA,KAAoB;EACjD,IAAIZ,QAAQ,IAAIA,QAAQ,CAACa,cAAc,EAAE;IACvC,OAAOb,QAAQ;EACjB;EACA,MAAM,IAAIc,KAAK,CAAC,8BAA8B,CAAC;AACjD,CAAC"}
@@ -1,64 +1,6 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- var _exportNames = {
7
- getExtensionSDK: true
8
- };
9
- Object.defineProperty(exports, "getExtensionSDK", {
10
- enumerable: true,
11
- get: function get() {
12
- return _global_listener.getExtensionSDK;
13
- }
14
- });
15
- var _types = require("./visualization/types");
16
- Object.keys(_types).forEach(function (key) {
17
- if (key === "default" || key === "__esModule") return;
18
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
19
- if (key in exports && exports[key] === _types[key]) return;
20
- Object.defineProperty(exports, key, {
21
- enumerable: true,
22
- get: function get() {
23
- return _types[key];
24
- }
25
- });
26
- });
27
- var _types2 = require("./tile/types");
28
- Object.keys(_types2).forEach(function (key) {
29
- if (key === "default" || key === "__esModule") return;
30
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
31
- if (key in exports && exports[key] === _types2[key]) return;
32
- Object.defineProperty(exports, key, {
33
- enumerable: true,
34
- get: function get() {
35
- return _types2[key];
36
- }
37
- });
38
- });
39
- var _types3 = require("./types");
40
- Object.keys(_types3).forEach(function (key) {
41
- if (key === "default" || key === "__esModule") return;
42
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
43
- if (key in exports && exports[key] === _types3[key]) return;
44
- Object.defineProperty(exports, key, {
45
- enumerable: true,
46
- get: function get() {
47
- return _types3[key];
48
- }
49
- });
50
- });
51
- var _connect_extension_host = require("./connect_extension_host");
52
- Object.keys(_connect_extension_host).forEach(function (key) {
53
- if (key === "default" || key === "__esModule") return;
54
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
55
- if (key in exports && exports[key] === _connect_extension_host[key]) return;
56
- Object.defineProperty(exports, key, {
57
- enumerable: true,
58
- get: function get() {
59
- return _connect_extension_host[key];
60
- }
61
- });
62
- });
63
- var _global_listener = require("./global_listener");
1
+ export * from './visualization/types';
2
+ export * from './tile/types';
3
+ export * from './types';
4
+ export * from './connect_extension_host';
5
+ export { getExtensionSDK } from './global_listener';
64
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_types","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_types2","_types3","_connect_extension_host","_global_listener"],"sources":["../../../src/connect/index.ts"],"sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nexport * from './visualization/types'\nexport * from './tile/types'\nexport * from './types'\nexport * from './connect_extension_host'\nexport { getExtensionSDK } from './global_listener'\n"],"mappings":";;;;;;;;;;;;;;AA0BA,IAAAA,MAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,MAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAL,MAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAb,MAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,OAAA,GAAAb,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAW,OAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,OAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAC,OAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AACA,IAAAU,OAAA,GAAAd,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAY,OAAA,EAAAX,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAU,OAAA,CAAAV,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAE,OAAA,CAAAV,GAAA;IAAA;EAAA;AAAA;AACA,IAAAW,uBAAA,GAAAf,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAa,uBAAA,EAAAZ,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAW,uBAAA,CAAAX,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAG,uBAAA,CAAAX,GAAA;IAAA;EAAA;AAAA;AACA,IAAAY,gBAAA,GAAAhB,OAAA"}
1
+ {"version":3,"file":"index.js","names":["getExtensionSDK"],"sources":["../../../src/connect/index.ts"],"sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nexport * from './visualization/types'\nexport * from './tile/types'\nexport * from './types'\nexport * from './connect_extension_host'\nexport { getExtensionSDK } from './global_listener'\n"],"mappings":"AA0BA,cAAc,uBAAuB;AACrC,cAAc,cAAc;AAC5B,cAAc,SAAS;AACvB,cAAc,0BAA0B;AACxC,SAASA,eAAe,QAAQ,mBAAmB"}
@@ -1,17 +1,2 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- var _types = require("./types");
7
- Object.keys(_types).forEach(function (key) {
8
- if (key === "default" || key === "__esModule") return;
9
- if (key in exports && exports[key] === _types[key]) return;
10
- Object.defineProperty(exports, key, {
11
- enumerable: true,
12
- get: function get() {
13
- return _types[key];
14
- }
15
- });
16
- });
1
+ export * from './types';
17
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_types","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["../../../../src/connect/tile/index.ts"],"sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2022 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\nexport * from './types'\n"],"mappings":";;;;;AAyBA,IAAAA,MAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,MAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,MAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAT,MAAA,CAAAK,GAAA;IAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../src/connect/tile/index.ts"],"sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2022 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\nexport * from './types'\n"],"mappings":"AAyBA,cAAc,SAAS"}
@@ -1,23 +1,17 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.TileSDKImpl = void 0;
7
- var _errors = require("../../util/errors");
8
- var _types = require("../types");
9
- var _types2 = require("./types");
10
1
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
11
2
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
12
3
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13
4
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
14
5
  function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
6
+ import { NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR } from '../../util/errors';
7
+ import { ExtensionRequestType } from '../types';
8
+ import { DashboardRunState } from './types';
15
9
  var defaultHostData = {
16
10
  isDashboardEditing: false,
17
- dashboardRunState: _types2.DashboardRunState.UNKNOWN,
11
+ dashboardRunState: DashboardRunState.UNKNOWN,
18
12
  dashboardFilters: {}
19
13
  };
20
- class TileSDKImpl {
14
+ export class TileSDKImpl {
21
15
  constructor(hostApi) {
22
16
  _defineProperty(this, "hostApi", void 0);
23
17
  _defineProperty(this, "tileHostData", void 0);
@@ -34,83 +28,83 @@ class TileSDKImpl {
34
28
  for (var _len = arguments.length, errors = new Array(_len), _key = 0; _key < _len; _key++) {
35
29
  errors[_key] = arguments[_key];
36
30
  }
37
- this.hostApi.send(_types.ExtensionRequestType.TILE_ADD_ERRORS, {
31
+ this.hostApi.send(ExtensionRequestType.TILE_ADD_ERRORS, {
38
32
  errors
39
33
  });
40
34
  } else {
41
- throw _errors.NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR;
35
+ throw NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR;
42
36
  }
43
37
  }
44
38
  clearErrors(group) {
45
39
  if (this.hostApi.isDashboardMountSupported) {
46
- this.hostApi.send(_types.ExtensionRequestType.TILE_CLEAR_ERRORS, {
40
+ this.hostApi.send(ExtensionRequestType.TILE_CLEAR_ERRORS, {
47
41
  group
48
42
  });
49
43
  } else {
50
- throw _errors.NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR;
44
+ throw NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR;
51
45
  }
52
46
  }
53
47
  trigger(message, config, event) {
54
48
  if (this.hostApi.isDashboardMountSupported) {
55
- this.hostApi.send(_types.ExtensionRequestType.TILE_TRIGGER, {
49
+ this.hostApi.send(ExtensionRequestType.TILE_TRIGGER, {
56
50
  message,
57
51
  config,
58
52
  event: this.sanitizeEvent(event)
59
53
  });
60
54
  } else {
61
- throw _errors.NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR;
55
+ throw NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR;
62
56
  }
63
57
  }
64
58
  openDrillMenu(options, event) {
65
59
  if (this.hostApi.isDashboardMountSupported) {
66
- this.hostApi.send(_types.ExtensionRequestType.TILE_OPEN_DRILL_MENU, {
60
+ this.hostApi.send(ExtensionRequestType.TILE_OPEN_DRILL_MENU, {
67
61
  options,
68
62
  event: this.sanitizeEvent(event)
69
63
  });
70
64
  } else {
71
- throw _errors.NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR;
65
+ throw NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR;
72
66
  }
73
67
  }
74
68
  toggleCrossFilter(options, event) {
75
69
  if (this.hostApi.isDashboardMountSupported) {
76
- this.hostApi.send(_types.ExtensionRequestType.TILE_TOGGLE_CROSS_FILTER, {
70
+ this.hostApi.send(ExtensionRequestType.TILE_TOGGLE_CROSS_FILTER, {
77
71
  options,
78
72
  event: this.sanitizeEvent(event)
79
73
  });
80
74
  } else {
81
- throw _errors.NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR;
75
+ throw NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR;
82
76
  }
83
77
  }
84
78
  runDashboard() {
85
79
  if (this.hostApi.isDashboardMountSupported) {
86
- this.hostApi.send(_types.ExtensionRequestType.TILE_RUN_DASHBOARD, {});
80
+ this.hostApi.send(ExtensionRequestType.TILE_RUN_DASHBOARD, {});
87
81
  } else {
88
- throw _errors.NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR;
82
+ throw NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR;
89
83
  }
90
84
  }
91
85
  stopDashboard() {
92
86
  if (this.hostApi.isDashboardMountSupported) {
93
- this.hostApi.send(_types.ExtensionRequestType.TILE_STOP_DASHBOARD, {});
87
+ this.hostApi.send(ExtensionRequestType.TILE_STOP_DASHBOARD, {});
94
88
  } else {
95
- throw _errors.NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR;
89
+ throw NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR;
96
90
  }
97
91
  }
98
92
  updateFilters(filters) {
99
93
  var runDashboard = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
100
94
  if (this.hostApi.isDashboardMountSupported) {
101
- this.hostApi.send(_types.ExtensionRequestType.TILE_UPDATE_FILTERS, {
95
+ this.hostApi.send(ExtensionRequestType.TILE_UPDATE_FILTERS, {
102
96
  filters,
103
97
  runDashboard
104
98
  });
105
99
  } else {
106
- throw _errors.NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR;
100
+ throw NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR;
107
101
  }
108
102
  }
109
103
  openScheduleDialog() {
110
104
  if (this.hostApi.isDashboardMountSupported) {
111
- return this.hostApi.sendAndReceive(_types.ExtensionRequestType.TILE_OPEN_SCHEDULE_DIALOG, {});
105
+ return this.hostApi.sendAndReceive(ExtensionRequestType.TILE_OPEN_SCHEDULE_DIALOG, {});
112
106
  } else {
113
- throw _errors.NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR;
107
+ throw NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR;
114
108
  }
115
109
  }
116
110
  sanitizeEvent(event) {
@@ -125,5 +119,4 @@ class TileSDKImpl {
125
119
  return undefined;
126
120
  }
127
121
  }
128
- exports.TileSDKImpl = TileSDKImpl;
129
122
  //# sourceMappingURL=tile_sdk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tile_sdk.js","names":["_errors","require","_types","_types2","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","defaultHostData","isDashboardEditing","dashboardRunState","DashboardRunState","UNKNOWN","dashboardFilters","TileSDKImpl","constructor","hostApi","tileHostData","tileHostDataChanged","partialHostData","isDashboardMountSupported","addErrors","_len","errors","Array","_key","send","ExtensionRequestType","TILE_ADD_ERRORS","NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR","clearErrors","group","TILE_CLEAR_ERRORS","trigger","message","config","event","TILE_TRIGGER","sanitizeEvent","openDrillMenu","options","TILE_OPEN_DRILL_MENU","toggleCrossFilter","TILE_TOGGLE_CROSS_FILTER","runDashboard","TILE_RUN_DASHBOARD","stopDashboard","TILE_STOP_DASHBOARD","updateFilters","filters","TILE_UPDATE_FILTERS","openScheduleDialog","sendAndReceive","TILE_OPEN_SCHEDULE_DIALOG","metaKey","pageX","pageY","type","exports"],"sources":["../../../../src/connect/tile/tile_sdk.ts"],"sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2022 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport type { MouseEvent } from 'react'\nimport { NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR } from '../../util/errors'\nimport { ExtensionRequestType } from '../types'\nimport type { ExtensionHostApiImpl } from '../extension_host_api'\nimport type {\n TileSDK,\n TileError,\n DrillMenuOptions,\n TriggerConfig,\n CrossFilterOptions,\n Filters,\n TileHostData,\n} from './types'\nimport { DashboardRunState } from './types'\n\nconst defaultHostData: TileHostData = {\n isDashboardEditing: false,\n dashboardRunState: DashboardRunState.UNKNOWN,\n dashboardFilters: {},\n}\nexport class TileSDKImpl implements TileSDK {\n hostApi: ExtensionHostApiImpl\n tileHostData: TileHostData\n\n constructor(hostApi: ExtensionHostApiImpl) {\n this.hostApi = hostApi\n this.tileHostData = { ...defaultHostData }\n }\n\n tileHostDataChanged(partialHostData: Partial<TileHostData>) {\n // Ignore update messages if dashboard mounts not supported.\n // Should never happen.\n if (this.hostApi.isDashboardMountSupported) {\n this.tileHostData = { ...this.tileHostData, ...partialHostData }\n }\n }\n\n addErrors(...errors: TileError[]) {\n if (this.hostApi.isDashboardMountSupported) {\n this.hostApi.send(ExtensionRequestType.TILE_ADD_ERRORS, { errors })\n } else {\n throw NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR\n }\n }\n\n clearErrors(group?: string) {\n if (this.hostApi.isDashboardMountSupported) {\n this.hostApi.send(ExtensionRequestType.TILE_CLEAR_ERRORS, { group })\n } else {\n throw NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR\n }\n }\n\n trigger(message: string, config: TriggerConfig[], event?: MouseEvent) {\n if (this.hostApi.isDashboardMountSupported) {\n this.hostApi.send(ExtensionRequestType.TILE_TRIGGER, {\n message,\n config,\n event: this.sanitizeEvent(event),\n })\n } else {\n throw NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR\n }\n }\n\n openDrillMenu(options: DrillMenuOptions, event?: MouseEvent) {\n if (this.hostApi.isDashboardMountSupported) {\n this.hostApi.send(ExtensionRequestType.TILE_OPEN_DRILL_MENU, {\n options,\n event: this.sanitizeEvent(event),\n })\n } else {\n throw NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR\n }\n }\n\n toggleCrossFilter(options: CrossFilterOptions, event?: MouseEvent) {\n if (this.hostApi.isDashboardMountSupported) {\n this.hostApi.send(ExtensionRequestType.TILE_TOGGLE_CROSS_FILTER, {\n options,\n event: this.sanitizeEvent(event),\n })\n } else {\n throw NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR\n }\n }\n\n runDashboard() {\n if (this.hostApi.isDashboardMountSupported) {\n this.hostApi.send(ExtensionRequestType.TILE_RUN_DASHBOARD, {})\n } else {\n throw NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR\n }\n }\n\n stopDashboard() {\n if (this.hostApi.isDashboardMountSupported) {\n this.hostApi.send(ExtensionRequestType.TILE_STOP_DASHBOARD, {})\n } else {\n throw NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR\n }\n }\n\n updateFilters(filters: Filters, runDashboard = false) {\n if (this.hostApi.isDashboardMountSupported) {\n this.hostApi.send(ExtensionRequestType.TILE_UPDATE_FILTERS, {\n filters,\n runDashboard,\n })\n } else {\n throw NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR\n }\n }\n\n openScheduleDialog() {\n if (this.hostApi.isDashboardMountSupported) {\n return this.hostApi.sendAndReceive(\n ExtensionRequestType.TILE_OPEN_SCHEDULE_DIALOG,\n {}\n )\n } else {\n throw NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR\n }\n }\n\n sanitizeEvent(event?: MouseEvent) {\n if (event) {\n return {\n metaKey: event.metaKey,\n pageX: event.pageX,\n pageY: event.pageY,\n type: event.type,\n }\n }\n return undefined\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"tile_sdk.js","names":["NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR","ExtensionRequestType","DashboardRunState","defaultHostData","isDashboardEditing","dashboardRunState","UNKNOWN","dashboardFilters","TileSDKImpl","constructor","hostApi","_defineProperty","tileHostData","_objectSpread","tileHostDataChanged","partialHostData","isDashboardMountSupported","addErrors","_len","arguments","length","errors","Array","_key","send","TILE_ADD_ERRORS","clearErrors","group","TILE_CLEAR_ERRORS","trigger","message","config","event","TILE_TRIGGER","sanitizeEvent","openDrillMenu","options","TILE_OPEN_DRILL_MENU","toggleCrossFilter","TILE_TOGGLE_CROSS_FILTER","runDashboard","TILE_RUN_DASHBOARD","stopDashboard","TILE_STOP_DASHBOARD","updateFilters","filters","undefined","TILE_UPDATE_FILTERS","openScheduleDialog","sendAndReceive","TILE_OPEN_SCHEDULE_DIALOG","metaKey","pageX","pageY","type"],"sources":["../../../../src/connect/tile/tile_sdk.ts"],"sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2022 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport type { MouseEvent } from 'react'\nimport { NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR } from '../../util/errors'\nimport { ExtensionRequestType } from '../types'\nimport type { ExtensionHostApiImpl } from '../extension_host_api'\nimport type {\n TileSDK,\n TileError,\n DrillMenuOptions,\n TriggerConfig,\n CrossFilterOptions,\n Filters,\n TileHostData,\n} from './types'\nimport { DashboardRunState } from './types'\n\nconst defaultHostData: TileHostData = {\n isDashboardEditing: false,\n dashboardRunState: DashboardRunState.UNKNOWN,\n dashboardFilters: {},\n}\nexport class TileSDKImpl implements TileSDK {\n hostApi: ExtensionHostApiImpl\n tileHostData: TileHostData\n\n constructor(hostApi: ExtensionHostApiImpl) {\n this.hostApi = hostApi\n this.tileHostData = { ...defaultHostData }\n }\n\n tileHostDataChanged(partialHostData: Partial<TileHostData>) {\n // Ignore update messages if dashboard mounts not supported.\n // Should never happen.\n if (this.hostApi.isDashboardMountSupported) {\n this.tileHostData = { ...this.tileHostData, ...partialHostData }\n }\n }\n\n addErrors(...errors: TileError[]) {\n if (this.hostApi.isDashboardMountSupported) {\n this.hostApi.send(ExtensionRequestType.TILE_ADD_ERRORS, { errors })\n } else {\n throw NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR\n }\n }\n\n clearErrors(group?: string) {\n if (this.hostApi.isDashboardMountSupported) {\n this.hostApi.send(ExtensionRequestType.TILE_CLEAR_ERRORS, { group })\n } else {\n throw NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR\n }\n }\n\n trigger(message: string, config: TriggerConfig[], event?: MouseEvent) {\n if (this.hostApi.isDashboardMountSupported) {\n this.hostApi.send(ExtensionRequestType.TILE_TRIGGER, {\n message,\n config,\n event: this.sanitizeEvent(event),\n })\n } else {\n throw NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR\n }\n }\n\n openDrillMenu(options: DrillMenuOptions, event?: MouseEvent) {\n if (this.hostApi.isDashboardMountSupported) {\n this.hostApi.send(ExtensionRequestType.TILE_OPEN_DRILL_MENU, {\n options,\n event: this.sanitizeEvent(event),\n })\n } else {\n throw NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR\n }\n }\n\n toggleCrossFilter(options: CrossFilterOptions, event?: MouseEvent) {\n if (this.hostApi.isDashboardMountSupported) {\n this.hostApi.send(ExtensionRequestType.TILE_TOGGLE_CROSS_FILTER, {\n options,\n event: this.sanitizeEvent(event),\n })\n } else {\n throw NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR\n }\n }\n\n runDashboard() {\n if (this.hostApi.isDashboardMountSupported) {\n this.hostApi.send(ExtensionRequestType.TILE_RUN_DASHBOARD, {})\n } else {\n throw NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR\n }\n }\n\n stopDashboard() {\n if (this.hostApi.isDashboardMountSupported) {\n this.hostApi.send(ExtensionRequestType.TILE_STOP_DASHBOARD, {})\n } else {\n throw NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR\n }\n }\n\n updateFilters(filters: Filters, runDashboard = false) {\n if (this.hostApi.isDashboardMountSupported) {\n this.hostApi.send(ExtensionRequestType.TILE_UPDATE_FILTERS, {\n filters,\n runDashboard,\n })\n } else {\n throw NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR\n }\n }\n\n openScheduleDialog() {\n if (this.hostApi.isDashboardMountSupported) {\n return this.hostApi.sendAndReceive(\n ExtensionRequestType.TILE_OPEN_SCHEDULE_DIALOG,\n {}\n )\n } else {\n throw NOT_DASHBOARD_MOUNT_NOT_SUPPORTED_ERROR\n }\n }\n\n sanitizeEvent(event?: MouseEvent) {\n if (event) {\n return {\n metaKey: event.metaKey,\n pageX: event.pageX,\n pageY: event.pageY,\n type: event.type,\n }\n }\n return undefined\n }\n}\n"],"mappings":"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"}