@tern-secure/auth 1.1.0-canary.v20251030165007 → 1.1.0-canary.v20251125170702

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 (276) hide show
  1. package/dist/492_ternsecure_f36de9_1.1.0-canary.v20251125170702.js +1 -0
  2. package/dist/687_ternsecure_f36de9_1.1.0-canary.v20251125170702.js +1 -0
  3. package/dist/68_ternsecure_f36de9_1.1.0-canary.v20251125170702.js +1 -0
  4. package/dist/framework_ternsecure_f36de9_1.1.0-canary.v20251125170702.js +1 -0
  5. package/dist/signin_ternsecure_f36de9_1.1.0-canary.v20251125170702.css +2 -0
  6. package/dist/signin_ternsecure_f36de9_1.1.0-canary.v20251125170702.js +1 -0
  7. package/dist/signup_ternsecure_f36de9_1.1.0-canary.v20251125170702.css +2 -0
  8. package/dist/signup_ternsecure_f36de9_1.1.0-canary.v20251125170702.js +1 -0
  9. package/dist/ternsecure.browser.js +30 -0
  10. package/dist/ternsecure.css +2 -0
  11. package/dist/ternsecure.js +17 -0
  12. package/dist/ternsecure.mjs +17 -0
  13. package/dist/types/auth/AuthCookieManager.d.ts +17 -6
  14. package/dist/types/auth/cookies/authTime_cookie.d.ts +6 -0
  15. package/dist/types/index.browser.d.ts +1 -0
  16. package/dist/types/index.d.ts +3 -10
  17. package/dist/types/instance/c_coreApiClient.d.ts +2 -2
  18. package/dist/types/instance/constants.d.ts +3 -0
  19. package/dist/types/instance/coreApiClient.d.ts +0 -1
  20. package/dist/types/instance/events.d.ts +0 -1
  21. package/dist/types/instance/{TernAuth.d.ts → ternsecure.d.ts} +31 -19
  22. package/dist/types/lib/utils.d.ts +2 -0
  23. package/dist/types/resources/Base.d.ts +16 -3
  24. package/dist/types/resources/Error.d.ts +0 -1
  25. package/dist/types/resources/Session.d.ts +2 -2
  26. package/dist/types/resources/SignIn.d.ts +27 -10
  27. package/dist/types/resources/SignUp.d.ts +12 -10
  28. package/dist/types/resources/internal.d.ts +1 -2
  29. package/dist/types/ui/Renderer.d.ts +26 -0
  30. package/dist/types/ui/common/ProviderInitialIcon.d.ts +6 -0
  31. package/dist/types/ui/common/VerificationCodeCard.d.ts +12 -0
  32. package/dist/types/ui/common/VerificationLinkCard.d.ts +7 -0
  33. package/dist/types/ui/common/constants.d.ts +8 -0
  34. package/dist/types/ui/common/index.d.ts +3 -0
  35. package/dist/types/ui/components/sign-in/ResetPassword.d.ts +1 -0
  36. package/dist/types/ui/components/sign-in/ResetPasswordSuccess.d.ts +1 -0
  37. package/dist/types/ui/components/sign-in/SignIn.d.ts +4 -0
  38. package/dist/types/ui/components/sign-in/SignInEmailLinkCard.d.ts +2 -0
  39. package/dist/types/ui/components/sign-in/SignInFactorOne.d.ts +1 -0
  40. package/dist/types/ui/components/sign-in/SignInFactorOneCodeForm.d.ts +7 -0
  41. package/dist/types/ui/components/sign-in/SignInFactorOnePasswordCard.d.ts +6 -0
  42. package/dist/types/ui/components/sign-in/SignInFactorOnePhoneCodeCard.d.ts +7 -0
  43. package/dist/types/ui/components/sign-in/SignInPassword.d.ts +8 -0
  44. package/dist/types/ui/components/sign-in/SignInSocialButtons.d.ts +1 -0
  45. package/dist/types/ui/components/sign-in/SignInStart.d.ts +7 -0
  46. package/dist/types/ui/components/sign-in/SignInVerifyEmail.d.ts +1 -0
  47. package/dist/types/ui/components/sign-in/index.d.ts +4 -0
  48. package/dist/types/ui/components/sign-up/SignUp.d.ts +8 -0
  49. package/dist/types/ui/components/sign-up/SignUpEmailLinkCard.d.ts +2 -0
  50. package/dist/types/ui/components/sign-up/SignUpSocialButtons.d.ts +1 -0
  51. package/dist/types/ui/components/sign-up/SignUpStart.d.ts +1 -0
  52. package/dist/types/ui/components/sign-up/SignUpVerifyEmail.d.ts +1 -0
  53. package/dist/types/ui/components/sign-up/index.d.ts +2 -0
  54. package/dist/types/ui/components/sign-up/util.d.ts +14 -0
  55. package/dist/types/ui/components/user-button/index.d.ts +1 -0
  56. package/dist/types/ui/components/user-button/userButton.d.ts +1 -0
  57. package/dist/types/ui/ctx/TernAuthContext.d.ts +4 -0
  58. package/dist/types/ui/ctx/TernAuthUIComponentCtx.d.ts +8 -0
  59. package/dist/types/ui/ctx/TernSecureContextWrapper.d.ts +8 -0
  60. package/dist/types/ui/ctx/TernSecureOptions.d.ts +10 -0
  61. package/dist/types/ui/ctx/components/SignIn.d.ts +21 -0
  62. package/dist/types/ui/ctx/components/SignUp.d.ts +14 -0
  63. package/dist/types/ui/ctx/components/UserButton.d.ts +10 -0
  64. package/dist/types/ui/ctx/components/index.d.ts +3 -0
  65. package/dist/types/ui/ctx/index.d.ts +4 -0
  66. package/dist/types/ui/ctx/utils.d.ts +3 -0
  67. package/dist/types/ui/customize/FieldControl.d.ts +15 -0
  68. package/dist/types/ui/customize/FieldLabelControl.d.ts +11 -0
  69. package/dist/types/ui/customize/Form.d.ts +36 -0
  70. package/dist/types/ui/elements/CodeControl.d.ts +47 -0
  71. package/dist/types/ui/elements/ErrorCard.d.ts +10 -0
  72. package/dist/types/ui/elements/LoadingCard.d.ts +1 -0
  73. package/dist/types/ui/elements/RouterLink.d.ts +42 -0
  74. package/dist/types/ui/elements/SocialButtons.d.ts +6 -0
  75. package/dist/types/ui/elements/TimerButton.d.ts +9 -0
  76. package/dist/types/ui/elements/alert.d.ts +8 -0
  77. package/dist/types/ui/elements/avatar.d.ts +6 -0
  78. package/dist/types/ui/elements/button.d.ts +10 -0
  79. package/dist/types/ui/elements/card.d.ts +9 -0
  80. package/dist/types/ui/elements/ctx/CardStateCtx.d.ts +26 -0
  81. package/dist/types/ui/elements/ctx/index.d.ts +1 -0
  82. package/dist/types/ui/elements/field.d.ts +24 -0
  83. package/dist/types/ui/elements/index.d.ts +16 -0
  84. package/dist/types/ui/elements/input.d.ts +3 -0
  85. package/dist/types/ui/elements/label.d.ts +4 -0
  86. package/dist/types/ui/elements/separator.d.ts +4 -0
  87. package/dist/types/ui/hooks/index.d.ts +6 -0
  88. package/dist/types/ui/hooks/useEmailLink.d.ts +11 -0
  89. package/dist/types/ui/hooks/useFetch.d.ts +44 -0
  90. package/dist/types/ui/hooks/useLoadingStatus.d.ts +14 -0
  91. package/dist/types/ui/hooks/useNavigateToFlowStart.d.ts +3 -0
  92. package/dist/types/ui/hooks/useSafeState.d.ts +9 -0
  93. package/dist/types/ui/hooks/useWindowEventListener.d.ts +3 -0
  94. package/dist/types/ui/icons/index.d.ts +13 -0
  95. package/dist/types/ui/lazyLoading/common.d.ts +2 -0
  96. package/dist/types/ui/lazyLoading/components.d.ts +11 -0
  97. package/dist/types/ui/lazyLoading/providersCtx.d.ts +26 -0
  98. package/dist/types/ui/portal/index.d.ts +12 -0
  99. package/dist/types/ui/router/BaseRouter.d.ts +21 -0
  100. package/dist/types/ui/router/HashRouter.d.ts +8 -0
  101. package/dist/types/ui/router/PathRouter.d.ts +8 -0
  102. package/dist/types/ui/router/Route.d.ts +19 -0
  103. package/dist/types/ui/router/RouterCtx.d.ts +32 -0
  104. package/dist/types/ui/router/Switch.d.ts +4 -0
  105. package/dist/types/ui/router/index.d.ts +7 -0
  106. package/dist/types/ui/router/newPaths.d.ts +1 -0
  107. package/dist/types/ui/router/pathToRegexp.d.ts +127 -0
  108. package/dist/types/ui/types.d.ts +18 -0
  109. package/dist/types/ui/utils/form.d.ts +19 -0
  110. package/dist/types/ui/utils/index.d.ts +1 -0
  111. package/dist/types/ui/utils/sleep.d.ts +1 -0
  112. package/dist/types/utils/construct.d.ts +3 -1
  113. package/dist/types/utils/index.d.ts +1 -1
  114. package/dist/types/utils/normalizeRoutingOptions.d.ts +6 -0
  115. package/dist/types/utils/path.d.ts +0 -1
  116. package/dist/types/utils/querystring.d.ts +0 -1
  117. package/dist/types/utils/redirectUrls.d.ts +4 -9
  118. package/dist/types/utils/windowNavigate.d.ts +0 -1
  119. package/dist/ui-common_ternsecure_f36de9_1.1.0-canary.v20251125170702.js +1 -0
  120. package/dist/userbutton_ternsecure_f36de9_1.1.0-canary.v20251125170702.js +1 -0
  121. package/dist/vendors_ternsecure_f36de9_1.1.0-canary.v20251125170702.js +1 -0
  122. package/package.json +64 -25
  123. package/dist/cjs/auth/AuthCookieManager.js +0 -100
  124. package/dist/cjs/auth/AuthCookieManager.js.map +0 -1
  125. package/dist/cjs/auth/cookies/session.js +0 -83
  126. package/dist/cjs/auth/cookies/session.js.map +0 -1
  127. package/dist/cjs/auth/request.js +0 -159
  128. package/dist/cjs/auth/request.js.map +0 -1
  129. package/dist/cjs/global.d.js +0 -2
  130. package/dist/cjs/global.d.js.map +0 -1
  131. package/dist/cjs/index.js +0 -47
  132. package/dist/cjs/index.js.map +0 -1
  133. package/dist/cjs/instance/TernAuth.js +0 -562
  134. package/dist/cjs/instance/TernAuth.js.map +0 -1
  135. package/dist/cjs/instance/TernAuthServer.js +0 -95
  136. package/dist/cjs/instance/TernAuthServer.js.map +0 -1
  137. package/dist/cjs/instance/c_coreApiClient.js +0 -264
  138. package/dist/cjs/instance/c_coreApiClient.js.map +0 -1
  139. package/dist/cjs/instance/coreApiClient.js +0 -255
  140. package/dist/cjs/instance/coreApiClient.js.map +0 -1
  141. package/dist/cjs/instance/events.js +0 -39
  142. package/dist/cjs/instance/events.js.map +0 -1
  143. package/dist/cjs/instance/jwtClient.js +0 -72
  144. package/dist/cjs/instance/jwtClient.js.map +0 -1
  145. package/dist/cjs/resources/Base.js +0 -137
  146. package/dist/cjs/resources/Base.js.map +0 -1
  147. package/dist/cjs/resources/Error.js +0 -31
  148. package/dist/cjs/resources/Error.js.map +0 -1
  149. package/dist/cjs/resources/Session.js +0 -105
  150. package/dist/cjs/resources/Session.js.map +0 -1
  151. package/dist/cjs/resources/SignIn.js +0 -256
  152. package/dist/cjs/resources/SignIn.js.map +0 -1
  153. package/dist/cjs/resources/SignUp.js +0 -72
  154. package/dist/cjs/resources/SignUp.js.map +0 -1
  155. package/dist/cjs/resources/Token.js +0 -32
  156. package/dist/cjs/resources/Token.js.map +0 -1
  157. package/dist/cjs/resources/UserData.js +0 -43
  158. package/dist/cjs/resources/UserData.js.map +0 -1
  159. package/dist/cjs/resources/cookie.js +0 -154
  160. package/dist/cjs/resources/cookie.js.map +0 -1
  161. package/dist/cjs/resources/index.js +0 -23
  162. package/dist/cjs/resources/index.js.map +0 -1
  163. package/dist/cjs/resources/internal.js +0 -35
  164. package/dist/cjs/resources/internal.js.map +0 -1
  165. package/dist/cjs/utils/construct.js +0 -253
  166. package/dist/cjs/utils/construct.js.map +0 -1
  167. package/dist/cjs/utils/index.js +0 -29
  168. package/dist/cjs/utils/index.js.map +0 -1
  169. package/dist/cjs/utils/jwt.js +0 -46
  170. package/dist/cjs/utils/jwt.js.map +0 -1
  171. package/dist/cjs/utils/mapDecode.js +0 -33
  172. package/dist/cjs/utils/mapDecode.js.map +0 -1
  173. package/dist/cjs/utils/path.js +0 -33
  174. package/dist/cjs/utils/path.js.map +0 -1
  175. package/dist/cjs/utils/querystring.js +0 -70
  176. package/dist/cjs/utils/querystring.js.map +0 -1
  177. package/dist/cjs/utils/redirectUrls.js +0 -156
  178. package/dist/cjs/utils/redirectUrls.js.map +0 -1
  179. package/dist/cjs/utils/windowNavigate.js +0 -45
  180. package/dist/cjs/utils/windowNavigate.js.map +0 -1
  181. package/dist/esm/auth/AuthCookieManager.js +0 -76
  182. package/dist/esm/auth/AuthCookieManager.js.map +0 -1
  183. package/dist/esm/auth/cookies/session.js +0 -58
  184. package/dist/esm/auth/cookies/session.js.map +0 -1
  185. package/dist/esm/auth/request.js +0 -134
  186. package/dist/esm/auth/request.js.map +0 -1
  187. package/dist/esm/global.d.js +0 -1
  188. package/dist/esm/global.d.js.map +0 -1
  189. package/dist/esm/index.js +0 -16
  190. package/dist/esm/index.js.map +0 -1
  191. package/dist/esm/instance/TernAuth.js +0 -548
  192. package/dist/esm/instance/TernAuth.js.map +0 -1
  193. package/dist/esm/instance/TernAuthServer.js +0 -73
  194. package/dist/esm/instance/TernAuthServer.js.map +0 -1
  195. package/dist/esm/instance/c_coreApiClient.js +0 -236
  196. package/dist/esm/instance/c_coreApiClient.js.map +0 -1
  197. package/dist/esm/instance/coreApiClient.js +0 -226
  198. package/dist/esm/instance/coreApiClient.js.map +0 -1
  199. package/dist/esm/instance/events.js +0 -14
  200. package/dist/esm/instance/events.js.map +0 -1
  201. package/dist/esm/instance/jwtClient.js +0 -47
  202. package/dist/esm/instance/jwtClient.js.map +0 -1
  203. package/dist/esm/resources/Base.js +0 -113
  204. package/dist/esm/resources/Base.js.map +0 -1
  205. package/dist/esm/resources/Error.js +0 -9
  206. package/dist/esm/resources/Error.js.map +0 -1
  207. package/dist/esm/resources/Session.js +0 -81
  208. package/dist/esm/resources/Session.js.map +0 -1
  209. package/dist/esm/resources/SignIn.js +0 -240
  210. package/dist/esm/resources/SignIn.js.map +0 -1
  211. package/dist/esm/resources/SignUp.js +0 -48
  212. package/dist/esm/resources/SignUp.js.map +0 -1
  213. package/dist/esm/resources/Token.js +0 -8
  214. package/dist/esm/resources/Token.js.map +0 -1
  215. package/dist/esm/resources/UserData.js +0 -19
  216. package/dist/esm/resources/UserData.js.map +0 -1
  217. package/dist/esm/resources/cookie.js +0 -130
  218. package/dist/esm/resources/cookie.js.map +0 -1
  219. package/dist/esm/resources/index.js +0 -2
  220. package/dist/esm/resources/index.js.map +0 -1
  221. package/dist/esm/resources/internal.js +0 -8
  222. package/dist/esm/resources/internal.js.map +0 -1
  223. package/dist/esm/utils/construct.js +0 -215
  224. package/dist/esm/utils/construct.js.map +0 -1
  225. package/dist/esm/utils/index.js +0 -5
  226. package/dist/esm/utils/index.js.map +0 -1
  227. package/dist/esm/utils/jwt.js +0 -22
  228. package/dist/esm/utils/jwt.js.map +0 -1
  229. package/dist/esm/utils/mapDecode.js +0 -9
  230. package/dist/esm/utils/mapDecode.js.map +0 -1
  231. package/dist/esm/utils/path.js +0 -9
  232. package/dist/esm/utils/path.js.map +0 -1
  233. package/dist/esm/utils/querystring.js +0 -45
  234. package/dist/esm/utils/querystring.js.map +0 -1
  235. package/dist/esm/utils/redirectUrls.js +0 -132
  236. package/dist/esm/utils/redirectUrls.js.map +0 -1
  237. package/dist/esm/utils/windowNavigate.js +0 -19
  238. package/dist/esm/utils/windowNavigate.js.map +0 -1
  239. package/dist/types/auth/AuthCookieManager.d.ts.map +0 -1
  240. package/dist/types/auth/cookies/session.d.ts +0 -8
  241. package/dist/types/auth/cookies/session.d.ts.map +0 -1
  242. package/dist/types/auth/request.d.ts +0 -49
  243. package/dist/types/auth/request.d.ts.map +0 -1
  244. package/dist/types/index.d.ts.map +0 -1
  245. package/dist/types/instance/TernAuth.d.ts.map +0 -1
  246. package/dist/types/instance/TernAuthServer.d.ts +0 -32
  247. package/dist/types/instance/TernAuthServer.d.ts.map +0 -1
  248. package/dist/types/instance/c_coreApiClient.d.ts.map +0 -1
  249. package/dist/types/instance/coreApiClient.d.ts.map +0 -1
  250. package/dist/types/instance/events.d.ts.map +0 -1
  251. package/dist/types/instance/jwtClient.d.ts +0 -22
  252. package/dist/types/instance/jwtClient.d.ts.map +0 -1
  253. package/dist/types/resources/Base.d.ts.map +0 -1
  254. package/dist/types/resources/Error.d.ts.map +0 -1
  255. package/dist/types/resources/Session.d.ts.map +0 -1
  256. package/dist/types/resources/SignIn.d.ts.map +0 -1
  257. package/dist/types/resources/SignUp.d.ts.map +0 -1
  258. package/dist/types/resources/Token.d.ts +0 -5
  259. package/dist/types/resources/Token.d.ts.map +0 -1
  260. package/dist/types/resources/UserData.d.ts +0 -8
  261. package/dist/types/resources/UserData.d.ts.map +0 -1
  262. package/dist/types/resources/cookie.d.ts +0 -24
  263. package/dist/types/resources/cookie.d.ts.map +0 -1
  264. package/dist/types/resources/index.d.ts +0 -2
  265. package/dist/types/resources/index.d.ts.map +0 -1
  266. package/dist/types/resources/internal.d.ts.map +0 -1
  267. package/dist/types/utils/construct.d.ts.map +0 -1
  268. package/dist/types/utils/index.d.ts.map +0 -1
  269. package/dist/types/utils/jwt.d.ts +0 -12
  270. package/dist/types/utils/jwt.d.ts.map +0 -1
  271. package/dist/types/utils/mapDecode.d.ts +0 -4
  272. package/dist/types/utils/mapDecode.d.ts.map +0 -1
  273. package/dist/types/utils/path.d.ts.map +0 -1
  274. package/dist/types/utils/querystring.d.ts.map +0 -1
  275. package/dist/types/utils/redirectUrls.d.ts.map +0 -1
  276. package/dist/types/utils/windowNavigate.d.ts.map +0 -1
@@ -1,156 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var redirectUrls_exports = {};
20
- __export(redirectUrls_exports, {
21
- RedirectUrls: () => RedirectUrls
22
- });
23
- module.exports = __toCommonJS(redirectUrls_exports);
24
- var import_caseUtils = require("@tern-secure/shared/caseUtils");
25
- var import_object = require("@tern-secure/shared/object");
26
- var import_construct = require("./construct");
27
- class RedirectUrls {
28
- static keys = [
29
- "signInForceRedirectUrl",
30
- "signInFallbackRedirectUrl",
31
- "signUpForceRedirectUrl",
32
- "signUpFallbackRedirectUrl",
33
- "afterSignInUrl",
34
- "afterSignUpUrl",
35
- "redirectUrl"
36
- ];
37
- static preserved = ["redirectUrl"];
38
- options;
39
- fromOptions;
40
- fromProps;
41
- fromSearchParams;
42
- constructor(options, props = {}, searchParams = {}) {
43
- this.options = options;
44
- this.fromOptions = this.#parse(options || {});
45
- this.fromProps = this.#parse(props || {});
46
- this.fromSearchParams = this.#parseSearchParams(searchParams || {});
47
- }
48
- getAfterSignInUrl() {
49
- return this.#getRedirectUrl("signIn");
50
- }
51
- getAfterSignUpUrl() {
52
- return this.#getRedirectUrl("signUp");
53
- }
54
- getPreservedSearchParams() {
55
- return this.#toSearchParams(this.#flattenPreserved());
56
- }
57
- toSearchParams() {
58
- return this.#toSearchParams(this.#flattenAll());
59
- }
60
- #toSearchParams(obj) {
61
- const camelCased = Object.fromEntries(
62
- Object.entries(obj).map(([key, value]) => [(0, import_caseUtils.camelToSnake)(key), value])
63
- );
64
- return new URLSearchParams((0, import_object.removeUndefined)(camelCased));
65
- }
66
- #flattenPreserved() {
67
- return Object.fromEntries(
68
- Object.entries({ ...this.fromSearchParams }).filter(
69
- ([key]) => RedirectUrls.preserved.includes(key)
70
- )
71
- );
72
- }
73
- #flattenAll() {
74
- const signUpForceRedirectUrl = this.fromSearchParams.signUpForceRedirectUrl || this.fromProps.signUpForceRedirectUrl || this.fromOptions.signUpForceRedirectUrl;
75
- const signUpFallbackRedirectUrl = this.fromSearchParams.signUpFallbackRedirectUrl || this.fromProps.signUpFallbackRedirectUrl || this.fromOptions.signUpFallbackRedirectUrl;
76
- const signInForceRedirectUrl = this.fromSearchParams.signInForceRedirectUrl || this.fromProps.signInForceRedirectUrl || this.fromOptions.signInForceRedirectUrl;
77
- const signInFallbackRedirectUrl = this.fromSearchParams.signInFallbackRedirectUrl || this.fromProps.signInFallbackRedirectUrl || this.fromOptions.signInFallbackRedirectUrl;
78
- const afterSignInUrl = this.fromSearchParams.afterSignInUrl || this.fromProps.afterSignInUrl || this.fromOptions.afterSignInUrl;
79
- const afterSignUpUrl = this.fromSearchParams.afterSignUpUrl || this.fromProps.afterSignUpUrl || this.fromOptions.afterSignUpUrl;
80
- const redirectUrl = this.fromSearchParams.redirectUrl || this.fromProps.redirectUrl || this.fromOptions.redirectUrl;
81
- const res = {
82
- signUpForceRedirectUrl,
83
- signUpFallbackRedirectUrl,
84
- signInForceRedirectUrl,
85
- signInFallbackRedirectUrl,
86
- afterSignInUrl,
87
- afterSignUpUrl,
88
- redirectUrl
89
- };
90
- return res;
91
- }
92
- #getRedirectUrl(prefix) {
93
- const forceKey = `${prefix}ForceRedirectUrl`;
94
- const fallbackKey = `${prefix}FallbackRedirectUrl`;
95
- let newKeyInUse;
96
- let result;
97
- result = this.fromSearchParams[forceKey] || this.fromProps[forceKey] || this.fromOptions[forceKey];
98
- if (result) {
99
- newKeyInUse = forceKey;
100
- }
101
- result ||= this.fromSearchParams.redirectUrl;
102
- if (result) {
103
- newKeyInUse = "redirectUrl";
104
- }
105
- result ||= this.fromSearchParams[fallbackKey] || this.fromProps[fallbackKey] || this.fromOptions[fallbackKey];
106
- if (result) {
107
- newKeyInUse = fallbackKey;
108
- }
109
- if (!result) {
110
- if (typeof window === "undefined") {
111
- return "/";
112
- }
113
- return window.location.href;
114
- }
115
- return result || "/";
116
- }
117
- #parse(obj) {
118
- const res = {};
119
- RedirectUrls.keys.forEach((key) => {
120
- res[key] = obj[key];
121
- });
122
- return (0, import_object.applyFunctionToObj)(
123
- this.#filterRedirects(this.#toAbsoluteUrls((0, import_object.filterProps)(res, Boolean))),
124
- (val) => val.toString()
125
- );
126
- }
127
- #parseSearchParams(obj) {
128
- const res = {};
129
- RedirectUrls.keys.forEach((key) => {
130
- if (obj instanceof URLSearchParams) {
131
- res[key] = obj.get((0, import_caseUtils.camelToSnake)(key));
132
- } else {
133
- res[key] = obj[(0, import_caseUtils.camelToSnake)(key)];
134
- }
135
- });
136
- return (0, import_object.applyFunctionToObj)(
137
- this.#filterRedirects(this.#toAbsoluteUrls((0, import_object.filterProps)(res, Boolean))),
138
- (val) => val.toString()
139
- );
140
- }
141
- #toAbsoluteUrls(obj) {
142
- const origin = typeof window !== "undefined" ? window.location.origin : "";
143
- if (!origin) return obj;
144
- return (0, import_object.applyFunctionToObj)(obj, (url) => (0, import_construct.relativeToAbsoluteUrl)(url, origin));
145
- }
146
- #filterRedirects = (obj) => {
147
- var _a;
148
- const origin = typeof window !== "undefined" ? window.location.origin : "";
149
- return (0, import_object.filterProps)(obj, (0, import_construct.isAllowedRedirect)((_a = this.options) == null ? void 0 : _a.allowedRedirectOrigins, origin));
150
- };
151
- }
152
- // Annotate the CommonJS export names for ESM import in node:
153
- 0 && (module.exports = {
154
- RedirectUrls
155
- });
156
- //# sourceMappingURL=redirectUrls.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/utils/redirectUrls.ts"],"sourcesContent":["import { camelToSnake } from '@tern-secure/shared/caseUtils';\nimport { applyFunctionToObj, filterProps, removeUndefined } from '@tern-secure/shared/object';\nimport type { RedirectOptions, TernSecureAuthOptions } from '@tern-secure/types';\n\nimport { isAllowedRedirect, relativeToAbsoluteUrl } from './construct';\n\n/**\n * RedirectUrls class handles all redirect URL construction logic\n * for sign-in, sign-up, and post-authentication flows.\n *\n * This class centralizes the redirect logic previously scattered across\n * multiple methods, making it reusable and maintainable.\n */\nexport class RedirectUrls {\n private static keys: (keyof RedirectOptions)[] = [\n 'signInForceRedirectUrl',\n 'signInFallbackRedirectUrl',\n 'signUpForceRedirectUrl',\n 'signUpFallbackRedirectUrl',\n 'afterSignInUrl',\n 'afterSignUpUrl',\n 'redirectUrl',\n ];\n\n private static preserved = ['redirectUrl'];\n\n private readonly options: TernSecureAuthOptions;\n private readonly fromOptions: RedirectOptions;\n private readonly fromProps: RedirectOptions;\n private readonly fromSearchParams: RedirectOptions & { redirectUrl?: string | null };\n\n constructor(options: TernSecureAuthOptions, props: RedirectOptions = {}, searchParams: any = {}) {\n this.options = options;\n this.fromOptions = this.#parse(options || {});\n this.fromProps = this.#parse(props || {});\n this.fromSearchParams = this.#parseSearchParams(searchParams || {});\n }\n\n getAfterSignInUrl() {\n return this.#getRedirectUrl('signIn');\n }\n\n getAfterSignUpUrl() {\n return this.#getRedirectUrl('signUp');\n }\n\n getPreservedSearchParams() {\n return this.#toSearchParams(this.#flattenPreserved());\n }\n\n toSearchParams() {\n return this.#toSearchParams(this.#flattenAll());\n }\n\n #toSearchParams(obj: Record<string, string | undefined | null>): URLSearchParams {\n const camelCased = Object.fromEntries(\n Object.entries(obj).map(([key, value]) => [camelToSnake(key), value]),\n );\n return new URLSearchParams(removeUndefined(camelCased) as Record<string, string>);\n }\n\n #flattenPreserved() {\n return Object.fromEntries(\n Object.entries({ ...this.fromSearchParams }).filter(([key]) =>\n RedirectUrls.preserved.includes(key),\n ),\n );\n }\n\n #flattenAll() {\n const signUpForceRedirectUrl =\n this.fromSearchParams.signUpForceRedirectUrl ||\n this.fromProps.signUpForceRedirectUrl ||\n this.fromOptions.signUpForceRedirectUrl;\n const signUpFallbackRedirectUrl =\n this.fromSearchParams.signUpFallbackRedirectUrl ||\n this.fromProps.signUpFallbackRedirectUrl ||\n this.fromOptions.signUpFallbackRedirectUrl;\n const signInForceRedirectUrl =\n this.fromSearchParams.signInForceRedirectUrl ||\n this.fromProps.signInForceRedirectUrl ||\n this.fromOptions.signInForceRedirectUrl;\n const signInFallbackRedirectUrl =\n this.fromSearchParams.signInFallbackRedirectUrl ||\n this.fromProps.signInFallbackRedirectUrl ||\n this.fromOptions.signInFallbackRedirectUrl;\n const afterSignInUrl =\n this.fromSearchParams.afterSignInUrl ||\n this.fromProps.afterSignInUrl ||\n this.fromOptions.afterSignInUrl;\n const afterSignUpUrl =\n this.fromSearchParams.afterSignUpUrl ||\n this.fromProps.afterSignUpUrl ||\n this.fromOptions.afterSignUpUrl;\n const redirectUrl =\n this.fromSearchParams.redirectUrl ||\n this.fromProps.redirectUrl ||\n this.fromOptions.redirectUrl;\n\n const res: RedirectOptions = {\n signUpForceRedirectUrl,\n signUpFallbackRedirectUrl,\n signInForceRedirectUrl,\n signInFallbackRedirectUrl,\n afterSignInUrl,\n afterSignUpUrl,\n redirectUrl,\n };\n return res;\n }\n\n #getRedirectUrl(prefix: 'signIn' | 'signUp') {\n const forceKey = `${prefix}ForceRedirectUrl` as const;\n const fallbackKey = `${prefix}FallbackRedirectUrl` as const;\n\n let newKeyInUse: string | undefined;\n\n let result;\n // Prioritize forceRedirectUrl\n result =\n this.fromSearchParams[forceKey] || this.fromProps[forceKey] || this.fromOptions[forceKey];\n if (result) {\n newKeyInUse = forceKey;\n }\n\n // Try to get redirect_url, only allowed as a search param\n result ||= this.fromSearchParams.redirectUrl;\n if (result) {\n newKeyInUse = 'redirectUrl';\n }\n\n // Otherwise, fallback to fallbackRedirectUrl\n result ||=\n this.fromSearchParams[fallbackKey] ||\n this.fromProps[fallbackKey] ||\n this.fromOptions[fallbackKey];\n if (result) {\n newKeyInUse = fallbackKey;\n }\n\n if (!result) {\n if (typeof window === 'undefined') {\n return '/';\n }\n return window.location.href;\n }\n return result || '/';\n }\n\n #parse(obj: unknown) {\n const res = {} as RedirectOptions;\n RedirectUrls.keys.forEach(key => {\n // @ts-expect-error\n res[key] = obj[key];\n });\n\n //const absoluteUrls = this.#toAbsoluteUrls(filterProps(res, Boolean));\n //const filtered = this.#filterRedirects(absoluteUrls);\n //return applyFunctionToObj(filtered, val => val.toString());\n\n return applyFunctionToObj(\n this.#filterRedirects(this.#toAbsoluteUrls(filterProps(res, Boolean))),\n val => val.toString(),\n );\n }\n\n #parseSearchParams(obj: any) {\n const res = {} as typeof this.fromSearchParams;\n RedirectUrls.keys.forEach(key => {\n if (obj instanceof URLSearchParams) {\n res[key] = obj.get(camelToSnake(key));\n } else {\n res[key] = obj[camelToSnake(key)];\n }\n });\n\n return applyFunctionToObj(\n this.#filterRedirects(this.#toAbsoluteUrls(filterProps(res, Boolean))),\n val => val.toString(),\n );\n }\n\n #toAbsoluteUrls(obj: RedirectOptions) {\n const origin = typeof window !== 'undefined' ? window.location.origin : '';\n // If no origin (server-side), return URLs as-is without conversion\n // They will be properly converted on the client-side\n if (!origin) return obj;\n\n return applyFunctionToObj(obj, (url: string) => relativeToAbsoluteUrl(url, origin));\n }\n\n #filterRedirects = (obj: RedirectOptions) => {\n const origin = typeof window !== 'undefined' ? window.location.origin : '';\n return filterProps(obj, isAllowedRedirect(this.options?.allowedRedirectOrigins, origin));\n };\n}\n"],"mappings":"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","names":[]}
@@ -1,45 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var windowNavigate_exports = {};
20
- __export(windowNavigate_exports, {
21
- ALLOWED_PROTOCOLS: () => ALLOWED_PROTOCOLS,
22
- BEFORE_UNLOAD_EVENT: () => BEFORE_UNLOAD_EVENT,
23
- windowNavigate: () => windowNavigate
24
- });
25
- module.exports = __toCommonJS(windowNavigate_exports);
26
- const BEFORE_UNLOAD_EVENT = "ternsecure:beforeunload";
27
- const ALLOWED_PROTOCOLS = [
28
- "http:",
29
- "https:",
30
- // Refers to https://wails.io/
31
- "wails:",
32
- "chrome-extension:"
33
- ];
34
- function windowNavigate(to) {
35
- const toURL = new URL(to, window.location.href);
36
- window.dispatchEvent(new CustomEvent(BEFORE_UNLOAD_EVENT));
37
- window.location.href = toURL.href;
38
- }
39
- // Annotate the CommonJS export names for ESM import in node:
40
- 0 && (module.exports = {
41
- ALLOWED_PROTOCOLS,
42
- BEFORE_UNLOAD_EVENT,
43
- windowNavigate
44
- });
45
- //# sourceMappingURL=windowNavigate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/utils/windowNavigate.ts"],"sourcesContent":["export const BEFORE_UNLOAD_EVENT = 'ternsecure:beforeunload';\n\n/**\n * Additional protocols can be provided using the `allowedRedirectProtocols` option.\n */\nexport const ALLOWED_PROTOCOLS = [\n 'http:',\n 'https:',\n // Refers to https://wails.io/\n 'wails:',\n 'chrome-extension:',\n];\n\n/**\n * Helper utility to navigate via window.location.href. Also dispatches a ternsecure:beforeunload custom event.\n *\n * Note that this utility should **never** be called with a user-provided URL. We make no specific checks against the contents of the URL here and assume it is safe.\n */\nexport function windowNavigate(to: URL | string): void {\n const toURL = new URL(to, window.location.href);\n window.dispatchEvent(new CustomEvent(BEFORE_UNLOAD_EVENT));\n window.location.href = toURL.href;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,sBAAsB;AAK5B,MAAM,oBAAoB;AAAA,EAC/B;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AACF;AAOO,SAAS,eAAe,IAAwB;AACrD,QAAM,QAAQ,IAAI,IAAI,IAAI,OAAO,SAAS,IAAI;AAC9C,SAAO,cAAc,IAAI,YAAY,mBAAmB,CAAC;AACzD,SAAO,SAAS,OAAO,MAAM;AAC/B;","names":[]}
@@ -1,76 +0,0 @@
1
- import { cookieHandler } from "@tern-secure/shared/cookie";
2
- import { createIdTokenCookie, createSessionCookie } from "./cookies/session";
3
- const CSRF_COOKIE_NAME = "_session_terncf";
4
- const CSRF_COOKIE_OPTIONS = {
5
- secure: true,
6
- sameSite: "strict",
7
- expires: 1 / 24
8
- //1 hour
9
- };
10
- class AuthCookieManager {
11
- csrfCookieHandler = cookieHandler(CSRF_COOKIE_NAME);
12
- sessionCookie;
13
- idTokenCookie;
14
- constructor() {
15
- this.ensureCSRFToken();
16
- this.sessionCookie = createSessionCookie();
17
- this.idTokenCookie = createIdTokenCookie();
18
- }
19
- generateCSRFToken() {
20
- const array = new Uint8Array(32);
21
- crypto.getRandomValues(array);
22
- return Array.from(array, (byte) => byte.toString(16).padStart(2, "0")).join("");
23
- }
24
- ensureCSRFToken() {
25
- let ctoken = this.getCSRFToken();
26
- if (!ctoken) {
27
- ctoken = this.generateCSRFToken();
28
- this.setCSRFToken({ token: ctoken });
29
- }
30
- return ctoken;
31
- }
32
- /**
33
- * Set CSRFcookie
34
- */
35
- setCSRFToken(token) {
36
- try {
37
- if (token.token) {
38
- this.csrfCookieHandler.set(token.token, CSRF_COOKIE_OPTIONS);
39
- }
40
- } catch (error) {
41
- console.error("Failed to set CSRF token:", error);
42
- throw new Error("Unable to store CSRF token");
43
- }
44
- }
45
- /**
46
- * Get CSRF token from cookies
47
- */
48
- getCSRFToken() {
49
- try {
50
- return this.csrfCookieHandler.get();
51
- } catch (error) {
52
- console.error("Failed to get CSRF token:", error);
53
- return void 0;
54
- }
55
- }
56
- getSessionCookie() {
57
- return this.sessionCookie.get();
58
- }
59
- getIdTokenCookie() {
60
- return this.idTokenCookie.get();
61
- }
62
- /**
63
- * Clear all authentication cookies
64
- */
65
- clearAuth() {
66
- try {
67
- this.csrfCookieHandler.remove();
68
- } catch (error) {
69
- console.error("Failed to clear auth cookies:", error);
70
- }
71
- }
72
- }
73
- export {
74
- AuthCookieManager
75
- };
76
- //# sourceMappingURL=AuthCookieManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/auth/AuthCookieManager.ts"],"sourcesContent":["import type { CookieAttributes } from '@tern-secure/shared/cookie';\nimport { cookieHandler } from '@tern-secure/shared/cookie';\n\nimport type { SessionCookieHandler } from './cookies/session';\nimport { createIdTokenCookie, createSessionCookie } from './cookies/session';\n\nconst CSRF_COOKIE_NAME = '_session_terncf';\n\ntype CSRFToken = {\n token: string | null;\n};\n\ntype CookieOptions = CookieAttributes;\n\nconst CSRF_COOKIE_OPTIONS: CookieOptions = {\n secure: true,\n sameSite: 'strict',\n expires: 1 / 24, //1 hour\n};\n\n/**\n * AuthCookieManger class for managing authentication state and cookies\n */\nexport class AuthCookieManager {\n private readonly csrfCookieHandler = cookieHandler(CSRF_COOKIE_NAME);\n private sessionCookie: SessionCookieHandler;\n private idTokenCookie: SessionCookieHandler;\n\n constructor() {\n this.ensureCSRFToken();\n this.sessionCookie = createSessionCookie();\n this.idTokenCookie = createIdTokenCookie();\n }\n\n private generateCSRFToken(): string {\n const array = new Uint8Array(32);\n crypto.getRandomValues(array);\n return Array.from(array, byte => byte.toString(16).padStart(2, '0')).join('');\n }\n\n private ensureCSRFToken(): string {\n let ctoken = this.getCSRFToken();\n if (!ctoken) {\n ctoken = this.generateCSRFToken();\n this.setCSRFToken({ token: ctoken });\n }\n return ctoken;\n }\n\n /**\n * Set CSRFcookie\n */\n\n setCSRFToken(token: CSRFToken): void {\n try {\n if (token.token) {\n this.csrfCookieHandler.set(token.token, CSRF_COOKIE_OPTIONS);\n }\n } catch (error) {\n console.error('Failed to set CSRF token:', error);\n throw new Error('Unable to store CSRF token');\n }\n }\n\n /**\n * Get CSRF token from cookies\n */\n getCSRFToken(): string | undefined {\n try {\n return this.csrfCookieHandler.get();\n } catch (error) {\n console.error('Failed to get CSRF token:', error);\n return undefined;\n }\n }\n\n public getSessionCookie() {\n return this.sessionCookie.get();\n }\n\n public getIdTokenCookie() {\n return this.idTokenCookie.get();\n }\n\n /**\n * Clear all authentication cookies\n */\n clearAuth(): void {\n try {\n this.csrfCookieHandler.remove();\n } catch (error) {\n console.error('Failed to clear auth cookies:', error);\n }\n }\n}\n"],"mappings":"AACA,SAAS,qBAAqB;AAG9B,SAAS,qBAAqB,2BAA2B;AAEzD,MAAM,mBAAmB;AAQzB,MAAM,sBAAqC;AAAA,EACzC,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,SAAS,IAAI;AAAA;AACf;AAKO,MAAM,kBAAkB;AAAA,EACZ,oBAAoB,cAAc,gBAAgB;AAAA,EAC3D;AAAA,EACA;AAAA,EAER,cAAc;AACZ,SAAK,gBAAgB;AACrB,SAAK,gBAAgB,oBAAoB;AACzC,SAAK,gBAAgB,oBAAoB;AAAA,EAC3C;AAAA,EAEQ,oBAA4B;AAClC,UAAM,QAAQ,IAAI,WAAW,EAAE;AAC/B,WAAO,gBAAgB,KAAK;AAC5B,WAAO,MAAM,KAAK,OAAO,UAAQ,KAAK,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,EAAE,KAAK,EAAE;AAAA,EAC9E;AAAA,EAEQ,kBAA0B;AAChC,QAAI,SAAS,KAAK,aAAa;AAC/B,QAAI,CAAC,QAAQ;AACX,eAAS,KAAK,kBAAkB;AAChC,WAAK,aAAa,EAAE,OAAO,OAAO,CAAC;AAAA,IACrC;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAMA,aAAa,OAAwB;AACnC,QAAI;AACF,UAAI,MAAM,OAAO;AACf,aAAK,kBAAkB,IAAI,MAAM,OAAO,mBAAmB;AAAA,MAC7D;AAAA,IACF,SAAS,OAAO;AACd,cAAQ,MAAM,6BAA6B,KAAK;AAChD,YAAM,IAAI,MAAM,4BAA4B;AAAA,IAC9C;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,eAAmC;AACjC,QAAI;AACF,aAAO,KAAK,kBAAkB,IAAI;AAAA,IACpC,SAAS,OAAO;AACd,cAAQ,MAAM,6BAA6B,KAAK;AAChD,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEO,mBAAmB;AACxB,WAAO,KAAK,cAAc,IAAI;AAAA,EAChC;AAAA,EAEO,mBAAmB;AACxB,WAAO,KAAK,cAAc,IAAI;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA,EAKA,YAAkB;AAChB,QAAI;AACF,WAAK,kBAAkB,OAAO;AAAA,IAChC,SAAS,OAAO;AACd,cAAQ,MAAM,iCAAiC,KAAK;AAAA,IACtD;AAAA,EACF;AACF;","names":[]}
@@ -1,58 +0,0 @@
1
- import { cookieHandler, getCookieName, getCookiePrefix } from "@tern-secure/shared/cookie";
2
- const SESSION_COOKIE_NAME = "__session";
3
- const ID_TOKEN_COOKIE_NAME = "TernSecure_[DEFAULT]";
4
- const REFRESH_TOKEN_COOKIE_NAME = "TernSecureID_[DEFAULT]";
5
- const CUSTOM_COOKIE_NAME = "__custom";
6
- const createSessionCookie = () => {
7
- const sessionCookie = cookieHandler(SESSION_COOKIE_NAME);
8
- const set = (token) => {
9
- sessionCookie.set(token, {
10
- httpOnly: false,
11
- secure: true,
12
- sameSite: "strict",
13
- path: "/"
14
- });
15
- };
16
- const remove = () => {
17
- sessionCookie.remove({
18
- path: "/"
19
- });
20
- };
21
- const get = () => {
22
- return sessionCookie.get();
23
- };
24
- return {
25
- set,
26
- remove,
27
- get
28
- };
29
- };
30
- const createIdTokenCookie = () => {
31
- const prefix = getCookiePrefix();
32
- const cookieName = getCookieName(ID_TOKEN_COOKIE_NAME, prefix);
33
- const sessionCookie = cookieHandler(cookieName);
34
- const set = (token) => {
35
- sessionCookie.set(token, {
36
- httpOnly: false,
37
- secure: true,
38
- sameSite: "strict",
39
- path: "/"
40
- });
41
- };
42
- const remove = () => {
43
- sessionCookie.remove({
44
- path: "/"
45
- });
46
- };
47
- const get = () => sessionCookie.get();
48
- return {
49
- set,
50
- remove,
51
- get
52
- };
53
- };
54
- export {
55
- createIdTokenCookie,
56
- createSessionCookie
57
- };
58
- //# sourceMappingURL=session.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/auth/cookies/session.ts"],"sourcesContent":["import { cookieHandler, getCookieName, getCookiePrefix } from '@tern-secure/shared/cookie';\n\nconst SESSION_COOKIE_NAME = '__session';\nconst ID_TOKEN_COOKIE_NAME = 'TernSecure_[DEFAULT]';\nconst REFRESH_TOKEN_COOKIE_NAME = 'TernSecureID_[DEFAULT]';\nconst CUSTOM_COOKIE_NAME = '__custom';\n\nexport type SessionCookieHandler = {\n set: (token: string) => void;\n remove: () => void;\n get: () => string | undefined;\n};\n\nexport const createSessionCookie = (): SessionCookieHandler => {\n const sessionCookie = cookieHandler(SESSION_COOKIE_NAME);\n\n const set = (token: string) => {\n sessionCookie.set(token, {\n httpOnly: false,\n secure: true,\n sameSite: 'strict',\n path: '/',\n });\n };\n\n const remove = () => {\n sessionCookie.remove({\n path: '/',\n });\n };\n\n const get = () => {\n return sessionCookie.get();\n };\n\n return {\n set,\n remove,\n get,\n };\n};\n\nexport const createIdTokenCookie = (): SessionCookieHandler => {\n const prefix = getCookiePrefix();\n const cookieName = getCookieName(ID_TOKEN_COOKIE_NAME, prefix);\n const sessionCookie = cookieHandler(cookieName);\n\n const set = (token: string) => {\n sessionCookie.set(token, {\n httpOnly: false,\n secure: true,\n sameSite: 'strict',\n path: '/',\n });\n };\n\n const remove = () => {\n sessionCookie.remove({\n path: '/',\n });\n };\n\n const get = () => sessionCookie.get();\n\n return {\n set,\n remove,\n get,\n };\n};\n"],"mappings":"AAAA,SAAS,eAAe,eAAe,uBAAuB;AAE9D,MAAM,sBAAsB;AAC5B,MAAM,uBAAuB;AAC7B,MAAM,4BAA4B;AAClC,MAAM,qBAAqB;AAQpB,MAAM,sBAAsB,MAA4B;AAC7D,QAAM,gBAAgB,cAAc,mBAAmB;AAEvD,QAAM,MAAM,CAAC,UAAkB;AAC7B,kBAAc,IAAI,OAAO;AAAA,MACvB,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM;AAAA,IACR,CAAC;AAAA,EACH;AAEA,QAAM,SAAS,MAAM;AACnB,kBAAc,OAAO;AAAA,MACnB,MAAM;AAAA,IACR,CAAC;AAAA,EACH;AAEA,QAAM,MAAM,MAAM;AAChB,WAAO,cAAc,IAAI;AAAA,EAC3B;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEO,MAAM,sBAAsB,MAA4B;AAC7D,QAAM,SAAS,gBAAgB;AAC/B,QAAM,aAAa,cAAc,sBAAsB,MAAM;AAC7D,QAAM,gBAAgB,cAAc,UAAU;AAE9C,QAAM,MAAM,CAAC,UAAkB;AAC7B,kBAAc,IAAI,OAAO;AAAA,MACvB,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM;AAAA,IACR,CAAC;AAAA,EACH;AAEA,QAAM,SAAS,MAAM;AACnB,kBAAc,OAAO;AAAA,MACnB,MAAM;AAAA,IACR,CAAC;AAAA,EACH;AAEA,QAAM,MAAM,MAAM,cAAc,IAAI;AAEpC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;","names":[]}
@@ -1,134 +0,0 @@
1
- import { Cookie } from "../resources/cookie";
2
- import { UserData } from "../resources/UserData";
3
- class ClientAuthRequest {
4
- cookie;
5
- userData;
6
- constructor() {
7
- this.cookie = new Cookie();
8
- this.userData = new UserData();
9
- }
10
- /**
11
- * Get UserData
12
- */
13
- async getUserData() {
14
- try {
15
- const response = await this.userData.get();
16
- if (response == null ? void 0 : response.response) {
17
- return response.response;
18
- }
19
- return null;
20
- } catch (error) {
21
- console.error("[ClientAuthRequest] Failed to get user data:", error);
22
- throw error;
23
- }
24
- }
25
- /**
26
- * Get ID token from httpOnly cookies
27
- */
28
- async getIdTokenFromCookie() {
29
- try {
30
- return await this.cookie.getIdToken();
31
- } catch (error) {
32
- return {
33
- success: false,
34
- error: `Failed to retrieve ID token from cookies: ${error instanceof Error ? error.message : String(error)}`
35
- };
36
- }
37
- }
38
- /**
39
- * Get session token from httpOnly cookies
40
- */
41
- async getSessionTokenFromCookie() {
42
- try {
43
- return await this.cookie.getSessionToken();
44
- } catch (error) {
45
- return {
46
- success: false,
47
- error: `Failed to retrieve session token from cookies: ${error instanceof Error ? error.message : String(error)}`
48
- };
49
- }
50
- }
51
- /**
52
- * Get refresh token from httpOnly cookies
53
- */
54
- async getRefreshTokenFromCookie() {
55
- try {
56
- return await this.cookie.getRefreshToken();
57
- } catch (error) {
58
- return {
59
- success: false,
60
- error: `Failed to retrieve refresh token from cookies: ${error instanceof Error ? error.message : String(error)}`
61
- };
62
- }
63
- }
64
- /**
65
- * Get custom token from httpOnly cookies
66
- */
67
- async getCustomTokenFromCookie() {
68
- try {
69
- return await this.cookie.getCustomToken();
70
- } catch (error) {
71
- return {
72
- success: false,
73
- error: `Failed to retrieve custom token from cookies: ${error instanceof Error ? error.message : String(error)}`
74
- };
75
- }
76
- }
77
- /**
78
- * Get all tokens from httpOnly cookies
79
- */
80
- async getAllTokensFromCookies() {
81
- try {
82
- return await this.cookie.getAllTokens();
83
- } catch (error) {
84
- const errorMessage = `Failed to retrieve tokens from cookies: ${error instanceof Error ? error.message : String(error)}`;
85
- return {
86
- idToken: { success: false, error: errorMessage },
87
- sessionToken: { success: false, error: errorMessage },
88
- refreshToken: { success: false, error: errorMessage },
89
- customToken: { success: false, error: errorMessage }
90
- };
91
- }
92
- }
93
- /**
94
- * Check if a specific token exists in cookies
95
- */
96
- async hasTokenInCookie(tokenType) {
97
- try {
98
- return await this.cookie.hasToken(tokenType);
99
- } catch (error) {
100
- console.error(`[ClientAuthRequest] Failed to check ${tokenType} existence:`, error);
101
- return false;
102
- }
103
- }
104
- /**
105
- * Get user data using token from cookies
106
- * First tries to get ID token from cookies, then uses it for user data request
107
- */
108
- async getUserDataWithCookieToken() {
109
- try {
110
- const idTokenResult = await this.getIdTokenFromCookie();
111
- if (!idTokenResult.success || !idTokenResult.token) {
112
- console.warn("[ClientAuthRequest] No ID token available in cookies for user data request");
113
- return null;
114
- }
115
- const userData = new UserData();
116
- const response = await userData.get();
117
- if (response == null ? void 0 : response.response) {
118
- return response.response;
119
- }
120
- return null;
121
- } catch (error) {
122
- console.error("[ClientAuthRequest] Failed to get user data with cookie token:", error);
123
- throw error;
124
- }
125
- }
126
- }
127
- function createClientAuthRequest() {
128
- return new ClientAuthRequest();
129
- }
130
- export {
131
- ClientAuthRequest,
132
- createClientAuthRequest
133
- };
134
- //# sourceMappingURL=request.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/auth/request.ts"],"sourcesContent":["import type { TernSecureUserData } from '@tern-secure/types';\n\nimport type { TokenResult } from '../resources/cookie';\nimport { Cookie } from '../resources/cookie';\nimport { UserData } from '../resources/UserData';\n\nexport interface UserDataParams {\n idToken: string;\n}\n\n/**\n * Client-side authentication request functionality\n * Uses backend API calls through the configured apiUrl\n */\nexport class ClientAuthRequest {\n private cookie: Cookie;\n private userData: UserData;\n\n constructor() {\n this.cookie = new Cookie();\n this.userData = new UserData();\n }\n\n /**\n * Get UserData\n */\n async getUserData(): Promise<TernSecureUserData | null> {\n try {\n const response = await this.userData.get();\n\n if (response?.response) {\n return response.response as TernSecureUserData;\n }\n\n return null;\n } catch (error) {\n console.error('[ClientAuthRequest] Failed to get user data:', error);\n throw error;\n }\n }\n\n /**\n * Get ID token from httpOnly cookies\n */\n async getIdTokenFromCookie(): Promise<TokenResult> {\n try {\n return await this.cookie.getIdToken();\n } catch (error) {\n return {\n success: false,\n error: `Failed to retrieve ID token from cookies: ${error instanceof Error ? error.message : String(error)}`,\n };\n }\n }\n\n /**\n * Get session token from httpOnly cookies\n */\n async getSessionTokenFromCookie(): Promise<TokenResult> {\n try {\n return await this.cookie.getSessionToken();\n } catch (error) {\n return {\n success: false,\n error: `Failed to retrieve session token from cookies: ${error instanceof Error ? error.message : String(error)}`,\n };\n }\n }\n\n /**\n * Get refresh token from httpOnly cookies\n */\n async getRefreshTokenFromCookie(): Promise<TokenResult> {\n try {\n return await this.cookie.getRefreshToken();\n } catch (error) {\n return {\n success: false,\n error: `Failed to retrieve refresh token from cookies: ${error instanceof Error ? error.message : String(error)}`,\n };\n }\n }\n\n /**\n * Get custom token from httpOnly cookies\n */\n async getCustomTokenFromCookie(): Promise<TokenResult> {\n try {\n return await this.cookie.getCustomToken();\n } catch (error) {\n return {\n success: false,\n error: `Failed to retrieve custom token from cookies: ${error instanceof Error ? error.message : String(error)}`,\n };\n }\n }\n\n /**\n * Get all tokens from httpOnly cookies\n */\n async getAllTokensFromCookies(): Promise<Record<string, TokenResult>> {\n try {\n return await this.cookie.getAllTokens();\n } catch (error) {\n const errorMessage = `Failed to retrieve tokens from cookies: ${error instanceof Error ? error.message : String(error)}`;\n return {\n idToken: { success: false, error: errorMessage },\n sessionToken: { success: false, error: errorMessage },\n refreshToken: { success: false, error: errorMessage },\n customToken: { success: false, error: errorMessage },\n };\n }\n }\n\n /**\n * Check if a specific token exists in cookies\n */\n async hasTokenInCookie(\n tokenType: 'idToken' | 'sessionToken' | 'refreshToken' | 'customToken',\n ): Promise<boolean> {\n try {\n return await this.cookie.hasToken(tokenType);\n } catch (error) {\n console.error(`[ClientAuthRequest] Failed to check ${tokenType} existence:`, error);\n return false;\n }\n }\n\n /**\n * Get user data using token from cookies\n * First tries to get ID token from cookies, then uses it for user data request\n */\n async getUserDataWithCookieToken(): Promise<TernSecureUserData | null> {\n try {\n const idTokenResult = await this.getIdTokenFromCookie();\n\n if (!idTokenResult.success || !idTokenResult.token) {\n console.warn('[ClientAuthRequest] No ID token available in cookies for user data request');\n return null;\n }\n\n const userData = new UserData();\n const response = await userData.get();\n\n if (response?.response) {\n return response.response as TernSecureUserData;\n }\n\n return null;\n } catch (error) {\n console.error('[ClientAuthRequest] Failed to get user data with cookie token:', error);\n throw error;\n }\n }\n}\n\nexport function createClientAuthRequest(): ClientAuthRequest {\n return new ClientAuthRequest();\n}\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=global.d.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/dist/esm/index.js DELETED
@@ -1,16 +0,0 @@
1
- import { TernSecureAuth } from "./instance/TernAuth";
2
- import { TernServerAuth } from "./instance/TernAuthServer";
3
- import { CoreApiClient, coreApiClient } from "./instance/coreApiClient";
4
- import { SignIn, TernSecureBase, buildURL } from "./resources/internal";
5
- import { RedirectUrls } from "./utils/redirectUrls";
6
- export {
7
- CoreApiClient,
8
- RedirectUrls,
9
- SignIn,
10
- TernSecureAuth,
11
- TernSecureBase,
12
- TernServerAuth,
13
- buildURL,
14
- coreApiClient
15
- };
16
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["export { TernSecureAuth } from './instance/TernAuth';\nexport type { TernAuth } from './instance/TernAuth';\nexport { TernServerAuth } from './instance/TernAuthServer';\nexport type { TernServerAuthOptions, AuthenticatedApp } from './instance/TernAuthServer';\n\nexport { CoreApiClient, coreApiClient } from './instance/coreApiClient';\nexport type { \n ApiResponse, \n ApiResponseJSON, \n RequestOptions,\n BeforeRequestHook,\n AfterResponseHook\n} from './instance/coreApiClient';\n\nexport { SignIn, TernSecureBase, buildURL } from './resources/internal';\n\nexport type {\n AuthErrorTree,\n TernSecureConfig,\n SignInFormValues,\n SignInProps,\n SignUpProps,\n SignInResponse,\n SignInForceRedirectUrl,\n SignUpForceRedirectUrl,\n SignInFallbackRedirectUrl,\n SignUpFallbackRedirectUrl,\n ResendEmailVerification,\n TernSecureUser,\n TernSecureState\n} from '@tern-secure/types';\n\nexport { RedirectUrls } from './utils/redirectUrls';"],"mappings":"AAAA,SAAS,sBAAsB;AAE/B,SAAS,sBAAsB;AAG/B,SAAS,eAAe,qBAAqB;AAS7C,SAAS,QAAQ,gBAAgB,gBAAgB;AAkBjD,SAAS,oBAAoB;","names":[]}