@thunderid/browser 0.0.4 → 0.0.5

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 (111) hide show
  1. package/dist/FetchHttpClient.d.ts +1 -0
  2. package/dist/FetchHttpClient.d.ts.map +1 -1
  3. package/dist/ThunderIDBrowserClient.d.ts +66 -10
  4. package/dist/ThunderIDBrowserClient.d.ts.map +1 -1
  5. package/dist/cjs/index.js +1333 -3001
  6. package/dist/cjs/index.js.map +1 -1
  7. package/dist/{__legacy__/constants/hooks.d.ts → constants/Hooks.d.ts} +5 -1
  8. package/dist/constants/Hooks.d.ts.map +1 -0
  9. package/dist/{__legacy__/constants/session-management.d.ts → constants/SPAConstants.d.ts} +11 -2
  10. package/dist/constants/SPAConstants.d.ts.map +1 -0
  11. package/dist/index.d.ts +23 -18
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +1568 -3248
  14. package/dist/index.js.map +1 -1
  15. package/dist/models/BrowserConfig.d.ts +46 -0
  16. package/dist/models/BrowserConfig.d.ts.map +1 -0
  17. package/dist/{__legacy__/models/storage.d.ts → models/BrowserStorage.d.ts} +7 -16
  18. package/dist/models/BrowserStorage.d.ts.map +1 -0
  19. package/dist/{__legacy__/models/sign-in.d.ts → models/SignInConfig.d.ts} +9 -1
  20. package/dist/models/SignInConfig.d.ts.map +1 -0
  21. package/dist/{__legacy__/models/sign-out-error.d.ts → models/SignOutError.d.ts} +7 -1
  22. package/dist/models/SignOutError.d.ts.map +1 -0
  23. package/dist/{__legacy__/models/request-custom-grant.d.ts → models/TokenExchangeConfig.d.ts} +8 -3
  24. package/dist/models/TokenExchangeConfig.d.ts.map +1 -0
  25. package/dist/models/config.d.ts +1 -1
  26. package/dist/models/config.d.ts.map +1 -1
  27. package/dist/{__legacy__/stores/session-store.d.ts → stores/LocalStore.d.ts} +6 -2
  28. package/dist/stores/LocalStore.d.ts.map +1 -0
  29. package/dist/{__legacy__/stores/memory-store.d.ts → stores/MemoryStore.d.ts} +6 -2
  30. package/dist/stores/MemoryStore.d.ts.map +1 -0
  31. package/dist/{__legacy__/stores/local-store.d.ts → stores/SessionStore.d.ts} +6 -2
  32. package/dist/stores/SessionStore.d.ts.map +1 -0
  33. package/dist/utils/AuthenticationHelper.d.ts +192 -0
  34. package/dist/utils/AuthenticationHelper.d.ts.map +1 -0
  35. package/dist/utils/SPACryptoUtils.d.ts +68 -0
  36. package/dist/utils/SPACryptoUtils.d.ts.map +1 -0
  37. package/dist/utils/SPAHelper.d.ts +50 -0
  38. package/dist/utils/SPAHelper.d.ts.map +1 -0
  39. package/dist/utils/SPAUtils.d.ts +145 -0
  40. package/dist/utils/SPAUtils.d.ts.map +1 -0
  41. package/dist/{__legacy__/models/session-management-helper.d.ts → utils/SessionManagementHelper.d.ts} +21 -2
  42. package/dist/utils/SessionManagementHelper.d.ts.map +1 -0
  43. package/dist/utils/http.d.ts +12 -25
  44. package/dist/utils/http.d.ts.map +1 -1
  45. package/package.json +4 -4
  46. package/dist/__legacy__/client.d.ts +0 -767
  47. package/dist/__legacy__/client.d.ts.map +0 -1
  48. package/dist/__legacy__/clients/index.d.ts +0 -20
  49. package/dist/__legacy__/clients/index.d.ts.map +0 -1
  50. package/dist/__legacy__/clients/main-thread-client.d.ts +0 -23
  51. package/dist/__legacy__/clients/main-thread-client.d.ts.map +0 -1
  52. package/dist/__legacy__/clients/web-worker-client.d.ts +0 -22
  53. package/dist/__legacy__/clients/web-worker-client.d.ts.map +0 -1
  54. package/dist/__legacy__/constants/errors.d.ts +0 -19
  55. package/dist/__legacy__/constants/errors.d.ts.map +0 -1
  56. package/dist/__legacy__/constants/hooks.d.ts.map +0 -1
  57. package/dist/__legacy__/constants/index.d.ts +0 -24
  58. package/dist/__legacy__/constants/index.d.ts.map +0 -1
  59. package/dist/__legacy__/constants/messages-types.d.ts +0 -52
  60. package/dist/__legacy__/constants/messages-types.d.ts.map +0 -1
  61. package/dist/__legacy__/constants/parameters.d.ts +0 -22
  62. package/dist/__legacy__/constants/parameters.d.ts.map +0 -1
  63. package/dist/__legacy__/constants/session-management.d.ts.map +0 -1
  64. package/dist/__legacy__/constants/storage.d.ts +0 -19
  65. package/dist/__legacy__/constants/storage.d.ts.map +0 -1
  66. package/dist/__legacy__/helpers/authentication-helper.d.ts +0 -59
  67. package/dist/__legacy__/helpers/authentication-helper.d.ts.map +0 -1
  68. package/dist/__legacy__/helpers/index.d.ts +0 -21
  69. package/dist/__legacy__/helpers/index.d.ts.map +0 -1
  70. package/dist/__legacy__/helpers/session-management-helper.d.ts +0 -21
  71. package/dist/__legacy__/helpers/session-management-helper.d.ts.map +0 -1
  72. package/dist/__legacy__/helpers/spa-helper.d.ts +0 -30
  73. package/dist/__legacy__/helpers/spa-helper.d.ts.map +0 -1
  74. package/dist/__legacy__/models/client-config.d.ts +0 -55
  75. package/dist/__legacy__/models/client-config.d.ts.map +0 -1
  76. package/dist/__legacy__/models/client.d.ts +0 -85
  77. package/dist/__legacy__/models/client.d.ts.map +0 -1
  78. package/dist/__legacy__/models/http-client.d.ts +0 -30
  79. package/dist/__legacy__/models/http-client.d.ts.map +0 -1
  80. package/dist/__legacy__/models/index.d.ts +0 -27
  81. package/dist/__legacy__/models/index.d.ts.map +0 -1
  82. package/dist/__legacy__/models/message.d.ts +0 -47
  83. package/dist/__legacy__/models/message.d.ts.map +0 -1
  84. package/dist/__legacy__/models/request-custom-grant.d.ts.map +0 -1
  85. package/dist/__legacy__/models/session-management-helper.d.ts.map +0 -1
  86. package/dist/__legacy__/models/sign-in.d.ts.map +0 -1
  87. package/dist/__legacy__/models/sign-out-error.d.ts.map +0 -1
  88. package/dist/__legacy__/models/storage.d.ts.map +0 -1
  89. package/dist/__legacy__/models/web-worker.d.ts +0 -57
  90. package/dist/__legacy__/models/web-worker.d.ts.map +0 -1
  91. package/dist/__legacy__/stores/index.d.ts +0 -21
  92. package/dist/__legacy__/stores/index.d.ts.map +0 -1
  93. package/dist/__legacy__/stores/local-store.d.ts.map +0 -1
  94. package/dist/__legacy__/stores/memory-store.d.ts.map +0 -1
  95. package/dist/__legacy__/stores/session-store.d.ts.map +0 -1
  96. package/dist/__legacy__/utils/crypto-utils.d.ts +0 -32
  97. package/dist/__legacy__/utils/crypto-utils.d.ts.map +0 -1
  98. package/dist/__legacy__/utils/index.d.ts +0 -20
  99. package/dist/__legacy__/utils/index.d.ts.map +0 -1
  100. package/dist/__legacy__/utils/message-utils.d.ts +0 -38
  101. package/dist/__legacy__/utils/message-utils.d.ts.map +0 -1
  102. package/dist/__legacy__/utils/spa-utils.d.ts +0 -108
  103. package/dist/__legacy__/utils/spa-utils.d.ts.map +0 -1
  104. package/dist/__legacy__/worker/index.d.ts +0 -20
  105. package/dist/__legacy__/worker/index.d.ts.map +0 -1
  106. package/dist/__legacy__/worker/worker-core.d.ts +0 -22
  107. package/dist/__legacy__/worker/worker-core.d.ts.map +0 -1
  108. package/dist/__legacy__/worker/worker-receiver.d.ts +0 -22
  109. package/dist/__legacy__/worker/worker-receiver.d.ts.map +0 -1
  110. package/dist/web.worker.d.ts +0 -20
  111. package/dist/web.worker.d.ts.map +0 -1
@@ -30,4 +30,5 @@ export declare class FetchHttpClient extends HttpClient {
30
30
  static destroyInstance(instanceId?: number): void;
31
31
  protected transport<T = any>(config: HttpRequestConfig): Promise<HttpResponse<T>>;
32
32
  }
33
+ export default FetchHttpClient;
33
34
  //# sourceMappingURL=FetchHttpClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FetchHttpClient.d.ts","sourceRoot":"","sources":["../src/FetchHttpClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,UAAU,EAAa,iBAAiB,EAAE,YAAY,EAAC,MAAM,uBAAuB,CAAC;AAE7F;;;;;;;GAOG;AACH,qBAAa,eAAgB,SAAQ,UAAU;IAC7C,OAAO,CAAC,MAAM,CAAC,SAAS,CAAoE;IAE5F,MAAM,CAAC,WAAW,CAChB,UAAU,SAAI,EACd,gBAAgB,UAAO,EACvB,WAAW,GAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAA0C,GAClG,eAAe;IAOlB,MAAM,CAAC,eAAe,CAAC,UAAU,SAAI,GAAG,IAAI;cAI5B,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;CAoFxF"}
1
+ {"version":3,"file":"FetchHttpClient.d.ts","sourceRoot":"","sources":["../src/FetchHttpClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,UAAU,EAAa,iBAAiB,EAAE,YAAY,EAAC,MAAM,uBAAuB,CAAC;AAE7F;;;;;;;GAOG;AACH,qBAAa,eAAgB,SAAQ,UAAU;IAC7C,OAAO,CAAC,MAAM,CAAC,SAAS,CAAoE;IAE5F,MAAM,CAAC,WAAW,CAChB,UAAU,SAAI,EACd,gBAAgB,UAAO,EACvB,WAAW,GAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAA0C,GAClG,eAAe;IAOlB,MAAM,CAAC,eAAe,CAAC,UAAU,SAAI,GAAG,IAAI;cAI5B,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;CAoFxF;AAED,eAAe,eAAe,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com).
2
+ * Copyright (c) 2026, WSO2 LLC. (https://www.wso2.com).
3
3
  *
4
4
  * WSO2 LLC. licenses this file to you under the Apache License,
5
5
  * Version 2.0 (the "License"); you may not use this file except
@@ -15,15 +15,71 @@
15
15
  * specific language governing permissions and limitations
16
16
  * under the License.
17
17
  */
18
- import { ThunderIDJavaScriptClient } from '@thunderid/javascript';
19
- import { ThunderIDBrowserConfig } from './models/config';
20
- /**
21
- * Base class for implementing ThunderID in browser-based applications.
22
- * This class provides the core functionality for managing user authentication and sessions.
23
- *
24
- * @typeParam T - Configuration type that extends ThunderIDBrowserConfig.
25
- */
26
- declare abstract class ThunderIDBrowserClient<T = ThunderIDBrowserConfig> extends ThunderIDJavaScriptClient<T> {
18
+ import { ThunderIDJavaScriptClient, User, IsomorphicCrypto, IdToken, OIDCEndpoints, Storage, HttpRequestConfig, HttpResponse } from '@thunderid/javascript';
19
+ import FetchHttpClient from './FetchHttpClient';
20
+ import { BrowserAuthConfig } from './models/BrowserConfig';
21
+ import SignInConfig from './models/SignInConfig';
22
+ import { SPATokenExchangeConfig } from './models/TokenExchangeConfig';
23
+ declare class ThunderIDBrowserClient<T = BrowserAuthConfig> extends ThunderIDJavaScriptClient<T> {
24
+ private _browserInstanceId;
25
+ private _httpClient;
26
+ private _spaHelper;
27
+ private _sessionManagementHelper;
28
+ private _authHelper;
29
+ private _storage;
30
+ private _getSignOutURLFromSessionStorage;
31
+ private _isHttpHandlerEnabled;
32
+ private _httpErrorCallback;
33
+ private _httpFinishCallback;
34
+ private _onSignInCallback;
35
+ private _onSignOutCallback;
36
+ private _onSignOutFailedCallback;
37
+ private _onEndUserSession;
38
+ private _onInitialize;
39
+ private _onCustomGrant;
40
+ private _initialized;
41
+ private _startedInitialize;
42
+ constructor(instanceId?: number);
43
+ initialize(config: T, storage?: Storage): Promise<boolean>;
44
+ isInitialized(): Promise<boolean>;
45
+ private _validateMethod;
46
+ isLoading(): boolean;
47
+ signIn(config?: SignInConfig, authorizationCode?: string, sessionState?: string, state?: string, tokenRequestConfig?: {
48
+ params: Record<string, unknown>;
49
+ }): Promise<User | undefined>;
50
+ private _signInInternal;
51
+ private _exchangeCodeForTokens;
52
+ signInSilently(additionalParams?: Record<string, string | boolean>, tokenRequestConfig?: {
53
+ params: Record<string, unknown>;
54
+ }): Promise<User | boolean | undefined>;
55
+ signOut(_options?: any, sessionIdOrAfterSignOut?: string | ((url: string) => void), afterSignOutParam?: (url: string) => void): Promise<string>;
56
+ httpRequest(requestConfig: HttpRequestConfig): Promise<HttpResponse | undefined>;
57
+ httpRequestAll(configs: HttpRequestConfig[]): Promise<HttpResponse[] | undefined>;
58
+ getUser(userId?: string): Promise<User | undefined>;
59
+ getAccessToken(sessionId?: string): Promise<string>;
60
+ getDecodedIdToken(userId?: string, idToken?: string): Promise<IdToken | undefined>;
61
+ getIdToken(userId?: string): Promise<string | undefined>;
62
+ getOpenIDProviderEndpoints(): Promise<Partial<OIDCEndpoints>>;
63
+ getCrypto(): Promise<IsomorphicCrypto | undefined>;
64
+ getHttpClient(): FetchHttpClient;
65
+ isSignedIn(userId?: string): Promise<boolean | undefined>;
66
+ protected notifySignIn(user: User): void;
67
+ isSessionActive(): Promise<boolean | undefined>;
68
+ refreshAccessToken(userId?: string): Promise<User | undefined>;
69
+ revokeAccessToken(userId?: string): Promise<boolean | undefined>;
70
+ exchangeToken(config: SPATokenExchangeConfig): Promise<Response | User>;
71
+ reInitialize(config: Partial<T>): Promise<boolean>;
72
+ startAutoRefreshToken(): Promise<void>;
73
+ enableHttpHandler(): Promise<boolean | undefined>;
74
+ disableHttpHandler(): Promise<boolean | undefined>;
75
+ decodeJwtToken<R = Record<string, unknown>>(token?: string): Promise<R | undefined>;
76
+ on(hook: string, callback: (response?: any) => void | Promise<void>, id?: string): Promise<void>;
77
+ private _checkSession;
78
+ private _shouldStopAuthn;
79
+ private _enableRetrievingSignOutURLFromSession;
80
+ private _constructSilentSignInUrl;
81
+ getInstanceId(): number;
82
+ static clearSession(): Promise<void>;
27
83
  }
28
84
  export default ThunderIDBrowserClient;
29
85
  //# sourceMappingURL=ThunderIDBrowserClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThunderIDBrowserClient.d.ts","sourceRoot":"","sources":["../src/ThunderIDBrowserClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,yBAAyB,EAAC,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAC,sBAAsB,EAAC,MAAM,iBAAiB,CAAC;AAEvD;;;;;GAKG;AACH,uBAAe,sBAAsB,CAAC,CAAC,GAAG,sBAAsB,CAAE,SAAQ,yBAAyB,CAAC,CAAC,CAAC;CAAG;AAEzG,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"ThunderIDBrowserClient.d.ts","sourceRoot":"","sources":["../src/ThunderIDBrowserClient.ts"],"names":[],"mappings":"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"}