@renown/sdk 0.15.4-dev.0 → 0.15.4-dev.2
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/src/common.d.ts +14 -0
- package/dist/src/common.d.ts.map +1 -0
- package/dist/src/common.js +105 -0
- package/dist/src/common.js.map +1 -0
- package/dist/src/constants.d.ts +130 -0
- package/dist/src/constants.d.ts.map +1 -0
- package/dist/src/constants.js +40 -0
- package/dist/src/constants.js.map +1 -0
- package/dist/src/event/event.browser.d.ts +10 -0
- package/dist/src/event/event.browser.d.ts.map +1 -0
- package/dist/src/event/event.browser.js +24 -0
- package/dist/src/event/event.browser.js.map +1 -0
- package/dist/src/event/event.node.d.ts +8 -0
- package/dist/src/event/event.node.d.ts.map +1 -0
- package/dist/src/event/event.node.js +17 -0
- package/dist/src/event/event.node.js.map +1 -0
- package/dist/src/event/types.d.ts +16 -0
- package/dist/src/event/types.d.ts.map +1 -0
- package/dist/src/event/types.js +2 -0
- package/dist/src/event/types.js.map +1 -0
- package/dist/src/index.browser.d.ts +4 -0
- package/dist/src/index.browser.d.ts.map +1 -0
- package/{src/index.browser.ts → dist/src/index.browser.js} +2 -0
- package/dist/src/index.browser.js.map +1 -0
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +4 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/index.node.d.ts +4 -0
- package/dist/src/index.node.d.ts.map +1 -0
- package/{src/index.node.ts → dist/src/index.node.js} +2 -0
- package/dist/src/index.node.js.map +1 -0
- package/dist/src/init.browser.d.ts +3 -0
- package/dist/src/init.browser.d.ts.map +1 -0
- package/dist/src/init.browser.js +7 -0
- package/dist/src/init.browser.js.map +1 -0
- package/dist/src/init.node.d.ts +3 -0
- package/dist/src/init.node.d.ts.map +1 -0
- package/dist/src/init.node.js +8 -0
- package/dist/src/init.node.js.map +1 -0
- package/dist/src/storage/common.d.ts +13 -0
- package/dist/src/storage/common.d.ts.map +1 -0
- package/dist/src/storage/common.js +7 -0
- package/dist/src/storage/common.js.map +1 -0
- package/dist/src/storage/storage.browser.d.ts +9 -0
- package/dist/src/storage/storage.browser.d.ts.map +1 -0
- package/dist/src/storage/storage.browser.js +25 -0
- package/dist/src/storage/storage.browser.js.map +1 -0
- package/dist/src/storage/storage.node.d.ts +11 -0
- package/dist/src/storage/storage.node.d.ts.map +1 -0
- package/dist/src/storage/storage.node.js +42 -0
- package/dist/src/storage/storage.node.js.map +1 -0
- package/dist/src/types.d.ts +79 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +2 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/utils.d.ts +12 -0
- package/dist/src/utils.d.ts.map +1 -0
- package/dist/src/utils.js +52 -0
- package/dist/src/utils.js.map +1 -0
- package/dist/tsconfig.browser.tsbuildinfo +1 -0
- package/dist/tsconfig.common.tsbuildinfo +1 -0
- package/dist/tsconfig.node.tsbuildinfo +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +17 -16
- package/src/common.ts +0 -136
- package/src/constants.ts +0 -45
- package/src/event/event.browser.ts +0 -34
- package/src/event/event.node.ts +0 -26
- package/src/event/types.ts +0 -19
- package/src/init.browser.ts +0 -17
- package/src/init.node.ts +0 -19
- package/src/storage/common.ts +0 -18
- package/src/storage/storage.browser.ts +0 -30
- package/src/storage/storage.node.ts +0 -53
- package/src/types.ts +0 -96
- package/src/utils.ts +0 -28
- package/tsconfig.base.json +0 -10
- package/tsconfig.browser.json +0 -9
- package/tsconfig.node.json +0 -9
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { IEventEmitter } from "./types.js";
|
|
2
|
-
|
|
3
|
-
export class TypedCustomEvent<T> extends CustomEvent<T> {
|
|
4
|
-
constructor(type: string, detail?: T) {
|
|
5
|
-
super(type, { detail });
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export class BrowserEventEmitter<Events extends Record<string, unknown>>
|
|
10
|
-
implements IEventEmitter<Events>
|
|
11
|
-
{
|
|
12
|
-
#eventTarget = new EventTarget();
|
|
13
|
-
|
|
14
|
-
on<K extends keyof Events>(
|
|
15
|
-
event: K,
|
|
16
|
-
listener: (data: Events[K]) => void,
|
|
17
|
-
): () => void {
|
|
18
|
-
const wrappedListener = (e: Event) => {
|
|
19
|
-
if (e instanceof TypedCustomEvent) {
|
|
20
|
-
listener(e.detail as Events[K]);
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
this.#eventTarget.addEventListener(event.toString(), wrappedListener);
|
|
25
|
-
return () => {
|
|
26
|
-
this.#eventTarget.removeEventListener(event.toString(), wrappedListener);
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
emit<K extends keyof Events>(event: K, data: Events[K]): void {
|
|
31
|
-
const customEvent = new TypedCustomEvent(event.toString(), data);
|
|
32
|
-
this.#eventTarget.dispatchEvent(customEvent);
|
|
33
|
-
}
|
|
34
|
-
}
|
package/src/event/event.node.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from "node:events";
|
|
2
|
-
import { IEventEmitter } from "./types.js";
|
|
3
|
-
|
|
4
|
-
export class NodeEventEmitter<Events extends Record<string, unknown>>
|
|
5
|
-
implements IEventEmitter<Events>
|
|
6
|
-
{
|
|
7
|
-
#emitter = new EventEmitter();
|
|
8
|
-
|
|
9
|
-
constructor() {
|
|
10
|
-
this.#emitter.setMaxListeners(0);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
on<K extends keyof Events>(
|
|
14
|
-
event: K,
|
|
15
|
-
listener: (data: Events[K]) => void,
|
|
16
|
-
): () => void {
|
|
17
|
-
this.#emitter.on(event as string, listener);
|
|
18
|
-
return () => {
|
|
19
|
-
this.#emitter.removeListener(event.toString(), listener);
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
emit<K extends keyof Events>(event: K, data: Events[K]): void {
|
|
24
|
-
this.#emitter.emit(event.toString(), data);
|
|
25
|
-
}
|
|
26
|
-
}
|
package/src/event/types.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export interface IEventEmitter<Events extends Record<string, unknown>> {
|
|
2
|
-
/**
|
|
3
|
-
* Registers a listener for the specified event.
|
|
4
|
-
* @param event - The event name.
|
|
5
|
-
* @param listener - The listener function for the event.
|
|
6
|
-
* @returns A function to remove the listener.
|
|
7
|
-
*/
|
|
8
|
-
on<K extends keyof Events>(
|
|
9
|
-
event: K,
|
|
10
|
-
listener: (data: Events[K]) => void,
|
|
11
|
-
): () => void;
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Emits an event with the specified data.
|
|
15
|
-
* @param event - The event name.
|
|
16
|
-
* @param data - The data to pass to listeners.
|
|
17
|
-
*/
|
|
18
|
-
emit<K extends keyof Events>(event: K, data: Events[K]): void;
|
|
19
|
-
}
|
package/src/init.browser.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { Renown } from "./common.js";
|
|
2
|
-
import { RenownEvents, RenownStorageMap } from "./types.js";
|
|
3
|
-
import { BrowserEventEmitter } from "./event/event.browser.js";
|
|
4
|
-
import { BrowserStorage } from "./storage/storage.browser.js";
|
|
5
|
-
|
|
6
|
-
export function initRenown(
|
|
7
|
-
connectId: string,
|
|
8
|
-
basename: string | undefined,
|
|
9
|
-
baseUrl?: string,
|
|
10
|
-
) {
|
|
11
|
-
return new Renown(
|
|
12
|
-
new BrowserStorage<RenownStorageMap>("renown", basename),
|
|
13
|
-
new BrowserEventEmitter<RenownEvents>(),
|
|
14
|
-
connectId,
|
|
15
|
-
baseUrl,
|
|
16
|
-
);
|
|
17
|
-
}
|
package/src/init.node.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { Renown } from "./common.js";
|
|
2
|
-
import { NodeEventEmitter } from "./event/event.node.js";
|
|
3
|
-
import { NodeStorage } from "./storage/storage.node.js";
|
|
4
|
-
import { RenownEvents, RenownStorageMap } from "./types.js";
|
|
5
|
-
|
|
6
|
-
export function initRenown(
|
|
7
|
-
connectId: string,
|
|
8
|
-
filePath: string,
|
|
9
|
-
namespace: string,
|
|
10
|
-
baseUrl?: string,
|
|
11
|
-
) {
|
|
12
|
-
const storage = new NodeStorage<RenownStorageMap>(filePath, namespace);
|
|
13
|
-
return new Renown(
|
|
14
|
-
storage,
|
|
15
|
-
new NodeEventEmitter<RenownEvents>(),
|
|
16
|
-
connectId,
|
|
17
|
-
baseUrl,
|
|
18
|
-
);
|
|
19
|
-
}
|
package/src/storage/common.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export interface IStorage<
|
|
2
|
-
T extends Record<string, unknown> = Record<string, unknown>,
|
|
3
|
-
> {
|
|
4
|
-
get<Key extends keyof T>(key: Key): T[Key] | undefined;
|
|
5
|
-
set<Key extends keyof T>(key: Key, value?: T[Key]): void;
|
|
6
|
-
delete(key: keyof T): void;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export abstract class BaseStorage<
|
|
10
|
-
T extends Record<string, unknown> = Record<string, unknown>,
|
|
11
|
-
> implements IStorage<T>
|
|
12
|
-
{
|
|
13
|
-
protected constructor(protected namespace: string) {}
|
|
14
|
-
|
|
15
|
-
abstract get<Key extends keyof T>(key: Key): T[Key] | undefined;
|
|
16
|
-
abstract set<Key extends keyof T>(key: Key, value?: T[Key]): void;
|
|
17
|
-
abstract delete(key: keyof T): void;
|
|
18
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { BaseStorage } from "./common.js";
|
|
2
|
-
|
|
3
|
-
export class BrowserStorage<
|
|
4
|
-
T extends Record<string, unknown> = Record<string, unknown>,
|
|
5
|
-
> extends BaseStorage<T> {
|
|
6
|
-
constructor(namespace: string, basename: string | undefined) {
|
|
7
|
-
super(`${basename}:${namespace}`);
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
#buildKey(key: keyof T): string {
|
|
11
|
-
return `${this.namespace}:${key.toString()}`;
|
|
12
|
-
}
|
|
13
|
-
get<Key extends keyof T>(key: Key): T[Key] | undefined {
|
|
14
|
-
const value = localStorage.getItem(this.#buildKey(key));
|
|
15
|
-
if (value) {
|
|
16
|
-
return JSON.parse(value) as T[Key];
|
|
17
|
-
}
|
|
18
|
-
return undefined;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
set<Key extends keyof T>(key: Key, value?: T[Key] | undefined): void {
|
|
22
|
-
return value
|
|
23
|
-
? localStorage.setItem(this.#buildKey(key), JSON.stringify(value))
|
|
24
|
-
: localStorage.removeItem(this.#buildKey(key));
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
delete(key: keyof T): void {
|
|
28
|
-
return localStorage.removeItem(this.#buildKey(key));
|
|
29
|
-
}
|
|
30
|
-
}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { writeFileSync, readFileSync, existsSync } from "node:fs";
|
|
2
|
-
import { join } from "node:path";
|
|
3
|
-
import { BaseStorage } from "./common.js";
|
|
4
|
-
|
|
5
|
-
export class NodeStorage<
|
|
6
|
-
T extends Record<string, unknown> = Record<string, unknown>,
|
|
7
|
-
> extends BaseStorage<T> {
|
|
8
|
-
private readonly filePath: string;
|
|
9
|
-
|
|
10
|
-
constructor(filePath: string, namespace: string) {
|
|
11
|
-
super(namespace);
|
|
12
|
-
this.filePath = filePath;
|
|
13
|
-
|
|
14
|
-
if (!existsSync(this.filePath)) {
|
|
15
|
-
writeFileSync(this.filePath, JSON.stringify({}));
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
private readData(): T {
|
|
20
|
-
const data = readFileSync(this.filePath, "utf-8");
|
|
21
|
-
return JSON.parse(data) as T;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
private writeData(data: T): void {
|
|
25
|
-
writeFileSync(
|
|
26
|
-
join(this.filePath, `$this.namespace}.json`),
|
|
27
|
-
JSON.stringify(data, null, 2),
|
|
28
|
-
);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
get<Key extends keyof T>(key: Key): T[Key] | undefined {
|
|
32
|
-
const data = this.readData();
|
|
33
|
-
return data[key];
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
set<Key extends keyof T>(key: Key, value?: T[Key]): void {
|
|
37
|
-
const data = this.readData();
|
|
38
|
-
if (value === undefined) {
|
|
39
|
-
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
|
|
40
|
-
delete data[key];
|
|
41
|
-
} else {
|
|
42
|
-
data[key] = value;
|
|
43
|
-
}
|
|
44
|
-
this.writeData(data);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
delete(key: keyof T): void {
|
|
48
|
-
const data = this.readData();
|
|
49
|
-
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
|
|
50
|
-
delete data[key];
|
|
51
|
-
this.writeData(data);
|
|
52
|
-
}
|
|
53
|
-
}
|
package/src/types.ts
DELETED
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import type { User as EditorUser } from "document-model";
|
|
2
|
-
import { CREDENTIAL_TYPES } from "./constants.js";
|
|
3
|
-
import { IEventEmitter } from "./event/types.js";
|
|
4
|
-
import { IStorage } from "./storage/common.js";
|
|
5
|
-
|
|
6
|
-
export type User = EditorUser & {
|
|
7
|
-
did: string;
|
|
8
|
-
credential: PowerhouseVerifiableCredential | undefined;
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
export type Unsubscribe = () => void;
|
|
12
|
-
|
|
13
|
-
export type RenownStorageMap = { user: User | undefined };
|
|
14
|
-
|
|
15
|
-
export type RenownStorage = IStorage<RenownStorageMap>;
|
|
16
|
-
|
|
17
|
-
export type RenownEvents = {
|
|
18
|
-
user: User | undefined;
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
export type RenownEventEmitter = IEventEmitter<RenownEvents>;
|
|
22
|
-
|
|
23
|
-
export interface IRenown extends Pick<RenownEventEmitter, "on"> {
|
|
24
|
-
user: User | undefined;
|
|
25
|
-
login: (did: string) => Promise<User | undefined>;
|
|
26
|
-
logout: () => Promise<void>;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
type IssuerType<T> = {
|
|
30
|
-
id: string;
|
|
31
|
-
} & T;
|
|
32
|
-
|
|
33
|
-
type CredentialSubjecType<T> = {
|
|
34
|
-
id?: string;
|
|
35
|
-
} & T;
|
|
36
|
-
|
|
37
|
-
interface CredentialStatus {
|
|
38
|
-
id: string;
|
|
39
|
-
type: string;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
interface CredentialSchema {
|
|
43
|
-
id: string;
|
|
44
|
-
type: string;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
interface IVerifiableCredentialPayload<Subject, Issuer> {
|
|
48
|
-
"@context": string[];
|
|
49
|
-
id: string;
|
|
50
|
-
type: string[];
|
|
51
|
-
issuer: IssuerType<Issuer>;
|
|
52
|
-
issuanceDate: string;
|
|
53
|
-
expirationDate?: string;
|
|
54
|
-
credentialSubject: CredentialSubjecType<Subject>;
|
|
55
|
-
credentialStatus?: CredentialStatus;
|
|
56
|
-
credentialSchema: CredentialSchema;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
interface IProof {
|
|
60
|
-
verificationMethod: string;
|
|
61
|
-
ethereumAddress: `0x${string}`;
|
|
62
|
-
created: string;
|
|
63
|
-
proofPurpose: string;
|
|
64
|
-
type: string;
|
|
65
|
-
proofValue: string;
|
|
66
|
-
eip712: {
|
|
67
|
-
domain: {
|
|
68
|
-
name: string;
|
|
69
|
-
version: string;
|
|
70
|
-
chainId: number;
|
|
71
|
-
verifyingContract: string;
|
|
72
|
-
};
|
|
73
|
-
types: typeof CREDENTIAL_TYPES;
|
|
74
|
-
primaryType: "VerifiableCredential";
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
export interface IVerifiableCredential<Subject, Issuer>
|
|
79
|
-
extends IVerifiableCredentialPayload<Subject, Issuer> {
|
|
80
|
-
proof: IProof;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
export interface IPowerhouseCredentialSubject {
|
|
84
|
-
id: string;
|
|
85
|
-
app: string;
|
|
86
|
-
name?: string;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
export interface IPowerhouseIssuerType {
|
|
90
|
-
ethereumAddress: `0x${string}`;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
export type PowerhouseVerifiableCredential = IVerifiableCredential<
|
|
94
|
-
IPowerhouseCredentialSubject,
|
|
95
|
-
IPowerhouseIssuerType
|
|
96
|
-
>;
|
package/src/utils.ts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
export type PKHDid = {
|
|
2
|
-
networkId: string;
|
|
3
|
-
chainId: number;
|
|
4
|
-
address: `0x${string}`;
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
export function parsePkhDid(did: string): PKHDid {
|
|
8
|
-
const parts = did.split(":");
|
|
9
|
-
if (!did.startsWith("did:pkh:") || parts.length !== 5) {
|
|
10
|
-
throw new Error("Invalid pkh did");
|
|
11
|
-
}
|
|
12
|
-
const [, , networkId, chainIdStr, address] = parts;
|
|
13
|
-
|
|
14
|
-
if (!address.startsWith("0x")) {
|
|
15
|
-
throw new Error(`Invalid address: ${address}`);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
const chainId = Number(chainIdStr);
|
|
19
|
-
if (isNaN(chainId)) {
|
|
20
|
-
throw new Error(`Invalid chain id: ${chainIdStr}`);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
return {
|
|
24
|
-
chainId,
|
|
25
|
-
networkId,
|
|
26
|
-
address: address as PKHDid["address"],
|
|
27
|
-
};
|
|
28
|
-
}
|
package/tsconfig.base.json
DELETED
package/tsconfig.browser.json
DELETED