@self.id/web
Version:
Read and write records in browsers environments
74 lines (73 loc) • 2.49 kB
JavaScript
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
});
}
}