@descope/core-js-sdk 0.0.41-alpha.16 → 0.0.41-alpha.18
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/index.cjs.js +1 -1
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.esm.js +1 -1
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -1
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/constants/apiPaths.ts","../src/httpClient/types.ts","../src/httpClient/helpers/createFetchLogger.ts","../src/httpClient/utils.ts","../src/httpClient/index.ts","../src/httpClient/urlBuilder.ts","../src/sdk/helpers/index.ts","../src/sdk/types.ts","../src/sdk/validations/core.ts","../src/sdk/validations/validators.ts","../src/sdk/validations/index.ts","../src/sdk/otp.ts","../src/sdk/magicLink/validations.ts","../src/sdk/magicLink/crossDevice.ts","../src/constants/index.ts","../src/sdk/magicLink/index.ts","../src/sdk/exchange.ts","../src/sdk/oauth/types.ts","../src/sdk/oauth/index.ts","../src/sdk/flow.ts","../src/sdk/saml.ts","../src/sdk/totp.ts","../src/sdk/webauthn.ts","../src/sdk/index.ts","../src/index.ts"],"sourcesContent":["export default {\n\totp: {\n\t\tverify: '/v1/auth/otp/verify',\n\t\tsignIn: '/v1/auth/otp/signin',\n\t\tsignUp: '/v1/auth/otp/signup',\n\t\tupdate: {\n\t\t\temail: '/v1/auth/otp/update/email',\n\t\t\tphone: '/v1/auth/otp/update/phone'\n\t\t},\n\t\tsignUpOrIn: '/v1/auth/otp/signup-in'\n\t},\n\tmagicLink: {\n\t\tverify: '/v1/auth/magiclink/verify',\n\t\tsignIn: '/v1/auth/magiclink/signin',\n\t\tsignUp: '/v1/auth/magiclink/signup',\n\t\tsession: '/v1/auth/magiclink/pending-session',\n\t\tupdate: {\n\t\t\temail: '/v1/auth/magiclink/update/email',\n\t\t\tphone: '/v1/auth/magiclink/update/email'\n\t\t},\n\t\tsignUpOrIn: '/v1/auth/magiclink/signup-in'\n\t},\n\toauth: {\n\t\tstart: '/v1/auth/oauth/authorize'\n\t},\n\tsaml: {\n\t\tstart: '/v1/auth/saml/authorize'\n\t},\n\ttotp: {\n\t\tverify: '/v1/auth/totp/verify',\n\t\tsignUp: '/v1/auth/totp/signup',\n\t\tupdate: '/v1/user/totp/update'\n\t},\n\twebauthn: {\n\t\tsignUp: {\n\t\t\tstart: '/v1/auth/webauthn/signup/start',\n\t\t\tfinish: '/v1/auth/webauthn/signup/finish'\n\t\t},\n\t\tsignIn: {\n\t\t\tstart: '/v1/auth/webauthn/signin/start',\n\t\t\tfinish: '/v1/auth/webauthn/signin/finish'\n\t\t},\n\t\tupdate: {\n\t\t\tstart: 'v1/auth/webauthn/update/start',\n\t\t\tfinish: '/v1/auth/webauthn/update/finish'\n\t\t}\n\t},\n\trefresh: '/v1/auth/refresh',\n\tlogout: '/v1/auth/logoutall',\n\tflow: {\n\t\tstart: '/v1/flow/start',\n\t\tnext: '/v1/flow/next'\n\t},\n\texchange: '/v1/auth/exchange'\n};\n","import { Logger } from '../sdk/types';\n\ntype HttpClientReqConfig = {\n\theaders?: HeadersInit;\n\tqueryParams?: { [key: string]: string };\n\ttoken?: string;\n};\n\nexport enum HTTPMethods {\n\tget = 'GET',\n\tdelete = 'DELETE',\n\tpost = 'POST',\n\tput = 'PUT'\n}\n\nexport type HttpClient = {\n\tget: (path: string, config?: HttpClientReqConfig) => Promise<Response>;\n\tpost: (path: string, body?: any, config?: HttpClientReqConfig) => Promise<Response>;\n\tput: (path: string, body?: any, config?: HttpClientReqConfig) => Promise<Response>;\n\tdelete: (path: string, body?: any, config?: HttpClientReqConfig) => Promise<Response>;\n};\n\nexport type CreateHttpClientConfig = {\n\tbaseUrl: string;\n\tprojectId: string;\n\tbaseConfig?: { baseHeaders: HeadersInit };\n\tlogger?: Logger;\n\thooks?: Hooks;\n\tcookiePolicy?: RequestCredentials\n};\n\nexport type RequestConfig = { \n\tpath: string; \n\theaders?: HeadersInit; \n\tqueryParams?: { [key: string]: string; }; \n\tbody?: any; \n\tmethod: HTTPMethods; \n\ttoken?: string; \n}\n\nexport type Hooks = {\n\tbeforeRequest?: (config: RequestConfig) => RequestConfig;\n\tafterRequest?: (req: RequestConfig, res: Response) => void;\n}\n","import { Logger } from '../../sdk/types';\n\nconst httpLogBuilder = () => {\n\tconst msg: {\n\t\tTitle?: string;\n\t\tUrl?: string;\n\t\tMethod?: string;\n\t\tHeaders?: string;\n\t\tBody?: string;\n\t\tStatus?: string;\n\t} = {};\n\n\treturn {\n\t\theaders(headers: HeadersInit) {\n\t\t\tconst headersObj =\n\t\t\t\ttypeof headers.entries === 'function' ? Object.fromEntries(headers.entries()) : headers;\n\t\t\tmsg.Headers = JSON.stringify(headersObj);\n\n\t\t\treturn this;\n\t\t},\n\n\t\tbody(body: string) {\n\t\t\tmsg.Body = body;\n\t\t\treturn this;\n\t\t},\n\n\t\turl(url: URL | string) {\n\t\t\tmsg.Url = url.toString();\n\t\t\treturn this;\n\t\t},\n\n\t\tmethod(method: string) {\n\t\t\tmsg.Method = method;\n\t\t\treturn this;\n\t\t},\n\n\t\ttitle(title: string) {\n\t\t\tmsg.Title = title;\n\t\t\treturn this;\n\t\t},\n\n\t\tstatus(status: string) {\n\t\t\tmsg.Status = status;\n\t\t\treturn this;\n\t\t},\n\n\t\tbuild() {\n\t\t\treturn Object.keys(msg)\n\t\t\t\t.flatMap((key) => (msg[key] ? [`${key !== 'Title' ? `${key}: ` : ''}${msg[key]}`] : []))\n\t\t\t\t.join('\\n');\n\t\t}\n\t};\n};\n\ntype Fetch = typeof fetch;\n\nconst buildRequestLog = (args: Parameters<Fetch>) =>\n\thttpLogBuilder()\n\t\t.title('Request')\n\t\t.url(args[0])\n\t\t.method(args[1].method)\n\t\t.headers(args[1].headers)\n\t\t.body(args[1].body)\n\t\t.build();\n\nconst buildResponseLog = async (resp: Response) => {\n\tconst respBody = await resp.text();\n\t// eslint-disable-next-line no-param-reassign\n\tresp.text = () => Promise.resolve(respBody);\n\t// eslint-disable-next-line no-param-reassign\n\tresp.json = () => Promise.resolve(JSON.parse(respBody));\n\n\treturn httpLogBuilder()\n\t\t.title('Response')\n\t\t.url(resp.url.toString())\n\t\t.status(`${resp.status} ${resp.statusText}`)\n\t\t.headers(resp.headers)\n\t\t.body(respBody)\n\t\t.build();\n};\n\nconst createFetchLogger = (logger: Logger, receivedFetch?: Fetch) => {\n\tconst fetchInternal = receivedFetch || fetch;\n\tif (!fetchInternal) throw new Error('fetch is not defined');\n\n\tif (!logger) return fetchInternal;\n\n\treturn async (...args: Parameters<Fetch>) => {\n\t\tlogger.log(buildRequestLog(args));\n\t\tconst resp = await fetchInternal(...args);\n\t\tlogger[resp.ok ? 'log' : 'error'](await buildResponseLog(resp));\n\n\t\treturn resp;\n\t};\n};\n\nexport default createFetchLogger;\n","/* eslint-disable no-nested-ternary */\n\nconst getSrcArr = (source: HeadersInit) => {\n\tif (Array.isArray(source)) return source;\n\tif (source instanceof Headers) return Array.from(source.entries());\n\tif (!source) return [];\n\treturn Object.entries(source);\n};\n\nexport const mergeHeaders = (...sources: HeadersInit[]) =>\n\tnew Headers(\n\t\tsources.reduce((acc: Record<string, string>, source) => {\n\t\t\tconst srcArr = getSrcArr(source);\n\t\t\tsrcArr.reduce((_, [key, value]) => {\n\t\t\t\tacc[key] = value;\n\n\t\t\t\treturn acc;\n\t\t\t}, acc);\n\n\t\t\treturn acc;\n\t\t}, {})\n\t);\n\nexport const serializeBody = (body: Record<string, any>) =>\n\tbody === undefined ? undefined : JSON.stringify(body);\n","import { urlBuilder } from './urlBuilder';\nimport { CreateHttpClientConfig, HttpClient, RequestConfig, HTTPMethods } from './types';\nimport createFetchLogger from './helpers/createFetchLogger';\nimport { mergeHeaders, serializeBody } from './utils';\n\nconst createAuthorizationHeader = (projectId: string, token = '') => {\n\tlet bearer = projectId;\n\tif (token !== '') {\n\t\tbearer = bearer + ':' + token;\n\t}\n\treturn {\n\t\tAuthorization: `Bearer ${bearer}`\n\t};\n};\n\nconst createHttpClient = ({\n\tbaseUrl,\n\tprojectId,\n\tbaseConfig,\n\tlogger,\n\thooks,\n\tcookiePolicy\n}: CreateHttpClientConfig): HttpClient => {\n\tconst fetchWithLogger = createFetchLogger(logger);\n\n\tconst sendRequest = async (config: RequestConfig) => {\n\t\tconst requestConfig = hooks?.beforeRequest ? hooks.beforeRequest(config) : config;\n\t\n\t\tconst { path, body, headers, queryParams, method, token } = requestConfig;\n\t\t\n\t\tconst res = await fetchWithLogger(urlBuilder({ path, baseUrl, queryParams }), {\n\t\t\theaders: mergeHeaders(\n\t\t\t\tcreateAuthorizationHeader(projectId, token),\n\t\t\t\tbaseConfig?.baseHeaders || {},\n\t\t\t\theaders\n\t\t\t),\n\t\t\tmethod,\n\t\t\tbody: serializeBody(body),\n\t\t\tcredentials: cookiePolicy || 'include'\n\t\t});\n\n\t\tif (hooks?.afterRequest) {\n\t\t\thooks.afterRequest(config, res?.clone());\n\t\t}\n\n\t\treturn res;\n\t}\n\n\treturn {\n\t\tget: (path: string, { headers, queryParams, token } = {}) =>\n\t\t\tsendRequest({ path, headers, queryParams, body: undefined, method: HTTPMethods.get, token }),\n\t\tpost: (path, body, { headers, queryParams, token } = {}) =>\n\t\t\tsendRequest({ path, headers, queryParams, body, method: HTTPMethods.post, token }),\n\t\tput: (path, body, { headers, queryParams, token } = {}) =>\n\t\t\tsendRequest({ path, headers, queryParams, body, method: HTTPMethods.put, token }),\n\t\tdelete: (path, body, { headers, queryParams, token } = {}) =>\n\t\t\tsendRequest({ path, headers, queryParams, body, method: HTTPMethods.delete, token })\n\t};\n\n};\n\nexport default createHttpClient;\nexport type { HttpClient };\n","export const urlBuilder = ({\n\tpath,\n\tbaseUrl,\n\tqueryParams\n}: {\n\tpath: string;\n\tbaseUrl: string;\n\tqueryParams: ConstructorParameters<typeof URLSearchParams>[0];\n}) => {\n\tconst url = new URL(path, baseUrl);\n\tif (queryParams) url.search = new URLSearchParams(queryParams).toString();\n\n\treturn url;\n};\n","import jwtDecode, { JwtPayload } from 'jwt-decode';\nimport { SdkResponse } from '../types';\n\nconst isJwtExpired = (token: string) => {\n\tif (typeof token !== 'string' || !token) throw new Error('Invalid token provided');\n\n\tconst { exp }: JwtPayload = jwtDecode(token);\n\tconst currentTime = new Date().getTime() / 1000;\n\n\treturn currentTime > exp;\n};\n\nexport default isJwtExpired;\n\nexport const pathJoin = (...args: string[]) => args.join('/').replace(/\\/{2,}/g, '/');\n\nexport const transformResponse = async (response: Promise<Response>): Promise<SdkResponse> => {\n\tconst resp = await response;\n\n\tconst ret: SdkResponse = {\n\t\tcode: resp.status,\n\t\tok: resp.ok,\n\t\tresponse: resp\n\t};\n\n\tconst data = await resp.json();\n\n\tif (resp.ok) {\n\t\tret.data = data;\n\t} else {\n\t\tret.error = data;\n\t}\n\n\treturn ret;\n};\n","type SdkFn = (...args: any[]) => Promise<SdkResponse>;\n\ninterface UserResponse extends User {\n\texternalIds: string[];\n\tverifiedEmail?: boolean;\n\tverifiedPhone?: boolean;\n};\n\nexport type User = {\n\temail?: string;\n\tname?: string;\n\tphone?: string;\n};\n\nexport interface AuthInfo {\n\tsessionJwt: string;\n\trefreshJwt?: string;\n\tcookieDomain?: string;\n\tcookiePath?: string;\n\tcookieMaxAge?: number;\n\tcookieExpiration?: number;\n\tuser?: UserResponse;\n\tfirstSeen?: boolean;\n}\n\nexport enum DeliveryPhone {\n\tsms = 'sms',\n\twhatsapp = 'whatsapp'\n}\n\nexport enum DeliveryMethods {\n\temail = 'email',\n\tsms = 'sms',\n\twhatsapp = 'whatsapp'\n}\n\nexport type Deliveries<T extends SdkFn> = Record<DeliveryMethods, T>;\n\nexport enum Routes {\n\tsignUp = 'signup',\n\tsignIn = 'signin',\n\tverify = 'verify'\n}\n\nexport type SdkResponse = {\n\tcode?: number;\n\tok: boolean;\n\tresponse?: Response;\n\terror?: {\n\t\tmessage: string;\n\t\tcode: string;\n\t};\n\tdata?: any;\n};\n\nexport type Logger = Pick<Console, 'debug' | 'log' | 'error'>;\n","import { Validator, ValidationRule, MakeValidator } from './types';\n\nexport const createValidator =\n\t(rule: ValidationRule, defaultMsg?: string): MakeValidator =>\n\t(msg = defaultMsg) =>\n\t(val) =>\n\t\t!rule(val) ? msg.replace('{val}', val) : false;\n\nexport const createValidation = (...validators: Validator[]) => ({\n\tvalidate: (val: any) => {\n\t\tvalidators.forEach((validator) => {\n\t\t\tconst errMsg = validator(val);\n\t\t\tif (errMsg) throw new Error(errMsg);\n\t\t});\n\n\t\treturn true;\n\t}\n});\n","import get from 'lodash.get';\nimport { createValidation, createValidator } from './core';\nimport { Validator } from './types';\n\nconst regexMatch = (regex: RegExp) => (val: any) => regex.test(val);\n\nconst validateString = (val: any) => typeof val === 'string';\nconst validateEmail = regexMatch(\n\t/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/\n);\nconst validatePhone = regexMatch(/^\\+[1-9]{1}[0-9]{3,14}$/);\nconst validateMinLength = (min: number) => (val: any) => val.length >= min;\n// const validatePlainObject = (val: any) => !!val && Object.getPrototypeOf(val) === Object.prototype;\nconst validatePathValue = (path: string, rules: Validator[]) => (val: any) =>\n\tcreateValidation(...rules).validate(get(val, path));\n\nexport const isEmail = createValidator(validateEmail, '\"{val}\" is not a valid email');\nexport const isPhone = createValidator(validatePhone, '\"{val}\" is not a valid phone number');\nexport const isNotEmpty = createValidator(validateMinLength(1), 'Minimum length is 1');\nexport const isString = createValidator(validateString, 'Input is not a string');\n// export const isPlainObject = createValidator(validatePlainObject, 'Input is not a plain object');\nexport const hasPathValue = (path: string, rules: Validator[]) =>\n\tcreateValidator(validatePathValue(path, rules))();\n","import { createValidation } from './core';\nimport { Validator } from './types';\nimport { isEmail, isNotEmpty, isPhone, isString } from './validators';\n\n/**\n *\n * @params each parameter is an array of validators, those validators will be verified against the wrapped function argument which in the same place\n * @throws if any of the validators fails, an error with the relevant message will be thrown\n */\nexport const withValidations =\n\t(...argsRules: Validator[][]) =>\n\t<T extends Array<any>, U>(fn: (...args: T) => U) =>\n\t(...args: T): U => {\n\t\targsRules.forEach((rulesArr, i) => createValidation(...rulesArr).validate(args[i]));\n\n\t\treturn fn(...args);\n\t};\n\nexport const stringNonEmpty = (fieldName: string) => [\n\tisString(`\"${fieldName}\" must be a string`),\n\tisNotEmpty(`\"${fieldName}\" must not be empty`)\n];\nexport const stringEmail = (fieldName: string) => [\n\tisString(`\"${fieldName}\" must be a string`),\n\tisEmail()\n];\nexport const stringPhone = (fieldName: string) => [\n\tisString(`\"${fieldName}\" must be a string`),\n\tisPhone()\n];\n","import { apiPaths } from '../constants';\nimport { HttpClient } from '../httpClient';\nimport { pathJoin, transformResponse } from './helpers';\nimport { DeliveryMethods, Deliveries, User, SdkResponse, DeliveryPhone } from './types';\nimport { stringEmail, stringNonEmpty, stringPhone, withValidations } from './validations';\n\nenum Routes {\n\tsignUp = 'signup',\n\tsignIn = 'signin',\n\tverify = 'verify',\n\tupdatePhone = 'updatePhone'\n}\n\ntype VerifyFn = (identifier: string, code: string) => Promise<SdkResponse>;\ntype SignInFn = (identifier: string) => Promise<SdkResponse>;\ntype SignUpFn = (identifier: string, user?: User) => Promise<SdkResponse>;\ntype UpdatePhoneFn = (identifier: string, phone: string) => Promise<SdkResponse>;\n\ntype Otp = {\n\t[Routes.verify]: Deliveries<VerifyFn>;\n\t[Routes.signIn]: Deliveries<SignInFn>;\n\t[Routes.signUp]: Deliveries<SignUpFn>;\n\t[Routes.updatePhone]: Deliveries<UpdatePhoneFn>;\n};\n\nconst identifierValidations = stringNonEmpty('identifier');\nconst withVerifyValidations = withValidations(identifierValidations, stringNonEmpty('code'));\nconst withSignValidations = withValidations(identifierValidations);\nconst withUpdatePhoneValidations = withValidations(identifierValidations, stringPhone('phone'));\nconst withUpdateEmailValidations = withValidations(identifierValidations, stringEmail('email'));\n\nconst withOtp = (httpClient: HttpClient) => ({\n\tverify: Object.keys(DeliveryMethods).reduce(\n\t\t(acc, delivery) => ({\n\t\t\t...acc,\n\t\t\t[delivery]: withVerifyValidations(\n\t\t\t\t(externalId: string, code: string): Promise<SdkResponse> =>\n\t\t\t\t\ttransformResponse(\n\t\t\t\t\t\thttpClient.post(pathJoin(apiPaths.otp.verify, delivery), { code, externalId })\n\t\t\t\t\t)\n\t\t\t)\n\t\t}),\n\t\t{}\n\t) as Otp[Routes.verify],\n\n\tsignIn: Object.keys(DeliveryMethods).reduce(\n\t\t(acc, delivery) => ({\n\t\t\t...acc,\n\t\t\t[delivery]: withSignValidations(\n\t\t\t\t(externalId: string): Promise<SdkResponse> =>\n\t\t\t\t\ttransformResponse(\n\t\t\t\t\t\thttpClient.post(pathJoin(apiPaths.otp.signIn, delivery), { externalId })\n\t\t\t\t\t)\n\t\t\t)\n\t\t}),\n\t\t{}\n\t) as Otp[Routes.signIn],\n\n\tsignUp: Object.keys(DeliveryMethods).reduce(\n\t\t(acc, delivery) => ({\n\t\t\t...acc,\n\t\t\t[delivery]: withSignValidations(\n\t\t\t\t(externalId: string, user?: User): Promise<SdkResponse> =>\n\t\t\t\t\ttransformResponse(\n\t\t\t\t\t\thttpClient.post(pathJoin(apiPaths.otp.signUp, delivery), { externalId, user })\n\t\t\t\t\t)\n\t\t\t)\n\t\t}),\n\t\t{}\n\t) as Otp[Routes.signUp],\n\n\tsignUpOrIn: Object.keys(DeliveryMethods).reduce(\n\t\t(acc, delivery) => ({\n\t\t\t...acc,\n\t\t\t[delivery]: withSignValidations(\n\t\t\t\t(externalId: string): Promise<SdkResponse> =>\n\t\t\t\t\ttransformResponse(\n\t\t\t\t\t\thttpClient.post(pathJoin(apiPaths.otp.signUpOrIn, delivery), { externalId })\n\t\t\t\t\t)\n\t\t\t)\n\t\t}),\n\t\t{}\n\t) as Otp[Routes.signIn],\n\n\tupdate: {\n\t\temail: withUpdateEmailValidations(\n\t\t\t(identifier: string, email: string, token?: string): Promise<SdkResponse> =>\n\t\t\t\ttransformResponse(\n\t\t\t\t\thttpClient.post(apiPaths.otp.update.email, { externalId: identifier, email }, { token })\n\t\t\t\t)\n\t\t),\n\t\tphone: Object.keys(DeliveryPhone).reduce(\n\t\t\t(acc, delivery) => ({\n\t\t\t\t...acc,\n\t\t\t\t[delivery]: withUpdatePhoneValidations(\n\t\t\t\t\t(externalId: string, phone: string, token?: string): Promise<SdkResponse> =>\n\t\t\t\t\t\ttransformResponse(\n\t\t\t\t\t\t\thttpClient.post(\n\t\t\t\t\t\t\t\tpathJoin(apiPaths.otp.update.phone, delivery),\n\t\t\t\t\t\t\t\t{ externalId, phone },\n\t\t\t\t\t\t\t\t{ token }\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t}),\n\t\t\t{}\n\t\t) as Otp[Routes.updatePhone]\n\t}\n});\n\nexport default withOtp;\n","import { stringNonEmpty, withValidations, stringPhone, stringEmail } from '../validations';\n\nexport const identifierValidations = stringNonEmpty('identifier');\nexport const uriValidations = stringNonEmpty('uri');\nexport const withVerifyValidations = withValidations(stringNonEmpty('token'));\nexport const withSignValidations = withValidations(identifierValidations, uriValidations);\nexport const withWaitForSessionValidations = withValidations(stringNonEmpty('pendingRef'));\nexport const withUpdatePhoneValidations = withValidations(\n\tidentifierValidations,\n\tstringPhone('phone'),\n\turiValidations\n);\nexport const withUpdateEmailValidations = withValidations(\n\tidentifierValidations,\n\tstringEmail('email'),\n\turiValidations\n);\n","import {\n\tapiPaths,\n\tMAGIC_LINK_MAX_POLLING_TIMEOUT_MS,\n\tMAGIC_LINK_MIN_POLLING_INTERVAL_MS\n} from '../../constants';\nimport { HttpClient } from '../../httpClient';\nimport { pathJoin, transformResponse } from '../helpers';\nimport { DeliveryMethods, DeliveryPhone, SdkResponse, User } from '../types';\nimport { MagicLink, Routes, WaitForSessionConfig } from './types';\nimport {\n\twithWaitForSessionValidations,\n\twithSignValidations,\n\twithVerifyValidations,\n\twithUpdateEmailValidations,\n\twithUpdatePhoneValidations\n} from './validations';\n\nconst normalizeWaitForSessionConfig = ({\n\tpollingIntervalMs = MAGIC_LINK_MIN_POLLING_INTERVAL_MS,\n\ttimeoutMs = MAGIC_LINK_MAX_POLLING_TIMEOUT_MS\n} = {}) => ({\n\tpollingIntervalMs: Math.max(\n\t\tpollingIntervalMs || MAGIC_LINK_MIN_POLLING_INTERVAL_MS,\n\t\tMAGIC_LINK_MIN_POLLING_INTERVAL_MS\n\t),\n\ttimeoutMs: Math.min(\n\t\ttimeoutMs || MAGIC_LINK_MAX_POLLING_TIMEOUT_MS,\n\t\tMAGIC_LINK_MAX_POLLING_TIMEOUT_MS\n\t)\n});\n\nconst withMagicLinkCrossDevice = (httpClient: HttpClient) => ({\n\tverify: withVerifyValidations(\n\t\t(token: string): Promise<SdkResponse> =>\n\t\t\ttransformResponse(httpClient.post(apiPaths.magicLink.verify, { token }))\n\t),\n\n\tsignIn: Object.keys(DeliveryMethods).reduce(\n\t\t(acc, delivery) => ({\n\t\t\t...acc,\n\t\t\t[delivery]: withSignValidations(\n\t\t\t\t(externalId: string, URI: string): Promise<SdkResponse> =>\n\t\t\t\t\ttransformResponse(\n\t\t\t\t\t\thttpClient.post(pathJoin(apiPaths.magicLink.signIn, delivery), {\n\t\t\t\t\t\t\texternalId,\n\t\t\t\t\t\t\tURI,\n\t\t\t\t\t\t\tcrossDevice: true\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t)\n\t\t}),\n\t\t{}\n\t) as MagicLink[Routes.signIn],\n\n\tsignUpOrIn: Object.keys(DeliveryMethods).reduce(\n\t\t(acc, delivery) => ({\n\t\t\t...acc,\n\t\t\t[delivery]: withSignValidations(\n\t\t\t\t(externalId: string, URI: string): Promise<SdkResponse> =>\n\t\t\t\t\ttransformResponse(\n\t\t\t\t\t\thttpClient.post(pathJoin(apiPaths.magicLink.signUpOrIn, delivery), {\n\t\t\t\t\t\t\texternalId,\n\t\t\t\t\t\t\tURI,\n\t\t\t\t\t\t\tcrossDevice: true\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t)\n\t\t}),\n\t\t{}\n\t) as MagicLink[Routes.signIn],\n\n\tsignUp: Object.keys(DeliveryMethods).reduce(\n\t\t(acc, delivery) => ({\n\t\t\t...acc,\n\t\t\t[delivery]: withSignValidations(\n\t\t\t\t(externalId: string, URI: string, user?: User): Promise<SdkResponse> =>\n\t\t\t\t\ttransformResponse(\n\t\t\t\t\t\thttpClient.post(pathJoin(apiPaths.magicLink.signUp, delivery), {\n\t\t\t\t\t\t\texternalId,\n\t\t\t\t\t\t\tURI,\n\t\t\t\t\t\t\tuser,\n\t\t\t\t\t\t\tcrossDevice: true\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t)\n\t\t}),\n\t\t{}\n\t) as MagicLink[Routes.signUp],\n\n\twaitForSession: withWaitForSessionValidations(\n\t\t(pendingRef: string, config?: WaitForSessionConfig): Promise<SdkResponse> =>\n\t\t\tnew Promise((resolve) => {\n\t\t\t\tconst { pollingIntervalMs, timeoutMs } = normalizeWaitForSessionConfig(config);\n\t\t\t\tlet timeout: NodeJS.Timeout;\n\t\t\t\tconst interval = setInterval(async () => {\n\t\t\t\t\tconst resp = await httpClient.post(apiPaths.magicLink.session, { pendingRef });\n\t\t\t\t\tif (resp.ok) {\n\t\t\t\t\t\tclearInterval(interval);\n\t\t\t\t\t\tif (timeout) clearTimeout(timeout);\n\t\t\t\t\t\tresolve(transformResponse(Promise.resolve(resp)));\n\t\t\t\t\t}\n\t\t\t\t}, pollingIntervalMs);\n\n\t\t\t\ttimeout = setTimeout(() => {\n\t\t\t\t\tresolve({\n\t\t\t\t\t\terror: { message: `Session polling timeout exceeded: ${timeoutMs}ms`, code: '0' },\n\t\t\t\t\t\tok: false\n\t\t\t\t\t});\n\t\t\t\t\tclearInterval(interval);\n\t\t\t\t}, timeoutMs);\n\t\t\t})\n\t),\n\n\tupdate: {\n\t\temail: withUpdateEmailValidations(\n\t\t\t(identifier: string, email: string, uri: string, token?: string): Promise<SdkResponse> =>\n\t\t\t\ttransformResponse(\n\t\t\t\t\thttpClient.post(\n\t\t\t\t\t\tapiPaths.magicLink.update.email,\n\t\t\t\t\t\t{ externalId: identifier, email, URI: uri, crossDevice: true },\n\t\t\t\t\t\t{ token }\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t),\n\t\tphone: Object.keys(DeliveryPhone).reduce(\n\t\t\t(acc, delivery) => ({\n\t\t\t\t...acc,\n\t\t\t\t[delivery]: withUpdatePhoneValidations(\n\t\t\t\t\t(externalId: string, phone: string, uri: string, token?: string): Promise<SdkResponse> =>\n\t\t\t\t\t\ttransformResponse(\n\t\t\t\t\t\t\thttpClient.post(\n\t\t\t\t\t\t\t\tpathJoin(apiPaths.magicLink.update.phone, delivery),\n\t\t\t\t\t\t\t\t{ externalId, phone, URI: uri, crossDevice: true },\n\t\t\t\t\t\t\t\t{ token }\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t}),\n\t\t\t{}\n\t\t) as MagicLink[Routes.updatePhone]\n\t}\n});\n\nexport default withMagicLinkCrossDevice;\n","export const DEFAULT_BASE_API_URL = 'https://api.descope.com';\n\nexport const MAGIC_LINK_MIN_POLLING_INTERVAL_MS = 1000; // 1 second\nexport const MAGIC_LINK_MAX_POLLING_TIMEOUT_MS = 1000 * 60 * 10; // 10 minutes\n\nexport { default as apiPaths } from './apiPaths';\n","import { apiPaths } from '../../constants';\nimport { HttpClient } from '../../httpClient';\nimport { pathJoin, transformResponse } from '../helpers';\nimport { DeliveryMethods, DeliveryPhone, SdkResponse, User } from '../types';\nimport withMagicLinkCrossDevice from './crossDevice';\nimport { MagicLink, Routes } from './types';\nimport {\n\twithSignValidations,\n\twithVerifyValidations,\n\twithUpdateEmailValidations,\n\twithUpdatePhoneValidations\n} from './validations';\n\nconst withMagicLink = (httpClient: HttpClient) => ({\n\tverify: withVerifyValidations(\n\t\t(token: string): Promise<SdkResponse> =>\n\t\t\ttransformResponse(httpClient.post(apiPaths.magicLink.verify, { token }))\n\t),\n\n\tsignIn: Object.keys(DeliveryMethods).reduce(\n\t\t(acc, delivery) => ({\n\t\t\t...acc,\n\t\t\t[delivery]: withSignValidations(\n\t\t\t\t(externalId: string, URI: string): Promise<SdkResponse> =>\n\t\t\t\t\ttransformResponse(\n\t\t\t\t\t\thttpClient.post(pathJoin(apiPaths.magicLink.signIn, delivery), { externalId, URI })\n\t\t\t\t\t)\n\t\t\t)\n\t\t}),\n\t\t{}\n\t) as MagicLink[Routes.signIn],\n\n\tsignUp: Object.keys(DeliveryMethods).reduce(\n\t\t(acc, delivery) => ({\n\t\t\t...acc,\n\t\t\t[delivery]: withSignValidations(\n\t\t\t\t(externalId: string, URI: string, user?: User): Promise<SdkResponse> =>\n\t\t\t\t\ttransformResponse(\n\t\t\t\t\t\thttpClient.post(pathJoin(apiPaths.magicLink.signUp, delivery), {\n\t\t\t\t\t\t\texternalId,\n\t\t\t\t\t\t\tURI,\n\t\t\t\t\t\t\tuser\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t)\n\t\t}),\n\t\t{}\n\t) as MagicLink[Routes.signUp],\n\n\tsignUpOrIn: Object.keys(DeliveryMethods).reduce(\n\t\t(acc, delivery) => ({\n\t\t\t...acc,\n\t\t\t[delivery]: withSignValidations(\n\t\t\t\t(externalId: string, URI: string): Promise<SdkResponse> =>\n\t\t\t\t\ttransformResponse(\n\t\t\t\t\t\thttpClient.post(pathJoin(apiPaths.magicLink.signUpOrIn, delivery), { externalId, URI })\n\t\t\t\t\t)\n\t\t\t)\n\t\t}),\n\t\t{}\n\t) as MagicLink[Routes.signIn],\n\n\tupdate: {\n\t\temail: withUpdateEmailValidations(\n\t\t\t(identifier: string, email: string, uri: string, token?: string): Promise<SdkResponse> =>\n\t\t\t\ttransformResponse(\n\t\t\t\t\thttpClient.post(\n\t\t\t\t\t\tapiPaths.magicLink.update.email,\n\t\t\t\t\t\t{ externalId: identifier, email, URI: uri },\n\t\t\t\t\t\t{ token }\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t),\n\t\tphone: Object.keys(DeliveryPhone).reduce(\n\t\t\t(acc, delivery) => ({\n\t\t\t\t...acc,\n\t\t\t\t[delivery]: withUpdatePhoneValidations(\n\t\t\t\t\t(externalId: string, phone: string, uri: string, token?: string): Promise<SdkResponse> =>\n\t\t\t\t\t\ttransformResponse(\n\t\t\t\t\t\t\thttpClient.post(\n\t\t\t\t\t\t\t\tpathJoin(apiPaths.magicLink.update.phone, delivery),\n\t\t\t\t\t\t\t\t{ externalId, phone, URI: uri },\n\t\t\t\t\t\t\t\t{ token }\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t}),\n\t\t\t{}\n\t\t) as MagicLink[Routes.updatePhone]\n\t},\n\n\tcrossDevice: withMagicLinkCrossDevice(httpClient)\n});\n\nexport default withMagicLink;\n","import { apiPaths } from '../constants';\nimport { HttpClient } from '../httpClient';\nimport { transformResponse } from './helpers';\nimport { SdkResponse } from './types';\nimport { stringNonEmpty, withValidations } from './validations';\n\nconst withExchangeValidations = withValidations(stringNonEmpty('code'));\n\nconst withExchange = (httpClient: HttpClient) => ({\n\texchange: withExchangeValidations(\n\t\t(code: string): Promise<SdkResponse> =>\n\t\t\ttransformResponse(httpClient.get(apiPaths.exchange, { queryParams: { code } }))\n\t)\n});\n\nexport default withExchange;\n","import { SdkResponse } from '../types';\n\nenum OAuthProviders {\n\tfacebook = 'facebook',\n\tgithub = 'github',\n\tgoogle = 'google',\n\tmicrosoft = 'microsoft',\n\tgitlab = 'gitlab',\n\tapple = 'apple'\n}\n\ntype StartFn = <B extends { redirect: boolean }>(\n\tredirectURL?: string,\n\tconfig?: B\n) => Promise<B extends { redirect: true } ? undefined : SdkResponse>;\ntype VerifyFn = (code: string) => Promise<SdkResponse>;\n\ntype Providers<T> = Record<keyof typeof OAuthProviders, T>;\n\nexport type Oauth = {\n\tstart: Providers<StartFn>;\n\tverify: Providers<VerifyFn>;\n};\n\nexport { OAuthProviders };\n","import { apiPaths } from '../../constants';\nimport { HttpClient } from '../../httpClient';\nimport withExchange from '../exchange';\nimport { transformResponse } from '../helpers';\nimport { Oauth, OAuthProviders } from './types';\n\nconst withOauth = (httpClient: HttpClient) => ({\n\tstart: Object.keys(OAuthProviders).reduce(\n\t\t(acc, provider) => ({\n\t\t\t...acc,\n\t\t\t// eslint-disable-next-line consistent-return\n\t\t\t[provider]: async (redirectUrl?: string, { redirect = false } = {}) => {\n\t\t\t\tconst resp = await httpClient.get(apiPaths.oauth.start, {\n\t\t\t\t\tqueryParams: { provider, ...(redirectUrl && { redirectURL: redirectUrl }) }\n\t\t\t\t});\n\t\t\t\tif (!redirect || !resp.ok) return transformResponse(Promise.resolve(resp));\n\n\t\t\t\tconst { url } = await resp.json();\n\t\t\t\twindow.location.href = url;\n\t\t\t}\n\t\t}),\n\t\t{}\n\t) as Oauth['start'],\n\n\t...withExchange(httpClient)\n});\n\nexport default withOauth;\n","import { apiPaths } from '../constants';\nimport { HttpClient } from '../httpClient';\nimport { transformResponse } from './helpers';\nimport { stringNonEmpty, withValidations } from './validations';\n\nconst withStartValidations = withValidations(stringNonEmpty('flowId'));\nconst withNextValidations = withValidations(\n\tstringNonEmpty('executionId'),\n\tstringNonEmpty('stepId'),\n\tstringNonEmpty('actionId')\n);\n\nconst withFlow = (httpClient: HttpClient) => ({\n\tstart: withStartValidations((flowId: string) =>\n\t\ttransformResponse(httpClient.post(apiPaths.flow.start, { flowId }))\n\t),\n\tnext: withNextValidations(\n\t\t(\n\t\t\texecutionId: string,\n\t\t\tstepId: string,\n\t\t\tinteractionId: string,\n\t\t\tinput?: Record<string, FormDataEntryValue>\n\t\t) => {\n\t\t\treturn transformResponse(\n\t\t\t\thttpClient.post(apiPaths.flow.next, { executionId, stepId, interactionId, input })\n\t\t\t);\n\t\t}\n\t)\n});\n\nexport default withFlow;\n","import { apiPaths } from '../constants';\nimport { HttpClient } from '../httpClient';\nimport withExchange from './exchange';\nimport { transformResponse } from './helpers';\nimport { SdkResponse } from './types';\nimport { stringNonEmpty, withValidations } from './validations';\n\nconst withStartValidations = withValidations(stringNonEmpty('tenant'));\n\ntype StartFn = <B extends { redirect: boolean }>(\n\ttenantNameOrEmail: string,\n\tconfig?: B\n) => Promise<B extends { redirect: true } ? undefined : SdkResponse>;\n\nconst withSaml = (httpClient: HttpClient) => ({\n\t// eslint-disable-next-line consistent-return\n\tstart: withStartValidations(\n\t\tasync (tenantNameOrEmail: string, redirectUrl?: string, { redirect = false } = {}) => {\n\t\t\tconst resp = await httpClient.get(apiPaths.saml.start, {\n\t\t\t\tqueryParams: { tenant: tenantNameOrEmail, redirectURL: redirectUrl }\n\t\t\t});\n\n\t\t\tif (!redirect || !resp.ok) return transformResponse(Promise.resolve(resp));\n\n\t\t\tconst { url } = await resp.json();\n\t\t\twindow.location.href = url;\n\t\t}\n\t) as StartFn,\n\n\t...withExchange(httpClient)\n});\n\nexport default withSaml;\n","import { apiPaths } from '../constants';\nimport { HttpClient } from '../httpClient';\nimport { transformResponse } from './helpers';\nimport { User, SdkResponse } from './types';\nimport { stringNonEmpty, withValidations } from './validations';\n\nconst identifierValidations = stringNonEmpty('identifier');\nconst withVerifyValidations = withValidations(identifierValidations, stringNonEmpty('code'));\nconst withSignUpValidations = withValidations(identifierValidations);\nconst withUpdateValidations = withValidations(identifierValidations);\n\nconst withTotp = (httpClient: HttpClient) => ({\n\tsignUp: withSignUpValidations(\n\t\t(identifier: string, user?: User): Promise<SdkResponse> =>\n\t\t\ttransformResponse(httpClient.post(apiPaths.totp.signUp, { externalId: identifier, user }))\n\t),\n\n\tverify: withVerifyValidations(\n\t\t(identifier: string, code: string): Promise<SdkResponse> =>\n\t\t\ttransformResponse(httpClient.post(apiPaths.totp.verify, { externalId: identifier, code }))\n\t),\n\n\tupdate: withUpdateValidations(\n\t\t(identifier: string, token?: string): Promise<SdkResponse> =>\n\t\t\ttransformResponse(\n\t\t\t\thttpClient.post(apiPaths.totp.update, { externalId: identifier }, { token })\n\t\t\t)\n\t)\n});\n\nexport default withTotp;\n","import { apiPaths } from '../constants';\nimport { HttpClient } from '../httpClient';\nimport { transformResponse } from './helpers';\nimport { SdkResponse } from './types';\nimport { stringNonEmpty, withValidations } from './validations';\n\nconst identifierValidations = stringNonEmpty('identifier');\nconst originValidations = stringNonEmpty('origin');\n\nconst withSignUpStartValidations = withValidations(\n\tidentifierValidations,\n\toriginValidations,\n\tstringNonEmpty('name')\n);\nconst withSignInStartValidations = withValidations(identifierValidations, originValidations);\nconst withUpdateStartValidations = withValidations(\n\tidentifierValidations,\n\toriginValidations,\n\tstringNonEmpty('token')\n);\nconst withFinishValidations = withValidations(\n\tstringNonEmpty('transactionId'),\n\tstringNonEmpty('response')\n);\n\nconst withWebauthn = (httpClient: HttpClient) => ({\n\tsignUp: {\n\t\tstart: withSignUpStartValidations(\n\t\t\t(identifier: string, origin: string, name: string): Promise<SdkResponse> =>\n\t\t\t\ttransformResponse(\n\t\t\t\t\thttpClient.post(apiPaths.webauthn.signUp.start, {\n\t\t\t\t\t\tuser: {\n\t\t\t\t\t\t\texternalId: identifier,\n\t\t\t\t\t\t\tname\n\t\t\t\t\t\t},\n\t\t\t\t\t\torigin\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t),\n\n\t\tfinish: withFinishValidations(\n\t\t\t(transactionId: string, response: string): Promise<SdkResponse> =>\n\t\t\t\ttransformResponse(\n\t\t\t\t\thttpClient.post(apiPaths.webauthn.signUp.finish, { transactionId, response })\n\t\t\t\t)\n\t\t)\n\t},\n\n\tsignIn: {\n\t\tstart: withSignInStartValidations(\n\t\t\t(identifier: string, origin: string): Promise<SdkResponse> =>\n\t\t\t\ttransformResponse(\n\t\t\t\t\thttpClient.post(apiPaths.webauthn.signIn.start, { externalId: identifier, origin })\n\t\t\t\t)\n\t\t),\n\n\t\tfinish: withFinishValidations(\n\t\t\t(transactionId: string, response: string): Promise<SdkResponse> =>\n\t\t\t\ttransformResponse(\n\t\t\t\t\thttpClient.post(apiPaths.webauthn.signIn.finish, { transactionId, response })\n\t\t\t\t)\n\t\t)\n\t},\n\n\tupdate: {\n\t\tstart: withUpdateStartValidations(\n\t\t\t(identifier: string, origin: string, token: string): Promise<SdkResponse> =>\n\t\t\t\ttransformResponse(\n\t\t\t\t\thttpClient.post(\n\t\t\t\t\t\tapiPaths.webauthn.update.start,\n\t\t\t\t\t\t{ externalId: identifier, origin },\n\t\t\t\t\t\t{ token }\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t),\n\n\t\tfinish: withFinishValidations(\n\t\t\t(transactionId: string, response: string): Promise<SdkResponse> =>\n\t\t\t\ttransformResponse(\n\t\t\t\t\thttpClient.post(apiPaths.webauthn.update.finish, { transactionId, response })\n\t\t\t\t)\n\t\t)\n\t}\n});\n\nexport default withWebauthn;\n","import withOtp from './otp';\nimport { HttpClient } from '../httpClient';\nimport isJwtExpired, { transformResponse } from './helpers';\nimport { stringNonEmpty, withValidations } from './validations';\nimport withMagicLink from './magicLink';\nimport { apiPaths } from '../constants';\nimport withOauth from './oauth';\nimport withFlow from './flow';\nimport withSaml from './saml';\nimport withTotp from './totp';\nimport withWebauthn from './webauthn';\n\nconst withValidateValidations = withValidations(stringNonEmpty('token'));\n\nexport default (httpClient: HttpClient) => ({\n\totp: withOtp(httpClient),\n\tmagicLink: withMagicLink(httpClient),\n\toauth: withOauth(httpClient),\n\tsaml: withSaml(httpClient),\n\ttotp: withTotp(httpClient),\n\twebauthn: withWebauthn(httpClient),\n\tflow: withFlow(httpClient),\n\trefresh: (token?: string) => transformResponse(httpClient.get(apiPaths.refresh, { token })),\n\tlogout: (token?: string) => transformResponse(httpClient.get(apiPaths.logout, { token })),\n\tisJwtExpired: withValidateValidations(isJwtExpired),\n\thttpClient\n});\n","import { DEFAULT_BASE_API_URL } from './constants';\nimport createHttpClient from './httpClient';\nimport createSdk from './sdk';\nimport { OAuthProviders } from './sdk/oauth/types';\nimport { DeliveryMethods, Logger } from './sdk/types';\nimport { Hooks, HTTPMethods } from './httpClient/types';\nimport { stringNonEmpty, withValidations } from './sdk/validations';\nimport { hasPathValue } from './sdk/validations/validators';\n\nconst withSdkConfigValidations = withValidations([\n\thasPathValue('projectId', stringNonEmpty('projectId'))\n]);\n\nconst sdk = withSdkConfigValidations(\n\t({ projectId, logger, baseUrl, hooks, cookiePolicy }: { projectId: string; logger?: Logger; baseUrl?: string; hooks?: Hooks; cookiePolicy?: RequestCredentials }) =>\n\t\tcreateSdk(createHttpClient({ baseUrl: baseUrl || DEFAULT_BASE_API_URL, projectId, logger, hooks, cookiePolicy }))\n);\n\nconst sdkWithAttributes = sdk as typeof sdk & { DeliveryMethods: typeof DeliveryMethods };\n\nsdkWithAttributes.DeliveryMethods = DeliveryMethods;\n\nexport default sdkWithAttributes;\n\nexport type DeliveryMethod = keyof typeof DeliveryMethods;\nexport type OAuthProvider = keyof typeof OAuthProviders;\nexport type { HTTPMethods };\nexport type { SdkResponse, AuthInfo } from './sdk/types';\n"],"names":["apiPaths","verify","signIn","signUp","update","email","phone","signUpOrIn","session","start","finish","next","HTTPMethods","httpLogBuilder","msg","headers","headersObj","entries","Object","fromEntries","Headers","JSON","stringify","this","body","Body","url","Url","toString","method","Method","title","Title","status","Status","build","keys","flatMap","key","join","createFetchLogger","logger","receivedFetch","fetchInternal","fetch","Error","async","args","log","buildRequestLog","resp","ok","respBody","text","Promise","resolve","json","parse","statusText","buildResponseLog","mergeHeaders","sources","reduce","acc","source","srcArr","Array","isArray","from","getSrcArr","_","value","serializeBody","undefined","createAuthorizationHeader","projectId","token","bearer","Authorization","createHttpClient","baseUrl","baseConfig","hooks","cookiePolicy","fetchWithLogger","sendRequest","config","requestConfig","beforeRequest","path","queryParams","res","URL","search","URLSearchParams","urlBuilder","baseHeaders","credentials","afterRequest","clone","get","post","put","delete","isJwtExpired","exp","jwtDecode","Date","getTime","pathJoin","replace","transformResponse","response","ret","code","data","error","DeliveryPhone","DeliveryMethods","Routes","createValidator","rule","defaultMsg","val","createValidation","validators","validate","forEach","validator","errMsg","regexMatch","regex","test","validateEmail","validatePhone","isEmail","isPhone","isNotEmpty","min","length","isString","withValidations","argsRules","fn","rulesArr","i","stringNonEmpty","fieldName","stringEmail","stringPhone","identifierValidations","withVerifyValidations","withSignValidations","withUpdatePhoneValidations","withUpdateEmailValidations","withOtp","httpClient","delivery","assign","externalId","user","identifier","uriValidations","withWaitForSessionValidations","withMagicLinkCrossDevice","URI","crossDevice","waitForSession","pendingRef","pollingIntervalMs","timeoutMs","Math","max","normalizeWaitForSessionConfig","timeout","interval","setInterval","clearInterval","clearTimeout","setTimeout","message","uri","withMagicLink","withExchangeValidations","withExchange","exchange","OAuthProviders","withOauth","provider","redirectUrl","redirect","redirectURL","window","location","href","withStartValidations","withNextValidations","withFlow","flowId","executionId","stepId","interactionId","input","withSaml","tenantNameOrEmail","tenant","withSignUpValidations","withUpdateValidations","withTotp","originValidations","withSignUpStartValidations","withSignInStartValidations","withUpdateStartValidations","withFinishValidations","withWebauthn","origin","name","transactionId","withValidateValidations","rules","sdkWithAttributes","validatePathValue","withSdkConfigValidations","createSdk","otp","magicLink","oauth","saml","totp","webauthn","flow","refresh","logout"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/constants/apiPaths.ts","../src/httpClient/types.ts","../src/httpClient/helpers/createFetchLogger.ts","../src/httpClient/utils.ts","../src/httpClient/index.ts","../src/httpClient/urlBuilder.ts","../src/sdk/helpers/index.ts","../src/sdk/validations/core.ts","../src/sdk/validations/validators.ts","../src/sdk/validations/index.ts","../src/sdk/accesskey.ts","../src/sdk/types.ts","../src/sdk/otp.ts","../src/sdk/magicLink/validations.ts","../src/sdk/magicLink/crossDevice.ts","../src/constants/index.ts","../src/sdk/magicLink/index.ts","../src/sdk/exchange.ts","../src/sdk/oauth/types.ts","../src/sdk/oauth/index.ts","../src/sdk/flow.ts","../src/sdk/saml.ts","../src/sdk/totp.ts","../src/sdk/webauthn.ts","../src/sdk/index.ts","../src/index.ts"],"sourcesContent":["export default {\n\taccessKey: {\n\t\texchange: '/v1/auth/accesskey/exchange'\n\t},\n\totp: {\n\t\tverify: '/v1/auth/otp/verify',\n\t\tsignIn: '/v1/auth/otp/signin',\n\t\tsignUp: '/v1/auth/otp/signup',\n\t\tupdate: {\n\t\t\temail: '/v1/auth/otp/update/email',\n\t\t\tphone: '/v1/auth/otp/update/phone'\n\t\t},\n\t\tsignUpOrIn: '/v1/auth/otp/signup-in'\n\t},\n\tmagicLink: {\n\t\tverify: '/v1/auth/magiclink/verify',\n\t\tsignIn: '/v1/auth/magiclink/signin',\n\t\tsignUp: '/v1/auth/magiclink/signup',\n\t\tsession: '/v1/auth/magiclink/pending-session',\n\t\tupdate: {\n\t\t\temail: '/v1/auth/magiclink/update/email',\n\t\t\tphone: '/v1/auth/magiclink/update/email'\n\t\t},\n\t\tsignUpOrIn: '/v1/auth/magiclink/signup-in'\n\t},\n\toauth: {\n\t\tstart: '/v1/auth/oauth/authorize'\n\t},\n\tsaml: {\n\t\tstart: '/v1/auth/saml/authorize'\n\t},\n\ttotp: {\n\t\tverify: '/v1/auth/totp/verify',\n\t\tsignUp: '/v1/auth/totp/signup',\n\t\tupdate: '/v1/user/totp/update'\n\t},\n\twebauthn: {\n\t\tsignUp: {\n\t\t\tstart: '/v1/auth/webauthn/signup/start',\n\t\t\tfinish: '/v1/auth/webauthn/signup/finish'\n\t\t},\n\t\tsignIn: {\n\t\t\tstart: '/v1/auth/webauthn/signin/start',\n\t\t\tfinish: '/v1/auth/webauthn/signin/finish'\n\t\t},\n\t\tupdate: {\n\t\t\tstart: 'v1/auth/webauthn/update/start',\n\t\t\tfinish: '/v1/auth/webauthn/update/finish'\n\t\t}\n\t},\n\trefresh: '/v1/auth/refresh',\n\tlogout: '/v1/auth/logoutall',\n\tflow: {\n\t\tstart: '/v1/flow/start',\n\t\tnext: '/v1/flow/next'\n\t},\n\texchange: '/v1/auth/exchange'\n};\n","import { Logger } from '../sdk/types';\n\ntype HttpClientReqConfig = {\n\theaders?: HeadersInit;\n\tqueryParams?: { [key: string]: string };\n\ttoken?: string;\n};\n\nexport enum HTTPMethods {\n\tget = 'GET',\n\tdelete = 'DELETE',\n\tpost = 'POST',\n\tput = 'PUT'\n}\n\nexport type HttpClient = {\n\tget: (path: string, config?: HttpClientReqConfig) => Promise<Response>;\n\tpost: (path: string, body?: any, config?: HttpClientReqConfig) => Promise<Response>;\n\tput: (path: string, body?: any, config?: HttpClientReqConfig) => Promise<Response>;\n\tdelete: (path: string, body?: any, config?: HttpClientReqConfig) => Promise<Response>;\n};\n\nexport type CreateHttpClientConfig = {\n\tbaseUrl: string;\n\tprojectId: string;\n\tbaseConfig?: { baseHeaders: HeadersInit };\n\tlogger?: Logger;\n\thooks?: Hooks;\n\tcookiePolicy?: RequestCredentials\n};\n\nexport type RequestConfig = { \n\tpath: string; \n\theaders?: HeadersInit; \n\tqueryParams?: { [key: string]: string; }; \n\tbody?: any; \n\tmethod: HTTPMethods; \n\ttoken?: string; \n}\n\nexport type Hooks = {\n\tbeforeRequest?: (config: RequestConfig) => RequestConfig;\n\tafterRequest?: (req: RequestConfig, res: Response) => void;\n}\n","import { Logger } from '../../sdk/types';\n\nconst httpLogBuilder = () => {\n\tconst msg: {\n\t\tTitle?: string;\n\t\tUrl?: string;\n\t\tMethod?: string;\n\t\tHeaders?: string;\n\t\tBody?: string;\n\t\tStatus?: string;\n\t} = {};\n\n\treturn {\n\t\theaders(headers: HeadersInit) {\n\t\t\tconst headersObj =\n\t\t\t\ttypeof headers.entries === 'function' ? Object.fromEntries(headers.entries()) : headers;\n\t\t\tmsg.Headers = JSON.stringify(headersObj);\n\n\t\t\treturn this;\n\t\t},\n\n\t\tbody(body: string) {\n\t\t\tmsg.Body = body;\n\t\t\treturn this;\n\t\t},\n\n\t\turl(url: URL | string) {\n\t\t\tmsg.Url = url.toString();\n\t\t\treturn this;\n\t\t},\n\n\t\tmethod(method: string) {\n\t\t\tmsg.Method = method;\n\t\t\treturn this;\n\t\t},\n\n\t\ttitle(title: string) {\n\t\t\tmsg.Title = title;\n\t\t\treturn this;\n\t\t},\n\n\t\tstatus(status: string) {\n\t\t\tmsg.Status = status;\n\t\t\treturn this;\n\t\t},\n\n\t\tbuild() {\n\t\t\treturn Object.keys(msg)\n\t\t\t\t.flatMap((key) => (msg[key] ? [`${key !== 'Title' ? `${key}: ` : ''}${msg[key]}`] : []))\n\t\t\t\t.join('\\n');\n\t\t}\n\t};\n};\n\ntype Fetch = typeof fetch;\n\nconst buildRequestLog = (args: Parameters<Fetch>) =>\n\thttpLogBuilder()\n\t\t.title('Request')\n\t\t.url(args[0])\n\t\t.method(args[1].method)\n\t\t.headers(args[1].headers)\n\t\t.body(args[1].body)\n\t\t.build();\n\nconst buildResponseLog = async (resp: Response) => {\n\tconst respBody = await resp.text();\n\t// eslint-disable-next-line no-param-reassign\n\tresp.text = () => Promise.resolve(respBody);\n\t// eslint-disable-next-line no-param-reassign\n\tresp.json = () => Promise.resolve(JSON.parse(respBody));\n\n\treturn httpLogBuilder()\n\t\t.title('Response')\n\t\t.url(resp.url.toString())\n\t\t.status(`${resp.status} ${resp.statusText}`)\n\t\t.headers(resp.headers)\n\t\t.body(respBody)\n\t\t.build();\n};\n\nconst createFetchLogger = (logger: Logger, receivedFetch?: Fetch) => {\n\tconst fetchInternal = receivedFetch || fetch;\n\tif (!fetchInternal) throw new Error('fetch is not defined');\n\n\tif (!logger) return fetchInternal;\n\n\treturn async (...args: Parameters<Fetch>) => {\n\t\tlogger.log(buildRequestLog(args));\n\t\tconst resp = await fetchInternal(...args);\n\t\tlogger[resp.ok ? 'log' : 'error'](await buildResponseLog(resp));\n\n\t\treturn resp;\n\t};\n};\n\nexport default createFetchLogger;\n","/* eslint-disable no-nested-ternary */\n\nconst getSrcArr = (source: HeadersInit) => {\n\tif (Array.isArray(source)) return source;\n\tif (source instanceof Headers) return Array.from(source.entries());\n\tif (!source) return [];\n\treturn Object.entries(source);\n};\n\nexport const mergeHeaders = (...sources: HeadersInit[]) =>\n\tnew Headers(\n\t\tsources.reduce((acc: Record<string, string>, source) => {\n\t\t\tconst srcArr = getSrcArr(source);\n\t\t\tsrcArr.reduce((_, [key, value]) => {\n\t\t\t\tacc[key] = value;\n\n\t\t\t\treturn acc;\n\t\t\t}, acc);\n\n\t\t\treturn acc;\n\t\t}, {})\n\t);\n\nexport const serializeBody = (body: Record<string, any>) =>\n\tbody === undefined ? undefined : JSON.stringify(body);\n","import { urlBuilder } from './urlBuilder';\nimport { CreateHttpClientConfig, HttpClient, RequestConfig, HTTPMethods } from './types';\nimport createFetchLogger from './helpers/createFetchLogger';\nimport { mergeHeaders, serializeBody } from './utils';\n\nconst createAuthorizationHeader = (projectId: string, token = '') => {\n\tlet bearer = projectId;\n\tif (token !== '') {\n\t\tbearer = bearer + ':' + token;\n\t}\n\treturn {\n\t\tAuthorization: `Bearer ${bearer}`\n\t};\n};\n\nconst createHttpClient = ({\n\tbaseUrl,\n\tprojectId,\n\tbaseConfig,\n\tlogger,\n\thooks,\n\tcookiePolicy\n}: CreateHttpClientConfig): HttpClient => {\n\tconst fetchWithLogger = createFetchLogger(logger);\n\n\tconst sendRequest = async (config: RequestConfig) => {\n\t\tconst requestConfig = hooks?.beforeRequest ? hooks.beforeRequest(config) : config;\n\t\n\t\tconst { path, body, headers, queryParams, method, token } = requestConfig;\n\t\t\n\t\tconst res = await fetchWithLogger(urlBuilder({ path, baseUrl, queryParams }), {\n\t\t\theaders: mergeHeaders(\n\t\t\t\tcreateAuthorizationHeader(projectId, token),\n\t\t\t\tbaseConfig?.baseHeaders || {},\n\t\t\t\theaders\n\t\t\t),\n\t\t\tmethod,\n\t\t\tbody: serializeBody(body),\n\t\t\tcredentials: cookiePolicy || 'include'\n\t\t});\n\n\t\tif (hooks?.afterRequest) {\n\t\t\thooks.afterRequest(config, res?.clone());\n\t\t}\n\n\t\treturn res;\n\t}\n\n\treturn {\n\t\tget: (path: string, { headers, queryParams, token } = {}) =>\n\t\t\tsendRequest({ path, headers, queryParams, body: undefined, method: HTTPMethods.get, token }),\n\t\tpost: (path, body, { headers, queryParams, token } = {}) =>\n\t\t\tsendRequest({ path, headers, queryParams, body, method: HTTPMethods.post, token }),\n\t\tput: (path, body, { headers, queryParams, token } = {}) =>\n\t\t\tsendRequest({ path, headers, queryParams, body, method: HTTPMethods.put, token }),\n\t\tdelete: (path, body, { headers, queryParams, token } = {}) =>\n\t\t\tsendRequest({ path, headers, queryParams, body, method: HTTPMethods.delete, token })\n\t};\n\n};\n\nexport default createHttpClient;\nexport type { HttpClient };\n","export const urlBuilder = ({\n\tpath,\n\tbaseUrl,\n\tqueryParams\n}: {\n\tpath: string;\n\tbaseUrl: string;\n\tqueryParams: ConstructorParameters<typeof URLSearchParams>[0];\n}) => {\n\tconst url = new URL(path, baseUrl);\n\tif (queryParams) url.search = new URLSearchParams(queryParams).toString();\n\n\treturn url;\n};\n","import jwtDecode, { JwtPayload } from 'jwt-decode';\nimport { SdkResponse } from '../types';\n\nconst isJwtExpired = (token: string) => {\n\tif (typeof token !== 'string' || !token) throw new Error('Invalid token provided');\n\n\tconst { exp }: JwtPayload = jwtDecode(token);\n\tconst currentTime = new Date().getTime() / 1000;\n\n\treturn currentTime > exp;\n};\n\nexport default isJwtExpired;\n\nexport const pathJoin = (...args: string[]) => args.join('/').replace(/\\/{2,}/g, '/');\n\nexport const transformResponse = async (response: Promise<Response>): Promise<SdkResponse> => {\n\tconst resp = await response;\n\n\tconst ret: SdkResponse = {\n\t\tcode: resp.status,\n\t\tok: resp.ok,\n\t\tresponse: resp\n\t};\n\n\tconst data = await resp.json();\n\n\tif (resp.ok) {\n\t\tret.data = data;\n\t} else {\n\t\tret.error = data;\n\t}\n\n\treturn ret;\n};\n","import { Validator, ValidationRule, MakeValidator } from './types';\n\nexport const createValidator =\n\t(rule: ValidationRule, defaultMsg?: string): MakeValidator =>\n\t(msg = defaultMsg) =>\n\t(val) =>\n\t\t!rule(val) ? msg.replace('{val}', val) : false;\n\nexport const createValidation = (...validators: Validator[]) => ({\n\tvalidate: (val: any) => {\n\t\tvalidators.forEach((validator) => {\n\t\t\tconst errMsg = validator(val);\n\t\t\tif (errMsg) throw new Error(errMsg);\n\t\t});\n\n\t\treturn true;\n\t}\n});\n","import get from 'lodash.get';\nimport { createValidation, createValidator } from './core';\nimport { Validator } from './types';\n\nconst regexMatch = (regex: RegExp) => (val: any) => regex.test(val);\n\nconst validateString = (val: any) => typeof val === 'string';\nconst validateEmail = regexMatch(\n\t/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/\n);\nconst validatePhone = regexMatch(/^\\+[1-9]{1}[0-9]{3,14}$/);\nconst validateMinLength = (min: number) => (val: any) => val.length >= min;\n// const validatePlainObject = (val: any) => !!val && Object.getPrototypeOf(val) === Object.prototype;\nconst validatePathValue = (path: string, rules: Validator[]) => (val: any) =>\n\tcreateValidation(...rules).validate(get(val, path));\n\nexport const isEmail = createValidator(validateEmail, '\"{val}\" is not a valid email');\nexport const isPhone = createValidator(validatePhone, '\"{val}\" is not a valid phone number');\nexport const isNotEmpty = createValidator(validateMinLength(1), 'Minimum length is 1');\nexport const isString = createValidator(validateString, 'Input is not a string');\n// export const isPlainObject = createValidator(validatePlainObject, 'Input is not a plain object');\nexport const hasPathValue = (path: string, rules: Validator[]) =>\n\tcreateValidator(validatePathValue(path, rules))();\n","import { createValidation } from './core';\nimport { Validator } from './types';\nimport { isEmail, isNotEmpty, isPhone, isString } from './validators';\n\n/**\n *\n * @params each parameter is an array of validators, those validators will be verified against the wrapped function argument which in the same place\n * @throws if any of the validators fails, an error with the relevant message will be thrown\n */\nexport const withValidations =\n\t(...argsRules: Validator[][]) =>\n\t<T extends Array<any>, U>(fn: (...args: T) => U) =>\n\t(...args: T): U => {\n\t\targsRules.forEach((rulesArr, i) => createValidation(...rulesArr).validate(args[i]));\n\n\t\treturn fn(...args);\n\t};\n\nexport const stringNonEmpty = (fieldName: string) => [\n\tisString(`\"${fieldName}\" must be a string`),\n\tisNotEmpty(`\"${fieldName}\" must not be empty`)\n];\nexport const stringEmail = (fieldName: string) => [\n\tisString(`\"${fieldName}\" must be a string`),\n\tisEmail()\n];\nexport const stringPhone = (fieldName: string) => [\n\tisString(`\"${fieldName}\" must be a string`),\n\tisPhone()\n];\n","import { apiPaths } from '../constants';\nimport { HttpClient } from '../httpClient';\nimport { transformResponse } from './helpers';\nimport { SdkResponse } from './types';\nimport { stringNonEmpty, withValidations } from './validations';\n\nconst withExchangeValidations = withValidations(stringNonEmpty('accessKey'));\n\nconst withAccessKeys = (httpClient: HttpClient) => ({\n\texchange: withExchangeValidations(\n\t\t(accessKey: string): Promise<SdkResponse> =>\n\t\t\ttransformResponse(httpClient.get(apiPaths.accessKey.exchange, { token: accessKey }))\n\t)\n});\n\nexport default withAccessKeys;\n","type SdkFn = (...args: any[]) => Promise<SdkResponse>;\n\ninterface UserResponse extends User {\n\texternalIds: string[];\n\tverifiedEmail?: boolean;\n\tverifiedPhone?: boolean;\n};\n\nexport type User = {\n\temail?: string;\n\tname?: string;\n\tphone?: string;\n};\n\nexport interface AuthInfo {\n\tsessionJwt: string;\n\trefreshJwt?: string;\n\tcookieDomain?: string;\n\tcookiePath?: string;\n\tcookieMaxAge?: number;\n\tcookieExpiration?: number;\n\tuser?: UserResponse;\n\tfirstSeen?: boolean;\n}\n\nexport enum DeliveryPhone {\n\tsms = 'sms',\n\twhatsapp = 'whatsapp'\n}\n\nexport enum DeliveryMethods {\n\temail = 'email',\n\tsms = 'sms',\n\twhatsapp = 'whatsapp'\n}\n\nexport type Deliveries<T extends SdkFn> = Record<DeliveryMethods, T>;\n\nexport enum Routes {\n\tsignUp = 'signup',\n\tsignIn = 'signin',\n\tverify = 'verify'\n}\n\nexport type SdkResponse = {\n\tcode?: number;\n\tok: boolean;\n\tresponse?: Response;\n\terror?: {\n\t\tmessage: string;\n\t\tcode: string;\n\t};\n\tdata?: any;\n};\n\nexport type Logger = Pick<Console, 'debug' | 'log' | 'error'>;\n","import { apiPaths } from '../constants';\nimport { HttpClient } from '../httpClient';\nimport { pathJoin, transformResponse } from './helpers';\nimport { DeliveryMethods, Deliveries, User, SdkResponse, DeliveryPhone } from './types';\nimport { stringEmail, stringNonEmpty, stringPhone, withValidations } from './validations';\n\nenum Routes {\n\tsignUp = 'signup',\n\tsignIn = 'signin',\n\tverify = 'verify',\n\tupdatePhone = 'updatePhone'\n}\n\ntype VerifyFn = (identifier: string, code: string) => Promise<SdkResponse>;\ntype SignInFn = (identifier: string) => Promise<SdkResponse>;\ntype SignUpFn = (identifier: string, user?: User) => Promise<SdkResponse>;\ntype UpdatePhoneFn = (identifier: string, phone: string) => Promise<SdkResponse>;\n\ntype Otp = {\n\t[Routes.verify]: Deliveries<VerifyFn>;\n\t[Routes.signIn]: Deliveries<SignInFn>;\n\t[Routes.signUp]: Deliveries<SignUpFn>;\n\t[Routes.updatePhone]: Deliveries<UpdatePhoneFn>;\n};\n\nconst identifierValidations = stringNonEmpty('identifier');\nconst withVerifyValidations = withValidations(identifierValidations, stringNonEmpty('code'));\nconst withSignValidations = withValidations(identifierValidations);\nconst withUpdatePhoneValidations = withValidations(identifierValidations, stringPhone('phone'));\nconst withUpdateEmailValidations = withValidations(identifierValidations, stringEmail('email'));\n\nconst withOtp = (httpClient: HttpClient) => ({\n\tverify: Object.keys(DeliveryMethods).reduce(\n\t\t(acc, delivery) => ({\n\t\t\t...acc,\n\t\t\t[delivery]: withVerifyValidations(\n\t\t\t\t(externalId: string, code: string): Promise<SdkResponse> =>\n\t\t\t\t\ttransformResponse(\n\t\t\t\t\t\thttpClient.post(pathJoin(apiPaths.otp.verify, delivery), { code, externalId })\n\t\t\t\t\t)\n\t\t\t)\n\t\t}),\n\t\t{}\n\t) as Otp[Routes.verify],\n\n\tsignIn: Object.keys(DeliveryMethods).reduce(\n\t\t(acc, delivery) => ({\n\t\t\t...acc,\n\t\t\t[delivery]: withSignValidations(\n\t\t\t\t(externalId: string): Promise<SdkResponse> =>\n\t\t\t\t\ttransformResponse(\n\t\t\t\t\t\thttpClient.post(pathJoin(apiPaths.otp.signIn, delivery), { externalId })\n\t\t\t\t\t)\n\t\t\t)\n\t\t}),\n\t\t{}\n\t) as Otp[Routes.signIn],\n\n\tsignUp: Object.keys(DeliveryMethods).reduce(\n\t\t(acc, delivery) => ({\n\t\t\t...acc,\n\t\t\t[delivery]: withSignValidations(\n\t\t\t\t(externalId: string, user?: User): Promise<SdkResponse> =>\n\t\t\t\t\ttransformResponse(\n\t\t\t\t\t\thttpClient.post(pathJoin(apiPaths.otp.signUp, delivery), { externalId, user })\n\t\t\t\t\t)\n\t\t\t)\n\t\t}),\n\t\t{}\n\t) as Otp[Routes.signUp],\n\n\tsignUpOrIn: Object.keys(DeliveryMethods).reduce(\n\t\t(acc, delivery) => ({\n\t\t\t...acc,\n\t\t\t[delivery]: withSignValidations(\n\t\t\t\t(externalId: string): Promise<SdkResponse> =>\n\t\t\t\t\ttransformResponse(\n\t\t\t\t\t\thttpClient.post(pathJoin(apiPaths.otp.signUpOrIn, delivery), { externalId })\n\t\t\t\t\t)\n\t\t\t)\n\t\t}),\n\t\t{}\n\t) as Otp[Routes.signIn],\n\n\tupdate: {\n\t\temail: withUpdateEmailValidations(\n\t\t\t(identifier: string, email: string, token?: string): Promise<SdkResponse> =>\n\t\t\t\ttransformResponse(\n\t\t\t\t\thttpClient.post(apiPaths.otp.update.email, { externalId: identifier, email }, { token })\n\t\t\t\t)\n\t\t),\n\t\tphone: Object.keys(DeliveryPhone).reduce(\n\t\t\t(acc, delivery) => ({\n\t\t\t\t...acc,\n\t\t\t\t[delivery]: withUpdatePhoneValidations(\n\t\t\t\t\t(externalId: string, phone: string, token?: string): Promise<SdkResponse> =>\n\t\t\t\t\t\ttransformResponse(\n\t\t\t\t\t\t\thttpClient.post(\n\t\t\t\t\t\t\t\tpathJoin(apiPaths.otp.update.phone, delivery),\n\t\t\t\t\t\t\t\t{ externalId, phone },\n\t\t\t\t\t\t\t\t{ token }\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t}),\n\t\t\t{}\n\t\t) as Otp[Routes.updatePhone]\n\t}\n});\n\nexport default withOtp;\n","import { stringNonEmpty, withValidations, stringPhone, stringEmail } from '../validations';\n\nexport const identifierValidations = stringNonEmpty('identifier');\nexport const uriValidations = stringNonEmpty('uri');\nexport const withVerifyValidations = withValidations(stringNonEmpty('token'));\nexport const withSignValidations = withValidations(identifierValidations, uriValidations);\nexport const withWaitForSessionValidations = withValidations(stringNonEmpty('pendingRef'));\nexport const withUpdatePhoneValidations = withValidations(\n\tidentifierValidations,\n\tstringPhone('phone'),\n\turiValidations\n);\nexport const withUpdateEmailValidations = withValidations(\n\tidentifierValidations,\n\tstringEmail('email'),\n\turiValidations\n);\n","import {\n\tapiPaths,\n\tMAGIC_LINK_MAX_POLLING_TIMEOUT_MS,\n\tMAGIC_LINK_MIN_POLLING_INTERVAL_MS\n} from '../../constants';\nimport { HttpClient } from '../../httpClient';\nimport { pathJoin, transformResponse } from '../helpers';\nimport { DeliveryMethods, DeliveryPhone, SdkResponse, User } from '../types';\nimport { MagicLink, Routes, WaitForSessionConfig } from './types';\nimport {\n\twithWaitForSessionValidations,\n\twithSignValidations,\n\twithVerifyValidations,\n\twithUpdateEmailValidations,\n\twithUpdatePhoneValidations\n} from './validations';\n\nconst normalizeWaitForSessionConfig = ({\n\tpollingIntervalMs = MAGIC_LINK_MIN_POLLING_INTERVAL_MS,\n\ttimeoutMs = MAGIC_LINK_MAX_POLLING_TIMEOUT_MS\n} = {}) => ({\n\tpollingIntervalMs: Math.max(\n\t\tpollingIntervalMs || MAGIC_LINK_MIN_POLLING_INTERVAL_MS,\n\t\tMAGIC_LINK_MIN_POLLING_INTERVAL_MS\n\t),\n\ttimeoutMs: Math.min(\n\t\ttimeoutMs || MAGIC_LINK_MAX_POLLING_TIMEOUT_MS,\n\t\tMAGIC_LINK_MAX_POLLING_TIMEOUT_MS\n\t)\n});\n\nconst withMagicLinkCrossDevice = (httpClient: HttpClient) => ({\n\tverify: withVerifyValidations(\n\t\t(token: string): Promise<SdkResponse> =>\n\t\t\ttransformResponse(httpClient.post(apiPaths.magicLink.verify, { token }))\n\t),\n\n\tsignIn: Object.keys(DeliveryMethods).reduce(\n\t\t(acc, delivery) => ({\n\t\t\t...acc,\n\t\t\t[delivery]: withSignValidations(\n\t\t\t\t(externalId: string, URI: string): Promise<SdkResponse> =>\n\t\t\t\t\ttransformResponse(\n\t\t\t\t\t\thttpClient.post(pathJoin(apiPaths.magicLink.signIn, delivery), {\n\t\t\t\t\t\t\texternalId,\n\t\t\t\t\t\t\tURI,\n\t\t\t\t\t\t\tcrossDevice: true\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t)\n\t\t}),\n\t\t{}\n\t) as MagicLink[Routes.signIn],\n\n\tsignUpOrIn: Object.keys(DeliveryMethods).reduce(\n\t\t(acc, delivery) => ({\n\t\t\t...acc,\n\t\t\t[delivery]: withSignValidations(\n\t\t\t\t(externalId: string, URI: string): Promise<SdkResponse> =>\n\t\t\t\t\ttransformResponse(\n\t\t\t\t\t\thttpClient.post(pathJoin(apiPaths.magicLink.signUpOrIn, delivery), {\n\t\t\t\t\t\t\texternalId,\n\t\t\t\t\t\t\tURI,\n\t\t\t\t\t\t\tcrossDevice: true\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t)\n\t\t}),\n\t\t{}\n\t) as MagicLink[Routes.signIn],\n\n\tsignUp: Object.keys(DeliveryMethods).reduce(\n\t\t(acc, delivery) => ({\n\t\t\t...acc,\n\t\t\t[delivery]: withSignValidations(\n\t\t\t\t(externalId: string, URI: string, user?: User): Promise<SdkResponse> =>\n\t\t\t\t\ttransformResponse(\n\t\t\t\t\t\thttpClient.post(pathJoin(apiPaths.magicLink.signUp, delivery), {\n\t\t\t\t\t\t\texternalId,\n\t\t\t\t\t\t\tURI,\n\t\t\t\t\t\t\tuser,\n\t\t\t\t\t\t\tcrossDevice: true\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t)\n\t\t}),\n\t\t{}\n\t) as MagicLink[Routes.signUp],\n\n\twaitForSession: withWaitForSessionValidations(\n\t\t(pendingRef: string, config?: WaitForSessionConfig): Promise<SdkResponse> =>\n\t\t\tnew Promise((resolve) => {\n\t\t\t\tconst { pollingIntervalMs, timeoutMs } = normalizeWaitForSessionConfig(config);\n\t\t\t\tlet timeout: NodeJS.Timeout;\n\t\t\t\tconst interval = setInterval(async () => {\n\t\t\t\t\tconst resp = await httpClient.post(apiPaths.magicLink.session, { pendingRef });\n\t\t\t\t\tif (resp.ok) {\n\t\t\t\t\t\tclearInterval(interval);\n\t\t\t\t\t\tif (timeout) clearTimeout(timeout);\n\t\t\t\t\t\tresolve(transformResponse(Promise.resolve(resp)));\n\t\t\t\t\t}\n\t\t\t\t}, pollingIntervalMs);\n\n\t\t\t\ttimeout = setTimeout(() => {\n\t\t\t\t\tresolve({\n\t\t\t\t\t\terror: { message: `Session polling timeout exceeded: ${timeoutMs}ms`, code: '0' },\n\t\t\t\t\t\tok: false\n\t\t\t\t\t});\n\t\t\t\t\tclearInterval(interval);\n\t\t\t\t}, timeoutMs);\n\t\t\t})\n\t),\n\n\tupdate: {\n\t\temail: withUpdateEmailValidations(\n\t\t\t(identifier: string, email: string, uri: string, token?: string): Promise<SdkResponse> =>\n\t\t\t\ttransformResponse(\n\t\t\t\t\thttpClient.post(\n\t\t\t\t\t\tapiPaths.magicLink.update.email,\n\t\t\t\t\t\t{ externalId: identifier, email, URI: uri, crossDevice: true },\n\t\t\t\t\t\t{ token }\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t),\n\t\tphone: Object.keys(DeliveryPhone).reduce(\n\t\t\t(acc, delivery) => ({\n\t\t\t\t...acc,\n\t\t\t\t[delivery]: withUpdatePhoneValidations(\n\t\t\t\t\t(externalId: string, phone: string, uri: string, token?: string): Promise<SdkResponse> =>\n\t\t\t\t\t\ttransformResponse(\n\t\t\t\t\t\t\thttpClient.post(\n\t\t\t\t\t\t\t\tpathJoin(apiPaths.magicLink.update.phone, delivery),\n\t\t\t\t\t\t\t\t{ externalId, phone, URI: uri, crossDevice: true },\n\t\t\t\t\t\t\t\t{ token }\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t}),\n\t\t\t{}\n\t\t) as MagicLink[Routes.updatePhone]\n\t}\n});\n\nexport default withMagicLinkCrossDevice;\n","export const DEFAULT_BASE_API_URL = 'https://api.descope.com';\n\nexport const MAGIC_LINK_MIN_POLLING_INTERVAL_MS = 1000; // 1 second\nexport const MAGIC_LINK_MAX_POLLING_TIMEOUT_MS = 1000 * 60 * 10; // 10 minutes\n\nexport { default as apiPaths } from './apiPaths';\n","import { apiPaths } from '../../constants';\nimport { HttpClient } from '../../httpClient';\nimport { pathJoin, transformResponse } from '../helpers';\nimport { DeliveryMethods, DeliveryPhone, SdkResponse, User } from '../types';\nimport withMagicLinkCrossDevice from './crossDevice';\nimport { MagicLink, Routes } from './types';\nimport {\n\twithSignValidations,\n\twithVerifyValidations,\n\twithUpdateEmailValidations,\n\twithUpdatePhoneValidations\n} from './validations';\n\nconst withMagicLink = (httpClient: HttpClient) => ({\n\tverify: withVerifyValidations(\n\t\t(token: string): Promise<SdkResponse> =>\n\t\t\ttransformResponse(httpClient.post(apiPaths.magicLink.verify, { token }))\n\t),\n\n\tsignIn: Object.keys(DeliveryMethods).reduce(\n\t\t(acc, delivery) => ({\n\t\t\t...acc,\n\t\t\t[delivery]: withSignValidations(\n\t\t\t\t(externalId: string, URI: string): Promise<SdkResponse> =>\n\t\t\t\t\ttransformResponse(\n\t\t\t\t\t\thttpClient.post(pathJoin(apiPaths.magicLink.signIn, delivery), { externalId, URI })\n\t\t\t\t\t)\n\t\t\t)\n\t\t}),\n\t\t{}\n\t) as MagicLink[Routes.signIn],\n\n\tsignUp: Object.keys(DeliveryMethods).reduce(\n\t\t(acc, delivery) => ({\n\t\t\t...acc,\n\t\t\t[delivery]: withSignValidations(\n\t\t\t\t(externalId: string, URI: string, user?: User): Promise<SdkResponse> =>\n\t\t\t\t\ttransformResponse(\n\t\t\t\t\t\thttpClient.post(pathJoin(apiPaths.magicLink.signUp, delivery), {\n\t\t\t\t\t\t\texternalId,\n\t\t\t\t\t\t\tURI,\n\t\t\t\t\t\t\tuser\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t)\n\t\t}),\n\t\t{}\n\t) as MagicLink[Routes.signUp],\n\n\tsignUpOrIn: Object.keys(DeliveryMethods).reduce(\n\t\t(acc, delivery) => ({\n\t\t\t...acc,\n\t\t\t[delivery]: withSignValidations(\n\t\t\t\t(externalId: string, URI: string): Promise<SdkResponse> =>\n\t\t\t\t\ttransformResponse(\n\t\t\t\t\t\thttpClient.post(pathJoin(apiPaths.magicLink.signUpOrIn, delivery), { externalId, URI })\n\t\t\t\t\t)\n\t\t\t)\n\t\t}),\n\t\t{}\n\t) as MagicLink[Routes.signIn],\n\n\tupdate: {\n\t\temail: withUpdateEmailValidations(\n\t\t\t(identifier: string, email: string, uri: string, token?: string): Promise<SdkResponse> =>\n\t\t\t\ttransformResponse(\n\t\t\t\t\thttpClient.post(\n\t\t\t\t\t\tapiPaths.magicLink.update.email,\n\t\t\t\t\t\t{ externalId: identifier, email, URI: uri },\n\t\t\t\t\t\t{ token }\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t),\n\t\tphone: Object.keys(DeliveryPhone).reduce(\n\t\t\t(acc, delivery) => ({\n\t\t\t\t...acc,\n\t\t\t\t[delivery]: withUpdatePhoneValidations(\n\t\t\t\t\t(externalId: string, phone: string, uri: string, token?: string): Promise<SdkResponse> =>\n\t\t\t\t\t\ttransformResponse(\n\t\t\t\t\t\t\thttpClient.post(\n\t\t\t\t\t\t\t\tpathJoin(apiPaths.magicLink.update.phone, delivery),\n\t\t\t\t\t\t\t\t{ externalId, phone, URI: uri },\n\t\t\t\t\t\t\t\t{ token }\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t}),\n\t\t\t{}\n\t\t) as MagicLink[Routes.updatePhone]\n\t},\n\n\tcrossDevice: withMagicLinkCrossDevice(httpClient)\n});\n\nexport default withMagicLink;\n","import { apiPaths } from '../constants';\nimport { HttpClient } from '../httpClient';\nimport { transformResponse } from './helpers';\nimport { SdkResponse } from './types';\nimport { stringNonEmpty, withValidations } from './validations';\n\nconst withExchangeValidations = withValidations(stringNonEmpty('code'));\n\nconst withExchange = (httpClient: HttpClient) => ({\n\texchange: withExchangeValidations(\n\t\t(code: string): Promise<SdkResponse> =>\n\t\t\ttransformResponse(httpClient.get(apiPaths.exchange, { queryParams: { code } }))\n\t)\n});\n\nexport default withExchange;\n","import { SdkResponse } from '../types';\n\nenum OAuthProviders {\n\tfacebook = 'facebook',\n\tgithub = 'github',\n\tgoogle = 'google',\n\tmicrosoft = 'microsoft',\n\tgitlab = 'gitlab',\n\tapple = 'apple'\n}\n\ntype StartFn = <B extends { redirect: boolean }>(\n\tredirectURL?: string,\n\tconfig?: B\n) => Promise<B extends { redirect: true } ? undefined : SdkResponse>;\ntype VerifyFn = (code: string) => Promise<SdkResponse>;\n\ntype Providers<T> = Record<keyof typeof OAuthProviders, T>;\n\nexport type Oauth = {\n\tstart: Providers<StartFn>;\n\tverify: Providers<VerifyFn>;\n};\n\nexport { OAuthProviders };\n","import { apiPaths } from '../../constants';\nimport { HttpClient } from '../../httpClient';\nimport withExchange from '../exchange';\nimport { transformResponse } from '../helpers';\nimport { Oauth, OAuthProviders } from './types';\n\nconst withOauth = (httpClient: HttpClient) => ({\n\tstart: Object.keys(OAuthProviders).reduce(\n\t\t(acc, provider) => ({\n\t\t\t...acc,\n\t\t\t// eslint-disable-next-line consistent-return\n\t\t\t[provider]: async (redirectUrl?: string, { redirect = false } = {}) => {\n\t\t\t\tconst resp = await httpClient.get(apiPaths.oauth.start, {\n\t\t\t\t\tqueryParams: { provider, ...(redirectUrl && { redirectURL: redirectUrl }) }\n\t\t\t\t});\n\t\t\t\tif (!redirect || !resp.ok) return transformResponse(Promise.resolve(resp));\n\n\t\t\t\tconst { url } = await resp.json();\n\t\t\t\twindow.location.href = url;\n\t\t\t}\n\t\t}),\n\t\t{}\n\t) as Oauth['start'],\n\n\t...withExchange(httpClient)\n});\n\nexport default withOauth;\n","import { apiPaths } from '../constants';\nimport { HttpClient } from '../httpClient';\nimport { transformResponse } from './helpers';\nimport { stringNonEmpty, withValidations } from './validations';\n\nconst withStartValidations = withValidations(stringNonEmpty('flowId'));\nconst withNextValidations = withValidations(\n\tstringNonEmpty('executionId'),\n\tstringNonEmpty('stepId'),\n\tstringNonEmpty('interactionId')\n);\n\nconst withFlow = (httpClient: HttpClient) => ({\n\tstart: withStartValidations((flowId: string) =>\n\t\ttransformResponse(httpClient.post(apiPaths.flow.start, { flowId }))\n\t),\n\tnext: withNextValidations(\n\t\t(\n\t\t\texecutionId: string,\n\t\t\tstepId: string,\n\t\t\tinteractionId: string,\n\t\t\tinput?: Record<string, FormDataEntryValue>\n\t\t) => {\n\t\t\treturn transformResponse(\n\t\t\t\thttpClient.post(apiPaths.flow.next, { executionId, stepId, interactionId, input })\n\t\t\t);\n\t\t}\n\t)\n});\n\nexport default withFlow;\n","import { apiPaths } from '../constants';\nimport { HttpClient } from '../httpClient';\nimport withExchange from './exchange';\nimport { transformResponse } from './helpers';\nimport { SdkResponse } from './types';\nimport { stringNonEmpty, withValidations } from './validations';\n\nconst withStartValidations = withValidations(stringNonEmpty('tenant'));\n\ntype StartFn = <B extends { redirect: boolean }>(\n\ttenantNameOrEmail: string,\n\tconfig?: B\n) => Promise<B extends { redirect: true } ? undefined : SdkResponse>;\n\nconst withSaml = (httpClient: HttpClient) => ({\n\t// eslint-disable-next-line consistent-return\n\tstart: withStartValidations(\n\t\tasync (tenantNameOrEmail: string, redirectUrl?: string, { redirect = false } = {}) => {\n\t\t\tconst resp = await httpClient.get(apiPaths.saml.start, {\n\t\t\t\tqueryParams: { tenant: tenantNameOrEmail, redirectURL: redirectUrl }\n\t\t\t});\n\n\t\t\tif (!redirect || !resp.ok) return transformResponse(Promise.resolve(resp));\n\n\t\t\tconst { url } = await resp.json();\n\t\t\twindow.location.href = url;\n\t\t}\n\t) as StartFn,\n\n\t...withExchange(httpClient)\n});\n\nexport default withSaml;\n","import { apiPaths } from '../constants';\nimport { HttpClient } from '../httpClient';\nimport { transformResponse } from './helpers';\nimport { User, SdkResponse } from './types';\nimport { stringNonEmpty, withValidations } from './validations';\n\nconst identifierValidations = stringNonEmpty('identifier');\nconst withVerifyValidations = withValidations(identifierValidations, stringNonEmpty('code'));\nconst withSignUpValidations = withValidations(identifierValidations);\nconst withUpdateValidations = withValidations(identifierValidations);\n\nconst withTotp = (httpClient: HttpClient) => ({\n\tsignUp: withSignUpValidations(\n\t\t(identifier: string, user?: User): Promise<SdkResponse> =>\n\t\t\ttransformResponse(httpClient.post(apiPaths.totp.signUp, { externalId: identifier, user }))\n\t),\n\n\tverify: withVerifyValidations(\n\t\t(identifier: string, code: string): Promise<SdkResponse> =>\n\t\t\ttransformResponse(httpClient.post(apiPaths.totp.verify, { externalId: identifier, code }))\n\t),\n\n\tupdate: withUpdateValidations(\n\t\t(identifier: string, token?: string): Promise<SdkResponse> =>\n\t\t\ttransformResponse(\n\t\t\t\thttpClient.post(apiPaths.totp.update, { externalId: identifier }, { token })\n\t\t\t)\n\t)\n});\n\nexport default withTotp;\n","import { apiPaths } from '../constants';\nimport { HttpClient } from '../httpClient';\nimport { transformResponse } from './helpers';\nimport { SdkResponse } from './types';\nimport { stringNonEmpty, withValidations } from './validations';\n\nconst identifierValidations = stringNonEmpty('identifier');\nconst originValidations = stringNonEmpty('origin');\n\nconst withSignUpStartValidations = withValidations(\n\tidentifierValidations,\n\toriginValidations,\n\tstringNonEmpty('name')\n);\nconst withSignInStartValidations = withValidations(identifierValidations, originValidations);\nconst withUpdateStartValidations = withValidations(\n\tidentifierValidations,\n\toriginValidations,\n\tstringNonEmpty('token')\n);\nconst withFinishValidations = withValidations(\n\tstringNonEmpty('transactionId'),\n\tstringNonEmpty('response')\n);\n\nconst withWebauthn = (httpClient: HttpClient) => ({\n\tsignUp: {\n\t\tstart: withSignUpStartValidations(\n\t\t\t(identifier: string, origin: string, name: string): Promise<SdkResponse> =>\n\t\t\t\ttransformResponse(\n\t\t\t\t\thttpClient.post(apiPaths.webauthn.signUp.start, {\n\t\t\t\t\t\tuser: {\n\t\t\t\t\t\t\texternalId: identifier,\n\t\t\t\t\t\t\tname\n\t\t\t\t\t\t},\n\t\t\t\t\t\torigin\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t),\n\n\t\tfinish: withFinishValidations(\n\t\t\t(transactionId: string, response: string): Promise<SdkResponse> =>\n\t\t\t\ttransformResponse(\n\t\t\t\t\thttpClient.post(apiPaths.webauthn.signUp.finish, { transactionId, response })\n\t\t\t\t)\n\t\t)\n\t},\n\n\tsignIn: {\n\t\tstart: withSignInStartValidations(\n\t\t\t(identifier: string, origin: string): Promise<SdkResponse> =>\n\t\t\t\ttransformResponse(\n\t\t\t\t\thttpClient.post(apiPaths.webauthn.signIn.start, { externalId: identifier, origin })\n\t\t\t\t)\n\t\t),\n\n\t\tfinish: withFinishValidations(\n\t\t\t(transactionId: string, response: string): Promise<SdkResponse> =>\n\t\t\t\ttransformResponse(\n\t\t\t\t\thttpClient.post(apiPaths.webauthn.signIn.finish, { transactionId, response })\n\t\t\t\t)\n\t\t)\n\t},\n\n\tupdate: {\n\t\tstart: withUpdateStartValidations(\n\t\t\t(identifier: string, origin: string, token: string): Promise<SdkResponse> =>\n\t\t\t\ttransformResponse(\n\t\t\t\t\thttpClient.post(\n\t\t\t\t\t\tapiPaths.webauthn.update.start,\n\t\t\t\t\t\t{ externalId: identifier, origin },\n\t\t\t\t\t\t{ token }\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t),\n\n\t\tfinish: withFinishValidations(\n\t\t\t(transactionId: string, response: string): Promise<SdkResponse> =>\n\t\t\t\ttransformResponse(\n\t\t\t\t\thttpClient.post(apiPaths.webauthn.update.finish, { transactionId, response })\n\t\t\t\t)\n\t\t)\n\t}\n});\n\nexport default withWebauthn;\n","import withAccessKeys from './accesskey';\nimport withOtp from './otp';\nimport { HttpClient } from '../httpClient';\nimport isJwtExpired, { transformResponse } from './helpers';\nimport { stringNonEmpty, withValidations } from './validations';\nimport withMagicLink from './magicLink';\nimport { apiPaths } from '../constants';\nimport withOauth from './oauth';\nimport withFlow from './flow';\nimport withSaml from './saml';\nimport withTotp from './totp';\nimport withWebauthn from './webauthn';\n\nconst withValidateValidations = withValidations(stringNonEmpty('token'));\n\nexport default (httpClient: HttpClient) => ({\n\taccessKey: withAccessKeys(httpClient),\n\totp: withOtp(httpClient),\n\tmagicLink: withMagicLink(httpClient),\n\toauth: withOauth(httpClient),\n\tsaml: withSaml(httpClient),\n\ttotp: withTotp(httpClient),\n\twebauthn: withWebauthn(httpClient),\n\tflow: withFlow(httpClient),\n\trefresh: (token?: string) => transformResponse(httpClient.get(apiPaths.refresh, { token })),\n\tlogout: (token?: string) => transformResponse(httpClient.get(apiPaths.logout, { token })),\n\tisJwtExpired: withValidateValidations(isJwtExpired),\n\thttpClient\n});\n","import { DEFAULT_BASE_API_URL } from './constants';\nimport createHttpClient from './httpClient';\nimport createSdk from './sdk';\nimport { OAuthProviders } from './sdk/oauth/types';\nimport { DeliveryMethods, Logger } from './sdk/types';\nimport { Hooks, HTTPMethods } from './httpClient/types';\nimport { stringNonEmpty, withValidations } from './sdk/validations';\nimport { hasPathValue } from './sdk/validations/validators';\n\nconst withSdkConfigValidations = withValidations([\n\thasPathValue('projectId', stringNonEmpty('projectId'))\n]);\n\nconst sdk = withSdkConfigValidations(\n\t({ projectId, logger, baseUrl, hooks, cookiePolicy }: { projectId: string; logger?: Logger; baseUrl?: string; hooks?: Hooks; cookiePolicy?: RequestCredentials }) =>\n\t\tcreateSdk(createHttpClient({ baseUrl: baseUrl || DEFAULT_BASE_API_URL, projectId, logger, hooks, cookiePolicy }))\n);\n\nconst sdkWithAttributes = sdk as typeof sdk & { DeliveryMethods: typeof DeliveryMethods };\n\nsdkWithAttributes.DeliveryMethods = DeliveryMethods;\n\nexport default sdkWithAttributes;\n\nexport type DeliveryMethod = keyof typeof DeliveryMethods;\nexport type OAuthProvider = keyof typeof OAuthProviders;\nexport type { HTTPMethods };\nexport type { SdkResponse, AuthInfo } from './sdk/types';\n"],"names":["apiPaths","exchange","verify","signIn","signUp","update","email","phone","signUpOrIn","session","start","finish","next","HTTPMethods","httpLogBuilder","msg","headers","headersObj","entries","Object","fromEntries","Headers","JSON","stringify","this","body","Body","url","Url","toString","method","Method","title","Title","status","Status","build","keys","flatMap","key","join","createFetchLogger","logger","receivedFetch","fetchInternal","fetch","Error","async","args","log","buildRequestLog","resp","ok","respBody","text","Promise","resolve","json","parse","statusText","buildResponseLog","mergeHeaders","sources","reduce","acc","source","srcArr","Array","isArray","from","getSrcArr","_","value","serializeBody","undefined","createAuthorizationHeader","projectId","token","bearer","Authorization","createHttpClient","baseUrl","baseConfig","hooks","cookiePolicy","fetchWithLogger","sendRequest","config","requestConfig","beforeRequest","path","queryParams","res","URL","search","URLSearchParams","urlBuilder","baseHeaders","credentials","afterRequest","clone","get","post","put","delete","isJwtExpired","exp","jwtDecode","Date","getTime","pathJoin","replace","transformResponse","response","ret","code","data","error","createValidator","rule","defaultMsg","val","createValidation","validators","validate","forEach","validator","errMsg","regexMatch","regex","test","validateEmail","validatePhone","isEmail","isPhone","isNotEmpty","min","length","isString","withValidations","argsRules","fn","rulesArr","i","stringNonEmpty","fieldName","stringEmail","stringPhone","withExchangeValidations","withAccessKeys","httpClient","accessKey","DeliveryPhone","DeliveryMethods","Routes","identifierValidations","withVerifyValidations","withSignValidations","withUpdatePhoneValidations","withUpdateEmailValidations","withOtp","delivery","assign","externalId","user","identifier","uriValidations","withWaitForSessionValidations","withMagicLinkCrossDevice","URI","crossDevice","waitForSession","pendingRef","pollingIntervalMs","timeoutMs","Math","max","normalizeWaitForSessionConfig","timeout","interval","setInterval","clearInterval","clearTimeout","setTimeout","message","uri","withMagicLink","withExchange","OAuthProviders","withOauth","provider","redirectUrl","redirect","redirectURL","window","location","href","withStartValidations","withNextValidations","withFlow","flowId","executionId","stepId","interactionId","input","withSaml","tenantNameOrEmail","tenant","withSignUpValidations","withUpdateValidations","withTotp","originValidations","withSignUpStartValidations","withSignInStartValidations","withUpdateStartValidations","withFinishValidations","withWebauthn","origin","name","transactionId","withValidateValidations","rules","sdkWithAttributes","validatePathValue","withSdkConfigValidations","createSdk","otp","magicLink","oauth","saml","totp","webauthn","flow","refresh","logout"],"mappings":"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"}
|
package/dist/index.umd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).descopeSdk=t()}(this,(function(){"use strict";var e={verify:"/v1/auth/otp/verify",signIn:"/v1/auth/otp/signin",signUp:"/v1/auth/otp/signup",update:{email:"/v1/auth/otp/update/email",phone:"/v1/auth/otp/update/phone"},signUpOrIn:"/v1/auth/otp/signup-in"},t={verify:"/v1/auth/magiclink/verify",signIn:"/v1/auth/magiclink/signin",signUp:"/v1/auth/magiclink/signup",session:"/v1/auth/magiclink/pending-session",update:{email:"/v1/auth/magiclink/update/email",phone:"/v1/auth/magiclink/update/email"},signUpOrIn:"/v1/auth/magiclink/signup-in"},n={start:"/v1/auth/oauth/authorize"},r={start:"/v1/auth/saml/authorize"},o={verify:"/v1/auth/totp/verify",signUp:"/v1/auth/totp/signup",update:"/v1/user/totp/update"},s={signUp:{start:"/v1/auth/webauthn/signup/start",finish:"/v1/auth/webauthn/signup/finish"},signIn:{start:"/v1/auth/webauthn/signin/start",finish:"/v1/auth/webauthn/signin/finish"},update:{start:"v1/auth/webauthn/update/start",finish:"/v1/auth/webauthn/update/finish"}},a="/v1/auth/refresh",i="/v1/auth/logoutall",u={start:"/v1/flow/start",next:"/v1/flow/next"},c="/v1/auth/exchange";const p=1e3,d=6e5;var l;!function(e){e.get="GET",e.delete="DELETE",e.post="POST",e.put="PUT"}(l||(l={}));const h=()=>{const e={};return{headers(t){const n="function"==typeof t.entries?Object.fromEntries(t.entries()):t;return e.Headers=JSON.stringify(n),this},body(t){return e.Body=t,this},url(t){return e.Url=t.toString(),this},method(t){return e.Method=t,this},title(t){return e.Title=t,this},status(t){return e.Status=t,this},build:()=>Object.keys(e).flatMap((t=>e[t]?[`${"Title"!==t?`${t}: `:""}${e[t]}`]:[])).join("\n")}},f=(e,t)=>{const n=t||fetch;if(!n)throw new Error("fetch is not defined");return e?async(...t)=>{e.log((e=>h().title("Request").url(e[0]).method(e[1].method).headers(e[1].headers).body(e[1].body).build())(t));const r=await n(...t);return e[r.ok?"log":"error"](await(async e=>{const t=await e.text();return e.text=()=>Promise.resolve(t),e.json=()=>Promise.resolve(JSON.parse(t)),h().title("Response").url(e.url.toString()).status(`${e.status} ${e.statusText}`).headers(e.headers).body(t).build()})(r)),r}:n},g=(...e)=>new Headers(e.reduce(((e,t)=>{const n=(e=>Array.isArray(e)?e:e instanceof Headers?Array.from(e.entries()):e?Object.entries(e):[])(t);return n.reduce(((t,[n,r])=>(e[n]=r,e)),e),e}),{})),v=e=>void 0===e?void 0:JSON.stringify(e),y=(e,t="")=>{let n=e;return""!==t&&(n=n+":"+t),{Authorization:`Bearer ${n}`}},b=({baseUrl:e,projectId:t,baseConfig:n,logger:r,hooks:o,cookiePolicy:s})=>{const a=f(r),i=async r=>{const i=(null==o?void 0:o.beforeRequest)?o.beforeRequest(r):r,{path:u,body:c,headers:p,queryParams:d,method:l,token:h}=i,f=await a((({path:e,baseUrl:t,queryParams:n})=>{const r=new URL(e,t);return n&&(r.search=new URLSearchParams(n).toString()),r})({path:u,baseUrl:e,queryParams:d}),{headers:g(y(t,h),(null==n?void 0:n.baseHeaders)||{},p),method:l,body:v(c),credentials:s||"include"});return(null==o?void 0:o.afterRequest)&&o.afterRequest(r,null==f?void 0:f.clone()),f};return{get:(e,{headers:t,queryParams:n,token:r}={})=>i({path:e,headers:t,queryParams:n,body:void 0,method:l.get,token:r}),post:(e,t,{headers:n,queryParams:r,token:o}={})=>i({path:e,headers:n,queryParams:r,body:t,method:l.post,token:o}),put:(e,t,{headers:n,queryParams:r,token:o}={})=>i({path:e,headers:n,queryParams:r,body:t,method:l.put,token:o}),delete:(e,t,{headers:n,queryParams:r,token:o}={})=>i({path:e,headers:n,queryParams:r,body:t,method:l.delete,token:o})}};function m(e){this.message=e}m.prototype=new Error,m.prototype.name="InvalidCharacterError";var I="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(e){var t=String(e).replace(/=+$/,"");if(t.length%4==1)throw new m("'atob' failed: The string to be decoded is not correctly encoded.");for(var n,r,o=0,s=0,a="";r=t.charAt(s++);~r&&(n=o%4?64*n+r:r,o++%4)?a+=String.fromCharCode(255&n>>(-2*o&6)):0)r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(r);return a};function j(e){var t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64url string!"}try{return function(e){return decodeURIComponent(I(e).replace(/(.)/g,(function(e,t){var n=t.charCodeAt(0).toString(16).toUpperCase();return n.length<2&&(n="0"+n),"%"+n})))}(t)}catch(e){return I(t)}}function w(e){this.message=e}w.prototype=new Error,w.prototype.name="InvalidTokenError";const k=e=>{if("string"!=typeof e||!e)throw new Error("Invalid token provided");const{exp:t}=function(e,t){if("string"!=typeof e)throw new w("Invalid token specified");var n=!0===(t=t||{}).header?0:1;try{return JSON.parse(j(e.split(".")[n]))}catch(e){throw new w("Invalid token specified: "+e.message)}}(e);return(new Date).getTime()/1e3>t},O=(...e)=>e.join("/").replace(/\/{2,}/g,"/"),_=async e=>{const t=await e,n={code:t.status,ok:t.ok,response:t},r=await t.json();return t.ok?n.data=r:n.error=r,n};var U,x,P;!function(e){e.sms="sms",e.whatsapp="whatsapp"}(U||(U={})),function(e){e.email="email",e.sms="sms",e.whatsapp="whatsapp"}(x||(x={})),function(e){e.signUp="signup",e.signIn="signin",e.verify="verify"}(P||(P={}));const R=(e,t)=>(n=t)=>t=>!e(t)&&n.replace("{val}",t),S=(...e)=>({validate:t=>(e.forEach((e=>{const n=e(t);if(n)throw new Error(n)})),!0)});var $="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},q="__lodash_hash_undefined__",E="[object Function]",T="[object GeneratorFunction]",M=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,A=/^\w*$/,C=/^\./,D=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,z=/\\(\\)?/g,L=/^\[object .+?Constructor\]$/,F="object"==typeof $&&$&&$.Object===Object&&$,J="object"==typeof self&&self&&self.Object===Object&&self,H=F||J||Function("return this")();var N,Z=Array.prototype,B=Function.prototype,G=Object.prototype,K=H["__core-js_shared__"],Q=(N=/[^.]+$/.exec(K&&K.keys&&K.keys.IE_PROTO||""))?"Symbol(src)_1."+N:"",V=B.toString,W=G.hasOwnProperty,X=G.toString,Y=RegExp("^"+V.call(W).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),ee=H.Symbol,te=Z.splice,ne=he(H,"Map"),re=he(Object,"create"),oe=ee?ee.prototype:void 0,se=oe?oe.toString:void 0;function ae(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function ie(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function ue(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function ce(e,t){for(var n,r,o=e.length;o--;)if((n=e[o][0])===(r=t)||n!=n&&r!=r)return o;return-1}function pe(e,t){var n;t=function(e,t){if(ye(e))return!1;var n=typeof e;if("number"==n||"symbol"==n||"boolean"==n||null==e||me(e))return!0;return A.test(e)||!M.test(e)||null!=t&&e in Object(t)}(t,e)?[t]:ye(n=t)?n:fe(n);for(var r=0,o=t.length;null!=e&&r<o;)e=e[ge(t[r++])];return r&&r==o?e:void 0}function de(e){if(!be(e)||(t=e,Q&&Q in t))return!1;var t,n=function(e){var t=be(e)?X.call(e):"";return t==E||t==T}(e)||function(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}(e)?Y:L;return n.test(function(e){if(null!=e){try{return V.call(e)}catch(e){}try{return e+""}catch(e){}}return""}(e))}function le(e,t){var n,r,o=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?o["string"==typeof t?"string":"hash"]:o.map}function he(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return de(n)?n:void 0}ae.prototype.clear=function(){this.__data__=re?re(null):{}},ae.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},ae.prototype.get=function(e){var t=this.__data__;if(re){var n=t[e];return n===q?void 0:n}return W.call(t,e)?t[e]:void 0},ae.prototype.has=function(e){var t=this.__data__;return re?void 0!==t[e]:W.call(t,e)},ae.prototype.set=function(e,t){return this.__data__[e]=re&&void 0===t?q:t,this},ie.prototype.clear=function(){this.__data__=[]},ie.prototype.delete=function(e){var t=this.__data__,n=ce(t,e);return!(n<0)&&(n==t.length-1?t.pop():te.call(t,n,1),!0)},ie.prototype.get=function(e){var t=this.__data__,n=ce(t,e);return n<0?void 0:t[n][1]},ie.prototype.has=function(e){return ce(this.__data__,e)>-1},ie.prototype.set=function(e,t){var n=this.__data__,r=ce(n,e);return r<0?n.push([e,t]):n[r][1]=t,this},ue.prototype.clear=function(){this.__data__={hash:new ae,map:new(ne||ie),string:new ae}},ue.prototype.delete=function(e){return le(this,e).delete(e)},ue.prototype.get=function(e){return le(this,e).get(e)},ue.prototype.has=function(e){return le(this,e).has(e)},ue.prototype.set=function(e,t){return le(this,e).set(e,t),this};var fe=ve((function(e){var t;e=null==(t=e)?"":function(e){if("string"==typeof e)return e;if(me(e))return se?se.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}(t);var n=[];return C.test(e)&&n.push(""),e.replace(D,(function(e,t,r,o){n.push(r?o.replace(z,"$1"):t||e)})),n}));function ge(e){if("string"==typeof e||me(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function ve(e,t){if("function"!=typeof e||t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],s=n.cache;if(s.has(o))return s.get(o);var a=e.apply(this,r);return n.cache=s.set(o,a),a};return n.cache=new(ve.Cache||ue),n}ve.Cache=ue;var ye=Array.isArray;function be(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function me(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==X.call(e)}var Ie=function(e,t,n){var r=null==e?void 0:pe(e,t);return void 0===r?n:r};const je=e=>t=>e.test(t),we=je(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/),ke=je(/^\+[1-9]{1}[0-9]{3,14}$/),Oe=R(we,'"{val}" is not a valid email'),_e=R(ke,'"{val}" is not a valid phone number'),Ue=R((xe=1,e=>e.length>=xe),"Minimum length is 1");var xe;const Pe=R((e=>"string"==typeof e),"Input is not a string"),Re=(...e)=>t=>(...n)=>(e.forEach(((e,t)=>S(...e).validate(n[t]))),t(...n)),Se=e=>[Pe(`"${e}" must be a string`),Ue(`"${e}" must not be empty`)],$e=e=>[Pe(`"${e}" must be a string`),Oe()],qe=e=>[Pe(`"${e}" must be a string`),_e()];var Ee;!function(e){e.signUp="signup",e.signIn="signin",e.verify="verify",e.updatePhone="updatePhone"}(Ee||(Ee={}));const Te=Se("identifier"),Me=Re(Te,Se("code")),Ae=Re(Te),Ce=Re(Te,qe("phone")),De=Re(Te,$e("email")),ze=t=>({verify:Object.keys(x).reduce(((n,r)=>Object.assign(Object.assign({},n),{[r]:Me(((n,o)=>_(t.post(O(e.verify,r),{code:o,externalId:n}))))})),{}),signIn:Object.keys(x).reduce(((n,r)=>Object.assign(Object.assign({},n),{[r]:Ae((n=>_(t.post(O(e.signIn,r),{externalId:n}))))})),{}),signUp:Object.keys(x).reduce(((n,r)=>Object.assign(Object.assign({},n),{[r]:Ae(((n,o)=>_(t.post(O(e.signUp,r),{externalId:n,user:o}))))})),{}),signUpOrIn:Object.keys(x).reduce(((n,r)=>Object.assign(Object.assign({},n),{[r]:Ae((n=>_(t.post(O(e.signUpOrIn,r),{externalId:n}))))})),{}),update:{email:De(((n,r,o)=>_(t.post(e.update.email,{externalId:n,email:r},{token:o})))),phone:Object.keys(U).reduce(((n,r)=>Object.assign(Object.assign({},n),{[r]:Ce(((n,o,s)=>_(t.post(O(e.update.phone,r),{externalId:n,phone:o},{token:s}))))})),{})}}),Le=Se("identifier"),Fe=Se("uri"),Je=Re(Se("token")),He=Re(Le,Fe),Ne=Re(Se("pendingRef")),Ze=Re(Le,qe("phone"),Fe),Be=Re(Le,$e("email"),Fe),Ge=e=>({verify:Je((n=>_(e.post(t.verify,{token:n})))),signIn:Object.keys(x).reduce(((n,r)=>Object.assign(Object.assign({},n),{[r]:He(((n,o)=>_(e.post(O(t.signIn,r),{externalId:n,URI:o,crossDevice:!0}))))})),{}),signUpOrIn:Object.keys(x).reduce(((n,r)=>Object.assign(Object.assign({},n),{[r]:He(((n,o)=>_(e.post(O(t.signUpOrIn,r),{externalId:n,URI:o,crossDevice:!0}))))})),{}),signUp:Object.keys(x).reduce(((n,r)=>Object.assign(Object.assign({},n),{[r]:He(((n,o,s)=>_(e.post(O(t.signUp,r),{externalId:n,URI:o,user:s,crossDevice:!0}))))})),{}),waitForSession:Ne(((n,r)=>new Promise((o=>{const{pollingIntervalMs:s,timeoutMs:a}=(({pollingIntervalMs:e=1e3,timeoutMs:t=6e5}={})=>({pollingIntervalMs:Math.max(e||p,p),timeoutMs:Math.min(t||d,d)}))(r);let i;const u=setInterval((async()=>{const r=await e.post(t.session,{pendingRef:n});r.ok&&(clearInterval(u),i&&clearTimeout(i),o(_(Promise.resolve(r))))}),s);i=setTimeout((()=>{o({error:{message:`Session polling timeout exceeded: ${a}ms`,code:"0"},ok:!1}),clearInterval(u)}),a)})))),update:{email:Be(((n,r,o,s)=>_(e.post(t.update.email,{externalId:n,email:r,URI:o,crossDevice:!0},{token:s})))),phone:Object.keys(U).reduce(((n,r)=>Object.assign(Object.assign({},n),{[r]:Ze(((n,o,s,a)=>_(e.post(O(t.update.phone,r),{externalId:n,phone:o,URI:s,crossDevice:!0},{token:a}))))})),{})}}),Ke=e=>({verify:Je((n=>_(e.post(t.verify,{token:n})))),signIn:Object.keys(x).reduce(((n,r)=>Object.assign(Object.assign({},n),{[r]:He(((n,o)=>_(e.post(O(t.signIn,r),{externalId:n,URI:o}))))})),{}),signUp:Object.keys(x).reduce(((n,r)=>Object.assign(Object.assign({},n),{[r]:He(((n,o,s)=>_(e.post(O(t.signUp,r),{externalId:n,URI:o,user:s}))))})),{}),signUpOrIn:Object.keys(x).reduce(((n,r)=>Object.assign(Object.assign({},n),{[r]:He(((n,o)=>_(e.post(O(t.signUpOrIn,r),{externalId:n,URI:o}))))})),{}),update:{email:Be(((n,r,o,s)=>_(e.post(t.update.email,{externalId:n,email:r,URI:o},{token:s})))),phone:Object.keys(U).reduce(((n,r)=>Object.assign(Object.assign({},n),{[r]:Ze(((n,o,s,a)=>_(e.post(O(t.update.phone,r),{externalId:n,phone:o,URI:s},{token:a}))))})),{})},crossDevice:Ge(e)}),Qe=Re(Se("code")),Ve=e=>({exchange:Qe((t=>_(e.get(c,{queryParams:{code:t}}))))});var We;!function(e){e.facebook="facebook",e.github="github",e.google="google",e.microsoft="microsoft",e.gitlab="gitlab",e.apple="apple"}(We||(We={}));const Xe=e=>Object.assign({start:Object.keys(We).reduce(((t,r)=>Object.assign(Object.assign({},t),{[r]:async(t,{redirect:o=!1}={})=>{const s=await e.get(n.start,{queryParams:Object.assign({provider:r},t&&{redirectURL:t})});if(!o||!s.ok)return _(Promise.resolve(s));const{url:a}=await s.json();window.location.href=a}})),{})},Ve(e)),Ye=Re(Se("flowId")),et=Re(Se("executionId"),Se("stepId"),Se("actionId")),tt=e=>({start:Ye((t=>_(e.post(u.start,{flowId:t})))),next:et(((t,n,r,o)=>_(e.post(u.next,{executionId:t,stepId:n,interactionId:r,input:o}))))}),nt=Re(Se("tenant")),rt=e=>Object.assign({start:nt((async(t,n,{redirect:o=!1}={})=>{const s=await e.get(r.start,{queryParams:{tenant:t,redirectURL:n}});if(!o||!s.ok)return _(Promise.resolve(s));const{url:a}=await s.json();window.location.href=a}))},Ve(e)),ot=Se("identifier"),st=Re(ot,Se("code")),at=Re(ot),it=Re(ot),ut=e=>({signUp:at(((t,n)=>_(e.post(o.signUp,{externalId:t,user:n})))),verify:st(((t,n)=>_(e.post(o.verify,{externalId:t,code:n})))),update:it(((t,n)=>_(e.post(o.update,{externalId:t},{token:n}))))}),ct=Se("identifier"),pt=Se("origin"),dt=Re(ct,pt,Se("name")),lt=Re(ct,pt),ht=Re(ct,pt,Se("token")),ft=Re(Se("transactionId"),Se("response")),gt=e=>({signUp:{start:dt(((t,n,r)=>_(e.post(s.signUp.start,{user:{externalId:t,name:r},origin:n})))),finish:ft(((t,n)=>_(e.post(s.signUp.finish,{transactionId:t,response:n}))))},signIn:{start:lt(((t,n)=>_(e.post(s.signIn.start,{externalId:t,origin:n})))),finish:ft(((t,n)=>_(e.post(s.signIn.finish,{transactionId:t,response:n}))))},update:{start:ht(((t,n,r)=>_(e.post(s.update.start,{externalId:t,origin:n},{token:r})))),finish:ft(((t,n)=>_(e.post(s.update.finish,{transactionId:t,response:n}))))}}),vt=Re(Se("token"));var yt,bt;const mt=Re([(yt="projectId",bt=Se("projectId"),R(((e,t)=>n=>S(...t).validate(Ie(n,e)))(yt,bt))())])((({projectId:e,logger:t,baseUrl:n,hooks:r,cookiePolicy:o})=>{return s=b({baseUrl:n||"https://api.descope.com",projectId:e,logger:t,hooks:r,cookiePolicy:o}),{otp:ze(s),magicLink:Ke(s),oauth:Xe(s),saml:rt(s),totp:ut(s),webauthn:gt(s),flow:tt(s),refresh:e=>_(s.get(a,{token:e})),logout:e=>_(s.get(i,{token:e})),isJwtExpired:vt(k),httpClient:s};var s}));return mt.DeliveryMethods=x,mt}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).descopeSdk=t()}(this,(function(){"use strict";var e={exchange:"/v1/auth/accesskey/exchange"},t={verify:"/v1/auth/otp/verify",signIn:"/v1/auth/otp/signin",signUp:"/v1/auth/otp/signup",update:{email:"/v1/auth/otp/update/email",phone:"/v1/auth/otp/update/phone"},signUpOrIn:"/v1/auth/otp/signup-in"},n={verify:"/v1/auth/magiclink/verify",signIn:"/v1/auth/magiclink/signin",signUp:"/v1/auth/magiclink/signup",session:"/v1/auth/magiclink/pending-session",update:{email:"/v1/auth/magiclink/update/email",phone:"/v1/auth/magiclink/update/email"},signUpOrIn:"/v1/auth/magiclink/signup-in"},r={start:"/v1/auth/oauth/authorize"},s={start:"/v1/auth/saml/authorize"},o={verify:"/v1/auth/totp/verify",signUp:"/v1/auth/totp/signup",update:"/v1/user/totp/update"},a={signUp:{start:"/v1/auth/webauthn/signup/start",finish:"/v1/auth/webauthn/signup/finish"},signIn:{start:"/v1/auth/webauthn/signin/start",finish:"/v1/auth/webauthn/signin/finish"},update:{start:"v1/auth/webauthn/update/start",finish:"/v1/auth/webauthn/update/finish"}},i="/v1/auth/refresh",c="/v1/auth/logoutall",u={start:"/v1/flow/start",next:"/v1/flow/next"},p="/v1/auth/exchange";const d=1e3,l=6e5;var h;!function(e){e.get="GET",e.delete="DELETE",e.post="POST",e.put="PUT"}(h||(h={}));const f=()=>{const e={};return{headers(t){const n="function"==typeof t.entries?Object.fromEntries(t.entries()):t;return e.Headers=JSON.stringify(n),this},body(t){return e.Body=t,this},url(t){return e.Url=t.toString(),this},method(t){return e.Method=t,this},title(t){return e.Title=t,this},status(t){return e.Status=t,this},build:()=>Object.keys(e).flatMap((t=>e[t]?[`${"Title"!==t?`${t}: `:""}${e[t]}`]:[])).join("\n")}},g=(e,t)=>{const n=t||fetch;if(!n)throw new Error("fetch is not defined");return e?async(...t)=>{e.log((e=>f().title("Request").url(e[0]).method(e[1].method).headers(e[1].headers).body(e[1].body).build())(t));const r=await n(...t);return e[r.ok?"log":"error"](await(async e=>{const t=await e.text();return e.text=()=>Promise.resolve(t),e.json=()=>Promise.resolve(JSON.parse(t)),f().title("Response").url(e.url.toString()).status(`${e.status} ${e.statusText}`).headers(e.headers).body(t).build()})(r)),r}:n},y=(...e)=>new Headers(e.reduce(((e,t)=>{const n=(e=>Array.isArray(e)?e:e instanceof Headers?Array.from(e.entries()):e?Object.entries(e):[])(t);return n.reduce(((t,[n,r])=>(e[n]=r,e)),e),e}),{})),v=e=>void 0===e?void 0:JSON.stringify(e),b=(e,t="")=>{let n=e;return""!==t&&(n=n+":"+t),{Authorization:`Bearer ${n}`}},m=({baseUrl:e,projectId:t,baseConfig:n,logger:r,hooks:s,cookiePolicy:o})=>{const a=g(r),i=async r=>{const i=(null==s?void 0:s.beforeRequest)?s.beforeRequest(r):r,{path:c,body:u,headers:p,queryParams:d,method:l,token:h}=i,f=await a((({path:e,baseUrl:t,queryParams:n})=>{const r=new URL(e,t);return n&&(r.search=new URLSearchParams(n).toString()),r})({path:c,baseUrl:e,queryParams:d}),{headers:y(b(t,h),(null==n?void 0:n.baseHeaders)||{},p),method:l,body:v(u),credentials:o||"include"});return(null==s?void 0:s.afterRequest)&&s.afterRequest(r,null==f?void 0:f.clone()),f};return{get:(e,{headers:t,queryParams:n,token:r}={})=>i({path:e,headers:t,queryParams:n,body:void 0,method:h.get,token:r}),post:(e,t,{headers:n,queryParams:r,token:s}={})=>i({path:e,headers:n,queryParams:r,body:t,method:h.post,token:s}),put:(e,t,{headers:n,queryParams:r,token:s}={})=>i({path:e,headers:n,queryParams:r,body:t,method:h.put,token:s}),delete:(e,t,{headers:n,queryParams:r,token:s}={})=>i({path:e,headers:n,queryParams:r,body:t,method:h.delete,token:s})}};function I(e){this.message=e}I.prototype=new Error,I.prototype.name="InvalidCharacterError";var j="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(e){var t=String(e).replace(/=+$/,"");if(t.length%4==1)throw new I("'atob' failed: The string to be decoded is not correctly encoded.");for(var n,r,s=0,o=0,a="";r=t.charAt(o++);~r&&(n=s%4?64*n+r:r,s++%4)?a+=String.fromCharCode(255&n>>(-2*s&6)):0)r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(r);return a};function k(e){var t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64url string!"}try{return function(e){return decodeURIComponent(j(e).replace(/(.)/g,(function(e,t){var n=t.charCodeAt(0).toString(16).toUpperCase();return n.length<2&&(n="0"+n),"%"+n})))}(t)}catch(e){return j(t)}}function w(e){this.message=e}w.prototype=new Error,w.prototype.name="InvalidTokenError";const O=e=>{if("string"!=typeof e||!e)throw new Error("Invalid token provided");const{exp:t}=function(e,t){if("string"!=typeof e)throw new w("Invalid token specified");var n=!0===(t=t||{}).header?0:1;try{return JSON.parse(k(e.split(".")[n]))}catch(e){throw new w("Invalid token specified: "+e.message)}}(e);return(new Date).getTime()/1e3>t},_=(...e)=>e.join("/").replace(/\/{2,}/g,"/"),U=async e=>{const t=await e,n={code:t.status,ok:t.ok,response:t},r=await t.json();return t.ok?n.data=r:n.error=r,n},x=(e,t)=>(n=t)=>t=>!e(t)&&n.replace("{val}",t),P=(...e)=>({validate:t=>(e.forEach((e=>{const n=e(t);if(n)throw new Error(n)})),!0)});var R="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},S="__lodash_hash_undefined__",$="[object Function]",q="[object GeneratorFunction]",E=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,T=/^\w*$/,M=/^\./,A=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,C=/\\(\\)?/g,D=/^\[object .+?Constructor\]$/,z="object"==typeof R&&R&&R.Object===Object&&R,L="object"==typeof self&&self&&self.Object===Object&&self,F=z||L||Function("return this")();var J,H=Array.prototype,N=Function.prototype,Z=Object.prototype,B=F["__core-js_shared__"],G=(J=/[^.]+$/.exec(B&&B.keys&&B.keys.IE_PROTO||""))?"Symbol(src)_1."+J:"",K=N.toString,Q=Z.hasOwnProperty,V=Z.toString,W=RegExp("^"+K.call(Q).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),X=F.Symbol,Y=H.splice,ee=de(F,"Map"),te=de(Object,"create"),ne=X?X.prototype:void 0,re=ne?ne.toString:void 0;function se(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function oe(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function ae(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function ie(e,t){for(var n,r,s=e.length;s--;)if((n=e[s][0])===(r=t)||n!=n&&r!=r)return s;return-1}function ce(e,t){var n;t=function(e,t){if(ge(e))return!1;var n=typeof e;if("number"==n||"symbol"==n||"boolean"==n||null==e||ve(e))return!0;return T.test(e)||!E.test(e)||null!=t&&e in Object(t)}(t,e)?[t]:ge(n=t)?n:le(n);for(var r=0,s=t.length;null!=e&&r<s;)e=e[he(t[r++])];return r&&r==s?e:void 0}function ue(e){if(!ye(e)||(t=e,G&&G in t))return!1;var t,n=function(e){var t=ye(e)?V.call(e):"";return t==$||t==q}(e)||function(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}(e)?W:D;return n.test(function(e){if(null!=e){try{return K.call(e)}catch(e){}try{return e+""}catch(e){}}return""}(e))}function pe(e,t){var n,r,s=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?s["string"==typeof t?"string":"hash"]:s.map}function de(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return ue(n)?n:void 0}se.prototype.clear=function(){this.__data__=te?te(null):{}},se.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},se.prototype.get=function(e){var t=this.__data__;if(te){var n=t[e];return n===S?void 0:n}return Q.call(t,e)?t[e]:void 0},se.prototype.has=function(e){var t=this.__data__;return te?void 0!==t[e]:Q.call(t,e)},se.prototype.set=function(e,t){return this.__data__[e]=te&&void 0===t?S:t,this},oe.prototype.clear=function(){this.__data__=[]},oe.prototype.delete=function(e){var t=this.__data__,n=ie(t,e);return!(n<0)&&(n==t.length-1?t.pop():Y.call(t,n,1),!0)},oe.prototype.get=function(e){var t=this.__data__,n=ie(t,e);return n<0?void 0:t[n][1]},oe.prototype.has=function(e){return ie(this.__data__,e)>-1},oe.prototype.set=function(e,t){var n=this.__data__,r=ie(n,e);return r<0?n.push([e,t]):n[r][1]=t,this},ae.prototype.clear=function(){this.__data__={hash:new se,map:new(ee||oe),string:new se}},ae.prototype.delete=function(e){return pe(this,e).delete(e)},ae.prototype.get=function(e){return pe(this,e).get(e)},ae.prototype.has=function(e){return pe(this,e).has(e)},ae.prototype.set=function(e,t){return pe(this,e).set(e,t),this};var le=fe((function(e){var t;e=null==(t=e)?"":function(e){if("string"==typeof e)return e;if(ve(e))return re?re.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}(t);var n=[];return M.test(e)&&n.push(""),e.replace(A,(function(e,t,r,s){n.push(r?s.replace(C,"$1"):t||e)})),n}));function he(e){if("string"==typeof e||ve(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function fe(e,t){if("function"!=typeof e||t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,s=t?t.apply(this,r):r[0],o=n.cache;if(o.has(s))return o.get(s);var a=e.apply(this,r);return n.cache=o.set(s,a),a};return n.cache=new(fe.Cache||ae),n}fe.Cache=ae;var ge=Array.isArray;function ye(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function ve(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==V.call(e)}var be=function(e,t,n){var r=null==e?void 0:ce(e,t);return void 0===r?n:r};const me=e=>t=>e.test(t),Ie=me(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/),je=me(/^\+[1-9]{1}[0-9]{3,14}$/),ke=x(Ie,'"{val}" is not a valid email'),we=x(je,'"{val}" is not a valid phone number'),Oe=x((_e=1,e=>e.length>=_e),"Minimum length is 1");var _e;const Ue=x((e=>"string"==typeof e),"Input is not a string"),xe=(...e)=>t=>(...n)=>(e.forEach(((e,t)=>P(...e).validate(n[t]))),t(...n)),Pe=e=>[Ue(`"${e}" must be a string`),Oe(`"${e}" must not be empty`)],Re=e=>[Ue(`"${e}" must be a string`),ke()],Se=e=>[Ue(`"${e}" must be a string`),we()],$e=xe(Pe("accessKey")),qe=t=>({exchange:$e((n=>U(t.get(e.exchange,{token:n}))))});var Ee,Te,Me,Ae;!function(e){e.sms="sms",e.whatsapp="whatsapp"}(Ee||(Ee={})),function(e){e.email="email",e.sms="sms",e.whatsapp="whatsapp"}(Te||(Te={})),function(e){e.signUp="signup",e.signIn="signin",e.verify="verify"}(Me||(Me={})),function(e){e.signUp="signup",e.signIn="signin",e.verify="verify",e.updatePhone="updatePhone"}(Ae||(Ae={}));const Ce=Pe("identifier"),De=xe(Ce,Pe("code")),ze=xe(Ce),Le=xe(Ce,Se("phone")),Fe=xe(Ce,Re("email")),Je=e=>({verify:Object.keys(Te).reduce(((n,r)=>Object.assign(Object.assign({},n),{[r]:De(((n,s)=>U(e.post(_(t.verify,r),{code:s,externalId:n}))))})),{}),signIn:Object.keys(Te).reduce(((n,r)=>Object.assign(Object.assign({},n),{[r]:ze((n=>U(e.post(_(t.signIn,r),{externalId:n}))))})),{}),signUp:Object.keys(Te).reduce(((n,r)=>Object.assign(Object.assign({},n),{[r]:ze(((n,s)=>U(e.post(_(t.signUp,r),{externalId:n,user:s}))))})),{}),signUpOrIn:Object.keys(Te).reduce(((n,r)=>Object.assign(Object.assign({},n),{[r]:ze((n=>U(e.post(_(t.signUpOrIn,r),{externalId:n}))))})),{}),update:{email:Fe(((n,r,s)=>U(e.post(t.update.email,{externalId:n,email:r},{token:s})))),phone:Object.keys(Ee).reduce(((n,r)=>Object.assign(Object.assign({},n),{[r]:Le(((n,s,o)=>U(e.post(_(t.update.phone,r),{externalId:n,phone:s},{token:o}))))})),{})}}),He=Pe("identifier"),Ne=Pe("uri"),Ze=xe(Pe("token")),Be=xe(He,Ne),Ge=xe(Pe("pendingRef")),Ke=xe(He,Se("phone"),Ne),Qe=xe(He,Re("email"),Ne),Ve=e=>({verify:Ze((t=>U(e.post(n.verify,{token:t})))),signIn:Object.keys(Te).reduce(((t,r)=>Object.assign(Object.assign({},t),{[r]:Be(((t,s)=>U(e.post(_(n.signIn,r),{externalId:t,URI:s,crossDevice:!0}))))})),{}),signUpOrIn:Object.keys(Te).reduce(((t,r)=>Object.assign(Object.assign({},t),{[r]:Be(((t,s)=>U(e.post(_(n.signUpOrIn,r),{externalId:t,URI:s,crossDevice:!0}))))})),{}),signUp:Object.keys(Te).reduce(((t,r)=>Object.assign(Object.assign({},t),{[r]:Be(((t,s,o)=>U(e.post(_(n.signUp,r),{externalId:t,URI:s,user:o,crossDevice:!0}))))})),{}),waitForSession:Ge(((t,r)=>new Promise((s=>{const{pollingIntervalMs:o,timeoutMs:a}=(({pollingIntervalMs:e=1e3,timeoutMs:t=6e5}={})=>({pollingIntervalMs:Math.max(e||d,d),timeoutMs:Math.min(t||l,l)}))(r);let i;const c=setInterval((async()=>{const r=await e.post(n.session,{pendingRef:t});r.ok&&(clearInterval(c),i&&clearTimeout(i),s(U(Promise.resolve(r))))}),o);i=setTimeout((()=>{s({error:{message:`Session polling timeout exceeded: ${a}ms`,code:"0"},ok:!1}),clearInterval(c)}),a)})))),update:{email:Qe(((t,r,s,o)=>U(e.post(n.update.email,{externalId:t,email:r,URI:s,crossDevice:!0},{token:o})))),phone:Object.keys(Ee).reduce(((t,r)=>Object.assign(Object.assign({},t),{[r]:Ke(((t,s,o,a)=>U(e.post(_(n.update.phone,r),{externalId:t,phone:s,URI:o,crossDevice:!0},{token:a}))))})),{})}}),We=e=>({verify:Ze((t=>U(e.post(n.verify,{token:t})))),signIn:Object.keys(Te).reduce(((t,r)=>Object.assign(Object.assign({},t),{[r]:Be(((t,s)=>U(e.post(_(n.signIn,r),{externalId:t,URI:s}))))})),{}),signUp:Object.keys(Te).reduce(((t,r)=>Object.assign(Object.assign({},t),{[r]:Be(((t,s,o)=>U(e.post(_(n.signUp,r),{externalId:t,URI:s,user:o}))))})),{}),signUpOrIn:Object.keys(Te).reduce(((t,r)=>Object.assign(Object.assign({},t),{[r]:Be(((t,s)=>U(e.post(_(n.signUpOrIn,r),{externalId:t,URI:s}))))})),{}),update:{email:Qe(((t,r,s,o)=>U(e.post(n.update.email,{externalId:t,email:r,URI:s},{token:o})))),phone:Object.keys(Ee).reduce(((t,r)=>Object.assign(Object.assign({},t),{[r]:Ke(((t,s,o,a)=>U(e.post(_(n.update.phone,r),{externalId:t,phone:s,URI:o},{token:a}))))})),{})},crossDevice:Ve(e)}),Xe=xe(Pe("code")),Ye=e=>({exchange:Xe((t=>U(e.get(p,{queryParams:{code:t}}))))});var et;!function(e){e.facebook="facebook",e.github="github",e.google="google",e.microsoft="microsoft",e.gitlab="gitlab",e.apple="apple"}(et||(et={}));const tt=e=>Object.assign({start:Object.keys(et).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:async(t,{redirect:s=!1}={})=>{const o=await e.get(r.start,{queryParams:Object.assign({provider:n},t&&{redirectURL:t})});if(!s||!o.ok)return U(Promise.resolve(o));const{url:a}=await o.json();window.location.href=a}})),{})},Ye(e)),nt=xe(Pe("flowId")),rt=xe(Pe("executionId"),Pe("stepId"),Pe("interactionId")),st=e=>({start:nt((t=>U(e.post(u.start,{flowId:t})))),next:rt(((t,n,r,s)=>U(e.post(u.next,{executionId:t,stepId:n,interactionId:r,input:s}))))}),ot=xe(Pe("tenant")),at=e=>Object.assign({start:ot((async(t,n,{redirect:r=!1}={})=>{const o=await e.get(s.start,{queryParams:{tenant:t,redirectURL:n}});if(!r||!o.ok)return U(Promise.resolve(o));const{url:a}=await o.json();window.location.href=a}))},Ye(e)),it=Pe("identifier"),ct=xe(it,Pe("code")),ut=xe(it),pt=xe(it),dt=e=>({signUp:ut(((t,n)=>U(e.post(o.signUp,{externalId:t,user:n})))),verify:ct(((t,n)=>U(e.post(o.verify,{externalId:t,code:n})))),update:pt(((t,n)=>U(e.post(o.update,{externalId:t},{token:n}))))}),lt=Pe("identifier"),ht=Pe("origin"),ft=xe(lt,ht,Pe("name")),gt=xe(lt,ht),yt=xe(lt,ht,Pe("token")),vt=xe(Pe("transactionId"),Pe("response")),bt=e=>({signUp:{start:ft(((t,n,r)=>U(e.post(a.signUp.start,{user:{externalId:t,name:r},origin:n})))),finish:vt(((t,n)=>U(e.post(a.signUp.finish,{transactionId:t,response:n}))))},signIn:{start:gt(((t,n)=>U(e.post(a.signIn.start,{externalId:t,origin:n})))),finish:vt(((t,n)=>U(e.post(a.signIn.finish,{transactionId:t,response:n}))))},update:{start:yt(((t,n,r)=>U(e.post(a.update.start,{externalId:t,origin:n},{token:r})))),finish:vt(((t,n)=>U(e.post(a.update.finish,{transactionId:t,response:n}))))}}),mt=xe(Pe("token"));var It,jt;const kt=xe([(It="projectId",jt=Pe("projectId"),x(((e,t)=>n=>P(...t).validate(be(n,e)))(It,jt))())])((({projectId:e,logger:t,baseUrl:n,hooks:r,cookiePolicy:s})=>{return o=m({baseUrl:n||"https://api.descope.com",projectId:e,logger:t,hooks:r,cookiePolicy:s}),{accessKey:qe(o),otp:Je(o),magicLink:We(o),oauth:tt(o),saml:at(o),totp:dt(o),webauthn:bt(o),flow:st(o),refresh:e=>U(o.get(i,{token:e})),logout:e=>U(o.get(c,{token:e})),isJwtExpired:mt(O),httpClient:o};var o}));return kt.DeliveryMethods=Te,kt}));
|
|
2
2
|
//# sourceMappingURL=index.umd.js.map
|