@tern-secure/nextjs 5.2.0-canary.v20251020170039 → 5.2.0-canary.v20251024005655
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/dist/cjs/app-router/client/TernSecureProvider.js +11 -1
- package/dist/cjs/app-router/client/TernSecureProvider.js.map +1 -1
- package/dist/cjs/app-router/client/useAwaitablePush.js +39 -0
- package/dist/cjs/app-router/client/useAwaitablePush.js.map +1 -0
- package/dist/cjs/app-router/client/useAwaitableReplace.js +39 -0
- package/dist/cjs/app-router/client/useAwaitableReplace.js.map +1 -0
- package/dist/cjs/app-router/client/useInternalNavFun.js +73 -0
- package/dist/cjs/app-router/client/useInternalNavFun.js.map +1 -0
- package/dist/cjs/app-router/server/auth.js +1 -2
- package/dist/cjs/app-router/server/auth.js.map +1 -1
- package/dist/cjs/boundary/hooks/useSafeLayoutEffect.js +40 -0
- package/dist/cjs/boundary/hooks/useSafeLayoutEffect.js.map +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/server/node/ternSecureNodeMiddleware.js +2 -3
- package/dist/cjs/server/node/ternSecureNodeMiddleware.js.map +1 -1
- package/dist/cjs/server/protect.js.map +1 -1
- package/dist/cjs/server/ternSecureEdgeMiddleware.js +5 -11
- package/dist/cjs/server/ternSecureEdgeMiddleware.js.map +1 -1
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/utils/allNextProviderProps.js +18 -2
- package/dist/cjs/utils/allNextProviderProps.js.map +1 -1
- package/dist/cjs/utils/removeBasePath.js +36 -0
- package/dist/cjs/utils/removeBasePath.js.map +1 -0
- package/dist/esm/app-router/client/TernSecureProvider.js +11 -1
- package/dist/esm/app-router/client/TernSecureProvider.js.map +1 -1
- package/dist/esm/app-router/client/useAwaitablePush.js +15 -0
- package/dist/esm/app-router/client/useAwaitablePush.js.map +1 -0
- package/dist/esm/app-router/client/useAwaitableReplace.js +15 -0
- package/dist/esm/app-router/client/useAwaitableReplace.js.map +1 -0
- package/dist/esm/app-router/client/useInternalNavFun.js +49 -0
- package/dist/esm/app-router/client/useInternalNavFun.js.map +1 -0
- package/dist/esm/app-router/server/auth.js +1 -2
- package/dist/esm/app-router/server/auth.js.map +1 -1
- package/dist/esm/boundary/hooks/useSafeLayoutEffect.js +6 -0
- package/dist/esm/boundary/hooks/useSafeLayoutEffect.js.map +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/server/node/ternSecureNodeMiddleware.js +1 -2
- package/dist/esm/server/node/ternSecureNodeMiddleware.js.map +1 -1
- package/dist/esm/server/protect.js.map +1 -1
- package/dist/esm/server/ternSecureEdgeMiddleware.js +5 -11
- package/dist/esm/server/ternSecureEdgeMiddleware.js.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/utils/allNextProviderProps.js +18 -2
- package/dist/esm/utils/allNextProviderProps.js.map +1 -1
- package/dist/esm/utils/removeBasePath.js +12 -0
- package/dist/esm/utils/removeBasePath.js.map +1 -0
- package/dist/types/app-router/client/TernSecureProvider.d.ts.map +1 -1
- package/dist/types/app-router/client/useAwaitablePush.d.ts +13 -0
- package/dist/types/app-router/client/useAwaitablePush.d.ts.map +1 -0
- package/dist/types/app-router/client/useAwaitableReplace.d.ts +13 -0
- package/dist/types/app-router/client/useAwaitableReplace.d.ts.map +1 -0
- package/dist/types/app-router/client/useInternalNavFun.d.ts +7 -0
- package/dist/types/app-router/client/useInternalNavFun.d.ts.map +1 -0
- package/dist/types/app-router/server/auth.d.ts +1 -2
- package/dist/types/app-router/server/auth.d.ts.map +1 -1
- package/dist/types/boundary/hooks/useSafeLayoutEffect.d.ts +3 -0
- package/dist/types/boundary/hooks/useSafeLayoutEffect.d.ts.map +1 -0
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/server/node/ternSecureNodeMiddleware.d.ts.map +1 -1
- package/dist/types/server/protect.d.ts +1 -2
- package/dist/types/server/protect.d.ts.map +1 -1
- package/dist/types/server/ternSecureEdgeMiddleware.d.ts +1 -2
- package/dist/types/server/ternSecureEdgeMiddleware.d.ts.map +1 -1
- package/dist/types/types.d.ts +10 -1
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/utils/allNextProviderProps.d.ts +2 -2
- package/dist/types/utils/allNextProviderProps.d.ts.map +1 -1
- package/dist/types/utils/removeBasePath.d.ts +7 -0
- package/dist/types/utils/removeBasePath.d.ts.map +1 -0
- package/package.json +5 -5
- package/dist/cjs/server/redirect.js +0 -84
- package/dist/cjs/server/redirect.js.map +0 -1
- package/dist/esm/server/redirect.js +0 -60
- package/dist/esm/server/redirect.js.map +0 -1
- package/dist/types/server/redirect.d.ts +0 -20
- package/dist/types/server/redirect.d.ts.map +0 -1
|
@@ -2,6 +2,10 @@ const allNextProviderPropsWithEnv = (nextProps) => {
|
|
|
2
2
|
const {
|
|
3
3
|
signInUrl,
|
|
4
4
|
signUpUrl,
|
|
5
|
+
signInForceRedirectUrl,
|
|
6
|
+
signUpForceRedirectUrl,
|
|
7
|
+
signInFallbackRedirectUrl,
|
|
8
|
+
signUpFallbackRedirectUrl,
|
|
5
9
|
//apiKey: propsApiKey,
|
|
6
10
|
apiUrl: propsApiUrl,
|
|
7
11
|
requiresVerification: propsRequiresVerification,
|
|
@@ -18,8 +22,12 @@ const allNextProviderPropsWithEnv = (nextProps) => {
|
|
|
18
22
|
customDomain: process.env.NEXT_PUBLIC_TERN_CUSTOM_DOMAIN,
|
|
19
23
|
proxyUrl: process.env.NEXT_PUBLIC_TERN_PROXY_URL,
|
|
20
24
|
environment: process.env.NEXT_PUBLIC_TERN_ENVIRONMENT,
|
|
21
|
-
signInUrl: process.env.NEXT_PUBLIC_SIGN_IN_URL,
|
|
22
|
-
signUpUrl: process.env.NEXT_PUBLIC_SIGN_UP_URL,
|
|
25
|
+
signInUrl: process.env.NEXT_PUBLIC_SIGN_IN_URL || "",
|
|
26
|
+
signUpUrl: process.env.NEXT_PUBLIC_SIGN_UP_URL || "",
|
|
27
|
+
signInForceRedirectUrl: process.env.NEXT_PUBLIC_SIGN_IN_FORCE_REDIRECT_URL || "",
|
|
28
|
+
signUpForceRedirectUrl: process.env.NEXT_PUBLIC_SIGN_UP_FORCE_REDIRECT_URL || "",
|
|
29
|
+
signInFallbackRedirectUrl: process.env.NEXT_PUBLIC_SIGN_IN_FALLBACK_REDIRECT_URL || "",
|
|
30
|
+
signUpFallbackRedirectUrl: process.env.NEXT_PUBLIC_SIGN_UP_FALLBACK_REDIRECT_URL || "",
|
|
23
31
|
persistence: process.env.NEXT_PUBLIC_TERN_PERSISTENCE,
|
|
24
32
|
useEmulator: process.env.NEXT_PUBLIC_USE_FIREBASE_EMULATOR,
|
|
25
33
|
projectIdAdmin: process.env.FIREBASE_PROJECT_ID,
|
|
@@ -40,6 +48,10 @@ const allNextProviderPropsWithEnv = (nextProps) => {
|
|
|
40
48
|
const finalApiUrl = propsApiUrl ?? envConfig.apiUrl;
|
|
41
49
|
const finalSignInUrl = signInUrl ?? envConfig.signInUrl;
|
|
42
50
|
const finalSignUpUrl = signUpUrl ?? envConfig.signUpUrl;
|
|
51
|
+
const finalSignInForceRedirectUrl = signInForceRedirectUrl ?? envConfig.signInForceRedirectUrl;
|
|
52
|
+
const finalSignUpForceRedirectUrl = signUpForceRedirectUrl ?? envConfig.signUpForceRedirectUrl;
|
|
53
|
+
const finalSignInFallbackRedirectUrl = signInFallbackRedirectUrl ?? envConfig.signInFallbackRedirectUrl;
|
|
54
|
+
const finalSignUpFallbackRedirectUrl = signUpFallbackRedirectUrl ?? envConfig.signUpFallbackRedirectUrl;
|
|
43
55
|
const finalPersistence = propsPersistence ?? envConfig.persistence;
|
|
44
56
|
const result = {
|
|
45
57
|
...baseProps,
|
|
@@ -56,6 +68,10 @@ const allNextProviderPropsWithEnv = (nextProps) => {
|
|
|
56
68
|
bypassApiKey: baseProps.bypassApiKey,
|
|
57
69
|
signInUrl: finalSignInUrl,
|
|
58
70
|
signUpUrl: finalSignUpUrl,
|
|
71
|
+
signInForceRedirectUrl: finalSignInForceRedirectUrl,
|
|
72
|
+
signUpForceRedirectUrl: finalSignUpForceRedirectUrl,
|
|
73
|
+
signInFallbackRedirectUrl: finalSignInFallbackRedirectUrl,
|
|
74
|
+
signUpFallbackRedirectUrl: finalSignUpFallbackRedirectUrl,
|
|
59
75
|
mode: baseProps.mode,
|
|
60
76
|
apiUrl: finalApiUrl,
|
|
61
77
|
persistence: finalPersistence
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/allNextProviderProps.ts"],"sourcesContent":["import type { \n IsoTernSecureAuthOptions,\n TernSecureProviderProps} from \"@tern-secure/react\";\n\nimport type { NextProviderProcessedProps, TernSecureNextProps } from \"../types\";\n\n
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/allNextProviderProps.ts"],"sourcesContent":["import type { \n IsoTernSecureAuthOptions,\n TernSecureProviderProps} from \"@tern-secure/react\";\n\nimport type { NextProviderProcessedProps, TernSecureNextProps } from \"../types\";\n\n\nexport const allNextProviderPropsWithEnv = (\n nextProps: Omit<TernSecureNextProps, 'children'>\n): any => {\n const {\n signInUrl,\n signUpUrl,\n signInForceRedirectUrl,\n signUpForceRedirectUrl,\n signInFallbackRedirectUrl,\n signUpFallbackRedirectUrl,\n //apiKey: propsApiKey,\n apiUrl: propsApiUrl,\n requiresVerification: propsRequiresVerification,\n isTernSecureDev: propsIsTernSecureDev,\n enableServiceWorker: propsEnableServiceWorker,\n loadingComponent: propsLoadingComponent,\n persistence: propsPersistence,\n ...baseProps \n } = nextProps;\n\n const envConfig = {\n apiKey: process.env.NEXT_PUBLIC_TERN_API_KEY,\n apiUrl: process.env.TERNSECURE_API_URL || '',\n projectId: process.env.NEXT_PUBLIC_TERN_PROJECT_ID,\n customDomain: process.env.NEXT_PUBLIC_TERN_CUSTOM_DOMAIN,\n proxyUrl: process.env.NEXT_PUBLIC_TERN_PROXY_URL,\n environment: process.env.NEXT_PUBLIC_TERN_ENVIRONMENT,\n signInUrl: process.env.NEXT_PUBLIC_SIGN_IN_URL || '',\n signUpUrl: process.env.NEXT_PUBLIC_SIGN_UP_URL || '',\n signInForceRedirectUrl: process.env.NEXT_PUBLIC_SIGN_IN_FORCE_REDIRECT_URL || '',\n signUpForceRedirectUrl: process.env.NEXT_PUBLIC_SIGN_UP_FORCE_REDIRECT_URL || '',\n signInFallbackRedirectUrl: process.env.NEXT_PUBLIC_SIGN_IN_FALLBACK_REDIRECT_URL || '',\n signUpFallbackRedirectUrl: process.env.NEXT_PUBLIC_SIGN_UP_FALLBACK_REDIRECT_URL || '',\n persistence: process.env.NEXT_PUBLIC_TERN_PERSISTENCE as 'local' | 'session' | 'browserCookie' | 'none',\n useEmulator: process.env.NEXT_PUBLIC_USE_FIREBASE_EMULATOR,\n projectIdAdmin: process.env.FIREBASE_PROJECT_ID,\n clientEmail: process.env.FIREBASE_CLIENT_EMAIL,\n privateKey: process.env.FIREBASE_PRIVATE_KEY,\n };\n\n const ternSecureConfig = {\n apiKey: process.env.NEXT_PUBLIC_FIREBASE_API_KEY || '',\n authDomain: process.env.NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN || '',\n appName: process.env.NEXT_PUBLIC_FIREBASE_APP_NAME || '',\n projectId: process.env.NEXT_PUBLIC_FIREBASE_PROJECT_ID || '',\n storageBucket: process.env.NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET || '',\n messagingSenderId: process.env.NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID || '',\n appId: process.env.NEXT_PUBLIC_FIREBASE_APP_ID || '',\n measurementId: process.env.NEXT_PUBLIC_FIREBASE_MEASUREMENTID,\n tenantId: process.env.NEXT_PUBLIC_FIREBASE_TENANT_ID || '',\n };\n\n // Merge config values: props take precedence over environment variables\n //const finalApiKey = propsApiKey ?? envConfig.apiKey;\n const finalApiUrl = propsApiUrl ?? envConfig.apiUrl;\n const finalSignInUrl = signInUrl ?? envConfig.signInUrl;\n const finalSignUpUrl = signUpUrl ?? envConfig.signUpUrl;\n const finalSignInForceRedirectUrl = signInForceRedirectUrl ?? envConfig.signInForceRedirectUrl;\n const finalSignUpForceRedirectUrl = signUpForceRedirectUrl ?? envConfig.signUpForceRedirectUrl;\n const finalSignInFallbackRedirectUrl = signInFallbackRedirectUrl ?? envConfig.signInFallbackRedirectUrl;\n const finalSignUpFallbackRedirectUrl = signUpFallbackRedirectUrl ?? envConfig.signUpFallbackRedirectUrl;\n const finalPersistence = propsPersistence ?? envConfig.persistence;\n\n // Construct the result, ensuring it conforms to NextProviderProcessedProps\n // (Omit<TernSecureProviderProps, 'children'>)\n const result: NextProviderProcessedProps = {\n ...(baseProps as Omit<TernSecureProviderProps, 'children' | keyof IsoTernSecureAuthOptions | 'requiresVerification' | 'loadingComponent'>),\n\n // Set the Firebase configuration properties\n ternSecureConfig,\n \n // Set properties explicitly taken from TernSecureNextProps (props version)\n // These are part of the TernSecureProviderProps interface.\n requiresVerification: propsRequiresVerification,\n isTernSecureDev: propsIsTernSecureDev,\n enableServiceWorker: propsEnableServiceWorker,\n loadingComponent: propsLoadingComponent,\n\n //TernSecure: baseProps.Instance,\n initialState: baseProps.initialState,\n bypassApiKey: baseProps.bypassApiKey,\n signInUrl: finalSignInUrl,\n signUpUrl: finalSignUpUrl,\n signInForceRedirectUrl: finalSignInForceRedirectUrl,\n signUpForceRedirectUrl: finalSignUpForceRedirectUrl,\n signInFallbackRedirectUrl: finalSignInFallbackRedirectUrl,\n signUpFallbackRedirectUrl: finalSignUpFallbackRedirectUrl,\n mode: baseProps.mode,\n apiUrl: finalApiUrl,\n persistence: finalPersistence\n };\n\n // Clean up undefined keys that might have resulted from spreading if not present in baseProps\n // and also not set by merged values (e.g. if env var is also undefined)\n Object.keys(result).forEach(key => {\n if (result[key as keyof NextProviderProcessedProps] === undefined) {\n delete result[key as keyof NextProviderProcessedProps];\n }\n });\n\n return result;\n};"],"mappings":"AAOO,MAAM,8BAA8B,CACzC,cACQ;AACR,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA,QAAQ;AAAA,IACR,sBAAsB;AAAA,IACtB,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,IACrB,kBAAkB;AAAA,IAClB,aAAa;AAAA,IACb,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,YAAY;AAAA,IAChB,QAAQ,QAAQ,IAAI;AAAA,IACpB,QAAQ,QAAQ,IAAI,sBAAsB;AAAA,IAC1C,WAAW,QAAQ,IAAI;AAAA,IACvB,cAAc,QAAQ,IAAI;AAAA,IAC1B,UAAU,QAAQ,IAAI;AAAA,IACtB,aAAa,QAAQ,IAAI;AAAA,IACzB,WAAW,QAAQ,IAAI,2BAA2B;AAAA,IAClD,WAAW,QAAQ,IAAI,2BAA2B;AAAA,IAClD,wBAAwB,QAAQ,IAAI,0CAA0C;AAAA,IAC9E,wBAAwB,QAAQ,IAAI,0CAA0C;AAAA,IAC9E,2BAA2B,QAAQ,IAAI,6CAA6C;AAAA,IACpF,2BAA2B,QAAQ,IAAI,6CAA6C;AAAA,IACpF,aAAa,QAAQ,IAAI;AAAA,IACzB,aAAa,QAAQ,IAAI;AAAA,IACzB,gBAAgB,QAAQ,IAAI;AAAA,IAC5B,aAAa,QAAQ,IAAI;AAAA,IACzB,YAAY,QAAQ,IAAI;AAAA,EAC1B;AAEA,QAAM,mBAAmB;AAAA,IACvB,QAAQ,QAAQ,IAAI,gCAAgC;AAAA,IACpD,YAAY,QAAQ,IAAI,oCAAoC;AAAA,IAC5D,SAAS,QAAQ,IAAI,iCAAiC;AAAA,IACtD,WAAW,QAAQ,IAAI,mCAAmC;AAAA,IAC1D,eAAe,QAAQ,IAAI,uCAAuC;AAAA,IAClE,mBAAmB,QAAQ,IAAI,4CAA4C;AAAA,IAC3E,OAAO,QAAQ,IAAI,+BAA+B;AAAA,IAClD,eAAe,QAAQ,IAAI;AAAA,IAC3B,UAAU,QAAQ,IAAI,kCAAkC;AAAA,EAC1D;AAIA,QAAM,cAAc,eAAe,UAAU;AAC7C,QAAM,iBAAiB,aAAa,UAAU;AAC9C,QAAM,iBAAiB,aAAa,UAAU;AAC9C,QAAM,8BAA8B,0BAA0B,UAAU;AACxE,QAAM,8BAA8B,0BAA0B,UAAU;AACxE,QAAM,iCAAiC,6BAA6B,UAAU;AAC9E,QAAM,iCAAiC,6BAA6B,UAAU;AAC9E,QAAM,mBAAmB,oBAAoB,UAAU;AAIvD,QAAM,SAAqC;AAAA,IACzC,GAAI;AAAA;AAAA,IAGJ;AAAA;AAAA;AAAA,IAIA,sBAAsB;AAAA,IACtB,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,IACrB,kBAAkB;AAAA;AAAA,IAGlB,cAAc,UAAU;AAAA,IACxB,cAAc,UAAU;AAAA,IACxB,WAAW;AAAA,IACX,WAAW;AAAA,IACX,wBAAwB;AAAA,IACxB,wBAAwB;AAAA,IACxB,2BAA2B;AAAA,IAC3B,2BAA2B;AAAA,IAC3B,MAAM,UAAU;AAAA,IAChB,QAAQ;AAAA,IACR,aAAa;AAAA,EACf;AAIA,SAAO,KAAK,MAAM,EAAE,QAAQ,SAAO;AACjC,QAAI,OAAO,GAAuC,MAAM,QAAW;AACjE,aAAO,OAAO,GAAuC;AAAA,IACvD;AAAA,EACF,CAAC;AAED,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
function removeBasePath(to) {
|
|
2
|
+
let destination = to;
|
|
3
|
+
const basePath = process.env.__NEXT_ROUTER_BASEPATH;
|
|
4
|
+
if (basePath && destination.startsWith(basePath)) {
|
|
5
|
+
destination = destination.slice(basePath.length);
|
|
6
|
+
}
|
|
7
|
+
return destination;
|
|
8
|
+
}
|
|
9
|
+
export {
|
|
10
|
+
removeBasePath
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=removeBasePath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/removeBasePath.ts"],"sourcesContent":["/**\n * Removes the Next.js basePath from the provided destination if set.\n * @param to Destination route to navigate to\n * @returns Destination without basePath, if set\n */\nexport function removeBasePath(to: string): string {\n let destination = to;\n const basePath = process.env.__NEXT_ROUTER_BASEPATH;\n if (basePath && destination.startsWith(basePath)) {\n destination = destination.slice(basePath.length);\n }\n\n return destination;\n}\n"],"mappings":"AAKO,SAAS,eAAe,IAAoB;AACjD,MAAI,cAAc;AAClB,QAAM,WAAW,QAAQ,IAAI;AAC7B,MAAI,YAAY,YAAY,WAAW,QAAQ,GAAG;AAChD,kBAAc,YAAY,MAAM,SAAS,MAAM;AAAA,EACjD;AAEA,SAAO;AACT;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TernSecureProvider.d.ts","sourceRoot":"","sources":["../../../../src/app-router/client/TernSecureProvider.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"TernSecureProvider.d.ts","sourceRoot":"","sources":["../../../../src/app-router/client/TernSecureProvider.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AA8BvD,eAAO,MAAM,wBAAwB,GAAI,OAAO,mBAAmB,4CAGlE,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates an "awaitable" navigation function that will do its best effort to wait for Next.js to finish its route transition.
|
|
3
|
+
* This is accomplished by wrapping the call to `router.push` in `startTransition()`, which should rely on React to coordinate the pending state. We key off of
|
|
4
|
+
* `isPending` to flush the stored promises and ensure the navigates "resolve".
|
|
5
|
+
*/
|
|
6
|
+
export declare const useAwaitablePush: () => (to: string, metadata: {
|
|
7
|
+
__internal_metadata?: {
|
|
8
|
+
routing?: import("@tern-secure/types").RoutingStrategy;
|
|
9
|
+
navigationType?: "internal" | "external" | "window";
|
|
10
|
+
};
|
|
11
|
+
windowNavigate: (to: URL | string) => void;
|
|
12
|
+
}) => unknown;
|
|
13
|
+
//# sourceMappingURL=useAwaitablePush.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAwaitablePush.d.ts","sourceRoot":"","sources":["../../../../src/app-router/client/useAwaitablePush.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,eAAO,MAAM,gBAAgB;;;;;;aAQ5B,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates an "awaitable" navigation function that will do its best effort to wait for Next.js to finish its route transition.
|
|
3
|
+
* This is accomplished by wrapping the call to `router.replace` in `startTransition()`, which should rely on React to coordinate the pending state. We key off of
|
|
4
|
+
* `isPending` to flush the stored promises and ensure the navigates "resolve".
|
|
5
|
+
*/
|
|
6
|
+
export declare const useAwaitableReplace: () => (to: string, metadata: {
|
|
7
|
+
__internal_metadata?: {
|
|
8
|
+
routing?: import("@tern-secure/types").RoutingStrategy;
|
|
9
|
+
navigationType?: "internal" | "external" | "window";
|
|
10
|
+
};
|
|
11
|
+
windowNavigate: (to: URL | string) => void;
|
|
12
|
+
}) => unknown;
|
|
13
|
+
//# sourceMappingURL=useAwaitableReplace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAwaitableReplace.d.ts","sourceRoot":"","sources":["../../../../src/app-router/client/useAwaitableReplace.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;;;;;aAQ/B,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { AppRouterInstance } from 'next/dist/shared/lib/app-router-context.shared-runtime';
|
|
2
|
+
export declare const useInternalNavFun: (props: {
|
|
3
|
+
windowNav: typeof window.history.pushState | typeof window.history.replaceState | undefined;
|
|
4
|
+
routerNav: AppRouterInstance["push"] | AppRouterInstance["replace"];
|
|
5
|
+
name: string;
|
|
6
|
+
}) => NavigationFunction;
|
|
7
|
+
//# sourceMappingURL=useInternalNavFun.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useInternalNavFun.d.ts","sourceRoot":"","sources":["../../../../src/app-router/client/useInternalNavFun.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wDAAwD,CAAC;AAahG,eAAO,MAAM,iBAAiB,GAAI,OAAO;IACvC,SAAS,EAAE,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAC5F,SAAS,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACpE,IAAI,EAAE,MAAM,CAAC;CACd,KAAG,kBA0DH,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import type { AuthObject } from '@tern-secure/backend';
|
|
1
|
+
import type { AuthObject, RedirectFun } from '@tern-secure/backend';
|
|
2
2
|
import { redirect } from 'next/navigation';
|
|
3
3
|
import { type AuthProtect } from '../../server/protect';
|
|
4
|
-
import { type RedirectFun } from '../../server/redirect';
|
|
5
4
|
import type { BaseUser } from '../../server/types';
|
|
6
5
|
export interface AuthResult {
|
|
7
6
|
user: BaseUser | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../../src/app-router/server/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../../src/app-router/server/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEpE,OAAO,EAAY,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAKrD,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,sBAAsB,CAAC;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAe,MAAM,oBAAoB,CAAC;AAGhE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAED;;GAEG;AACH,KAAK,IAAI,GAAG,UAAU,GAAG;IACvB,gBAAgB,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC;IAC3D,gBAAgB,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC;CAC5D,CAAC;AAEF,MAAM,WAAW,MAAM;IACrB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAElB,OAAO,EAAE,WAAW,CAAC;CACtB;AAQD;;GAEG;AACH,eAAO,MAAM,IAAI,EAAE,MAwClB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSafeLayoutEffect.d.ts","sourceRoot":"","sources":["../../../../src/boundary/hooks/useSafeLayoutEffect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,eAAO,MAAM,mBAAmB,wBAA0E,CAAC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { TernSecureProvider } from './app-router/server/TernSecureProvider';
|
|
2
|
-
export { useAuth, useIdToken, useSession, useSignIn, signIn, useSignInContext, useTernSecure, SignInProvider } from './boundary/components';
|
|
3
|
-
export type { TernSecureUser, TernSecureUserData, SignInResponse } from '@tern-secure/types';
|
|
2
|
+
export { useAuth, useIdToken, useSession, useSignIn, signIn, useSignInContext, useTernSecure, SignInProvider, } from './boundary/components';
|
|
3
|
+
export type { TernSecureUser, TernSecureUserData, SignInResponse, SocialProviderOptions, } from '@tern-secure/types';
|
|
4
4
|
export type { UserInfo, SessionResult } from './types';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EACL,OAAO,EACP,UAAU,EACV,UAAU,EACV,SAAS,EACT,MAAM,EACN,gBAAgB,EAChB,aAAa,EACb,cAAc,GAKf,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ternSecureNodeMiddleware.d.ts","sourceRoot":"","sources":["../../../../src/server/node/ternSecureNodeMiddleware.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAC,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"ternSecureNodeMiddleware.d.ts","sourceRoot":"","sources":["../../../../src/server/node/ternSecureNodeMiddleware.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAC,WAAW,EAAE,MAAM,aAAa,CAAC;AAW9D,OAAO,KAAK,EAAE,QAAQ,EACpB,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACrB,MAAM,UAAU,CAAC;AAElB,KAAK,gBAAgB,GAAG;IAAE,aAAa,CAAC,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,CAAA;CAAE,CAAC;AAChE,MAAM,MAAM,WAAW,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,EAAE,gBAAgB,KAAK,UAAU,CAAC;AAEhF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC;AAEF,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAClC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,KAAK,iBAAiB,GAAG,CACvB,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,0BAA0B,EACnC,KAAK,EAAE,sBAAsB,KAC1B,oBAAoB,CAAC;AAE1B,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG;IAC9C,gBAAgB,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IACxC,gBAAgB,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;CACzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,UAAU,MAAM,EAAE,MAC3C,SAAS,WAAW,KAAG,OAUhC,CAAC;AA8BF,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AACD,KAAK,yBAAyB,GAAG,CAC/B,GAAG,EAAE,WAAW,KACb,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEpD,UAAU,oBAAoB;IAC5B;;;OAGG;IACH,CAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,cAAc,CAAC;IAE1E;;;OAGG;IACH,CACE,OAAO,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE,yBAAyB,GAClC,cAAc,CAAC;IAElB;;;OAGG;IACH,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,cAAc,CAAC;IAC9C;;;OAGG;IACH,CACE,OAAO,EAAE,0BAA0B,EACnC,KAAK,EAAE,sBAAsB,GAC5B,oBAAoB,CAAC;CACzB;AAED,eAAO,MAAM,oBAAoB,EAmF3B,oBAAoB,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import type { AuthObject, SignedInAuthObject } from "@tern-secure/backend";
|
|
1
|
+
import type { AuthObject, RedirectFun, SignedInAuthObject } from "@tern-secure/backend";
|
|
2
2
|
import type { CheckAuthorizationFromSessionClaims } from "@tern-secure/types";
|
|
3
|
-
import type { RedirectFun } from "./redirect";
|
|
4
3
|
type AuthProtectOptions = {
|
|
5
4
|
/**
|
|
6
5
|
* The URL to redirect the user to if they are not authorized.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protect.d.ts","sourceRoot":"","sources":["../../../src/server/protect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"protect.d.ts","sourceRoot":"","sources":["../../../src/server/protect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAExF,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,oBAAoB,CAAC;AAK9E,KAAK,kBAAkB,GAAG;IACxB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,CACE,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,mCAAmC,KAAK,OAAO,EAClE,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC/B,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAC7D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,MAAM,KAAK,CAAC;IACtB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,gBAAgB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CACxC,GAAG,WAAW,CAkDd"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import type { AuthenticateRequestOptions, AuthObject } from '@tern-secure/backend';
|
|
1
|
+
import type { AuthenticateRequestOptions, AuthObject, RedirectFun } from '@tern-secure/backend';
|
|
2
2
|
import type { NextMiddleware, NextRequest } from 'next/server';
|
|
3
3
|
import { NextResponse } from 'next/server';
|
|
4
4
|
import { type AuthProtect } from './protect';
|
|
5
|
-
import { type RedirectFun } from './redirect';
|
|
6
5
|
import type { NextMiddlewareEvtParam, NextMiddlewareRequestParam, NextMiddlewareReturn } from './types';
|
|
7
6
|
export type MiddlewareAuthObject = AuthObject & {
|
|
8
7
|
redirectToSignIn: RedirectFun<Response>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ternSecureEdgeMiddleware.d.ts","sourceRoot":"","sources":["../../../src/server/ternSecureEdgeMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC1B,UAAU,
|
|
1
|
+
{"version":3,"file":"ternSecureEdgeMiddleware.d.ts","sourceRoot":"","sources":["../../../src/server/ternSecureEdgeMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC1B,UAAU,EACV,WAAW,EAGZ,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAc3C,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,WAAW,CAAC;AAE5D,OAAO,KAAK,EACV,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAGjB,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG;IAC9C,gBAAgB,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IACxC,gBAAgB,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;CACzC,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAElC,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,KAAK,iBAAiB,GAAG,CACvB,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,0BAA0B,EACnC,KAAK,EAAE,sBAAsB,KAC1B,oBAAoB,CAAC;AAE1B,MAAM,WAAW,iBAAkB,SAAQ,0BAA0B;IACnE,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AACD,KAAK,yBAAyB,GAAG,CAC/B,GAAG,EAAE,WAAW,KACb,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEpD,UAAU,oBAAoB;IAC5B;;;OAGG;IACH,CAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,cAAc,CAAC;IAE1E;;;OAGG;IACH,CAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,yBAAyB,GAAG,cAAc,CAAC;IAElF;;;OAGG;IACH,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,cAAc,CAAC;IAC9C;;;OAGG;IACH,CAAC,OAAO,EAAE,0BAA0B,EAAE,KAAK,EAAE,sBAAsB,GAAG,oBAAoB,CAAC;CAC5F;AAED,eAAO,MAAM,oBAAoB,EAkF3B,oBAAoB,CAAC;AAwD3B,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,GAAG,GAAG,0BAIhD,CAAC"}
|
package/dist/types/types.d.ts
CHANGED
|
@@ -81,7 +81,7 @@ export interface TernSecureState {
|
|
|
81
81
|
isAuthenticated: boolean;
|
|
82
82
|
token: any | null;
|
|
83
83
|
email: string | null;
|
|
84
|
-
status:
|
|
84
|
+
status: 'loading' | 'authenticated' | 'unauthenticated' | 'unverified';
|
|
85
85
|
requiresVerification: boolean;
|
|
86
86
|
}
|
|
87
87
|
export interface RedirectConfig {
|
|
@@ -108,6 +108,15 @@ export type TernSecureNextProps = TernSecureProviderProps & {
|
|
|
108
108
|
apiKey?: string;
|
|
109
109
|
requiresVerification?: boolean;
|
|
110
110
|
loadingComponent?: React.ReactNode;
|
|
111
|
+
/**
|
|
112
|
+
* If set to true, the NextJS middleware will be invoked
|
|
113
|
+
* every time the client-side auth state changes (sign-out, sign-in, etc.).
|
|
114
|
+
* That way, any auth-dependent logic can be placed inside the middleware.
|
|
115
|
+
* Example: Configuring the middleware to force a redirect to `/sign-in` when the user signs out
|
|
116
|
+
*
|
|
117
|
+
* @default true
|
|
118
|
+
*/
|
|
119
|
+
__unstable_invokeMiddlewareOnAuthStateChange?: boolean;
|
|
111
120
|
};
|
|
112
121
|
export interface User {
|
|
113
122
|
uid: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAElE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC;;GAEG;AAGH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF;;;GAGG;AAWH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,uDAAuD;IACvD,WAAW,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC;IAC3C,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,sBAAsB;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,WAAW,EAAE,OAAO,CAAC;IACrB,gCAAgC;IAChC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,+CAA+C;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAElB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,qBAAqB,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,OAAO,MAAM,GAAG,SAAS,CAAC;IACxC,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ;AAED,MAAM,WAAW,SAAU,SAAQ,KAAK;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,cAAc,CAEpE;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,SAAS,GAAG,eAAe,GAAG,iBAAiB,GAAG,YAAY,CAAC;IACvE,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAE7B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,MAAM,mBAAmB,GAAG,uBAAuB,GAAG;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC;;;;;;;OAOG;IACH,4CAA4C,CAAC,EAAE,OAAO,CAAC;CACxD,CAAC;AAEF,MAAM,WAAW,IAAI;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAAC,uBAAuB,EAAE,UAAU,CAAC,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare const allNextProviderPropsWithEnv: (nextProps: Omit<TernSecureNextProps, "children">) =>
|
|
1
|
+
import type { TernSecureNextProps } from "../types";
|
|
2
|
+
export declare const allNextProviderPropsWithEnv: (nextProps: Omit<TernSecureNextProps, "children">) => any;
|
|
3
3
|
//# sourceMappingURL=allNextProviderProps.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"allNextProviderProps.d.ts","sourceRoot":"","sources":["../../../src/utils/allNextProviderProps.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"allNextProviderProps.d.ts","sourceRoot":"","sources":["../../../src/utils/allNextProviderProps.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAA8B,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAGhF,eAAO,MAAM,2BAA2B,GACtC,WAAW,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,KAC/C,GAmGF,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Removes the Next.js basePath from the provided destination if set.
|
|
3
|
+
* @param to Destination route to navigate to
|
|
4
|
+
* @returns Destination without basePath, if set
|
|
5
|
+
*/
|
|
6
|
+
export declare function removeBasePath(to: string): string;
|
|
7
|
+
//# sourceMappingURL=removeBasePath.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"removeBasePath.d.ts","sourceRoot":"","sources":["../../../src/utils/removeBasePath.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAQjD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tern-secure/nextjs",
|
|
3
|
-
"version": "5.2.0-canary.
|
|
3
|
+
"version": "5.2.0-canary.v20251024005655",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -63,10 +63,10 @@
|
|
|
63
63
|
"jose": "^5.9.6",
|
|
64
64
|
"server-only": "^0.0.1",
|
|
65
65
|
"tslib": "2.4.1",
|
|
66
|
-
"@tern-secure/backend": "1.2.0-canary.
|
|
67
|
-
"@tern-secure/
|
|
68
|
-
"@tern-secure/
|
|
69
|
-
"@tern-secure/
|
|
66
|
+
"@tern-secure/backend": "1.2.0-canary.v20251024005655",
|
|
67
|
+
"@tern-secure/react": "1.2.0-canary.v20251024005655",
|
|
68
|
+
"@tern-secure/shared": "1.3.0-canary.v20251024005655",
|
|
69
|
+
"@tern-secure/types": "1.1.0-canary.v20251024005655"
|
|
70
70
|
},
|
|
71
71
|
"peerDependencies": {
|
|
72
72
|
"next": "^13.0.0 || ^14.0.0 || ^15.0.0",
|
|
@@ -1,84 +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 redirect_exports = {};
|
|
20
|
-
__export(redirect_exports, {
|
|
21
|
-
createRedirect: () => createRedirect
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(redirect_exports);
|
|
24
|
-
const buildUrl = (_baseUrl, _targetUrl, _returnBackUrl) => {
|
|
25
|
-
if (_baseUrl === "") {
|
|
26
|
-
return legacyBuildUrl(_targetUrl.toString(), _returnBackUrl?.toString());
|
|
27
|
-
}
|
|
28
|
-
const baseUrl = new URL(_baseUrl);
|
|
29
|
-
const returnBackUrl = _returnBackUrl ? new URL(_returnBackUrl, baseUrl) : void 0;
|
|
30
|
-
const res = new URL(_targetUrl, baseUrl);
|
|
31
|
-
if (returnBackUrl) {
|
|
32
|
-
res.searchParams.set("redirect_url", returnBackUrl.toString());
|
|
33
|
-
}
|
|
34
|
-
return res.toString();
|
|
35
|
-
};
|
|
36
|
-
const legacyBuildUrl = (targetUrl, redirectUrl) => {
|
|
37
|
-
let url;
|
|
38
|
-
if (!targetUrl.startsWith("http")) {
|
|
39
|
-
if (!redirectUrl || !redirectUrl.startsWith("http")) {
|
|
40
|
-
throw new Error("destination url or return back url should be an absolute path url!");
|
|
41
|
-
}
|
|
42
|
-
const baseURL = new URL(redirectUrl);
|
|
43
|
-
url = new URL(targetUrl, baseURL.origin);
|
|
44
|
-
} else {
|
|
45
|
-
url = new URL(targetUrl);
|
|
46
|
-
}
|
|
47
|
-
if (redirectUrl) {
|
|
48
|
-
url.searchParams.set("redirect_url", redirectUrl);
|
|
49
|
-
}
|
|
50
|
-
return url.toString();
|
|
51
|
-
};
|
|
52
|
-
const createRedirect = (params) => {
|
|
53
|
-
const { redirectAdapter, signInUrl, signUpUrl, baseUrl } = params;
|
|
54
|
-
const redirectToSignUp = ({ returnBackUrl } = {}) => {
|
|
55
|
-
if (!signUpUrl) {
|
|
56
|
-
throw new Error("SignUp URL is not defined");
|
|
57
|
-
}
|
|
58
|
-
const pathToSignUpUrl = `${baseUrl}/sign-up`;
|
|
59
|
-
function buildSignUpUrl(signIn) {
|
|
60
|
-
if (!signIn) {
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
const url = new URL(signIn, baseUrl);
|
|
64
|
-
url.pathname = `${url.pathname}/create`;
|
|
65
|
-
return url.toString();
|
|
66
|
-
}
|
|
67
|
-
const targetUrl = signUpUrl || buildSignUpUrl(signInUrl) || pathToSignUpUrl;
|
|
68
|
-
return redirectAdapter(buildUrl(baseUrl, targetUrl, returnBackUrl));
|
|
69
|
-
};
|
|
70
|
-
const redirectToSignIn = ({ returnBackUrl } = {}) => {
|
|
71
|
-
if (!signInUrl) {
|
|
72
|
-
throw new Error("SignIn URL is not defined");
|
|
73
|
-
}
|
|
74
|
-
const pathToSignInUrl = `${baseUrl}/sign-in`;
|
|
75
|
-
const targetUrl = signInUrl || pathToSignInUrl;
|
|
76
|
-
return redirectAdapter(buildUrl(baseUrl, targetUrl, returnBackUrl));
|
|
77
|
-
};
|
|
78
|
-
return { redirectToSignUp, redirectToSignIn };
|
|
79
|
-
};
|
|
80
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
81
|
-
0 && (module.exports = {
|
|
82
|
-
createRedirect
|
|
83
|
-
});
|
|
84
|
-
//# sourceMappingURL=redirect.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/server/redirect.ts"],"sourcesContent":["\nconst buildUrl = (\n _baseUrl: string | URL,\n _targetUrl: string | URL,\n _returnBackUrl?: string | URL | null,\n) => {\n if (_baseUrl === '') {\n return legacyBuildUrl(_targetUrl.toString(), _returnBackUrl?.toString());\n }\n\n const baseUrl = new URL(_baseUrl);\n const returnBackUrl = _returnBackUrl ? new URL(_returnBackUrl, baseUrl) : undefined;\n const res = new URL(_targetUrl, baseUrl);\n\n if (returnBackUrl) {\n res.searchParams.set('redirect_url', returnBackUrl.toString());\n }\n return res.toString();\n};\n\n\n\nconst legacyBuildUrl = (targetUrl: string, redirectUrl?: string) => {\n let url;\n if (!targetUrl.startsWith('http')) {\n if (!redirectUrl || !redirectUrl.startsWith('http')) {\n throw new Error('destination url or return back url should be an absolute path url!');\n }\n\n const baseURL = new URL(redirectUrl);\n url = new URL(targetUrl, baseURL.origin);\n } else {\n url = new URL(targetUrl);\n }\n\n if (redirectUrl) {\n url.searchParams.set('redirect_url', redirectUrl);\n }\n\n return url.toString();\n};\n\n\ntype RedirectAdapter<RedirectReturn> = (url: string) => RedirectReturn;\ntype RedirectToParams = { returnBackUrl?: string | URL | null };\nexport type RedirectFun<ReturnType> = (params?: RedirectToParams) => ReturnType;\n\n/**\n * @internal\n */\ntype CreateRedirect = <ReturnType>(params: {\n redirectAdapter: RedirectAdapter<ReturnType>;\n baseUrl: URL | string;\n signInUrl?: URL | string;\n signUpUrl?: URL | string;\n}) => {\n redirectToSignIn: RedirectFun<ReturnType>;\n redirectToSignUp: RedirectFun<ReturnType>;\n};\n\n\nexport const createRedirect: CreateRedirect = params => {\n const { redirectAdapter, signInUrl, signUpUrl, baseUrl } = params;\n\n const redirectToSignUp = ({ returnBackUrl }: RedirectToParams = {}) => {\n if (!signUpUrl) {\n throw new Error(\"SignUp URL is not defined\");\n }\n\n const pathToSignUpUrl = `${baseUrl}/sign-up`;\n \n function buildSignUpUrl(signIn: string | URL | undefined) {\n if (!signIn) {\n return;\n }\n const url = new URL(signIn, baseUrl);\n url.pathname = `${url.pathname}/create`;\n return url.toString();\n }\n\n const targetUrl = signUpUrl || buildSignUpUrl(signInUrl) || pathToSignUpUrl;\n\n\n return redirectAdapter(buildUrl(baseUrl, targetUrl, returnBackUrl));\n };\n\n const redirectToSignIn = ({ returnBackUrl }: RedirectToParams = {}) => {\n if (!signInUrl) {\n throw new Error(\"SignIn URL is not defined\");\n }\n\n const pathToSignInUrl = `${baseUrl}/sign-in`;\n const targetUrl = signInUrl || pathToSignInUrl;\n\n return redirectAdapter(buildUrl(baseUrl, targetUrl, returnBackUrl));\n };\n\n return { redirectToSignUp, redirectToSignIn };\n};"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,MAAM,WAAW,CACf,UACA,YACA,mBACG;AACH,MAAI,aAAa,IAAI;AACnB,WAAO,eAAe,WAAW,SAAS,GAAG,gBAAgB,SAAS,CAAC;AAAA,EACzE;AAEA,QAAM,UAAU,IAAI,IAAI,QAAQ;AAChC,QAAM,gBAAgB,iBAAiB,IAAI,IAAI,gBAAgB,OAAO,IAAI;AAC1E,QAAM,MAAM,IAAI,IAAI,YAAY,OAAO;AAEvC,MAAI,eAAe;AACjB,QAAI,aAAa,IAAI,gBAAgB,cAAc,SAAS,CAAC;AAAA,EAC/D;AACA,SAAO,IAAI,SAAS;AACtB;AAIA,MAAM,iBAAiB,CAAC,WAAmB,gBAAyB;AAClE,MAAI;AACJ,MAAI,CAAC,UAAU,WAAW,MAAM,GAAG;AACjC,QAAI,CAAC,eAAe,CAAC,YAAY,WAAW,MAAM,GAAG;AACnD,YAAM,IAAI,MAAM,oEAAoE;AAAA,IACtF;AAEA,UAAM,UAAU,IAAI,IAAI,WAAW;AACnC,UAAM,IAAI,IAAI,WAAW,QAAQ,MAAM;AAAA,EACzC,OAAO;AACL,UAAM,IAAI,IAAI,SAAS;AAAA,EACzB;AAEA,MAAI,aAAa;AACf,QAAI,aAAa,IAAI,gBAAgB,WAAW;AAAA,EAClD;AAEA,SAAO,IAAI,SAAS;AACtB;AAqBO,MAAM,iBAAiC,YAAU;AACtD,QAAM,EAAE,iBAAiB,WAAW,WAAW,QAAQ,IAAI;AAE3D,QAAM,mBAAmB,CAAC,EAAE,cAAc,IAAsB,CAAC,MAAM;AACrE,QAAI,CAAC,WAAW;AACZ,YAAM,IAAI,MAAM,2BAA2B;AAAA,IAC/C;AAEA,UAAM,kBAAkB,GAAG,OAAO;AAElC,aAAS,eAAe,QAAkC;AACxD,UAAI,CAAC,QAAQ;AACX;AAAA,MACF;AACA,YAAM,MAAM,IAAI,IAAI,QAAQ,OAAO;AACnC,UAAI,WAAW,GAAG,IAAI,QAAQ;AAC9B,aAAO,IAAI,SAAS;AAAA,IACtB;AAEA,UAAM,YAAY,aAAa,eAAe,SAAS,KAAK;AAG5D,WAAO,gBAAgB,SAAS,SAAS,WAAW,aAAa,CAAC;AAAA,EACpE;AAEA,QAAM,mBAAmB,CAAC,EAAE,cAAc,IAAsB,CAAC,MAAM;AACrE,QAAI,CAAC,WAAW;AACd,YAAM,IAAI,MAAM,2BAA2B;AAAA,IAC7C;AAEA,UAAM,kBAAkB,GAAG,OAAO;AAClC,UAAM,YAAY,aAAa;AAE/B,WAAO,gBAAgB,SAAS,SAAS,WAAW,aAAa,CAAC;AAAA,EACpE;AAEA,SAAO,EAAE,kBAAkB,iBAAiB;AAC9C;","names":[]}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
const buildUrl = (_baseUrl, _targetUrl, _returnBackUrl) => {
|
|
2
|
-
if (_baseUrl === "") {
|
|
3
|
-
return legacyBuildUrl(_targetUrl.toString(), _returnBackUrl?.toString());
|
|
4
|
-
}
|
|
5
|
-
const baseUrl = new URL(_baseUrl);
|
|
6
|
-
const returnBackUrl = _returnBackUrl ? new URL(_returnBackUrl, baseUrl) : void 0;
|
|
7
|
-
const res = new URL(_targetUrl, baseUrl);
|
|
8
|
-
if (returnBackUrl) {
|
|
9
|
-
res.searchParams.set("redirect_url", returnBackUrl.toString());
|
|
10
|
-
}
|
|
11
|
-
return res.toString();
|
|
12
|
-
};
|
|
13
|
-
const legacyBuildUrl = (targetUrl, redirectUrl) => {
|
|
14
|
-
let url;
|
|
15
|
-
if (!targetUrl.startsWith("http")) {
|
|
16
|
-
if (!redirectUrl || !redirectUrl.startsWith("http")) {
|
|
17
|
-
throw new Error("destination url or return back url should be an absolute path url!");
|
|
18
|
-
}
|
|
19
|
-
const baseURL = new URL(redirectUrl);
|
|
20
|
-
url = new URL(targetUrl, baseURL.origin);
|
|
21
|
-
} else {
|
|
22
|
-
url = new URL(targetUrl);
|
|
23
|
-
}
|
|
24
|
-
if (redirectUrl) {
|
|
25
|
-
url.searchParams.set("redirect_url", redirectUrl);
|
|
26
|
-
}
|
|
27
|
-
return url.toString();
|
|
28
|
-
};
|
|
29
|
-
const createRedirect = (params) => {
|
|
30
|
-
const { redirectAdapter, signInUrl, signUpUrl, baseUrl } = params;
|
|
31
|
-
const redirectToSignUp = ({ returnBackUrl } = {}) => {
|
|
32
|
-
if (!signUpUrl) {
|
|
33
|
-
throw new Error("SignUp URL is not defined");
|
|
34
|
-
}
|
|
35
|
-
const pathToSignUpUrl = `${baseUrl}/sign-up`;
|
|
36
|
-
function buildSignUpUrl(signIn) {
|
|
37
|
-
if (!signIn) {
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
const url = new URL(signIn, baseUrl);
|
|
41
|
-
url.pathname = `${url.pathname}/create`;
|
|
42
|
-
return url.toString();
|
|
43
|
-
}
|
|
44
|
-
const targetUrl = signUpUrl || buildSignUpUrl(signInUrl) || pathToSignUpUrl;
|
|
45
|
-
return redirectAdapter(buildUrl(baseUrl, targetUrl, returnBackUrl));
|
|
46
|
-
};
|
|
47
|
-
const redirectToSignIn = ({ returnBackUrl } = {}) => {
|
|
48
|
-
if (!signInUrl) {
|
|
49
|
-
throw new Error("SignIn URL is not defined");
|
|
50
|
-
}
|
|
51
|
-
const pathToSignInUrl = `${baseUrl}/sign-in`;
|
|
52
|
-
const targetUrl = signInUrl || pathToSignInUrl;
|
|
53
|
-
return redirectAdapter(buildUrl(baseUrl, targetUrl, returnBackUrl));
|
|
54
|
-
};
|
|
55
|
-
return { redirectToSignUp, redirectToSignIn };
|
|
56
|
-
};
|
|
57
|
-
export {
|
|
58
|
-
createRedirect
|
|
59
|
-
};
|
|
60
|
-
//# sourceMappingURL=redirect.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/server/redirect.ts"],"sourcesContent":["\nconst buildUrl = (\n _baseUrl: string | URL,\n _targetUrl: string | URL,\n _returnBackUrl?: string | URL | null,\n) => {\n if (_baseUrl === '') {\n return legacyBuildUrl(_targetUrl.toString(), _returnBackUrl?.toString());\n }\n\n const baseUrl = new URL(_baseUrl);\n const returnBackUrl = _returnBackUrl ? new URL(_returnBackUrl, baseUrl) : undefined;\n const res = new URL(_targetUrl, baseUrl);\n\n if (returnBackUrl) {\n res.searchParams.set('redirect_url', returnBackUrl.toString());\n }\n return res.toString();\n};\n\n\n\nconst legacyBuildUrl = (targetUrl: string, redirectUrl?: string) => {\n let url;\n if (!targetUrl.startsWith('http')) {\n if (!redirectUrl || !redirectUrl.startsWith('http')) {\n throw new Error('destination url or return back url should be an absolute path url!');\n }\n\n const baseURL = new URL(redirectUrl);\n url = new URL(targetUrl, baseURL.origin);\n } else {\n url = new URL(targetUrl);\n }\n\n if (redirectUrl) {\n url.searchParams.set('redirect_url', redirectUrl);\n }\n\n return url.toString();\n};\n\n\ntype RedirectAdapter<RedirectReturn> = (url: string) => RedirectReturn;\ntype RedirectToParams = { returnBackUrl?: string | URL | null };\nexport type RedirectFun<ReturnType> = (params?: RedirectToParams) => ReturnType;\n\n/**\n * @internal\n */\ntype CreateRedirect = <ReturnType>(params: {\n redirectAdapter: RedirectAdapter<ReturnType>;\n baseUrl: URL | string;\n signInUrl?: URL | string;\n signUpUrl?: URL | string;\n}) => {\n redirectToSignIn: RedirectFun<ReturnType>;\n redirectToSignUp: RedirectFun<ReturnType>;\n};\n\n\nexport const createRedirect: CreateRedirect = params => {\n const { redirectAdapter, signInUrl, signUpUrl, baseUrl } = params;\n\n const redirectToSignUp = ({ returnBackUrl }: RedirectToParams = {}) => {\n if (!signUpUrl) {\n throw new Error(\"SignUp URL is not defined\");\n }\n\n const pathToSignUpUrl = `${baseUrl}/sign-up`;\n \n function buildSignUpUrl(signIn: string | URL | undefined) {\n if (!signIn) {\n return;\n }\n const url = new URL(signIn, baseUrl);\n url.pathname = `${url.pathname}/create`;\n return url.toString();\n }\n\n const targetUrl = signUpUrl || buildSignUpUrl(signInUrl) || pathToSignUpUrl;\n\n\n return redirectAdapter(buildUrl(baseUrl, targetUrl, returnBackUrl));\n };\n\n const redirectToSignIn = ({ returnBackUrl }: RedirectToParams = {}) => {\n if (!signInUrl) {\n throw new Error(\"SignIn URL is not defined\");\n }\n\n const pathToSignInUrl = `${baseUrl}/sign-in`;\n const targetUrl = signInUrl || pathToSignInUrl;\n\n return redirectAdapter(buildUrl(baseUrl, targetUrl, returnBackUrl));\n };\n\n return { redirectToSignUp, redirectToSignIn };\n};"],"mappings":"AACA,MAAM,WAAW,CACf,UACA,YACA,mBACG;AACH,MAAI,aAAa,IAAI;AACnB,WAAO,eAAe,WAAW,SAAS,GAAG,gBAAgB,SAAS,CAAC;AAAA,EACzE;AAEA,QAAM,UAAU,IAAI,IAAI,QAAQ;AAChC,QAAM,gBAAgB,iBAAiB,IAAI,IAAI,gBAAgB,OAAO,IAAI;AAC1E,QAAM,MAAM,IAAI,IAAI,YAAY,OAAO;AAEvC,MAAI,eAAe;AACjB,QAAI,aAAa,IAAI,gBAAgB,cAAc,SAAS,CAAC;AAAA,EAC/D;AACA,SAAO,IAAI,SAAS;AACtB;AAIA,MAAM,iBAAiB,CAAC,WAAmB,gBAAyB;AAClE,MAAI;AACJ,MAAI,CAAC,UAAU,WAAW,MAAM,GAAG;AACjC,QAAI,CAAC,eAAe,CAAC,YAAY,WAAW,MAAM,GAAG;AACnD,YAAM,IAAI,MAAM,oEAAoE;AAAA,IACtF;AAEA,UAAM,UAAU,IAAI,IAAI,WAAW;AACnC,UAAM,IAAI,IAAI,WAAW,QAAQ,MAAM;AAAA,EACzC,OAAO;AACL,UAAM,IAAI,IAAI,SAAS;AAAA,EACzB;AAEA,MAAI,aAAa;AACf,QAAI,aAAa,IAAI,gBAAgB,WAAW;AAAA,EAClD;AAEA,SAAO,IAAI,SAAS;AACtB;AAqBO,MAAM,iBAAiC,YAAU;AACtD,QAAM,EAAE,iBAAiB,WAAW,WAAW,QAAQ,IAAI;AAE3D,QAAM,mBAAmB,CAAC,EAAE,cAAc,IAAsB,CAAC,MAAM;AACrE,QAAI,CAAC,WAAW;AACZ,YAAM,IAAI,MAAM,2BAA2B;AAAA,IAC/C;AAEA,UAAM,kBAAkB,GAAG,OAAO;AAElC,aAAS,eAAe,QAAkC;AACxD,UAAI,CAAC,QAAQ;AACX;AAAA,MACF;AACA,YAAM,MAAM,IAAI,IAAI,QAAQ,OAAO;AACnC,UAAI,WAAW,GAAG,IAAI,QAAQ;AAC9B,aAAO,IAAI,SAAS;AAAA,IACtB;AAEA,UAAM,YAAY,aAAa,eAAe,SAAS,KAAK;AAG5D,WAAO,gBAAgB,SAAS,SAAS,WAAW,aAAa,CAAC;AAAA,EACpE;AAEA,QAAM,mBAAmB,CAAC,EAAE,cAAc,IAAsB,CAAC,MAAM;AACrE,QAAI,CAAC,WAAW;AACd,YAAM,IAAI,MAAM,2BAA2B;AAAA,IAC7C;AAEA,UAAM,kBAAkB,GAAG,OAAO;AAClC,UAAM,YAAY,aAAa;AAE/B,WAAO,gBAAgB,SAAS,SAAS,WAAW,aAAa,CAAC;AAAA,EACpE;AAEA,SAAO,EAAE,kBAAkB,iBAAiB;AAC9C;","names":[]}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
type RedirectAdapter<RedirectReturn> = (url: string) => RedirectReturn;
|
|
2
|
-
type RedirectToParams = {
|
|
3
|
-
returnBackUrl?: string | URL | null;
|
|
4
|
-
};
|
|
5
|
-
export type RedirectFun<ReturnType> = (params?: RedirectToParams) => ReturnType;
|
|
6
|
-
/**
|
|
7
|
-
* @internal
|
|
8
|
-
*/
|
|
9
|
-
type CreateRedirect = <ReturnType>(params: {
|
|
10
|
-
redirectAdapter: RedirectAdapter<ReturnType>;
|
|
11
|
-
baseUrl: URL | string;
|
|
12
|
-
signInUrl?: URL | string;
|
|
13
|
-
signUpUrl?: URL | string;
|
|
14
|
-
}) => {
|
|
15
|
-
redirectToSignIn: RedirectFun<ReturnType>;
|
|
16
|
-
redirectToSignUp: RedirectFun<ReturnType>;
|
|
17
|
-
};
|
|
18
|
-
export declare const createRedirect: CreateRedirect;
|
|
19
|
-
export {};
|
|
20
|
-
//# sourceMappingURL=redirect.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"redirect.d.ts","sourceRoot":"","sources":["../../../src/server/redirect.ts"],"names":[],"mappings":"AA2CA,KAAK,eAAe,CAAC,cAAc,IAAI,CAAC,GAAG,EAAE,MAAM,KAAK,cAAc,CAAC;AACvE,KAAK,gBAAgB,GAAG;IAAE,aAAa,CAAC,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,CAAA;CAAE,CAAC;AAChE,MAAM,MAAM,WAAW,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,EAAE,gBAAgB,KAAK,UAAU,CAAC;AAEhF;;GAEG;AACH,KAAK,cAAc,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE;IACzC,eAAe,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;IAC7C,OAAO,EAAE,GAAG,GAAG,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC;CAC1B,KAAK;IACJ,gBAAgB,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IAC1C,gBAAgB,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;CAC3C,CAAC;AAGF,eAAO,MAAM,cAAc,EAAE,cAqC5B,CAAC"}
|