@clerk/react-router 2.2.4 → 2.2.5-canary-core3.v20251124105058

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 (38) hide show
  1. package/dist/client/ReactRouterClerkProvider.d.ts +2 -2
  2. package/dist/client/ReactRouterClerkProvider.js +5 -3
  3. package/dist/client/ReactRouterClerkProvider.js.map +1 -1
  4. package/dist/client/ReactRouterOptionsContext.d.ts +2 -2
  5. package/dist/client/index.d.ts +2 -2
  6. package/dist/client/types.d.ts +3 -2
  7. package/dist/client/uiComponents.d.ts +2 -2
  8. package/dist/client/uiComponents.js +2 -2
  9. package/dist/client/uiComponents.js.map +1 -1
  10. package/dist/errorThrower.d.ts +2 -2
  11. package/dist/errors.d.ts +2 -1
  12. package/dist/errors.js +1 -1
  13. package/dist/errors.js.map +1 -1
  14. package/dist/index.d.ts +2 -2
  15. package/dist/index.js +1 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/legacy.d.ts +1 -0
  18. package/dist/legacy.js +7 -0
  19. package/dist/legacy.js.map +1 -0
  20. package/dist/server/clerkClient.d.ts +1 -1
  21. package/dist/server/clerkClient.js +1 -1
  22. package/dist/server/clerkClient.js.map +1 -1
  23. package/dist/server/clerkMiddleware.d.ts +1 -1
  24. package/dist/server/clerkMiddleware.js.map +1 -1
  25. package/dist/server/getAuth.js.map +1 -1
  26. package/dist/server/index.d.ts +1 -1
  27. package/dist/server/loadOptions.d.ts +1 -1
  28. package/dist/server/rootAuthLoader.d.ts +1 -1
  29. package/dist/server/types.d.ts +1 -1
  30. package/dist/server/utils.d.ts +2 -2
  31. package/dist/server/utils.js +1 -0
  32. package/dist/server/utils.js.map +1 -1
  33. package/dist/ssr/index.d.ts +1 -1
  34. package/dist/utils/assert.d.ts +2 -2
  35. package/dist/utils/env.d.ts +1 -0
  36. package/dist/utils/env.js +1 -0
  37. package/dist/utils/env.js.map +1 -1
  38. package/package.json +9 -6
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { ReactRouterClerkProviderProps } from './types.js';
3
- export * from '@clerk/clerk-react';
4
- import '@clerk/types';
3
+ export * from '@clerk/react';
4
+ import '@clerk/shared/types';
5
5
 
6
6
  type ClerkReactRouterOptions = Partial<Omit<ReactRouterClerkProviderProps, 'routerPush' | 'routerReplace' | 'clerkState'>>;
7
7
  type ClerkProviderProps = ClerkReactRouterOptions & {
@@ -1,5 +1,5 @@
1
1
  // src/client/ReactRouterClerkProvider.tsx
2
- import { ClerkProvider as ReactClerkProvider } from "@clerk/clerk-react";
2
+ import { ClerkProvider as ReactClerkProvider } from "@clerk/react";
3
3
  import React from "react";
4
4
  import {
5
5
  assertPublishableKeyInSpaMode,
@@ -9,10 +9,10 @@ import {
9
9
  } from "../utils/assert.js";
10
10
  import { ClerkReactRouterOptionsProvider } from "./ReactRouterOptionsContext.js";
11
11
  import { useAwaitableNavigate } from "./useAwaitableNavigate.js";
12
- export * from "@clerk/clerk-react";
12
+ export * from "@clerk/react";
13
13
  var SDK_METADATA = {
14
14
  name: "@clerk/react-router",
15
- version: "2.2.4"
15
+ version: "2.2.5-canary-core3.v20251124105058"
16
16
  };
17
17
  var awaitableNavigateRef = { current: void 0 };
18
18
  function ClerkProviderBase({ children, ...rest }) {
@@ -42,6 +42,7 @@ function ClerkProviderBase({ children, ...rest }) {
42
42
  __signInFallbackRedirectUrl,
43
43
  __signUpFallbackRedirectUrl,
44
44
  __clerkJSUrl,
45
+ __clerkUiUrl,
45
46
  __clerkJSVersion,
46
47
  __telemetryDisabled,
47
48
  __telemetryDebug
@@ -68,6 +69,7 @@ function ClerkProviderBase({ children, ...rest }) {
68
69
  signInFallbackRedirectUrl: __signInFallbackRedirectUrl,
69
70
  signUpFallbackRedirectUrl: __signUpFallbackRedirectUrl,
70
71
  clerkJSUrl: __clerkJSUrl,
72
+ clerkUiUrl: __clerkUiUrl,
71
73
  clerkJSVersion: __clerkJSVersion,
72
74
  telemetry: {
73
75
  disabled: __telemetryDisabled,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/client/ReactRouterClerkProvider.tsx"],"sourcesContent":["import { ClerkProvider as ReactClerkProvider } from '@clerk/clerk-react';\nimport React from 'react';\n\nimport {\n assertPublishableKeyInSpaMode,\n assertValidClerkState,\n isSpaMode as _isSpaMode,\n warnForSsr,\n} from '../utils/assert';\nimport { ClerkReactRouterOptionsProvider } from './ReactRouterOptionsContext';\nimport type { ClerkState, ReactRouterClerkProviderProps } from './types';\nimport { useAwaitableNavigate } from './useAwaitableNavigate';\n\nexport * from '@clerk/clerk-react';\n\nconst SDK_METADATA = {\n name: PACKAGE_NAME,\n version: PACKAGE_VERSION,\n};\n\n/**\n * React Router hydration errors should not stop Clerk navigation from working, as the components mount only after\n * hydration is done (in the case of a hydration error, the components will simply mount after client-side hydration).\n */\nconst awaitableNavigateRef: { current: ReturnType<typeof useAwaitableNavigate> | undefined } = { current: undefined };\n\n/**\n * Internal type that includes the initial state prop that is passed to the ClerkProvider during SSR.\n * This is a value that we pass automatically so it does not need to pollute the public API.\n */\ntype ClerkProviderPropsWithState = ReactRouterClerkProviderProps & {\n clerkState?: ClerkState;\n};\n\nfunction ClerkProviderBase({ children, ...rest }: ClerkProviderPropsWithState) {\n const awaitableNavigate = useAwaitableNavigate();\n const isSpaMode = _isSpaMode();\n\n React.useEffect(() => {\n awaitableNavigateRef.current = awaitableNavigate;\n }, [awaitableNavigate]);\n\n const { clerkState, ...restProps } = rest;\n ReactClerkProvider.displayName = 'ReactClerkProvider';\n\n if (typeof isSpaMode !== 'undefined' && !isSpaMode) {\n assertValidClerkState(clerkState);\n }\n\n const {\n __clerk_ssr_state,\n __publishableKey,\n __proxyUrl,\n __domain,\n __isSatellite,\n __clerk_debug,\n __signInUrl,\n __signUpUrl,\n __afterSignInUrl,\n __afterSignUpUrl,\n __signInForceRedirectUrl,\n __signUpForceRedirectUrl,\n __signInFallbackRedirectUrl,\n __signUpFallbackRedirectUrl,\n __clerkJSUrl,\n __clerkJSVersion,\n __telemetryDisabled,\n __telemetryDebug,\n } = clerkState?.__internal_clerk_state || {};\n\n React.useEffect(() => {\n if (typeof isSpaMode !== 'undefined' && !isSpaMode) {\n warnForSsr(clerkState);\n }\n }, []);\n\n React.useEffect(() => {\n (window as any).__clerk_debug = __clerk_debug;\n }, []);\n\n const mergedProps = {\n publishableKey: __publishableKey as any,\n proxyUrl: __proxyUrl as any,\n domain: __domain as any,\n isSatellite: __isSatellite,\n signInUrl: __signInUrl,\n signUpUrl: __signUpUrl,\n afterSignInUrl: __afterSignInUrl,\n afterSignUpUrl: __afterSignUpUrl,\n signInForceRedirectUrl: __signInForceRedirectUrl,\n signUpForceRedirectUrl: __signUpForceRedirectUrl,\n signInFallbackRedirectUrl: __signInFallbackRedirectUrl,\n signUpFallbackRedirectUrl: __signUpFallbackRedirectUrl,\n clerkJSUrl: __clerkJSUrl,\n clerkJSVersion: __clerkJSVersion,\n telemetry: {\n disabled: __telemetryDisabled,\n debug: __telemetryDebug,\n },\n };\n\n return (\n <ClerkReactRouterOptionsProvider options={mergedProps}>\n <ReactClerkProvider\n routerPush={(to: string) => awaitableNavigateRef.current?.(to)}\n routerReplace={(to: string) => awaitableNavigateRef.current?.(to, { replace: true })}\n initialState={__clerk_ssr_state}\n sdkMetadata={SDK_METADATA}\n {...mergedProps}\n {...restProps}\n >\n {children}\n </ReactClerkProvider>\n </ClerkReactRouterOptionsProvider>\n );\n}\n\ntype ClerkReactRouterOptions = Partial<\n Omit<ReactRouterClerkProviderProps, 'routerPush' | 'routerReplace' | 'clerkState'>\n>;\n\n// TODO: Remove \"any\" on loaderData type and use Route.ComponentProps from userland code\ntype ClerkProviderProps = ClerkReactRouterOptions & {\n loaderData?: any;\n};\n\nexport const ClerkProvider = ({ children, loaderData, ...opts }: ClerkProviderProps) => {\n let clerkState;\n const isSpaMode = _isSpaMode();\n\n // Don't use `loaderData` to fetch the clerk state if we're in SPA mode or if React Router is used as a library\n if (!isSpaMode && loaderData?.clerkState) {\n clerkState = loaderData.clerkState;\n }\n\n // In SPA mode the publishable key is required on the ClerkProvider\n if (typeof isSpaMode !== 'undefined' && isSpaMode) {\n assertPublishableKeyInSpaMode(opts.publishableKey);\n }\n\n return (\n <ClerkProviderBase\n {...(opts as ReactRouterClerkProviderProps)}\n clerkState={clerkState}\n >\n {children}\n </ClerkProviderBase>\n );\n};\n"],"mappings":";AAAA,SAAS,iBAAiB,0BAA0B;AACpD,OAAO,WAAW;AAElB;AAAA,EACE;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb;AAAA,OACK;AACP,SAAS,uCAAuC;AAEhD,SAAS,4BAA4B;AAErC,cAAc;AAEd,IAAM,eAAe;AAAA,EACnB,MAAM;AAAA,EACN,SAAS;AACX;AAMA,IAAM,uBAAyF,EAAE,SAAS,OAAU;AAUpH,SAAS,kBAAkB,EAAE,UAAU,GAAG,KAAK,GAAgC;AAC7E,QAAM,oBAAoB,qBAAqB;AAC/C,QAAM,YAAY,WAAW;AAE7B,QAAM,UAAU,MAAM;AACpB,yBAAqB,UAAU;AAAA,EACjC,GAAG,CAAC,iBAAiB,CAAC;AAEtB,QAAM,EAAE,YAAY,GAAG,UAAU,IAAI;AACrC,qBAAmB,cAAc;AAEjC,MAAI,OAAO,cAAc,eAAe,CAAC,WAAW;AAClD,0BAAsB,UAAU;AAAA,EAClC;AAEA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,KAAI,yCAAY,2BAA0B,CAAC;AAE3C,QAAM,UAAU,MAAM;AACpB,QAAI,OAAO,cAAc,eAAe,CAAC,WAAW;AAClD,iBAAW,UAAU;AAAA,IACvB;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,QAAM,UAAU,MAAM;AACpB,IAAC,OAAe,gBAAgB;AAAA,EAClC,GAAG,CAAC,CAAC;AAEL,QAAM,cAAc;AAAA,IAClB,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,WAAW;AAAA,IACX,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB,wBAAwB;AAAA,IACxB,wBAAwB;AAAA,IACxB,2BAA2B;AAAA,IAC3B,2BAA2B;AAAA,IAC3B,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,WAAW;AAAA,MACT,UAAU;AAAA,MACV,OAAO;AAAA,IACT;AAAA,EACF;AAEA,SACE,oCAAC,mCAAgC,SAAS,eACxC;AAAA,IAAC;AAAA;AAAA,MACC,YAAY,CAAC,OAAY;AAxGjC;AAwGoC,0CAAqB,YAArB,8CAA+B;AAAA;AAAA,MAC3D,eAAe,CAAC,OAAY;AAzGpC;AAyGuC,0CAAqB,YAArB,8CAA+B,IAAI,EAAE,SAAS,KAAK;AAAA;AAAA,MAClF,cAAc;AAAA,MACd,aAAa;AAAA,MACZ,GAAG;AAAA,MACH,GAAG;AAAA;AAAA,IAEH;AAAA,EACH,CACF;AAEJ;AAWO,IAAM,gBAAgB,CAAC,EAAE,UAAU,YAAY,GAAG,KAAK,MAA0B;AACtF,MAAI;AACJ,QAAM,YAAY,WAAW;AAG7B,MAAI,CAAC,cAAa,yCAAY,aAAY;AACxC,iBAAa,WAAW;AAAA,EAC1B;AAGA,MAAI,OAAO,cAAc,eAAe,WAAW;AACjD,kCAA8B,KAAK,cAAc;AAAA,EACnD;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAI;AAAA,MACL;AAAA;AAAA,IAEC;AAAA,EACH;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../src/client/ReactRouterClerkProvider.tsx"],"sourcesContent":["import { ClerkProvider as ReactClerkProvider } from '@clerk/react';\nimport React from 'react';\n\nimport {\n assertPublishableKeyInSpaMode,\n assertValidClerkState,\n isSpaMode as _isSpaMode,\n warnForSsr,\n} from '../utils/assert';\nimport { ClerkReactRouterOptionsProvider } from './ReactRouterOptionsContext';\nimport type { ClerkState, ReactRouterClerkProviderProps } from './types';\nimport { useAwaitableNavigate } from './useAwaitableNavigate';\n\nexport * from '@clerk/react';\n\nconst SDK_METADATA = {\n name: PACKAGE_NAME,\n version: PACKAGE_VERSION,\n};\n\n/**\n * React Router hydration errors should not stop Clerk navigation from working, as the components mount only after\n * hydration is done (in the case of a hydration error, the components will simply mount after client-side hydration).\n */\nconst awaitableNavigateRef: { current: ReturnType<typeof useAwaitableNavigate> | undefined } = { current: undefined };\n\n/**\n * Internal type that includes the initial state prop that is passed to the ClerkProvider during SSR.\n * This is a value that we pass automatically so it does not need to pollute the public API.\n */\ntype ClerkProviderPropsWithState = ReactRouterClerkProviderProps & {\n clerkState?: ClerkState;\n};\n\nfunction ClerkProviderBase({ children, ...rest }: ClerkProviderPropsWithState) {\n const awaitableNavigate = useAwaitableNavigate();\n const isSpaMode = _isSpaMode();\n\n React.useEffect(() => {\n awaitableNavigateRef.current = awaitableNavigate;\n }, [awaitableNavigate]);\n\n const { clerkState, ...restProps } = rest;\n ReactClerkProvider.displayName = 'ReactClerkProvider';\n\n if (typeof isSpaMode !== 'undefined' && !isSpaMode) {\n assertValidClerkState(clerkState);\n }\n\n const {\n __clerk_ssr_state,\n __publishableKey,\n __proxyUrl,\n __domain,\n __isSatellite,\n __clerk_debug,\n __signInUrl,\n __signUpUrl,\n __afterSignInUrl,\n __afterSignUpUrl,\n __signInForceRedirectUrl,\n __signUpForceRedirectUrl,\n __signInFallbackRedirectUrl,\n __signUpFallbackRedirectUrl,\n __clerkJSUrl,\n __clerkUiUrl,\n __clerkJSVersion,\n __telemetryDisabled,\n __telemetryDebug,\n } = clerkState?.__internal_clerk_state || {};\n\n React.useEffect(() => {\n if (typeof isSpaMode !== 'undefined' && !isSpaMode) {\n warnForSsr(clerkState);\n }\n }, []);\n\n React.useEffect(() => {\n (window as any).__clerk_debug = __clerk_debug;\n }, []);\n\n const mergedProps = {\n publishableKey: __publishableKey as any,\n proxyUrl: __proxyUrl as any,\n domain: __domain as any,\n isSatellite: __isSatellite,\n signInUrl: __signInUrl,\n signUpUrl: __signUpUrl,\n afterSignInUrl: __afterSignInUrl,\n afterSignUpUrl: __afterSignUpUrl,\n signInForceRedirectUrl: __signInForceRedirectUrl,\n signUpForceRedirectUrl: __signUpForceRedirectUrl,\n signInFallbackRedirectUrl: __signInFallbackRedirectUrl,\n signUpFallbackRedirectUrl: __signUpFallbackRedirectUrl,\n clerkJSUrl: __clerkJSUrl,\n clerkUiUrl: __clerkUiUrl,\n clerkJSVersion: __clerkJSVersion,\n telemetry: {\n disabled: __telemetryDisabled,\n debug: __telemetryDebug,\n },\n };\n\n return (\n <ClerkReactRouterOptionsProvider options={mergedProps}>\n <ReactClerkProvider\n routerPush={(to: string) => awaitableNavigateRef.current?.(to)}\n routerReplace={(to: string) => awaitableNavigateRef.current?.(to, { replace: true })}\n initialState={__clerk_ssr_state}\n sdkMetadata={SDK_METADATA}\n {...mergedProps}\n {...restProps}\n >\n {children}\n </ReactClerkProvider>\n </ClerkReactRouterOptionsProvider>\n );\n}\n\ntype ClerkReactRouterOptions = Partial<\n Omit<ReactRouterClerkProviderProps, 'routerPush' | 'routerReplace' | 'clerkState'>\n>;\n\n// TODO: Remove \"any\" on loaderData type and use Route.ComponentProps from userland code\ntype ClerkProviderProps = ClerkReactRouterOptions & {\n loaderData?: any;\n};\n\nexport const ClerkProvider = ({ children, loaderData, ...opts }: ClerkProviderProps) => {\n let clerkState;\n const isSpaMode = _isSpaMode();\n\n // Don't use `loaderData` to fetch the clerk state if we're in SPA mode or if React Router is used as a library\n if (!isSpaMode && loaderData?.clerkState) {\n clerkState = loaderData.clerkState;\n }\n\n // In SPA mode the publishable key is required on the ClerkProvider\n if (typeof isSpaMode !== 'undefined' && isSpaMode) {\n assertPublishableKeyInSpaMode(opts.publishableKey);\n }\n\n return (\n <ClerkProviderBase\n {...(opts as ReactRouterClerkProviderProps)}\n clerkState={clerkState}\n >\n {children}\n </ClerkProviderBase>\n );\n};\n"],"mappings":";AAAA,SAAS,iBAAiB,0BAA0B;AACpD,OAAO,WAAW;AAElB;AAAA,EACE;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb;AAAA,OACK;AACP,SAAS,uCAAuC;AAEhD,SAAS,4BAA4B;AAErC,cAAc;AAEd,IAAM,eAAe;AAAA,EACnB,MAAM;AAAA,EACN,SAAS;AACX;AAMA,IAAM,uBAAyF,EAAE,SAAS,OAAU;AAUpH,SAAS,kBAAkB,EAAE,UAAU,GAAG,KAAK,GAAgC;AAC7E,QAAM,oBAAoB,qBAAqB;AAC/C,QAAM,YAAY,WAAW;AAE7B,QAAM,UAAU,MAAM;AACpB,yBAAqB,UAAU;AAAA,EACjC,GAAG,CAAC,iBAAiB,CAAC;AAEtB,QAAM,EAAE,YAAY,GAAG,UAAU,IAAI;AACrC,qBAAmB,cAAc;AAEjC,MAAI,OAAO,cAAc,eAAe,CAAC,WAAW;AAClD,0BAAsB,UAAU;AAAA,EAClC;AAEA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,KAAI,yCAAY,2BAA0B,CAAC;AAE3C,QAAM,UAAU,MAAM;AACpB,QAAI,OAAO,cAAc,eAAe,CAAC,WAAW;AAClD,iBAAW,UAAU;AAAA,IACvB;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,QAAM,UAAU,MAAM;AACpB,IAAC,OAAe,gBAAgB;AAAA,EAClC,GAAG,CAAC,CAAC;AAEL,QAAM,cAAc;AAAA,IAClB,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,WAAW;AAAA,IACX,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB,wBAAwB;AAAA,IACxB,wBAAwB;AAAA,IACxB,2BAA2B;AAAA,IAC3B,2BAA2B;AAAA,IAC3B,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,WAAW;AAAA,MACT,UAAU;AAAA,MACV,OAAO;AAAA,IACT;AAAA,EACF;AAEA,SACE,oCAAC,mCAAgC,SAAS,eACxC;AAAA,IAAC;AAAA;AAAA,MACC,YAAY,CAAC,OAAY;AA1GjC;AA0GoC,0CAAqB,YAArB,8CAA+B;AAAA;AAAA,MAC3D,eAAe,CAAC,OAAY;AA3GpC;AA2GuC,0CAAqB,YAArB,8CAA+B,IAAI,EAAE,SAAS,KAAK;AAAA;AAAA,MAClF,cAAc;AAAA,MACd,aAAa;AAAA,MACZ,GAAG;AAAA,MACH,GAAG;AAAA;AAAA,IAEH;AAAA,EACH,CACF;AAEJ;AAWO,IAAM,gBAAgB,CAAC,EAAE,UAAU,YAAY,GAAG,KAAK,MAA0B;AACtF,MAAI;AACJ,QAAM,YAAY,WAAW;AAG7B,MAAI,CAAC,cAAa,yCAAY,aAAY;AACxC,iBAAa,WAAW;AAAA,EAC1B;AAGA,MAAI,OAAO,cAAc,eAAe,WAAW;AACjD,kCAA8B,KAAK,cAAc;AAAA,EACnD;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAI;AAAA,MACL;AAAA;AAAA,IAEC;AAAA,EACH;AAEJ;","names":[]}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { ReactRouterClerkProviderProps } from './types.js';
3
- import '@clerk/clerk-react';
4
- import '@clerk/types';
3
+ import '@clerk/react';
4
+ import '@clerk/shared/types';
5
5
 
6
6
  type ClerkReactRouterContextValue = Partial<Omit<ReactRouterClerkProviderProps, 'children'>>;
7
7
  declare const useClerkReactRouterOptions: () => ClerkReactRouterContextValue;
@@ -1,6 +1,6 @@
1
1
  export { ClerkProvider } from './ReactRouterClerkProvider.js';
2
2
  export { WithClerkState } from './types.js';
3
3
  export { OrganizationProfile, SignIn, SignUp, UserProfile } from './uiComponents.js';
4
- export * from '@clerk/clerk-react';
4
+ export * from '@clerk/react';
5
5
  import 'react';
6
- import '@clerk/types';
6
+ import '@clerk/shared/types';
@@ -1,5 +1,5 @@
1
- import { ClerkProviderProps } from '@clerk/clerk-react';
2
- import { Without, InitialState } from '@clerk/types';
1
+ import { ClerkProviderProps } from '@clerk/react';
2
+ import { Without, InitialState } from '@clerk/shared/types';
3
3
  import React from 'react';
4
4
 
5
5
  type ClerkState = {
@@ -20,6 +20,7 @@ type ClerkState = {
20
20
  __signUpFallbackRedirectUrl: string | undefined;
21
21
  __clerk_debug: any;
22
22
  __clerkJSUrl: string | undefined;
23
+ __clerkUiUrl: string | undefined;
23
24
  __clerkJSVersion: string | undefined;
24
25
  __telemetryDisabled: boolean | undefined;
25
26
  __telemetryDebug: boolean | undefined;
@@ -1,5 +1,5 @@
1
- import { OrganizationProfile as OrganizationProfile$1, UserProfile as UserProfile$1 } from '@clerk/clerk-react';
2
- import { SignInProps, SignUpProps } from '@clerk/types';
1
+ import { OrganizationProfile as OrganizationProfile$1, UserProfile as UserProfile$1 } from '@clerk/react';
2
+ import { SignInProps, SignUpProps } from '@clerk/shared/types';
3
3
  import React from 'react';
4
4
 
5
5
  declare const UserProfile: typeof UserProfile$1;
@@ -4,8 +4,8 @@ import {
4
4
  SignIn as BaseSignIn,
5
5
  SignUp as BaseSignUp,
6
6
  UserProfile as BaseUserProfile
7
- } from "@clerk/clerk-react";
8
- import { useRoutingProps } from "@clerk/clerk-react/internal";
7
+ } from "@clerk/react";
8
+ import { useRoutingProps } from "@clerk/react/internal";
9
9
  import React from "react";
10
10
  import { usePathnameWithoutSplatRouteParams } from "./usePathnameWithoutSplatRouteParams.js";
11
11
  var UserProfile = Object.assign(
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/client/uiComponents.tsx"],"sourcesContent":["import {\n OrganizationProfile as BaseOrganizationProfile,\n SignIn as BaseSignIn,\n SignUp as BaseSignUp,\n UserProfile as BaseUserProfile,\n} from '@clerk/clerk-react';\nimport { useRoutingProps } from '@clerk/clerk-react/internal';\nimport type { OrganizationProfileProps, SignInProps, SignUpProps, UserProfileProps } from '@clerk/types';\nimport React from 'react';\n\nimport { usePathnameWithoutSplatRouteParams } from './usePathnameWithoutSplatRouteParams';\n\n// The assignment of UserProfile with BaseUserProfile props is used\n// to support the CustomPage functionality (eg UserProfile.Page)\n// Also the `typeof BaseUserProfile` is used to resolved the following error:\n// \"The inferred type of 'UserProfile' cannot be named without a reference to ...\"\nexport const UserProfile: typeof BaseUserProfile = Object.assign(\n (props: UserProfileProps) => {\n const path = usePathnameWithoutSplatRouteParams();\n return <BaseUserProfile {...useRoutingProps('UserProfile', props, { path })} />;\n },\n { ...BaseUserProfile },\n);\n\n// The assignment of OrganizationProfile with BaseOrganizationProfile props is used\n// to support the CustomPage functionality (eg OrganizationProfile.Page)\n// Also the `typeof BaseOrganizationProfile` is used to resolved the following error:\n// \"The inferred type of 'OrganizationProfile' cannot be named without a reference to ...\"\nexport const OrganizationProfile: typeof BaseOrganizationProfile = Object.assign(\n (props: OrganizationProfileProps) => {\n const path = usePathnameWithoutSplatRouteParams();\n return <BaseOrganizationProfile {...useRoutingProps('OrganizationProfile', props, { path })} />;\n },\n { ...BaseOrganizationProfile },\n);\n\nexport const SignIn = (props: SignInProps) => {\n const path = usePathnameWithoutSplatRouteParams();\n return <BaseSignIn {...useRoutingProps('SignIn', props, { path })} />;\n};\n\nexport const SignUp = (props: SignUpProps) => {\n const path = usePathnameWithoutSplatRouteParams();\n return <BaseSignUp {...useRoutingProps('SignUp', props, { path })} />;\n};\n"],"mappings":";AAAA;AAAA,EACE,uBAAuB;AAAA,EACvB,UAAU;AAAA,EACV,UAAU;AAAA,EACV,eAAe;AAAA,OACV;AACP,SAAS,uBAAuB;AAEhC,OAAO,WAAW;AAElB,SAAS,0CAA0C;AAM5C,IAAM,cAAsC,OAAO;AAAA,EACxD,CAAC,UAA4B;AAC3B,UAAM,OAAO,mCAAmC;AAChD,WAAO,oCAAC,mBAAiB,GAAG,gBAAgB,eAAe,OAAO,EAAE,KAAK,CAAC,GAAG;AAAA,EAC/E;AAAA,EACA,EAAE,GAAG,gBAAgB;AACvB;AAMO,IAAM,sBAAsD,OAAO;AAAA,EACxE,CAAC,UAAoC;AACnC,UAAM,OAAO,mCAAmC;AAChD,WAAO,oCAAC,2BAAyB,GAAG,gBAAgB,uBAAuB,OAAO,EAAE,KAAK,CAAC,GAAG;AAAA,EAC/F;AAAA,EACA,EAAE,GAAG,wBAAwB;AAC/B;AAEO,IAAM,SAAS,CAAC,UAAuB;AAC5C,QAAM,OAAO,mCAAmC;AAChD,SAAO,oCAAC,cAAY,GAAG,gBAAgB,UAAU,OAAO,EAAE,KAAK,CAAC,GAAG;AACrE;AAEO,IAAM,SAAS,CAAC,UAAuB;AAC5C,QAAM,OAAO,mCAAmC;AAChD,SAAO,oCAAC,cAAY,GAAG,gBAAgB,UAAU,OAAO,EAAE,KAAK,CAAC,GAAG;AACrE;","names":[]}
1
+ {"version":3,"sources":["../../src/client/uiComponents.tsx"],"sourcesContent":["import {\n OrganizationProfile as BaseOrganizationProfile,\n SignIn as BaseSignIn,\n SignUp as BaseSignUp,\n UserProfile as BaseUserProfile,\n} from '@clerk/react';\nimport { useRoutingProps } from '@clerk/react/internal';\nimport type { OrganizationProfileProps, SignInProps, SignUpProps, UserProfileProps } from '@clerk/shared/types';\nimport React from 'react';\n\nimport { usePathnameWithoutSplatRouteParams } from './usePathnameWithoutSplatRouteParams';\n\n// The assignment of UserProfile with BaseUserProfile props is used\n// to support the CustomPage functionality (eg UserProfile.Page)\n// Also the `typeof BaseUserProfile` is used to resolved the following error:\n// \"The inferred type of 'UserProfile' cannot be named without a reference to ...\"\nexport const UserProfile: typeof BaseUserProfile = Object.assign(\n (props: UserProfileProps) => {\n const path = usePathnameWithoutSplatRouteParams();\n return <BaseUserProfile {...useRoutingProps('UserProfile', props, { path })} />;\n },\n { ...BaseUserProfile },\n);\n\n// The assignment of OrganizationProfile with BaseOrganizationProfile props is used\n// to support the CustomPage functionality (eg OrganizationProfile.Page)\n// Also the `typeof BaseOrganizationProfile` is used to resolved the following error:\n// \"The inferred type of 'OrganizationProfile' cannot be named without a reference to ...\"\nexport const OrganizationProfile: typeof BaseOrganizationProfile = Object.assign(\n (props: OrganizationProfileProps) => {\n const path = usePathnameWithoutSplatRouteParams();\n return <BaseOrganizationProfile {...useRoutingProps('OrganizationProfile', props, { path })} />;\n },\n { ...BaseOrganizationProfile },\n);\n\nexport const SignIn = (props: SignInProps) => {\n const path = usePathnameWithoutSplatRouteParams();\n return <BaseSignIn {...useRoutingProps('SignIn', props, { path })} />;\n};\n\nexport const SignUp = (props: SignUpProps) => {\n const path = usePathnameWithoutSplatRouteParams();\n return <BaseSignUp {...useRoutingProps('SignUp', props, { path })} />;\n};\n"],"mappings":";AAAA;AAAA,EACE,uBAAuB;AAAA,EACvB,UAAU;AAAA,EACV,UAAU;AAAA,EACV,eAAe;AAAA,OACV;AACP,SAAS,uBAAuB;AAEhC,OAAO,WAAW;AAElB,SAAS,0CAA0C;AAM5C,IAAM,cAAsC,OAAO;AAAA,EACxD,CAAC,UAA4B;AAC3B,UAAM,OAAO,mCAAmC;AAChD,WAAO,oCAAC,mBAAiB,GAAG,gBAAgB,eAAe,OAAO,EAAE,KAAK,CAAC,GAAG;AAAA,EAC/E;AAAA,EACA,EAAE,GAAG,gBAAgB;AACvB;AAMO,IAAM,sBAAsD,OAAO;AAAA,EACxE,CAAC,UAAoC;AACnC,UAAM,OAAO,mCAAmC;AAChD,WAAO,oCAAC,2BAAyB,GAAG,gBAAgB,uBAAuB,OAAO,EAAE,KAAK,CAAC,GAAG;AAAA,EAC/F;AAAA,EACA,EAAE,GAAG,wBAAwB;AAC/B;AAEO,IAAM,SAAS,CAAC,UAAuB;AAC5C,QAAM,OAAO,mCAAmC;AAChD,SAAO,oCAAC,cAAY,GAAG,gBAAgB,UAAU,OAAO,EAAE,KAAK,CAAC,GAAG;AACrE;AAEO,IAAM,SAAS,CAAC,UAAuB;AAC5C,QAAM,OAAO,mCAAmC;AAChD,SAAO,oCAAC,cAAY,GAAG,gBAAgB,UAAU,OAAO,EAAE,KAAK,CAAC,GAAG;AACrE;","names":[]}
@@ -1,5 +1,5 @@
1
- import * as _clerk_shared_error_D7mHptsm from '@clerk/shared/error-D7mHptsm';
1
+ import * as _clerk_shared_error_BkKRfl_5 from '@clerk/shared/error-BkKRfl-5';
2
2
 
3
- declare const errorThrower: _clerk_shared_error_D7mHptsm.ErrorThrower;
3
+ declare const errorThrower: _clerk_shared_error_BkKRfl_5.v;
4
4
 
5
5
  export { errorThrower };
package/dist/errors.d.ts CHANGED
@@ -1,3 +1,4 @@
1
- export { EmailLinkErrorCode, EmailLinkErrorCodeStatus, isClerkAPIResponseError, isEmailLinkError, isKnownError, isMetamaskError, isReverificationCancelledError } from '@clerk/clerk-react/errors';
1
+ export { EmailLinkErrorCode, EmailLinkErrorCodeStatus, isClerkAPIResponseError, isEmailLinkError, isKnownError, isMetamaskError, isReverificationCancelledError } from '@clerk/react/errors';
2
+ import '@clerk/react/legacy';
2
3
  import '@clerk/backend/webhooks';
3
4
  import '@clerk/backend';
package/dist/errors.js CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  isReverificationCancelledError,
8
8
  EmailLinkErrorCode,
9
9
  EmailLinkErrorCodeStatus
10
- } from "@clerk/clerk-react/errors";
10
+ } from "@clerk/react/errors";
11
11
  export {
12
12
  EmailLinkErrorCode,
13
13
  EmailLinkErrorCodeStatus,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/errors.ts"],"sourcesContent":["export {\n isClerkAPIResponseError,\n isEmailLinkError,\n isKnownError,\n isMetamaskError,\n isReverificationCancelledError,\n EmailLinkErrorCode,\n EmailLinkErrorCodeStatus,\n} from '@clerk/clerk-react/errors';\n"],"mappings":";AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;","names":[]}
1
+ {"version":3,"sources":["../src/errors.ts"],"sourcesContent":["export {\n isClerkAPIResponseError,\n isEmailLinkError,\n isKnownError,\n isMetamaskError,\n isReverificationCancelledError,\n EmailLinkErrorCode,\n EmailLinkErrorCodeStatus,\n} from '@clerk/react/errors';\n"],"mappings":";AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;","names":[]}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { ClerkProvider } from './client/ReactRouterClerkProvider.js';
2
2
  export { WithClerkState } from './client/types.js';
3
3
  export { OrganizationProfile, SignIn, SignUp, UserProfile } from './client/uiComponents.js';
4
- export * from '@clerk/clerk-react';
4
+ export * from '@clerk/react';
5
5
  import 'react';
6
- import '@clerk/types';
6
+ import '@clerk/shared/types';
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // src/index.ts
2
2
  export * from "./client/index.js";
3
- import { setErrorThrowerOptions } from "@clerk/clerk-react/internal";
3
+ import { setErrorThrowerOptions } from "@clerk/react/internal";
4
4
  if (typeof window !== "undefined" && typeof window.global === "undefined") {
5
5
  window.global = window;
6
6
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["if (typeof window !== 'undefined' && typeof (window as any).global === 'undefined') {\n (window as any).global = window;\n}\n\nexport * from './client';\n\n// Override Clerk React error thrower to show that errors come from @clerk/react-router\nimport { setErrorThrowerOptions } from '@clerk/clerk-react/internal';\nsetErrorThrowerOptions({ packageName: PACKAGE_NAME });\n"],"mappings":";AAIA,cAAc;AAGd,SAAS,8BAA8B;AAPvC,IAAI,OAAO,WAAW,eAAe,OAAQ,OAAe,WAAW,aAAa;AAClF,EAAC,OAAe,SAAS;AAC3B;AAMA,uBAAuB,EAAE,aAAa,sBAAa,CAAC;","names":[]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["if (typeof window !== 'undefined' && typeof (window as any).global === 'undefined') {\n (window as any).global = window;\n}\n\nexport * from './client';\n\n// Override Clerk React error thrower to show that errors come from @clerk/react-router\nimport { setErrorThrowerOptions } from '@clerk/react/internal';\nsetErrorThrowerOptions({ packageName: PACKAGE_NAME });\n"],"mappings":";AAIA,cAAc;AAGd,SAAS,8BAA8B;AAPvC,IAAI,OAAO,WAAW,eAAe,OAAQ,OAAe,WAAW,aAAa;AAClF,EAAC,OAAe,SAAS;AAC3B;AAMA,uBAAuB,EAAE,aAAa,sBAAa,CAAC;","names":[]}
@@ -0,0 +1 @@
1
+ export { useSignIn, useSignUp } from '@clerk/react/legacy';
package/dist/legacy.js ADDED
@@ -0,0 +1,7 @@
1
+ // src/legacy.ts
2
+ import { useSignIn, useSignUp } from "@clerk/react/legacy";
3
+ export {
4
+ useSignIn,
5
+ useSignUp
6
+ };
7
+ //# sourceMappingURL=legacy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/legacy.ts"],"sourcesContent":["export { useSignIn, useSignUp } from '@clerk/react/legacy';\n"],"mappings":";AAAA,SAAS,WAAW,iBAAiB;","names":[]}
@@ -3,7 +3,7 @@ import { DataFunctionArgs } from './loadOptions.js';
3
3
  import '@clerk/backend/internal';
4
4
  import 'react-router';
5
5
  import './types.js';
6
- import '@clerk/types';
6
+ import '@clerk/shared/types';
7
7
 
8
8
  declare const clerkClient: (args: DataFunctionArgs) => _clerk_backend.ClerkClient;
9
9
 
@@ -13,7 +13,7 @@ var clerkClient = (args) => {
13
13
  domain,
14
14
  publishableKey,
15
15
  machineSecretKey,
16
- userAgent: `${"@clerk/react-router"}@${"2.2.4"}`
16
+ userAgent: `${"@clerk/react-router"}@${"2.2.5-canary-core3.v20251124105058"}`
17
17
  });
18
18
  };
19
19
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/server/clerkClient.ts"],"sourcesContent":["import { createClerkClient } from '@clerk/backend';\n\nimport { type DataFunctionArgs, loadOptions } from './loadOptions';\n\nexport const clerkClient = (args: DataFunctionArgs) => {\n const options = loadOptions(args);\n\n const { apiUrl, secretKey, jwtKey, proxyUrl, isSatellite, domain, publishableKey, machineSecretKey } = options;\n\n return createClerkClient({\n apiUrl,\n secretKey,\n jwtKey,\n proxyUrl,\n isSatellite,\n domain,\n publishableKey,\n machineSecretKey,\n userAgent: `${PACKAGE_NAME}@${PACKAGE_VERSION}`,\n });\n};\n"],"mappings":";AAAA,SAAS,yBAAyB;AAElC,SAAgC,mBAAmB;AAE5C,IAAM,cAAc,CAAC,SAA2B;AACrD,QAAM,UAAU,YAAY,IAAI;AAEhC,QAAM,EAAE,QAAQ,WAAW,QAAQ,UAAU,aAAa,QAAQ,gBAAgB,iBAAiB,IAAI;AAEvG,SAAO,kBAAkB;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW,GAAG,qBAAY,IAAI,OAAe;AAAA,EAC/C,CAAC;AACH;","names":[]}
1
+ {"version":3,"sources":["../../src/server/clerkClient.ts"],"sourcesContent":["import { createClerkClient } from '@clerk/backend';\n\nimport { type DataFunctionArgs, loadOptions } from './loadOptions';\n\nexport const clerkClient = (args: DataFunctionArgs) => {\n const options = loadOptions(args);\n\n const { apiUrl, secretKey, jwtKey, proxyUrl, isSatellite, domain, publishableKey, machineSecretKey } = options;\n\n return createClerkClient({\n apiUrl,\n secretKey,\n jwtKey,\n proxyUrl,\n isSatellite,\n domain,\n publishableKey,\n machineSecretKey,\n userAgent: `${PACKAGE_NAME}@${PACKAGE_VERSION}`,\n });\n};\n"],"mappings":";AAAA,SAAS,yBAAyB;AAElC,SAAgC,mBAAmB;AAE5C,IAAM,cAAc,CAAC,SAA2B;AACrD,QAAM,UAAU,YAAY,IAAI;AAEhC,QAAM,EAAE,QAAQ,WAAW,QAAQ,UAAU,aAAa,QAAQ,gBAAgB,iBAAiB,IAAI;AAEvG,SAAO,kBAAkB;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW,GAAG,qBAAY,IAAI,oCAAe;AAAA,EAC/C,CAAC;AACH;","names":[]}
@@ -2,7 +2,7 @@ import * as react_router from 'react-router';
2
2
  import { MiddlewareFunction } from 'react-router';
3
3
  import { AuthObject } from '@clerk/backend';
4
4
  import { RequestState } from '@clerk/backend/internal';
5
- import { PendingSessionOptions } from '@clerk/types';
5
+ import { PendingSessionOptions } from '@clerk/shared/types';
6
6
  import { ClerkMiddlewareOptions } from './types.js';
7
7
 
8
8
  declare const authFnContext: react_router.RouterContext<((options?: PendingSessionOptions) => AuthObject) | null>;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/server/clerkMiddleware.ts"],"sourcesContent":["import type { AuthObject } from '@clerk/backend';\nimport type { RequestState } from '@clerk/backend/internal';\nimport { AuthStatus, constants, createClerkRequest } from '@clerk/backend/internal';\nimport { handleNetlifyCacheInDevInstance } from '@clerk/shared/netlifyCacheHandler';\nimport type { PendingSessionOptions } from '@clerk/types';\nimport type { MiddlewareFunction } from 'react-router';\nimport { createContext } from 'react-router';\n\nimport { clerkClient } from './clerkClient';\nimport { loadOptions } from './loadOptions';\nimport type { ClerkMiddlewareOptions } from './types';\nimport { patchRequest } from './utils';\n\nexport const authFnContext = createContext<((options?: PendingSessionOptions) => AuthObject) | null>(null);\nexport const requestStateContext = createContext<RequestState<any> | null>(null);\n\n/**\n * Middleware that integrates Clerk authentication into your React Router application.\n * It checks the request's cookies and headers for a session JWT and, if found,\n * attaches the Auth object to a context.\n *\n * @example\n * // react-router.config.ts\n * export default {\n * future: {\n * v8_middleware: true,\n * },\n * }\n *\n * // root.tsx\n * export const middleware: Route.MiddlewareFunction[] = [clerkMiddleware()]\n */\nexport const clerkMiddleware = (options?: ClerkMiddlewareOptions): MiddlewareFunction<Response> => {\n return async (args, next) => {\n const clerkRequest = createClerkRequest(patchRequest(args.request));\n const loadedOptions = loadOptions(args, options);\n\n // Pick only the properties needed by authenticateRequest.\n // Used when manually providing options to the middleware.\n const {\n apiUrl,\n secretKey,\n jwtKey,\n proxyUrl,\n isSatellite,\n domain,\n publishableKey,\n machineSecretKey,\n audience,\n authorizedParties,\n signInUrl,\n signUpUrl,\n afterSignInUrl,\n afterSignUpUrl,\n organizationSyncOptions,\n } = loadedOptions;\n\n const requestState = await clerkClient(args).authenticateRequest(clerkRequest, {\n apiUrl,\n secretKey,\n jwtKey,\n proxyUrl,\n isSatellite,\n domain,\n publishableKey,\n machineSecretKey,\n audience,\n authorizedParties,\n organizationSyncOptions,\n signInUrl,\n signUpUrl,\n afterSignInUrl,\n afterSignUpUrl,\n acceptsToken: 'any',\n });\n\n const locationHeader = requestState.headers.get(constants.Headers.Location);\n if (locationHeader) {\n handleNetlifyCacheInDevInstance({\n locationHeader,\n requestStateHeaders: requestState.headers,\n publishableKey: requestState.publishableKey,\n });\n // Trigger a handshake redirect\n return new Response(null, { status: 307, headers: requestState.headers });\n }\n\n if (requestState.status === AuthStatus.Handshake) {\n throw new Error('Clerk: handshake status without redirect');\n }\n\n args.context.set(authFnContext, (options?: PendingSessionOptions) => requestState.toAuth(options));\n args.context.set(requestStateContext, requestState);\n\n const response = await next();\n\n if (requestState.headers) {\n requestState.headers.forEach((value, key) => {\n response.headers.append(key, value);\n });\n }\n\n return response;\n };\n};\n"],"mappings":";AAEA,SAAS,YAAY,WAAW,0BAA0B;AAC1D,SAAS,uCAAuC;AAGhD,SAAS,qBAAqB;AAE9B,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB;AAE5B,SAAS,oBAAoB;AAEtB,IAAM,gBAAgB,cAAwE,IAAI;AAClG,IAAM,sBAAsB,cAAwC,IAAI;AAkBxE,IAAM,kBAAkB,CAAC,YAAmE;AACjG,SAAO,OAAO,MAAM,SAAS;AAC3B,UAAM,eAAe,mBAAmB,aAAa,KAAK,OAAO,CAAC;AAClE,UAAM,gBAAgB,YAAY,MAAM,OAAO;AAI/C,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AAEJ,UAAM,eAAe,MAAM,YAAY,IAAI,EAAE,oBAAoB,cAAc;AAAA,MAC7E;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAc;AAAA,IAChB,CAAC;AAED,UAAM,iBAAiB,aAAa,QAAQ,IAAI,UAAU,QAAQ,QAAQ;AAC1E,QAAI,gBAAgB;AAClB,sCAAgC;AAAA,QAC9B;AAAA,QACA,qBAAqB,aAAa;AAAA,QAClC,gBAAgB,aAAa;AAAA,MAC/B,CAAC;AAED,aAAO,IAAI,SAAS,MAAM,EAAE,QAAQ,KAAK,SAAS,aAAa,QAAQ,CAAC;AAAA,IAC1E;AAEA,QAAI,aAAa,WAAW,WAAW,WAAW;AAChD,YAAM,IAAI,MAAM,0CAA0C;AAAA,IAC5D;AAEA,SAAK,QAAQ,IAAI,eAAe,CAACA,aAAoC,aAAa,OAAOA,QAAO,CAAC;AACjG,SAAK,QAAQ,IAAI,qBAAqB,YAAY;AAElD,UAAM,WAAW,MAAM,KAAK;AAE5B,QAAI,aAAa,SAAS;AACxB,mBAAa,QAAQ,QAAQ,CAAC,OAAO,QAAQ;AAC3C,iBAAS,QAAQ,OAAO,KAAK,KAAK;AAAA,MACpC,CAAC;AAAA,IACH;AAEA,WAAO;AAAA,EACT;AACF;","names":["options"]}
1
+ {"version":3,"sources":["../../src/server/clerkMiddleware.ts"],"sourcesContent":["import type { AuthObject } from '@clerk/backend';\nimport type { RequestState } from '@clerk/backend/internal';\nimport { AuthStatus, constants, createClerkRequest } from '@clerk/backend/internal';\nimport { handleNetlifyCacheInDevInstance } from '@clerk/shared/netlifyCacheHandler';\nimport type { PendingSessionOptions } from '@clerk/shared/types';\nimport type { MiddlewareFunction } from 'react-router';\nimport { createContext } from 'react-router';\n\nimport { clerkClient } from './clerkClient';\nimport { loadOptions } from './loadOptions';\nimport type { ClerkMiddlewareOptions } from './types';\nimport { patchRequest } from './utils';\n\nexport const authFnContext = createContext<((options?: PendingSessionOptions) => AuthObject) | null>(null);\nexport const requestStateContext = createContext<RequestState<any> | null>(null);\n\n/**\n * Middleware that integrates Clerk authentication into your React Router application.\n * It checks the request's cookies and headers for a session JWT and, if found,\n * attaches the Auth object to a context.\n *\n * @example\n * // react-router.config.ts\n * export default {\n * future: {\n * v8_middleware: true,\n * },\n * }\n *\n * // root.tsx\n * export const middleware: Route.MiddlewareFunction[] = [clerkMiddleware()]\n */\nexport const clerkMiddleware = (options?: ClerkMiddlewareOptions): MiddlewareFunction<Response> => {\n return async (args, next) => {\n const clerkRequest = createClerkRequest(patchRequest(args.request));\n const loadedOptions = loadOptions(args, options);\n\n // Pick only the properties needed by authenticateRequest.\n // Used when manually providing options to the middleware.\n const {\n apiUrl,\n secretKey,\n jwtKey,\n proxyUrl,\n isSatellite,\n domain,\n publishableKey,\n machineSecretKey,\n audience,\n authorizedParties,\n signInUrl,\n signUpUrl,\n afterSignInUrl,\n afterSignUpUrl,\n organizationSyncOptions,\n } = loadedOptions;\n\n const requestState = await clerkClient(args).authenticateRequest(clerkRequest, {\n apiUrl,\n secretKey,\n jwtKey,\n proxyUrl,\n isSatellite,\n domain,\n publishableKey,\n machineSecretKey,\n audience,\n authorizedParties,\n organizationSyncOptions,\n signInUrl,\n signUpUrl,\n afterSignInUrl,\n afterSignUpUrl,\n acceptsToken: 'any',\n });\n\n const locationHeader = requestState.headers.get(constants.Headers.Location);\n if (locationHeader) {\n handleNetlifyCacheInDevInstance({\n locationHeader,\n requestStateHeaders: requestState.headers,\n publishableKey: requestState.publishableKey,\n });\n // Trigger a handshake redirect\n return new Response(null, { status: 307, headers: requestState.headers });\n }\n\n if (requestState.status === AuthStatus.Handshake) {\n throw new Error('Clerk: handshake status without redirect');\n }\n\n args.context.set(authFnContext, (options?: PendingSessionOptions) => requestState.toAuth(options));\n args.context.set(requestStateContext, requestState);\n\n const response = await next();\n\n if (requestState.headers) {\n requestState.headers.forEach((value, key) => {\n response.headers.append(key, value);\n });\n }\n\n return response;\n };\n};\n"],"mappings":";AAEA,SAAS,YAAY,WAAW,0BAA0B;AAC1D,SAAS,uCAAuC;AAGhD,SAAS,qBAAqB;AAE9B,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB;AAE5B,SAAS,oBAAoB;AAEtB,IAAM,gBAAgB,cAAwE,IAAI;AAClG,IAAM,sBAAsB,cAAwC,IAAI;AAkBxE,IAAM,kBAAkB,CAAC,YAAmE;AACjG,SAAO,OAAO,MAAM,SAAS;AAC3B,UAAM,eAAe,mBAAmB,aAAa,KAAK,OAAO,CAAC;AAClE,UAAM,gBAAgB,YAAY,MAAM,OAAO;AAI/C,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AAEJ,UAAM,eAAe,MAAM,YAAY,IAAI,EAAE,oBAAoB,cAAc;AAAA,MAC7E;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAc;AAAA,IAChB,CAAC;AAED,UAAM,iBAAiB,aAAa,QAAQ,IAAI,UAAU,QAAQ,QAAQ;AAC1E,QAAI,gBAAgB;AAClB,sCAAgC;AAAA,QAC9B;AAAA,QACA,qBAAqB,aAAa;AAAA,QAClC,gBAAgB,aAAa;AAAA,MAC/B,CAAC;AAED,aAAO,IAAI,SAAS,MAAM,EAAE,QAAQ,KAAK,SAAS,aAAa,QAAQ,CAAC;AAAA,IAC1E;AAEA,QAAI,aAAa,WAAW,WAAW,WAAW;AAChD,YAAM,IAAI,MAAM,0CAA0C;AAAA,IAC5D;AAEA,SAAK,QAAQ,IAAI,eAAe,CAACA,aAAoC,aAAa,OAAOA,QAAO,CAAC;AACjG,SAAK,QAAQ,IAAI,qBAAqB,YAAY;AAElD,UAAM,WAAW,MAAM,KAAK;AAE5B,QAAI,aAAa,SAAS;AACxB,mBAAa,QAAQ,QAAQ,CAAC,OAAO,QAAQ;AAC3C,iBAAS,QAAQ,OAAO,KAAK,KAAK;AAAA,MACpC,CAAC;AAAA,IACH;AAEA,WAAO;AAAA,EACT;AACF;","names":["options"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/server/getAuth.ts"],"sourcesContent":["import {\n type AuthenticateRequestOptions,\n type GetAuthFn,\n getAuthObjectForAcceptedToken,\n} from '@clerk/backend/internal';\nimport type { PendingSessionOptions } from '@clerk/types';\nimport type { LoaderFunctionArgs } from 'react-router';\n\nimport { IsOptIntoMiddleware } from '../server/utils';\nimport { noLoaderArgsPassedInGetAuth } from '../utils/errors';\nimport { authFnContext } from './clerkMiddleware';\nimport { legacyAuthenticateRequest } from './legacyAuthenticateRequest';\nimport { loadOptions } from './loadOptions';\n\ntype GetAuthOptions = PendingSessionOptions & { acceptsToken?: AuthenticateRequestOptions['acceptsToken'] };\n\nexport const getAuth: GetAuthFn<LoaderFunctionArgs, true> = (async (\n args: LoaderFunctionArgs,\n opts?: GetAuthOptions,\n) => {\n if (!args || (args && (!args.request || !args.context))) {\n throw new Error(noLoaderArgsPassedInGetAuth);\n }\n\n const { acceptsToken, treatPendingAsSignedOut, ...restOptions } = opts || {};\n\n // If the middleware is installed, use the auth function from the context\n const authObjectFn = IsOptIntoMiddleware(args.context) && args.context.get(authFnContext);\n if (authObjectFn) {\n return getAuthObjectForAcceptedToken({\n authObject: authObjectFn({ treatPendingAsSignedOut }),\n acceptsToken,\n });\n }\n\n // Fallback to the legacy authenticateRequest if the middleware is not installed\n const loadedOptions = loadOptions(args, restOptions);\n const requestState = await legacyAuthenticateRequest(args, {\n ...loadedOptions,\n acceptsToken: 'any',\n });\n\n const authObject = requestState.toAuth({ treatPendingAsSignedOut });\n\n return getAuthObjectForAcceptedToken({ authObject, acceptsToken });\n}) as GetAuthFn<LoaderFunctionArgs, true>;\n"],"mappings":";AAAA;AAAA,EAGE;AAAA,OACK;AAIP,SAAS,2BAA2B;AACpC,SAAS,mCAAmC;AAC5C,SAAS,qBAAqB;AAC9B,SAAS,iCAAiC;AAC1C,SAAS,mBAAmB;AAIrB,IAAM,WAAgD,OAC3D,MACA,SACG;AACH,MAAI,CAAC,QAAS,SAAS,CAAC,KAAK,WAAW,CAAC,KAAK,UAAW;AACvD,UAAM,IAAI,MAAM,2BAA2B;AAAA,EAC7C;AAEA,QAAM,EAAE,cAAc,yBAAyB,GAAG,YAAY,IAAI,QAAQ,CAAC;AAG3E,QAAM,eAAe,oBAAoB,KAAK,OAAO,KAAK,KAAK,QAAQ,IAAI,aAAa;AACxF,MAAI,cAAc;AAChB,WAAO,8BAA8B;AAAA,MACnC,YAAY,aAAa,EAAE,wBAAwB,CAAC;AAAA,MACpD;AAAA,IACF,CAAC;AAAA,EACH;AAGA,QAAM,gBAAgB,YAAY,MAAM,WAAW;AACnD,QAAM,eAAe,MAAM,0BAA0B,MAAM;AAAA,IACzD,GAAG;AAAA,IACH,cAAc;AAAA,EAChB,CAAC;AAED,QAAM,aAAa,aAAa,OAAO,EAAE,wBAAwB,CAAC;AAElE,SAAO,8BAA8B,EAAE,YAAY,aAAa,CAAC;AACnE;","names":[]}
1
+ {"version":3,"sources":["../../src/server/getAuth.ts"],"sourcesContent":["import {\n type AuthenticateRequestOptions,\n type GetAuthFn,\n getAuthObjectForAcceptedToken,\n} from '@clerk/backend/internal';\nimport type { PendingSessionOptions } from '@clerk/shared/types';\nimport type { LoaderFunctionArgs } from 'react-router';\n\nimport { IsOptIntoMiddleware } from '../server/utils';\nimport { noLoaderArgsPassedInGetAuth } from '../utils/errors';\nimport { authFnContext } from './clerkMiddleware';\nimport { legacyAuthenticateRequest } from './legacyAuthenticateRequest';\nimport { loadOptions } from './loadOptions';\n\ntype GetAuthOptions = PendingSessionOptions & { acceptsToken?: AuthenticateRequestOptions['acceptsToken'] };\n\nexport const getAuth: GetAuthFn<LoaderFunctionArgs, true> = (async (\n args: LoaderFunctionArgs,\n opts?: GetAuthOptions,\n) => {\n if (!args || (args && (!args.request || !args.context))) {\n throw new Error(noLoaderArgsPassedInGetAuth);\n }\n\n const { acceptsToken, treatPendingAsSignedOut, ...restOptions } = opts || {};\n\n // If the middleware is installed, use the auth function from the context\n const authObjectFn = IsOptIntoMiddleware(args.context) && args.context.get(authFnContext);\n if (authObjectFn) {\n return getAuthObjectForAcceptedToken({\n authObject: authObjectFn({ treatPendingAsSignedOut }),\n acceptsToken,\n });\n }\n\n // Fallback to the legacy authenticateRequest if the middleware is not installed\n const loadedOptions = loadOptions(args, restOptions);\n const requestState = await legacyAuthenticateRequest(args, {\n ...loadedOptions,\n acceptsToken: 'any',\n });\n\n const authObject = requestState.toAuth({ treatPendingAsSignedOut });\n\n return getAuthObjectForAcceptedToken({ authObject, acceptsToken });\n}) as GetAuthFn<LoaderFunctionArgs, true>;\n"],"mappings":";AAAA;AAAA,EAGE;AAAA,OACK;AAIP,SAAS,2BAA2B;AACpC,SAAS,mCAAmC;AAC5C,SAAS,qBAAqB;AAC9B,SAAS,iCAAiC;AAC1C,SAAS,mBAAmB;AAIrB,IAAM,WAAgD,OAC3D,MACA,SACG;AACH,MAAI,CAAC,QAAS,SAAS,CAAC,KAAK,WAAW,CAAC,KAAK,UAAW;AACvD,UAAM,IAAI,MAAM,2BAA2B;AAAA,EAC7C;AAEA,QAAM,EAAE,cAAc,yBAAyB,GAAG,YAAY,IAAI,QAAQ,CAAC;AAG3E,QAAM,eAAe,oBAAoB,KAAK,OAAO,KAAK,KAAK,QAAQ,IAAI,aAAa;AACxF,MAAI,cAAc;AAChB,WAAO,8BAA8B;AAAA,MACnC,YAAY,aAAa,EAAE,wBAAwB,CAAC;AAAA,MACpD;AAAA,IACF,CAAC;AAAA,EACH;AAGA,QAAM,gBAAgB,YAAY,MAAM,WAAW;AACnD,QAAM,eAAe,MAAM,0BAA0B,MAAM;AAAA,IACzD,GAAG;AAAA,IACH,cAAc;AAAA,EAChB,CAAC;AAED,QAAM,aAAa,aAAa,OAAO,EAAE,wBAAwB,CAAC;AAElE,SAAO,8BAA8B,EAAE,YAAY,aAAa,CAAC;AACnE;","names":[]}
@@ -5,6 +5,6 @@ export { getAuth } from './getAuth.js';
5
5
  export { clerkClient } from './clerkClient.js';
6
6
  import 'react-router';
7
7
  import '@clerk/backend/internal';
8
- import '@clerk/types';
8
+ import '@clerk/shared/types';
9
9
  import './types.js';
10
10
  import './loadOptions.js';
@@ -2,7 +2,7 @@ import * as _clerk_backend_internal from '@clerk/backend/internal';
2
2
  import { MiddlewareFunction } from 'react-router';
3
3
  import { ClerkMiddlewareOptions } from './types.js';
4
4
  import '@clerk/backend';
5
- import '@clerk/types';
5
+ import '@clerk/shared/types';
6
6
 
7
7
  type DataFunctionArgs = Parameters<MiddlewareFunction<Response>>[0];
8
8
  declare const loadOptions: (args: DataFunctionArgs, overrides?: ClerkMiddlewareOptions) => {
@@ -2,7 +2,7 @@ import { LoaderFunctionArgs } from 'react-router';
2
2
  import { RootAuthLoaderOptions, RootAuthLoaderCallback, LoaderFunctionReturn } from './types.js';
3
3
  import '@clerk/backend';
4
4
  import '@clerk/backend/internal';
5
- import '@clerk/types';
5
+ import '@clerk/shared/types';
6
6
 
7
7
  interface RootAuthLoader {
8
8
  <Options extends RootAuthLoaderOptions, Callback extends RootAuthLoaderCallback<Options>>(
@@ -1,6 +1,6 @@
1
1
  import { VerifyTokenOptions, Session, User, Organization } from '@clerk/backend';
2
2
  import { OrganizationSyncOptions, SignedInAuthObject, SignedOutAuthObject, RequestState } from '@clerk/backend/internal';
3
- import { MultiDomainAndOrProxy, SignInForceRedirectUrl, SignInFallbackRedirectUrl, SignUpForceRedirectUrl, SignUpFallbackRedirectUrl, LegacyRedirectProps } from '@clerk/types';
3
+ import { MultiDomainAndOrProxy, SignInForceRedirectUrl, SignInFallbackRedirectUrl, SignUpForceRedirectUrl, SignUpFallbackRedirectUrl, LegacyRedirectProps } from '@clerk/shared/types';
4
4
  import { LoaderFunctionArgs, UNSAFE_DataWithResponseInit, LoaderFunction } from 'react-router';
5
5
 
6
6
  type GetAuthReturn = Promise<SignedInAuthObject | SignedOutAuthObject>;
@@ -2,12 +2,12 @@ import { UNSAFE_DataWithResponseInit, AppLoadContext } from 'react-router';
2
2
  import { RequestStateWithRedirectUrls } from './types.js';
3
3
  import '@clerk/backend';
4
4
  import '@clerk/backend/internal';
5
- import '@clerk/types';
5
+ import '@clerk/shared/types';
6
6
 
7
7
  declare function isResponse(value: any): value is Response;
8
8
  declare function isDataWithResponseInit(value: any): value is UNSAFE_DataWithResponseInit<unknown>;
9
9
  declare function isRedirect(res: Response): boolean;
10
- declare const parseCookies: (req: Request) => Record<string, string>;
10
+ declare const parseCookies: (req: Request) => Record<string, string | undefined>;
11
11
  declare function assertValidHandlerResult(val: any, error?: string): asserts val is Record<string, unknown> | null;
12
12
  /**
13
13
  * `get` and `set` properties will only be available if v8_middleware flag is enabled
@@ -52,6 +52,7 @@ function getResponseClerkState(requestState, context) {
52
52
  __signUpFallbackRedirectUrl: requestState.signUpFallbackRedirectUrl,
53
53
  __clerk_debug: debugRequestState(requestState),
54
54
  __clerkJSUrl: getPublicEnvVariables(context).clerkJsUrl,
55
+ __clerkUiUrl: getPublicEnvVariables(context).clerkUiUrl,
55
56
  __clerkJSVersion: getPublicEnvVariables(context).clerkJsVersion,
56
57
  __telemetryDisabled: getPublicEnvVariables(context).telemetryDisabled,
57
58
  __telemetryDebug: getPublicEnvVariables(context).telemetryDebug
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/server/utils.ts"],"sourcesContent":["import { constants, debugRequestState } from '@clerk/backend/internal';\nimport cookie from 'cookie';\nimport type { AppLoadContext, UNSAFE_DataWithResponseInit } from 'react-router';\n\nimport { getPublicEnvVariables } from '../utils/env';\nimport type { RequestStateWithRedirectUrls } from './types';\n\nexport function isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === 'number' &&\n typeof value.statusText === 'string' &&\n typeof value.headers === 'object' &&\n typeof value.body !== 'undefined'\n );\n}\n\nexport function isDataWithResponseInit(value: any): value is UNSAFE_DataWithResponseInit<unknown> {\n return (\n typeof value === 'object' &&\n value != null &&\n 'type' in value &&\n 'data' in value &&\n 'init' in value &&\n value.type === 'DataWithResponseInit'\n );\n}\n\nexport function isRedirect(res: Response): boolean {\n return res.status >= 300 && res.status < 400;\n}\n\nexport const parseCookies = (req: Request) => {\n return cookie.parse(req.headers.get('cookie') || '');\n};\n\nexport function assertValidHandlerResult(val: any, error?: string): asserts val is Record<string, unknown> | null {\n if ((val !== null && typeof val !== 'object') || Array.isArray(val)) {\n throw new Error(error || '');\n }\n}\n\n/**\n * `get` and `set` properties will only be available if v8_middleware flag is enabled\n * See: https://reactrouter.com/upgrading/future#futurev8_middleware\n */\nexport const IsOptIntoMiddleware = (context: AppLoadContext) => {\n return 'get' in context && 'set' in context;\n};\n\nexport const injectRequestStateIntoResponse = async (\n response: Response,\n requestState: RequestStateWithRedirectUrls,\n context: AppLoadContext,\n includeClerkHeaders = false,\n) => {\n const clone = new Response(response.body, response);\n const data = await clone.json();\n\n const { clerkState, headers } = getResponseClerkState(requestState, context);\n\n // set the correct content-type header in case the user returned a `Response` directly\n clone.headers.set(constants.Headers.ContentType, constants.ContentTypes.Json);\n\n // Only add Clerk headers if requested (for legacy mode)\n if (includeClerkHeaders) {\n headers.forEach((value, key) => {\n clone.headers.append(key, value);\n });\n }\n\n return Response.json({ ...(data || {}), ...clerkState }, clone);\n};\n\n/**\n * Returns the clerk state object and observability headers to be injected into a loader response.\n *\n * @internal\n */\nexport function getResponseClerkState(requestState: RequestStateWithRedirectUrls, context: AppLoadContext) {\n const { reason, message, isSignedIn, ...rest } = requestState;\n const clerkState = wrapWithClerkState({\n __clerk_ssr_state: rest.toAuth(),\n __publishableKey: requestState.publishableKey,\n __proxyUrl: requestState.proxyUrl,\n __domain: requestState.domain,\n __isSatellite: requestState.isSatellite,\n __signInUrl: requestState.signInUrl,\n __signUpUrl: requestState.signUpUrl,\n __afterSignInUrl: requestState.afterSignInUrl,\n __afterSignUpUrl: requestState.afterSignUpUrl,\n __signInForceRedirectUrl: requestState.signInForceRedirectUrl,\n __signUpForceRedirectUrl: requestState.signUpForceRedirectUrl,\n __signInFallbackRedirectUrl: requestState.signInFallbackRedirectUrl,\n __signUpFallbackRedirectUrl: requestState.signUpFallbackRedirectUrl,\n __clerk_debug: debugRequestState(requestState),\n __clerkJSUrl: getPublicEnvVariables(context).clerkJsUrl,\n __clerkJSVersion: getPublicEnvVariables(context).clerkJsVersion,\n __telemetryDisabled: getPublicEnvVariables(context).telemetryDisabled,\n __telemetryDebug: getPublicEnvVariables(context).telemetryDebug,\n });\n\n return {\n clerkState,\n headers: requestState.headers,\n };\n}\n\n/**\n * Wraps obscured clerk internals with a readable `clerkState` key.\n * This is intended to be passed by the user into <ClerkProvider>\n *\n * @internal\n */\nexport const wrapWithClerkState = (data: any) => {\n return { clerkState: { __internal_clerk_state: { ...data } } };\n};\n\n/**\n * Patches request to avoid duplex issues with unidici\n * For more information, see:\n * https://github.com/nodejs/node/issues/46221\n * https://github.com/whatwg/fetch/pull/1457\n * @internal\n */\nexport const patchRequest = (request: Request) => {\n const clonedRequest = new Request(request.url, {\n headers: request.headers,\n method: request.method,\n redirect: request.redirect,\n cache: request.cache,\n signal: request.signal,\n });\n\n // If duplex is not set, set it to 'half' to avoid duplex issues with unidici\n if (clonedRequest.method !== 'GET' && clonedRequest.body !== null && !('duplex' in clonedRequest)) {\n (clonedRequest as unknown as { duplex: 'half' }).duplex = 'half';\n }\n\n return clonedRequest;\n};\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/server/utils.ts"],"sourcesContent":["import { constants, debugRequestState } from '@clerk/backend/internal';\nimport cookie from 'cookie';\nimport type { AppLoadContext, UNSAFE_DataWithResponseInit } from 'react-router';\n\nimport { getPublicEnvVariables } from '../utils/env';\nimport type { RequestStateWithRedirectUrls } from './types';\n\nexport function isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === 'number' &&\n typeof value.statusText === 'string' &&\n typeof value.headers === 'object' &&\n typeof value.body !== 'undefined'\n );\n}\n\nexport function isDataWithResponseInit(value: any): value is UNSAFE_DataWithResponseInit<unknown> {\n return (\n typeof value === 'object' &&\n value != null &&\n 'type' in value &&\n 'data' in value &&\n 'init' in value &&\n value.type === 'DataWithResponseInit'\n );\n}\n\nexport function isRedirect(res: Response): boolean {\n return res.status >= 300 && res.status < 400;\n}\n\nexport const parseCookies = (req: Request) => {\n return cookie.parse(req.headers.get('cookie') || '');\n};\n\nexport function assertValidHandlerResult(val: any, error?: string): asserts val is Record<string, unknown> | null {\n if ((val !== null && typeof val !== 'object') || Array.isArray(val)) {\n throw new Error(error || '');\n }\n}\n\n/**\n * `get` and `set` properties will only be available if v8_middleware flag is enabled\n * See: https://reactrouter.com/upgrading/future#futurev8_middleware\n */\nexport const IsOptIntoMiddleware = (context: AppLoadContext) => {\n return 'get' in context && 'set' in context;\n};\n\nexport const injectRequestStateIntoResponse = async (\n response: Response,\n requestState: RequestStateWithRedirectUrls,\n context: AppLoadContext,\n includeClerkHeaders = false,\n) => {\n const clone = new Response(response.body, response);\n const data = await clone.json();\n\n const { clerkState, headers } = getResponseClerkState(requestState, context);\n\n // set the correct content-type header in case the user returned a `Response` directly\n clone.headers.set(constants.Headers.ContentType, constants.ContentTypes.Json);\n\n // Only add Clerk headers if requested (for legacy mode)\n if (includeClerkHeaders) {\n headers.forEach((value, key) => {\n clone.headers.append(key, value);\n });\n }\n\n return Response.json({ ...(data || {}), ...clerkState }, clone);\n};\n\n/**\n * Returns the clerk state object and observability headers to be injected into a loader response.\n *\n * @internal\n */\nexport function getResponseClerkState(requestState: RequestStateWithRedirectUrls, context: AppLoadContext) {\n const { reason, message, isSignedIn, ...rest } = requestState;\n const clerkState = wrapWithClerkState({\n __clerk_ssr_state: rest.toAuth(),\n __publishableKey: requestState.publishableKey,\n __proxyUrl: requestState.proxyUrl,\n __domain: requestState.domain,\n __isSatellite: requestState.isSatellite,\n __signInUrl: requestState.signInUrl,\n __signUpUrl: requestState.signUpUrl,\n __afterSignInUrl: requestState.afterSignInUrl,\n __afterSignUpUrl: requestState.afterSignUpUrl,\n __signInForceRedirectUrl: requestState.signInForceRedirectUrl,\n __signUpForceRedirectUrl: requestState.signUpForceRedirectUrl,\n __signInFallbackRedirectUrl: requestState.signInFallbackRedirectUrl,\n __signUpFallbackRedirectUrl: requestState.signUpFallbackRedirectUrl,\n __clerk_debug: debugRequestState(requestState),\n __clerkJSUrl: getPublicEnvVariables(context).clerkJsUrl,\n __clerkUiUrl: getPublicEnvVariables(context).clerkUiUrl,\n __clerkJSVersion: getPublicEnvVariables(context).clerkJsVersion,\n __telemetryDisabled: getPublicEnvVariables(context).telemetryDisabled,\n __telemetryDebug: getPublicEnvVariables(context).telemetryDebug,\n });\n\n return {\n clerkState,\n headers: requestState.headers,\n };\n}\n\n/**\n * Wraps obscured clerk internals with a readable `clerkState` key.\n * This is intended to be passed by the user into <ClerkProvider>\n *\n * @internal\n */\nexport const wrapWithClerkState = (data: any) => {\n return { clerkState: { __internal_clerk_state: { ...data } } };\n};\n\n/**\n * Patches request to avoid duplex issues with unidici\n * For more information, see:\n * https://github.com/nodejs/node/issues/46221\n * https://github.com/whatwg/fetch/pull/1457\n * @internal\n */\nexport const patchRequest = (request: Request) => {\n const clonedRequest = new Request(request.url, {\n headers: request.headers,\n method: request.method,\n redirect: request.redirect,\n cache: request.cache,\n signal: request.signal,\n });\n\n // If duplex is not set, set it to 'half' to avoid duplex issues with unidici\n if (clonedRequest.method !== 'GET' && clonedRequest.body !== null && !('duplex' in clonedRequest)) {\n (clonedRequest as unknown as { duplex: 'half' }).duplex = 'half';\n }\n\n return clonedRequest;\n};\n"],"mappings":"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","names":[]}
@@ -4,4 +4,4 @@ export { AllowlistIdentifier, Client, EmailAddress, ExternalAccount, Invitation,
4
4
  import 'react-router';
5
5
  import '../server/types.js';
6
6
  import '@clerk/backend/internal';
7
- import '@clerk/types';
7
+ import '@clerk/shared/types';
@@ -1,6 +1,6 @@
1
1
  import { ClerkState } from '../client/types.js';
2
- import '@clerk/clerk-react';
3
- import '@clerk/types';
2
+ import '@clerk/react';
3
+ import '@clerk/shared/types';
4
4
  import 'react';
5
5
 
6
6
  declare function warnForSsr(val: ClerkState | undefined): void;
@@ -8,6 +8,7 @@ declare const getPublicEnvVariables: (context: AppLoadContext | undefined) => {
8
8
  signInUrl: string;
9
9
  signUpUrl: string;
10
10
  clerkJsUrl: string;
11
+ clerkUiUrl: string;
11
12
  clerkJsVariant: "" | "headless" | undefined;
12
13
  clerkJsVersion: string;
13
14
  telemetryDisabled: boolean;
package/dist/utils/env.js CHANGED
@@ -13,6 +13,7 @@ var getPublicEnvVariables = (context) => {
13
13
  signInUrl: getValue("CLERK_SIGN_IN_URL"),
14
14
  signUpUrl: getValue("CLERK_SIGN_UP_URL"),
15
15
  clerkJsUrl: getValue("CLERK_JS_URL"),
16
+ clerkUiUrl: getValue("CLERK_UI_URL"),
16
17
  clerkJsVariant: getValue("CLERK_JS_VARIANT"),
17
18
  clerkJsVersion: getValue("CLERK_JS_VERSION"),
18
19
  telemetryDisabled: isTruthy(getValue("CLERK_TELEMETRY_DISABLED")),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/env.ts"],"sourcesContent":["import { getEnvVariable } from '@clerk/shared/getEnvVariable';\nimport { isTruthy } from '@clerk/shared/underscore';\nimport type { AppLoadContext } from 'react-router';\n\nexport const getPublicEnvVariables = (context: AppLoadContext | undefined) => {\n const getValue = (name: string): string => {\n return getEnvVariable(`VITE_${name}`, context) || getEnvVariable(name, context);\n };\n\n return {\n publishableKey: getValue('CLERK_PUBLISHABLE_KEY'),\n domain: getValue('CLERK_DOMAIN'),\n isSatellite: isTruthy(getValue('CLERK_IS_SATELLITE')),\n proxyUrl: getValue('CLERK_PROXY_URL'),\n signInUrl: getValue('CLERK_SIGN_IN_URL'),\n signUpUrl: getValue('CLERK_SIGN_UP_URL'),\n clerkJsUrl: getValue('CLERK_JS_URL'),\n clerkJsVariant: getValue('CLERK_JS_VARIANT') as '' | 'headless' | undefined,\n clerkJsVersion: getValue('CLERK_JS_VERSION'),\n telemetryDisabled: isTruthy(getValue('CLERK_TELEMETRY_DISABLED')),\n telemetryDebug: isTruthy(getValue('CLERK_TELEMETRY_DEBUG')),\n signInForceRedirectUrl: getValue('CLERK_SIGN_IN_FORCE_REDIRECT_URL'),\n signUpForceRedirectUrl: getValue('CLERK_SIGN_UP_FORCE_REDIRECT_URL'),\n signInFallbackRedirectUrl: getValue('CLERK_SIGN_IN_FALLBACK_REDIRECT_URL'),\n signUpFallbackRedirectUrl: getValue('CLERK_SIGN_UP_FALLBACK_REDIRECT_URL'),\n afterSignInUrl: getValue('CLERK_AFTER_SIGN_IN_URL'),\n afterSignUpUrl: getValue('CLERK_AFTER_SIGN_UP_URL'),\n newSubscriptionRedirectUrl: getValue('CLERK_CHECKOUT_CONTINUE_URL'),\n };\n};\n"],"mappings":";AAAA,SAAS,sBAAsB;AAC/B,SAAS,gBAAgB;AAGlB,IAAM,wBAAwB,CAAC,YAAwC;AAC5E,QAAM,WAAW,CAAC,SAAyB;AACzC,WAAO,eAAe,QAAQ,IAAI,IAAI,OAAO,KAAK,eAAe,MAAM,OAAO;AAAA,EAChF;AAEA,SAAO;AAAA,IACL,gBAAgB,SAAS,uBAAuB;AAAA,IAChD,QAAQ,SAAS,cAAc;AAAA,IAC/B,aAAa,SAAS,SAAS,oBAAoB,CAAC;AAAA,IACpD,UAAU,SAAS,iBAAiB;AAAA,IACpC,WAAW,SAAS,mBAAmB;AAAA,IACvC,WAAW,SAAS,mBAAmB;AAAA,IACvC,YAAY,SAAS,cAAc;AAAA,IACnC,gBAAgB,SAAS,kBAAkB;AAAA,IAC3C,gBAAgB,SAAS,kBAAkB;AAAA,IAC3C,mBAAmB,SAAS,SAAS,0BAA0B,CAAC;AAAA,IAChE,gBAAgB,SAAS,SAAS,uBAAuB,CAAC;AAAA,IAC1D,wBAAwB,SAAS,kCAAkC;AAAA,IACnE,wBAAwB,SAAS,kCAAkC;AAAA,IACnE,2BAA2B,SAAS,qCAAqC;AAAA,IACzE,2BAA2B,SAAS,qCAAqC;AAAA,IACzE,gBAAgB,SAAS,yBAAyB;AAAA,IAClD,gBAAgB,SAAS,yBAAyB;AAAA,IAClD,4BAA4B,SAAS,6BAA6B;AAAA,EACpE;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/utils/env.ts"],"sourcesContent":["import { getEnvVariable } from '@clerk/shared/getEnvVariable';\nimport { isTruthy } from '@clerk/shared/underscore';\nimport type { AppLoadContext } from 'react-router';\n\nexport const getPublicEnvVariables = (context: AppLoadContext | undefined) => {\n const getValue = (name: string): string => {\n return getEnvVariable(`VITE_${name}`, context) || getEnvVariable(name, context);\n };\n\n return {\n publishableKey: getValue('CLERK_PUBLISHABLE_KEY'),\n domain: getValue('CLERK_DOMAIN'),\n isSatellite: isTruthy(getValue('CLERK_IS_SATELLITE')),\n proxyUrl: getValue('CLERK_PROXY_URL'),\n signInUrl: getValue('CLERK_SIGN_IN_URL'),\n signUpUrl: getValue('CLERK_SIGN_UP_URL'),\n clerkJsUrl: getValue('CLERK_JS_URL'),\n clerkUiUrl: getValue('CLERK_UI_URL'),\n clerkJsVariant: getValue('CLERK_JS_VARIANT') as '' | 'headless' | undefined,\n clerkJsVersion: getValue('CLERK_JS_VERSION'),\n telemetryDisabled: isTruthy(getValue('CLERK_TELEMETRY_DISABLED')),\n telemetryDebug: isTruthy(getValue('CLERK_TELEMETRY_DEBUG')),\n signInForceRedirectUrl: getValue('CLERK_SIGN_IN_FORCE_REDIRECT_URL'),\n signUpForceRedirectUrl: getValue('CLERK_SIGN_UP_FORCE_REDIRECT_URL'),\n signInFallbackRedirectUrl: getValue('CLERK_SIGN_IN_FALLBACK_REDIRECT_URL'),\n signUpFallbackRedirectUrl: getValue('CLERK_SIGN_UP_FALLBACK_REDIRECT_URL'),\n afterSignInUrl: getValue('CLERK_AFTER_SIGN_IN_URL'),\n afterSignUpUrl: getValue('CLERK_AFTER_SIGN_UP_URL'),\n newSubscriptionRedirectUrl: getValue('CLERK_CHECKOUT_CONTINUE_URL'),\n };\n};\n"],"mappings":";AAAA,SAAS,sBAAsB;AAC/B,SAAS,gBAAgB;AAGlB,IAAM,wBAAwB,CAAC,YAAwC;AAC5E,QAAM,WAAW,CAAC,SAAyB;AACzC,WAAO,eAAe,QAAQ,IAAI,IAAI,OAAO,KAAK,eAAe,MAAM,OAAO;AAAA,EAChF;AAEA,SAAO;AAAA,IACL,gBAAgB,SAAS,uBAAuB;AAAA,IAChD,QAAQ,SAAS,cAAc;AAAA,IAC/B,aAAa,SAAS,SAAS,oBAAoB,CAAC;AAAA,IACpD,UAAU,SAAS,iBAAiB;AAAA,IACpC,WAAW,SAAS,mBAAmB;AAAA,IACvC,WAAW,SAAS,mBAAmB;AAAA,IACvC,YAAY,SAAS,cAAc;AAAA,IACnC,YAAY,SAAS,cAAc;AAAA,IACnC,gBAAgB,SAAS,kBAAkB;AAAA,IAC3C,gBAAgB,SAAS,kBAAkB;AAAA,IAC3C,mBAAmB,SAAS,SAAS,0BAA0B,CAAC;AAAA,IAChE,gBAAgB,SAAS,SAAS,uBAAuB,CAAC;AAAA,IAC1D,wBAAwB,SAAS,kCAAkC;AAAA,IACnE,wBAAwB,SAAS,kCAAkC;AAAA,IACnE,2BAA2B,SAAS,qCAAqC;AAAA,IACzE,2BAA2B,SAAS,qCAAqC;AAAA,IACzE,gBAAgB,SAAS,yBAAyB;AAAA,IAClD,gBAAgB,SAAS,yBAAyB;AAAA,IAClD,4BAA4B,SAAS,6BAA6B;AAAA,EACpE;AACF;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clerk/react-router",
3
- "version": "2.2.4",
3
+ "version": "2.2.5-canary-core3.v20251124105058",
4
4
  "description": "Clerk SDK for React Router",
5
5
  "keywords": [
6
6
  "clerk",
@@ -49,6 +49,10 @@
49
49
  "./webhooks": {
50
50
  "types": "./dist/webhooks.d.ts",
51
51
  "default": "./dist/webhooks.js"
52
+ },
53
+ "./legacy": {
54
+ "types": "./dist/legacy.d.ts",
55
+ "default": "./dist/legacy.js"
52
56
  }
53
57
  },
54
58
  "main": "dist/index.js",
@@ -79,10 +83,9 @@
79
83
  "dependencies": {
80
84
  "cookie": "0.7.2",
81
85
  "tslib": "2.8.1",
82
- "@clerk/backend": "^2.23.2",
83
- "@clerk/clerk-react": "^5.56.2",
84
- "@clerk/shared": "^3.35.2",
85
- "@clerk/types": "^4.101.2"
86
+ "@clerk/backend": "^3.0.0-canary-core3.v20251124105058",
87
+ "@clerk/react": "^6.0.0-canary-core3.v20251124105058",
88
+ "@clerk/shared": "^4.0.0-canary-core3.v20251124105058"
86
89
  },
87
90
  "devDependencies": {
88
91
  "@types/cookie": "^0.6.0",
@@ -95,7 +98,7 @@
95
98
  "react-router": "^7.9.0"
96
99
  },
97
100
  "engines": {
98
- "node": ">=20.0.0"
101
+ "node": ">=20.9.0"
99
102
  },
100
103
  "publishConfig": {
101
104
  "access": "public"