oidc-spa 8.1.10 → 8.1.12

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 (186) hide show
  1. package/backend.d.ts +27 -6
  2. package/backend.js +124 -139
  3. package/backend.js.map +1 -1
  4. package/core/Oidc.d.ts +28 -4
  5. package/core/createOidc.d.ts +12 -3
  6. package/core/createOidc.js +1 -1
  7. package/core/createOidc.js.map +1 -1
  8. package/core/earlyInit.d.ts +1 -0
  9. package/core/earlyInit.js +11 -4
  10. package/core/earlyInit.js.map +1 -1
  11. package/core/loginOrGoToAuthServer.js +8 -3
  12. package/core/loginOrGoToAuthServer.js.map +1 -1
  13. package/core/oidcClientTsUserToTokens.d.ts +1 -1
  14. package/core/oidcClientTsUserToTokens.js.map +1 -1
  15. package/core/requiredPostHydrationReplaceNavigationUrl.d.ts +6 -0
  16. package/core/requiredPostHydrationReplaceNavigationUrl.js +12 -0
  17. package/core/requiredPostHydrationReplaceNavigationUrl.js.map +1 -0
  18. package/entrypoint.d.ts +1 -0
  19. package/entrypoint.js +3 -1
  20. package/entrypoint.js.map +1 -1
  21. package/esm/angular.d.ts +14 -4
  22. package/esm/angular.js +155 -10
  23. package/esm/angular.js.map +1 -1
  24. package/esm/backend.d.ts +48 -0
  25. package/esm/backend.js +259 -0
  26. package/esm/backend.js.map +1 -0
  27. package/esm/core/Oidc.d.ts +28 -4
  28. package/esm/core/createOidc.d.ts +12 -3
  29. package/esm/core/createOidc.js +1 -1
  30. package/esm/core/createOidc.js.map +1 -1
  31. package/esm/core/earlyInit.d.ts +1 -0
  32. package/esm/core/earlyInit.js +11 -4
  33. package/esm/core/earlyInit.js.map +1 -1
  34. package/esm/core/loginOrGoToAuthServer.js +8 -3
  35. package/esm/core/loginOrGoToAuthServer.js.map +1 -1
  36. package/esm/core/oidcClientTsUserToTokens.d.ts +1 -1
  37. package/esm/core/oidcClientTsUserToTokens.js.map +1 -1
  38. package/esm/core/requiredPostHydrationReplaceNavigationUrl.d.ts +6 -0
  39. package/esm/core/requiredPostHydrationReplaceNavigationUrl.js +8 -0
  40. package/esm/core/requiredPostHydrationReplaceNavigationUrl.js.map +1 -0
  41. package/esm/entrypoint.d.ts +1 -0
  42. package/esm/entrypoint.js +1 -0
  43. package/esm/entrypoint.js.map +1 -1
  44. package/esm/mock/oidc.d.ts +1 -1
  45. package/esm/mock/oidc.js.map +1 -1
  46. package/esm/react/react.d.ts +1 -1
  47. package/esm/tanstack-start/react/accessTokenValidation_rfc9068.d.ts +12 -0
  48. package/esm/tanstack-start/react/accessTokenValidation_rfc9068.js +95 -0
  49. package/esm/tanstack-start/react/accessTokenValidation_rfc9068.js.map +1 -0
  50. package/esm/tanstack-start/react/apiBuilder.d.ts +27 -0
  51. package/esm/tanstack-start/react/apiBuilder.js +58 -0
  52. package/esm/tanstack-start/react/apiBuilder.js.map +1 -0
  53. package/esm/tanstack-start/react/createOidcSpaApi.d.ts +9 -0
  54. package/esm/tanstack-start/react/createOidcSpaApi.js +679 -0
  55. package/esm/tanstack-start/react/createOidcSpaApi.js.map +1 -0
  56. package/esm/tanstack-start/react/index.d.ts +3 -0
  57. package/esm/tanstack-start/react/index.js +4 -0
  58. package/esm/tanstack-start/react/index.js.map +1 -0
  59. package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/UnifiedClientRetryForSsrLoadersError.d.ts +4 -0
  60. package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/UnifiedClientRetryForSsrLoadersError.js +8 -0
  61. package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/UnifiedClientRetryForSsrLoadersError.js.map +1 -0
  62. package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/enableUnifiedClientRetryForSsrLoaders.d.ts +4 -0
  63. package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/enableUnifiedClientRetryForSsrLoaders.js +86 -0
  64. package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/enableUnifiedClientRetryForSsrLoaders.js.map +1 -0
  65. package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/entrypoint.d.ts +1 -0
  66. package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/entrypoint.js +13 -0
  67. package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/entrypoint.js.map +1 -0
  68. package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/index.d.ts +2 -0
  69. package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/index.js +3 -0
  70. package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/index.js.map +1 -0
  71. package/esm/tanstack-start/react/types.d.ts +355 -0
  72. package/esm/tanstack-start/react/types.js +2 -0
  73. package/esm/tanstack-start/react/types.js.map +1 -0
  74. package/esm/tanstack-start/react/withHandlingOidcPostLoginNavigation.d.ts +2 -0
  75. package/esm/tanstack-start/react/withHandlingOidcPostLoginNavigation.js +25 -0
  76. package/esm/tanstack-start/react/withHandlingOidcPostLoginNavigation.js.map +1 -0
  77. package/esm/tools/GetterOrDirectValue.d.ts +1 -0
  78. package/esm/tools/GetterOrDirectValue.js +2 -0
  79. package/esm/tools/GetterOrDirectValue.js.map +1 -0
  80. package/esm/tools/ZodSchemaLike.d.ts +3 -0
  81. package/esm/tools/ZodSchemaLike.js +2 -0
  82. package/esm/tools/ZodSchemaLike.js.map +1 -0
  83. package/esm/tools/inferIsViteDev.d.ts +1 -0
  84. package/esm/tools/inferIsViteDev.js +6 -0
  85. package/esm/tools/inferIsViteDev.js.map +1 -0
  86. package/esm/tools/infer_import_meta_env_BASE_URL.d.ts +1 -0
  87. package/esm/tools/infer_import_meta_env_BASE_URL.js +15 -0
  88. package/esm/tools/infer_import_meta_env_BASE_URL.js.map +1 -0
  89. package/esm/tools/tsafe/uncapitalize.d.ts +2 -0
  90. package/esm/tools/tsafe/uncapitalize.js +5 -0
  91. package/esm/tools/tsafe/uncapitalize.js.map +1 -0
  92. package/esm/vendor/backend/evt.d.ts +2 -0
  93. package/esm/vendor/backend/evt.js +3286 -0
  94. package/esm/vendor/backend/jose.d.ts +1 -0
  95. package/esm/vendor/backend/jose.js +3546 -0
  96. package/esm/vendor/backend/tsafe.d.ts +5 -0
  97. package/esm/vendor/backend/tsafe.js +68 -0
  98. package/esm/vendor/backend/zod.d.ts +1 -0
  99. package/esm/vendor/backend/zod.js +4023 -0
  100. package/esm/vendor/frontend/worker-timers.js +261 -1
  101. package/mock/oidc.d.ts +1 -1
  102. package/mock/oidc.js.map +1 -1
  103. package/package.json +40 -4
  104. package/react/react.d.ts +1 -1
  105. package/src/angular.ts +224 -9
  106. package/src/backend.ts +201 -166
  107. package/src/core/Oidc.ts +41 -11
  108. package/src/core/createOidc.ts +12 -3
  109. package/src/core/earlyInit.ts +19 -4
  110. package/src/core/loginOrGoToAuthServer.ts +11 -3
  111. package/src/core/oidcClientTsUserToTokens.ts +2 -2
  112. package/src/core/requiredPostHydrationReplaceNavigationUrl.ts +11 -0
  113. package/src/entrypoint.ts +1 -0
  114. package/src/mock/oidc.ts +2 -2
  115. package/src/react/react.tsx +1 -1
  116. package/src/tanstack-start/react/accessTokenValidation_rfc9068.ts +135 -0
  117. package/src/tanstack-start/react/apiBuilder.ts +151 -0
  118. package/src/tanstack-start/react/createOidcSpaApi.tsx +1011 -0
  119. package/src/tanstack-start/react/index.ts +5 -0
  120. package/src/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/UnifiedClientRetryForSsrLoadersError.ts +8 -0
  121. package/src/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/enableUnifiedClientRetryForSsrLoaders.tsx +127 -0
  122. package/src/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/entrypoint.ts +15 -0
  123. package/src/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/index.ts +2 -0
  124. package/src/tanstack-start/react/types.tsx +415 -0
  125. package/src/tanstack-start/react/withHandlingOidcPostLoginNavigation.tsx +35 -0
  126. package/src/tools/GetterOrDirectValue.ts +1 -0
  127. package/src/tools/ZodSchemaLike.ts +3 -0
  128. package/src/tools/getThisCodebaseRootDirPath_cjs.ts +19 -0
  129. package/src/tools/inferIsViteDev.ts +6 -0
  130. package/src/tools/infer_import_meta_env_BASE_URL.ts +19 -0
  131. package/src/tools/tsafe/uncapitalize.ts +4 -0
  132. package/src/vendor/backend/jose.ts +1 -0
  133. package/src/vendor/build-runtime/babel.ts +6 -0
  134. package/src/vendor/build-runtime/magic-string.ts +3 -0
  135. package/src/vite-plugin/detectProjectType.ts +20 -0
  136. package/src/vite-plugin/excludeModuleExportFromOptimizedDeps.ts +20 -0
  137. package/src/vite-plugin/handleClientEntrypoint.ts +260 -0
  138. package/src/vite-plugin/index.ts +1 -0
  139. package/src/vite-plugin/transformCreateFileRoute.ts +240 -0
  140. package/src/vite-plugin/vite-plugin.ts +54 -0
  141. package/tools/GetterOrDirectValue.d.ts +1 -0
  142. package/tools/GetterOrDirectValue.js +3 -0
  143. package/tools/GetterOrDirectValue.js.map +1 -0
  144. package/tools/ZodSchemaLike.d.ts +3 -0
  145. package/tools/ZodSchemaLike.js +3 -0
  146. package/tools/ZodSchemaLike.js.map +1 -0
  147. package/tools/getThisCodebaseRootDirPath_cjs.d.ts +2 -0
  148. package/tools/getThisCodebaseRootDirPath_cjs.js +53 -0
  149. package/tools/getThisCodebaseRootDirPath_cjs.js.map +1 -0
  150. package/tools/tsafe/uncapitalize.d.ts +2 -0
  151. package/tools/tsafe/uncapitalize.js +8 -0
  152. package/tools/tsafe/uncapitalize.js.map +1 -0
  153. package/vendor/backend/jose.d.ts +1 -0
  154. package/vendor/backend/jose.js +3 -0
  155. package/vendor/build-runtime/babel.d.ts +6 -0
  156. package/vendor/build-runtime/babel.js +3 -0
  157. package/vendor/build-runtime/magic-string.d.ts +2 -0
  158. package/vendor/build-runtime/magic-string.js +2 -0
  159. package/vendor/frontend/oidc-client-ts.js +0 -2
  160. package/vite-plugin/detectProjectType.d.ts +10 -0
  161. package/vite-plugin/detectProjectType.js +15 -0
  162. package/vite-plugin/detectProjectType.js.map +1 -0
  163. package/vite-plugin/excludeModuleExportFromOptimizedDeps.d.ts +4 -0
  164. package/vite-plugin/excludeModuleExportFromOptimizedDeps.js +50 -0
  165. package/vite-plugin/excludeModuleExportFromOptimizedDeps.js.map +1 -0
  166. package/vite-plugin/handleClientEntrypoint.d.ts +10 -0
  167. package/vite-plugin/handleClientEntrypoint.js +211 -0
  168. package/vite-plugin/handleClientEntrypoint.js.map +1 -0
  169. package/vite-plugin/index.d.ts +1 -0
  170. package/vite-plugin/index.js +6 -0
  171. package/vite-plugin/index.js.map +1 -0
  172. package/vite-plugin/transformCreateFileRoute.d.ts +10 -0
  173. package/vite-plugin/transformCreateFileRoute.js +173 -0
  174. package/vite-plugin/transformCreateFileRoute.js.map +1 -0
  175. package/vite-plugin/vite-plugin.d.ts +5 -0
  176. package/vite-plugin/vite-plugin.js +46 -0
  177. package/vite-plugin/vite-plugin.js.map +1 -0
  178. package/src/vendor/backend/jsonwebtoken.ts +0 -1
  179. package/src/vendor/backend/node-fetch.ts +0 -2
  180. package/src/vendor/backend/node-jose.ts +0 -1
  181. package/vendor/backend/jsonwebtoken.d.ts +0 -1
  182. package/vendor/backend/jsonwebtoken.js +0 -3
  183. package/vendor/backend/node-fetch.d.ts +0 -2
  184. package/vendor/backend/node-fetch.js +0 -2
  185. package/vendor/backend/node-jose.d.ts +0 -1
  186. package/vendor/backend/node-jose.js +0 -3
@@ -0,0 +1,95 @@
1
+ import { createObjectThatThrowsIfAccessed } from "../../tools/createObjectThatThrowsIfAccessed";
2
+ import { assert, is } from "../../tools/tsafe/assert";
3
+ export function createCreateValidateAndGetAccessTokenClaims_rfc9068(params) {
4
+ const { accessTokenClaimsSchema, accessTokenClaims_mock, expectedAudience: expectedAudienceOrGetter } = params;
5
+ const createValidateAndGetAccessTokenClaims = ({ paramsOfBootstrap }) => {
6
+ if (paramsOfBootstrap.implementation === "mock") {
7
+ return {
8
+ validateAndGetAccessTokenClaims: async () => {
9
+ return {
10
+ isValid: true,
11
+ accessTokenClaims: (() => {
12
+ if (paramsOfBootstrap.accessTokenClaims_mock !== undefined) {
13
+ assert(is(paramsOfBootstrap.accessTokenClaims_mock));
14
+ return paramsOfBootstrap.accessTokenClaims_mock;
15
+ }
16
+ if (accessTokenClaims_mock !== undefined) {
17
+ return accessTokenClaims_mock;
18
+ }
19
+ return createObjectThatThrowsIfAccessed({
20
+ debugMessage: [
21
+ "oidc-spa: You didn't provide any mock for the accessTokenClaims",
22
+ "Either provide a default one by specifying accessTokenClaims_mock",
23
+ "as parameter of .withAccessTokenValidation() or",
24
+ "specify accessTokenClaims_mock when calling bootstrapOidc()"
25
+ ].join(" ")
26
+ });
27
+ })()
28
+ };
29
+ }
30
+ };
31
+ }
32
+ assert;
33
+ const prVerifyAndDecodeAccessToken = (async () => {
34
+ const { createOidcBackend } = await import("../../backend");
35
+ const { verifyAndDecodeAccessToken } = await createOidcBackend({
36
+ issuerUri: paramsOfBootstrap.issuerUri,
37
+ decodedAccessTokenSchema: accessTokenClaimsSchema
38
+ });
39
+ return verifyAndDecodeAccessToken;
40
+ })();
41
+ const expectedAudience = (() => {
42
+ if (expectedAudienceOrGetter === undefined) {
43
+ return undefined;
44
+ }
45
+ if (typeof expectedAudienceOrGetter === "function") {
46
+ return expectedAudienceOrGetter({ paramsOfBootstrap });
47
+ }
48
+ return expectedAudienceOrGetter;
49
+ })();
50
+ return {
51
+ validateAndGetAccessTokenClaims: async ({ accessToken }) => {
52
+ const verifyAndDecodeAccessToken = await prVerifyAndDecodeAccessToken;
53
+ const { isValid, errorCase, errorMessage, decodedAccessToken, decodedAccessToken_original } = await verifyAndDecodeAccessToken({ accessToken });
54
+ if (!isValid) {
55
+ return {
56
+ isValid: false,
57
+ errorMessage: `${errorCase}: ${errorMessage}`,
58
+ wwwAuthenticateHeaderErrorDescription: (() => {
59
+ switch (errorCase) {
60
+ case "does not respect schema":
61
+ return "The access token is malformed or missing required claims";
62
+ case "expired":
63
+ return "The access token expired";
64
+ case "invalid signature":
65
+ return "The access token signature is invalid";
66
+ }
67
+ })()
68
+ };
69
+ }
70
+ if (expectedAudience !== undefined) {
71
+ const aud_array = typeof decodedAccessToken_original.aud === "string"
72
+ ? [decodedAccessToken_original.aud]
73
+ : decodedAccessToken_original.aud;
74
+ if (!aud_array.includes(expectedAudience)) {
75
+ return {
76
+ isValid: false,
77
+ errorMessage: [
78
+ "Access token is not for the expected audience.",
79
+ `Got aud claim: ${JSON.stringify(decodedAccessToken_original.aud)}`,
80
+ `Expected: ${expectedAudience}`
81
+ ].join(" "),
82
+ wwwAuthenticateHeaderErrorDescription: "The access token audience is invalid"
83
+ };
84
+ }
85
+ }
86
+ return {
87
+ isValid: true,
88
+ accessTokenClaims: decodedAccessToken
89
+ };
90
+ }
91
+ };
92
+ };
93
+ return { createValidateAndGetAccessTokenClaims };
94
+ }
95
+ //# sourceMappingURL=accessTokenValidation_rfc9068.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessTokenValidation_rfc9068.js","sourceRoot":"","sources":["../../../src/tanstack-start/react/accessTokenValidation_rfc9068.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { OidcSpaApi, CreateValidateAndGetAccessTokenClaims, ParamsOfBootstrap } from "./types";
2
+ import type { Oidc as Oidc_core } from "../../core";
3
+ import type { ZodSchemaLike } from "../../tools/ZodSchemaLike";
4
+ import type { DecodedAccessToken_RFC9068 as AccessTokenClaims_RFC9068 } from "../../backend";
5
+ export type OidcSpaApiBuilder<AutoLogin extends boolean = false, DecodedIdToken extends Record<string, unknown> = Oidc_core.Tokens.DecodedIdToken_OidcCoreSpec, AccessTokenClaims extends Record<string, unknown> | undefined = undefined, ExcludedMethod extends "withAutoLogin" | "withExpectedDecodedIdTokenShape" | "withAccessTokenValidation" | "finalize" = never> = Omit<{
6
+ withAutoLogin: () => OidcSpaApiBuilder<true, DecodedIdToken, AccessTokenClaims, ExcludedMethod | "withAutoLogin">;
7
+ withExpectedDecodedIdTokenShape: <DecodedIdToken extends Record<string, unknown>>(params: {
8
+ decodedIdTokenSchema: ZodSchemaLike<Oidc_core.Tokens.DecodedIdToken_OidcCoreSpec, DecodedIdToken>;
9
+ decodedIdToken_mock?: NoInfer<DecodedIdToken>;
10
+ }) => OidcSpaApiBuilder<AutoLogin, DecodedIdToken, AccessTokenClaims, ExcludedMethod | "withExpectedDecodedIdTokenShape">;
11
+ withAccessTokenValidation: {
12
+ <AccessTokenClaims extends Record<string, unknown> = AccessTokenClaims_RFC9068>(params: {
13
+ type: "RFC 9068: JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens";
14
+ accessTokenClaimsSchema?: ZodSchemaLike<AccessTokenClaims_RFC9068, AccessTokenClaims>;
15
+ accessTokenClaims_mock?: NoInfer<AccessTokenClaims>;
16
+ expectedAudience?: string | ((params: {
17
+ paramsOfBootstrap: ParamsOfBootstrap<boolean, Record<string, unknown>, AccessTokenClaims>;
18
+ }) => string);
19
+ }): OidcSpaApiBuilder<AutoLogin, DecodedIdToken, AccessTokenClaims, ExcludedMethod | "withAccessTokenValidation">;
20
+ <AccessTokenClaims extends Record<string, unknown>>(params: {
21
+ type: "custom";
22
+ createValidateAndGetAccessTokenClaims: CreateValidateAndGetAccessTokenClaims<AccessTokenClaims>;
23
+ }): OidcSpaApiBuilder<AutoLogin, DecodedIdToken, AccessTokenClaims, ExcludedMethod | "withAccessTokenValidation">;
24
+ };
25
+ finalize: () => OidcSpaApi<AutoLogin, DecodedIdToken, AccessTokenClaims>;
26
+ }, ExcludedMethod>;
27
+ export declare const oidcSpaApiBuilder: OidcSpaApiBuilder<false, Record<string, unknown>, undefined, never>;
@@ -0,0 +1,58 @@
1
+ import { assert } from "../../tools/tsafe/assert";
2
+ import { createCreateValidateAndGetAccessTokenClaims_rfc9068 } from "./accessTokenValidation_rfc9068";
3
+ import { createOidcSpaApi } from "./createOidcSpaApi";
4
+ function createOidcSpaApiBuilder(params) {
5
+ return {
6
+ withAutoLogin: () => createOidcSpaApiBuilder({
7
+ autoLogin: true,
8
+ decodedIdTokenSchema: params.decodedIdTokenSchema,
9
+ decodedIdToken_mock: params.decodedIdToken_mock,
10
+ createValidateAndGetAccessTokenClaims: params.createValidateAndGetAccessTokenClaims
11
+ }),
12
+ withExpectedDecodedIdTokenShape: ({ decodedIdTokenSchema, decodedIdToken_mock }) => createOidcSpaApiBuilder({
13
+ autoLogin: params.autoLogin,
14
+ decodedIdTokenSchema,
15
+ decodedIdToken_mock: decodedIdToken_mock,
16
+ createValidateAndGetAccessTokenClaims: params.createValidateAndGetAccessTokenClaims
17
+ }),
18
+ withAccessTokenValidation: params_scope => createOidcSpaApiBuilder({
19
+ autoLogin: params.autoLogin,
20
+ decodedIdTokenSchema: params.decodedIdTokenSchema,
21
+ decodedIdToken_mock: params.decodedIdToken_mock,
22
+ createValidateAndGetAccessTokenClaims: (() => {
23
+ switch (params_scope.type) {
24
+ case "RFC 9068: JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens": {
25
+ const { accessTokenClaimsSchema, accessTokenClaims_mock, expectedAudience } = params_scope;
26
+ const { createValidateAndGetAccessTokenClaims } = createCreateValidateAndGetAccessTokenClaims_rfc9068({
27
+ // @ts-expect-error
28
+ accessTokenClaims_mock,
29
+ // @ts-expect-error
30
+ accessTokenClaimsSchema,
31
+ expectedAudience
32
+ });
33
+ return createValidateAndGetAccessTokenClaims;
34
+ }
35
+ case "custom": {
36
+ const { createValidateAndGetAccessTokenClaims } = params_scope;
37
+ return createValidateAndGetAccessTokenClaims;
38
+ }
39
+ default:
40
+ assert(false);
41
+ }
42
+ })()
43
+ }),
44
+ finalize: () => createOidcSpaApi({
45
+ autoLogin: params.autoLogin,
46
+ decodedIdTokenSchema: params.decodedIdTokenSchema,
47
+ decodedIdToken_mock: params.decodedIdToken_mock,
48
+ createValidateAndGetAccessTokenClaims: params.createValidateAndGetAccessTokenClaims
49
+ })
50
+ };
51
+ }
52
+ export const oidcSpaApiBuilder = createOidcSpaApiBuilder({
53
+ autoLogin: false,
54
+ createValidateAndGetAccessTokenClaims: undefined,
55
+ decodedIdToken_mock: undefined,
56
+ decodedIdTokenSchema: undefined
57
+ });
58
+ //# sourceMappingURL=apiBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiBuilder.js","sourceRoot":"","sources":["../../../src/tanstack-start/react/apiBuilder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAe,MAAM,0BAA0B,CAAC;AAG/D,OAAO,EAAE,mDAAmD,EAAE,MAAM,iCAAiC,CAAC;AACtG,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAoEtD,SAAS,uBAAuB,CAI9B,MASD;IACG,OAAO;QACH,aAAa,EAAE,GAAG,EAAE,CAChB,uBAAuB,CAAC;YACpB,SAAS,EAAE,IAAI;YACf,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;YACjD,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;YAC/C,qCAAqC,EAAE,MAAM,CAAC,qCAAqC;SACtF,CAAC;QACN,+BAA+B,EAAE,CAAC,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,EAAE,EAAE,CAC/E,uBAAuB,CAAC;YACpB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,oBAAoB;YACpB,mBAAmB,EAAE,mBAAmB;YACxC,qCAAqC,EAAE,MAAM,CAAC,qCAAqC;SACtF,CAAC;QACN,yBAAyB,EAAE,YAAY,CAAC,EAAE,CACtC,uBAAuB,CAAC;YACpB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;YACjD,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;YAC/C,qCAAqC,EAAE,CAAC,GAAQ,EAAE;gBAC9C,QAAQ,YAAY,CAAC,IAAI,EAAE,CAAC;oBACxB,KAAK,oEAAoE,CAAC,CAAC,CAAC;wBACxE,MAAM,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,GACvE,YAAY,CAAC;wBAEjB,MAAM,EAAE,qCAAqC,EAAE,GAC3C,mDAAmD,CAEjD;4BACE,mBAAmB;4BACnB,sBAAsB;4BACtB,mBAAmB;4BACnB,uBAAuB;4BACvB,gBAAgB;yBACnB,CAAC,CAAC;wBACP,OAAO,qCAAqC,CAAC;oBACjD,CAAC;oBACD,KAAK,QAAQ,CAAC,CAAC,CAAC;wBACZ,MAAM,EAAE,qCAAqC,EAAE,GAAG,YAAY,CAAC;wBAC/D,OAAO,qCAAqC,CAAC;oBACjD,CAAC;oBACD;wBACI,MAAM,CAAqC,KAAK,CAAC,CAAC;gBAC1D,CAAC;YACL,CAAC,CAAC,EAAE;SACP,CAAC;QACN,QAAQ,EAAE,GAAG,EAAE,CACX,gBAAgB,CAA+C;YAC3D,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;YACjD,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;YAC/C,qCAAqC,EAAE,MAAM,CAAC,qCAAqC;SACtF,CAAC;KACT,CAAC;AACN,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;IACrD,SAAS,EAAE,KAAK;IAChB,qCAAqC,EAAE,SAAS;IAChD,mBAAmB,EAAE,SAAS;IAC9B,oBAAoB,EAAE,SAAS;CAClC,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { CreateValidateAndGetAccessTokenClaims, OidcSpaApi } from "./types";
2
+ import type { ZodSchemaLike } from "../../tools/ZodSchemaLike";
3
+ import type { Oidc as Oidc_core } from "../../core";
4
+ export declare function createOidcSpaApi<AutoLogin extends boolean, DecodedIdToken extends Record<string, unknown>, AccessTokenClaims extends Record<string, unknown> | undefined>(params: {
5
+ autoLogin: AutoLogin;
6
+ decodedIdTokenSchema: ZodSchemaLike<Oidc_core.Tokens.DecodedIdToken_OidcCoreSpec, DecodedIdToken> | undefined;
7
+ decodedIdToken_mock: DecodedIdToken | undefined;
8
+ createValidateAndGetAccessTokenClaims: CreateValidateAndGetAccessTokenClaims<AccessTokenClaims> | undefined;
9
+ }): OidcSpaApi<AutoLogin, DecodedIdToken, AccessTokenClaims>;