oidc-spa 6.9.9 → 6.9.11
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/README.md +17 -9
- package/mock/oidc.js +55 -34
- package/mock/oidc.js.map +1 -1
- package/oidc/AuthResponse.js +9 -3
- package/oidc/AuthResponse.js.map +1 -1
- package/oidc/createOidc.js +1 -1
- package/oidc/handleOidcCallback.js +6 -10
- package/oidc/handleOidcCallback.js.map +1 -1
- package/oidc/loginOrGoToAuthServer.js +16 -10
- package/oidc/loginOrGoToAuthServer.js.map +1 -1
- package/oidc/loginSilent.js +2 -3
- package/oidc/loginSilent.js.map +1 -1
- package/package.json +6 -1
- package/src/mock/oidc.ts +42 -26
- package/src/oidc/AuthResponse.ts +10 -3
- package/src/oidc/handleOidcCallback.ts +6 -11
- package/src/oidc/loginOrGoToAuthServer.ts +16 -11
- package/src/oidc/loginSilent.ts +2 -5
- package/src/tools/urlSearchParams.ts +130 -0
- package/tools/urlSearchParams.d.ts +19 -0
- package/tools/urlSearchParams.js +111 -0
- package/tools/urlSearchParams.js.map +1 -0
package/README.md
CHANGED
|
@@ -27,12 +27,18 @@
|
|
|
27
27
|
<a href="https://docs.oidc-spa.dev">Documentation</a>
|
|
28
28
|
</p>
|
|
29
29
|
|
|
30
|
-
A
|
|
30
|
+
A full-featured OpenID Connect / OAuth2 client for single-page applications (SPAs).
|
|
31
31
|
|
|
32
|
-
With `oidc-spa`, you can integrate
|
|
32
|
+
With `oidc-spa`, you can seamlessly integrate authentication providers like [Keycloak](https://www.keycloak.org/), [Auth0](https://auth0.com/), or [Microsoft Entra ID](https://www.microsoft.com/en-us/security/business/identity-access/microsoft-entra-id) into your application.
|
|
33
33
|
|
|
34
|
-
In **simple terms**, `oidc-spa` is a library that
|
|
35
|
-
|
|
34
|
+
In **simple terms**, `oidc-spa` is a library that makes it easy to **add authentication** to your Vite or Create-React-App project.
|
|
35
|
+
There are many authentication and user management platforms out there: Okta, Auth0, Entra ID...
|
|
36
|
+
There are also plenty of self-hosted options like Keycloak, Ory Hydra, and Dex.
|
|
37
|
+
What all of these have in common is that they implement the OpenID Connect/OAuth2 standard.
|
|
38
|
+
|
|
39
|
+
This library provides a **unified way** to connect with these different providers instead of having to use
|
|
40
|
+
their specific SDKs.
|
|
41
|
+
When a user clicks the **"Login"** button in your app, just call the `login()` method—it's that simple.
|
|
36
42
|
|
|
37
43
|
## Why `oidc-spa`?
|
|
38
44
|
|
|
@@ -43,13 +49,15 @@ Most OIDC providers push their own client libraries:
|
|
|
43
49
|
- **Keycloak** → `keycloak-js` (no longer actively promoted, planned for deprecation)
|
|
44
50
|
- **... and so on.**
|
|
45
51
|
|
|
46
|
-
These libraries are **tied to a specific provider**. But what if you
|
|
52
|
+
These libraries are **tied to a specific provider**. But what if you need to:
|
|
53
|
+
|
|
54
|
+
✅ Switch OIDC providers without modifying your authentication logic?
|
|
55
|
+
✅ Build a self-hostable solution that works with any provider (e.g., you're developing a dashboard app that you sell to enterprises and need to integrate with their existing IAM system)?
|
|
56
|
+
✅ Stop re-learning authentication implementation every time you change providers?
|
|
47
57
|
|
|
48
|
-
|
|
49
|
-
✅ Develop an app that must support multiple environments, where the auth provider is unknown beforehand?
|
|
50
|
-
✅ Support multiple OIDC providers in the same app?
|
|
58
|
+
And besides, not all SDKs are equal in terms of setup simplicity, performance, and API quality.
|
|
51
59
|
|
|
52
|
-
|
|
60
|
+
We wanted a **universal solution**—one that is as good or better than all existing SDKs in every aspect.
|
|
53
61
|
|
|
54
62
|
## Features
|
|
55
63
|
|
package/mock/oidc.js
CHANGED
|
@@ -51,7 +51,9 @@ exports.createMockOidc = createMockOidc;
|
|
|
51
51
|
var createObjectThatThrowsIfAccessed_1 = require("../tools/createObjectThatThrowsIfAccessed");
|
|
52
52
|
var tsafe_1 = require("../vendor/frontend/tsafe");
|
|
53
53
|
var toFullyQualifiedUrl_1 = require("../tools/toFullyQualifiedUrl");
|
|
54
|
-
var
|
|
54
|
+
var urlSearchParams_1 = require("../tools/urlSearchParams");
|
|
55
|
+
var initialLocationHref_1 = require("../oidc/initialLocationHref");
|
|
56
|
+
var URL_SEARCH_PARAM_NAME = "isUserLoggedIn";
|
|
55
57
|
function createMockOidc(params) {
|
|
56
58
|
return __awaiter(this, void 0, void 0, function () {
|
|
57
59
|
var _a, isUserInitiallyLoggedIn, _b, mockedParams, _c, mockedTokens, homeUrl_params, _d, autoLogin, postLoginRedirectUrl, isUserLoggedIn, homeUrl, common, loginOrGoToAuthServer, oidc_1, oidc;
|
|
@@ -62,14 +64,24 @@ function createMockOidc(params) {
|
|
|
62
64
|
case 0:
|
|
63
65
|
_a = params.isUserInitiallyLoggedIn, isUserInitiallyLoggedIn = _a === void 0 ? true : _a, _b = params.mockedParams, mockedParams = _b === void 0 ? {} : _b, _c = params.mockedTokens, mockedTokens = _c === void 0 ? {} : _c, homeUrl_params = params.homeUrl, _d = params.autoLogin, autoLogin = _d === void 0 ? false : _d, postLoginRedirectUrl = params.postLoginRedirectUrl;
|
|
64
66
|
isUserLoggedIn = (function () {
|
|
65
|
-
var
|
|
66
|
-
|
|
67
|
-
|
|
67
|
+
var _a = (0, urlSearchParams_1.getSearchParam)({
|
|
68
|
+
url: initialLocationHref_1.initialLocationHref,
|
|
69
|
+
name: URL_SEARCH_PARAM_NAME
|
|
70
|
+
}), wasPresent = _a.wasPresent, value = _a.value;
|
|
71
|
+
if (!wasPresent) {
|
|
68
72
|
return isUserInitiallyLoggedIn;
|
|
69
73
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
74
|
+
remove_from_url: {
|
|
75
|
+
var _b = (0, urlSearchParams_1.getSearchParam)({
|
|
76
|
+
url: window.location.href,
|
|
77
|
+
name: URL_SEARCH_PARAM_NAME
|
|
78
|
+
}), wasPresent_1 = _b.wasPresent, url_withoutTheParam = _b.url_withoutTheParam;
|
|
79
|
+
if (!wasPresent_1) {
|
|
80
|
+
break remove_from_url;
|
|
81
|
+
}
|
|
82
|
+
window.history.replaceState({}, "", url_withoutTheParam);
|
|
83
|
+
}
|
|
84
|
+
return value === "true";
|
|
73
85
|
})();
|
|
74
86
|
homeUrl = (0, toFullyQualifiedUrl_1.toFullyQualifiedUrl)({
|
|
75
87
|
urlish: homeUrl_params,
|
|
@@ -83,19 +95,24 @@ function createMockOidc(params) {
|
|
|
83
95
|
}
|
|
84
96
|
};
|
|
85
97
|
loginOrGoToAuthServer = function (params) { return __awaiter(_this, void 0, void 0, function () {
|
|
86
|
-
var
|
|
98
|
+
var redirectUrl_params, redirectUrl;
|
|
87
99
|
return __generator(this, function (_a) {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
100
|
+
redirectUrl_params = params.redirectUrl;
|
|
101
|
+
redirectUrl = (0, urlSearchParams_1.addOrUpdateSearchParam)({
|
|
102
|
+
url: (function () {
|
|
103
|
+
if (redirectUrl_params === undefined) {
|
|
104
|
+
return window.location.href;
|
|
105
|
+
}
|
|
106
|
+
return (0, toFullyQualifiedUrl_1.toFullyQualifiedUrl)({
|
|
107
|
+
urlish: redirectUrl_params,
|
|
108
|
+
doAssertNoQueryParams: false
|
|
109
|
+
});
|
|
110
|
+
})(),
|
|
111
|
+
name: URL_SEARCH_PARAM_NAME,
|
|
112
|
+
value: "true",
|
|
113
|
+
encodeMethod: "www-form"
|
|
114
|
+
});
|
|
115
|
+
window.location.href = redirectUrl;
|
|
99
116
|
return [2 /*return*/, new Promise(function () { })];
|
|
100
117
|
});
|
|
101
118
|
}); };
|
|
@@ -138,21 +155,25 @@ function createMockOidc(params) {
|
|
|
138
155
|
})(), getTokens_next: function () { return Promise.resolve(oidc.getTokens()); }, getDecodedIdToken: function () { return oidc.getTokens().decodedIdToken; }, subscribeToTokensChange: function () { return ({
|
|
139
156
|
unsubscribe: function () { }
|
|
140
157
|
}); }, logout: function (params) {
|
|
141
|
-
var
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
158
|
+
var redirectUrl = (0, urlSearchParams_1.addOrUpdateSearchParam)({
|
|
159
|
+
url: (function () {
|
|
160
|
+
switch (params.redirectTo) {
|
|
161
|
+
case "current page":
|
|
162
|
+
return window.location.href;
|
|
163
|
+
case "home":
|
|
164
|
+
return homeUrl;
|
|
165
|
+
case "specific url":
|
|
166
|
+
return (0, toFullyQualifiedUrl_1.toFullyQualifiedUrl)({
|
|
167
|
+
urlish: params.url,
|
|
168
|
+
doAssertNoQueryParams: false
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
})(),
|
|
172
|
+
name: URL_SEARCH_PARAM_NAME,
|
|
173
|
+
value: "false",
|
|
174
|
+
encodeMethod: "www-form"
|
|
175
|
+
});
|
|
176
|
+
window.location.href = redirectUrl;
|
|
156
177
|
return new Promise(function () { });
|
|
157
178
|
}, subscribeToAutoLogoutCountdown: function () { return ({
|
|
158
179
|
unsubscribeFromAutoLogoutCountdown: function () { }
|
package/mock/oidc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oidc.js","sourceRoot":"","sources":["../src/mock/oidc.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"oidc.js","sourceRoot":"","sources":["../src/mock/oidc.ts"],"names":[],"mappings":"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"}
|
package/oidc/AuthResponse.js
CHANGED
|
@@ -29,6 +29,7 @@ var __read = (this && this.__read) || function (o, n) {
|
|
|
29
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
30
|
exports.getIsAuthResponse = getIsAuthResponse;
|
|
31
31
|
exports.authResponseToUrl = authResponseToUrl;
|
|
32
|
+
var urlSearchParams_1 = require("../tools/urlSearchParams");
|
|
32
33
|
function getIsAuthResponse(data) {
|
|
33
34
|
return (data instanceof Object &&
|
|
34
35
|
"state" in data &&
|
|
@@ -37,14 +38,19 @@ function getIsAuthResponse(data) {
|
|
|
37
38
|
}
|
|
38
39
|
function authResponseToUrl(authResponse) {
|
|
39
40
|
var e_1, _a;
|
|
40
|
-
var authResponseUrl =
|
|
41
|
+
var authResponseUrl = "https://dummy.com";
|
|
41
42
|
try {
|
|
42
43
|
for (var _b = __values(Object.entries(authResponse)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
43
44
|
var _d = __read(_c.value, 2), name_1 = _d[0], value = _d[1];
|
|
44
45
|
if (value === undefined) {
|
|
45
46
|
continue;
|
|
46
47
|
}
|
|
47
|
-
authResponseUrl
|
|
48
|
+
authResponseUrl = (0, urlSearchParams_1.addOrUpdateSearchParam)({
|
|
49
|
+
url: authResponseUrl,
|
|
50
|
+
name: name_1,
|
|
51
|
+
value: value,
|
|
52
|
+
encodeMethod: "www-form"
|
|
53
|
+
});
|
|
48
54
|
}
|
|
49
55
|
}
|
|
50
56
|
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
@@ -54,6 +60,6 @@ function authResponseToUrl(authResponse) {
|
|
|
54
60
|
}
|
|
55
61
|
finally { if (e_1) throw e_1.error; }
|
|
56
62
|
}
|
|
57
|
-
return authResponseUrl
|
|
63
|
+
return authResponseUrl;
|
|
58
64
|
}
|
|
59
65
|
//# sourceMappingURL=AuthResponse.js.map
|
package/oidc/AuthResponse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthResponse.js","sourceRoot":"","sources":["../src/oidc/AuthResponse.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"AuthResponse.js","sourceRoot":"","sources":["../src/oidc/AuthResponse.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,8CAOC;AAED,8CAgBC;AAhCD,4DAAkE;AAOlE,SAAgB,iBAAiB,CAAC,IAAS;IACvC,OAAO,CACH,IAAI,YAAY,MAAM;QACtB,OAAO,IAAI,IAAI;QACf,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;QAC9B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAhD,CAAgD,CAAC,CACvF,CAAC;AACN,CAAC;AAED,SAAgB,iBAAiB,CAAC,YAA0B;;IACxD,IAAI,eAAe,GAAG,mBAAmB,CAAC;;QAE1C,KAA4B,IAAA,KAAA,SAAA,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA,gBAAA,4BAAE,CAAC;YAAhD,IAAA,KAAA,mBAAa,EAAZ,MAAI,QAAA,EAAE,KAAK,QAAA;YACnB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACtB,SAAS;YACb,CAAC;YACD,eAAe,GAAG,IAAA,wCAAsB,EAAC;gBACrC,GAAG,EAAE,eAAe;gBACpB,IAAI,QAAA;gBACJ,KAAK,OAAA;gBACL,YAAY,EAAE,UAAU;aAC3B,CAAC,CAAC;QACP,CAAC;;;;;;;;;IAED,OAAO,eAAe,CAAC;AAC3B,CAAC"}
|
package/oidc/createOidc.js
CHANGED
|
@@ -125,7 +125,7 @@ var initialLocationHref_1 = require("./initialLocationHref");
|
|
|
125
125
|
var isNewBrowserSession_1 = require("./isNewBrowserSession");
|
|
126
126
|
(0, handleOidcCallback_1.handleOidcCallback)();
|
|
127
127
|
// NOTE: Replaced at build time
|
|
128
|
-
var VERSION = "6.9.
|
|
128
|
+
var VERSION = "6.9.11";
|
|
129
129
|
var GLOBAL_CONTEXT_KEY = "__oidc-spa.createOidc.globalContext";
|
|
130
130
|
(_a = window[GLOBAL_CONTEXT_KEY]) !== null && _a !== void 0 ? _a : (window[GLOBAL_CONTEXT_KEY] = {
|
|
131
131
|
prOidcByConfigId: new Map(),
|
|
@@ -66,18 +66,18 @@ function handleOidcCallback() {
|
|
|
66
66
|
}
|
|
67
67
|
function handleOidcCallback_nonMemoized() {
|
|
68
68
|
var e_1, _a;
|
|
69
|
-
var
|
|
69
|
+
var location_urlObj = new URL(initialLocationHref_1.initialLocationHref);
|
|
70
70
|
var stateQueryParamValue = (function () {
|
|
71
|
-
var stateQueryParamValue =
|
|
71
|
+
var stateQueryParamValue = location_urlObj.searchParams.get("state");
|
|
72
72
|
if (stateQueryParamValue === null) {
|
|
73
73
|
return undefined;
|
|
74
74
|
}
|
|
75
75
|
if (!(0, StateData_1.getIsStatQueryParamValue)({ maybeStateQueryParamValue: stateQueryParamValue })) {
|
|
76
76
|
return undefined;
|
|
77
77
|
}
|
|
78
|
-
if (
|
|
79
|
-
|
|
80
|
-
|
|
78
|
+
if (location_urlObj.searchParams.get("client_id") !== null &&
|
|
79
|
+
location_urlObj.searchParams.get("response_type") !== null &&
|
|
80
|
+
location_urlObj.searchParams.get("redirect_uri") !== null) {
|
|
81
81
|
// NOTE: We are probably in a Keycloakify theme and oidc-spa was loaded by mistake.
|
|
82
82
|
return undefined;
|
|
83
83
|
}
|
|
@@ -93,10 +93,6 @@ function handleOidcCallback_nonMemoized() {
|
|
|
93
93
|
return { isHandled: false };
|
|
94
94
|
}
|
|
95
95
|
var isHandled = true;
|
|
96
|
-
console.log = function () { };
|
|
97
|
-
console.warn = function () { };
|
|
98
|
-
console.error = function () { };
|
|
99
|
-
console.debug = function () { };
|
|
100
96
|
var stateData = (0, StateData_1.getStateData)({ stateQueryParamValue: stateQueryParamValue });
|
|
101
97
|
if (stateData === undefined ||
|
|
102
98
|
(stateData.context === "redirect" && stateData.hasBeenProcessedByCallback)) {
|
|
@@ -127,7 +123,7 @@ function handleOidcCallback_nonMemoized() {
|
|
|
127
123
|
}
|
|
128
124
|
var authResponse = { state: "" };
|
|
129
125
|
try {
|
|
130
|
-
for (var _b = __values(
|
|
126
|
+
for (var _b = __values(location_urlObj.searchParams), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
131
127
|
var _d = __read(_c.value, 2), key = _d[0], value = _d[1];
|
|
132
128
|
authResponse[key] = value;
|
|
133
129
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleOidcCallback.js","sourceRoot":"","sources":["../src/oidc/handleOidcCallback.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,gDAMC;
|
|
1
|
+
{"version":3,"file":"handleOidcCallback.js","sourceRoot":"","sources":["../src/oidc/handleOidcCallback.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,6 +54,7 @@ var toFullyQualifiedUrl_1 = require("../tools/toFullyQualifiedUrl");
|
|
|
54
54
|
var tsafe_1 = require("../vendor/frontend/tsafe");
|
|
55
55
|
var StatefulEvt_1 = require("../tools/StatefulEvt");
|
|
56
56
|
var Deferred_1 = require("../tools/Deferred");
|
|
57
|
+
var urlSearchParams_1 = require("../tools/urlSearchParams");
|
|
57
58
|
var GLOBAL_CONTEXT_KEY = "__oidc-spa.loginOrGoToAuthSever.globalContext";
|
|
58
59
|
(_a = window[GLOBAL_CONTEXT_KEY]) !== null && _a !== void 0 ? _a : (window[GLOBAL_CONTEXT_KEY] = {
|
|
59
60
|
evtHasLoginBeenCalled: (0, StatefulEvt_1.createStatefulEvt)(function () { return false; })
|
|
@@ -161,7 +162,7 @@ function createLoginOrGoToAuthServer(params) {
|
|
|
161
162
|
].forEach(function (_a, i) {
|
|
162
163
|
var e_1, _b, e_2, _c;
|
|
163
164
|
var _d = __read(_a, 2), extraQueryParamsMaybeGetter = _d[0], transformUrlBeforeRedirect = _d[1];
|
|
164
|
-
var
|
|
165
|
+
var url_before = i !== 2 ? undefined : url;
|
|
165
166
|
add_extra_query_params: {
|
|
166
167
|
if (extraQueryParamsMaybeGetter === undefined) {
|
|
167
168
|
break add_extra_query_params;
|
|
@@ -169,14 +170,18 @@ function createLoginOrGoToAuthServer(params) {
|
|
|
169
170
|
var extraQueryParams = typeof extraQueryParamsMaybeGetter === "function"
|
|
170
171
|
? extraQueryParamsMaybeGetter({ isSilent: isSilent, url: url })
|
|
171
172
|
: extraQueryParamsMaybeGetter;
|
|
172
|
-
var url_obj = new URL(url);
|
|
173
173
|
try {
|
|
174
174
|
for (var _e = __values(Object.entries(extraQueryParams)), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
175
175
|
var _g = __read(_f.value, 2), name_1 = _g[0], value = _g[1];
|
|
176
176
|
if (value === undefined) {
|
|
177
177
|
continue;
|
|
178
178
|
}
|
|
179
|
-
|
|
179
|
+
url = (0, urlSearchParams_1.addOrUpdateSearchParam)({
|
|
180
|
+
url: url,
|
|
181
|
+
name: name_1,
|
|
182
|
+
value: value,
|
|
183
|
+
encodeMethod: "www-form"
|
|
184
|
+
});
|
|
180
185
|
}
|
|
181
186
|
}
|
|
182
187
|
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
@@ -186,7 +191,6 @@ function createLoginOrGoToAuthServer(params) {
|
|
|
186
191
|
}
|
|
187
192
|
finally { if (e_1) throw e_1.error; }
|
|
188
193
|
}
|
|
189
|
-
url = url_obj.href;
|
|
190
194
|
}
|
|
191
195
|
apply_transform_url: {
|
|
192
196
|
if (transformUrlBeforeRedirect === undefined) {
|
|
@@ -195,17 +199,19 @@ function createLoginOrGoToAuthServer(params) {
|
|
|
195
199
|
url = transformUrlBeforeRedirect(url);
|
|
196
200
|
}
|
|
197
201
|
update_state: {
|
|
198
|
-
if (
|
|
202
|
+
if (url_before === undefined) {
|
|
199
203
|
break update_state;
|
|
200
204
|
}
|
|
205
|
+
var paramValueByName_current = (0, urlSearchParams_1.getAllSearchParams)(url);
|
|
206
|
+
var paramValueByName_before = (0, urlSearchParams_1.getAllSearchParams)(url_before);
|
|
201
207
|
try {
|
|
202
|
-
for (var _h = __values(
|
|
203
|
-
var _k = __read(_j.value, 2), name_2 = _k[0],
|
|
204
|
-
var value_before =
|
|
205
|
-
if (value_before ===
|
|
208
|
+
for (var _h = __values(Object.entries(paramValueByName_current)), _j = _h.next(); !_j.done; _j = _h.next()) {
|
|
209
|
+
var _k = __read(_j.value, 2), name_2 = _k[0], value_current = _k[1];
|
|
210
|
+
var value_before = paramValueByName_before[name_2];
|
|
211
|
+
if (value_before === value_current) {
|
|
206
212
|
continue;
|
|
207
213
|
}
|
|
208
|
-
stateData.extraQueryParams[name_2] =
|
|
214
|
+
stateData.extraQueryParams[name_2] = value_current;
|
|
209
215
|
}
|
|
210
216
|
}
|
|
211
217
|
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loginOrGoToAuthServer.js","sourceRoot":"","sources":["../src/oidc/loginOrGoToAuthServer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"loginOrGoToAuthServer.js","sourceRoot":"","sources":["../src/oidc/loginOrGoToAuthServer.ts"],"names":[],"mappings":"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"}
|
package/oidc/loginSilent.js
CHANGED
|
@@ -70,6 +70,7 @@ var StateData_1 = require("./StateData");
|
|
|
70
70
|
var getDownlinkAndRtt_1 = require("../tools/getDownlinkAndRtt");
|
|
71
71
|
var isDev_1 = require("../tools/isDev");
|
|
72
72
|
var AuthResponse_1 = require("./AuthResponse");
|
|
73
|
+
var urlSearchParams_1 = require("../tools/urlSearchParams");
|
|
73
74
|
function loginSilent(params) {
|
|
74
75
|
return __awaiter(this, void 0, void 0, function () {
|
|
75
76
|
var oidcClientTsUserManager, stateQueryParamValue_instance, configId, transformUrlBeforeRedirect_next, getExtraQueryParams, getExtraTokenParams, dResult, timeoutDelayMs, timeout, listener, transformUrl_oidcClientTs;
|
|
@@ -127,14 +128,13 @@ function loginSilent(params) {
|
|
|
127
128
|
break add_extra_query_params;
|
|
128
129
|
}
|
|
129
130
|
var extraQueryParams = getExtraQueryParams({ isSilent: true, url: url });
|
|
130
|
-
var url_obj = new URL(url);
|
|
131
131
|
try {
|
|
132
132
|
for (var _b = __values(Object.entries(extraQueryParams)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
133
133
|
var _d = __read(_c.value, 2), name_1 = _d[0], value = _d[1];
|
|
134
134
|
if (value === undefined) {
|
|
135
135
|
continue;
|
|
136
136
|
}
|
|
137
|
-
|
|
137
|
+
url = (0, urlSearchParams_1.addOrUpdateSearchParam)({ url: url, name: name_1, value: value, encodeMethod: "www-form" });
|
|
138
138
|
}
|
|
139
139
|
}
|
|
140
140
|
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
@@ -144,7 +144,6 @@ function loginSilent(params) {
|
|
|
144
144
|
}
|
|
145
145
|
finally { if (e_1) throw e_1.error; }
|
|
146
146
|
}
|
|
147
|
-
url = url_obj.href;
|
|
148
147
|
}
|
|
149
148
|
apply_transform_url: {
|
|
150
149
|
if (transformUrlBeforeRedirect_next === undefined) {
|
package/oidc/loginSilent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loginSilent.js","sourceRoot":"","sources":["../src/oidc/loginSilent.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"loginSilent.js","sourceRoot":"","sources":["../src/oidc/loginSilent.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oidc-spa",
|
|
3
|
-
"version": "6.9.
|
|
3
|
+
"version": "6.9.11",
|
|
4
4
|
"description": "Openidconnect client for Single Page Applications",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -54,6 +54,7 @@
|
|
|
54
54
|
"./tools/subscribeToUserInteraction": "./tools/subscribeToUserInteraction.js",
|
|
55
55
|
"./tools/toFullyQualifiedUrl": "./tools/toFullyQualifiedUrl.js",
|
|
56
56
|
"./tools/toHumanReadableDuration": "./tools/toHumanReadableDuration.js",
|
|
57
|
+
"./tools/urlSearchParams": "./tools/urlSearchParams.js",
|
|
57
58
|
"./tools/ValueOrAsyncGetter": "./tools/ValueOrAsyncGetter.js",
|
|
58
59
|
"./tools/workerTimers": "./tools/workerTimers.js",
|
|
59
60
|
"./vendor/backend/evt": "./vendor/backend/evt.js",
|
|
@@ -126,6 +127,7 @@
|
|
|
126
127
|
"./src/tools/subscribeToUserInteraction.ts",
|
|
127
128
|
"./src/tools/toFullyQualifiedUrl.ts",
|
|
128
129
|
"./src/tools/toHumanReadableDuration.ts",
|
|
130
|
+
"./src/tools/urlSearchParams.ts",
|
|
129
131
|
"./src/tools/workerTimers.ts",
|
|
130
132
|
"./src/vendor/backend/evt.ts",
|
|
131
133
|
"./src/vendor/backend/jsonwebtoken.ts",
|
|
@@ -271,6 +273,9 @@
|
|
|
271
273
|
"./tools/toHumanReadableDuration.d.ts",
|
|
272
274
|
"./tools/toHumanReadableDuration.js",
|
|
273
275
|
"./tools/toHumanReadableDuration.js.map",
|
|
276
|
+
"./tools/urlSearchParams.d.ts",
|
|
277
|
+
"./tools/urlSearchParams.js",
|
|
278
|
+
"./tools/urlSearchParams.js.map",
|
|
274
279
|
"./tools/workerTimers.d.ts",
|
|
275
280
|
"./tools/workerTimers.js",
|
|
276
281
|
"./tools/workerTimers.js.map",
|
package/src/mock/oidc.ts
CHANGED
|
@@ -2,6 +2,8 @@ import type { Oidc } from "../oidc";
|
|
|
2
2
|
import { createObjectThatThrowsIfAccessed } from "../tools/createObjectThatThrowsIfAccessed";
|
|
3
3
|
import { id } from "../vendor/frontend/tsafe";
|
|
4
4
|
import { toFullyQualifiedUrl } from "../tools/toFullyQualifiedUrl";
|
|
5
|
+
import { getSearchParam, addOrUpdateSearchParam } from "../tools/urlSearchParams";
|
|
6
|
+
import { initialLocationHref } from "../oidc/initialLocationHref";
|
|
5
7
|
|
|
6
8
|
export type ParamsOfCreateMockOidc<
|
|
7
9
|
DecodedIdToken extends Record<string, unknown> = Record<string, unknown>,
|
|
@@ -24,7 +26,7 @@ export type ParamsOfCreateMockOidc<
|
|
|
24
26
|
isUserInitiallyLoggedIn: boolean;
|
|
25
27
|
});
|
|
26
28
|
|
|
27
|
-
const
|
|
29
|
+
const URL_SEARCH_PARAM_NAME = "isUserLoggedIn";
|
|
28
30
|
|
|
29
31
|
export async function createMockOidc<
|
|
30
32
|
DecodedIdToken extends Record<string, unknown> = Record<string, unknown>,
|
|
@@ -42,19 +44,29 @@ export async function createMockOidc<
|
|
|
42
44
|
} = params;
|
|
43
45
|
|
|
44
46
|
const isUserLoggedIn = (() => {
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
47
|
+
const { wasPresent, value } = getSearchParam({
|
|
48
|
+
url: initialLocationHref,
|
|
49
|
+
name: URL_SEARCH_PARAM_NAME
|
|
50
|
+
});
|
|
48
51
|
|
|
49
|
-
if (
|
|
52
|
+
if (!wasPresent) {
|
|
50
53
|
return isUserInitiallyLoggedIn;
|
|
51
54
|
}
|
|
52
55
|
|
|
53
|
-
|
|
56
|
+
remove_from_url: {
|
|
57
|
+
const { wasPresent, url_withoutTheParam } = getSearchParam({
|
|
58
|
+
url: window.location.href,
|
|
59
|
+
name: URL_SEARCH_PARAM_NAME
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
if (!wasPresent) {
|
|
63
|
+
break remove_from_url;
|
|
64
|
+
}
|
|
54
65
|
|
|
55
|
-
|
|
66
|
+
window.history.replaceState({}, "", url_withoutTheParam);
|
|
67
|
+
}
|
|
56
68
|
|
|
57
|
-
return
|
|
69
|
+
return value === "true";
|
|
58
70
|
})();
|
|
59
71
|
|
|
60
72
|
const homeUrl = toFullyQualifiedUrl({
|
|
@@ -73,22 +85,25 @@ export async function createMockOidc<
|
|
|
73
85
|
const loginOrGoToAuthServer = async (params: {
|
|
74
86
|
redirectUrl: string | undefined;
|
|
75
87
|
}): Promise<never> => {
|
|
76
|
-
const { redirectUrl } = params;
|
|
88
|
+
const { redirectUrl: redirectUrl_params } = params;
|
|
77
89
|
|
|
78
|
-
const
|
|
79
|
-
(() => {
|
|
80
|
-
if (
|
|
90
|
+
const redirectUrl = addOrUpdateSearchParam({
|
|
91
|
+
url: (() => {
|
|
92
|
+
if (redirectUrl_params === undefined) {
|
|
81
93
|
return window.location.href;
|
|
82
94
|
}
|
|
83
|
-
return redirectUrl.startsWith("/")
|
|
84
|
-
? `${window.location.origin}${redirectUrl}`
|
|
85
|
-
: redirectUrl;
|
|
86
|
-
})()
|
|
87
|
-
);
|
|
88
95
|
|
|
89
|
-
|
|
96
|
+
return toFullyQualifiedUrl({
|
|
97
|
+
urlish: redirectUrl_params,
|
|
98
|
+
doAssertNoQueryParams: false
|
|
99
|
+
});
|
|
100
|
+
})(),
|
|
101
|
+
name: URL_SEARCH_PARAM_NAME,
|
|
102
|
+
value: "true",
|
|
103
|
+
encodeMethod: "www-form"
|
|
104
|
+
});
|
|
90
105
|
|
|
91
|
-
window.location.href =
|
|
106
|
+
window.location.href = redirectUrl;
|
|
92
107
|
|
|
93
108
|
return new Promise<never>(() => {});
|
|
94
109
|
};
|
|
@@ -151,8 +166,8 @@ export async function createMockOidc<
|
|
|
151
166
|
unsubscribe: () => {}
|
|
152
167
|
}),
|
|
153
168
|
logout: params => {
|
|
154
|
-
const
|
|
155
|
-
(() => {
|
|
169
|
+
const redirectUrl = addOrUpdateSearchParam({
|
|
170
|
+
url: (() => {
|
|
156
171
|
switch (params.redirectTo) {
|
|
157
172
|
case "current page":
|
|
158
173
|
return window.location.href;
|
|
@@ -164,12 +179,13 @@ export async function createMockOidc<
|
|
|
164
179
|
doAssertNoQueryParams: false
|
|
165
180
|
});
|
|
166
181
|
}
|
|
167
|
-
})()
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
182
|
+
})(),
|
|
183
|
+
name: URL_SEARCH_PARAM_NAME,
|
|
184
|
+
value: "false",
|
|
185
|
+
encodeMethod: "www-form"
|
|
186
|
+
});
|
|
171
187
|
|
|
172
|
-
window.location.href =
|
|
188
|
+
window.location.href = redirectUrl;
|
|
173
189
|
|
|
174
190
|
return new Promise<never>(() => {});
|
|
175
191
|
},
|
package/src/oidc/AuthResponse.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { addOrUpdateSearchParam } from "../tools/urlSearchParams";
|
|
2
|
+
|
|
1
3
|
export type AuthResponse = {
|
|
2
4
|
state: string;
|
|
3
5
|
[key: string]: string | undefined;
|
|
@@ -13,14 +15,19 @@ export function getIsAuthResponse(data: any): data is AuthResponse {
|
|
|
13
15
|
}
|
|
14
16
|
|
|
15
17
|
export function authResponseToUrl(authResponse: AuthResponse): string {
|
|
16
|
-
|
|
18
|
+
let authResponseUrl = "https://dummy.com";
|
|
17
19
|
|
|
18
20
|
for (const [name, value] of Object.entries(authResponse)) {
|
|
19
21
|
if (value === undefined) {
|
|
20
22
|
continue;
|
|
21
23
|
}
|
|
22
|
-
authResponseUrl
|
|
24
|
+
authResponseUrl = addOrUpdateSearchParam({
|
|
25
|
+
url: authResponseUrl,
|
|
26
|
+
name,
|
|
27
|
+
value,
|
|
28
|
+
encodeMethod: "www-form"
|
|
29
|
+
});
|
|
23
30
|
}
|
|
24
31
|
|
|
25
|
-
return authResponseUrl
|
|
32
|
+
return authResponseUrl;
|
|
26
33
|
}
|
|
@@ -33,10 +33,10 @@ export function handleOidcCallback(): { isHandled: boolean } {
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
function handleOidcCallback_nonMemoized(): { isHandled: boolean } {
|
|
36
|
-
const
|
|
36
|
+
const location_urlObj = new URL(initialLocationHref);
|
|
37
37
|
|
|
38
38
|
const stateQueryParamValue = (() => {
|
|
39
|
-
const stateQueryParamValue =
|
|
39
|
+
const stateQueryParamValue = location_urlObj.searchParams.get("state");
|
|
40
40
|
|
|
41
41
|
if (stateQueryParamValue === null) {
|
|
42
42
|
return undefined;
|
|
@@ -47,9 +47,9 @@ function handleOidcCallback_nonMemoized(): { isHandled: boolean } {
|
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
if (
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
50
|
+
location_urlObj.searchParams.get("client_id") !== null &&
|
|
51
|
+
location_urlObj.searchParams.get("response_type") !== null &&
|
|
52
|
+
location_urlObj.searchParams.get("redirect_uri") !== null
|
|
53
53
|
) {
|
|
54
54
|
// NOTE: We are probably in a Keycloakify theme and oidc-spa was loaded by mistake.
|
|
55
55
|
return undefined;
|
|
@@ -75,11 +75,6 @@ function handleOidcCallback_nonMemoized(): { isHandled: boolean } {
|
|
|
75
75
|
|
|
76
76
|
const isHandled = true;
|
|
77
77
|
|
|
78
|
-
console.log = () => {};
|
|
79
|
-
console.warn = () => {};
|
|
80
|
-
console.error = () => {};
|
|
81
|
-
console.debug = () => {};
|
|
82
|
-
|
|
83
78
|
const stateData = getStateData({ stateQueryParamValue });
|
|
84
79
|
|
|
85
80
|
if (
|
|
@@ -121,7 +116,7 @@ function handleOidcCallback_nonMemoized(): { isHandled: boolean } {
|
|
|
121
116
|
|
|
122
117
|
const authResponse: AuthResponse = { state: "" };
|
|
123
118
|
|
|
124
|
-
for (const [key, value] of
|
|
119
|
+
for (const [key, value] of location_urlObj.searchParams) {
|
|
125
120
|
authResponse[key] = value;
|
|
126
121
|
}
|
|
127
122
|
|
|
@@ -5,6 +5,7 @@ import { StateData } from "./StateData";
|
|
|
5
5
|
import type { NonPostableEvt } from "../tools/Evt";
|
|
6
6
|
import { type StatefulEvt, createStatefulEvt } from "../tools/StatefulEvt";
|
|
7
7
|
import { Deferred } from "../tools/Deferred";
|
|
8
|
+
import { addOrUpdateSearchParam, getAllSearchParams } from "../tools/urlSearchParams";
|
|
8
9
|
|
|
9
10
|
const GLOBAL_CONTEXT_KEY = "__oidc-spa.loginOrGoToAuthSever.globalContext";
|
|
10
11
|
|
|
@@ -205,7 +206,7 @@ export function createLoginOrGoToAuthServer(params: {
|
|
|
205
206
|
[extraQueryParams_local, transformUrl]
|
|
206
207
|
] as const
|
|
207
208
|
).forEach(([extraQueryParamsMaybeGetter, transformUrlBeforeRedirect], i) => {
|
|
208
|
-
const
|
|
209
|
+
const url_before = i !== 2 ? undefined : url;
|
|
209
210
|
|
|
210
211
|
add_extra_query_params: {
|
|
211
212
|
if (extraQueryParamsMaybeGetter === undefined) {
|
|
@@ -217,16 +218,17 @@ export function createLoginOrGoToAuthServer(params: {
|
|
|
217
218
|
? extraQueryParamsMaybeGetter({ isSilent, url })
|
|
218
219
|
: extraQueryParamsMaybeGetter;
|
|
219
220
|
|
|
220
|
-
const url_obj = new URL(url);
|
|
221
|
-
|
|
222
221
|
for (const [name, value] of Object.entries(extraQueryParams)) {
|
|
223
222
|
if (value === undefined) {
|
|
224
223
|
continue;
|
|
225
224
|
}
|
|
226
|
-
|
|
225
|
+
url = addOrUpdateSearchParam({
|
|
226
|
+
url,
|
|
227
|
+
name,
|
|
228
|
+
value,
|
|
229
|
+
encodeMethod: "www-form"
|
|
230
|
+
});
|
|
227
231
|
}
|
|
228
|
-
|
|
229
|
-
url = url_obj.href;
|
|
230
232
|
}
|
|
231
233
|
|
|
232
234
|
apply_transform_url: {
|
|
@@ -237,18 +239,21 @@ export function createLoginOrGoToAuthServer(params: {
|
|
|
237
239
|
}
|
|
238
240
|
|
|
239
241
|
update_state: {
|
|
240
|
-
if (
|
|
242
|
+
if (url_before === undefined) {
|
|
241
243
|
break update_state;
|
|
242
244
|
}
|
|
243
245
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
+
const paramValueByName_current = getAllSearchParams(url);
|
|
247
|
+
const paramValueByName_before = getAllSearchParams(url_before);
|
|
248
|
+
|
|
249
|
+
for (const [name, value_current] of Object.entries(paramValueByName_current)) {
|
|
250
|
+
const value_before: string | undefined = paramValueByName_before[name];
|
|
246
251
|
|
|
247
|
-
if (value_before ===
|
|
252
|
+
if (value_before === value_current) {
|
|
248
253
|
continue;
|
|
249
254
|
}
|
|
250
255
|
|
|
251
|
-
stateData.extraQueryParams[name] =
|
|
256
|
+
stateData.extraQueryParams[name] = value_current;
|
|
252
257
|
}
|
|
253
258
|
}
|
|
254
259
|
});
|
package/src/oidc/loginSilent.ts
CHANGED
|
@@ -6,6 +6,7 @@ import { getDownlinkAndRtt } from "../tools/getDownlinkAndRtt";
|
|
|
6
6
|
import { getIsDev } from "../tools/isDev";
|
|
7
7
|
import type { User as OidcClientTsUser } from "../vendor/frontend/oidc-client-ts-and-jwt-decode";
|
|
8
8
|
import { type AuthResponse, getIsAuthResponse } from "./AuthResponse";
|
|
9
|
+
import { addOrUpdateSearchParam } from "../tools/urlSearchParams";
|
|
9
10
|
|
|
10
11
|
type ResultOfLoginSilent =
|
|
11
12
|
| {
|
|
@@ -111,16 +112,12 @@ export async function loginSilent(params: {
|
|
|
111
112
|
|
|
112
113
|
const extraQueryParams = getExtraQueryParams({ isSilent: true, url });
|
|
113
114
|
|
|
114
|
-
const url_obj = new URL(url);
|
|
115
|
-
|
|
116
115
|
for (const [name, value] of Object.entries(extraQueryParams)) {
|
|
117
116
|
if (value === undefined) {
|
|
118
117
|
continue;
|
|
119
118
|
}
|
|
120
|
-
|
|
119
|
+
url = addOrUpdateSearchParam({ url, name, value, encodeMethod: "www-form" });
|
|
121
120
|
}
|
|
122
|
-
|
|
123
|
-
url = url_obj.href;
|
|
124
121
|
}
|
|
125
122
|
|
|
126
123
|
apply_transform_url: {
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
function getAllSearchParams_encoded(url: string): Record<string, string> {
|
|
2
|
+
let search: string | undefined;
|
|
3
|
+
|
|
4
|
+
{
|
|
5
|
+
const [url_withoutHash] = url.split("#");
|
|
6
|
+
|
|
7
|
+
search = url_withoutHash.split("?")[1];
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
if (search === undefined) {
|
|
11
|
+
return {};
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
return Object.fromEntries(
|
|
15
|
+
search.split("&").map(part => {
|
|
16
|
+
const [name, value_encoded] = part.split("=");
|
|
17
|
+
|
|
18
|
+
return [name, value_encoded];
|
|
19
|
+
})
|
|
20
|
+
);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function addOrUpdateOrRemoveSearchParam_encoded(params: {
|
|
24
|
+
url: string;
|
|
25
|
+
name: string;
|
|
26
|
+
value_encoded: string | undefined;
|
|
27
|
+
}): string {
|
|
28
|
+
const { url, name, value_encoded } = params;
|
|
29
|
+
|
|
30
|
+
const value_encodedByName = getAllSearchParams_encoded(url);
|
|
31
|
+
|
|
32
|
+
if (value_encoded === undefined) {
|
|
33
|
+
delete value_encodedByName[name];
|
|
34
|
+
} else {
|
|
35
|
+
value_encodedByName[name] = value_encoded;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
let search: string;
|
|
39
|
+
|
|
40
|
+
update_search: {
|
|
41
|
+
if (Object.keys(value_encodedByName).length === 0) {
|
|
42
|
+
search = "";
|
|
43
|
+
break update_search;
|
|
44
|
+
} else {
|
|
45
|
+
search =
|
|
46
|
+
"?" +
|
|
47
|
+
Object.entries(value_encodedByName)
|
|
48
|
+
.map(([name, value_encoded]) => `${name}=${value_encoded}`)
|
|
49
|
+
.join("&");
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const [url_withoutHash, hash] = url.split("#");
|
|
54
|
+
|
|
55
|
+
const [url_withoutHash_withoutSearch] = url_withoutHash.split("?");
|
|
56
|
+
|
|
57
|
+
return `${url_withoutHash_withoutSearch}${search}${hash ? "#" + hash : ""}`;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export function addOrUpdateSearchParam(params: {
|
|
61
|
+
url: string;
|
|
62
|
+
name: string;
|
|
63
|
+
value: string;
|
|
64
|
+
encodeMethod: "encodeURIComponent" | "www-form";
|
|
65
|
+
}): string {
|
|
66
|
+
const { url, name, value, encodeMethod } = params;
|
|
67
|
+
|
|
68
|
+
let value_encoded = encodeURIComponent(value);
|
|
69
|
+
|
|
70
|
+
if (encodeMethod === "www-form") {
|
|
71
|
+
value_encoded = value_encoded.replace(/%20/g, "+");
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return addOrUpdateOrRemoveSearchParam_encoded({
|
|
75
|
+
url,
|
|
76
|
+
name,
|
|
77
|
+
value_encoded
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
function decodeSearchParamValue(value_encoded: string): string {
|
|
82
|
+
return decodeURIComponent(value_encoded.replace(/\+/g, "%20"));
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export function getSearchParam(params: { url: string; name: string }):
|
|
86
|
+
| {
|
|
87
|
+
wasPresent: true;
|
|
88
|
+
value: string;
|
|
89
|
+
url_withoutTheParam: string;
|
|
90
|
+
}
|
|
91
|
+
| {
|
|
92
|
+
wasPresent: false;
|
|
93
|
+
value?: never;
|
|
94
|
+
url_withoutTheParam?: never;
|
|
95
|
+
} {
|
|
96
|
+
const { url, name } = params;
|
|
97
|
+
|
|
98
|
+
const encodedValueByName = getAllSearchParams_encoded(url);
|
|
99
|
+
|
|
100
|
+
const value_encoded = encodedValueByName[name];
|
|
101
|
+
|
|
102
|
+
if (value_encoded === undefined) {
|
|
103
|
+
return {
|
|
104
|
+
wasPresent: false
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
const url_withoutTheParam = addOrUpdateOrRemoveSearchParam_encoded({
|
|
109
|
+
url,
|
|
110
|
+
name,
|
|
111
|
+
value_encoded: undefined
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
return {
|
|
115
|
+
wasPresent: true,
|
|
116
|
+
value: decodeSearchParamValue(value_encoded),
|
|
117
|
+
url_withoutTheParam
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
export function getAllSearchParams(url: string): Record<string, string> {
|
|
122
|
+
const encodedValueByName = getAllSearchParams_encoded(url);
|
|
123
|
+
|
|
124
|
+
return Object.fromEntries(
|
|
125
|
+
Object.entries(encodedValueByName).map(([name, value_encoded]) => [
|
|
126
|
+
name,
|
|
127
|
+
decodeSearchParamValue(value_encoded)
|
|
128
|
+
])
|
|
129
|
+
);
|
|
130
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare function addOrUpdateSearchParam(params: {
|
|
2
|
+
url: string;
|
|
3
|
+
name: string;
|
|
4
|
+
value: string;
|
|
5
|
+
encodeMethod: "encodeURIComponent" | "www-form";
|
|
6
|
+
}): string;
|
|
7
|
+
export declare function getSearchParam(params: {
|
|
8
|
+
url: string;
|
|
9
|
+
name: string;
|
|
10
|
+
}): {
|
|
11
|
+
wasPresent: true;
|
|
12
|
+
value: string;
|
|
13
|
+
url_withoutTheParam: string;
|
|
14
|
+
} | {
|
|
15
|
+
wasPresent: false;
|
|
16
|
+
value?: never;
|
|
17
|
+
url_withoutTheParam?: never;
|
|
18
|
+
};
|
|
19
|
+
export declare function getAllSearchParams(url: string): Record<string, string>;
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
+
if (!m) return o;
|
|
5
|
+
var i = m.call(o), r, ar = [], e;
|
|
6
|
+
try {
|
|
7
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
+
}
|
|
9
|
+
catch (error) { e = { error: error }; }
|
|
10
|
+
finally {
|
|
11
|
+
try {
|
|
12
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
+
}
|
|
14
|
+
finally { if (e) throw e.error; }
|
|
15
|
+
}
|
|
16
|
+
return ar;
|
|
17
|
+
};
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.addOrUpdateSearchParam = addOrUpdateSearchParam;
|
|
20
|
+
exports.getSearchParam = getSearchParam;
|
|
21
|
+
exports.getAllSearchParams = getAllSearchParams;
|
|
22
|
+
function getAllSearchParams_encoded(url) {
|
|
23
|
+
var search;
|
|
24
|
+
{
|
|
25
|
+
var _a = __read(url.split("#"), 1), url_withoutHash = _a[0];
|
|
26
|
+
search = url_withoutHash.split("?")[1];
|
|
27
|
+
}
|
|
28
|
+
if (search === undefined) {
|
|
29
|
+
return {};
|
|
30
|
+
}
|
|
31
|
+
return Object.fromEntries(search.split("&").map(function (part) {
|
|
32
|
+
var _a = __read(part.split("="), 2), name = _a[0], value_encoded = _a[1];
|
|
33
|
+
return [name, value_encoded];
|
|
34
|
+
}));
|
|
35
|
+
}
|
|
36
|
+
function addOrUpdateOrRemoveSearchParam_encoded(params) {
|
|
37
|
+
var url = params.url, name = params.name, value_encoded = params.value_encoded;
|
|
38
|
+
var value_encodedByName = getAllSearchParams_encoded(url);
|
|
39
|
+
if (value_encoded === undefined) {
|
|
40
|
+
delete value_encodedByName[name];
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
value_encodedByName[name] = value_encoded;
|
|
44
|
+
}
|
|
45
|
+
var search;
|
|
46
|
+
update_search: {
|
|
47
|
+
if (Object.keys(value_encodedByName).length === 0) {
|
|
48
|
+
search = "";
|
|
49
|
+
break update_search;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
search =
|
|
53
|
+
"?" +
|
|
54
|
+
Object.entries(value_encodedByName)
|
|
55
|
+
.map(function (_a) {
|
|
56
|
+
var _b = __read(_a, 2), name = _b[0], value_encoded = _b[1];
|
|
57
|
+
return "".concat(name, "=").concat(value_encoded);
|
|
58
|
+
})
|
|
59
|
+
.join("&");
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
var _a = __read(url.split("#"), 2), url_withoutHash = _a[0], hash = _a[1];
|
|
63
|
+
var _b = __read(url_withoutHash.split("?"), 1), url_withoutHash_withoutSearch = _b[0];
|
|
64
|
+
return "".concat(url_withoutHash_withoutSearch).concat(search).concat(hash ? "#" + hash : "");
|
|
65
|
+
}
|
|
66
|
+
function addOrUpdateSearchParam(params) {
|
|
67
|
+
var url = params.url, name = params.name, value = params.value, encodeMethod = params.encodeMethod;
|
|
68
|
+
var value_encoded = encodeURIComponent(value);
|
|
69
|
+
if (encodeMethod === "www-form") {
|
|
70
|
+
value_encoded = value_encoded.replace(/%20/g, "+");
|
|
71
|
+
}
|
|
72
|
+
return addOrUpdateOrRemoveSearchParam_encoded({
|
|
73
|
+
url: url,
|
|
74
|
+
name: name,
|
|
75
|
+
value_encoded: value_encoded
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
function decodeSearchParamValue(value_encoded) {
|
|
79
|
+
return decodeURIComponent(value_encoded.replace(/\+/g, "%20"));
|
|
80
|
+
}
|
|
81
|
+
function getSearchParam(params) {
|
|
82
|
+
var url = params.url, name = params.name;
|
|
83
|
+
var encodedValueByName = getAllSearchParams_encoded(url);
|
|
84
|
+
var value_encoded = encodedValueByName[name];
|
|
85
|
+
if (value_encoded === undefined) {
|
|
86
|
+
return {
|
|
87
|
+
wasPresent: false
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
var url_withoutTheParam = addOrUpdateOrRemoveSearchParam_encoded({
|
|
91
|
+
url: url,
|
|
92
|
+
name: name,
|
|
93
|
+
value_encoded: undefined
|
|
94
|
+
});
|
|
95
|
+
return {
|
|
96
|
+
wasPresent: true,
|
|
97
|
+
value: decodeSearchParamValue(value_encoded),
|
|
98
|
+
url_withoutTheParam: url_withoutTheParam
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
function getAllSearchParams(url) {
|
|
102
|
+
var encodedValueByName = getAllSearchParams_encoded(url);
|
|
103
|
+
return Object.fromEntries(Object.entries(encodedValueByName).map(function (_a) {
|
|
104
|
+
var _b = __read(_a, 2), name = _b[0], value_encoded = _b[1];
|
|
105
|
+
return [
|
|
106
|
+
name,
|
|
107
|
+
decodeSearchParamValue(value_encoded)
|
|
108
|
+
];
|
|
109
|
+
}));
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=urlSearchParams.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"urlSearchParams.js","sourceRoot":"","sources":["../src/tools/urlSearchParams.ts"],"names":[],"mappings":"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"}
|