oidc-spa 8.3.6 → 8.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/StateDataCookie.d.ts +34 -0
- package/core/StateDataCookie.js +142 -0
- package/core/StateDataCookie.js.map +1 -0
- package/core/createOidc.js +25 -9
- package/core/createOidc.js.map +1 -1
- package/core/earlyInit.d.ts +0 -1
- package/core/earlyInit.js +4 -12
- package/core/earlyInit.js.map +1 -1
- package/core/loginOrGoToAuthServer.d.ts +1 -0
- package/core/loginOrGoToAuthServer.js +20 -9
- package/core/loginOrGoToAuthServer.js.map +1 -1
- package/entrypoint.d.ts +0 -1
- package/entrypoint.js +1 -3
- package/entrypoint.js.map +1 -1
- package/esm/core/StateDataCookie.d.ts +34 -0
- package/esm/core/StateDataCookie.js +135 -0
- package/esm/core/StateDataCookie.js.map +1 -0
- package/esm/core/createOidc.js +25 -9
- package/esm/core/createOidc.js.map +1 -1
- package/esm/core/earlyInit.d.ts +0 -1
- package/esm/core/earlyInit.js +4 -12
- package/esm/core/earlyInit.js.map +1 -1
- package/esm/core/loginOrGoToAuthServer.d.ts +1 -0
- package/esm/core/loginOrGoToAuthServer.js +20 -9
- package/esm/core/loginOrGoToAuthServer.js.map +1 -1
- package/esm/entrypoint.d.ts +0 -1
- package/esm/entrypoint.js +0 -1
- package/esm/entrypoint.js.map +1 -1
- package/esm/tanstack-start/react/createOidcSpaApi.js +2 -0
- package/esm/tanstack-start/react/createOidcSpaApi.js.map +1 -1
- package/esm/tanstack-start/react/index.d.ts +1 -1
- package/esm/tanstack-start/react/index.js +1 -1
- package/esm/tanstack-start/react/index.js.map +1 -1
- package/esm/tanstack-start/react/withOidcSpaServerEntry.d.ts +5 -0
- package/esm/tanstack-start/react/withOidcSpaServerEntry.js +38 -0
- package/esm/tanstack-start/react/withOidcSpaServerEntry.js.map +1 -0
- package/package.json +1 -1
- package/src/core/StateDataCookie.ts +217 -0
- package/src/core/createOidc.ts +34 -8
- package/src/core/earlyInit.ts +3 -15
- package/src/core/loginOrGoToAuthServer.ts +25 -9
- package/src/entrypoint.ts +0 -1
- package/src/tanstack-start/react/createOidcSpaApi.tsx +3 -0
- package/src/tanstack-start/react/index.ts +1 -1
- package/src/tanstack-start/react/withOidcSpaServerEntry.ts +60 -0
- package/src/vite-plugin/handleClientEntrypoint.ts +10 -67
- package/src/vite-plugin/handleServerEntrypoint.ts +129 -0
- package/src/vite-plugin/transformTanstackRouterCreateFileRoute.ts +0 -64
- package/src/vite-plugin/utils.ts +64 -0
- package/src/vite-plugin/vite-plugin.ts +31 -10
- package/vite-plugin/handleClientEntrypoint.d.ts +7 -5
- package/vite-plugin/handleClientEntrypoint.js +16 -62
- package/vite-plugin/handleClientEntrypoint.js.map +1 -1
- package/vite-plugin/handleServerEntrypoint.d.ts +12 -0
- package/vite-plugin/handleServerEntrypoint.js +113 -0
- package/vite-plugin/handleServerEntrypoint.js.map +1 -0
- package/vite-plugin/transformTanstackRouterCreateFileRoute.js +0 -39
- package/vite-plugin/transformTanstackRouterCreateFileRoute.js.map +1 -1
- package/vite-plugin/utils.d.ts +12 -0
- package/vite-plugin/utils.js +88 -0
- package/vite-plugin/utils.js.map +1 -0
- package/vite-plugin/vite-plugin.d.ts +1 -1
- package/vite-plugin/vite-plugin.js +21 -5
- package/vite-plugin/vite-plugin.js.map +1 -1
- package/core/requiredPostHydrationReplaceNavigationUrl.d.ts +0 -6
- package/core/requiredPostHydrationReplaceNavigationUrl.js +0 -12
- package/core/requiredPostHydrationReplaceNavigationUrl.js.map +0 -1
- package/esm/core/requiredPostHydrationReplaceNavigationUrl.d.ts +0 -6
- package/esm/core/requiredPostHydrationReplaceNavigationUrl.js +0 -8
- package/esm/core/requiredPostHydrationReplaceNavigationUrl.js.map +0 -1
- package/esm/tanstack-start/react/withHandlingOidcPostLoginNavigation.d.ts +0 -2
- package/esm/tanstack-start/react/withHandlingOidcPostLoginNavigation.js +0 -36
- package/esm/tanstack-start/react/withHandlingOidcPostLoginNavigation.js.map +0 -1
- package/src/core/requiredPostHydrationReplaceNavigationUrl.ts +0 -11
- package/src/tanstack-start/react/withHandlingOidcPostLoginNavigation.tsx +0 -46
|
@@ -6,8 +6,6 @@ const babel_1 = require("../vendor/build-runtime/babel");
|
|
|
6
6
|
const DISABLE_SSR_SPECIFIER = "__disableSsrIfLoginEnforced";
|
|
7
7
|
const DISABLE_SSR_SOURCE = "oidc-spa/react-tanstack-start";
|
|
8
8
|
const CREATE_FILE_ROUTE_IDENTIFIER = "createFileRoute";
|
|
9
|
-
const POST_LOGIN_IMPORT_SPECIFIER = "withHandlingOidcPostLoginNavigation";
|
|
10
|
-
const POST_LOGIN_IMPORT_SOURCE = "oidc-spa/react-tanstack-start";
|
|
11
9
|
function transformCreateFileRoute(params) {
|
|
12
10
|
const { code, id } = params;
|
|
13
11
|
const cleanId = sanitizeId(id);
|
|
@@ -27,9 +25,7 @@ function transformCreateFileRoute(params) {
|
|
|
27
25
|
const magicString = new magic_string_1.MagicString(code);
|
|
28
26
|
let hasCreateFileRouteImport = false;
|
|
29
27
|
let hasEnableImport = false;
|
|
30
|
-
let hasPostLoginImport = false;
|
|
31
28
|
let requiresEnableImport = false;
|
|
32
|
-
let requiresPostLoginImport = false;
|
|
33
29
|
let lastImportEnd;
|
|
34
30
|
let mutated = false;
|
|
35
31
|
(0, babel_1.babelTraverse)(ast, {
|
|
@@ -54,12 +50,6 @@ function transformCreateFileRoute(params) {
|
|
|
54
50
|
hasEnableImport = true;
|
|
55
51
|
}
|
|
56
52
|
}
|
|
57
|
-
if (sourceValue === POST_LOGIN_IMPORT_SOURCE) {
|
|
58
|
-
if (path.node.specifiers.some(specifier => babel_1.babelTypes.isImportSpecifier(specifier) &&
|
|
59
|
-
babel_1.babelTypes.isIdentifier(specifier.imported, { name: POST_LOGIN_IMPORT_SPECIFIER }))) {
|
|
60
|
-
hasPostLoginImport = true;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
53
|
},
|
|
64
54
|
CallExpression(path) {
|
|
65
55
|
const callee = path.get("callee");
|
|
@@ -90,24 +80,6 @@ function transformCreateFileRoute(params) {
|
|
|
90
80
|
localMutated = true;
|
|
91
81
|
}
|
|
92
82
|
}
|
|
93
|
-
const innerArgs = callee.node.arguments ?? [];
|
|
94
|
-
const isRootRoute = innerArgs.length > 0 && babel_1.babelTypes.isStringLiteral(innerArgs[0]) && innerArgs[0].value === "/";
|
|
95
|
-
if (isRootRoute) {
|
|
96
|
-
const componentProp = findComponentProperty(configNode);
|
|
97
|
-
if (componentProp) {
|
|
98
|
-
const valueNode = componentProp.value;
|
|
99
|
-
if (!isWrappedWithHandling(valueNode)) {
|
|
100
|
-
const start = valueNode.start ?? undefined;
|
|
101
|
-
const end = valueNode.end ?? undefined;
|
|
102
|
-
if (typeof start === "number" && typeof end === "number") {
|
|
103
|
-
const original = code.slice(start, end);
|
|
104
|
-
magicString.overwrite(start, end, `${POST_LOGIN_IMPORT_SPECIFIER}(${original})`);
|
|
105
|
-
requiresPostLoginImport = true;
|
|
106
|
-
localMutated = true;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
83
|
if (localMutated) {
|
|
112
84
|
mutated = true;
|
|
113
85
|
}
|
|
@@ -120,9 +92,6 @@ function transformCreateFileRoute(params) {
|
|
|
120
92
|
if (requiresEnableImport && !hasEnableImport) {
|
|
121
93
|
importStatements.push(`import { ${DISABLE_SSR_SPECIFIER} } from "${DISABLE_SSR_SOURCE}";`);
|
|
122
94
|
}
|
|
123
|
-
if (requiresPostLoginImport && !hasPostLoginImport) {
|
|
124
|
-
importStatements.push(`import { ${POST_LOGIN_IMPORT_SPECIFIER} } from "${POST_LOGIN_IMPORT_SOURCE}";`);
|
|
125
|
-
}
|
|
126
95
|
if (importStatements.length > 0) {
|
|
127
96
|
const insertionPoint = lastImportEnd ?? 0;
|
|
128
97
|
const prefix = insertionPoint === 0 ? "" : "\n";
|
|
@@ -134,11 +103,6 @@ function transformCreateFileRoute(params) {
|
|
|
134
103
|
map: magicString.generateMap({ hires: true, source: cleanId })
|
|
135
104
|
};
|
|
136
105
|
}
|
|
137
|
-
function findComponentProperty(node) {
|
|
138
|
-
return node.properties.find(prop => babel_1.babelTypes.isObjectProperty(prop) &&
|
|
139
|
-
((babel_1.babelTypes.isIdentifier(prop.key) && prop.key.name === "component") ||
|
|
140
|
-
(babel_1.babelTypes.isStringLiteral(prop.key) && prop.key.value === "component")));
|
|
141
|
-
}
|
|
142
106
|
function objectContainsLoaderOrBeforeLoad(node) {
|
|
143
107
|
return node.properties.some(prop => {
|
|
144
108
|
if (!babel_1.babelTypes.isObjectProperty(prop)) {
|
|
@@ -154,9 +118,6 @@ function objectContainsLoaderOrBeforeLoad(node) {
|
|
|
154
118
|
return false;
|
|
155
119
|
});
|
|
156
120
|
}
|
|
157
|
-
function isWrappedWithHandling(node) {
|
|
158
|
-
return (babel_1.babelTypes.isCallExpression(node) && babel_1.babelTypes.isIdentifier(node.callee, { name: POST_LOGIN_IMPORT_SPECIFIER }));
|
|
159
|
-
}
|
|
160
121
|
function isCandidateFile(id) {
|
|
161
122
|
if (id.includes("node_modules")) {
|
|
162
123
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformTanstackRouterCreateFileRoute.js","sourceRoot":"","sources":["../src/vite-plugin/transformTanstackRouterCreateFileRoute.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"transformTanstackRouterCreateFileRoute.js","sourceRoot":"","sources":["../src/vite-plugin/transformTanstackRouterCreateFileRoute.ts"],"names":[],"mappings":";;AAiBA,4DA4HC;AA7ID,uEAAmE;AACnE,yDAA4F;AAE5F,MAAM,qBAAqB,GAAG,6BAA6B,CAAC;AAC5D,MAAM,kBAAkB,GAAG,+BAA+B,CAAC;AAC3D,MAAM,4BAA4B,GAAG,iBAAiB,CAAC;AAYvD,SAAgB,wBAAwB,CAAC,MAAuB;IAC5D,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC;IAC5B,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;IAE/B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,GAAyC,CAAC;IAC9C,IAAI,CAAC;QACD,GAAG,GAAG,mBAAW,CAAC,KAAK,CAAC,IAAI,EAAE;YAC1B,UAAU,EAAE,QAAQ;YACpB,OAAO,EAAE,CAAC,YAAY,EAAE,KAAK,CAAC;SACjC,CAAC,CAAC;IACP,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,0BAAW,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,wBAAwB,GAAG,KAAK,CAAC;IACrC,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,IAAI,oBAAoB,GAAG,KAAK,CAAC;IACjC,IAAI,aAAiC,CAAC;IACtC,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,IAAA,qBAAa,EAAC,GAAG,EAAE;QACf,iBAAiB,CAAC,IAAI;YAClB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YAC3C,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;gBAClC,OAAO;YACX,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,SAAS,CAAC;YACvC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC1B,aAAa,GAAG,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;YACrF,CAAC;YAED,IAAI,WAAW,KAAK,wBAAwB,EAAE,CAAC;gBAC3C,IACI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CACrB,SAAS,CAAC,EAAE,CACR,kBAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC;oBAC9B,kBAAC,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC,CACjF,EACH,CAAC;oBACC,wBAAwB,GAAG,IAAI,CAAC;gBACpC,CAAC;YACL,CAAC;YAED,IAAI,WAAW,KAAK,kBAAkB,EAAE,CAAC;gBACrC,IACI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CACrB,SAAS,CAAC,EAAE,CACR,kBAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC;oBAC9B,kBAAC,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAC1E,EACH,CAAC;oBACC,eAAe,GAAG,IAAI,CAAC;gBAC3B,CAAC;YACL,CAAC;QACL,CAAC;QACD,cAAc,CAAC,IAAI;YACf,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,CAAC;gBAC7B,OAAO;YACX,CAAC;YAED,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC,EAAE,CAAC;gBACpE,OAAO;YACX,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACnC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpB,OAAO;YACX,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,EAAE,CAAC;gBAClC,OAAO;YACX,CAAC;YAED,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC;YAClC,IAAI,YAAY,GAAG,KAAK,CAAC;YAEzB,IAAI,gCAAgC,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,SAAS,CAAC;gBAC5C,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,IAAI,SAAS,CAAC;gBAExC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;oBACvD,WAAW,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,qBAAqB,GAAG,CAAC,CAAC;oBAC3D,WAAW,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;oBAClC,oBAAoB,GAAG,IAAI,CAAC;oBAC5B,YAAY,GAAG,IAAI,CAAC;gBACxB,CAAC;YACL,CAAC;YAED,IAAI,YAAY,EAAE,CAAC;gBACf,OAAO,GAAG,IAAI,CAAC;YACnB,CAAC;QACL,CAAC;KACJ,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,gBAAgB,GAAa,EAAE,CAAC;IAEtC,IAAI,oBAAoB,IAAI,CAAC,eAAe,EAAE,CAAC;QAC3C,gBAAgB,CAAC,IAAI,CAAC,YAAY,qBAAqB,YAAY,kBAAkB,IAAI,CAAC,CAAC;IAC/F,CAAC;IAED,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,cAAc,GAAG,aAAa,IAAI,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC;QACpB,WAAW,CAAC,UAAU,CAAC,cAAc,EAAE,GAAG,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED,OAAO;QACH,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE;QAC5B,GAAG,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;KACjE,CAAC;AACN,CAAC;AAED,SAAS,gCAAgC,CAAC,IAAwB;IAC9D,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC/B,IAAI,CAAC,kBAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,IAAI,kBAAC,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC;QAC9D,CAAC;QAED,IAAI,kBAAC,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,IAAI,GAAG,CAAC,KAAK,KAAK,YAAY,CAAC;QAChE,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,eAAe,CAAC,EAAU;IAC/B,IAAI,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,UAAU,CAAC,EAAU;IAC1B,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;QACpB,OAAO,EAAE,CAAC;IACd,CAAC;IACD,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare function resolveCandidate({ root, subDirectories, filenames }: {
|
|
2
|
+
root: string;
|
|
3
|
+
subDirectories: string[];
|
|
4
|
+
filenames: string[];
|
|
5
|
+
}): string | undefined;
|
|
6
|
+
export declare function resolvePackageFile(packageName: string, segments: string[]): string;
|
|
7
|
+
export declare function normalizeAbsolute(filePath: string): string;
|
|
8
|
+
export declare function splitId(id: string): {
|
|
9
|
+
path: string;
|
|
10
|
+
queryParams: URLSearchParams;
|
|
11
|
+
};
|
|
12
|
+
export declare function normalizeRequestPath(id: string): string;
|
|
@@ -0,0 +1,88 @@
|
|
|
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 () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.resolveCandidate = resolveCandidate;
|
|
37
|
+
exports.resolvePackageFile = resolvePackageFile;
|
|
38
|
+
exports.normalizeAbsolute = normalizeAbsolute;
|
|
39
|
+
exports.splitId = splitId;
|
|
40
|
+
exports.normalizeRequestPath = normalizeRequestPath;
|
|
41
|
+
const node_fs_1 = require("node:fs");
|
|
42
|
+
const path = __importStar(require("node:path"));
|
|
43
|
+
const node_url_1 = require("node:url");
|
|
44
|
+
const vite_1 = require("vite");
|
|
45
|
+
function resolveCandidate({ root, subDirectories, filenames }) {
|
|
46
|
+
for (const subDirectory of subDirectories) {
|
|
47
|
+
for (const filename of filenames) {
|
|
48
|
+
const candidate = path.resolve(root, subDirectory, filename);
|
|
49
|
+
if ((0, node_fs_1.existsSync)(candidate)) {
|
|
50
|
+
return candidate;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
function resolvePackageFile(packageName, segments) {
|
|
57
|
+
const pkgPath = require.resolve(`${packageName}/package.json`);
|
|
58
|
+
return path.resolve(path.dirname(pkgPath), ...segments);
|
|
59
|
+
}
|
|
60
|
+
function normalizeAbsolute(filePath) {
|
|
61
|
+
return (0, vite_1.normalizePath)(filePath);
|
|
62
|
+
}
|
|
63
|
+
function splitId(id) {
|
|
64
|
+
const queryIndex = id.indexOf("?");
|
|
65
|
+
if (queryIndex === -1) {
|
|
66
|
+
return { path: id, queryParams: new URLSearchParams() };
|
|
67
|
+
}
|
|
68
|
+
const pathPart = id.slice(0, queryIndex);
|
|
69
|
+
const queryString = id.slice(queryIndex + 1);
|
|
70
|
+
return { path: pathPart, queryParams: new URLSearchParams(queryString) };
|
|
71
|
+
}
|
|
72
|
+
function normalizeRequestPath(id) {
|
|
73
|
+
let requestPath = id;
|
|
74
|
+
if (requestPath.startsWith("\0")) {
|
|
75
|
+
requestPath = requestPath.slice(1);
|
|
76
|
+
}
|
|
77
|
+
if (requestPath.startsWith("/@fs/")) {
|
|
78
|
+
requestPath = requestPath.slice("/@fs/".length);
|
|
79
|
+
}
|
|
80
|
+
else if (requestPath.startsWith("file://")) {
|
|
81
|
+
requestPath = (0, node_url_1.fileURLToPath)(requestPath);
|
|
82
|
+
}
|
|
83
|
+
if (path.isAbsolute(requestPath) || requestPath.startsWith(".")) {
|
|
84
|
+
return (0, vite_1.normalizePath)(requestPath);
|
|
85
|
+
}
|
|
86
|
+
return (0, vite_1.normalizePath)(requestPath);
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/vite-plugin/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,4CAkBC;AAED,gDAGC;AAED,8CAEC;AAED,0BASC;AAED,oDAkBC;AA/DD,qCAAqC;AACrC,gDAAkC;AAClC,uCAAyC;AACzC,+BAAqC;AAErC,SAAgB,gBAAgB,CAAC,EAC7B,IAAI,EACJ,cAAc,EACd,SAAS,EAKZ;IACG,KAAK,MAAM,YAAY,IAAI,cAAc,EAAE,CAAC;QACxC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;YAC7D,IAAI,IAAA,oBAAU,EAAC,SAAS,CAAC,EAAE,CAAC;gBACxB,OAAO,SAAS,CAAC;YACrB,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAgB,kBAAkB,CAAC,WAAmB,EAAE,QAAkB;IACtE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,WAAW,eAAe,CAAC,CAAC;IAC/D,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC;AAC5D,CAAC;AAED,SAAgB,iBAAiB,CAAC,QAAgB;IAC9C,OAAO,IAAA,oBAAa,EAAC,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED,SAAgB,OAAO,CAAC,EAAU;IAC9B,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;QACpB,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,eAAe,EAAE,EAAE,CAAC;IAC5D,CAAC;IAED,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IACzC,MAAM,WAAW,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IAC7C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;AAC7E,CAAC;AAED,SAAgB,oBAAoB,CAAC,EAAU;IAC3C,IAAI,WAAW,GAAG,EAAE,CAAC;IAErB,IAAI,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC;SAAM,IAAI,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3C,WAAW,GAAG,IAAA,wBAAa,EAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9D,OAAO,IAAA,oBAAa,EAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,IAAA,oBAAa,EAAC,WAAW,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Plugin } from "vite";
|
|
2
2
|
import type { Param0 } from "../tools/tsafe/Param0";
|
|
3
3
|
import type { oidcEarlyInit } from "../entrypoint";
|
|
4
|
-
export type OidcSpaVitePluginParams = Omit<Param0<typeof oidcEarlyInit>, "
|
|
4
|
+
export type OidcSpaVitePluginParams = Omit<Param0<typeof oidcEarlyInit>, "BASE_URL">;
|
|
5
5
|
export declare function oidcSpa(params?: OidcSpaVitePluginParams): Plugin<any>;
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.oidcSpa = oidcSpa;
|
|
4
4
|
const assert_1 = require("../tools/tsafe/assert");
|
|
5
5
|
const handleClientEntrypoint_1 = require("./handleClientEntrypoint");
|
|
6
|
+
const handleServerEntrypoint_1 = require("./handleServerEntrypoint");
|
|
6
7
|
const manageOptimizedDeps_1 = require("./manageOptimizedDeps");
|
|
7
8
|
const transformTanstackRouterCreateFileRoute_1 = require("./transformTanstackRouterCreateFileRoute");
|
|
8
9
|
const projectType_1 = require("./projectType");
|
|
@@ -11,7 +12,8 @@ function oidcSpa(params = {
|
|
|
11
12
|
freezeXMLHttpRequest: true,
|
|
12
13
|
freezeWebSocket: true
|
|
13
14
|
}) {
|
|
14
|
-
let
|
|
15
|
+
let load_handleClientEntrypoint = undefined;
|
|
16
|
+
let load_handleServerEntrypoint = undefined;
|
|
15
17
|
let projectType = undefined;
|
|
16
18
|
const plugin = {
|
|
17
19
|
name: "oidc-spa",
|
|
@@ -31,11 +33,15 @@ function oidcSpa(params = {
|
|
|
31
33
|
projectType = (0, projectType_1.getProjectType)({
|
|
32
34
|
pluginNames: resolvedConfig.plugins.map(({ name }) => name)
|
|
33
35
|
});
|
|
34
|
-
|
|
36
|
+
load_handleClientEntrypoint = (0, handleClientEntrypoint_1.createHandleClientEntrypoint)({
|
|
35
37
|
oidcSpaVitePluginParams: params,
|
|
36
38
|
resolvedConfig,
|
|
37
39
|
projectType
|
|
38
|
-
});
|
|
40
|
+
}).load_handleClientEntrypoint;
|
|
41
|
+
load_handleServerEntrypoint = (0, handleServerEntrypoint_1.createHandleServerEntrypoint)({
|
|
42
|
+
resolvedConfig,
|
|
43
|
+
projectType
|
|
44
|
+
}).load_handleServerEntrypoint;
|
|
39
45
|
},
|
|
40
46
|
transform(code, id) {
|
|
41
47
|
let transformed = null;
|
|
@@ -52,9 +58,19 @@ function oidcSpa(params = {
|
|
|
52
58
|
return transformed;
|
|
53
59
|
},
|
|
54
60
|
async load(id) {
|
|
55
|
-
(0, assert_1.assert)(loadHandleEntrypoint !== undefined);
|
|
56
61
|
{
|
|
57
|
-
|
|
62
|
+
(0, assert_1.assert)(load_handleClientEntrypoint !== undefined);
|
|
63
|
+
const r = await load_handleClientEntrypoint({
|
|
64
|
+
id,
|
|
65
|
+
pluginContext: this
|
|
66
|
+
});
|
|
67
|
+
if (r !== null) {
|
|
68
|
+
return r;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
{
|
|
72
|
+
(0, assert_1.assert)(load_handleServerEntrypoint !== undefined);
|
|
73
|
+
const r = await load_handleServerEntrypoint({
|
|
58
74
|
id,
|
|
59
75
|
pluginContext: this
|
|
60
76
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite-plugin.js","sourceRoot":"","sources":["../src/vite-plugin/vite-plugin.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"vite-plugin.js","sourceRoot":"","sources":["../src/vite-plugin/vite-plugin.ts"],"names":[],"mappings":";;AAYA,0BAkGC;AA7GD,kDAA+C;AAG/C,qEAAwE;AACxE,qEAAwE;AACxE,+DAA4D;AAC5D,qGAAoF;AACpF,+CAAiE;AAIjE,SAAgB,OAAO,CACnB,SAAkC;IAC9B,WAAW,EAAE,IAAI;IACjB,oBAAoB,EAAE,IAAI;IAC1B,eAAe,EAAE,IAAI;CACxB;IAED,IAAI,2BAA2B,GAEb,SAAS,CAAC;IAC5B,IAAI,2BAA2B,GAEb,SAAS,CAAC;IAE5B,IAAI,WAAW,GAA4B,SAAS,CAAC;IAErD,MAAM,MAAM,GAAW;QACnB,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,KAAK;QACd,MAAM,CAAC,UAAU;YACb,MAAM,WAAW,GAAG,IAAA,4BAAc,EAAC;gBAC/B,WAAW,EACP,UAAU,CAAC,OAAO;oBACd,EAAE,IAAI,EAAE;qBACP,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,YAAY,MAAM,CAAC;qBAC1C,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,MAAM,CAAC;qBAClC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;aAC5C,CAAC,CAAC;YAEH,UAAU,GAAG,IAAA,yCAAmB,EAAC,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;YAC9D,OAAO,UAAU,CAAC;QACtB,CAAC;QACD,cAAc,CAAC,cAAc;YACzB,WAAW,GAAG,IAAA,4BAAc,EAAC;gBACzB,WAAW,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC;aAC9D,CAAC,CAAC;YAEH,2BAA2B,GAAG,IAAA,qDAA4B,EAAC;gBACvD,uBAAuB,EAAE,MAAM;gBAC/B,cAAc;gBACd,WAAW;aACd,CAAC,CAAC,2BAA2B,CAAC;YAE/B,2BAA2B,GAAG,IAAA,qDAA4B,EAAC;gBACvD,cAAc;gBACd,WAAW;aACd,CAAC,CAAC,2BAA2B,CAAC;QACnC,CAAC;QACD,SAAS,CAAC,IAAI,EAAE,EAAE;YACd,IAAI,WAAW,GAA2B,IAAI,CAAC;YAE/C,IAAA,eAAM,EAAC,WAAW,KAAK,SAAS,CAAC,CAAC;YAElC,uCAAuC,EAAE,CAAC;gBACtC,IAAI,WAAW,KAAK,gBAAgB,EAAE,CAAC;oBACnC,MAAM,uCAAuC,CAAC;gBAClD,CAAC;gBAED,WAAW,GAAG,IAAA,iEAAwB,EAAC;oBACnC,IAAI;oBACJ,EAAE;iBACL,CAAC,CAAC;YACP,CAAC;YAED,OAAO,WAAW,CAAC;QACvB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE;YACT,CAAC;gBACG,IAAA,eAAM,EAAC,2BAA2B,KAAK,SAAS,CAAC,CAAC;gBAElD,MAAM,CAAC,GAAG,MAAM,2BAA2B,CAAC;oBACxC,EAAE;oBACF,aAAa,EAAE,IAAI;iBACtB,CAAC,CAAC;gBAEH,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;oBACb,OAAO,CAAC,CAAC;gBACb,CAAC;YACL,CAAC;YAED,CAAC;gBACG,IAAA,eAAM,EAAC,2BAA2B,KAAK,SAAS,CAAC,CAAC;gBAElD,MAAM,CAAC,GAAG,MAAM,2BAA2B,CAAC;oBACxC,EAAE;oBACF,aAAa,EAAE,IAAI;iBACtB,CAAC,CAAC;gBAEH,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;oBACb,OAAO,CAAC,CAAC;gBACb,CAAC;YACL,CAAC;YAED,OAAO,IAAI,CAAC;QAChB,CAAC;KACJ,CAAC;IAEF,OAAO,MAAM,CAAC;AAClB,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getOidcRequiredPostHydrationReplaceNavigationUrl = getOidcRequiredPostHydrationReplaceNavigationUrl;
|
|
4
|
-
exports.setOidcRequiredPostHydrationReplaceNavigationUrl = setOidcRequiredPostHydrationReplaceNavigationUrl;
|
|
5
|
-
let rootRelativeRedirectUrl = undefined;
|
|
6
|
-
function getOidcRequiredPostHydrationReplaceNavigationUrl() {
|
|
7
|
-
return { rootRelativeRedirectUrl };
|
|
8
|
-
}
|
|
9
|
-
function setOidcRequiredPostHydrationReplaceNavigationUrl(params) {
|
|
10
|
-
rootRelativeRedirectUrl = params.rootRelativeRedirectUrl;
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=requiredPostHydrationReplaceNavigationUrl.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"requiredPostHydrationReplaceNavigationUrl.js","sourceRoot":"","sources":["../src/core/requiredPostHydrationReplaceNavigationUrl.ts"],"names":[],"mappings":";;AAEA,4GAEC;AAED,4GAIC;AAVD,IAAI,uBAAuB,GAAuB,SAAS,CAAC;AAE5D,SAAgB,gDAAgD;IAC5D,OAAO,EAAE,uBAAuB,EAAE,CAAC;AACvC,CAAC;AAED,SAAgB,gDAAgD,CAAC,MAEhE;IACG,uBAAuB,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAC7D,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
let rootRelativeRedirectUrl = undefined;
|
|
2
|
-
export function getOidcRequiredPostHydrationReplaceNavigationUrl() {
|
|
3
|
-
return { rootRelativeRedirectUrl };
|
|
4
|
-
}
|
|
5
|
-
export function setOidcRequiredPostHydrationReplaceNavigationUrl(params) {
|
|
6
|
-
rootRelativeRedirectUrl = params.rootRelativeRedirectUrl;
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=requiredPostHydrationReplaceNavigationUrl.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"requiredPostHydrationReplaceNavigationUrl.js","sourceRoot":"","sources":["../../src/core/requiredPostHydrationReplaceNavigationUrl.ts"],"names":[],"mappings":"AAAA,IAAI,uBAAuB,GAAuB,SAAS,CAAC;AAE5D,MAAM,UAAU,gDAAgD;IAC5D,OAAO,EAAE,uBAAuB,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,gDAAgD,CAAC,MAEhE;IACG,uBAAuB,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAC7D,CAAC"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { useEffect } from "react";
|
|
3
|
-
import { getOidcRequiredPostHydrationReplaceNavigationUrl } from "../../core/requiredPostHydrationReplaceNavigationUrl";
|
|
4
|
-
import { useRouter } from "@tanstack/react-router";
|
|
5
|
-
export function withHandlingOidcPostLoginNavigation(Component) {
|
|
6
|
-
let { rootRelativeRedirectUrl } = getOidcRequiredPostHydrationReplaceNavigationUrl();
|
|
7
|
-
if (rootRelativeRedirectUrl === undefined) {
|
|
8
|
-
// @ts-expect-error
|
|
9
|
-
return Component;
|
|
10
|
-
}
|
|
11
|
-
function ComponentWithHandlingOidcPostLoginNavigation(props) {
|
|
12
|
-
const router = useRouter();
|
|
13
|
-
useEffect(() => {
|
|
14
|
-
if (rootRelativeRedirectUrl === undefined) {
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
// Defer navigation to the next paint to avoid hydration mismatches.
|
|
18
|
-
// A double rAF schedules after hydration/paint without arbitrary timeouts.
|
|
19
|
-
requestAnimationFrame(() => {
|
|
20
|
-
requestAnimationFrame(() => {
|
|
21
|
-
if (rootRelativeRedirectUrl !== undefined) {
|
|
22
|
-
router.navigate({
|
|
23
|
-
to: rootRelativeRedirectUrl,
|
|
24
|
-
replace: true
|
|
25
|
-
});
|
|
26
|
-
rootRelativeRedirectUrl = undefined;
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
}, []);
|
|
31
|
-
return _jsx(Component, { ...props });
|
|
32
|
-
}
|
|
33
|
-
ComponentWithHandlingOidcPostLoginNavigation.displayName = `${Component.displayName ?? Component.name ?? "Component"}WithHandlingOidcPostLoginNavigation`;
|
|
34
|
-
return ComponentWithHandlingOidcPostLoginNavigation;
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=withHandlingOidcPostLoginNavigation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"withHandlingOidcPostLoginNavigation.js","sourceRoot":"","sources":["../../../src/tanstack-start/react/withHandlingOidcPostLoginNavigation.tsx"],"names":[],"mappings":";AAAA,OAAO,EAA+B,SAAS,EAAE,MAAM,OAAO,CAAC;AAC/D,OAAO,EAAE,gDAAgD,EAAE,MAAM,sDAAsD,CAAC;AACxH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,MAAM,UAAU,mCAAmC,CAC/C,SAA+B;IAE/B,IAAI,EAAE,uBAAuB,EAAE,GAAG,gDAAgD,EAAE,CAAC;IAErF,IAAI,uBAAuB,KAAK,SAAS,EAAE,CAAC;QACxC,mBAAmB;QACnB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,SAAS,4CAA4C,CAAC,KAAY;QAC9D,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAE3B,SAAS,CAAC,GAAG,EAAE;YACX,IAAI,uBAAuB,KAAK,SAAS,EAAE,CAAC;gBACxC,OAAO;YACX,CAAC;YAED,oEAAoE;YACpE,2EAA2E;YAC3E,qBAAqB,CAAC,GAAG,EAAE;gBACvB,qBAAqB,CAAC,GAAG,EAAE;oBACvB,IAAI,uBAAuB,KAAK,SAAS,EAAE,CAAC;wBACxC,MAAM,CAAC,QAAQ,CAAC;4BACZ,EAAE,EAAE,uBAAuB;4BAC3B,OAAO,EAAE,IAAI;yBAChB,CAAC,CAAC;wBACH,uBAAuB,GAAG,SAAS,CAAC;oBACxC,CAAC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,OAAO,KAAC,SAAS,OAAK,KAAK,GAAI,CAAC;IACpC,CAAC;IAED,4CAA4C,CAAC,WAAW,GAAG,GACvD,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,IAAI,IAAI,WAC/C,qCAAqC,CAAC;IAEtC,OAAO,4CAA4C,CAAC;AACxD,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
let rootRelativeRedirectUrl: string | undefined = undefined;
|
|
2
|
-
|
|
3
|
-
export function getOidcRequiredPostHydrationReplaceNavigationUrl() {
|
|
4
|
-
return { rootRelativeRedirectUrl };
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
export function setOidcRequiredPostHydrationReplaceNavigationUrl(params: {
|
|
8
|
-
rootRelativeRedirectUrl: string;
|
|
9
|
-
}) {
|
|
10
|
-
rootRelativeRedirectUrl = params.rootRelativeRedirectUrl;
|
|
11
|
-
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { type ComponentType, type FC, useEffect } from "react";
|
|
2
|
-
import { getOidcRequiredPostHydrationReplaceNavigationUrl } from "../../core/requiredPostHydrationReplaceNavigationUrl";
|
|
3
|
-
import { useRouter } from "@tanstack/react-router";
|
|
4
|
-
|
|
5
|
-
export function withHandlingOidcPostLoginNavigation<Props extends Record<string, unknown>>(
|
|
6
|
-
Component: ComponentType<Props>
|
|
7
|
-
): FC<Props> {
|
|
8
|
-
let { rootRelativeRedirectUrl } = getOidcRequiredPostHydrationReplaceNavigationUrl();
|
|
9
|
-
|
|
10
|
-
if (rootRelativeRedirectUrl === undefined) {
|
|
11
|
-
// @ts-expect-error
|
|
12
|
-
return Component;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
function ComponentWithHandlingOidcPostLoginNavigation(props: Props) {
|
|
16
|
-
const router = useRouter();
|
|
17
|
-
|
|
18
|
-
useEffect(() => {
|
|
19
|
-
if (rootRelativeRedirectUrl === undefined) {
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
// Defer navigation to the next paint to avoid hydration mismatches.
|
|
24
|
-
// A double rAF schedules after hydration/paint without arbitrary timeouts.
|
|
25
|
-
requestAnimationFrame(() => {
|
|
26
|
-
requestAnimationFrame(() => {
|
|
27
|
-
if (rootRelativeRedirectUrl !== undefined) {
|
|
28
|
-
router.navigate({
|
|
29
|
-
to: rootRelativeRedirectUrl,
|
|
30
|
-
replace: true
|
|
31
|
-
});
|
|
32
|
-
rootRelativeRedirectUrl = undefined;
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
});
|
|
36
|
-
}, []);
|
|
37
|
-
|
|
38
|
-
return <Component {...props} />;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
ComponentWithHandlingOidcPostLoginNavigation.displayName = `${
|
|
42
|
-
Component.displayName ?? Component.name ?? "Component"
|
|
43
|
-
}WithHandlingOidcPostLoginNavigation`;
|
|
44
|
-
|
|
45
|
-
return ComponentWithHandlingOidcPostLoginNavigation;
|
|
46
|
-
}
|