Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | 1x 1x 1x 1x 1x 1x 5x 2x 2x 1x 1x 1x 1x 1x | // @ts-ignore: Could not find a declaration file for module import * as inspector from 'schema-inspector' import { signProfileToken, extractProfile } from './profileTokens' import { validateProofs } from './profileProofs' import { makeProfileZoneFile } from './profileZoneFiles' import { CheerioModuleType } from './services/service' const schemaDefinition: {[key: string]: any} = { type: 'object', properties: { '@context': { type: 'string', optional: true }, '@type': { type: 'string' } } } /** * Represents a user profile * */ export class Profile { _profile: {[key: string]: any} constructor(profile = {}) { this._profile = Object.assign({}, { '@context': 'http://schema.org/' }, profile) } toJSON() { return Object.assign({}, this._profile) } toToken(privateKey: string) { return signProfileToken(this.toJSON(), privateKey) } static validateSchema(profile: any, strict = false): any { schemaDefinition.strict = strict return inspector.validate(schemaDefinition, profile) } static async fromToken(token: string, publicKeyOrAddress: string | null = null): Promise<Profile> { const profile = await extractProfile(token, publicKeyOrAddress) return new Profile(profile) } static makeZoneFile(domainName: string, tokenFileURL: string): string { return makeProfileZoneFile(domainName, tokenFileURL) } static async validateProofs(domainName: string, cheerio: CheerioModuleType): Promise<any[]> { return validateProofs(new Profile().toJSON(), domainName, cheerio) } } |