@inrupt/solid-client-authn-browser 1.16.0 → 1.17.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.
Files changed (141) hide show
  1. package/dist/ClientAuthentication.d.ts +4 -13
  2. package/dist/Session.d.ts +4 -4
  3. package/dist/dependencies.d.ts +1 -1
  4. package/dist/index.js +773 -28
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.mjs +746 -0
  7. package/dist/index.mjs.map +1 -0
  8. package/dist/login/oidc/AggregateOidcHandler.d.ts +2 -1
  9. package/dist/login/oidc/AggregateRedirectHandler.d.ts +2 -1
  10. package/dist/login/oidc/ClientRegistrar.d.ts +1 -1
  11. package/dist/login/oidc/IssuerConfigFetcher.d.ts +1 -1
  12. package/dist/login/oidc/OidcLoginHandler.d.ts +1 -1
  13. package/dist/login/oidc/Redirector.d.ts +1 -1
  14. package/dist/login/oidc/incomingRedirectHandler/AuthCodeRedirectHandler.d.ts +3 -6
  15. package/dist/login/oidc/incomingRedirectHandler/ErrorOidcHandler.d.ts +1 -1
  16. package/dist/login/oidc/incomingRedirectHandler/FallbackRedirectHandler.d.ts +1 -1
  17. package/dist/login/oidc/oidcHandlers/AuthorizationCodeWithPkceOidcHandler.d.ts +3 -6
  18. package/dist/login/oidc/oidcHandlers/OidcHandlerCanHandleTest.d.ts +1 -1
  19. package/dist/login/oidc/refresh/TokenRefresher.d.ts +2 -2
  20. package/dist/logout/buildRpInitiatedLogout.d.ts +2 -0
  21. package/dist/sessionInfo/SessionInfoManager.d.ts +4 -13
  22. package/dist/solid-client-authn.bundle.js +32 -2
  23. package/dist/solid-client-authn.bundle.js.map +1 -0
  24. package/dist/storage/BrowserStorage.d.ts +1 -1
  25. package/dist/storage/StorageUtility.d.ts +2 -1
  26. package/package.json +17 -17
  27. package/rollup.config.mjs +46 -0
  28. package/src/ClientAuthentication.spec.ts +4 -4
  29. package/src/ClientAuthentication.ts +8 -45
  30. package/src/Session.spec.ts +4 -4
  31. package/src/Session.ts +44 -13
  32. package/src/__mocks__/ClientAuthentication.ts +3 -3
  33. package/src/constant.ts +1 -1
  34. package/src/defaultSession.spec.ts +1 -1
  35. package/src/defaultSession.ts +5 -3
  36. package/src/dependencies.node.spec.ts +1 -1
  37. package/src/dependencies.spec.ts +1 -1
  38. package/src/dependencies.ts +10 -5
  39. package/src/index.browser.spec.ts +1 -1
  40. package/src/index.browser.ts +1 -1
  41. package/src/index.spec.ts +1 -1
  42. package/src/index.ts +1 -1
  43. package/src/login/__mocks__/LoginHandler.ts +2 -2
  44. package/src/login/oidc/AggregateOidcHandler.spec.ts +3 -5
  45. package/src/login/oidc/AggregateOidcHandler.ts +3 -3
  46. package/src/login/oidc/AggregateRedirectHandler.ts +3 -3
  47. package/src/login/oidc/ClientRegistrar.spec.ts +1 -1
  48. package/src/login/oidc/ClientRegistrar.ts +2 -2
  49. package/src/login/oidc/IssuerConfigFetcher.spec.ts +8 -4
  50. package/src/login/oidc/IssuerConfigFetcher.ts +12 -5
  51. package/src/login/oidc/OidcLoginHandler.spec.ts +3 -5
  52. package/src/login/oidc/OidcLoginHandler.ts +5 -3
  53. package/src/login/oidc/Redirector.spec.ts +1 -1
  54. package/src/login/oidc/Redirector.ts +2 -2
  55. package/src/login/oidc/__mocks__/ClientRegistrar.ts +2 -2
  56. package/src/login/oidc/__mocks__/IOidcHandler.ts +2 -2
  57. package/src/login/oidc/__mocks__/IOidcOptions.ts +2 -2
  58. package/src/login/oidc/__mocks__/IssuerConfigFetcher.ts +2 -2
  59. package/src/login/oidc/__mocks__/Redirector.ts +2 -2
  60. package/src/login/oidc/incomingRedirectHandler/AuthCodeRedirectHandler.spec.ts +37 -39
  61. package/src/login/oidc/incomingRedirectHandler/AuthCodeRedirectHandler.ts +31 -20
  62. package/src/login/oidc/incomingRedirectHandler/ErrorOidcHandler.spec.ts +3 -4
  63. package/src/login/oidc/incomingRedirectHandler/ErrorOidcHandler.ts +3 -3
  64. package/src/login/oidc/incomingRedirectHandler/FallbackRedirectHandler.spec.ts +3 -4
  65. package/src/login/oidc/incomingRedirectHandler/FallbackRedirectHandler.ts +2 -2
  66. package/src/login/oidc/oidcHandlers/AuthorizationCodeWithPkceOidcHandler.spec.ts +3 -3
  67. package/src/login/oidc/oidcHandlers/AuthorizationCodeWithPkceOidcHandler.ts +13 -51
  68. package/src/login/oidc/oidcHandlers/OidcHandlerCanHandleTest.ts +2 -2
  69. package/src/login/oidc/refresh/TokenRefresher.spec.ts +7 -6
  70. package/src/login/oidc/refresh/TokenRefresher.ts +6 -4
  71. package/src/login/oidc/refresh/__mocks__/TokenRefresher.ts +2 -2
  72. package/src/logout/{GeneralLogoutHandler.ts → buildRpInitiatedLogout.ts} +21 -20
  73. package/src/sessionInfo/SessionInfoManager.spec.ts +2 -2
  74. package/src/sessionInfo/SessionInfoManager.ts +13 -91
  75. package/src/sessionInfo/__mocks__/SessionInfoManager.ts +2 -2
  76. package/src/storage/BrowserStorage.spec.ts +1 -1
  77. package/src/storage/BrowserStorage.ts +2 -2
  78. package/src/storage/StorageUtility.ts +3 -2
  79. package/src/storage/__mocks__/LocalStorage.ts +1 -1
  80. package/src/util/UUIDGenerator.spec.ts +1 -1
  81. package/src/util/UuidGenerator.ts +1 -1
  82. package/src/util/__mocks__/UuidGenerator.ts +2 -2
  83. package/dist/ClientAuthentication.js +0 -80
  84. package/dist/ClientAuthentication.js.map +0 -1
  85. package/dist/Session.js +0 -150
  86. package/dist/Session.js.map +0 -1
  87. package/dist/constant.js +0 -7
  88. package/dist/constant.js.map +0 -1
  89. package/dist/defaultSession.js +0 -52
  90. package/dist/defaultSession.js.map +0 -1
  91. package/dist/dependencies.js +0 -41
  92. package/dist/dependencies.js.map +0 -1
  93. package/dist/index.browser.js +0 -28
  94. package/dist/index.browser.js.map +0 -1
  95. package/dist/login/oidc/AggregateOidcHandler.js +0 -10
  96. package/dist/login/oidc/AggregateOidcHandler.js.map +0 -1
  97. package/dist/login/oidc/AggregateRedirectHandler.js +0 -10
  98. package/dist/login/oidc/AggregateRedirectHandler.js.map +0 -1
  99. package/dist/login/oidc/ClientRegistrar.js +0 -47
  100. package/dist/login/oidc/ClientRegistrar.js.map +0 -1
  101. package/dist/login/oidc/IssuerConfigFetcher.js +0 -124
  102. package/dist/login/oidc/IssuerConfigFetcher.js.map +0 -1
  103. package/dist/login/oidc/OidcLoginHandler.js +0 -40
  104. package/dist/login/oidc/OidcLoginHandler.js.map +0 -1
  105. package/dist/login/oidc/Redirector.js +0 -17
  106. package/dist/login/oidc/Redirector.js.map +0 -1
  107. package/dist/login/oidc/__mocks__/IOidcOptions.d.ts +0 -2
  108. package/dist/login/oidc/__mocks__/IOidcOptions.js +0 -25
  109. package/dist/login/oidc/__mocks__/IOidcOptions.js.map +0 -1
  110. package/dist/login/oidc/incomingRedirectHandler/AuthCodeRedirectHandler.js +0 -91
  111. package/dist/login/oidc/incomingRedirectHandler/AuthCodeRedirectHandler.js.map +0 -1
  112. package/dist/login/oidc/incomingRedirectHandler/ErrorOidcHandler.js +0 -26
  113. package/dist/login/oidc/incomingRedirectHandler/ErrorOidcHandler.js.map +0 -1
  114. package/dist/login/oidc/incomingRedirectHandler/FallbackRedirectHandler.js +0 -20
  115. package/dist/login/oidc/incomingRedirectHandler/FallbackRedirectHandler.js.map +0 -1
  116. package/dist/login/oidc/oidcHandlers/AuthorizationCodeWithPkceOidcHandler.js +0 -56
  117. package/dist/login/oidc/oidcHandlers/AuthorizationCodeWithPkceOidcHandler.js.map +0 -1
  118. package/dist/login/oidc/oidcHandlers/OidcHandlerCanHandleTest.js +0 -47
  119. package/dist/login/oidc/oidcHandlers/OidcHandlerCanHandleTest.js.map +0 -1
  120. package/dist/login/oidc/refresh/TokenRefresher.js +0 -31
  121. package/dist/login/oidc/refresh/TokenRefresher.js.map +0 -1
  122. package/dist/logout/GeneralLogoutHandler.d.ts +0 -7
  123. package/dist/logout/GeneralLogoutHandler.js +0 -15
  124. package/dist/logout/GeneralLogoutHandler.js.map +0 -1
  125. package/dist/sessionInfo/SessionInfoManager.js +0 -96
  126. package/dist/sessionInfo/SessionInfoManager.js.map +0 -1
  127. package/dist/solid-client-authn.bundle.js.LICENSE.txt +0 -17
  128. package/dist/storage/BrowserStorage.js +0 -18
  129. package/dist/storage/BrowserStorage.js.map +0 -1
  130. package/dist/storage/StorageUtility.js +0 -10
  131. package/dist/storage/StorageUtility.js.map +0 -1
  132. package/dist/util/UuidGenerator.js +0 -10
  133. package/dist/util/UuidGenerator.js.map +0 -1
  134. package/licenses.csv +0 -147
  135. package/src/logout/GeneralLogoutHandler.spec.ts +0 -72
  136. package/src/logout/__mocks__/LogoutHandler.ts +0 -38
  137. package/webpack.browser.js +0 -39
  138. package/webpack.common.js +0 -42
  139. package/webpack.config.js +0 -28
  140. package/webpack.dev.js +0 -37
  141. package/webpack.prod.js +0 -23
package/dist/Session.js DELETED
@@ -1,150 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Session = exports.silentlyAuthenticate = void 0;
7
- const solid_client_authn_core_1 = require("@inrupt/solid-client-authn-core");
8
- const uuid_1 = require("uuid");
9
- const events_1 = __importDefault(require("events"));
10
- const dependencies_1 = require("./dependencies");
11
- const constant_1 = require("./constant");
12
- async function silentlyAuthenticate(sessionId, clientAuthn, session) {
13
- var _a;
14
- const storedSessionInfo = await clientAuthn.validateCurrentSession(sessionId);
15
- if (storedSessionInfo !== null) {
16
- window.localStorage.setItem(constant_1.KEY_CURRENT_URL, window.location.href);
17
- await clientAuthn.login({
18
- sessionId,
19
- prompt: "none",
20
- oidcIssuer: storedSessionInfo.issuer,
21
- redirectUrl: storedSessionInfo.redirectUrl,
22
- clientId: storedSessionInfo.clientAppId,
23
- clientSecret: storedSessionInfo.clientAppSecret,
24
- tokenType: (_a = storedSessionInfo.tokenType) !== null && _a !== void 0 ? _a : "DPoP",
25
- }, session.events);
26
- return true;
27
- }
28
- return false;
29
- }
30
- exports.silentlyAuthenticate = silentlyAuthenticate;
31
- function isLoggedIn(sessionInfo) {
32
- return !!(sessionInfo === null || sessionInfo === void 0 ? void 0 : sessionInfo.isLoggedIn);
33
- }
34
- class Session extends events_1.default {
35
- constructor(sessionOptions = {}, sessionId = undefined) {
36
- super();
37
- this.tokenRequestInProgress = false;
38
- this.login = async (options) => {
39
- var _a;
40
- await this.clientAuthentication.login({
41
- sessionId: this.info.sessionId,
42
- ...options,
43
- tokenType: (_a = options.tokenType) !== null && _a !== void 0 ? _a : "DPoP",
44
- }, this.events);
45
- return new Promise(() => { });
46
- };
47
- this.fetch = async (url, init) => {
48
- return this.clientAuthentication.fetch(url, init);
49
- };
50
- this.internalLogout = async (emitSignal) => {
51
- window.localStorage.removeItem(constant_1.KEY_CURRENT_SESSION);
52
- await this.clientAuthentication.logout(this.info.sessionId);
53
- this.info.isLoggedIn = false;
54
- if (emitSignal) {
55
- this.events.emit(solid_client_authn_core_1.EVENTS.LOGOUT);
56
- }
57
- };
58
- this.logout = async () => this.internalLogout(true);
59
- this.handleIncomingRedirect = async (inputOptions = {}) => {
60
- var _a;
61
- if (this.info.isLoggedIn) {
62
- return this.info;
63
- }
64
- if (this.tokenRequestInProgress) {
65
- return undefined;
66
- }
67
- const options = typeof inputOptions === "string" ? { url: inputOptions } : inputOptions;
68
- const url = (_a = options.url) !== null && _a !== void 0 ? _a : window.location.href;
69
- this.tokenRequestInProgress = true;
70
- const sessionInfo = await this.clientAuthentication.handleIncomingRedirect(url, this.events);
71
- if (isLoggedIn(sessionInfo)) {
72
- this.setSessionInfo(sessionInfo);
73
- const currentUrl = window.localStorage.getItem(constant_1.KEY_CURRENT_URL);
74
- if (currentUrl === null) {
75
- this.events.emit(solid_client_authn_core_1.EVENTS.LOGIN);
76
- }
77
- else {
78
- window.localStorage.removeItem(constant_1.KEY_CURRENT_URL);
79
- this.events.emit(solid_client_authn_core_1.EVENTS.SESSION_RESTORED, currentUrl);
80
- }
81
- }
82
- else if (options.restorePreviousSession === true) {
83
- const storedSessionId = window.localStorage.getItem(constant_1.KEY_CURRENT_SESSION);
84
- if (storedSessionId !== null) {
85
- const attemptedSilentAuthentication = await silentlyAuthenticate(storedSessionId, this.clientAuthentication, this);
86
- if (attemptedSilentAuthentication) {
87
- return new Promise(() => { });
88
- }
89
- }
90
- }
91
- this.tokenRequestInProgress = false;
92
- return sessionInfo;
93
- };
94
- this.events = new Proxy(this, (0, solid_client_authn_core_1.buildProxyHandler)(Session.prototype, "events only implements ISessionEventListener"));
95
- if (sessionOptions.clientAuthentication) {
96
- this.clientAuthentication = sessionOptions.clientAuthentication;
97
- }
98
- else if (sessionOptions.secureStorage && sessionOptions.insecureStorage) {
99
- this.clientAuthentication = (0, dependencies_1.getClientAuthenticationWithDependencies)({
100
- secureStorage: sessionOptions.secureStorage,
101
- insecureStorage: sessionOptions.insecureStorage,
102
- });
103
- }
104
- else {
105
- this.clientAuthentication = (0, dependencies_1.getClientAuthenticationWithDependencies)({});
106
- }
107
- if (sessionOptions.sessionInfo) {
108
- this.info = {
109
- sessionId: sessionOptions.sessionInfo.sessionId,
110
- isLoggedIn: false,
111
- webId: sessionOptions.sessionInfo.webId,
112
- };
113
- }
114
- else {
115
- this.info = {
116
- sessionId: sessionId !== null && sessionId !== void 0 ? sessionId : (0, uuid_1.v4)(),
117
- isLoggedIn: false,
118
- };
119
- }
120
- this.events.on(solid_client_authn_core_1.EVENTS.LOGIN, () => window.localStorage.setItem(constant_1.KEY_CURRENT_SESSION, this.info.sessionId));
121
- this.events.on(solid_client_authn_core_1.EVENTS.SESSION_EXPIRED, () => this.internalLogout(false));
122
- this.events.on(solid_client_authn_core_1.EVENTS.ERROR, () => this.internalLogout(false));
123
- }
124
- onLogin(callback) {
125
- this.events.on(solid_client_authn_core_1.EVENTS.LOGIN, callback);
126
- }
127
- onLogout(callback) {
128
- this.events.on(solid_client_authn_core_1.EVENTS.LOGOUT, callback);
129
- }
130
- onError(callback) {
131
- this.events.on(solid_client_authn_core_1.EVENTS.ERROR, callback);
132
- }
133
- onSessionRestore(callback) {
134
- this.events.on(solid_client_authn_core_1.EVENTS.SESSION_RESTORED, callback);
135
- }
136
- onSessionExpiration(callback) {
137
- this.events.on(solid_client_authn_core_1.EVENTS.SESSION_EXPIRED, callback);
138
- }
139
- setSessionInfo(sessionInfo) {
140
- this.info.isLoggedIn = sessionInfo.isLoggedIn;
141
- this.info.webId = sessionInfo.webId;
142
- this.info.sessionId = sessionInfo.sessionId;
143
- this.info.expirationDate = sessionInfo.expirationDate;
144
- this.events.on(solid_client_authn_core_1.EVENTS.SESSION_EXTENDED, (expiresIn) => {
145
- this.info.expirationDate = Date.now() + expiresIn * 1000;
146
- });
147
- }
148
- }
149
- exports.Session = Session;
150
- //# sourceMappingURL=Session.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Session.js","sourceRoot":"","sources":["../src/Session.ts"],"names":[],"mappings":"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"}
package/dist/constant.js DELETED
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.KEY_CURRENT_URL = exports.KEY_CURRENT_SESSION = void 0;
4
- const solid_client_authn_core_1 = require("@inrupt/solid-client-authn-core");
5
- exports.KEY_CURRENT_SESSION = `${solid_client_authn_core_1.SOLID_CLIENT_AUTHN_KEY_PREFIX}currentSession`;
6
- exports.KEY_CURRENT_URL = `${solid_client_authn_core_1.SOLID_CLIENT_AUTHN_KEY_PREFIX}currentUrl`;
7
- //# sourceMappingURL=constant.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constant.js","sourceRoot":"","sources":["../src/constant.ts"],"names":[],"mappings":";;;AAqBA,6EAAgF;AAEnE,QAAA,mBAAmB,GAAG,GAAG,uDAA6B,gBAAgB,CAAC;AAEvE,QAAA,eAAe,GAAG,GAAG,uDAA6B,YAAY,CAAC"}
@@ -1,52 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.events = exports.onSessionRestore = exports.onLogout = exports.onLogin = exports.handleIncomingRedirect = exports.logout = exports.login = exports.fetch = exports.getDefaultSession = void 0;
4
- const Session_1 = require("./Session");
5
- let defaultSession;
6
- function getDefaultSession() {
7
- if (typeof defaultSession === "undefined") {
8
- defaultSession = new Session_1.Session();
9
- }
10
- return defaultSession;
11
- }
12
- exports.getDefaultSession = getDefaultSession;
13
- const fetch = (...args) => {
14
- const session = getDefaultSession();
15
- return session.fetch(...args);
16
- };
17
- exports.fetch = fetch;
18
- const login = (...args) => {
19
- const session = getDefaultSession();
20
- return session.login(...args);
21
- };
22
- exports.login = login;
23
- const logout = (...args) => {
24
- const session = getDefaultSession();
25
- return session.logout(...args);
26
- };
27
- exports.logout = logout;
28
- const handleIncomingRedirect = (...args) => {
29
- const session = getDefaultSession();
30
- return session.handleIncomingRedirect(...args);
31
- };
32
- exports.handleIncomingRedirect = handleIncomingRedirect;
33
- const onLogin = (...args) => {
34
- const session = getDefaultSession();
35
- return session.onLogin(...args);
36
- };
37
- exports.onLogin = onLogin;
38
- const onLogout = (...args) => {
39
- const session = getDefaultSession();
40
- return session.onLogout(...args);
41
- };
42
- exports.onLogout = onLogout;
43
- const onSessionRestore = (...args) => {
44
- const session = getDefaultSession();
45
- return session.onSessionRestore(...args);
46
- };
47
- exports.onSessionRestore = onSessionRestore;
48
- const events = () => {
49
- return getDefaultSession().events;
50
- };
51
- exports.events = events;
52
- //# sourceMappingURL=defaultSession.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"defaultSession.js","sourceRoot":"","sources":["../src/defaultSession.ts"],"names":[],"mappings":";;;AAqBA,uCAAoC;AAEpC,IAAI,cAAmC,CAAC;AAYxC,SAAgB,iBAAiB;IAC/B,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE;QACzC,cAAc,GAAG,IAAI,iBAAO,EAAE,CAAC;KAChC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AALD,8CAKC;AAWM,MAAM,KAAK,GAAqB,CAAC,GAAG,IAAI,EAAE,EAAE;IACjD,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;IACpC,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;AAChC,CAAC,CAAC;AAHW,QAAA,KAAK,SAGhB;AASK,MAAM,KAAK,GAAqB,CAAC,GAAG,IAAI,EAAE,EAAE;IACjD,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;IACpC,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;AAChC,CAAC,CAAC;AAHW,QAAA,KAAK,SAGhB;AAQK,MAAM,MAAM,GAAsB,CAAC,GAAG,IAAI,EAAE,EAAE;IACnD,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;IACpC,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;AACjC,CAAC,CAAC;AAHW,QAAA,MAAM,UAGjB;AAQK,MAAM,sBAAsB,GAAsC,CACvE,GAAG,IAAI,EACP,EAAE;IACF,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;IACpC,OAAO,OAAO,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC,CAAC;AACjD,CAAC,CAAC;AALW,QAAA,sBAAsB,0BAKjC;AAYK,MAAM,OAAO,GAAuB,CAAC,GAAG,IAAI,EAAE,EAAE;IACrD,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;IACpC,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;AAClC,CAAC,CAAC;AAHW,QAAA,OAAO,WAGlB;AAUK,MAAM,QAAQ,GAAwB,CAAC,GAAG,IAAI,EAAE,EAAE;IACvD,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;IACpC,OAAO,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;AACnC,CAAC,CAAC;AAHW,QAAA,QAAQ,YAGnB;AASK,MAAM,gBAAgB,GAAgC,CAAC,GAAG,IAAI,EAAE,EAAE;IACvE,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;IACpC,OAAO,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,CAAC;AAC3C,CAAC,CAAC;AAHW,QAAA,gBAAgB,oBAG3B;AAOK,MAAM,MAAM,GAAG,GAAsB,EAAE;IAC5C,OAAO,iBAAiB,EAAE,CAAC,MAAM,CAAC;AACpC,CAAC,CAAC;AAFW,QAAA,MAAM,UAEjB"}
@@ -1,41 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getClientAuthenticationWithDependencies = void 0;
7
- const solid_client_authn_core_1 = require("@inrupt/solid-client-authn-core");
8
- const StorageUtility_1 = __importDefault(require("./storage/StorageUtility"));
9
- const ClientAuthentication_1 = __importDefault(require("./ClientAuthentication"));
10
- const OidcLoginHandler_1 = __importDefault(require("./login/oidc/OidcLoginHandler"));
11
- const AuthorizationCodeWithPkceOidcHandler_1 = __importDefault(require("./login/oidc/oidcHandlers/AuthorizationCodeWithPkceOidcHandler"));
12
- const IssuerConfigFetcher_1 = __importDefault(require("./login/oidc/IssuerConfigFetcher"));
13
- const FallbackRedirectHandler_1 = require("./login/oidc/incomingRedirectHandler/FallbackRedirectHandler");
14
- const GeneralLogoutHandler_1 = __importDefault(require("./logout/GeneralLogoutHandler"));
15
- const SessionInfoManager_1 = require("./sessionInfo/SessionInfoManager");
16
- const AuthCodeRedirectHandler_1 = require("./login/oidc/incomingRedirectHandler/AuthCodeRedirectHandler");
17
- const AggregateRedirectHandler_1 = __importDefault(require("./login/oidc/AggregateRedirectHandler"));
18
- const BrowserStorage_1 = __importDefault(require("./storage/BrowserStorage"));
19
- const Redirector_1 = __importDefault(require("./login/oidc/Redirector"));
20
- const ClientRegistrar_1 = __importDefault(require("./login/oidc/ClientRegistrar"));
21
- const ErrorOidcHandler_1 = require("./login/oidc/incomingRedirectHandler/ErrorOidcHandler");
22
- const TokenRefresher_1 = __importDefault(require("./login/oidc/refresh/TokenRefresher"));
23
- function getClientAuthenticationWithDependencies(dependencies) {
24
- const inMemoryStorage = new solid_client_authn_core_1.InMemoryStorage();
25
- const secureStorage = dependencies.secureStorage || inMemoryStorage;
26
- const insecureStorage = dependencies.insecureStorage || new BrowserStorage_1.default();
27
- const storageUtility = new StorageUtility_1.default(secureStorage, insecureStorage);
28
- const issuerConfigFetcher = new IssuerConfigFetcher_1.default(storageUtility);
29
- const clientRegistrar = new ClientRegistrar_1.default(storageUtility);
30
- const sessionInfoManager = new SessionInfoManager_1.SessionInfoManager(storageUtility);
31
- const tokenRefresher = new TokenRefresher_1.default(storageUtility, issuerConfigFetcher, clientRegistrar);
32
- const loginHandler = new OidcLoginHandler_1.default(storageUtility, new AuthorizationCodeWithPkceOidcHandler_1.default(storageUtility, new Redirector_1.default()), issuerConfigFetcher, clientRegistrar);
33
- const redirectHandler = new AggregateRedirectHandler_1.default([
34
- new ErrorOidcHandler_1.ErrorOidcHandler(),
35
- new AuthCodeRedirectHandler_1.AuthCodeRedirectHandler(storageUtility, sessionInfoManager, issuerConfigFetcher, clientRegistrar, tokenRefresher),
36
- new FallbackRedirectHandler_1.FallbackRedirectHandler(),
37
- ]);
38
- return new ClientAuthentication_1.default(loginHandler, redirectHandler, new GeneralLogoutHandler_1.default(sessionInfoManager), sessionInfoManager, issuerConfigFetcher);
39
- }
40
- exports.getClientAuthenticationWithDependencies = getClientAuthenticationWithDependencies;
41
- //# sourceMappingURL=dependencies.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../src/dependencies.ts"],"names":[],"mappings":";;;;;;AA6BA,6EAA4E;AAC5E,8EAA6D;AAC7D,kFAA0D;AAC1D,qFAA6D;AAC7D,0IAAkH;AAClH,2FAAmE;AACnE,0GAAuG;AACvG,yFAAiE;AACjE,yEAAsE;AACtE,0GAAuG;AACvG,qGAA6E;AAC7E,8EAAsD;AACtD,yEAAiD;AACjD,mFAA2D;AAC3D,4FAAyF;AACzF,yFAAiE;AAOjE,SAAgB,uCAAuC,CAAC,YAGvD;IACC,MAAM,eAAe,GAAG,IAAI,yCAAe,EAAE,CAAC;IAC9C,MAAM,aAAa,GAAG,YAAY,CAAC,aAAa,IAAI,eAAe,CAAC;IACpE,MAAM,eAAe,GAAG,YAAY,CAAC,eAAe,IAAI,IAAI,wBAAc,EAAE,CAAC;IAE7E,MAAM,cAAc,GAAG,IAAI,wBAAqB,CAC9C,aAAa,EACb,eAAe,CAChB,CAAC;IAEF,MAAM,mBAAmB,GAAG,IAAI,6BAAmB,CAAC,cAAc,CAAC,CAAC;IACpE,MAAM,eAAe,GAAG,IAAI,yBAAe,CAAC,cAAc,CAAC,CAAC;IAE5D,MAAM,kBAAkB,GAAG,IAAI,uCAAkB,CAAC,cAAc,CAAC,CAAC;IAElE,MAAM,cAAc,GAAG,IAAI,wBAAc,CACvC,cAAc,EACd,mBAAmB,EACnB,eAAe,CAChB,CAAC;IAGF,MAAM,YAAY,GAAG,IAAI,0BAAgB,CACvC,cAAc,EACd,IAAI,8CAAoC,CAAC,cAAc,EAAE,IAAI,oBAAU,EAAE,CAAC,EAC1E,mBAAmB,EACnB,eAAe,CAChB,CAAC;IAEF,MAAM,eAAe,GAAG,IAAI,kCAAwB,CAAC;QACnD,IAAI,mCAAgB,EAAE;QACtB,IAAI,iDAAuB,CACzB,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,cAAc,CACf;QAGD,IAAI,iDAAuB,EAAE;KAC9B,CAAC,CAAC;IAEH,OAAO,IAAI,8BAAoB,CAC7B,YAAY,EACZ,eAAe,EACf,IAAI,8BAAoB,CAAC,kBAAkB,CAAC,EAC5C,kBAAkB,EAClB,mBAAmB,CACpB,CAAC;AACJ,CAAC;AArDD,0FAqDC"}
@@ -1,28 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- const solidClientAuthentication = __importStar(require("./index"));
27
- exports.default = solidClientAuthentication;
28
- //# sourceMappingURL=index.browser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.browser.js","sourceRoot":"","sources":["../src/index.browser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,mEAAqD;AAErD,kBAAe,yBAAyB,CAAC"}
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const solid_client_authn_core_1 = require("@inrupt/solid-client-authn-core");
4
- class AggregateOidcHandler extends solid_client_authn_core_1.AggregateHandler {
5
- constructor(oidcLoginHandlers) {
6
- super(oidcLoginHandlers);
7
- }
8
- }
9
- exports.default = AggregateOidcHandler;
10
- //# sourceMappingURL=AggregateOidcHandler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AggregateOidcHandler.js","sourceRoot":"","sources":["../../../src/login/oidc/AggregateOidcHandler.ts"],"names":[],"mappings":";;AA6BA,6EAKyC;AAKzC,MAAqB,oBACnB,SAAQ,0CAA6C;IAGrD,YAAY,iBAAiC;QAC3C,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC3B,CAAC;CACF;AAPD,uCAOC"}
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const solid_client_authn_core_1 = require("@inrupt/solid-client-authn-core");
4
- class AggregateRedirectHandler extends solid_client_authn_core_1.AggregateHandler {
5
- constructor(redirectHandlers) {
6
- super(redirectHandlers);
7
- }
8
- }
9
- exports.default = AggregateRedirectHandler;
10
- //# sourceMappingURL=AggregateRedirectHandler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AggregateRedirectHandler.js","sourceRoot":"","sources":["../../../src/login/oidc/AggregateRedirectHandler.ts"],"names":[],"mappings":";;AA6BA,6EAKyC;AAKzC,MAAqB,wBACnB,SAAQ,0CAA+D;IAGvE,YAAY,gBAA4C;QACtD,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC1B,CAAC;CACF;AAPD,2CAOC"}
@@ -1,47 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const oidc_client_ext_1 = require("@inrupt/oidc-client-ext");
4
- class ClientRegistrar {
5
- constructor(storageUtility) {
6
- this.storageUtility = storageUtility;
7
- }
8
- async getClient(options, issuerConfig) {
9
- const [storedClientId, storedClientSecret,] = await Promise.all([
10
- this.storageUtility.getForUser(options.sessionId, "clientId", {
11
- secure: false,
12
- }),
13
- this.storageUtility.getForUser(options.sessionId, "clientSecret", {
14
- secure: false,
15
- }),
16
- ]);
17
- if (storedClientId) {
18
- return {
19
- clientId: storedClientId,
20
- clientSecret: storedClientSecret,
21
- clientType: "dynamic",
22
- };
23
- }
24
- try {
25
- const registeredClient = await (0, oidc_client_ext_1.registerClient)(options, issuerConfig);
26
- const infoToSave = {
27
- clientId: registeredClient.clientId,
28
- };
29
- if (registeredClient.clientSecret) {
30
- infoToSave.clientSecret = registeredClient.clientSecret;
31
- }
32
- if (registeredClient.idTokenSignedResponseAlg) {
33
- infoToSave.idTokenSignedResponseAlg =
34
- registeredClient.idTokenSignedResponseAlg;
35
- }
36
- await this.storageUtility.setForUser(options.sessionId, infoToSave, {
37
- secure: false,
38
- });
39
- return registeredClient;
40
- }
41
- catch (error) {
42
- throw new Error(`Client registration failed: [${error}]`);
43
- }
44
- }
45
- }
46
- exports.default = ClientRegistrar;
47
- //# sourceMappingURL=ClientRegistrar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ClientRegistrar.js","sourceRoot":"","sources":["../../../src/login/oidc/ClientRegistrar.ts"],"names":[],"mappings":";;AAiCA,6DAAyD;AAKzD,MAAqB,eAAe;IAClC,YAAoB,cAA+B;QAA/B,mBAAc,GAAd,cAAc,CAAiB;IAAG,CAAC;IAEvD,KAAK,CAAC,SAAS,CACb,OAAgC,EAChC,YAA2B;QAG3B,MAAM,CACJ,cAAc,EACd,kBAAkB,EAEnB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACpB,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE;gBAC5D,MAAM,EAAE,KAAK;aACd,CAAC;YACF,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,EAAE;gBAChE,MAAM,EAAE,KAAK;aACd,CAAC;SAKH,CAAC,CAAC;QACH,IAAI,cAAc,EAAE;YAClB,OAAO;gBACL,QAAQ,EAAE,cAAc;gBACxB,YAAY,EAAE,kBAAkB;gBAChC,UAAU,EAAE,SAAS;aACtB,CAAC;SACH;QAED,IAAI;YACF,MAAM,gBAAgB,GAAG,MAAM,IAAA,gCAAc,EAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAErE,MAAM,UAAU,GAA2B;gBACzC,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;aACpC,CAAC;YACF,IAAI,gBAAgB,CAAC,YAAY,EAAE;gBACjC,UAAU,CAAC,YAAY,GAAG,gBAAgB,CAAC,YAAY,CAAC;aACzD;YACD,IAAI,gBAAgB,CAAC,wBAAwB,EAAE;gBAC7C,UAAU,CAAC,wBAAwB;oBACjC,gBAAgB,CAAC,wBAAwB,CAAC;aAC7C;YACD,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE;gBAIlE,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;YACH,OAAO,gBAAgB,CAAC;SACzB;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,GAAG,CAAC,CAAC;SAC3D;IACH,CAAC;CACF;AAxDD,kCAwDC"}
@@ -1,124 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WELL_KNOWN_OPENID_CONFIG = void 0;
4
- const solid_client_authn_core_1 = require("@inrupt/solid-client-authn-core");
5
- const universal_fetch_1 = require("@inrupt/universal-fetch");
6
- exports.WELL_KNOWN_OPENID_CONFIG = ".well-known/openid-configuration";
7
- const issuerConfigKeyMap = {
8
- issuer: {
9
- toKey: "issuer",
10
- convertToUrl: true,
11
- },
12
- authorization_endpoint: {
13
- toKey: "authorizationEndpoint",
14
- convertToUrl: true,
15
- },
16
- token_endpoint: {
17
- toKey: "tokenEndpoint",
18
- convertToUrl: true,
19
- },
20
- userinfo_endpoint: {
21
- toKey: "userinfoEndpoint",
22
- convertToUrl: true,
23
- },
24
- jwks_uri: {
25
- toKey: "jwksUri",
26
- convertToUrl: true,
27
- },
28
- registration_endpoint: {
29
- toKey: "registrationEndpoint",
30
- convertToUrl: true,
31
- },
32
- scopes_supported: { toKey: "scopesSupported" },
33
- response_types_supported: { toKey: "responseTypesSupported" },
34
- response_modes_supported: { toKey: "responseModesSupported" },
35
- grant_types_supported: { toKey: "grantTypesSupported" },
36
- acr_values_supported: { toKey: "acrValuesSupported" },
37
- subject_types_supported: { toKey: "subjectTypesSupported" },
38
- id_token_signing_alg_values_supported: {
39
- toKey: "idTokenSigningAlgValuesSupported",
40
- },
41
- id_token_encryption_alg_values_supported: {
42
- toKey: "idTokenEncryptionAlgValuesSupported",
43
- },
44
- id_token_encryption_enc_values_supported: {
45
- toKey: "idTokenEncryptionEncValuesSupported",
46
- },
47
- userinfo_signing_alg_values_supported: {
48
- toKey: "userinfoSigningAlgValuesSupported",
49
- },
50
- userinfo_encryption_alg_values_supported: {
51
- toKey: "userinfoEncryptionAlgValuesSupported",
52
- },
53
- userinfo_encryption_enc_values_supported: {
54
- toKey: "userinfoEncryptionEncValuesSupported",
55
- },
56
- request_object_signing_alg_values_supported: {
57
- toKey: "requestObjectSigningAlgValuesSupported",
58
- },
59
- request_object_encryption_alg_values_supported: {
60
- toKey: "requestObjectEncryptionAlgValuesSupported",
61
- },
62
- request_object_encryption_enc_values_supported: {
63
- toKey: "requestObjectEncryptionEncValuesSupported",
64
- },
65
- token_endpoint_auth_methods_supported: {
66
- toKey: "tokenEndpointAuthMethodsSupported",
67
- },
68
- token_endpoint_auth_signing_alg_values_supported: {
69
- toKey: "tokenEndpointAuthSigningAlgValuesSupported",
70
- },
71
- display_values_supported: { toKey: "displayValuesSupported" },
72
- claim_types_supported: { toKey: "claimTypesSupported" },
73
- claims_supported: { toKey: "claimsSupported" },
74
- service_documentation: { toKey: "serviceDocumentation" },
75
- claims_locales_supported: { toKey: "claimsLocalesSupported" },
76
- ui_locales_supported: { toKey: "uiLocalesSupported" },
77
- claims_parameter_supported: { toKey: "claimsParameterSupported" },
78
- request_parameter_supported: { toKey: "requestParameterSupported" },
79
- request_uri_parameter_supported: { toKey: "requestUriParameterSupported" },
80
- require_request_uri_registration: { toKey: "requireRequestUriRegistration" },
81
- op_policy_uri: {
82
- toKey: "opPolicyUri",
83
- convertToUrl: true,
84
- },
85
- op_tos_uri: {
86
- toKey: "opTosUri",
87
- convertToUrl: true,
88
- },
89
- };
90
- function processConfig(config) {
91
- const parsedConfig = {};
92
- Object.keys(config).forEach((key) => {
93
- if (issuerConfigKeyMap[key]) {
94
- parsedConfig[issuerConfigKeyMap[key].toKey] = config[key];
95
- }
96
- });
97
- if (!Array.isArray(parsedConfig.scopesSupported)) {
98
- parsedConfig.scopesSupported = ["openid"];
99
- }
100
- return parsedConfig;
101
- }
102
- class IssuerConfigFetcher {
103
- constructor(storageUtility) {
104
- this.storageUtility = storageUtility;
105
- }
106
- static getLocalStorageKey(issuer) {
107
- return `issuerConfig:${issuer}`;
108
- }
109
- async fetchConfig(issuer) {
110
- let issuerConfig;
111
- const openIdConfigUrl = new URL(exports.WELL_KNOWN_OPENID_CONFIG, issuer.endsWith("/") ? issuer : `${issuer}/`).href;
112
- const issuerConfigRequestBody = await (0, universal_fetch_1.fetch)(openIdConfigUrl);
113
- try {
114
- issuerConfig = processConfig(await issuerConfigRequestBody.json());
115
- }
116
- catch (err) {
117
- throw new solid_client_authn_core_1.ConfigurationError(`[${issuer.toString()}] has an invalid configuration: ${err.message}`);
118
- }
119
- await this.storageUtility.set(IssuerConfigFetcher.getLocalStorageKey(issuer), JSON.stringify(issuerConfig));
120
- return issuerConfig;
121
- }
122
- }
123
- exports.default = IssuerConfigFetcher;
124
- //# sourceMappingURL=IssuerConfigFetcher.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IssuerConfigFetcher.js","sourceRoot":"","sources":["../../../src/login/oidc/IssuerConfigFetcher.ts"],"names":[],"mappings":";;;AA6BA,6EAKyC;AACzC,6DAAgD;AAEnC,QAAA,wBAAwB,GAAG,kCAAkC,CAAC;AAG3E,MAAM,kBAAkB,GAGpB;IACF,MAAM,EAAE;QACN,KAAK,EAAE,QAAQ;QACf,YAAY,EAAE,IAAI;KACnB;IACD,sBAAsB,EAAE;QACtB,KAAK,EAAE,uBAAuB;QAC9B,YAAY,EAAE,IAAI;KACnB;IACD,cAAc,EAAE;QACd,KAAK,EAAE,eAAe;QACtB,YAAY,EAAE,IAAI;KACnB;IACD,iBAAiB,EAAE;QACjB,KAAK,EAAE,kBAAkB;QACzB,YAAY,EAAE,IAAI;KACnB;IACD,QAAQ,EAAE;QACR,KAAK,EAAE,SAAS;QAChB,YAAY,EAAE,IAAI;KACnB;IACD,qBAAqB,EAAE;QACrB,KAAK,EAAE,sBAAsB;QAC7B,YAAY,EAAE,IAAI;KACnB;IACD,gBAAgB,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE;IAC9C,wBAAwB,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE;IAC7D,wBAAwB,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE;IAC7D,qBAAqB,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE;IACvD,oBAAoB,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE;IACrD,uBAAuB,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE;IAC3D,qCAAqC,EAAE;QACrC,KAAK,EAAE,kCAAkC;KAC1C;IACD,wCAAwC,EAAE;QACxC,KAAK,EAAE,qCAAqC;KAC7C;IACD,wCAAwC,EAAE;QACxC,KAAK,EAAE,qCAAqC;KAC7C;IACD,qCAAqC,EAAE;QACrC,KAAK,EAAE,mCAAmC;KAC3C;IACD,wCAAwC,EAAE;QACxC,KAAK,EAAE,sCAAsC;KAC9C;IACD,wCAAwC,EAAE;QACxC,KAAK,EAAE,sCAAsC;KAC9C;IACD,2CAA2C,EAAE;QAC3C,KAAK,EAAE,wCAAwC;KAChD;IACD,8CAA8C,EAAE;QAC9C,KAAK,EAAE,2CAA2C;KACnD;IACD,8CAA8C,EAAE;QAC9C,KAAK,EAAE,2CAA2C;KACnD;IACD,qCAAqC,EAAE;QACrC,KAAK,EAAE,mCAAmC;KAC3C;IACD,gDAAgD,EAAE;QAChD,KAAK,EAAE,4CAA4C;KACpD;IACD,wBAAwB,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE;IAC7D,qBAAqB,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE;IACvD,gBAAgB,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE;IAC9C,qBAAqB,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE;IACxD,wBAAwB,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE;IAC7D,oBAAoB,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE;IACrD,0BAA0B,EAAE,EAAE,KAAK,EAAE,0BAA0B,EAAE;IACjE,2BAA2B,EAAE,EAAE,KAAK,EAAE,2BAA2B,EAAE;IACnE,+BAA+B,EAAE,EAAE,KAAK,EAAE,8BAA8B,EAAE;IAC1E,gCAAgC,EAAE,EAAE,KAAK,EAAE,+BAA+B,EAAE;IAC5E,aAAa,EAAE;QACb,KAAK,EAAE,aAAa;QACpB,YAAY,EAAE,IAAI;KACnB;IACD,UAAU,EAAE;QACV,KAAK,EAAE,UAAU;QACjB,YAAY,EAAE,IAAI;KACnB;CACF,CAAC;AAGF,SAAS,aAAa,CACpB,MAAyC;IAEzC,MAAM,YAAY,GAAsC,EAAE,CAAC;IAC3D,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAClC,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE;YAK3B,YAAY,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;SAC3D;IACH,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE;QAChD,YAAY,CAAC,eAAe,GAAG,CAAC,QAAQ,CAAC,CAAC;KAC3C;IACD,OAAO,YAAwC,CAAC;AAClD,CAAC;AAKD,MAAqB,mBAAmB;IACtC,YAAoB,cAA+B;QAA/B,mBAAc,GAAd,cAAc,CAAiB;IAAG,CAAC;IAIhD,MAAM,CAAC,kBAAkB,CAAC,MAAc;QAC7C,OAAO,gBAAgB,MAAM,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAc;QAC9B,IAAI,YAA2B,CAAC;QAEhC,MAAM,eAAe,GAAG,IAAI,GAAG,CAC7B,gCAAwB,EAGxB,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAC7C,CAAC,IAAI,CAAC;QACP,MAAM,uBAAuB,GAAG,MAAM,IAAA,uBAAK,EAAC,eAAe,CAAC,CAAC;QAE7D,IAAI;YACF,YAAY,GAAG,aAAa,CAAC,MAAM,uBAAuB,CAAC,IAAI,EAAE,CAAC,CAAC;SACpE;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,IAAI,4CAAkB,CAC1B,IAAI,MAAM,CAAC,QAAQ,EAAE,mCAClB,GAA2B,CAAC,OAC/B,EAAE,CACH,CAAC;SACH;QAGD,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAC3B,mBAAmB,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAC9C,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAC7B,CAAC;QAEF,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AAtCD,sCAsCC"}
@@ -1,40 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const solid_client_authn_core_1 = require("@inrupt/solid-client-authn-core");
4
- function hasIssuer(options) {
5
- return typeof options.oidcIssuer === "string";
6
- }
7
- function hasRedirectUrl(options) {
8
- return typeof options.redirectUrl === "string";
9
- }
10
- class OidcLoginHandler {
11
- constructor(storageUtility, oidcHandler, issuerConfigFetcher, clientRegistrar) {
12
- this.storageUtility = storageUtility;
13
- this.oidcHandler = oidcHandler;
14
- this.issuerConfigFetcher = issuerConfigFetcher;
15
- this.clientRegistrar = clientRegistrar;
16
- }
17
- async canHandle(options) {
18
- return hasIssuer(options) && hasRedirectUrl(options);
19
- }
20
- async handle(options) {
21
- if (!hasIssuer(options)) {
22
- throw new solid_client_authn_core_1.ConfigurationError(`OidcLoginHandler requires an OIDC issuer: missing property 'oidcIssuer' in ${JSON.stringify(options)}`);
23
- }
24
- if (!hasRedirectUrl(options)) {
25
- throw new solid_client_authn_core_1.ConfigurationError(`OidcLoginHandler requires a redirect URL: missing property 'redirectUrl' in ${JSON.stringify(options)}`);
26
- }
27
- const issuerConfig = await this.issuerConfigFetcher.fetchConfig(options.oidcIssuer);
28
- const clientRegistration = await (0, solid_client_authn_core_1.handleRegistration)(options, issuerConfig, this.storageUtility, this.clientRegistrar);
29
- const OidcOptions = {
30
- issuer: issuerConfig.issuer,
31
- dpop: options.tokenType.toLowerCase() === "dpop",
32
- ...options,
33
- issuerConfiguration: issuerConfig,
34
- client: clientRegistration,
35
- };
36
- return this.oidcHandler.handle(OidcOptions);
37
- }
38
- }
39
- exports.default = OidcLoginHandler;
40
- //# sourceMappingURL=OidcLoginHandler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OidcLoginHandler.js","sourceRoot":"","sources":["../../../src/login/oidc/OidcLoginHandler.ts"],"names":[],"mappings":";;AA8BA,6EAYyC;AAEzC,SAAS,SAAS,CAChB,OAAsB;IAEtB,OAAO,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,CAAC;AAChD,CAAC;AAED,SAAS,cAAc,CACrB,OAAsB;IAEtB,OAAO,OAAO,OAAO,CAAC,WAAW,KAAK,QAAQ,CAAC;AACjD,CAAC;AAKD,MAAqB,gBAAgB;IACnC,YACU,cAA+B,EAC/B,WAAyB,EACzB,mBAAyC,EACzC,eAAiC;QAHjC,mBAAc,GAAd,cAAc,CAAiB;QAC/B,gBAAW,GAAX,WAAW,CAAc;QACzB,wBAAmB,GAAnB,mBAAmB,CAAsB;QACzC,oBAAe,GAAf,eAAe,CAAkB;IACxC,CAAC;IAEJ,KAAK,CAAC,SAAS,CAAC,OAAsB;QACpC,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAsB;QACjC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACvB,MAAM,IAAI,4CAAkB,CAC1B,8EAA8E,IAAI,CAAC,SAAS,CAC1F,OAAO,CACR,EAAE,CACJ,CAAC;SACH;QACD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;YAC5B,MAAM,IAAI,4CAAkB,CAC1B,+EAA+E,IAAI,CAAC,SAAS,CAC3F,OAAO,CACR,EAAE,CACJ,CAAC;SACH;QAGD,MAAM,YAAY,GAChB,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAEjE,MAAM,kBAAkB,GAAG,MAAM,IAAA,4CAAkB,EACjD,OAAO,EACP,YAAY,EACZ,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,eAAe,CACrB,CAAC;QAGF,MAAM,WAAW,GAAiB;YAMhC,MAAM,EAAE,YAAY,CAAC,MAAM;YAE3B,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,MAAM;YAChD,GAAG,OAAO;YACV,mBAAmB,EAAE,YAAY;YACjC,MAAM,EAAE,kBAAkB;SAC3B,CAAC;QAGF,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;CACF;AAzDD,mCAyDC"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- class Redirector {
4
- redirect(redirectUrl, options) {
5
- if (options && options.handleRedirect) {
6
- options.handleRedirect(redirectUrl);
7
- }
8
- else if (options && options.redirectByReplacingState) {
9
- window.history.replaceState({}, "", redirectUrl);
10
- }
11
- else {
12
- window.location.href = redirectUrl;
13
- }
14
- }
15
- }
16
- exports.default = Redirector;
17
- //# sourceMappingURL=Redirector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Redirector.js","sourceRoot":"","sources":["../../../src/login/oidc/Redirector.ts"],"names":[],"mappings":";;AAkCA,MAAqB,UAAU;IAC7B,QAAQ,CAAC,WAAmB,EAAE,OAA4B;QACxD,IAAI,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE;YACrC,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;SACrC;aAAM,IAAI,OAAO,IAAI,OAAO,CAAC,wBAAwB,EAAE;YACtD,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;SAClD;aAAM;YACL,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC;SACpC;IACH,CAAC;CACF;AAVD,6BAUC"}
@@ -1,2 +0,0 @@
1
- import { IOidcOptions } from "@inrupt/solid-client-authn-core";
2
- export declare const standardOidcOptions: IOidcOptions;
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.standardOidcOptions = void 0;
4
- const globals_1 = require("@jest/globals");
5
- exports.standardOidcOptions = {
6
- sessionId: "mySession",
7
- issuer: "https://example.com",
8
- dpop: true,
9
- redirectUrl: "https://app.example.com",
10
- handleRedirect: globals_1.jest.fn((url) => url),
11
- issuerConfiguration: {
12
- issuer: "https://example.com",
13
- authorizationEndpoint: "https://example.com/auth",
14
- tokenEndpoint: "https://example.com/token",
15
- jwksUri: "https://example.com/jwks",
16
- subjectTypesSupported: [],
17
- claimsSupported: [],
18
- scopesSupported: ["openid"],
19
- },
20
- client: {
21
- clientId: "coolApp",
22
- clientType: "dynamic",
23
- },
24
- };
25
- //# sourceMappingURL=IOidcOptions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IOidcOptions.js","sourceRoot":"","sources":["../../../../src/login/oidc/__mocks__/IOidcOptions.ts"],"names":[],"mappings":";;;AAsBA,2CAAqC;AAExB,QAAA,mBAAmB,GAAiB;IAC/C,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE,qBAAqB;IAC7B,IAAI,EAAE,IAAI;IACV,WAAW,EAAE,yBAAyB;IACtC,cAAc,EAAE,cAAI,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC;IAErC,mBAAmB,EAAE;QACnB,MAAM,EAAE,qBAAqB;QAC7B,qBAAqB,EAAE,0BAA0B;QACjD,aAAa,EAAE,2BAA2B;QAC1C,OAAO,EAAE,0BAA0B;QACnC,qBAAqB,EAAE,EAAE;QACzB,eAAe,EAAE,EAAE;QACnB,eAAe,EAAE,CAAC,QAAQ,CAAC;KAC5B;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,SAAS;QACnB,UAAU,EAAE,SAAS;KACtB;CACF,CAAC"}