@looker/extension-utils 0.1.40 → 0.1.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -138,6 +138,51 @@
138
138
  * @looker/extension-sdk-react bumped from 24.12.0 to 24.12.1
139
139
  * @looker/sdk bumped from 24.12.0 to 24.12.1
140
140
 
141
+ ### Dependencies
142
+
143
+ * The following workspace dependencies were updated
144
+ * dependencies
145
+ * @looker/code-editor bumped from 0.1.30 to 0.1.31
146
+ * @looker/extension-sdk bumped from 24.12.1 to 24.14.0
147
+ * @looker/extension-sdk-react bumped from 24.12.1 to 24.14.0
148
+ * @looker/sdk bumped from 24.12.1 to 24.14.0
149
+
150
+ ## [0.1.43](https://github.com/looker-open-source/sdk-codegen/compare/extension-utils-v0.1.42...extension-utils-v0.1.43) (2024-09-14)
151
+
152
+
153
+ ### Bug Fixes
154
+
155
+ * fix release 24.16.2 ([#1505](https://github.com/looker-open-source/sdk-codegen/issues/1505)) ([1cd1806](https://github.com/looker-open-source/sdk-codegen/commit/1cd180615901d2daf1fb112b41f2a72d2caacf61))
156
+
157
+
158
+ ### Dependencies
159
+
160
+ * The following workspace dependencies were updated
161
+ * dependencies
162
+ * @looker/code-editor bumped from 0.1.32 to 0.1.33
163
+ * @looker/extension-sdk bumped from 24.16.0 to 24.16.1
164
+ * @looker/extension-sdk-react bumped from 24.16.0 to 24.16.1
165
+ * @looker/sdk bumped from 24.16.0 to 24.16.1
166
+ * @looker/sdk-rtl bumped from 21.6.2 to 21.6.3
167
+
168
+ ## [0.1.42](https://github.com/looker-open-source/sdk-codegen/compare/extension-utils-v0.1.41...extension-utils-v0.1.42) (2024-09-11)
169
+
170
+
171
+ ### Bug Fixes
172
+
173
+ * Remove the requests package from the TypeScript SDK ([#1491](https://github.com/looker-open-source/sdk-codegen/issues/1491)) ([670377c](https://github.com/looker-open-source/sdk-codegen/commit/670377c46a546bbd8dcc6679b8aeb041da1b4670)), closes [#1439](https://github.com/looker-open-source/sdk-codegen/issues/1439)
174
+
175
+
176
+ ### Dependencies
177
+
178
+ * The following workspace dependencies were updated
179
+ * dependencies
180
+ * @looker/code-editor bumped from 0.1.31 to 0.1.32
181
+ * @looker/extension-sdk bumped from 24.14.0 to 24.16.0
182
+ * @looker/extension-sdk-react bumped from 24.14.0 to 24.16.0
183
+ * @looker/sdk bumped from 24.14.0 to 24.16.0
184
+ * @looker/sdk-rtl bumped from 21.6.1 to 21.6.2
185
+
141
186
  ## [0.1.27](https://github.com/looker-open-source/sdk-codegen/compare/extension-utils-v0.1.26...extension-utils-v0.1.27) (2023-07-17)
142
187
 
143
188
  ### Features
@@ -1 +1 @@
1
- {"version":3,"file":"sagas.js","names":["_typedReduxSaga","require","_utils","_slice","getLocalStorageConfig","configKey","EmptyConfig","base_url","looker_url","data","localStorage","getItem","result","JSON","parse","initSaga","action","initSuccessAction","setFailureAction","OAuthFormActions","call","payload","put","error","message","setUrlSaga","updateValidationMessages","setUrlActionSuccess","url","validateUrl","value","Error","concat","elementName","name","newMessage","type","clearConfigSaga","clearConfigActionSuccess","updateMessageBarAction","setHasConfig","isAuthenticated","removeItem","intent","text","verifyConfigSaga","apiServerUrl","select","storeState","formState","OAuthFormSlice","verifyConfigActionFailure","verifyConfigActionSuccess","clearMessageBarAction","versionsUrl","versions","getVersions","web_server_url","saveConfigSaga","saveConfigActionSuccess","client_id","redirect_uri","api_server_url","setItem","stringify","saga","initAction","setUrlAction","clearConfigAction","verifyConfigAction","saveConfigAction","takeEvery"],"sources":["../../../../src/OAuthForm/src/state/sagas.ts"],"sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2023 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 type { PayloadAction } from '@reduxjs/toolkit';\nimport { call, put, select, takeEvery } from 'typed-redux-saga';\nimport type { ConfigValues } from '../utils';\nimport { getVersions, validateUrl } from '../utils';\nimport type {\n ClearConfigActionPayload,\n OAuthFormState,\n SaveConfigPayload,\n SetUrlActionPayload,\n} from './slice';\nimport { OAuthFormActions, OAuthFormSlice } from './slice';\n\n/**\n * get saved configData from localStorage key\n * @param configKey key that config will be saved under in local storage\n * @returns\n */\nconst getLocalStorageConfig = (configKey: string): ConfigValues => {\n const EmptyConfig = {\n base_url: '',\n looker_url: '',\n };\n const data = localStorage.getItem(configKey);\n const result = data ? JSON.parse(data) : EmptyConfig;\n\n return result;\n};\n\n/**\n * checks for saved configData in localStorage\n */\nfunction* initSaga(action: PayloadAction<string>) {\n const { initSuccessAction, setFailureAction } = OAuthFormActions;\n try {\n const result = yield* call(getLocalStorageConfig, action.payload);\n yield* put(initSuccessAction(result));\n } catch (error: any) {\n yield* put(setFailureAction(error.message));\n }\n}\n\n/**\n * updates the new url and adds or removes form validation message\n * @param action containing name and value of form element changed\n */\nfunction* setUrlSaga(action: PayloadAction<SetUrlActionPayload>) {\n const { updateValidationMessages, setUrlActionSuccess } = OAuthFormActions;\n try {\n const url = validateUrl(action.payload.value);\n if (!url) throw new Error(`${action.payload.value} is not a valid url`);\n\n // clear the error message if one was there\n yield* put(\n updateValidationMessages({\n elementName: action.payload.name,\n newMessage: null,\n })\n );\n } catch (error: any) {\n yield* put(\n updateValidationMessages({\n elementName: action.payload.name,\n newMessage: {\n message: error.message,\n type: 'error',\n },\n })\n );\n } finally {\n // update the form element\n const url = validateUrl(action.payload.value);\n yield* put(setUrlActionSuccess(url || action.payload.value));\n }\n}\n\n/**\n * clears form, removes local storage config key and triggers callback function\n * @param action containing the localstorage key to clear, a callback function, and if the user is already authenticated\n */\nfunction* clearConfigSaga(action: PayloadAction<ClearConfigActionPayload>) {\n const { clearConfigActionSuccess, setFailureAction, updateMessageBarAction } =\n OAuthFormActions;\n try {\n const { configKey, setHasConfig, isAuthenticated } = action.payload;\n localStorage.removeItem(configKey);\n if (setHasConfig) setHasConfig(false);\n if (isAuthenticated) {\n yield* put(\n updateMessageBarAction({\n intent: 'warn',\n text: 'Please reload the browser page to log out',\n })\n );\n }\n yield* put(clearConfigActionSuccess());\n } catch (error: any) {\n yield* put(setFailureAction(error.message));\n }\n}\n\n/**\n * verify button clicked, verifies apiServerUrl and populates OAuth server URL if valid\n */\nfunction* verifyConfigSaga() {\n const apiServerUrl = yield* select((storeState) => {\n const formState: OAuthFormState = storeState[OAuthFormSlice.name];\n return formState.apiServerUrl;\n });\n const {\n verifyConfigActionFailure,\n verifyConfigActionSuccess,\n clearMessageBarAction,\n } = OAuthFormActions;\n\n try {\n yield* put(clearMessageBarAction());\n const versionsUrl = `${apiServerUrl}/versions`;\n\n const versions = yield* call(getVersions, versionsUrl);\n if (!versions) throw new Error();\n\n yield* put(verifyConfigActionSuccess(versions.web_server_url));\n } catch (error: any) {\n yield* put(verifyConfigActionFailure(error.message));\n }\n}\n\n/**\n * save button clicked, verify api server url and if valid save config data to localstorage\n * @param action containing configKey, callback function, client_id and redirect_uri\n */\nfunction* saveConfigSaga(action: PayloadAction<SaveConfigPayload>) {\n const apiServerUrl = yield* select((storeState) => {\n const formState: OAuthFormState = storeState[OAuthFormSlice.name];\n return formState.apiServerUrl;\n });\n const {\n verifyConfigActionFailure,\n clearMessageBarAction,\n saveConfigActionSuccess,\n } = OAuthFormActions;\n const { configKey, setHasConfig, client_id, redirect_uri } = action.payload;\n\n try {\n yield* put(clearMessageBarAction());\n const versionsUrl = `${apiServerUrl}/versions`;\n\n const versions = yield* call(getVersions, versionsUrl);\n if (!versions) throw new Error();\n\n const data = {\n base_url: versions.api_server_url,\n looker_url: versions.web_server_url,\n client_id,\n redirect_uri,\n };\n localStorage.setItem(configKey, JSON.stringify(data));\n if (setHasConfig) setHasConfig(true);\n\n yield* put(\n saveConfigActionSuccess({\n base_url: versions.api_server_url,\n looker_url: versions.web_server_url,\n })\n );\n } catch (error: any) {\n yield* put(verifyConfigActionFailure(error.message));\n }\n}\n\nexport function* saga() {\n const {\n initAction,\n setUrlAction,\n clearConfigAction,\n verifyConfigAction,\n saveConfigAction,\n } = OAuthFormActions;\n yield* takeEvery(initAction, initSaga);\n yield* takeEvery(setUrlAction, setUrlSaga);\n yield* takeEvery(clearConfigAction, clearConfigSaga);\n yield* takeEvery(verifyConfigAction, verifyConfigSaga);\n yield* takeEvery(saveConfigAction, saveConfigSaga);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"sagas.js","names":["_typedReduxSaga","require","_utils","_slice","getLocalStorageConfig","configKey","EmptyConfig","base_url","looker_url","data","localStorage","getItem","result","JSON","parse","initSaga","action","initSuccessAction","setFailureAction","OAuthFormActions","call","payload","put","error","message","setUrlSaga","updateValidationMessages","setUrlActionSuccess","url","validateUrl","value","Error","concat","elementName","name","newMessage","type","clearConfigSaga","clearConfigActionSuccess","updateMessageBarAction","setHasConfig","isAuthenticated","removeItem","intent","text","verifyConfigSaga","apiServerUrl","select","storeState","formState","OAuthFormSlice","verifyConfigActionFailure","verifyConfigActionSuccess","clearMessageBarAction","versionsUrl","versions","getVersions","web_server_url","saveConfigSaga","saveConfigActionSuccess","client_id","redirect_uri","api_server_url","setItem","stringify","saga","initAction","setUrlAction","clearConfigAction","verifyConfigAction","saveConfigAction","takeEvery"],"sources":["../../../../src/OAuthForm/src/state/sagas.ts"],"sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2023 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 type { PayloadAction } from '@reduxjs/toolkit';\nimport { call, put, select, takeEvery } from 'typed-redux-saga';\nimport type { ConfigValues } from '../utils';\nimport { getVersions, validateUrl } from '../utils';\nimport type {\n ClearConfigActionPayload,\n OAuthFormState,\n SaveConfigPayload,\n SetUrlActionPayload,\n} from './slice';\nimport { OAuthFormActions, OAuthFormSlice } from './slice';\n\n/**\n * get saved configData from localStorage key\n * @param configKey key that config will be saved under in local storage\n * @returns\n */\nconst getLocalStorageConfig = (configKey: string): ConfigValues => {\n const EmptyConfig = {\n base_url: '',\n looker_url: '',\n };\n const data = localStorage.getItem(configKey);\n const result = data ? JSON.parse(data) : EmptyConfig;\n\n return result;\n};\n\n/**\n * checks for saved configData in localStorage\n */\nfunction* initSaga(action: PayloadAction<string>) {\n const { initSuccessAction, setFailureAction } = OAuthFormActions;\n try {\n const result = yield* call(getLocalStorageConfig, action.payload);\n yield* put(initSuccessAction(result));\n } catch (error: any) {\n yield* put(setFailureAction(error.message));\n }\n}\n\n/**\n * updates the new url and adds or removes form validation message\n * @param action containing name and value of form element changed\n */\nfunction* setUrlSaga(action: PayloadAction<SetUrlActionPayload>) {\n const { updateValidationMessages, setUrlActionSuccess } = OAuthFormActions;\n try {\n const url = validateUrl(action.payload.value);\n if (!url) throw new Error(`${action.payload.value} is not a valid url`);\n\n // clear the error message if one was there\n yield* put(\n updateValidationMessages({\n elementName: action.payload.name,\n newMessage: null,\n })\n );\n } catch (error: any) {\n yield* put(\n updateValidationMessages({\n elementName: action.payload.name,\n newMessage: {\n message: error.message,\n type: 'error',\n },\n })\n );\n } finally {\n // update the form element\n const url = validateUrl(action.payload.value);\n yield* put(setUrlActionSuccess(url || action.payload.value));\n }\n}\n\n/**\n * clears form, removes local storage config key and triggers callback function\n * @param action containing the localstorage key to clear, a callback function, and if the user is already authenticated\n */\nfunction* clearConfigSaga(action: PayloadAction<ClearConfigActionPayload>) {\n const { clearConfigActionSuccess, setFailureAction, updateMessageBarAction } =\n OAuthFormActions;\n try {\n const { configKey, setHasConfig, isAuthenticated } = action.payload;\n localStorage.removeItem(configKey);\n if (setHasConfig) setHasConfig(false);\n if (isAuthenticated) {\n yield* put(\n updateMessageBarAction({\n intent: 'warn',\n text: 'Please reload the browser page to log out',\n })\n );\n }\n yield* put(clearConfigActionSuccess());\n } catch (error: any) {\n yield* put(setFailureAction(error.message));\n }\n}\n\n/**\n * verify button clicked, verifies apiServerUrl and populates OAuth server URL if valid\n */\nfunction* verifyConfigSaga() {\n const apiServerUrl = yield* select(storeState => {\n const formState: OAuthFormState = storeState[OAuthFormSlice.name];\n return formState.apiServerUrl;\n });\n const {\n verifyConfigActionFailure,\n verifyConfigActionSuccess,\n clearMessageBarAction,\n } = OAuthFormActions;\n\n try {\n yield* put(clearMessageBarAction());\n const versionsUrl = `${apiServerUrl}/versions`;\n\n const versions = yield* call(getVersions, versionsUrl);\n if (!versions) throw new Error();\n\n yield* put(verifyConfigActionSuccess(versions.web_server_url));\n } catch (error: any) {\n yield* put(verifyConfigActionFailure(error.message));\n }\n}\n\n/**\n * save button clicked, verify api server url and if valid save config data to localstorage\n * @param action containing configKey, callback function, client_id and redirect_uri\n */\nfunction* saveConfigSaga(action: PayloadAction<SaveConfigPayload>) {\n const apiServerUrl = yield* select(storeState => {\n const formState: OAuthFormState = storeState[OAuthFormSlice.name];\n return formState.apiServerUrl;\n });\n const {\n verifyConfigActionFailure,\n clearMessageBarAction,\n saveConfigActionSuccess,\n } = OAuthFormActions;\n const { configKey, setHasConfig, client_id, redirect_uri } = action.payload;\n\n try {\n yield* put(clearMessageBarAction());\n const versionsUrl = `${apiServerUrl}/versions`;\n\n const versions = yield* call(getVersions, versionsUrl);\n if (!versions) throw new Error();\n\n const data = {\n base_url: versions.api_server_url,\n looker_url: versions.web_server_url,\n client_id,\n redirect_uri,\n };\n localStorage.setItem(configKey, JSON.stringify(data));\n if (setHasConfig) setHasConfig(true);\n\n yield* put(\n saveConfigActionSuccess({\n base_url: versions.api_server_url,\n looker_url: versions.web_server_url,\n })\n );\n } catch (error: any) {\n yield* put(verifyConfigActionFailure(error.message));\n }\n}\n\nexport function* saga() {\n const {\n initAction,\n setUrlAction,\n clearConfigAction,\n verifyConfigAction,\n saveConfigAction,\n } = OAuthFormActions;\n yield* takeEvery(initAction, initSaga);\n yield* takeEvery(setUrlAction, setUrlSaga);\n yield* takeEvery(clearConfigAction, clearConfigSaga);\n yield* takeEvery(verifyConfigAction, verifyConfigSaga);\n yield* takeEvery(saveConfigAction, saveConfigSaga);\n}\n"],"mappings":"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"}
@@ -87,5 +87,28 @@ export declare const OAuthFormActions: import("@reduxjs/toolkit").CaseReducerAct
87
87
  updateMessageBarAction(state: import("immer/dist/internal").WritableDraft<OAuthFormState>, action: PayloadAction<MessageBarData>): void;
88
88
  setFailureAction(state: import("immer/dist/internal").WritableDraft<OAuthFormState>, action: PayloadAction<string>): void;
89
89
  }, "OAuthForm">;
90
- export declare const useOAuthFormActions: () => any, useOAuthFormState: () => OAuthFormState;
90
+ export declare const useOAuthFormActions: () => import("@reduxjs/toolkit").CaseReducerActions<{
91
+ initAction(_state: import("immer/dist/internal").WritableDraft<OAuthFormState>, _action: PayloadAction<string>): void;
92
+ initSuccessAction(state: import("immer/dist/internal").WritableDraft<OAuthFormState>, action: PayloadAction<ConfigValues>): void;
93
+ setUrlAction(_state: import("immer/dist/internal").WritableDraft<OAuthFormState>, _action: PayloadAction<SetUrlActionPayload>): void;
94
+ setUrlActionSuccess(state: import("immer/dist/internal").WritableDraft<OAuthFormState>, action: PayloadAction<string>): void;
95
+ updateValidationMessages(state: import("immer/dist/internal").WritableDraft<OAuthFormState>, action: PayloadAction<UpdateValidationMessagesPayload>): void;
96
+ clearConfigAction(_state: import("immer/dist/internal").WritableDraft<OAuthFormState>, _action: PayloadAction<ClearConfigActionPayload>): void;
97
+ clearConfigActionSuccess(): {
98
+ apiServerUrl: string;
99
+ fetchedUrl: string;
100
+ webUrl: string;
101
+ messageBar: MessageBarData;
102
+ validationMessages: ValidationMessages;
103
+ savedConfig: ConfigValues;
104
+ };
105
+ verifyConfigAction(state: import("immer/dist/internal").WritableDraft<OAuthFormState>): void;
106
+ verifyConfigActionSuccess(state: import("immer/dist/internal").WritableDraft<OAuthFormState>, action: PayloadAction<string>): void;
107
+ verifyConfigActionFailure(state: import("immer/dist/internal").WritableDraft<OAuthFormState>, action: PayloadAction<string>): void;
108
+ saveConfigAction(_state: import("immer/dist/internal").WritableDraft<OAuthFormState>, _action: PayloadAction<SaveConfigPayload>): void;
109
+ saveConfigActionSuccess(state: import("immer/dist/internal").WritableDraft<OAuthFormState>, action: PayloadAction<SaveConfigSuccessPayload>): void;
110
+ clearMessageBarAction(state: import("immer/dist/internal").WritableDraft<OAuthFormState>): void;
111
+ updateMessageBarAction(state: import("immer/dist/internal").WritableDraft<OAuthFormState>, action: PayloadAction<MessageBarData>): void;
112
+ setFailureAction(state: import("immer/dist/internal").WritableDraft<OAuthFormState>, action: PayloadAction<string>): void;
113
+ }>, useOAuthFormState: () => OAuthFormState;
91
114
  export {};
@@ -27,5 +27,5 @@ export declare const getThemeOverrides: (internalTheming: boolean) => ThemeOverr
27
27
  export declare const registerEnvAdaptor: <T extends IEnvironmentAdaptor>(adaptor: T) => void;
28
28
  export declare const unregisterEnvAdaptor: () => void;
29
29
  export declare const getEnvAdaptor: () => IEnvironmentAdaptor;
30
- export declare const registerTestEnvAdaptor: <T extends IEnvironmentAdaptor>(adaptor?: T | undefined) => void;
30
+ export declare const registerTestEnvAdaptor: <T extends IEnvironmentAdaptor>(adaptor?: T) => void;
31
31
  export declare const appPath: (location: HLocation, newPath: string) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"sagas.js","names":["call","put","select","takeEvery","getVersions","validateUrl","OAuthFormActions","OAuthFormSlice","getLocalStorageConfig","configKey","EmptyConfig","base_url","looker_url","data","localStorage","getItem","result","JSON","parse","initSaga","action","initSuccessAction","setFailureAction","payload","error","message","setUrlSaga","updateValidationMessages","setUrlActionSuccess","url","value","Error","concat","elementName","name","newMessage","type","clearConfigSaga","clearConfigActionSuccess","updateMessageBarAction","setHasConfig","isAuthenticated","removeItem","intent","text","verifyConfigSaga","apiServerUrl","storeState","formState","verifyConfigActionFailure","verifyConfigActionSuccess","clearMessageBarAction","versionsUrl","versions","web_server_url","saveConfigSaga","saveConfigActionSuccess","client_id","redirect_uri","api_server_url","setItem","stringify","saga","initAction","setUrlAction","clearConfigAction","verifyConfigAction","saveConfigAction"],"sources":["../../../../../src/OAuthForm/src/state/sagas.ts"],"sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2023 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 type { PayloadAction } from '@reduxjs/toolkit';\nimport { call, put, select, takeEvery } from 'typed-redux-saga';\nimport type { ConfigValues } from '../utils';\nimport { getVersions, validateUrl } from '../utils';\nimport type {\n ClearConfigActionPayload,\n OAuthFormState,\n SaveConfigPayload,\n SetUrlActionPayload,\n} from './slice';\nimport { OAuthFormActions, OAuthFormSlice } from './slice';\n\n/**\n * get saved configData from localStorage key\n * @param configKey key that config will be saved under in local storage\n * @returns\n */\nconst getLocalStorageConfig = (configKey: string): ConfigValues => {\n const EmptyConfig = {\n base_url: '',\n looker_url: '',\n };\n const data = localStorage.getItem(configKey);\n const result = data ? JSON.parse(data) : EmptyConfig;\n\n return result;\n};\n\n/**\n * checks for saved configData in localStorage\n */\nfunction* initSaga(action: PayloadAction<string>) {\n const { initSuccessAction, setFailureAction } = OAuthFormActions;\n try {\n const result = yield* call(getLocalStorageConfig, action.payload);\n yield* put(initSuccessAction(result));\n } catch (error: any) {\n yield* put(setFailureAction(error.message));\n }\n}\n\n/**\n * updates the new url and adds or removes form validation message\n * @param action containing name and value of form element changed\n */\nfunction* setUrlSaga(action: PayloadAction<SetUrlActionPayload>) {\n const { updateValidationMessages, setUrlActionSuccess } = OAuthFormActions;\n try {\n const url = validateUrl(action.payload.value);\n if (!url) throw new Error(`${action.payload.value} is not a valid url`);\n\n // clear the error message if one was there\n yield* put(\n updateValidationMessages({\n elementName: action.payload.name,\n newMessage: null,\n })\n );\n } catch (error: any) {\n yield* put(\n updateValidationMessages({\n elementName: action.payload.name,\n newMessage: {\n message: error.message,\n type: 'error',\n },\n })\n );\n } finally {\n // update the form element\n const url = validateUrl(action.payload.value);\n yield* put(setUrlActionSuccess(url || action.payload.value));\n }\n}\n\n/**\n * clears form, removes local storage config key and triggers callback function\n * @param action containing the localstorage key to clear, a callback function, and if the user is already authenticated\n */\nfunction* clearConfigSaga(action: PayloadAction<ClearConfigActionPayload>) {\n const { clearConfigActionSuccess, setFailureAction, updateMessageBarAction } =\n OAuthFormActions;\n try {\n const { configKey, setHasConfig, isAuthenticated } = action.payload;\n localStorage.removeItem(configKey);\n if (setHasConfig) setHasConfig(false);\n if (isAuthenticated) {\n yield* put(\n updateMessageBarAction({\n intent: 'warn',\n text: 'Please reload the browser page to log out',\n })\n );\n }\n yield* put(clearConfigActionSuccess());\n } catch (error: any) {\n yield* put(setFailureAction(error.message));\n }\n}\n\n/**\n * verify button clicked, verifies apiServerUrl and populates OAuth server URL if valid\n */\nfunction* verifyConfigSaga() {\n const apiServerUrl = yield* select((storeState) => {\n const formState: OAuthFormState = storeState[OAuthFormSlice.name];\n return formState.apiServerUrl;\n });\n const {\n verifyConfigActionFailure,\n verifyConfigActionSuccess,\n clearMessageBarAction,\n } = OAuthFormActions;\n\n try {\n yield* put(clearMessageBarAction());\n const versionsUrl = `${apiServerUrl}/versions`;\n\n const versions = yield* call(getVersions, versionsUrl);\n if (!versions) throw new Error();\n\n yield* put(verifyConfigActionSuccess(versions.web_server_url));\n } catch (error: any) {\n yield* put(verifyConfigActionFailure(error.message));\n }\n}\n\n/**\n * save button clicked, verify api server url and if valid save config data to localstorage\n * @param action containing configKey, callback function, client_id and redirect_uri\n */\nfunction* saveConfigSaga(action: PayloadAction<SaveConfigPayload>) {\n const apiServerUrl = yield* select((storeState) => {\n const formState: OAuthFormState = storeState[OAuthFormSlice.name];\n return formState.apiServerUrl;\n });\n const {\n verifyConfigActionFailure,\n clearMessageBarAction,\n saveConfigActionSuccess,\n } = OAuthFormActions;\n const { configKey, setHasConfig, client_id, redirect_uri } = action.payload;\n\n try {\n yield* put(clearMessageBarAction());\n const versionsUrl = `${apiServerUrl}/versions`;\n\n const versions = yield* call(getVersions, versionsUrl);\n if (!versions) throw new Error();\n\n const data = {\n base_url: versions.api_server_url,\n looker_url: versions.web_server_url,\n client_id,\n redirect_uri,\n };\n localStorage.setItem(configKey, JSON.stringify(data));\n if (setHasConfig) setHasConfig(true);\n\n yield* put(\n saveConfigActionSuccess({\n base_url: versions.api_server_url,\n looker_url: versions.web_server_url,\n })\n );\n } catch (error: any) {\n yield* put(verifyConfigActionFailure(error.message));\n }\n}\n\nexport function* saga() {\n const {\n initAction,\n setUrlAction,\n clearConfigAction,\n verifyConfigAction,\n saveConfigAction,\n } = OAuthFormActions;\n yield* takeEvery(initAction, initSaga);\n yield* takeEvery(setUrlAction, setUrlSaga);\n yield* takeEvery(clearConfigAction, clearConfigSaga);\n yield* takeEvery(verifyConfigAction, verifyConfigSaga);\n yield* takeEvery(saveConfigAction, saveConfigSaga);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"sagas.js","names":["call","put","select","takeEvery","getVersions","validateUrl","OAuthFormActions","OAuthFormSlice","getLocalStorageConfig","configKey","EmptyConfig","base_url","looker_url","data","localStorage","getItem","result","JSON","parse","initSaga","action","initSuccessAction","setFailureAction","payload","error","message","setUrlSaga","updateValidationMessages","setUrlActionSuccess","url","value","Error","concat","elementName","name","newMessage","type","clearConfigSaga","clearConfigActionSuccess","updateMessageBarAction","setHasConfig","isAuthenticated","removeItem","intent","text","verifyConfigSaga","apiServerUrl","storeState","formState","verifyConfigActionFailure","verifyConfigActionSuccess","clearMessageBarAction","versionsUrl","versions","web_server_url","saveConfigSaga","saveConfigActionSuccess","client_id","redirect_uri","api_server_url","setItem","stringify","saga","initAction","setUrlAction","clearConfigAction","verifyConfigAction","saveConfigAction"],"sources":["../../../../../src/OAuthForm/src/state/sagas.ts"],"sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2023 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 type { PayloadAction } from '@reduxjs/toolkit';\nimport { call, put, select, takeEvery } from 'typed-redux-saga';\nimport type { ConfigValues } from '../utils';\nimport { getVersions, validateUrl } from '../utils';\nimport type {\n ClearConfigActionPayload,\n OAuthFormState,\n SaveConfigPayload,\n SetUrlActionPayload,\n} from './slice';\nimport { OAuthFormActions, OAuthFormSlice } from './slice';\n\n/**\n * get saved configData from localStorage key\n * @param configKey key that config will be saved under in local storage\n * @returns\n */\nconst getLocalStorageConfig = (configKey: string): ConfigValues => {\n const EmptyConfig = {\n base_url: '',\n looker_url: '',\n };\n const data = localStorage.getItem(configKey);\n const result = data ? JSON.parse(data) : EmptyConfig;\n\n return result;\n};\n\n/**\n * checks for saved configData in localStorage\n */\nfunction* initSaga(action: PayloadAction<string>) {\n const { initSuccessAction, setFailureAction } = OAuthFormActions;\n try {\n const result = yield* call(getLocalStorageConfig, action.payload);\n yield* put(initSuccessAction(result));\n } catch (error: any) {\n yield* put(setFailureAction(error.message));\n }\n}\n\n/**\n * updates the new url and adds or removes form validation message\n * @param action containing name and value of form element changed\n */\nfunction* setUrlSaga(action: PayloadAction<SetUrlActionPayload>) {\n const { updateValidationMessages, setUrlActionSuccess } = OAuthFormActions;\n try {\n const url = validateUrl(action.payload.value);\n if (!url) throw new Error(`${action.payload.value} is not a valid url`);\n\n // clear the error message if one was there\n yield* put(\n updateValidationMessages({\n elementName: action.payload.name,\n newMessage: null,\n })\n );\n } catch (error: any) {\n yield* put(\n updateValidationMessages({\n elementName: action.payload.name,\n newMessage: {\n message: error.message,\n type: 'error',\n },\n })\n );\n } finally {\n // update the form element\n const url = validateUrl(action.payload.value);\n yield* put(setUrlActionSuccess(url || action.payload.value));\n }\n}\n\n/**\n * clears form, removes local storage config key and triggers callback function\n * @param action containing the localstorage key to clear, a callback function, and if the user is already authenticated\n */\nfunction* clearConfigSaga(action: PayloadAction<ClearConfigActionPayload>) {\n const { clearConfigActionSuccess, setFailureAction, updateMessageBarAction } =\n OAuthFormActions;\n try {\n const { configKey, setHasConfig, isAuthenticated } = action.payload;\n localStorage.removeItem(configKey);\n if (setHasConfig) setHasConfig(false);\n if (isAuthenticated) {\n yield* put(\n updateMessageBarAction({\n intent: 'warn',\n text: 'Please reload the browser page to log out',\n })\n );\n }\n yield* put(clearConfigActionSuccess());\n } catch (error: any) {\n yield* put(setFailureAction(error.message));\n }\n}\n\n/**\n * verify button clicked, verifies apiServerUrl and populates OAuth server URL if valid\n */\nfunction* verifyConfigSaga() {\n const apiServerUrl = yield* select(storeState => {\n const formState: OAuthFormState = storeState[OAuthFormSlice.name];\n return formState.apiServerUrl;\n });\n const {\n verifyConfigActionFailure,\n verifyConfigActionSuccess,\n clearMessageBarAction,\n } = OAuthFormActions;\n\n try {\n yield* put(clearMessageBarAction());\n const versionsUrl = `${apiServerUrl}/versions`;\n\n const versions = yield* call(getVersions, versionsUrl);\n if (!versions) throw new Error();\n\n yield* put(verifyConfigActionSuccess(versions.web_server_url));\n } catch (error: any) {\n yield* put(verifyConfigActionFailure(error.message));\n }\n}\n\n/**\n * save button clicked, verify api server url and if valid save config data to localstorage\n * @param action containing configKey, callback function, client_id and redirect_uri\n */\nfunction* saveConfigSaga(action: PayloadAction<SaveConfigPayload>) {\n const apiServerUrl = yield* select(storeState => {\n const formState: OAuthFormState = storeState[OAuthFormSlice.name];\n return formState.apiServerUrl;\n });\n const {\n verifyConfigActionFailure,\n clearMessageBarAction,\n saveConfigActionSuccess,\n } = OAuthFormActions;\n const { configKey, setHasConfig, client_id, redirect_uri } = action.payload;\n\n try {\n yield* put(clearMessageBarAction());\n const versionsUrl = `${apiServerUrl}/versions`;\n\n const versions = yield* call(getVersions, versionsUrl);\n if (!versions) throw new Error();\n\n const data = {\n base_url: versions.api_server_url,\n looker_url: versions.web_server_url,\n client_id,\n redirect_uri,\n };\n localStorage.setItem(configKey, JSON.stringify(data));\n if (setHasConfig) setHasConfig(true);\n\n yield* put(\n saveConfigActionSuccess({\n base_url: versions.api_server_url,\n looker_url: versions.web_server_url,\n })\n );\n } catch (error: any) {\n yield* put(verifyConfigActionFailure(error.message));\n }\n}\n\nexport function* saga() {\n const {\n initAction,\n setUrlAction,\n clearConfigAction,\n verifyConfigAction,\n saveConfigAction,\n } = OAuthFormActions;\n yield* takeEvery(initAction, initSaga);\n yield* takeEvery(setUrlAction, setUrlSaga);\n yield* takeEvery(clearConfigAction, clearConfigSaga);\n yield* takeEvery(verifyConfigAction, verifyConfigSaga);\n yield* takeEvery(saveConfigAction, saveConfigSaga);\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"extensionAdaptor.js","names":["getThemeOverrides","ExtensionAuthAdaptor","constructor","sdk","login","_asyncToGenerator","ExtensionAdaptor","extensionSdk","_defineProperty","_themeOverrides","lookerHostData","hostType","copyToClipboard","location","_this","hostOrigin","extensionId","pathname","search","url","concat","clipboardWrite","isExtension","localStorageGetItem","key","_this2","localStorageSetItem","value","_this3","localStorageRemoveItem","_this4","themeOverrides","openBrowserWindow","target","logError","error","componentStack","message"],"sources":["../../src/extensionAdaptor.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 { ExtensionSDK } from '@looker/extension-sdk';\nimport type { IAPIMethods } from '@looker/sdk-rtl';\nimport type {\n IAuthAdaptor,\n IEnvironmentAdaptor,\n ThemeOverrides,\n} from './adaptorUtils';\nimport { getThemeOverrides } from './adaptorUtils';\n\nexport class ExtensionAuthAdaptor implements IAuthAdaptor {\n constructor(public readonly sdk: IAPIMethods) {}\n\n async login() {\n // Noop for extensions. Authentication is not required in an extension context\n return true;\n }\n}\n\n/**\n * An adaptor class for interacting with browser APIs when running as an extension\n */\nexport class ExtensionAdaptor\n extends ExtensionAuthAdaptor\n implements IEnvironmentAdaptor\n{\n _themeOverrides: ThemeOverrides;\n\n constructor(\n public extensionSdk: ExtensionSDK,\n sdk: IAPIMethods\n ) {\n super(sdk);\n this._themeOverrides = getThemeOverrides(\n (this.extensionSdk.lookerHostData || { hostType: 'standard' })\n .hostType === 'standard'\n );\n }\n\n async copyToClipboard(location?: { pathname: string; search: string }) {\n const { lookerHostData } = this.extensionSdk;\n if (lookerHostData && location) {\n const { hostOrigin, extensionId } = lookerHostData;\n const { pathname, search } = location;\n const url = `${hostOrigin}/extensions/${extensionId}${pathname}${search}`;\n await this.extensionSdk.clipboardWrite(url);\n }\n }\n\n isExtension() {\n return true;\n }\n\n async localStorageGetItem(key: string) {\n return await this.extensionSdk.localStorageGetItem(key);\n }\n\n async localStorageSetItem(key: string, value: string) {\n await this.extensionSdk.localStorageSetItem(key, value);\n }\n\n async localStorageRemoveItem(key: string) {\n await this.extensionSdk.localStorageRemoveItem(key);\n }\n\n themeOverrides(): ThemeOverrides {\n return this._themeOverrides;\n }\n\n openBrowserWindow(url: string, target?: string) {\n this.extensionSdk.openBrowserWindow(url, target);\n }\n\n logError(error: Error, componentStack: string): void {\n this.extensionSdk.error({\n error: error,\n message: componentStack,\n } as ErrorEvent);\n }\n}\n"],"mappings":";;;;;AAiCA,SAASA,iBAAiB,QAAQ,gBAAgB;AAElD,OAAO,MAAMC,oBAAoB,CAAyB;EACxDC,WAAWA,CAAiBC,GAAgB,EAAE;IAAA,KAAlBA,GAAgB,GAAhBA,GAAgB;EAAG;EAEzCC,KAAKA,CAAA,EAAG;IAAA,OAAAC,iBAAA;MAEZ,OAAO,IAAI;IAAC;EACd;AACF;AAKA,OAAO,MAAMC,gBAAgB,SACnBL,oBAAoB,CAE9B;EAGEC,WAAWA,CACFK,YAA0B,EACjCJ,GAAgB,EAChB;IACA,KAAK,CAACA,GAAG,CAAC;IAAC,KAHJI,YAA0B,GAA1BA,YAA0B;IAAAC,eAAA;IAIjC,IAAI,CAACC,eAAe,GAAGT,iBAAiB,CACtC,CAAC,IAAI,CAACO,YAAY,CAACG,cAAc,IAAI;MAAEC,QAAQ,EAAE;IAAW,CAAC,EAC1DA,QAAQ,KAAK,UAClB,CAAC;EACH;EAEMC,eAAeA,CAACC,QAA+C,EAAE;IAAA,IAAAC,KAAA;IAAA,OAAAT,iBAAA;MACrE,IAAM;QAAEK;MAAe,CAAC,GAAGI,KAAI,CAACP,YAAY;MAC5C,IAAIG,cAAc,IAAIG,QAAQ,EAAE;QAC9B,IAAM;UAAEE,UAAU;UAAEC;QAAY,CAAC,GAAGN,cAAc;QAClD,IAAM;UAAEO,QAAQ;UAAEC;QAAO,CAAC,GAAGL,QAAQ;QACrC,IAAMM,GAAG,MAAAC,MAAA,CAAML,UAAU,kBAAAK,MAAA,CAAeJ,WAAW,EAAAI,MAAA,CAAGH,QAAQ,EAAAG,MAAA,CAAGF,MAAM,CAAE;QACzE,MAAMJ,KAAI,CAACP,YAAY,CAACc,cAAc,CAACF,GAAG,CAAC;MAC7C;IAAC;EACH;EAEAG,WAAWA,CAAA,EAAG;IACZ,OAAO,IAAI;EACb;EAEMC,mBAAmBA,CAACC,GAAW,EAAE;IAAA,IAAAC,MAAA;IAAA,OAAApB,iBAAA;MACrC,aAAaoB,MAAI,CAAClB,YAAY,CAACgB,mBAAmB,CAACC,GAAG,CAAC;IAAC;EAC1D;EAEME,mBAAmBA,CAACF,GAAW,EAAEG,KAAa,EAAE;IAAA,IAAAC,MAAA;IAAA,OAAAvB,iBAAA;MACpD,MAAMuB,MAAI,CAACrB,YAAY,CAACmB,mBAAmB,CAACF,GAAG,EAAEG,KAAK,CAAC;IAAC;EAC1D;EAEME,sBAAsBA,CAACL,GAAW,EAAE;IAAA,IAAAM,MAAA;IAAA,OAAAzB,iBAAA;MACxC,MAAMyB,MAAI,CAACvB,YAAY,CAACsB,sBAAsB,CAACL,GAAG,CAAC;IAAC;EACtD;EAEAO,cAAcA,CAAA,EAAmB;IAC/B,OAAO,IAAI,CAACtB,eAAe;EAC7B;EAEAuB,iBAAiBA,CAACb,GAAW,EAAEc,MAAe,EAAE;IAC9C,IAAI,CAAC1B,YAAY,CAACyB,iBAAiB,CAACb,GAAG,EAAEc,MAAM,CAAC;EAClD;EAEAC,QAAQA,CAACC,KAAY,EAAEC,cAAsB,EAAQ;IACnD,IAAI,CAAC7B,YAAY,CAAC4B,KAAK,CAAC;MACtBA,KAAK,EAAEA,KAAK;MACZE,OAAO,EAAED;IACX,CAAe,CAAC;EAClB;AACF"}
1
+ {"version":3,"file":"extensionAdaptor.js","names":["getThemeOverrides","ExtensionAuthAdaptor","constructor","sdk","login","_asyncToGenerator","ExtensionAdaptor","extensionSdk","_defineProperty","_themeOverrides","lookerHostData","hostType","copyToClipboard","location","_this","hostOrigin","extensionId","pathname","search","url","concat","clipboardWrite","isExtension","localStorageGetItem","key","_this2","localStorageSetItem","value","_this3","localStorageRemoveItem","_this4","themeOverrides","openBrowserWindow","target","logError","error","componentStack","message"],"sources":["../../src/extensionAdaptor.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 { ExtensionSDK } from '@looker/extension-sdk';\nimport type { IAPIMethods } from '@looker/sdk-rtl';\nimport type {\n IAuthAdaptor,\n IEnvironmentAdaptor,\n ThemeOverrides,\n} from './adaptorUtils';\nimport { getThemeOverrides } from './adaptorUtils';\n\nexport class ExtensionAuthAdaptor implements IAuthAdaptor {\n constructor(public readonly sdk: IAPIMethods) {}\n\n async login() {\n // Noop for extensions. Authentication is not required in an extension context\n return true;\n }\n}\n\n/**\n * An adaptor class for interacting with browser APIs when running as an extension\n */\nexport class ExtensionAdaptor\n extends ExtensionAuthAdaptor\n implements IEnvironmentAdaptor\n{\n _themeOverrides: ThemeOverrides;\n\n constructor(public extensionSdk: ExtensionSDK, sdk: IAPIMethods) {\n super(sdk);\n this._themeOverrides = getThemeOverrides(\n (this.extensionSdk.lookerHostData || { hostType: 'standard' })\n .hostType === 'standard'\n );\n }\n\n async copyToClipboard(location?: { pathname: string; search: string }) {\n const { lookerHostData } = this.extensionSdk;\n if (lookerHostData && location) {\n const { hostOrigin, extensionId } = lookerHostData;\n const { pathname, search } = location;\n const url = `${hostOrigin}/extensions/${extensionId}${pathname}${search}`;\n await this.extensionSdk.clipboardWrite(url);\n }\n }\n\n isExtension() {\n return true;\n }\n\n async localStorageGetItem(key: string) {\n return await this.extensionSdk.localStorageGetItem(key);\n }\n\n async localStorageSetItem(key: string, value: string) {\n await this.extensionSdk.localStorageSetItem(key, value);\n }\n\n async localStorageRemoveItem(key: string) {\n await this.extensionSdk.localStorageRemoveItem(key);\n }\n\n themeOverrides(): ThemeOverrides {\n return this._themeOverrides;\n }\n\n openBrowserWindow(url: string, target?: string) {\n this.extensionSdk.openBrowserWindow(url, target);\n }\n\n logError(error: Error, componentStack: string): void {\n this.extensionSdk.error({\n error: error,\n message: componentStack,\n } as ErrorEvent);\n }\n}\n"],"mappings":";;;;;AAiCA,SAASA,iBAAiB,QAAQ,gBAAgB;AAElD,OAAO,MAAMC,oBAAoB,CAAyB;EACxDC,WAAWA,CAAiBC,GAAgB,EAAE;IAAA,KAAlBA,GAAgB,GAAhBA,GAAgB;EAAG;EAEzCC,KAAKA,CAAA,EAAG;IAAA,OAAAC,iBAAA;MAEZ,OAAO,IAAI;IAAC;EACd;AACF;AAKA,OAAO,MAAMC,gBAAgB,SACnBL,oBAAoB,CAE9B;EAGEC,WAAWA,CAAQK,YAA0B,EAAEJ,GAAgB,EAAE;IAC/D,KAAK,CAACA,GAAG,CAAC;IAAC,KADMI,YAA0B,GAA1BA,YAA0B;IAAAC,eAAA;IAE3C,IAAI,CAACC,eAAe,GAAGT,iBAAiB,CACtC,CAAC,IAAI,CAACO,YAAY,CAACG,cAAc,IAAI;MAAEC,QAAQ,EAAE;IAAW,CAAC,EAC1DA,QAAQ,KAAK,UAClB,CAAC;EACH;EAEMC,eAAeA,CAACC,QAA+C,EAAE;IAAA,IAAAC,KAAA;IAAA,OAAAT,iBAAA;MACrE,IAAM;QAAEK;MAAe,CAAC,GAAGI,KAAI,CAACP,YAAY;MAC5C,IAAIG,cAAc,IAAIG,QAAQ,EAAE;QAC9B,IAAM;UAAEE,UAAU;UAAEC;QAAY,CAAC,GAAGN,cAAc;QAClD,IAAM;UAAEO,QAAQ;UAAEC;QAAO,CAAC,GAAGL,QAAQ;QACrC,IAAMM,GAAG,MAAAC,MAAA,CAAML,UAAU,kBAAAK,MAAA,CAAeJ,WAAW,EAAAI,MAAA,CAAGH,QAAQ,EAAAG,MAAA,CAAGF,MAAM,CAAE;QACzE,MAAMJ,KAAI,CAACP,YAAY,CAACc,cAAc,CAACF,GAAG,CAAC;MAC7C;IAAC;EACH;EAEAG,WAAWA,CAAA,EAAG;IACZ,OAAO,IAAI;EACb;EAEMC,mBAAmBA,CAACC,GAAW,EAAE;IAAA,IAAAC,MAAA;IAAA,OAAApB,iBAAA;MACrC,aAAaoB,MAAI,CAAClB,YAAY,CAACgB,mBAAmB,CAACC,GAAG,CAAC;IAAC;EAC1D;EAEME,mBAAmBA,CAACF,GAAW,EAAEG,KAAa,EAAE;IAAA,IAAAC,MAAA;IAAA,OAAAvB,iBAAA;MACpD,MAAMuB,MAAI,CAACrB,YAAY,CAACmB,mBAAmB,CAACF,GAAG,EAAEG,KAAK,CAAC;IAAC;EAC1D;EAEME,sBAAsBA,CAACL,GAAW,EAAE;IAAA,IAAAM,MAAA;IAAA,OAAAzB,iBAAA;MACxC,MAAMyB,MAAI,CAACvB,YAAY,CAACsB,sBAAsB,CAACL,GAAG,CAAC;IAAC;EACtD;EAEAO,cAAcA,CAAA,EAAmB;IAC/B,OAAO,IAAI,CAACtB,eAAe;EAC7B;EAEAuB,iBAAiBA,CAACb,GAAW,EAAEc,MAAe,EAAE;IAC9C,IAAI,CAAC1B,YAAY,CAACyB,iBAAiB,CAACb,GAAG,EAAEc,MAAM,CAAC;EAClD;EAEAC,QAAQA,CAACC,KAAY,EAAEC,cAAsB,EAAQ;IACnD,IAAI,CAAC7B,YAAY,CAAC4B,KAAK,CAAC;MACtBA,KAAK,EAAEA,KAAK;MACZE,OAAO,EAAED;IACX,CAAe,CAAC;EAClB;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"extensionAdaptor.js","names":["_adaptorUtils","require","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","ExtensionAuthAdaptor","constructor","sdk","login","exports","ExtensionAdaptor","extensionSdk","_themeOverrides","getThemeOverrides","lookerHostData","hostType","copyToClipboard","location","_this","hostOrigin","extensionId","pathname","search","url","concat","clipboardWrite","isExtension","localStorageGetItem","_this2","localStorageSetItem","_this3","localStorageRemoveItem","_this4","themeOverrides","openBrowserWindow","target","logError","componentStack","message"],"sources":["../src/extensionAdaptor.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 { ExtensionSDK } from '@looker/extension-sdk';\nimport type { IAPIMethods } from '@looker/sdk-rtl';\nimport type {\n IAuthAdaptor,\n IEnvironmentAdaptor,\n ThemeOverrides,\n} from './adaptorUtils';\nimport { getThemeOverrides } from './adaptorUtils';\n\nexport class ExtensionAuthAdaptor implements IAuthAdaptor {\n constructor(public readonly sdk: IAPIMethods) {}\n\n async login() {\n // Noop for extensions. Authentication is not required in an extension context\n return true;\n }\n}\n\n/**\n * An adaptor class for interacting with browser APIs when running as an extension\n */\nexport class ExtensionAdaptor\n extends ExtensionAuthAdaptor\n implements IEnvironmentAdaptor\n{\n _themeOverrides: ThemeOverrides;\n\n constructor(\n public extensionSdk: ExtensionSDK,\n sdk: IAPIMethods\n ) {\n super(sdk);\n this._themeOverrides = getThemeOverrides(\n (this.extensionSdk.lookerHostData || { hostType: 'standard' })\n .hostType === 'standard'\n );\n }\n\n async copyToClipboard(location?: { pathname: string; search: string }) {\n const { lookerHostData } = this.extensionSdk;\n if (lookerHostData && location) {\n const { hostOrigin, extensionId } = lookerHostData;\n const { pathname, search } = location;\n const url = `${hostOrigin}/extensions/${extensionId}${pathname}${search}`;\n await this.extensionSdk.clipboardWrite(url);\n }\n }\n\n isExtension() {\n return true;\n }\n\n async localStorageGetItem(key: string) {\n return await this.extensionSdk.localStorageGetItem(key);\n }\n\n async localStorageSetItem(key: string, value: string) {\n await this.extensionSdk.localStorageSetItem(key, value);\n }\n\n async localStorageRemoveItem(key: string) {\n await this.extensionSdk.localStorageRemoveItem(key);\n }\n\n themeOverrides(): ThemeOverrides {\n return this._themeOverrides;\n }\n\n openBrowserWindow(url: string, target?: string) {\n this.extensionSdk.openBrowserWindow(url, target);\n }\n\n logError(error: Error, componentStack: string): void {\n this.extensionSdk.error({\n error: error,\n message: componentStack,\n } as ErrorEvent);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"extensionAdaptor.js","names":["_adaptorUtils","require","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","ExtensionAuthAdaptor","constructor","sdk","login","exports","ExtensionAdaptor","extensionSdk","_themeOverrides","getThemeOverrides","lookerHostData","hostType","copyToClipboard","location","_this","hostOrigin","extensionId","pathname","search","url","concat","clipboardWrite","isExtension","localStorageGetItem","_this2","localStorageSetItem","_this3","localStorageRemoveItem","_this4","themeOverrides","openBrowserWindow","target","logError","componentStack","message"],"sources":["../src/extensionAdaptor.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 { ExtensionSDK } from '@looker/extension-sdk';\nimport type { IAPIMethods } from '@looker/sdk-rtl';\nimport type {\n IAuthAdaptor,\n IEnvironmentAdaptor,\n ThemeOverrides,\n} from './adaptorUtils';\nimport { getThemeOverrides } from './adaptorUtils';\n\nexport class ExtensionAuthAdaptor implements IAuthAdaptor {\n constructor(public readonly sdk: IAPIMethods) {}\n\n async login() {\n // Noop for extensions. Authentication is not required in an extension context\n return true;\n }\n}\n\n/**\n * An adaptor class for interacting with browser APIs when running as an extension\n */\nexport class ExtensionAdaptor\n extends ExtensionAuthAdaptor\n implements IEnvironmentAdaptor\n{\n _themeOverrides: ThemeOverrides;\n\n constructor(public extensionSdk: ExtensionSDK, sdk: IAPIMethods) {\n super(sdk);\n this._themeOverrides = getThemeOverrides(\n (this.extensionSdk.lookerHostData || { hostType: 'standard' })\n .hostType === 'standard'\n );\n }\n\n async copyToClipboard(location?: { pathname: string; search: string }) {\n const { lookerHostData } = this.extensionSdk;\n if (lookerHostData && location) {\n const { hostOrigin, extensionId } = lookerHostData;\n const { pathname, search } = location;\n const url = `${hostOrigin}/extensions/${extensionId}${pathname}${search}`;\n await this.extensionSdk.clipboardWrite(url);\n }\n }\n\n isExtension() {\n return true;\n }\n\n async localStorageGetItem(key: string) {\n return await this.extensionSdk.localStorageGetItem(key);\n }\n\n async localStorageSetItem(key: string, value: string) {\n await this.extensionSdk.localStorageSetItem(key, value);\n }\n\n async localStorageRemoveItem(key: string) {\n await this.extensionSdk.localStorageRemoveItem(key);\n }\n\n themeOverrides(): ThemeOverrides {\n return this._themeOverrides;\n }\n\n openBrowserWindow(url: string, target?: string) {\n this.extensionSdk.openBrowserWindow(url, target);\n }\n\n logError(error: Error, componentStack: string): void {\n this.extensionSdk.error({\n error: error,\n message: componentStack,\n } as ErrorEvent);\n }\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@looker/extension-utils",
3
- "version": "0.1.40",
3
+ "version": "0.1.43",
4
4
  "description": "Looker Extension Utilities",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib/esm/index.js",
@@ -25,13 +25,13 @@
25
25
  "watch": "yarn lerna exec --scope @looker/extension-utils --stream 'BABEL_ENV=build babel src --root-mode upward --out-dir lib/esm --source-maps --extensions .ts,.tsx --no-comments --watch'"
26
26
  },
27
27
  "dependencies": {
28
- "@looker/code-editor": "0.1.30",
28
+ "@looker/code-editor": "0.1.33",
29
29
  "@looker/components": "^4.1.3",
30
- "@looker/extension-sdk": "24.12.1",
31
- "@looker/extension-sdk-react": "24.12.1",
30
+ "@looker/extension-sdk": "24.16.1",
31
+ "@looker/extension-sdk-react": "24.16.1",
32
32
  "@looker/redux": "^0.0.1",
33
- "@looker/sdk": "24.12.1",
34
- "@looker/sdk-rtl": "21.6.1",
33
+ "@looker/sdk": "24.16.1",
34
+ "@looker/sdk-rtl": "21.6.3",
35
35
  "@reduxjs/toolkit": "^1.9.3",
36
36
  "@styled-icons/material": "^10.47.0",
37
37
  "react": "^17.0.2",
@@ -54,5 +54,5 @@
54
54
  "webpack-cli": "5.0.1",
55
55
  "webpack-merge": "^5.7.3"
56
56
  },
57
- "gitHead": "e593102f095685cbdb55e573f085d338209f38d8"
57
+ "gitHead": "f95fdcebe3e11b4cf1c7d07e26a6b8a153bd074f"
58
58
  }