UNPKG

@clerk/chrome-extension

Version:

Clerk SDK for Chrome extensions

1 lines 2.62 kB
{"version":3,"sources":["../../src/singleton.ts"],"sourcesContent":["import Clerk from '@clerk/clerk-js';\nimport type { ClerkProp } from '@clerk/clerk-react';\n\nimport type { TokenCache } from './cache';\nimport { convertPublishableKeyToFrontendAPIOrigin, getClientCookie } from './utils';\n\nconst KEY = '__clerk_client_jwt';\n\nexport let clerk: ClerkProp;\n\ntype BuildClerkOptions = {\n publishableKey: string;\n tokenCache: TokenCache;\n};\n\n// error handler that logs the error (used in cookie retrieval and token saving)\nconst logErrorHandler = (err: Error) => console.error(err);\n\nexport async function buildClerk({ publishableKey, tokenCache }: BuildClerkOptions): Promise<ClerkProp> {\n if (!clerk) {\n const clerkFrontendAPIOrigin = convertPublishableKeyToFrontendAPIOrigin(publishableKey);\n\n const clientCookie = await getClientCookie(clerkFrontendAPIOrigin).catch(logErrorHandler);\n\n // TODO: Listen to client cookie changes and sync updates\n // https://developer.chrome.com/docs/extensions/reference/cookies/#event-onChanged\n\n if (clientCookie) {\n await tokenCache.saveToken(KEY, clientCookie.value).catch(logErrorHandler);\n }\n\n clerk = new Clerk(publishableKey);\n\n // @ts-expect-error\n clerk.__unstable__onBeforeRequest(async requestInit => {\n requestInit.credentials = 'omit';\n requestInit.url?.searchParams.append('_is_native', '1');\n\n const jwt = await tokenCache.getToken(KEY);\n (requestInit.headers as Headers).set('authorization', jwt || '');\n });\n\n // @ts-expect-error\n clerk.__unstable__onAfterResponse(async (_, response) => {\n const authHeader = response.headers.get('authorization');\n if (authHeader) {\n await tokenCache.saveToken(KEY, authHeader);\n }\n });\n }\n\n return clerk;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAkB;AAIlB,mBAA0E;AAE1E,MAAM,MAAM;AAEL,IAAI;AAQX,MAAM,kBAAkB,CAAC,QAAe,QAAQ,MAAM,GAAG;AAEzD,eAAsB,WAAW,EAAE,gBAAgB,WAAW,GAA0C;AACtG,MAAI,CAAC,OAAO;AACV,UAAM,6BAAyB,uDAAyC,cAAc;AAEtF,UAAM,eAAe,UAAM,8BAAgB,sBAAsB,EAAE,MAAM,eAAe;AAKxF,QAAI,cAAc;AAChB,YAAM,WAAW,UAAU,KAAK,aAAa,KAAK,EAAE,MAAM,eAAe;AAAA,IAC3E;AAEA,YAAQ,IAAI,gBAAAA,QAAM,cAAc;AAGhC,UAAM,4BAA4B,OAAM,gBAAe;AAlC3D;AAmCM,kBAAY,cAAc;AAC1B,wBAAY,QAAZ,mBAAiB,aAAa,OAAO,cAAc;AAEnD,YAAM,MAAM,MAAM,WAAW,SAAS,GAAG;AACzC,MAAC,YAAY,QAAoB,IAAI,iBAAiB,OAAO,EAAE;AAAA,IACjE,CAAC;AAGD,UAAM,4BAA4B,OAAO,GAAG,aAAa;AACvD,YAAM,aAAa,SAAS,QAAQ,IAAI,eAAe;AACvD,UAAI,YAAY;AACd,cAAM,WAAW,UAAU,KAAK,UAAU;AAAA,MAC5C;AAAA,IACF,CAAC;AAAA,EACH;AAEA,SAAO;AACT;","names":["Clerk"]}