@looker/extension-utils 0.1.29 → 0.1.31

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 (68) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/lib/APIErrorDisplay/APIErrorContent.js.map +1 -1
  3. package/lib/APIErrorDisplay/APIErrorDetails.js.map +1 -1
  4. package/lib/APIErrorDisplay/APIErrorDialog.js.map +1 -1
  5. package/lib/APIErrorDisplay/APIErrorDisplay.js.map +1 -1
  6. package/lib/APIErrorDisplay/APIErrorDocLink.js.map +1 -1
  7. package/lib/APIErrorDisplay/utils.js.map +1 -1
  8. package/lib/ExtMarkdown.js.map +1 -1
  9. package/lib/OAuthForm/src/components/CollapserCard.js.map +1 -1
  10. package/lib/OAuthForm/src/components/ConfigHeading.js.map +1 -1
  11. package/lib/OAuthForm/src/components/OAuthForm.js.map +1 -1
  12. package/lib/OAuthForm/src/state/sagas.js.map +1 -1
  13. package/lib/OAuthForm/src/state/slice.js.map +1 -1
  14. package/lib/OAuthForm/src/utils.js.map +1 -1
  15. package/lib/OAuthScene.js.map +1 -1
  16. package/lib/adaptorUtils.js.map +1 -1
  17. package/lib/authUtils.js.map +1 -1
  18. package/lib/browserAdaptor.js.map +1 -1
  19. package/lib/esm/APIErrorDisplay/APIErrorContent.js +16 -25
  20. package/lib/esm/APIErrorDisplay/APIErrorContent.js.map +1 -1
  21. package/lib/esm/APIErrorDisplay/APIErrorDetails.js +13 -21
  22. package/lib/esm/APIErrorDisplay/APIErrorDetails.js.map +1 -1
  23. package/lib/esm/APIErrorDisplay/APIErrorDialog.js +10 -18
  24. package/lib/esm/APIErrorDisplay/APIErrorDialog.js.map +1 -1
  25. package/lib/esm/APIErrorDisplay/APIErrorDisplay.js +7 -15
  26. package/lib/esm/APIErrorDisplay/APIErrorDisplay.js.map +1 -1
  27. package/lib/esm/APIErrorDisplay/APIErrorDocLink.js +7 -15
  28. package/lib/esm/APIErrorDisplay/APIErrorDocLink.js.map +1 -1
  29. package/lib/esm/APIErrorDisplay/index.js +3 -39
  30. package/lib/esm/APIErrorDisplay/index.js.map +1 -1
  31. package/lib/esm/APIErrorDisplay/utils.js +2 -10
  32. package/lib/esm/APIErrorDisplay/utils.js.map +1 -1
  33. package/lib/esm/ExtMarkdown.js +6 -14
  34. package/lib/esm/ExtMarkdown.js.map +1 -1
  35. package/lib/esm/OAuthForm/index.js +1 -16
  36. package/lib/esm/OAuthForm/index.js.map +1 -1
  37. package/lib/esm/OAuthForm/src/components/CollapserCard.js +13 -21
  38. package/lib/esm/OAuthForm/src/components/CollapserCard.js.map +1 -1
  39. package/lib/esm/OAuthForm/src/components/ConfigHeading.js +3 -11
  40. package/lib/esm/OAuthForm/src/components/ConfigHeading.js.map +1 -1
  41. package/lib/esm/OAuthForm/src/components/OAuthForm.js +41 -51
  42. package/lib/esm/OAuthForm/src/components/OAuthForm.js.map +1 -1
  43. package/lib/esm/OAuthForm/src/components/index.js +1 -12
  44. package/lib/esm/OAuthForm/src/components/index.js.map +1 -1
  45. package/lib/esm/OAuthForm/src/index.js +2 -27
  46. package/lib/esm/OAuthForm/src/index.js.map +1 -1
  47. package/lib/esm/OAuthForm/src/state/index.js +1 -12
  48. package/lib/esm/OAuthForm/src/state/index.js.map +1 -1
  49. package/lib/esm/OAuthForm/src/state/sagas.js +38 -44
  50. package/lib/esm/OAuthForm/src/state/sagas.js.map +1 -1
  51. package/lib/esm/OAuthForm/src/state/slice.js +11 -24
  52. package/lib/esm/OAuthForm/src/state/slice.js.map +1 -1
  53. package/lib/esm/OAuthForm/src/utils.js +6 -15
  54. package/lib/esm/OAuthForm/src/utils.js.map +1 -1
  55. package/lib/esm/OAuthScene.js +14 -23
  56. package/lib/esm/OAuthScene.js.map +1 -1
  57. package/lib/esm/adaptorUtils.js +9 -22
  58. package/lib/esm/adaptorUtils.js.map +1 -1
  59. package/lib/esm/authUtils.js +2 -9
  60. package/lib/esm/authUtils.js.map +1 -1
  61. package/lib/esm/browserAdaptor.js +4 -12
  62. package/lib/esm/browserAdaptor.js.map +1 -1
  63. package/lib/esm/extensionAdaptor.js +4 -12
  64. package/lib/esm/extensionAdaptor.js.map +1 -1
  65. package/lib/esm/index.js +8 -93
  66. package/lib/esm/index.js.map +1 -1
  67. package/lib/extensionAdaptor.js.map +1 -1
  68. package/package.json +5 -5
@@ -1,12 +1,6 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.saga = saga;
7
- var _typedReduxSaga = require("typed-redux-saga");
8
- var _utils = require("../utils");
9
- var _slice = require("./slice");
1
+ import { takeEvery, put, call, select } from 'typed-redux-saga';
2
+ import { getVersions, validateUrl } from '../utils';
3
+ import { OAuthFormSlice, OAuthFormActions } from './slice';
10
4
  var getLocalStorageConfig = configKey => {
11
5
  var EmptyConfig = {
12
6
  base_url: '',
@@ -20,28 +14,28 @@ function* initSaga(action) {
20
14
  var {
21
15
  initSuccessAction,
22
16
  setFailureAction
23
- } = _slice.OAuthFormActions;
17
+ } = OAuthFormActions;
24
18
  try {
25
- var result = yield* (0, _typedReduxSaga.call)(getLocalStorageConfig, action.payload);
26
- yield* (0, _typedReduxSaga.put)(initSuccessAction(result));
19
+ var result = yield* call(getLocalStorageConfig, action.payload);
20
+ yield* put(initSuccessAction(result));
27
21
  } catch (error) {
28
- yield* (0, _typedReduxSaga.put)(setFailureAction(error.message));
22
+ yield* put(setFailureAction(error.message));
29
23
  }
30
24
  }
31
25
  function* setUrlSaga(action) {
32
26
  var {
33
27
  updateValidationMessages,
34
28
  setUrlActionSuccess
35
- } = _slice.OAuthFormActions;
29
+ } = OAuthFormActions;
36
30
  try {
37
- var url = (0, _utils.validateUrl)(action.payload.value);
31
+ var url = validateUrl(action.payload.value);
38
32
  if (!url) throw new Error("".concat(action.payload.value, " is not a valid url"));
39
- yield* (0, _typedReduxSaga.put)(updateValidationMessages({
33
+ yield* put(updateValidationMessages({
40
34
  elementName: action.payload.name,
41
35
  newMessage: null
42
36
  }));
43
37
  } catch (error) {
44
- yield* (0, _typedReduxSaga.put)(updateValidationMessages({
38
+ yield* put(updateValidationMessages({
45
39
  elementName: action.payload.name,
46
40
  newMessage: {
47
41
  message: error.message,
@@ -49,8 +43,8 @@ function* setUrlSaga(action) {
49
43
  }
50
44
  }));
51
45
  } finally {
52
- var _url = (0, _utils.validateUrl)(action.payload.value);
53
- yield* (0, _typedReduxSaga.put)(setUrlActionSuccess(_url || action.payload.value));
46
+ var _url = validateUrl(action.payload.value);
47
+ yield* put(setUrlActionSuccess(_url || action.payload.value));
54
48
  }
55
49
  }
56
50
  function* clearConfigSaga(action) {
@@ -58,7 +52,7 @@ function* clearConfigSaga(action) {
58
52
  clearConfigActionSuccess,
59
53
  setFailureAction,
60
54
  updateMessageBarAction
61
- } = _slice.OAuthFormActions;
55
+ } = OAuthFormActions;
62
56
  try {
63
57
  var {
64
58
  configKey,
@@ -68,46 +62,46 @@ function* clearConfigSaga(action) {
68
62
  localStorage.removeItem(configKey);
69
63
  if (setHasConfig) setHasConfig(false);
70
64
  if (isAuthenticated) {
71
- yield* (0, _typedReduxSaga.put)(updateMessageBarAction({
65
+ yield* put(updateMessageBarAction({
72
66
  intent: 'warn',
73
67
  text: 'Please reload the browser page to log out'
74
68
  }));
75
69
  }
76
- yield* (0, _typedReduxSaga.put)(clearConfigActionSuccess());
70
+ yield* put(clearConfigActionSuccess());
77
71
  } catch (error) {
78
- yield* (0, _typedReduxSaga.put)(setFailureAction(error.message));
72
+ yield* put(setFailureAction(error.message));
79
73
  }
80
74
  }
81
75
  function* verifyConfigSaga() {
82
- var apiServerUrl = yield* (0, _typedReduxSaga.select)(storeState => {
83
- var formState = storeState[_slice.OAuthFormSlice.name];
76
+ var apiServerUrl = yield* select(storeState => {
77
+ var formState = storeState[OAuthFormSlice.name];
84
78
  return formState.apiServerUrl;
85
79
  });
86
80
  var {
87
81
  verifyConfigActionFailure,
88
82
  verifyConfigActionSuccess,
89
83
  clearMessageBarAction
90
- } = _slice.OAuthFormActions;
84
+ } = OAuthFormActions;
91
85
  try {
92
- yield* (0, _typedReduxSaga.put)(clearMessageBarAction());
86
+ yield* put(clearMessageBarAction());
93
87
  var versionsUrl = "".concat(apiServerUrl, "/versions");
94
- var versions = yield* (0, _typedReduxSaga.call)(_utils.getVersions, versionsUrl);
88
+ var versions = yield* call(getVersions, versionsUrl);
95
89
  if (!versions) throw new Error();
96
- yield* (0, _typedReduxSaga.put)(verifyConfigActionSuccess(versions.web_server_url));
90
+ yield* put(verifyConfigActionSuccess(versions.web_server_url));
97
91
  } catch (error) {
98
- yield* (0, _typedReduxSaga.put)(verifyConfigActionFailure(error.message));
92
+ yield* put(verifyConfigActionFailure(error.message));
99
93
  }
100
94
  }
101
95
  function* saveConfigSaga(action) {
102
- var apiServerUrl = yield* (0, _typedReduxSaga.select)(storeState => {
103
- var formState = storeState[_slice.OAuthFormSlice.name];
96
+ var apiServerUrl = yield* select(storeState => {
97
+ var formState = storeState[OAuthFormSlice.name];
104
98
  return formState.apiServerUrl;
105
99
  });
106
100
  var {
107
101
  verifyConfigActionFailure,
108
102
  clearMessageBarAction,
109
103
  saveConfigActionSuccess
110
- } = _slice.OAuthFormActions;
104
+ } = OAuthFormActions;
111
105
  var {
112
106
  configKey,
113
107
  setHasConfig,
@@ -115,9 +109,9 @@ function* saveConfigSaga(action) {
115
109
  redirect_uri
116
110
  } = action.payload;
117
111
  try {
118
- yield* (0, _typedReduxSaga.put)(clearMessageBarAction());
112
+ yield* put(clearMessageBarAction());
119
113
  var versionsUrl = "".concat(apiServerUrl, "/versions");
120
- var versions = yield* (0, _typedReduxSaga.call)(_utils.getVersions, versionsUrl);
114
+ var versions = yield* call(getVersions, versionsUrl);
121
115
  if (!versions) throw new Error();
122
116
  var data = {
123
117
  base_url: versions.api_server_url,
@@ -127,26 +121,26 @@ function* saveConfigSaga(action) {
127
121
  };
128
122
  localStorage.setItem(configKey, JSON.stringify(data));
129
123
  if (setHasConfig) setHasConfig(true);
130
- yield* (0, _typedReduxSaga.put)(saveConfigActionSuccess({
124
+ yield* put(saveConfigActionSuccess({
131
125
  base_url: versions.api_server_url,
132
126
  looker_url: versions.web_server_url
133
127
  }));
134
128
  } catch (error) {
135
- yield* (0, _typedReduxSaga.put)(verifyConfigActionFailure(error.message));
129
+ yield* put(verifyConfigActionFailure(error.message));
136
130
  }
137
131
  }
138
- function* saga() {
132
+ export function* saga() {
139
133
  var {
140
134
  initAction,
141
135
  setUrlAction,
142
136
  clearConfigAction,
143
137
  verifyConfigAction,
144
138
  saveConfigAction
145
- } = _slice.OAuthFormActions;
146
- yield* (0, _typedReduxSaga.takeEvery)(initAction, initSaga);
147
- yield* (0, _typedReduxSaga.takeEvery)(setUrlAction, setUrlSaga);
148
- yield* (0, _typedReduxSaga.takeEvery)(clearConfigAction, clearConfigSaga);
149
- yield* (0, _typedReduxSaga.takeEvery)(verifyConfigAction, verifyConfigSaga);
150
- yield* (0, _typedReduxSaga.takeEvery)(saveConfigAction, saveConfigSaga);
139
+ } = OAuthFormActions;
140
+ yield* takeEvery(initAction, initSaga);
141
+ yield* takeEvery(setUrlAction, setUrlSaga);
142
+ yield* takeEvery(clearConfigAction, clearConfigSaga);
143
+ yield* takeEvery(verifyConfigAction, verifyConfigSaga);
144
+ yield* takeEvery(saveConfigAction, saveConfigSaga);
151
145
  }
152
146
  //# sourceMappingURL=sagas.js.map
@@ -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 { takeEvery, put, call, select } from 'typed-redux-saga'\nimport type { ConfigValues } from '../utils'\nimport { getVersions, validateUrl } from '../utils'\nimport type {\n ClearConfigActionPayload,\n SetUrlActionPayload,\n OAuthFormState,\n SaveConfigPayload,\n} from './slice'\nimport { OAuthFormSlice, OAuthFormActions } 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":["takeEvery","put","call","select","getVersions","validateUrl","OAuthFormSlice","OAuthFormActions","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 { takeEvery, put, call, select } from 'typed-redux-saga'\nimport type { ConfigValues } from '../utils'\nimport { getVersions, validateUrl } from '../utils'\nimport type {\n ClearConfigActionPayload,\n SetUrlActionPayload,\n OAuthFormState,\n SaveConfigPayload,\n} from './slice'\nimport { OAuthFormSlice, OAuthFormActions } 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,22 +1,14 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.useOAuthFormState = exports.useOAuthFormActions = exports.defaultOAuthFormState = exports.SLICE_NAME = exports.OAuthFormSlice = exports.OAuthFormActions = void 0;
7
- var _redux = require("@looker/redux");
8
- var _toolkit = require("@reduxjs/toolkit");
9
- var _omit = _interopRequireDefault(require("lodash/omit"));
10
- var _sagas = require("./sagas");
11
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
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; }
13
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; }
14
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; }
15
4
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
16
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); }
17
- var SLICE_NAME = 'OAuthForm';
18
- exports.SLICE_NAME = SLICE_NAME;
19
- var defaultOAuthFormState = {
6
+ import { createSliceHooks } from '@looker/redux';
7
+ import { createSlice } from '@reduxjs/toolkit';
8
+ import omit from 'lodash/omit';
9
+ import { saga } from './sagas';
10
+ export var SLICE_NAME = 'OAuthForm';
11
+ export var defaultOAuthFormState = {
20
12
  apiServerUrl: '',
21
13
  fetchedUrl: '',
22
14
  webUrl: '',
@@ -30,8 +22,7 @@ var defaultOAuthFormState = {
30
22
  looker_url: ''
31
23
  }
32
24
  };
33
- exports.defaultOAuthFormState = defaultOAuthFormState;
34
- var OAuthFormSlice = (0, _toolkit.createSlice)({
25
+ export var OAuthFormSlice = createSlice({
35
26
  name: SLICE_NAME,
36
27
  initialState: defaultOAuthFormState,
37
28
  reducers: {
@@ -50,7 +41,7 @@ var OAuthFormSlice = (0, _toolkit.createSlice)({
50
41
  if (action.payload.newMessage !== null) {
51
42
  newValidationMessages[action.payload.elementName] = action.payload.newMessage;
52
43
  } else {
53
- newValidationMessages = (0, _omit.default)(newValidationMessages, action.payload.elementName);
44
+ newValidationMessages = omit(newValidationMessages, action.payload.elementName);
54
45
  }
55
46
  state.validationMessages = newValidationMessages;
56
47
  },
@@ -104,13 +95,9 @@ var OAuthFormSlice = (0, _toolkit.createSlice)({
104
95
  }
105
96
  }
106
97
  });
107
- exports.OAuthFormSlice = OAuthFormSlice;
108
- var OAuthFormActions = OAuthFormSlice.actions;
109
- exports.OAuthFormActions = OAuthFormActions;
110
- var {
98
+ export var OAuthFormActions = OAuthFormSlice.actions;
99
+ export var {
111
100
  useActions: useOAuthFormActions,
112
101
  useStoreState: useOAuthFormState
113
- } = (0, _redux.createSliceHooks)(OAuthFormSlice, _sagas.saga);
114
- exports.useOAuthFormState = useOAuthFormState;
115
- exports.useOAuthFormActions = useOAuthFormActions;
102
+ } = createSliceHooks(OAuthFormSlice, saga);
116
103
  //# sourceMappingURL=slice.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slice.js","names":["_redux","require","_toolkit","_omit","_interopRequireDefault","_sagas","obj","__esModule","default","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","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","SLICE_NAME","exports","defaultOAuthFormState","apiServerUrl","fetchedUrl","webUrl","messageBar","text","intent","validationMessages","savedConfig","base_url","looker_url","OAuthFormSlice","createSlice","name","initialState","reducers","initAction","_state","_action","initSuccessAction","state","action","payload","setUrlAction","setUrlActionSuccess","updateValidationMessages","newValidationMessages","newMessage","elementName","omit","clearConfigAction","clearConfigActionSuccess","verifyConfigAction","concat","verifyConfigActionSuccess","verifyConfigActionFailure","saveConfigAction","saveConfigActionSuccess","clearMessageBarAction","updateMessageBarAction","setFailureAction","OAuthFormActions","actions","useActions","useOAuthFormActions","useStoreState","useOAuthFormState","createSliceHooks","saga"],"sources":["../../../../../src/OAuthForm/src/state/slice.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 { Dispatch } from 'react'\nimport { createSliceHooks } from '@looker/redux'\nimport { createSlice } from '@reduxjs/toolkit'\nimport type { PayloadAction } from '@reduxjs/toolkit'\nimport type {\n MessageBarIntent,\n ValidationMessageProps,\n ValidationMessages,\n} from '@looker/components'\nimport omit from 'lodash/omit'\nimport type { ConfigValues } from '../utils'\nimport { saga } from './sagas'\n\nexport const SLICE_NAME = 'OAuthForm'\nexport interface MessageBarData {\n intent: MessageBarIntent\n text: string\n}\n\nexport interface OAuthFormState {\n apiServerUrl: string\n fetchedUrl: string\n webUrl: string\n messageBar: MessageBarData\n validationMessages: ValidationMessages\n savedConfig: ConfigValues\n}\n\nexport const defaultOAuthFormState: OAuthFormState = {\n apiServerUrl: '',\n fetchedUrl: '',\n webUrl: '',\n messageBar: {\n text: '',\n intent: 'positive',\n },\n validationMessages: {},\n savedConfig: { base_url: '', looker_url: '' },\n}\n\nexport interface ClearConfigActionPayload {\n configKey: string\n setHasConfig?: Dispatch<boolean>\n isAuthenticated: boolean\n}\n\nexport interface SetUrlActionPayload {\n name: string\n value: string\n}\n\ninterface UpdateValidationMessagesPayload {\n elementName: string\n newMessage: ValidationMessageProps | null\n}\n\nexport interface SaveConfigPayload {\n configKey: string\n setHasConfig?: Dispatch<boolean>\n client_id: string\n redirect_uri: string\n}\n\nexport interface SaveConfigSuccessPayload {\n base_url: string\n looker_url: string\n}\n\nexport const OAuthFormSlice = createSlice({\n name: SLICE_NAME,\n initialState: defaultOAuthFormState,\n reducers: {\n initAction(_state, _action: PayloadAction<string>) {\n // noop\n },\n initSuccessAction(state, action: PayloadAction<ConfigValues>) {\n state.apiServerUrl = action.payload.base_url\n state.webUrl = action.payload.looker_url\n },\n setUrlAction(_state, _action: PayloadAction<SetUrlActionPayload>) {\n // noop\n },\n setUrlActionSuccess(state, action: PayloadAction<string>) {\n state.apiServerUrl = action.payload\n state.webUrl = ''\n },\n updateValidationMessages(\n state,\n action: PayloadAction<UpdateValidationMessagesPayload>\n ) {\n let newValidationMessages = state.validationMessages\n\n if (action.payload.newMessage !== null) {\n newValidationMessages[action.payload.elementName] =\n action.payload.newMessage\n } else {\n newValidationMessages = omit(\n newValidationMessages,\n action.payload.elementName\n )\n }\n state.validationMessages = newValidationMessages\n },\n clearConfigAction(\n _state,\n _action: PayloadAction<ClearConfigActionPayload>\n ) {\n // noop\n },\n clearConfigActionSuccess() {\n return { ...defaultOAuthFormState }\n },\n verifyConfigAction(state) {\n state.fetchedUrl = `${state.apiServerUrl}/versions`\n },\n verifyConfigActionSuccess(state, action: PayloadAction<string>) {\n state.messageBar = {\n intent: 'positive',\n text: `Configuration is valid`,\n }\n state.webUrl = action.payload\n },\n verifyConfigActionFailure(state, action: PayloadAction<string>) {\n state.messageBar = { intent: 'critical', text: action.payload }\n state.webUrl = ''\n },\n saveConfigAction(_state, _action: PayloadAction<SaveConfigPayload>) {\n // noop\n },\n saveConfigActionSuccess(\n state,\n action: PayloadAction<SaveConfigSuccessPayload>\n ) {\n const { base_url, looker_url } = action.payload\n state.savedConfig = {\n base_url,\n looker_url,\n }\n state.messageBar = {\n intent: 'positive',\n text: `Saved ${looker_url} as OAuth server`,\n }\n },\n clearMessageBarAction(state) {\n state.messageBar.text = ''\n },\n updateMessageBarAction(state, action: PayloadAction<MessageBarData>) {\n state.messageBar = action.payload\n },\n setFailureAction(state, action: PayloadAction<string>) {\n state.messageBar = { intent: 'critical', text: action.payload }\n },\n },\n})\n\nexport const OAuthFormActions = OAuthFormSlice.actions\nexport const {\n useActions: useOAuthFormActions,\n useStoreState: useOAuthFormState,\n} = createSliceHooks(OAuthFormSlice, saga)\n"],"mappings":"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"}
1
+ {"version":3,"file":"slice.js","names":["createSliceHooks","createSlice","omit","saga","SLICE_NAME","defaultOAuthFormState","apiServerUrl","fetchedUrl","webUrl","messageBar","text","intent","validationMessages","savedConfig","base_url","looker_url","OAuthFormSlice","name","initialState","reducers","initAction","_state","_action","initSuccessAction","state","action","payload","setUrlAction","setUrlActionSuccess","updateValidationMessages","newValidationMessages","newMessage","elementName","clearConfigAction","clearConfigActionSuccess","_objectSpread","verifyConfigAction","concat","verifyConfigActionSuccess","verifyConfigActionFailure","saveConfigAction","saveConfigActionSuccess","clearMessageBarAction","updateMessageBarAction","setFailureAction","OAuthFormActions","actions","useActions","useOAuthFormActions","useStoreState","useOAuthFormState"],"sources":["../../../../../src/OAuthForm/src/state/slice.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 { Dispatch } from 'react'\nimport { createSliceHooks } from '@looker/redux'\nimport { createSlice } from '@reduxjs/toolkit'\nimport type { PayloadAction } from '@reduxjs/toolkit'\nimport type {\n MessageBarIntent,\n ValidationMessageProps,\n ValidationMessages,\n} from '@looker/components'\nimport omit from 'lodash/omit'\nimport type { ConfigValues } from '../utils'\nimport { saga } from './sagas'\n\nexport const SLICE_NAME = 'OAuthForm'\nexport interface MessageBarData {\n intent: MessageBarIntent\n text: string\n}\n\nexport interface OAuthFormState {\n apiServerUrl: string\n fetchedUrl: string\n webUrl: string\n messageBar: MessageBarData\n validationMessages: ValidationMessages\n savedConfig: ConfigValues\n}\n\nexport const defaultOAuthFormState: OAuthFormState = {\n apiServerUrl: '',\n fetchedUrl: '',\n webUrl: '',\n messageBar: {\n text: '',\n intent: 'positive',\n },\n validationMessages: {},\n savedConfig: { base_url: '', looker_url: '' },\n}\n\nexport interface ClearConfigActionPayload {\n configKey: string\n setHasConfig?: Dispatch<boolean>\n isAuthenticated: boolean\n}\n\nexport interface SetUrlActionPayload {\n name: string\n value: string\n}\n\ninterface UpdateValidationMessagesPayload {\n elementName: string\n newMessage: ValidationMessageProps | null\n}\n\nexport interface SaveConfigPayload {\n configKey: string\n setHasConfig?: Dispatch<boolean>\n client_id: string\n redirect_uri: string\n}\n\nexport interface SaveConfigSuccessPayload {\n base_url: string\n looker_url: string\n}\n\nexport const OAuthFormSlice = createSlice({\n name: SLICE_NAME,\n initialState: defaultOAuthFormState,\n reducers: {\n initAction(_state, _action: PayloadAction<string>) {\n // noop\n },\n initSuccessAction(state, action: PayloadAction<ConfigValues>) {\n state.apiServerUrl = action.payload.base_url\n state.webUrl = action.payload.looker_url\n },\n setUrlAction(_state, _action: PayloadAction<SetUrlActionPayload>) {\n // noop\n },\n setUrlActionSuccess(state, action: PayloadAction<string>) {\n state.apiServerUrl = action.payload\n state.webUrl = ''\n },\n updateValidationMessages(\n state,\n action: PayloadAction<UpdateValidationMessagesPayload>\n ) {\n let newValidationMessages = state.validationMessages\n\n if (action.payload.newMessage !== null) {\n newValidationMessages[action.payload.elementName] =\n action.payload.newMessage\n } else {\n newValidationMessages = omit(\n newValidationMessages,\n action.payload.elementName\n )\n }\n state.validationMessages = newValidationMessages\n },\n clearConfigAction(\n _state,\n _action: PayloadAction<ClearConfigActionPayload>\n ) {\n // noop\n },\n clearConfigActionSuccess() {\n return { ...defaultOAuthFormState }\n },\n verifyConfigAction(state) {\n state.fetchedUrl = `${state.apiServerUrl}/versions`\n },\n verifyConfigActionSuccess(state, action: PayloadAction<string>) {\n state.messageBar = {\n intent: 'positive',\n text: `Configuration is valid`,\n }\n state.webUrl = action.payload\n },\n verifyConfigActionFailure(state, action: PayloadAction<string>) {\n state.messageBar = { intent: 'critical', text: action.payload }\n state.webUrl = ''\n },\n saveConfigAction(_state, _action: PayloadAction<SaveConfigPayload>) {\n // noop\n },\n saveConfigActionSuccess(\n state,\n action: PayloadAction<SaveConfigSuccessPayload>\n ) {\n const { base_url, looker_url } = action.payload\n state.savedConfig = {\n base_url,\n looker_url,\n }\n state.messageBar = {\n intent: 'positive',\n text: `Saved ${looker_url} as OAuth server`,\n }\n },\n clearMessageBarAction(state) {\n state.messageBar.text = ''\n },\n updateMessageBarAction(state, action: PayloadAction<MessageBarData>) {\n state.messageBar = action.payload\n },\n setFailureAction(state, action: PayloadAction<string>) {\n state.messageBar = { intent: 'critical', text: action.payload }\n },\n },\n})\n\nexport const OAuthFormActions = OAuthFormSlice.actions\nexport const {\n useActions: useOAuthFormActions,\n useStoreState: useOAuthFormState,\n} = createSliceHooks(OAuthFormSlice, saga)\n"],"mappings":"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"}
@@ -1,10 +1,3 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.validateUrl = exports.getVersions = exports.getUrl = void 0;
7
- var _sdkRtl = require("@looker/sdk-rtl");
8
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; }
9
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; }
10
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; }
@@ -12,13 +5,14 @@ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typ
12
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); }
13
6
  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); } }
14
7
  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); }); }; }
15
- var getUrl = function () {
8
+ import { BrowserTransport, DefaultSettings } from '@looker/sdk-rtl';
9
+ export var getUrl = function () {
16
10
  var _ref = _asyncToGenerator(function* (url) {
17
- var settings = _objectSpread(_objectSpread({}, (0, _sdkRtl.DefaultSettings)()), {
11
+ var settings = _objectSpread(_objectSpread({}, DefaultSettings()), {
18
12
  base_url: url,
19
13
  verify_ssl: false
20
14
  });
21
- var xp = new _sdkRtl.BrowserTransport(settings);
15
+ var xp = new BrowserTransport(settings);
22
16
  var response = yield xp.rawRequest('GET', url);
23
17
  return response.body;
24
18
  });
@@ -26,8 +20,7 @@ var getUrl = function () {
26
20
  return _ref.apply(this, arguments);
27
21
  };
28
22
  }();
29
- exports.getUrl = getUrl;
30
- var getVersions = function () {
23
+ export var getVersions = function () {
31
24
  var _ref2 = _asyncToGenerator(function* (versionsUrl) {
32
25
  var versions;
33
26
  try {
@@ -42,8 +35,7 @@ var getVersions = function () {
42
35
  return _ref2.apply(this, arguments);
43
36
  };
44
37
  }();
45
- exports.getVersions = getVersions;
46
- var validateUrl = url => {
38
+ export var validateUrl = url => {
47
39
  try {
48
40
  var result = new URL(url);
49
41
  if (url.endsWith(':')) return url;
@@ -52,5 +44,4 @@ var validateUrl = url => {
52
44
  return '';
53
45
  }
54
46
  };
55
- exports.validateUrl = validateUrl;
56
47
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["_sdkRtl","require","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","asyncGeneratorStep","gen","resolve","reject","_next","_throw","info","error","done","Promise","then","_asyncToGenerator","fn","self","args","err","getUrl","_ref","url","settings","DefaultSettings","base_url","verify_ssl","xp","BrowserTransport","response","rawRequest","body","_x","exports","getVersions","_ref2","versionsUrl","versions","content","JSON","parse","_unused","Error","_x2","validateUrl","result","URL","endsWith","origin","_unused2"],"sources":["../../../../src/OAuthForm/src/utils.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 { BrowserTransport, DefaultSettings } from '@looker/sdk-rtl'\nimport type { ILookerVersions } from '@looker/sdk-codegen'\n\nexport type ConfigValues = Record<string, any>\n\n/**\n * Use the browser transport to GET a url\n * @param url to fetch\n */\nexport const getUrl = async (url: string): Promise<string | ConfigValues> => {\n const settings = {\n ...DefaultSettings(),\n ...{ base_url: url, verify_ssl: false },\n }\n const xp = new BrowserTransport(settings)\n const response = await xp.rawRequest('GET', url)\n return response.body\n}\n\n/**\n * Gets the versions payload given a versions url\n * @param versionsUrl\n */\nexport const getVersions = async (\n versionsUrl: string\n): Promise<ILookerVersions | undefined> => {\n let versions\n try {\n const content = await getUrl(versionsUrl)\n versions = typeof content === 'string' ? JSON.parse(content) : content\n } catch {\n throw new Error('Invalid server configuration')\n }\n return versions\n}\n\n/**\n * Validates URL and standardizes it\n * @param url to validate\n * @returns the standardized url.origin if it's valid, or an empty string if it's not\n */\nexport const validateUrl = (url: string): string => {\n try {\n const result = new URL(url)\n if (url.endsWith(':')) return url\n return result.origin\n } catch {\n return ''\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","names":["BrowserTransport","DefaultSettings","getUrl","_ref","_asyncToGenerator","url","settings","_objectSpread","base_url","verify_ssl","xp","response","rawRequest","body","_x","apply","arguments","getVersions","_ref2","versionsUrl","versions","content","JSON","parse","_unused","Error","_x2","validateUrl","result","URL","endsWith","origin","_unused2"],"sources":["../../../../src/OAuthForm/src/utils.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 { BrowserTransport, DefaultSettings } from '@looker/sdk-rtl'\nimport type { ILookerVersions } from '@looker/sdk-codegen'\n\nexport type ConfigValues = Record<string, any>\n\n/**\n * Use the browser transport to GET a url\n * @param url to fetch\n */\nexport const getUrl = async (url: string): Promise<string | ConfigValues> => {\n const settings = {\n ...DefaultSettings(),\n ...{ base_url: url, verify_ssl: false },\n }\n const xp = new BrowserTransport(settings)\n const response = await xp.rawRequest('GET', url)\n return response.body\n}\n\n/**\n * Gets the versions payload given a versions url\n * @param versionsUrl\n */\nexport const getVersions = async (\n versionsUrl: string\n): Promise<ILookerVersions | undefined> => {\n let versions\n try {\n const content = await getUrl(versionsUrl)\n versions = typeof content === 'string' ? JSON.parse(content) : content\n } catch {\n throw new Error('Invalid server configuration')\n }\n return versions\n}\n\n/**\n * Validates URL and standardizes it\n * @param url to validate\n * @returns the standardized url.origin if it's valid, or an empty string if it's not\n */\nexport const validateUrl = (url: string): string => {\n try {\n const result = new URL(url)\n if (url.endsWith(':')) return url\n return result.origin\n } catch {\n return ''\n }\n}\n"],"mappings":";;;;;;;AAyBA,SAASA,gBAAgB,EAAEC,eAAe,QAAQ,iBAAiB;AASnE,OAAO,IAAMC,MAAM;EAAA,IAAAC,IAAA,GAAAC,iBAAA,CAAG,WAAOC,GAAW,EAAqC;IAC3E,IAAMC,QAAQ,GAAAC,aAAA,CAAAA,aAAA,KACTN,eAAe,CAAC,CAAC,GACjB;MAAEO,QAAQ,EAAEH,GAAG;MAAEI,UAAU,EAAE;IAAM,CAAC,CACxC;IACD,IAAMC,EAAE,GAAG,IAAIV,gBAAgB,CAACM,QAAQ,CAAC;IACzC,IAAMK,QAAQ,SAASD,EAAE,CAACE,UAAU,CAAC,KAAK,EAAEP,GAAG,CAAC;IAChD,OAAOM,QAAQ,CAACE,IAAI;EACtB,CAAC;EAAA,gBARYX,MAAMA,CAAAY,EAAA;IAAA,OAAAX,IAAA,CAAAY,KAAA,OAAAC,SAAA;EAAA;AAAA,GAQlB;AAMD,OAAO,IAAMC,WAAW;EAAA,IAAAC,KAAA,GAAAd,iBAAA,CAAG,WACzBe,WAAmB,EACsB;IACzC,IAAIC,QAAQ;IACZ,IAAI;MACF,IAAMC,OAAO,SAASnB,MAAM,CAACiB,WAAW,CAAC;MACzCC,QAAQ,GAAG,OAAOC,OAAO,KAAK,QAAQ,GAAGC,IAAI,CAACC,KAAK,CAACF,OAAO,CAAC,GAAGA,OAAO;IACxE,CAAC,CAAC,OAAAG,OAAA,EAAM;MACN,MAAM,IAAIC,KAAK,CAAC,8BAA8B,CAAC;IACjD;IACA,OAAOL,QAAQ;EACjB,CAAC;EAAA,gBAXYH,WAAWA,CAAAS,GAAA;IAAA,OAAAR,KAAA,CAAAH,KAAA,OAAAC,SAAA;EAAA;AAAA,GAWvB;AAOD,OAAO,IAAMW,WAAW,GAAItB,GAAW,IAAa;EAClD,IAAI;IACF,IAAMuB,MAAM,GAAG,IAAIC,GAAG,CAACxB,GAAG,CAAC;IAC3B,IAAIA,GAAG,CAACyB,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAOzB,GAAG;IACjC,OAAOuB,MAAM,CAACG,MAAM;EACtB,CAAC,CAAC,OAAAC,QAAA,EAAM;IACN,OAAO,EAAE;EACX;AACF,CAAC"}
@@ -1,31 +1,23 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.OAuthScene = void 0;
7
- var _react = _interopRequireWildcard(require("react"));
8
- var _components = require("@looker/components");
9
- var _reactRouter = require("react-router");
10
- var _reactRouterDom = require("react-router-dom");
11
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
12
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
13
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); } }
14
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); }); }; }
15
- var OAuthScene = _ref => {
3
+ import React, { useEffect } from 'react';
4
+ import { ComponentsProvider, Flex, FlexItem, Heading, ProgressCircular } from '@looker/components';
5
+ import { useHistory } from 'react-router';
6
+ import { useLocation } from 'react-router-dom';
7
+ export var OAuthScene = _ref => {
16
8
  var _authSession$returnUr;
17
9
  var {
18
10
  adaptor
19
11
  } = _ref;
20
- var history = (0, _reactRouter.useHistory)();
21
- var location = (0, _reactRouterDom.useLocation)();
12
+ var history = useHistory();
13
+ var location = useLocation();
22
14
  var reactPath = location.pathname;
23
15
  var fullPath = window.location.pathname;
24
16
  var extraPath = fullPath.substr(0, fullPath.indexOf(reactPath));
25
17
  var authSession = adaptor.sdk.authSession;
26
18
  var retPath = (_authSession$returnUr = authSession.returnUrl) !== null && _authSession$returnUr !== void 0 ? _authSession$returnUr : '/';
27
19
  var oldUrl = retPath.replace(extraPath, '');
28
- (0, _react.useEffect)(() => {
20
+ useEffect(() => {
29
21
  var maybeLogin = function () {
30
22
  var _ref2 = _asyncToGenerator(function* () {
31
23
  var token = yield adaptor.login();
@@ -46,24 +38,23 @@ var OAuthScene = _ref => {
46
38
  maybeLogin();
47
39
  }, []);
48
40
  var themeOverrides = adaptor.themeOverrides();
49
- return _react.default.createElement(_components.ComponentsProvider, {
41
+ return React.createElement(ComponentsProvider, {
50
42
  loadGoogleFonts: themeOverrides.loadGoogleFonts,
51
43
  themeCustomizations: themeOverrides.themeCustomizations
52
- }, _react.default.createElement(_components.Flex, {
44
+ }, React.createElement(Flex, {
53
45
  flexDirection: "column",
54
46
  justifyContent: "center",
55
47
  mt: "25%"
56
- }, _react.default.createElement(_components.FlexItem, {
48
+ }, React.createElement(FlexItem, {
57
49
  alignSelf: "center"
58
- }, _react.default.createElement(_components.ProgressCircular, {
50
+ }, React.createElement(ProgressCircular, {
59
51
  size: "large"
60
- })), _react.default.createElement(_components.FlexItem, {
52
+ })), React.createElement(FlexItem, {
61
53
  mt: "large",
62
54
  alignSelf: "center"
63
- }, _react.default.createElement(_components.Heading, {
55
+ }, React.createElement(Heading, {
64
56
  color: "key",
65
57
  as: "h2"
66
58
  }, "Returning to ".concat(oldUrl, " after OAuth login ...")))));
67
59
  };
68
- exports.OAuthScene = OAuthScene;
69
60
  //# sourceMappingURL=OAuthScene.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OAuthScene.js","names":["_react","_interopRequireWildcard","require","_components","_reactRouter","_reactRouterDom","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","OAuthScene","_ref","_authSession$returnUr","adaptor","history","useHistory","location","useLocation","reactPath","pathname","fullPath","window","extraPath","substr","indexOf","authSession","sdk","retPath","returnUrl","oldUrl","replace","useEffect","maybeLogin","_ref2","token","login","console","push","themeOverrides","createElement","ComponentsProvider","loadGoogleFonts","themeCustomizations","Flex","flexDirection","justifyContent","mt","FlexItem","alignSelf","ProgressCircular","size","Heading","color","as","concat","exports"],"sources":["../../src/OAuthScene.tsx"],"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 { FC } from 'react'\nimport React, { useEffect } from 'react'\nimport type { BrowserSession } from '@looker/sdk-rtl'\nimport {\n ComponentsProvider,\n Flex,\n FlexItem,\n Heading,\n ProgressCircular,\n} from '@looker/components'\nimport { useHistory } from 'react-router'\nimport { useLocation } from 'react-router-dom'\nimport type { IEnvironmentAdaptor } from './adaptorUtils'\n\ninterface OAuthSceneProps {\n adaptor: IEnvironmentAdaptor\n}\n\n/**\n * OAuth scene for sdk session handling and redirection to OAuth flow initiation\n * route\n */\nexport const OAuthScene: FC<OAuthSceneProps> = ({ adaptor }) => {\n const history = useHistory()\n const location = useLocation()\n const reactPath = location.pathname\n const fullPath = (window as any).location.pathname\n const extraPath = fullPath.substr(0, fullPath.indexOf(reactPath))\n const authSession = adaptor.sdk.authSession as BrowserSession\n const retPath = authSession.returnUrl ?? '/'\n /** If this is a nested React app, remove extraPath to prevent recursive return pathing */\n const oldUrl = retPath.replace(extraPath, '')\n\n useEffect(() => {\n const maybeLogin = async () => {\n const token = await adaptor.login()\n if (token) {\n console.error({ push: oldUrl, retPath, extraPath, location })\n history.push(oldUrl)\n }\n }\n maybeLogin()\n }, [])\n\n const themeOverrides = adaptor.themeOverrides()\n return (\n <ComponentsProvider\n loadGoogleFonts={themeOverrides.loadGoogleFonts}\n themeCustomizations={themeOverrides.themeCustomizations}\n >\n <Flex flexDirection=\"column\" justifyContent=\"center\" mt=\"25%\">\n <FlexItem alignSelf=\"center\">\n <ProgressCircular size=\"large\" />\n </FlexItem>\n <FlexItem mt=\"large\" alignSelf=\"center\">\n <Heading color=\"key\" as=\"h2\">\n {`Returning to ${oldUrl} after OAuth login ...`}\n </Heading>\n </FlexItem>\n </Flex>\n </ComponentsProvider>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"OAuthScene.js","names":["React","useEffect","ComponentsProvider","Flex","FlexItem","Heading","ProgressCircular","useHistory","useLocation","OAuthScene","_ref","_authSession$returnUr","adaptor","history","location","reactPath","pathname","fullPath","window","extraPath","substr","indexOf","authSession","sdk","retPath","returnUrl","oldUrl","replace","maybeLogin","_ref2","_asyncToGenerator","token","login","console","error","push","apply","arguments","themeOverrides","createElement","loadGoogleFonts","themeCustomizations","flexDirection","justifyContent","mt","alignSelf","size","color","as","concat"],"sources":["../../src/OAuthScene.tsx"],"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 { FC } from 'react'\nimport React, { useEffect } from 'react'\nimport type { BrowserSession } from '@looker/sdk-rtl'\nimport {\n ComponentsProvider,\n Flex,\n FlexItem,\n Heading,\n ProgressCircular,\n} from '@looker/components'\nimport { useHistory } from 'react-router'\nimport { useLocation } from 'react-router-dom'\nimport type { IEnvironmentAdaptor } from './adaptorUtils'\n\ninterface OAuthSceneProps {\n adaptor: IEnvironmentAdaptor\n}\n\n/**\n * OAuth scene for sdk session handling and redirection to OAuth flow initiation\n * route\n */\nexport const OAuthScene: FC<OAuthSceneProps> = ({ adaptor }) => {\n const history = useHistory()\n const location = useLocation()\n const reactPath = location.pathname\n const fullPath = (window as any).location.pathname\n const extraPath = fullPath.substr(0, fullPath.indexOf(reactPath))\n const authSession = adaptor.sdk.authSession as BrowserSession\n const retPath = authSession.returnUrl ?? '/'\n /** If this is a nested React app, remove extraPath to prevent recursive return pathing */\n const oldUrl = retPath.replace(extraPath, '')\n\n useEffect(() => {\n const maybeLogin = async () => {\n const token = await adaptor.login()\n if (token) {\n console.error({ push: oldUrl, retPath, extraPath, location })\n history.push(oldUrl)\n }\n }\n maybeLogin()\n }, [])\n\n const themeOverrides = adaptor.themeOverrides()\n return (\n <ComponentsProvider\n loadGoogleFonts={themeOverrides.loadGoogleFonts}\n themeCustomizations={themeOverrides.themeCustomizations}\n >\n <Flex flexDirection=\"column\" justifyContent=\"center\" mt=\"25%\">\n <FlexItem alignSelf=\"center\">\n <ProgressCircular size=\"large\" />\n </FlexItem>\n <FlexItem mt=\"large\" alignSelf=\"center\">\n <Heading color=\"key\" as=\"h2\">\n {`Returning to ${oldUrl} after OAuth login ...`}\n </Heading>\n </FlexItem>\n </Flex>\n </ComponentsProvider>\n )\n}\n"],"mappings":";;AA2BA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AAExC,SACEC,kBAAkB,EAClBC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,gBAAgB,QACX,oBAAoB;AAC3B,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,WAAW,QAAQ,kBAAkB;AAW9C,OAAO,IAAMC,UAA+B,GAAGC,IAAA,IAAiB;EAAA,IAAAC,qBAAA;EAAA,IAAhB;IAAEC;EAAQ,CAAC,GAAAF,IAAA;EACzD,IAAMG,OAAO,GAAGN,UAAU,CAAC,CAAC;EAC5B,IAAMO,QAAQ,GAAGN,WAAW,CAAC,CAAC;EAC9B,IAAMO,SAAS,GAAGD,QAAQ,CAACE,QAAQ;EACnC,IAAMC,QAAQ,GAAIC,MAAM,CAASJ,QAAQ,CAACE,QAAQ;EAClD,IAAMG,SAAS,GAAGF,QAAQ,CAACG,MAAM,CAAC,CAAC,EAAEH,QAAQ,CAACI,OAAO,CAACN,SAAS,CAAC,CAAC;EACjE,IAAMO,WAAW,GAAGV,OAAO,CAACW,GAAG,CAACD,WAA6B;EAC7D,IAAME,OAAO,IAAAb,qBAAA,GAAGW,WAAW,CAACG,SAAS,cAAAd,qBAAA,cAAAA,qBAAA,GAAI,GAAG;EAE5C,IAAMe,MAAM,GAAGF,OAAO,CAACG,OAAO,CAACR,SAAS,EAAE,EAAE,CAAC;EAE7ClB,SAAS,CAAC,MAAM;IACd,IAAM2B,UAAU;MAAA,IAAAC,KAAA,GAAAC,iBAAA,CAAG,aAAY;QAC7B,IAAMC,KAAK,SAASnB,OAAO,CAACoB,KAAK,CAAC,CAAC;QACnC,IAAID,KAAK,EAAE;UACTE,OAAO,CAACC,KAAK,CAAC;YAAEC,IAAI,EAAET,MAAM;YAAEF,OAAO;YAAEL,SAAS;YAAEL;UAAS,CAAC,CAAC;UAC7DD,OAAO,CAACsB,IAAI,CAACT,MAAM,CAAC;QACtB;MACF,CAAC;MAAA,gBANKE,UAAUA,CAAA;QAAA,OAAAC,KAAA,CAAAO,KAAA,OAAAC,SAAA;MAAA;IAAA,GAMf;IACDT,UAAU,CAAC,CAAC;EACd,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMU,cAAc,GAAG1B,OAAO,CAAC0B,cAAc,CAAC,CAAC;EAC/C,OACEtC,KAAA,CAAAuC,aAAA,CAACrC,kBAAkB;IACjBsC,eAAe,EAAEF,cAAc,CAACE,eAAgB;IAChDC,mBAAmB,EAAEH,cAAc,CAACG;EAAoB,GAExDzC,KAAA,CAAAuC,aAAA,CAACpC,IAAI;IAACuC,aAAa,EAAC,QAAQ;IAACC,cAAc,EAAC,QAAQ;IAACC,EAAE,EAAC;EAAK,GAC3D5C,KAAA,CAAAuC,aAAA,CAACnC,QAAQ;IAACyC,SAAS,EAAC;EAAQ,GAC1B7C,KAAA,CAAAuC,aAAA,CAACjC,gBAAgB;IAACwC,IAAI,EAAC;EAAO,CAAE,CACxB,CAAC,EACX9C,KAAA,CAAAuC,aAAA,CAACnC,QAAQ;IAACwC,EAAE,EAAC,OAAO;IAACC,SAAS,EAAC;EAAQ,GACrC7C,KAAA,CAAAuC,aAAA,CAAClC,OAAO;IAAC0C,KAAK,EAAC,KAAK;IAACC,EAAE,EAAC;EAAI,mBAAAC,MAAA,CACTvB,MAAM,2BAChB,CACD,CACN,CACY,CAAC;AAEzB,CAAC"}
@@ -1,13 +1,6 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.unregisterEnvAdaptor = exports.registerTestEnvAdaptor = exports.registerEnvAdaptor = exports.hostedInternally = exports.getThemeOverrides = exports.getEnvAdaptor = exports.appPath = void 0;
7
- var _browserAdaptor = require("./browserAdaptor");
8
- var hostedInternally = hostname => hostname.endsWith('.looker.com') || hostname.endsWith('.google.com') || hostname === 'localhost' || hostname.startsWith('looker-developer-portal') && hostname.endsWith('.web.app');
9
- exports.hostedInternally = hostedInternally;
10
- var getThemeOverrides = internalTheming => internalTheming ? {
1
+ import { BrowserAdaptor } from './browserAdaptor';
2
+ export var hostedInternally = hostname => hostname.endsWith('.looker.com') || hostname.endsWith('.google.com') || hostname === 'localhost' || hostname.startsWith('looker-developer-portal') && hostname.endsWith('.web.app');
3
+ export var getThemeOverrides = internalTheming => internalTheming ? {
11
4
  loadGoogleFonts: true,
12
5
  themeCustomizations: {
13
6
  fontFamilies: {
@@ -24,29 +17,24 @@ var getThemeOverrides = internalTheming => internalTheming ? {
24
17
  }
25
18
  }
26
19
  };
27
- exports.getThemeOverrides = getThemeOverrides;
28
20
  var extensionAdaptor;
29
- var registerEnvAdaptor = adaptor => {
21
+ export var registerEnvAdaptor = adaptor => {
30
22
  extensionAdaptor = adaptor;
31
23
  };
32
- exports.registerEnvAdaptor = registerEnvAdaptor;
33
- var unregisterEnvAdaptor = () => {
24
+ export var unregisterEnvAdaptor = () => {
34
25
  extensionAdaptor = undefined;
35
26
  };
36
- exports.unregisterEnvAdaptor = unregisterEnvAdaptor;
37
- var getEnvAdaptor = () => {
27
+ export var getEnvAdaptor = () => {
38
28
  if (!extensionAdaptor) {
39
29
  throw new Error('Environment adaptor not initialized.');
40
30
  }
41
31
  return extensionAdaptor;
42
32
  };
43
- exports.getEnvAdaptor = getEnvAdaptor;
44
- var registerTestEnvAdaptor = adaptor => {
33
+ export var registerTestEnvAdaptor = adaptor => {
45
34
  var mockSdk = {};
46
- registerEnvAdaptor(adaptor || new _browserAdaptor.BrowserAdaptor(mockSdk));
35
+ registerEnvAdaptor(adaptor || new BrowserAdaptor(mockSdk));
47
36
  };
48
- exports.registerTestEnvAdaptor = registerTestEnvAdaptor;
49
- var appPath = (location, newPath) => {
37
+ export var appPath = (location, newPath) => {
50
38
  var reactPath = location.pathname;
51
39
  var wloc = window.location;
52
40
  var base = wloc.origin;
@@ -54,5 +42,4 @@ var appPath = (location, newPath) => {
54
42
  var result = "".concat(base).concat(wpath.substring(0, wpath.indexOf(reactPath))).concat(newPath);
55
43
  return result;
56
44
  };
57
- exports.appPath = appPath;
58
45
  //# sourceMappingURL=adaptorUtils.js.map