@looker/sdk-rtl 21.5.0 → 21.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/lib/CSRFSession.js +3 -17
- package/lib/CSRFSession.js.map +1 -1
- package/lib/apiMethods.js +6 -47
- package/lib/apiMethods.js.map +1 -1
- package/lib/apiSettings.js +4 -24
- package/lib/apiSettings.js.map +1 -1
- package/lib/authSession.js +3 -18
- package/lib/authSession.js.map +1 -1
- package/lib/authToken.js +3 -18
- package/lib/authToken.js.map +1 -1
- package/lib/baseTransport.js +3 -12
- package/lib/baseTransport.js.map +1 -1
- package/lib/browser.js +0 -34
- package/lib/browser.js.map +1 -1
- package/lib/browserServices.js +3 -11
- package/lib/browserServices.js.map +1 -1
- package/lib/browserSession.js +6 -21
- package/lib/browserSession.js.map +1 -1
- package/lib/browserTransport.js +5 -63
- package/lib/browserTransport.js.map +1 -1
- package/lib/constants.js +1 -11
- package/lib/constants.js.map +1 -1
- package/lib/cryptoHash.js +1 -1
- package/lib/cryptoHash.js.map +1 -1
- package/lib/delimArray.js +3 -8
- package/lib/delimArray.js.map +1 -1
- package/lib/errorDoc.d.ts +1 -1
- package/lib/errorDoc.js +9 -50
- package/lib/errorDoc.js.map +1 -1
- package/lib/esm/CSRFSession.js +14 -17
- package/lib/esm/CSRFSession.js.map +1 -1
- package/lib/esm/apiMethods.js +18 -46
- package/lib/esm/apiMethods.js.map +1 -1
- package/lib/esm/apiSettings.js +32 -28
- package/lib/esm/apiSettings.js.map +1 -1
- package/lib/esm/authSession.js +14 -19
- package/lib/esm/authSession.js.map +1 -1
- package/lib/esm/authToken.js +11 -17
- package/lib/esm/authToken.js.map +1 -1
- package/lib/esm/baseTransport.js +14 -13
- package/lib/esm/baseTransport.js.map +1 -1
- package/lib/esm/browser.js +192 -17
- package/lib/esm/browser.js.map +1 -1
- package/lib/esm/browserServices.js +15 -12
- package/lib/esm/browserServices.js.map +1 -1
- package/lib/esm/browserSession.js +21 -23
- package/lib/esm/browserSession.js.map +1 -1
- package/lib/esm/browserTransport.js +24 -68
- package/lib/esm/browserTransport.js.map +1 -1
- package/lib/esm/constants.js +22 -10
- package/lib/esm/constants.js.map +1 -1
- package/lib/esm/cryptoHash.js.map +1 -1
- package/lib/esm/delimArray.js +10 -6
- package/lib/esm/delimArray.js.map +1 -1
- package/lib/esm/errorDoc.js +23 -51
- package/lib/esm/errorDoc.js.map +1 -1
- package/lib/esm/extensionSession.js +11 -16
- package/lib/esm/extensionSession.js.map +1 -1
- package/lib/esm/extensionTransport.js +13 -19
- package/lib/esm/extensionTransport.js.map +1 -1
- package/lib/esm/index.js +236 -21
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/lookerSDKError.js +13 -12
- package/lib/esm/lookerSDKError.js.map +1 -1
- package/lib/esm/oauthSession.js +23 -66
- package/lib/esm/oauthSession.js.map +1 -1
- package/lib/esm/paging.js +24 -71
- package/lib/esm/paging.js.map +1 -1
- package/lib/esm/platformServices.js.map +1 -1
- package/lib/esm/proxySession.js +13 -13
- package/lib/esm/proxySession.js.map +1 -1
- package/lib/esm/testUtils/index.js +17 -0
- package/lib/esm/testUtils/index.js.map +1 -0
- package/lib/esm/testUtils/testUtils.js +46 -0
- package/lib/esm/testUtils/testUtils.js.map +1 -0
- package/lib/esm/transport.js +59 -64
- package/lib/esm/transport.js.map +1 -1
- package/lib/extensionSession.js +3 -17
- package/lib/extensionSession.js.map +1 -1
- package/lib/extensionTransport.js +5 -20
- package/lib/extensionTransport.js.map +1 -1
- package/lib/index.js +0 -42
- package/lib/index.js.map +1 -1
- package/lib/lookerSDKError.js +5 -13
- package/lib/lookerSDKError.js.map +1 -1
- package/lib/oauthSession.js +8 -63
- package/lib/oauthSession.js.map +1 -1
- package/lib/paging.js +5 -70
- package/lib/paging.js.map +1 -1
- package/lib/platformServices.js +1 -1
- package/lib/platformServices.js.map +1 -1
- package/lib/proxySession.js +0 -12
- package/lib/proxySession.js.map +1 -1
- package/lib/testUtils/index.js +0 -2
- package/lib/testUtils/index.js.map +1 -1
- package/lib/testUtils/testUtils.js +1 -16
- package/lib/testUtils/testUtils.js.map +1 -1
- package/lib/transport.js +16 -58
- package/lib/transport.js.map +1 -1
- package/package.json +3 -3
package/lib/index.js
CHANGED
|
@@ -3,9 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
|
|
7
6
|
var _apiMethods = require("./apiMethods");
|
|
8
|
-
|
|
9
7
|
Object.keys(_apiMethods).forEach(function (key) {
|
|
10
8
|
if (key === "default" || key === "__esModule") return;
|
|
11
9
|
if (key in exports && exports[key] === _apiMethods[key]) return;
|
|
@@ -16,9 +14,7 @@ Object.keys(_apiMethods).forEach(function (key) {
|
|
|
16
14
|
}
|
|
17
15
|
});
|
|
18
16
|
});
|
|
19
|
-
|
|
20
17
|
var _apiSettings = require("./apiSettings");
|
|
21
|
-
|
|
22
18
|
Object.keys(_apiSettings).forEach(function (key) {
|
|
23
19
|
if (key === "default" || key === "__esModule") return;
|
|
24
20
|
if (key in exports && exports[key] === _apiSettings[key]) return;
|
|
@@ -29,9 +25,7 @@ Object.keys(_apiSettings).forEach(function (key) {
|
|
|
29
25
|
}
|
|
30
26
|
});
|
|
31
27
|
});
|
|
32
|
-
|
|
33
28
|
var _authSession = require("./authSession");
|
|
34
|
-
|
|
35
29
|
Object.keys(_authSession).forEach(function (key) {
|
|
36
30
|
if (key === "default" || key === "__esModule") return;
|
|
37
31
|
if (key in exports && exports[key] === _authSession[key]) return;
|
|
@@ -42,9 +36,7 @@ Object.keys(_authSession).forEach(function (key) {
|
|
|
42
36
|
}
|
|
43
37
|
});
|
|
44
38
|
});
|
|
45
|
-
|
|
46
39
|
var _authToken = require("./authToken");
|
|
47
|
-
|
|
48
40
|
Object.keys(_authToken).forEach(function (key) {
|
|
49
41
|
if (key === "default" || key === "__esModule") return;
|
|
50
42
|
if (key in exports && exports[key] === _authToken[key]) return;
|
|
@@ -55,9 +47,7 @@ Object.keys(_authToken).forEach(function (key) {
|
|
|
55
47
|
}
|
|
56
48
|
});
|
|
57
49
|
});
|
|
58
|
-
|
|
59
50
|
var _baseTransport = require("./baseTransport");
|
|
60
|
-
|
|
61
51
|
Object.keys(_baseTransport).forEach(function (key) {
|
|
62
52
|
if (key === "default" || key === "__esModule") return;
|
|
63
53
|
if (key in exports && exports[key] === _baseTransport[key]) return;
|
|
@@ -68,9 +58,7 @@ Object.keys(_baseTransport).forEach(function (key) {
|
|
|
68
58
|
}
|
|
69
59
|
});
|
|
70
60
|
});
|
|
71
|
-
|
|
72
61
|
var _browserSession = require("./browserSession");
|
|
73
|
-
|
|
74
62
|
Object.keys(_browserSession).forEach(function (key) {
|
|
75
63
|
if (key === "default" || key === "__esModule") return;
|
|
76
64
|
if (key in exports && exports[key] === _browserSession[key]) return;
|
|
@@ -81,9 +69,7 @@ Object.keys(_browserSession).forEach(function (key) {
|
|
|
81
69
|
}
|
|
82
70
|
});
|
|
83
71
|
});
|
|
84
|
-
|
|
85
72
|
var _browserServices = require("./browserServices");
|
|
86
|
-
|
|
87
73
|
Object.keys(_browserServices).forEach(function (key) {
|
|
88
74
|
if (key === "default" || key === "__esModule") return;
|
|
89
75
|
if (key in exports && exports[key] === _browserServices[key]) return;
|
|
@@ -94,9 +80,7 @@ Object.keys(_browserServices).forEach(function (key) {
|
|
|
94
80
|
}
|
|
95
81
|
});
|
|
96
82
|
});
|
|
97
|
-
|
|
98
83
|
var _browserTransport = require("./browserTransport");
|
|
99
|
-
|
|
100
84
|
Object.keys(_browserTransport).forEach(function (key) {
|
|
101
85
|
if (key === "default" || key === "__esModule") return;
|
|
102
86
|
if (key in exports && exports[key] === _browserTransport[key]) return;
|
|
@@ -107,9 +91,7 @@ Object.keys(_browserTransport).forEach(function (key) {
|
|
|
107
91
|
}
|
|
108
92
|
});
|
|
109
93
|
});
|
|
110
|
-
|
|
111
94
|
var _constants = require("./constants");
|
|
112
|
-
|
|
113
95
|
Object.keys(_constants).forEach(function (key) {
|
|
114
96
|
if (key === "default" || key === "__esModule") return;
|
|
115
97
|
if (key in exports && exports[key] === _constants[key]) return;
|
|
@@ -120,9 +102,7 @@ Object.keys(_constants).forEach(function (key) {
|
|
|
120
102
|
}
|
|
121
103
|
});
|
|
122
104
|
});
|
|
123
|
-
|
|
124
105
|
var _cryptoHash = require("./cryptoHash");
|
|
125
|
-
|
|
126
106
|
Object.keys(_cryptoHash).forEach(function (key) {
|
|
127
107
|
if (key === "default" || key === "__esModule") return;
|
|
128
108
|
if (key in exports && exports[key] === _cryptoHash[key]) return;
|
|
@@ -133,9 +113,7 @@ Object.keys(_cryptoHash).forEach(function (key) {
|
|
|
133
113
|
}
|
|
134
114
|
});
|
|
135
115
|
});
|
|
136
|
-
|
|
137
116
|
var _CSRFSession = require("./CSRFSession");
|
|
138
|
-
|
|
139
117
|
Object.keys(_CSRFSession).forEach(function (key) {
|
|
140
118
|
if (key === "default" || key === "__esModule") return;
|
|
141
119
|
if (key in exports && exports[key] === _CSRFSession[key]) return;
|
|
@@ -146,9 +124,7 @@ Object.keys(_CSRFSession).forEach(function (key) {
|
|
|
146
124
|
}
|
|
147
125
|
});
|
|
148
126
|
});
|
|
149
|
-
|
|
150
127
|
var _delimArray = require("./delimArray");
|
|
151
|
-
|
|
152
128
|
Object.keys(_delimArray).forEach(function (key) {
|
|
153
129
|
if (key === "default" || key === "__esModule") return;
|
|
154
130
|
if (key in exports && exports[key] === _delimArray[key]) return;
|
|
@@ -159,9 +135,7 @@ Object.keys(_delimArray).forEach(function (key) {
|
|
|
159
135
|
}
|
|
160
136
|
});
|
|
161
137
|
});
|
|
162
|
-
|
|
163
138
|
var _errorDoc = require("./errorDoc");
|
|
164
|
-
|
|
165
139
|
Object.keys(_errorDoc).forEach(function (key) {
|
|
166
140
|
if (key === "default" || key === "__esModule") return;
|
|
167
141
|
if (key in exports && exports[key] === _errorDoc[key]) return;
|
|
@@ -172,9 +146,7 @@ Object.keys(_errorDoc).forEach(function (key) {
|
|
|
172
146
|
}
|
|
173
147
|
});
|
|
174
148
|
});
|
|
175
|
-
|
|
176
149
|
var _extensionSession = require("./extensionSession");
|
|
177
|
-
|
|
178
150
|
Object.keys(_extensionSession).forEach(function (key) {
|
|
179
151
|
if (key === "default" || key === "__esModule") return;
|
|
180
152
|
if (key in exports && exports[key] === _extensionSession[key]) return;
|
|
@@ -185,9 +157,7 @@ Object.keys(_extensionSession).forEach(function (key) {
|
|
|
185
157
|
}
|
|
186
158
|
});
|
|
187
159
|
});
|
|
188
|
-
|
|
189
160
|
var _extensionTransport = require("./extensionTransport");
|
|
190
|
-
|
|
191
161
|
Object.keys(_extensionTransport).forEach(function (key) {
|
|
192
162
|
if (key === "default" || key === "__esModule") return;
|
|
193
163
|
if (key in exports && exports[key] === _extensionTransport[key]) return;
|
|
@@ -198,9 +168,7 @@ Object.keys(_extensionTransport).forEach(function (key) {
|
|
|
198
168
|
}
|
|
199
169
|
});
|
|
200
170
|
});
|
|
201
|
-
|
|
202
171
|
var _lookerSDKError = require("./lookerSDKError");
|
|
203
|
-
|
|
204
172
|
Object.keys(_lookerSDKError).forEach(function (key) {
|
|
205
173
|
if (key === "default" || key === "__esModule") return;
|
|
206
174
|
if (key in exports && exports[key] === _lookerSDKError[key]) return;
|
|
@@ -211,9 +179,7 @@ Object.keys(_lookerSDKError).forEach(function (key) {
|
|
|
211
179
|
}
|
|
212
180
|
});
|
|
213
181
|
});
|
|
214
|
-
|
|
215
182
|
var _oauthSession = require("./oauthSession");
|
|
216
|
-
|
|
217
183
|
Object.keys(_oauthSession).forEach(function (key) {
|
|
218
184
|
if (key === "default" || key === "__esModule") return;
|
|
219
185
|
if (key in exports && exports[key] === _oauthSession[key]) return;
|
|
@@ -224,9 +190,7 @@ Object.keys(_oauthSession).forEach(function (key) {
|
|
|
224
190
|
}
|
|
225
191
|
});
|
|
226
192
|
});
|
|
227
|
-
|
|
228
193
|
var _paging = require("./paging");
|
|
229
|
-
|
|
230
194
|
Object.keys(_paging).forEach(function (key) {
|
|
231
195
|
if (key === "default" || key === "__esModule") return;
|
|
232
196
|
if (key in exports && exports[key] === _paging[key]) return;
|
|
@@ -237,9 +201,7 @@ Object.keys(_paging).forEach(function (key) {
|
|
|
237
201
|
}
|
|
238
202
|
});
|
|
239
203
|
});
|
|
240
|
-
|
|
241
204
|
var _platformServices = require("./platformServices");
|
|
242
|
-
|
|
243
205
|
Object.keys(_platformServices).forEach(function (key) {
|
|
244
206
|
if (key === "default" || key === "__esModule") return;
|
|
245
207
|
if (key in exports && exports[key] === _platformServices[key]) return;
|
|
@@ -250,9 +212,7 @@ Object.keys(_platformServices).forEach(function (key) {
|
|
|
250
212
|
}
|
|
251
213
|
});
|
|
252
214
|
});
|
|
253
|
-
|
|
254
215
|
var _proxySession = require("./proxySession");
|
|
255
|
-
|
|
256
216
|
Object.keys(_proxySession).forEach(function (key) {
|
|
257
217
|
if (key === "default" || key === "__esModule") return;
|
|
258
218
|
if (key in exports && exports[key] === _proxySession[key]) return;
|
|
@@ -263,9 +223,7 @@ Object.keys(_proxySession).forEach(function (key) {
|
|
|
263
223
|
}
|
|
264
224
|
});
|
|
265
225
|
});
|
|
266
|
-
|
|
267
226
|
var _transport = require("./transport");
|
|
268
|
-
|
|
269
227
|
Object.keys(_transport).forEach(function (key) {
|
|
270
228
|
if (key === "default" || key === "__esModule") return;
|
|
271
229
|
if (key in exports && exports[key] === _transport[key]) return;
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","names":["_apiMethods","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_apiSettings","_authSession","_authToken","_baseTransport","_browserSession","_browserServices","_browserTransport","_constants","_cryptoHash","_CSRFSession","_delimArray","_errorDoc","_extensionSession","_extensionTransport","_lookerSDKError","_oauthSession","_paging","_platformServices","_proxySession","_transport"],"sources":["../src/index.ts"],"sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nexport * from './apiMethods'\nexport * from './apiSettings'\nexport * from './authSession'\nexport * from './authToken'\nexport * from './baseTransport'\nexport * from './browserSession'\nexport * from './browserServices'\nexport * from './browserTransport'\nexport * from './constants'\nexport * from './cryptoHash'\nexport * from './CSRFSession'\nexport * from './delimArray'\nexport * from './errorDoc'\nexport * from './extensionSession'\nexport * from './extensionTransport'\nexport * from './lookerSDKError'\nexport * from './oauthSession'\nexport * from './paging'\nexport * from './platformServices'\nexport * from './proxySession'\nexport * from './transport'\n"],"mappings":"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"}
|
package/lib/lookerSDKError.js
CHANGED
|
@@ -4,29 +4,23 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.LookerSDKError = void 0;
|
|
7
|
-
|
|
7
|
+
var _excluded = ["errors", "documentation_url"];
|
|
8
8
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
9
|
-
|
|
10
9
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
11
|
-
|
|
12
10
|
var LookerSDKError = (() => {
|
|
13
11
|
'use strict';
|
|
14
12
|
|
|
15
13
|
var LookerSDKErrorConstructor = function LookerSDKError() {
|
|
16
14
|
var _errors, _documentation_url;
|
|
17
|
-
|
|
18
15
|
for (var _len = arguments.length, _ref = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
19
16
|
_ref[_key] = arguments[_key];
|
|
20
17
|
}
|
|
21
|
-
|
|
22
18
|
var [message, _ref2 = {}, ...rest] = _ref;
|
|
23
|
-
|
|
24
19
|
var {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
20
|
+
errors,
|
|
21
|
+
documentation_url
|
|
22
|
+
} = _ref2,
|
|
23
|
+
errorOptions = _objectWithoutProperties(_ref2, _excluded);
|
|
30
24
|
(_errors = errors) !== null && _errors !== void 0 ? _errors : errors = [];
|
|
31
25
|
(_documentation_url = documentation_url) !== null && _documentation_url !== void 0 ? _documentation_url : documentation_url = '';
|
|
32
26
|
var error = this ? new Error(message, errorOptions, ...rest) : Error(message, errorOptions, ...rest);
|
|
@@ -38,7 +32,6 @@ var LookerSDKError = (() => {
|
|
|
38
32
|
error.documentation_url = documentation_url;
|
|
39
33
|
return error;
|
|
40
34
|
};
|
|
41
|
-
|
|
42
35
|
Object.defineProperty(LookerSDKErrorConstructor, 'prototype', {
|
|
43
36
|
value: Object.create(Error.prototype, {
|
|
44
37
|
constructor: {
|
|
@@ -56,6 +49,5 @@ var LookerSDKError = (() => {
|
|
|
56
49
|
});
|
|
57
50
|
return LookerSDKErrorConstructor;
|
|
58
51
|
})();
|
|
59
|
-
|
|
60
52
|
exports.LookerSDKError = LookerSDKError;
|
|
61
53
|
//# sourceMappingURL=lookerSDKError.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"lookerSDKError.js","names":["LookerSDKError","LookerSDKErrorConstructor","_errors","_documentation_url","_len","arguments","length","_ref","Array","_key","message","_ref2","rest","errors","documentation_url","errorOptions","_objectWithoutProperties","_excluded","error","Error","Object","setPrototypeOf","getPrototypeOf","prototype","defineProperty","enumerable","value","create","constructor","writable","configurable","name","exports"],"sources":["../src/lookerSDKError.ts"],"sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2022 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\n/* eslint-disable @typescript-eslint/ban-ts-comment, @typescript-eslint/no-redeclare */\n\n// Defensive type-level programming to guard against additional\n// parameters being added to Error, as happened in lib.es2022.error.d.ts\n// (which introduced the errorOptions argument)\ntype AugmentErrorOptions<\n ErrorParameters extends unknown[],\n AdditionalErrorOptions\n> = ErrorParameters extends [(infer Message)?]\n ? [Message?, AdditionalErrorOptions?]\n : ErrorParameters extends [(infer Message)?, (infer ErrorOptions)?]\n ? [Message?, (ErrorOptions & AdditionalErrorOptions)?]\n : ErrorParameters extends [\n (infer Message)?,\n (infer ErrorOptions)?,\n ...infer Rest\n ]\n ? [Message?, (ErrorOptions & AdditionalErrorOptions)?, ...Rest]\n : never\n\ninterface IErrorDetail {\n field?: string\n code?: string\n message?: string\n documentation_url: string\n}\n\n// This specifies SDK custom error options\ninterface ILookerSDKErrorOptions {\n errors?: IErrorDetail[]\n documentation_url?: string | null\n}\n\ninterface ILookerSDKErrorConstructor {\n new (\n ...args: AugmentErrorOptions<\n ConstructorParameters<ErrorConstructor>,\n ILookerSDKErrorOptions\n >\n ): LookerSDKError\n (\n ...args: AugmentErrorOptions<\n Parameters<ErrorConstructor>,\n ILookerSDKErrorOptions\n >\n ): LookerSDKError\n}\n\n// The subclass and function expression's name should match, so that stack traces look clean.\n// We bind it to a local identifier for clarity, and to perform a type assertion.\nexport interface LookerSDKError extends Error {\n errors?: IErrorDetail[]\n documentation_url?: string | null\n}\n\nexport const LookerSDKError: ILookerSDKErrorConstructor =\n /* #__PURE__*/ (() => {\n 'use strict'\n const LookerSDKErrorConstructor = function LookerSDKError(\n this: LookerSDKError | undefined,\n ...[\n message,\n {\n errors,\n documentation_url,\n ...errorOptions\n } = {} as ILookerSDKErrorOptions,\n ...rest\n ]: AugmentErrorOptions<\n ConstructorParameters<ErrorConstructor>,\n ILookerSDKErrorOptions\n > &\n AugmentErrorOptions<\n Parameters<ErrorConstructor>,\n ILookerSDKErrorOptions\n >\n ) {\n // handle null in addition to undefined\n errors ??= []\n documentation_url ??= ''\n\n // The `super()` call. At present, Error() and new Error() are\n // indistinguishable, but use whatever we were invoked with in case\n // that ever changes.\n const error = this\n ? new Error(\n message,\n // we have to suppress a type error here if TypeScript\n // doesn't know es2022's two-argument Error constructor\n // @ts-ignore-error\n errorOptions,\n ...rest\n )\n : Error(\n message,\n // @ts-ignore-error\n errorOptions,\n ...rest\n )\n\n // Object.setPrototypeOf() is necessary when extending built-ins,\n // since Error.call(this, message, errorOptions, ...rest) doesn't\n // set up the prototype chain the way it would with a user-defined\n // class.\n Object.setPrototypeOf(\n error,\n this ? Object.getPrototypeOf(this) : LookerSDKError.prototype\n )\n\n // Normally the 'message' property of JavaScript Error objects is non-enumerable\n // set it to be enumerable for consistency with our non-error responses,\n // which are implemented as plain JavaScript objects where all\n // properties are enumerable.\n Object.defineProperty(error, 'message', { enumerable: true })\n ;(error as LookerSDKError).errors = errors\n ;(error as LookerSDKError).documentation_url = documentation_url\n\n return error\n } as ILookerSDKErrorConstructor\n\n // LookerSDKError.prototype, LookerSDKError.prototype.constructor, and\n // LookerSDKError.prototoype.name all have to be non-enumerable to match\n // the built-in RangeError, TypeError, etc., so we use\n // Object.defineProperty to set them instead of `=` assignment.\n\n // Default values for property descriptor objects:\n // writable: false\n // enumerable: false\n // configurable: false\n Object.defineProperty(\n LookerSDKErrorConstructor,\n 'prototype',\n // It's a weird wart that the built-in Error constructor\n // prototypes have writable and configurable constructor and name\n // fields. We follow that behavior to be consistent, not because\n // it makes sense.\n {\n value: Object.create(Error.prototype, {\n constructor: {\n value: LookerSDKErrorConstructor,\n writable: true,\n configurable: true,\n },\n name: {\n value: 'LookerSDKError',\n writable: true,\n configurable: true,\n },\n }),\n // SomeConstructorFunction.prototype starts off writable with\n // `function`-type constructors, in contrast to `class SomeClass`.\n // Set this to be non-writable to match `class`es and the built-in\n // Error constructors.\n writable: false,\n }\n )\n\n return LookerSDKErrorConstructor\n })()\n"],"mappings":";;;;;;;;;AAiFO,IAAMA,cAA0C,GACtC,CAAC,MAAM;EACpB,YAAY;;EACZ,IAAMC,yBAAyB,GAAG,SAASD,cAAcA,CAAA,EAkBvD;IAAA,IAAAE,OAAA,EAAAC,kBAAA;IAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;IAAA;IAAA,IAhBG,CACDC,OAAO,EACPC,KAAA,GAII,CAAC,CAA2B,EAChC,GAAGC,IAAI,CACR,GAAAL,IAAA;IAAA,IANC;QACEM,MAAM;QACNC;MAEF,CAAC,GAAAH,KAAA;MADII,YAAY,GAAAC,wBAAA,CAAAL,KAAA,EAAAM,SAAA;IAanB,CAAAf,OAAA,GAAAW,MAAM,cAAAX,OAAA,cAAAA,OAAA,GAANW,MAAM,GAAK,EAAE;IACb,CAAAV,kBAAA,GAAAW,iBAAiB,cAAAX,kBAAA,cAAAA,kBAAA,GAAjBW,iBAAiB,GAAK,EAAE;IAKxB,IAAMI,KAAK,GAAG,IAAI,GACd,IAAIC,KAAK,CACPT,OAAO,EAIPK,YAAY,EACZ,GAAGH,IAAI,CACR,GACDO,KAAK,CACHT,OAAO,EAEPK,YAAY,EACZ,GAAGH,IAAI,CACR;IAMLQ,MAAM,CAACC,cAAc,CACnBH,KAAK,EACL,IAAI,GAAGE,MAAM,CAACE,cAAc,CAAC,IAAI,CAAC,GAAGtB,cAAc,CAACuB,SAAS,CAC9D;IAMDH,MAAM,CAACI,cAAc,CAACN,KAAK,EAAE,SAAS,EAAE;MAAEO,UAAU,EAAE;IAAK,CAAC,CAAC;IAC3DP,KAAK,CAAoBL,MAAM,GAAGA,MAAM;IACxCK,KAAK,CAAoBJ,iBAAiB,GAAGA,iBAAiB;IAEhE,OAAOI,KAAK;EACd,CAA+B;EAW/BE,MAAM,CAACI,cAAc,CACnBvB,yBAAyB,EACzB,WAAW,EAKX;IACEyB,KAAK,EAAEN,MAAM,CAACO,MAAM,CAACR,KAAK,CAACI,SAAS,EAAE;MACpCK,WAAW,EAAE;QACXF,KAAK,EAAEzB,yBAAyB;QAChC4B,QAAQ,EAAE,IAAI;QACdC,YAAY,EAAE;MAChB,CAAC;MACDC,IAAI,EAAE;QACJL,KAAK,EAAE,gBAAgB;QACvBG,QAAQ,EAAE,IAAI;QACdC,YAAY,EAAE;MAChB;IACF,CAAC,CAAC;IAKFD,QAAQ,EAAE;EACZ,CAAC,CACF;EAED,OAAO5B,yBAAyB;AAClC,CAAC,GAAG;AAAA+B,OAAA,CAAAhC,cAAA,GAAAA,cAAA"}
|
package/lib/oauthSession.js
CHANGED
|
@@ -4,41 +4,27 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.OAuthSession = void 0;
|
|
7
|
-
|
|
8
7
|
var _authSession = require("./authSession");
|
|
9
|
-
|
|
10
8
|
var _transport = require("./transport");
|
|
11
|
-
|
|
12
9
|
var _authToken = require("./authToken");
|
|
13
|
-
|
|
14
10
|
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); } }
|
|
15
|
-
|
|
16
11
|
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); }); }; }
|
|
17
|
-
|
|
18
|
-
function
|
|
19
|
-
|
|
20
|
-
function
|
|
21
|
-
|
|
22
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
23
|
-
|
|
12
|
+
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
|
+
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
|
+
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
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
16
|
+
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); }
|
|
24
17
|
class OAuthSession extends _authSession.AuthSession {
|
|
25
18
|
constructor(services) {
|
|
26
19
|
super(services.settings, services.transport);
|
|
27
|
-
|
|
28
20
|
_defineProperty(this, "activeToken", new _authToken.AuthToken());
|
|
29
|
-
|
|
30
21
|
_defineProperty(this, "crypto", void 0);
|
|
31
|
-
|
|
32
22
|
_defineProperty(this, "reentry", false);
|
|
33
|
-
|
|
34
23
|
this.crypto = services.crypto;
|
|
35
24
|
var keys = ['client_id', 'redirect_uri', 'base_url', 'looker_url'];
|
|
36
|
-
|
|
37
25
|
var config = _objectSpread(_objectSpread({}, this.settings), this.settings.readConfig());
|
|
38
|
-
|
|
39
26
|
keys.forEach(key => {
|
|
40
27
|
var value = config[key];
|
|
41
|
-
|
|
42
28
|
if (!value) {
|
|
43
29
|
throw (0, _transport.sdkError)({
|
|
44
30
|
message: "Missing required configuration setting: '".concat(key, "'")
|
|
@@ -46,29 +32,22 @@ class OAuthSession extends _authSession.AuthSession {
|
|
|
46
32
|
}
|
|
47
33
|
});
|
|
48
34
|
}
|
|
49
|
-
|
|
50
35
|
readConfig() {
|
|
51
36
|
return _objectSpread(_objectSpread({}, this.settings), this.settings.readConfig());
|
|
52
37
|
}
|
|
53
|
-
|
|
54
38
|
authenticate(props) {
|
|
55
39
|
var _this = this;
|
|
56
|
-
|
|
57
40
|
return _asyncToGenerator(function* () {
|
|
58
41
|
var token = yield _this.getToken();
|
|
59
|
-
|
|
60
42
|
if (token.access_token) {
|
|
61
43
|
props.headers.Authorization = "Bearer ".concat(token.access_token);
|
|
62
44
|
}
|
|
63
|
-
|
|
64
45
|
return props;
|
|
65
46
|
})();
|
|
66
47
|
}
|
|
67
|
-
|
|
68
48
|
get code_verifier() {
|
|
69
49
|
return sessionStorage.getItem(OAuthSession.codeVerifierKey);
|
|
70
50
|
}
|
|
71
|
-
|
|
72
51
|
set code_verifier(value) {
|
|
73
52
|
if (value === null) {
|
|
74
53
|
sessionStorage.removeItem(OAuthSession.codeVerifierKey);
|
|
@@ -76,11 +55,9 @@ class OAuthSession extends _authSession.AuthSession {
|
|
|
76
55
|
sessionStorage.setItem(OAuthSession.codeVerifierKey, value);
|
|
77
56
|
}
|
|
78
57
|
}
|
|
79
|
-
|
|
80
58
|
get returnUrl() {
|
|
81
59
|
return sessionStorage.getItem(OAuthSession.returnUrlKey);
|
|
82
60
|
}
|
|
83
|
-
|
|
84
61
|
set returnUrl(value) {
|
|
85
62
|
if (!value) {
|
|
86
63
|
sessionStorage.removeItem(OAuthSession.returnUrlKey);
|
|
@@ -88,15 +65,12 @@ class OAuthSession extends _authSession.AuthSession {
|
|
|
88
65
|
sessionStorage.setItem(OAuthSession.returnUrlKey, value);
|
|
89
66
|
}
|
|
90
67
|
}
|
|
91
|
-
|
|
92
68
|
clearStorage() {
|
|
93
69
|
sessionStorage.removeItem(OAuthSession.codeVerifierKey);
|
|
94
70
|
sessionStorage.removeItem(OAuthSession.returnUrlKey);
|
|
95
71
|
}
|
|
96
|
-
|
|
97
72
|
login(_sudoId) {
|
|
98
73
|
var _this2 = this;
|
|
99
|
-
|
|
100
74
|
return _asyncToGenerator(function* () {
|
|
101
75
|
if (!_this2.isAuthenticated()) {
|
|
102
76
|
if (_this2.reentry) {} else if (!_this2.returnUrl) {
|
|
@@ -107,50 +81,38 @@ class OAuthSession extends _authSession.AuthSession {
|
|
|
107
81
|
} else {
|
|
108
82
|
_this2.reentry = true;
|
|
109
83
|
_this2.returnUrl = null;
|
|
110
|
-
|
|
111
84
|
if (!_this2.code_verifier) {
|
|
112
85
|
return Promise.reject(new Error('OAuth failed: expected code_verifier to be stored'));
|
|
113
86
|
}
|
|
114
|
-
|
|
115
87
|
var params = new URLSearchParams(window.location.search);
|
|
116
88
|
var code = params.get('code');
|
|
117
|
-
|
|
118
89
|
if (!code) {
|
|
119
90
|
return Promise.reject(new Error("OAuth failed: no OAuth code parameter found in ".concat(window.location.pathname + window.location.search)));
|
|
120
91
|
}
|
|
121
|
-
|
|
122
92
|
yield _this2.redeemAuthCode(code);
|
|
123
93
|
}
|
|
124
|
-
|
|
125
94
|
return yield _this2.getToken();
|
|
126
95
|
}
|
|
127
|
-
|
|
128
96
|
return _this2.activeToken;
|
|
129
97
|
})();
|
|
130
98
|
}
|
|
131
|
-
|
|
132
99
|
requestToken(body) {
|
|
133
100
|
var _this3 = this;
|
|
134
|
-
|
|
135
101
|
return _asyncToGenerator(function* () {
|
|
136
102
|
var config = _this3.readConfig();
|
|
137
|
-
|
|
138
103
|
var url = new URL(config.base_url);
|
|
139
104
|
url.pathname = '/api/token';
|
|
140
105
|
var token = yield _this3.ok(_this3.transport.request('POST', url.toString(), undefined, body));
|
|
141
106
|
return _this3.activeToken.setToken(token);
|
|
142
107
|
})();
|
|
143
108
|
}
|
|
144
|
-
|
|
145
109
|
createAuthCodeRequestUrl(scope, state) {
|
|
146
110
|
var _this4 = this;
|
|
147
|
-
|
|
148
111
|
return _asyncToGenerator(function* () {
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
112
|
+
var verifier = _this4.crypto.secureRandom(33);
|
|
113
|
+
_this4.code_verifier = verifier;
|
|
114
|
+
var code_challenge = yield _this4.crypto.sha256Hash(verifier);
|
|
152
115
|
var config = _this4.readConfig();
|
|
153
|
-
|
|
154
116
|
var params = {
|
|
155
117
|
client_id: config.client_id,
|
|
156
118
|
code_challenge: code_challenge,
|
|
@@ -166,7 +128,6 @@ class OAuthSession extends _authSession.AuthSession {
|
|
|
166
128
|
return url.toString();
|
|
167
129
|
})();
|
|
168
130
|
}
|
|
169
|
-
|
|
170
131
|
redeemAuthCodeBody(authCode, codeVerifier) {
|
|
171
132
|
var verifier = codeVerifier || this.code_verifier || '';
|
|
172
133
|
var config = this.readConfig();
|
|
@@ -178,23 +139,18 @@ class OAuthSession extends _authSession.AuthSession {
|
|
|
178
139
|
redirect_uri: config.redirect_uri
|
|
179
140
|
};
|
|
180
141
|
}
|
|
181
|
-
|
|
182
142
|
redeemAuthCode(authCode, codeVerifier) {
|
|
183
143
|
var _this5 = this;
|
|
184
|
-
|
|
185
144
|
return _asyncToGenerator(function* () {
|
|
186
145
|
return _this5.requestToken(_this5.redeemAuthCodeBody(authCode, codeVerifier));
|
|
187
146
|
})();
|
|
188
147
|
}
|
|
189
|
-
|
|
190
148
|
getToken() {
|
|
191
149
|
var _this6 = this;
|
|
192
|
-
|
|
193
150
|
return _asyncToGenerator(function* () {
|
|
194
151
|
if (!_this6.isAuthenticated()) {
|
|
195
152
|
if (_this6.activeToken.refresh_token) {
|
|
196
153
|
var config = _this6.readConfig();
|
|
197
|
-
|
|
198
154
|
yield _this6.requestToken({
|
|
199
155
|
client_id: config.client_id,
|
|
200
156
|
grant_type: 'refresh_token',
|
|
@@ -203,18 +159,14 @@ class OAuthSession extends _authSession.AuthSession {
|
|
|
203
159
|
});
|
|
204
160
|
}
|
|
205
161
|
}
|
|
206
|
-
|
|
207
162
|
return _this6.activeToken;
|
|
208
163
|
})();
|
|
209
164
|
}
|
|
210
|
-
|
|
211
165
|
isAuthenticated() {
|
|
212
166
|
return this.activeToken.isActive();
|
|
213
167
|
}
|
|
214
|
-
|
|
215
168
|
logout() {
|
|
216
169
|
var _this7 = this;
|
|
217
|
-
|
|
218
170
|
return _asyncToGenerator(function* () {
|
|
219
171
|
if (_this7.activeToken.access_token) {
|
|
220
172
|
yield _this7.ok(_this7.transport.request('DELETE', "/api/logout", undefined, undefined, init => {
|
|
@@ -222,21 +174,14 @@ class OAuthSession extends _authSession.AuthSession {
|
|
|
222
174
|
return init;
|
|
223
175
|
}));
|
|
224
176
|
_this7.activeToken = new _authToken.AuthToken();
|
|
225
|
-
|
|
226
177
|
_this7.clearStorage();
|
|
227
|
-
|
|
228
178
|
return true;
|
|
229
179
|
}
|
|
230
|
-
|
|
231
180
|
return false;
|
|
232
181
|
})();
|
|
233
182
|
}
|
|
234
|
-
|
|
235
183
|
}
|
|
236
|
-
|
|
237
184
|
exports.OAuthSession = OAuthSession;
|
|
238
|
-
|
|
239
185
|
_defineProperty(OAuthSession, "codeVerifierKey", 'looker_oauth_code_verifier');
|
|
240
|
-
|
|
241
186
|
_defineProperty(OAuthSession, "returnUrlKey", 'looker_oauth_return_url');
|
|
242
187
|
//# sourceMappingURL=oauthSession.js.map
|
package/lib/oauthSession.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/oauthSession.ts"],"names":["OAuthSession","AuthSession","constructor","services","settings","transport","AuthToken","crypto","keys","config","readConfig","forEach","key","value","message","authenticate","props","token","getToken","access_token","headers","Authorization","code_verifier","sessionStorage","getItem","codeVerifierKey","removeItem","setItem","returnUrl","returnUrlKey","clearStorage","login","_sudoId","isAuthenticated","reentry","authUrl","createAuthCodeRequestUrl","agentPrefix","returnTo","window","location","pathname","search","href","Promise","reject","Error","params","URLSearchParams","code","get","redeemAuthCode","activeToken","requestToken","body","url","URL","base_url","ok","request","toString","undefined","setToken","scope","state","secureRandom","code_challenge","sha256Hash","client_id","code_challenge_method","redirect_uri","response_type","looker_url","redeemAuthCodeBody","authCode","codeVerifier","verifier","grant_type","refresh_token","isActive","logout","init"],"mappings":"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","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 { IAccessToken, IError } from './authSession'\nimport { AuthSession } from './authSession'\nimport type { IRequestProps } from './transport'\nimport { agentPrefix, sdkError } from './transport'\nimport { AuthToken } from './authToken'\nimport type { ICryptoHash } from './cryptoHash'\nimport type { IPlatformServices } from './platformServices'\n\ninterface IAuthCodeGrantTypeParams {\n grant_type: 'authorization_code'\n code: string\n code_verifier: string\n client_id: string\n redirect_uri: string\n}\n\ninterface IRefreshTokenGrantTypeParams {\n grant_type: 'refresh_token'\n refresh_token: string\n client_id: string\n redirect_uri: string\n}\n\nexport class OAuthSession extends AuthSession {\n activeToken = new AuthToken()\n crypto: ICryptoHash\n reentry = false\n private static readonly codeVerifierKey = 'looker_oauth_code_verifier'\n public static readonly returnUrlKey = 'looker_oauth_return_url'\n\n constructor(services: IPlatformServices) {\n super(services.settings, services.transport)\n\n this.crypto = services.crypto\n\n const keys: string[] = [\n 'client_id',\n 'redirect_uri',\n 'base_url',\n 'looker_url',\n ]\n const config = { ...this.settings, ...this.settings.readConfig() }\n\n keys.forEach((key) => {\n const value = config[key]\n if (!value) {\n throw sdkError({\n message: `Missing required configuration setting: '${key}'`,\n })\n }\n })\n }\n\n /**\n * merge the dynamically defined configuration values with the initial settings\n */\n readConfig() {\n return { ...this.settings, ...this.settings.readConfig() }\n }\n\n /**\n * Apply current auth token credentials to an HTTP request\n * @param props request properties to update\n * @returns updated request properties with auth information added\n */\n async authenticate(props: IRequestProps): Promise<IRequestProps> {\n const token = await this.getToken()\n if (token.access_token) {\n props.headers.Authorization = `Bearer ${token.access_token}`\n }\n return props\n }\n\n /**\n * Gets session storage for OAuth code verification\n * @returns saved code verifier\n */\n get code_verifier() {\n return sessionStorage.getItem(OAuthSession.codeVerifierKey)\n }\n\n /**\n * Sets session storage for OAuth code verification\n */\n set code_verifier(value: string | null) {\n if (value === null) {\n // only clear code_verifier if it's `null`\n sessionStorage.removeItem(OAuthSession.codeVerifierKey)\n } else {\n sessionStorage.setItem(OAuthSession.codeVerifierKey, value)\n }\n }\n\n /**\n * URL to return to after login process completes\n * @returns the URL that started the OAuth login process\n */\n get returnUrl() {\n return sessionStorage.getItem(OAuthSession.returnUrlKey)\n }\n\n /**\n * Sets the return URL for successful OAuth login\n */\n set returnUrl(value: string | null) {\n if (!value) {\n sessionStorage.removeItem(OAuthSession.returnUrlKey)\n } else {\n sessionStorage.setItem(OAuthSession.returnUrlKey, value)\n }\n }\n\n /**\n * Clears all Looker SDK OAuth-related session storage\n */\n clearStorage() {\n sessionStorage.removeItem(OAuthSession.codeVerifierKey)\n sessionStorage.removeItem(OAuthSession.returnUrlKey)\n }\n\n async login(_sudoId?: string | number): Promise<any> {\n if (!this.isAuthenticated()) {\n if (this.reentry) {\n // do nothing\n } else if (!this.returnUrl) {\n // OAuth has not been initiated\n const authUrl = await this.createAuthCodeRequestUrl(\n 'cors_api',\n agentPrefix\n )\n const returnTo = window.location.pathname + window.location.search\n this.returnUrl = returnTo\n // Save the current URL so redirected successful OAuth login can restore it\n window.location.href = authUrl\n } else {\n this.reentry = true\n // If return URL is stored, we must be coming back from an OAuth request\n // so release the stored return url at the start of the redemption\n this.returnUrl = null\n if (!this.code_verifier) {\n return Promise.reject(\n new Error('OAuth failed: expected code_verifier to be stored')\n )\n }\n const params = new URLSearchParams(window.location.search)\n const code = params.get('code')\n if (!code) {\n return Promise.reject(\n new Error(\n `OAuth failed: no OAuth code parameter found in ${\n window.location.pathname + window.location.search\n }`\n )\n )\n }\n await this.redeemAuthCode(code)\n }\n return await this.getToken()\n }\n return this.activeToken\n }\n\n private async requestToken(\n body: IAuthCodeGrantTypeParams | IRefreshTokenGrantTypeParams\n ) {\n const config = this.readConfig()\n const url = new URL(config.base_url)\n // replace the entire path of the base_url because this\n // auth endpoint is independent of API version\n url.pathname = '/api/token'\n const token = await this.ok(\n this.transport.request<IAccessToken, IError>(\n 'POST',\n url.toString(),\n undefined,\n body\n )\n )\n\n return this.activeToken.setToken(token)\n }\n\n /*\n Generate an OAuth2 authCode request URL\n */\n async createAuthCodeRequestUrl(\n scope: string,\n state: string\n ): Promise<string> {\n // TODO: remove this comment when we remove hex backwards compatibility\n // in Looker API. For now it must not be 2^n so that Looker correctly\n // treats it as base64 encoded\n this.code_verifier = this.crypto.secureRandom(33)\n const code_challenge = await this.crypto.sha256Hash(this.code_verifier)\n const config = this.readConfig()\n const params: Record<string, string> = {\n client_id: config.client_id,\n code_challenge: code_challenge,\n code_challenge_method: 'S256',\n redirect_uri: config.redirect_uri,\n response_type: 'code',\n scope: scope,\n state: state,\n }\n const url = new URL(config.looker_url)\n url.pathname = '/auth'\n url.search = new URLSearchParams(params).toString()\n return url.toString()\n }\n\n redeemAuthCodeBody(authCode: string, codeVerifier?: string) {\n const verifier = codeVerifier || this.code_verifier || ''\n const config = this.readConfig()\n return {\n client_id: config.client_id,\n code: authCode,\n code_verifier: verifier,\n grant_type: 'authorization_code',\n redirect_uri: config.redirect_uri,\n } as IAuthCodeGrantTypeParams\n }\n\n /**\n * Convert an authCode received from server into an active auth token\n * The app is responsible for obtaining the authCode via interactive user login\n * via /auth front-end endpoint and URL redirect. When the authCode is received\n * by url redirect to an app route, pass the authCode into this function to\n * get an access_token and refresh_token.\n * @param {string} authCode\n * @param {string} codeVerifier\n * @returns {Promise<AuthToken>}\n */\n async redeemAuthCode(authCode: string, codeVerifier?: string) {\n return this.requestToken(this.redeemAuthCodeBody(authCode, codeVerifier))\n }\n\n async getToken() {\n if (!this.isAuthenticated()) {\n if (this.activeToken.refresh_token) {\n const config = this.readConfig()\n await this.requestToken({\n client_id: config.client_id,\n grant_type: 'refresh_token',\n redirect_uri: config.redirect_uri,\n refresh_token: this.activeToken.refresh_token,\n })\n }\n }\n return this.activeToken\n }\n\n isAuthenticated(): boolean {\n return this.activeToken.isActive()\n }\n\n async logout() {\n if (this.activeToken.access_token) {\n await this.ok(\n this.transport.request<IAccessToken, IError>(\n 'DELETE',\n `/api/logout`,\n undefined,\n undefined,\n (init: IRequestProps) => {\n init.headers.Authorization = `Bearer ${this.activeToken.access_token}`\n return init\n }\n )\n )\n\n // logout destroys the access_token AND the refresh_token\n this.activeToken = new AuthToken()\n this.clearStorage()\n return true\n }\n return false\n }\n}\n"],"file":"oauthSession.js"}
|
|
1
|
+
{"version":3,"file":"oauthSession.js","names":["_authSession","require","_transport","_authToken","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","target","i","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","_toPropertyKey","configurable","writable","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","res","call","TypeError","Number","OAuthSession","AuthSession","constructor","services","settings","transport","AuthToken","crypto","config","readConfig","sdkError","message","concat","authenticate","props","_this","token","getToken","access_token","headers","Authorization","code_verifier","sessionStorage","getItem","codeVerifierKey","removeItem","setItem","returnUrl","returnUrlKey","clearStorage","login","_sudoId","_this2","isAuthenticated","reentry","authUrl","createAuthCodeRequestUrl","agentPrefix","returnTo","window","location","pathname","search","href","Error","params","URLSearchParams","code","get","redeemAuthCode","activeToken","requestToken","body","_this3","url","URL","base_url","ok","request","toString","setToken","scope","state","_this4","verifier","secureRandom","code_challenge","sha256Hash","client_id","code_challenge_method","redirect_uri","response_type","looker_url","redeemAuthCodeBody","authCode","codeVerifier","grant_type","_this5","_this6","refresh_token","isActive","logout","_this7","init","exports"],"sources":["../src/oauthSession.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 { IAccessToken, IError } from './authSession'\nimport { AuthSession } from './authSession'\nimport type { IRequestProps } from './transport'\nimport { agentPrefix, sdkError } from './transport'\nimport { AuthToken } from './authToken'\nimport type { ICryptoHash } from './cryptoHash'\nimport type { IPlatformServices } from './platformServices'\n\ninterface IAuthCodeGrantTypeParams {\n grant_type: 'authorization_code'\n code: string\n code_verifier: string\n client_id: string\n redirect_uri: string\n}\n\ninterface IRefreshTokenGrantTypeParams {\n grant_type: 'refresh_token'\n refresh_token: string\n client_id: string\n redirect_uri: string\n}\n\nexport class OAuthSession extends AuthSession {\n activeToken = new AuthToken()\n crypto: ICryptoHash\n reentry = false\n private static readonly codeVerifierKey = 'looker_oauth_code_verifier'\n public static readonly returnUrlKey = 'looker_oauth_return_url'\n\n constructor(services: IPlatformServices) {\n super(services.settings, services.transport)\n\n this.crypto = services.crypto\n\n const keys: string[] = [\n 'client_id',\n 'redirect_uri',\n 'base_url',\n 'looker_url',\n ]\n const config = { ...this.settings, ...this.settings.readConfig() }\n\n keys.forEach((key) => {\n const value = config[key]\n if (!value) {\n throw sdkError({\n message: `Missing required configuration setting: '${key}'`,\n })\n }\n })\n }\n\n /**\n * merge the dynamically defined configuration values with the initial settings\n */\n readConfig() {\n return { ...this.settings, ...this.settings.readConfig() }\n }\n\n /**\n * Apply current auth token credentials to an HTTP request\n * @param props request properties to update\n * @returns updated request properties with auth information added\n */\n async authenticate(props: IRequestProps): Promise<IRequestProps> {\n const token = await this.getToken()\n if (token.access_token) {\n props.headers.Authorization = `Bearer ${token.access_token}`\n }\n return props\n }\n\n /**\n * Gets session storage for OAuth code verification\n * @returns saved code verifier\n */\n get code_verifier() {\n return sessionStorage.getItem(OAuthSession.codeVerifierKey)\n }\n\n /**\n * Sets session storage for OAuth code verification\n */\n set code_verifier(value: string | null) {\n if (value === null) {\n // only clear code_verifier if it's `null`\n sessionStorage.removeItem(OAuthSession.codeVerifierKey)\n } else {\n sessionStorage.setItem(OAuthSession.codeVerifierKey, value)\n }\n }\n\n /**\n * URL to return to after login process completes\n * @returns the URL that started the OAuth login process\n */\n get returnUrl() {\n return sessionStorage.getItem(OAuthSession.returnUrlKey)\n }\n\n /**\n * Sets the return URL for successful OAuth login\n */\n set returnUrl(value: string | null) {\n if (!value) {\n sessionStorage.removeItem(OAuthSession.returnUrlKey)\n } else {\n sessionStorage.setItem(OAuthSession.returnUrlKey, value)\n }\n }\n\n /**\n * Clears all Looker SDK OAuth-related session storage\n */\n clearStorage() {\n sessionStorage.removeItem(OAuthSession.codeVerifierKey)\n sessionStorage.removeItem(OAuthSession.returnUrlKey)\n }\n\n async login(_sudoId?: string | number): Promise<any> {\n if (!this.isAuthenticated()) {\n if (this.reentry) {\n // do nothing\n } else if (!this.returnUrl) {\n // OAuth has not been initiated\n const authUrl = await this.createAuthCodeRequestUrl(\n 'cors_api',\n agentPrefix\n )\n const returnTo = window.location.pathname + window.location.search\n this.returnUrl = returnTo\n // Save the current URL so redirected successful OAuth login can restore it\n window.location.href = authUrl\n } else {\n this.reentry = true\n // If return URL is stored, we must be coming back from an OAuth request\n // so release the stored return url at the start of the redemption\n this.returnUrl = null\n if (!this.code_verifier) {\n return Promise.reject(\n new Error('OAuth failed: expected code_verifier to be stored')\n )\n }\n const params = new URLSearchParams(window.location.search)\n const code = params.get('code')\n if (!code) {\n return Promise.reject(\n new Error(\n `OAuth failed: no OAuth code parameter found in ${\n window.location.pathname + window.location.search\n }`\n )\n )\n }\n await this.redeemAuthCode(code)\n }\n return await this.getToken()\n }\n return this.activeToken\n }\n\n private async requestToken(\n body: IAuthCodeGrantTypeParams | IRefreshTokenGrantTypeParams\n ) {\n const config = this.readConfig()\n const url = new URL(config.base_url)\n // replace the entire path of the base_url because this\n // auth endpoint is independent of API version\n url.pathname = '/api/token'\n const token = await this.ok(\n this.transport.request<IAccessToken, IError>(\n 'POST',\n url.toString(),\n undefined,\n body\n )\n )\n\n return this.activeToken.setToken(token)\n }\n\n /*\n Generate an OAuth2 authCode request URL\n */\n async createAuthCodeRequestUrl(\n scope: string,\n state: string\n ): Promise<string> {\n // TODO: remove this comment when we remove hex backwards compatibility\n // in Looker API. For now it must not be 2^n so that Looker correctly\n // treats it as base64 encoded\n const verifier = this.crypto.secureRandom(33)\n this.code_verifier = verifier\n const code_challenge = await this.crypto.sha256Hash(verifier)\n const config = this.readConfig()\n const params: Record<string, string> = {\n client_id: config.client_id,\n code_challenge: code_challenge,\n code_challenge_method: 'S256',\n redirect_uri: config.redirect_uri,\n response_type: 'code',\n scope: scope,\n state: state,\n }\n const url = new URL(config.looker_url)\n url.pathname = '/auth'\n url.search = new URLSearchParams(params).toString()\n return url.toString()\n }\n\n redeemAuthCodeBody(authCode: string, codeVerifier?: string) {\n const verifier = codeVerifier || this.code_verifier || ''\n const config = this.readConfig()\n return {\n client_id: config.client_id,\n code: authCode,\n code_verifier: verifier,\n grant_type: 'authorization_code',\n redirect_uri: config.redirect_uri,\n } as IAuthCodeGrantTypeParams\n }\n\n /**\n * Convert an authCode received from server into an active auth token\n * The app is responsible for obtaining the authCode via interactive user login\n * via /auth front-end endpoint and URL redirect. When the authCode is received\n * by url redirect to an app route, pass the authCode into this function to\n * get an access_token and refresh_token.\n * @param {string} authCode\n * @param {string} codeVerifier\n * @returns {Promise<AuthToken>}\n */\n async redeemAuthCode(authCode: string, codeVerifier?: string) {\n return this.requestToken(this.redeemAuthCodeBody(authCode, codeVerifier))\n }\n\n async getToken() {\n if (!this.isAuthenticated()) {\n if (this.activeToken.refresh_token) {\n const config = this.readConfig()\n await this.requestToken({\n client_id: config.client_id,\n grant_type: 'refresh_token',\n redirect_uri: config.redirect_uri,\n refresh_token: this.activeToken.refresh_token,\n })\n }\n }\n return this.activeToken\n }\n\n isAuthenticated(): boolean {\n return this.activeToken.isActive()\n }\n\n async logout() {\n if (this.activeToken.access_token) {\n await this.ok(\n this.transport.request<IAccessToken, IError>(\n 'DELETE',\n `/api/logout`,\n undefined,\n undefined,\n (init: IRequestProps) => {\n init.headers.Authorization = `Bearer ${this.activeToken.access_token}`\n return init\n }\n )\n )\n\n // logout destroys the access_token AND the refresh_token\n this.activeToken = new AuthToken()\n this.clearStorage()\n return true\n }\n return false\n }\n}\n"],"mappings":"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"}
|