UNPKG

@clerk/chrome-extension

Version:

Clerk SDK for Chrome extensions

1 lines 3.56 kB
{"version":3,"sources":["../../src/ClerkProvider.tsx"],"sourcesContent":["import Clerk from '@clerk/clerk-js';\nimport type { ClerkProp, ClerkProviderProps as ClerkReactProviderProps } from '@clerk/clerk-react';\nimport { __internal__setErrorThrowerOptions, ClerkProvider as ClerkReactProvider } from '@clerk/clerk-react';\nimport React from 'react';\n\nimport type { TokenCache } from './cache';\nimport { ChromeStorageCache } from './cache';\nimport { buildClerk } from './singleton';\n\nClerk.sdkMetadata = {\n name: PACKAGE_NAME,\n version: PACKAGE_VERSION,\n};\n\n__internal__setErrorThrowerOptions({\n packageName: '@clerk/chrome-extension',\n});\n\ntype WebSSOClerkProviderCustomProps =\n | {\n syncSessionWithTab?: false;\n tokenCache?: never;\n }\n | {\n syncSessionWithTab: true;\n tokenCache?: TokenCache;\n };\n\ntype WebSSOClerkProviderProps = ClerkReactProviderProps & WebSSOClerkProviderCustomProps;\n\nconst WebSSOClerkProvider = (props: WebSSOClerkProviderProps): JSX.Element | null => {\n const { children, tokenCache: runtimeTokenCache, ...rest } = props;\n const { publishableKey = '' } = props;\n\n const [clerkInstance, setClerkInstance] = React.useState<ClerkProp>(null);\n\n // When syncSessionWithTab is set tokenCache is an optional parameter that defaults to ChromeStorageCache\n const tokenCache = runtimeTokenCache || ChromeStorageCache;\n\n React.useEffect(() => {\n void (async () => {\n setClerkInstance(await buildClerk({ publishableKey, tokenCache }));\n })();\n }, []);\n\n if (!clerkInstance) {\n return null;\n }\n\n return (\n <ClerkReactProvider\n {...rest}\n Clerk={clerkInstance}\n standardBrowser={false}\n >\n {children}\n </ClerkReactProvider>\n );\n};\n\nconst StandaloneClerkProvider = (props: ClerkReactProviderProps): JSX.Element => {\n const { children, ...rest } = props;\n\n return (\n <ClerkReactProvider\n {...rest}\n Clerk={Clerk}\n >\n {children}\n </ClerkReactProvider>\n );\n};\n\ntype ChromeExtensionClerkProviderProps = WebSSOClerkProviderProps;\n\nexport function ClerkProvider(props: ChromeExtensionClerkProviderProps): JSX.Element | null {\n const { tokenCache, syncSessionWithTab, ...rest } = props;\n return syncSessionWithTab ? (\n <WebSSOClerkProvider\n {...props}\n tokenCache={tokenCache}\n />\n ) : (\n <StandaloneClerkProvider {...rest} />\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAkDI;AAlDJ,sBAAkB;AAElB,yBAAwF;AACxF,mBAAkB;AAGlB,mBAAmC;AACnC,uBAA2B;AAE3B,gBAAAA,QAAM,cAAc;AAAA,EAClB,MAAM;AAAA,EACN,SAAS;AACX;AAAA,IAEA,uDAAmC;AAAA,EACjC,aAAa;AACf,CAAC;AAcD,MAAM,sBAAsB,CAAC,UAAwD;AACnF,QAAM,EAAE,UAAU,YAAY,mBAAmB,GAAG,KAAK,IAAI;AAC7D,QAAM,EAAE,iBAAiB,GAAG,IAAI;AAEhC,QAAM,CAAC,eAAe,gBAAgB,IAAI,aAAAC,QAAM,SAAoB,IAAI;AAGxE,QAAM,aAAa,qBAAqB;AAExC,eAAAA,QAAM,UAAU,MAAM;AACpB,UAAM,YAAY;AAChB,uBAAiB,UAAM,6BAAW,EAAE,gBAAgB,WAAW,CAAC,CAAC;AAAA,IACnE,GAAG;AAAA,EACL,GAAG,CAAC,CAAC;AAEL,MAAI,CAAC,eAAe;AAClB,WAAO;AAAA,EACT;AAEA,SACE;AAAA,IAAC,mBAAAC;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACJ,OAAO;AAAA,MACP,iBAAiB;AAAA,MAEhB;AAAA;AAAA,EACH;AAEJ;AAEA,MAAM,0BAA0B,CAAC,UAAgD;AAC/E,QAAM,EAAE,UAAU,GAAG,KAAK,IAAI;AAE9B,SACE;AAAA,IAAC,mBAAAA;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACJ,OAAO,gBAAAF;AAAA,MAEN;AAAA;AAAA,EACH;AAEJ;AAIO,SAAS,cAAc,OAA8D;AAC1F,QAAM,EAAE,YAAY,oBAAoB,GAAG,KAAK,IAAI;AACpD,SAAO,qBACL;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA;AAAA,EACF,IAEA,4CAAC,2BAAyB,GAAG,MAAM;AAEvC;","names":["Clerk","React","ClerkReactProvider"]}