UNPKG

@self.id/web

Version:

Read and write records in browsers environments

74 lines (73 loc) 2.49 kB
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } function _classPrivateFieldInit(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } import { Core } from '@self.id/core'; import { DIDSession } from 'did-session'; var _session = /*#__PURE__*/ new WeakMap(); /** * Extends {@linkcode core.Core} * * ```sh * import { WebClientSession } from '@self.id/web' * ``` */ export class WebClientSession extends Core { async authenticate(authProvider, attachToCeramic = true, sessionStr) { _classPrivateFieldSet(this, _session, sessionStr ? await DIDSession.fromSession(sessionStr) : await DIDSession.authorize(authProvider, { resources: [ `ceramic://*` ] })); const did = _classPrivateFieldGet(this, _session).did; if (attachToCeramic) { this.ceramic.did = did; } return did; } get session() { return _classPrivateFieldGet(this, _session); } constructor(...args){ super(...args); _classPrivateFieldInit(this, _session, { writable: true, value: void 0 }); } }