UNPKG

ngx-appkey-webauthn

Version:

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 18.2.0.

1 lines 43.4 kB
{"version":3,"file":"ngx-appkey-webauthn.mjs","sources":["../../../projects/ngx-appkey-webauthn/src/lib/models/user.ts","../../../projects/ngx-appkey-webauthn/src/lib/ngx-appkey-webauthn.service.ts","../../../projects/ngx-appkey-webauthn/src/lib/ngx-appkey-webauthn.component.ts","../../../projects/ngx-appkey-webauthn/src/public-api.ts","../../../projects/ngx-appkey-webauthn/src/ngx-appkey-webauthn.ts"],"sourcesContent":["\n\nexport class User {\n appUserId:string = \"\";\n displayName:string = \"\";\n handle:string = \"\";\n status:string = \"\";\n userName:string = \"\";\n authenticators?:Array<any>\n appId:string = \"\"; \n 'access-token':string = \"\";\n jwt:string = \"\" ;\n createdAt:string = \"\";\n updatedAt:string = \"\";\n}\n","import { Injectable } from '@angular/core';\nimport localeData from './locales.json';\nimport { User } from './models/user';\nimport { Application } from './models/application';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NgxAppkeyWebauthnService {\n\n\n public localeList: Array<any> = localeData.list;\n public appLocales: Array<any> = [];\n public user: User = new User() \n private apiConfig: any = {}\n\n constructor() {\n\n }\n\n async configure(config: any) {\n if (!config || !config.appToken) {\n throw (\"invalid api config for app token\")\n }\n this.apiConfig = config\n }\n\n async getApp(): Promise<any> {\n return await this.apiRequest(\"GET\", \"appuser/app\")\n }\n\n\n\n /**\n * \n * @param {\n * handle :string,\n * displayName :string,\n * locale? :string\n * }\n * @returns \n */\n async loginAnonymous(data: any) {\n return new Promise((resolve, reject) => {\n try {\n let valid = data.handle && data.handle.startsWith(\"ANON_\")\n if (!valid) {\n let error = {\n message: \"Invalid login anonymous data\"\n };\n reject(error);\n return;\n } \n \n\n this.apiRequest('POST', 'appuser/loginAnonymous', data).then(result => {\n if (result.code) reject(result);\n else { \n resolve(result);\n }\n }).catch((error) => reject(error)); \n\n } catch (error) {\n reject( error )\n }\n })\n }\n\n\n /**\n * https://w3c.github.io/webauthn/#dictdef-registrationresponsejson\n * @param \n * handle: string,\n * {\n * \n * id: Base64URLString;\n * rawId: Base64URLString;\n * response: {\n * clientDataJSON: Base64URLString;\n * attestationObject: Base64URLString;\n * authenticatorData?: Base64URLString; \n * };\n * authenticatorAttachment?: string; \n * type: string;\n * } attestation \n * @returns \n */\n loginAnonymousComplete(handle: string, attestation: any) {\n return new Promise((resolve, reject) => {\n try {\n\n let valid = handle &&\n attestation.id &&\n attestation.rawId &&\n attestation.response &&\n attestation.response.clientDataJSON &&\n attestation.response.attestationObject &&\n attestation.type;\n\n if (!valid) {\n reject({ message: \"Invalid data\" })\n return\n } \n\n this.apiRequest('POST', 'appuser/loginAnonymousComplete', attestation).then(result => {\n if (result.code) reject(result);\n else {\n this.user = result;\n resolve(result);\n }\n }).catch((error) => reject(error));\n } catch (error) {\n reject(error)\n }\n })\n }\n\n\n\n\n\n /**\n * \n * @param {\n * handle :string,\n * displayName :string,\n * locale? :string\n * }\n * @returns \n */\n async signup(data: any) {\n return new Promise((resolve, reject) => {\n try {\n let valid = data.handle && data.displayName\n if (!valid) {\n let error = {\n message: \"invalid signup data\"\n }\n reject(error)\n }\n data.handle = data.handle.toLowerCase();\n \n\n this.apiRequest('POST', 'appuser/signup', data).then(result => {\n if (result.code) reject(result);\n else { \n resolve(result);\n }\n }).catch((error) => reject(error)); \n\n } catch (error) {\n reject(error)\n }\n })\n }\n\n\n\n /**\n * https://w3c.github.io/webauthn/#dictdef-registrationresponsejson\n * @param \n * handle: string,\n * {\n * \n * id: Base64URLString;\n * rawId: Base64URLString;\n * response: {\n * clientDataJSON: Base64URLString;\n * attestationObject: Base64URLString;\n * authenticatorData?: Base64URLString; \n * };\n * authenticatorAttachment?: string; \n * type: string;\n * } attestation \n * @returns \n */\n signupConfirm(handle: string, attestation: any) {\n return new Promise((resolve, reject) => {\n try {\n\n let valid = handle &&\n attestation.id &&\n attestation.rawId &&\n attestation.response &&\n attestation.response.clientDataJSON &&\n attestation.response.attestationObject &&\n attestation.type;\n\n if (!valid) {\n reject({ message: \"invalid attestation\" })\n return\n }\n\n attestation.handle = handle.toLowerCase();\n\n this.apiRequest('POST', 'appuser/signupConfirm', attestation).then(result => {\n if (result.code) reject(result);\n else { \n resolve(result);\n }\n }).catch((error) => reject(error));\n } catch (error) {\n reject(error)\n }\n })\n }\n\n\n\n\n\n /**\n * \n * @param { handle:string, code:string} data \n * @returns \n */\n signupComplete(data: any) {\n return new Promise((resolve, reject) => {\n try {\n\n let valid = data.code;\n if (!valid) {\n reject({ message: \"invalid singup data\" })\n return\n }\n\n this.apiRequest('POST', 'appuser/signupComplete', data).then(result => {\n if (result.code) reject(result);\n else {\n this.user = result;\n \n resolve(result);\n }\n }).catch((error) => reject(error));\n } catch (error) {\n reject(error)\n }\n })\n }\n\n\n\n /**\n * \n * @param {handle:string} data \n * \n * @returns \n */\n login(data: any) {\n return new Promise((resolve, reject) => {\n try {\n let valid = data.handle;\n if (!valid) {\n reject({ message: \"invalid login data\" })\n return\n }\n\n this.logout()\n\n data.handle = data.handle.toLowerCase();\n this.apiRequest('POST', 'appuser/login', data).then(result => {\n if (result.code) reject(result);\n else {\n resolve(result);\n }\n }).catch((error) => reject(error));\n } catch (error) {\n reject(error)\n }\n })\n }\n\n\n\n /**\n * https://w3c.github.io/webauthn/#dictdef-authenticationresponsejson\n * @param \n * handle:string,\n * {\n * id: Base64URLString;\n * rawId: Base64URLString;\n * response: {\n * clientDataJSON:Base64URLString,\n * authenticatorData:Base64URLString,\n * signature:Base64URLString,\n * userHandle?: Base64URLString\n * };\n * authenticatorAttachment?: string; \n * type: string;\n * } assertion\n * \n * @returns \n */\n loginComplete(handle: string, assertion: any) {\n return new Promise((resolve, reject) => {\n try {\n\n let valid = handle &&\n assertion.id &&\n assertion.rawId &&\n assertion.response.clientDataJSON &&\n assertion.response.authenticatorData &&\n assertion.response.signature &&\n assertion.type;\n if (!valid) {\n reject({ message: \"invalid assertion\" })\n return\n }\n\n assertion.handle = handle.toLowerCase();\n\n this.apiRequest('POST', 'appuser/loginComplete', assertion).then(result => {\n if (result && result['access-token']) {\n this.user = result;\n resolve(result);\n }\n else reject(result);\n\n }).catch((error) => reject(error));\n } catch (error) {\n reject(error)\n }\n });\n }\n\n\n\n /**\n * \n * @param {token:string, provider:string} data \n * \n * @returns \n */\n socialLogin(data: any) {\n return new Promise((resolve, reject) => {\n try {\n let valid = data.token && data.provider;\n\n if (!valid) {\n reject({ message: \"invalid data\" })\n return\n }\n\n let that = this;\n this.apiRequest('POST', 'appuser/socialLogin', data).then(result => {\n\n if (result && result['access-token']) {\n\n that.user = result;\n resolve(result);\n }\n else reject(result);\n\n })\n } catch (error) {\n reject(error)\n }\n });\n }\n\n /**\n * \n * @param {token:string, provider:string, handle:string} data \n * \n * @returns \n */\n socialSignup(data: any) {\n return new Promise((resolve, reject) => {\n try {\n let valid = data.token && data.provider && data.handle;\n if (!valid) {\n reject({ message: \"invalid data\" })\n return\n }\n this.logout()\n \n let that = this;\n this.apiRequest('POST', 'appuser/socialSignup', data).then(result => {\n if (result && result['access-token']) {\n\n that.user = result;\n resolve(result);\n }\n else reject(result);\n\n }).catch((error) => reject(error));\n } catch (error) {\n reject(error)\n }\n });\n }\n\n\n /**\n * \n * @param {handle:string} data \n * \n * @returns \n */\n verify(data: any) {\n return new Promise((resolve, reject) => {\n try {\n let valid = data.handle;\n if (!valid) {\n reject({ message: \"invalid data\" })\n return\n }\n data.handle = data.handle.toLowerCase();\n this.apiRequest('POST', 'appuser/verify', data).then(result => {\n if (result.code) reject(result);\n else {\n\n resolve(result);\n }\n }).catch((error) => reject(error));\n } catch (error) {\n reject(error)\n }\n })\n }\n\n\n /**\n * https://w3c.github.io/webauthn/#dictdef-authenticationresponsejson\n * @param \n * handle:string,\n * { \n * id: Base64URLString;\n * rawId: Base64URLString;\n * response: {\n * clientDataJSON:Base64URLString,\n * authenticatorData:Base64URLString,\n * signature:Base64URLString,\n * userHandle?: Base64URLString\n * };\n * authenticatorAttachment?: string; \n * type: string\n * } assertion\n * \n * @returns \n */\n verifyComplete(handle: string, assertion: any) {\n return new Promise((resolve, reject) => {\n try {\n\n let valid = handle &&\n assertion.id &&\n assertion.rawId &&\n assertion.response.clientDataJSON &&\n assertion.response.authenticatorData &&\n assertion.response.signature &&\n assertion.type;\n if (!valid) {\n reject({ message: \"invalid assertion\" })\n return\n }\n\n assertion.handle = handle.toLowerCase();\n let that = this;\n this.apiRequest('POST', 'appuser/verifyComplete', assertion).then(result => {\n if (result && result['access-token']) {\n that.user = result;\n resolve(result);\n }\n else reject(result);\n\n }).catch((error) => reject(error));\n } catch (error) {\n reject(error)\n }\n });\n }\n\n\n\n /**\n * \n * @param {token:string, provider:string} data \n * @returns \n */\n verifySocialAccount(data: any) {\n return new Promise((resolve, reject) => {\n try {\n\n let valid = data.token && data.provider;\n if (!valid) {\n reject({ message: \"invalid data\" })\n return\n }\n let that = this;\n this.apiRequest('POST', 'appuser/verifySocialAccount', data).then(result => {\n if (result && result['access-token']) {\n that.user = result;\n resolve(result);\n }\n else reject(result);\n\n }).catch((error) => reject(error));\n } catch (error) {\n reject(error)\n }\n });\n }\n\n\n logout() {\n this.user = new User()\n }\n\n\n /**\n * \n * @returns application user\n */\n getAppUser() {\n return new Promise((resolve, reject) => {\n try {\n this.apiRequest('GET', 'appuser/user').then(result => {\n\n if (result.code) reject(result);\n else {\n this.user = result;\n resolve(result);\n }\n\n }).catch((error) => reject(error));\n } catch (error) {\n reject(error);\n }\n\n })\n }\n\n\n\n /**\n * \n * @param {locale:string} data \n * @returns \n */\n setLocale(data: any) {\n return new Promise((resolve, reject) => {\n try {\n let valid = data.locale;\n if (!valid) {\n reject({ message: \"invalid data\" })\n return\n }\n\n this.apiRequest('POST', 'appuser/setLocale', data).then(result => {\n if (result == true) resolve(result);\n else reject(result);\n }).catch((error) => reject(error));\n } catch (error) {\n resolve(error)\n }\n })\n }\n\n\n\n /**\n * \n * @param {displayName:string} data \n * @returns \n */\n updateProfile(data: any) {\n return new Promise((resolve, reject) => {\n try {\n let valid = data.displayName;\n if (!valid) {\n reject({ message: \"invalid data\" })\n return\n }\n\n\n this.apiRequest('POST', 'appuser/updateProfile', data).then(result => {\n if (result.code) resolve(result);\n else reject(result);\n }).catch((error) => reject(error));\n } catch (error) {\n\n }\n })\n }\n\n /**\n * \n * @param {userName:string} data \n * @returns \n */\n setUserName(data: any) {\n return new Promise((resolve, reject) => {\n try {\n\n if (!data.userName) {\n reject({ message: \"invalid data\" });\n return\n }\n\n data.userName = data.userName.toLowerCase();\n\n this.apiRequest('POST', 'appuser/setUserName', data).then(result => {\n if (result.code) reject(result);\n else resolve(result);\n }).catch((error) => reject(error));\n } catch (error) {\n reject(error);\n }\n })\n }\n\n\n\n /**\n * \n * @param {userName:string} data \n * @returns \n */\n userNameAvailable(data: any) {\n return new Promise((resolve, reject) => {\n try {\n\n if (!data.userName) {\n reject({ message: \"invalid data\" });\n return\n }\n\n data.userName = data.userName.toLowerCase();\n\n this.apiRequest('GET', `appuser/userNameAvailable?userName=${data.userName}`).then(result => {\n if (result.code) reject(result);\n else resolve(result);\n }).catch((error) => reject(error));\n } catch (error) {\n reject(error)\n }\n })\n }\n\n\n /**\n * \n * \n * @returns \n */\n deleteAccount() {\n return new Promise((resolve, reject) => {\n try {\n\n this.apiRequest('POST', 'appuser/deleteAccount', {}).then(result => {\n if (result.code) reject(result);\n else resolve(result);\n }).catch((error) => reject(error));\n } catch (error) {\n reject(error)\n }\n })\n }\n\n /**\n *\n *\n * @returns challenge\n */\n addPasskey(data:any = {}) {\n return new Promise((resolve, reject) => {\n try {\n this.apiRequest('POST', 'appuser/addPasskey', data).then(result => {\n if (result.code)\n reject(result);\n else\n resolve(result);\n }).catch((error) => reject(error));\n }\n catch (error) {\n reject(error);\n }\n });\n }\n \n \n\n /**\n * https://w3c.github.io/webauthn/#dictdef-registrationresponsejson\n * @param \n * {\n * \n * id: Base64URLString;\n * rawId: Base64URLString;\n * response: {\n * clientDataJSON: Base64URLString;\n * attestationObject: Base64URLString;\n * authenticatorData?: Base64URLString; \n * };\n * authenticatorAttachment?: string; \n * type: string;\n * } attestation \n * @returns \n */\n addPasskeyComplete(attestation:any) {\n return new Promise((resolve, reject) => {\n try {\n let valid = attestation.id &&\n attestation.rawId &&\n attestation.response &&\n attestation.response.clientDataJSON &&\n attestation.response.attestationObject &&\n attestation.type;\n\n if (!valid) {\n reject({ message: \"invalid attestation\" })\n return\n } \n\n this.apiRequest('POST', 'appuser/addPasskeyComplete', attestation).then(result => {\n if (result.code)\n reject(result);\n else {\n this.user = result;\n resolve(result);\n }\n }).catch((error) => reject(error));\n }\n catch (error) {\n reject(error);\n }\n });\n }\n /**\n *\n * @param {keyId:string, keyName:string} data\n * @returns user\n */\n updatePasskey(data:any) {\n return new Promise((resolve, reject) => {\n try {\n this.apiRequest('POST', 'appuser/updatePasskey', data).then(result => {\n if (result.code)\n reject(result);\n else {\n this.user = result;\n resolve(result);\n }\n }).catch((error) => reject(error));\n }\n catch (error) {\n reject(error);\n }\n });\n }\n /**\n *\n * @param {keyId:string} data\n * @returns user\n */\n removePasskey(data:any) {\n return new Promise((resolve, reject) => {\n try {\n this.apiRequest('POST', 'appuser/removePasskey', data).then(result => {\n if (result.code)\n reject(result);\n else {\n this.user = result;\n resolve(result);\n }\n }).catch((error) => reject(error));\n }\n catch (error) {\n reject(error);\n }\n });\n }\n\n\n\n private async apiRequest(method: string, endpoint: string, data?: any): Promise<any> {\n try {\n if (!this.apiConfig.appToken) {\n console.log(\"apiRequest this.apiConfig \", this.apiConfig);\n throw (\"invalid api config for app token\")\n } \n\n let options: any = {\n method: method ? method : 'POST',\n headers: {\n 'Content-Type': 'application/json',\n }\n };\n\n if (this.user && this.user['access-token'] != \"\") options.headers['access-token'] = this.user['access-token'];\n else if (data && data['access-token']) options.headers['access-token'] = data['access-token'];\n else if (data && data.signupToken) options.headers['signup-token'] = data.signupToken;\n else options.headers['app-token'] = this.apiConfig.appToken\n\n if (data && method == \"POST\" || method == \"PUT\") options.body = JSON.stringify(data);\n\n const response = await fetch(`${this.apiConfig.apiUrl}/api/${endpoint}`, options);\n let result = await response.json();\n\n console.log(`apiRequest path: ${endpoint} - result: `, result)\n\n // if (response.status !== 200) return { error: result }\n // else return result\n\n return result;\n\n } catch (error) {\n\n console.log(`apiRequest error:`, error)\n return error;\n }\n }\n\n\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-ngx-appkey-webauthn',\n standalone: true,\n imports: [],\n template: `\n <p>\n ngx-appkey-webauthn works!\n </p>\n `,\n styles: ``\n})\nexport class NgxAppkeyWebauthnComponent {\n\n}\n","/*\n * Public API Surface of ngx-appkey-webauthn\n */\n\nexport * from './lib/ngx-appkey-webauthn.service';\nexport * from './lib/ngx-appkey-webauthn.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}