@orbitmem/sdk 0.1.0
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/README.md +104 -0
- package/dist/agent/agent-adapter.d.ts +3 -0
- package/dist/agent/agent-adapter.d.ts.map +1 -0
- package/dist/agent/agent-adapter.js +3 -0
- package/dist/agent/agent-adapter.js.map +1 -0
- package/dist/agent/client.d.ts +5 -0
- package/dist/agent/client.d.ts.map +1 -0
- package/dist/agent/client.js +146 -0
- package/dist/agent/client.js.map +1 -0
- package/dist/agent/index.d.ts +2 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +2 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/client.d.ts +3 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +118 -0
- package/dist/client.js.map +1 -0
- package/dist/contracts.d.ts +19 -0
- package/dist/contracts.d.ts.map +1 -0
- package/dist/contracts.js +28 -0
- package/dist/contracts.js.map +1 -0
- package/dist/data/index.d.ts +5 -0
- package/dist/data/index.d.ts.map +1 -0
- package/dist/data/index.js +5 -0
- package/dist/data/index.js.map +1 -0
- package/dist/data/orbitdb.d.ts +10 -0
- package/dist/data/orbitdb.d.ts.map +1 -0
- package/dist/data/orbitdb.js +39 -0
- package/dist/data/orbitdb.js.map +1 -0
- package/dist/data/pricing.d.ts +7 -0
- package/dist/data/pricing.d.ts.map +1 -0
- package/dist/data/pricing.js +55 -0
- package/dist/data/pricing.js.map +1 -0
- package/dist/data/serialization.d.ts +28 -0
- package/dist/data/serialization.d.ts.map +1 -0
- package/dist/data/serialization.js +76 -0
- package/dist/data/serialization.js.map +1 -0
- package/dist/data/vault.d.ts +21 -0
- package/dist/data/vault.d.ts.map +1 -0
- package/dist/data/vault.js +284 -0
- package/dist/data/vault.js.map +1 -0
- package/dist/discovery/discovery-layer.d.ts +3 -0
- package/dist/discovery/discovery-layer.d.ts.map +1 -0
- package/dist/discovery/discovery-layer.js +205 -0
- package/dist/discovery/discovery-layer.js.map +1 -0
- package/dist/discovery/index.d.ts +4 -0
- package/dist/discovery/index.d.ts.map +1 -0
- package/dist/discovery/index.js +4 -0
- package/dist/discovery/index.js.map +1 -0
- package/dist/discovery/mock-registry.d.ts +30 -0
- package/dist/discovery/mock-registry.d.ts.map +1 -0
- package/dist/discovery/mock-registry.js +71 -0
- package/dist/discovery/mock-registry.js.map +1 -0
- package/dist/discovery/on-chain-registry.d.ts +35 -0
- package/dist/discovery/on-chain-registry.d.ts.map +1 -0
- package/dist/discovery/on-chain-registry.js +199 -0
- package/dist/discovery/on-chain-registry.js.map +1 -0
- package/dist/encryption/aes.d.ts +15 -0
- package/dist/encryption/aes.d.ts.map +1 -0
- package/dist/encryption/aes.js +63 -0
- package/dist/encryption/aes.js.map +1 -0
- package/dist/encryption/encryption-layer.d.ts +8 -0
- package/dist/encryption/encryption-layer.d.ts.map +1 -0
- package/dist/encryption/encryption-layer.js +82 -0
- package/dist/encryption/encryption-layer.js.map +1 -0
- package/dist/encryption/index.d.ts +6 -0
- package/dist/encryption/index.d.ts.map +1 -0
- package/dist/encryption/index.js +4 -0
- package/dist/encryption/index.js.map +1 -0
- package/dist/encryption/lit.d.ts +23 -0
- package/dist/encryption/lit.d.ts.map +1 -0
- package/dist/encryption/lit.js +113 -0
- package/dist/encryption/lit.js.map +1 -0
- package/dist/encryption/vault-key.d.ts +37 -0
- package/dist/encryption/vault-key.d.ts.map +1 -0
- package/dist/encryption/vault-key.js +43 -0
- package/dist/encryption/vault-key.js.map +1 -0
- package/dist/identity/identity-layer.d.ts +3 -0
- package/dist/identity/identity-layer.d.ts.map +1 -0
- package/dist/identity/identity-layer.js +99 -0
- package/dist/identity/identity-layer.js.map +1 -0
- package/dist/identity/index.d.ts +4 -0
- package/dist/identity/index.d.ts.map +1 -0
- package/dist/identity/index.js +4 -0
- package/dist/identity/index.js.map +1 -0
- package/dist/identity/ows-adapter.d.ts +15 -0
- package/dist/identity/ows-adapter.d.ts.map +1 -0
- package/dist/identity/ows-adapter.js +67 -0
- package/dist/identity/ows-adapter.js.map +1 -0
- package/dist/identity/session.d.ts +10 -0
- package/dist/identity/session.d.ts.map +1 -0
- package/dist/identity/session.js +36 -0
- package/dist/identity/session.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/persistence/create-agent.d.ts +11 -0
- package/dist/persistence/create-agent.d.ts.map +1 -0
- package/dist/persistence/create-agent.js +47 -0
- package/dist/persistence/create-agent.js.map +1 -0
- package/dist/persistence/index.d.ts +3 -0
- package/dist/persistence/index.d.ts.map +1 -0
- package/dist/persistence/index.js +3 -0
- package/dist/persistence/index.js.map +1 -0
- package/dist/persistence/persistence-layer.d.ts +12 -0
- package/dist/persistence/persistence-layer.d.ts.map +1 -0
- package/dist/persistence/persistence-layer.js +194 -0
- package/dist/persistence/persistence-layer.js.map +1 -0
- package/dist/transport/index.d.ts +3 -0
- package/dist/transport/index.d.ts.map +1 -0
- package/dist/transport/index.js +3 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/transport/relay-session.d.ts +41 -0
- package/dist/transport/relay-session.d.ts.map +1 -0
- package/dist/transport/relay-session.js +86 -0
- package/dist/transport/relay-session.js.map +1 -0
- package/dist/transport/transport-layer.d.ts +32 -0
- package/dist/transport/transport-layer.d.ts.map +1 -0
- package/dist/transport/transport-layer.js +110 -0
- package/dist/transport/transport-layer.js.map +1 -0
- package/dist/types.d.ts +1319 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- package/package.json +91 -0
- package/src/__tests__/client.test.ts +30 -0
- package/src/__tests__/orbitdb-availability.ts +8 -0
- package/src/agent/__tests__/agent-adapter.test.ts +50 -0
- package/src/agent/__tests__/client.test.ts +50 -0
- package/src/agent/agent-adapter.ts +2 -0
- package/src/agent/client.ts +158 -0
- package/src/agent/index.ts +1 -0
- package/src/client.ts +134 -0
- package/src/contracts.ts +44 -0
- package/src/data/__tests__/pricing.test.ts +73 -0
- package/src/data/__tests__/vault-encryption.test.ts +346 -0
- package/src/data/__tests__/vault.test.ts +75 -0
- package/src/data/index.ts +8 -0
- package/src/data/orbitdb.ts +47 -0
- package/src/data/pricing.ts +63 -0
- package/src/data/serialization.ts +108 -0
- package/src/data/vault.ts +382 -0
- package/src/discovery/__tests__/discovery.test.ts +49 -0
- package/src/discovery/__tests__/on-chain-registry.test.ts +176 -0
- package/src/discovery/discovery-layer.ts +244 -0
- package/src/discovery/index.ts +3 -0
- package/src/discovery/mock-registry.ts +96 -0
- package/src/discovery/on-chain-registry.ts +237 -0
- package/src/encryption/__tests__/aes.test.ts +64 -0
- package/src/encryption/__tests__/encryption-layer.test.ts +80 -0
- package/src/encryption/__tests__/lit.test.ts +97 -0
- package/src/encryption/aes.ts +109 -0
- package/src/encryption/encryption-layer.ts +100 -0
- package/src/encryption/index.ts +5 -0
- package/src/encryption/lit.ts +161 -0
- package/src/encryption/vault-key.ts +63 -0
- package/src/identity/__tests__/identity.test.ts +31 -0
- package/src/identity/__tests__/ows-adapter.test.ts +47 -0
- package/src/identity/identity-layer.ts +123 -0
- package/src/identity/index.ts +3 -0
- package/src/identity/ows-adapter.ts +80 -0
- package/src/identity/session.ts +57 -0
- package/src/index.ts +12 -0
- package/src/persistence/__tests__/create-agent.test.ts +9 -0
- package/src/persistence/__tests__/persistence.test.ts +242 -0
- package/src/persistence/create-agent.ts +55 -0
- package/src/persistence/index.ts +2 -0
- package/src/persistence/persistence-layer.ts +236 -0
- package/src/transport/__tests__/solana-transport.test.ts +112 -0
- package/src/transport/__tests__/transport.test.ts +84 -0
- package/src/transport/index.ts +2 -0
- package/src/transport/relay-session.ts +118 -0
- package/src/transport/transport-layer.ts +171 -0
- package/src/types/orbitdb.d.ts +9 -0
- package/src/types.ts +1496 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
const PRICING_PREFIX = "pricing/";
|
|
2
|
+
const DEFAULT_KEY = "pricing/_default";
|
|
3
|
+
/**
|
|
4
|
+
* Create pricing CRUD methods backed by a vault's `-meta` OrbitDB store.
|
|
5
|
+
* Pricing keys live under the `pricing/` prefix in metadata.
|
|
6
|
+
*/
|
|
7
|
+
export function createVaultPricing(metaDb) {
|
|
8
|
+
return {
|
|
9
|
+
async setPrice(path, pricing) {
|
|
10
|
+
const key = path === "_default" ? DEFAULT_KEY : `${PRICING_PREFIX}${path}`;
|
|
11
|
+
await metaDb.put(key, { amount: pricing.amount, currency: pricing.currency });
|
|
12
|
+
},
|
|
13
|
+
async getPrice(path) {
|
|
14
|
+
// Try per-path price first
|
|
15
|
+
const key = `${PRICING_PREFIX}${path}`;
|
|
16
|
+
const perPath = await metaDb.get(key);
|
|
17
|
+
if (perPath?.amount != null) {
|
|
18
|
+
return { amount: perPath.amount, currency: perPath.currency };
|
|
19
|
+
}
|
|
20
|
+
// Fall back to _default
|
|
21
|
+
const fallback = await metaDb.get(DEFAULT_KEY);
|
|
22
|
+
if (fallback?.amount != null) {
|
|
23
|
+
return { amount: fallback.amount, currency: fallback.currency };
|
|
24
|
+
}
|
|
25
|
+
return null;
|
|
26
|
+
},
|
|
27
|
+
async removePrice(path) {
|
|
28
|
+
const key = path === "_default" ? DEFAULT_KEY : `${PRICING_PREFIX}${path}`;
|
|
29
|
+
await metaDb.del(key);
|
|
30
|
+
},
|
|
31
|
+
async listPrices() {
|
|
32
|
+
const all = await metaDb.all();
|
|
33
|
+
const results = [];
|
|
34
|
+
// Navigate into the "pricing" subtree of the nested OrbitDB
|
|
35
|
+
const pricingTree = all?.pricing;
|
|
36
|
+
if (!pricingTree || typeof pricingTree !== "object")
|
|
37
|
+
return results;
|
|
38
|
+
// Walk the pricing subtree to find all pricing entries (may be nested)
|
|
39
|
+
const walk = (obj, prefix) => {
|
|
40
|
+
for (const [k, v] of Object.entries(obj)) {
|
|
41
|
+
const path = prefix ? `${prefix}/${k}` : k;
|
|
42
|
+
if (v && typeof v === "object" && "amount" in v && "currency" in v) {
|
|
43
|
+
results.push({ path, ...v });
|
|
44
|
+
}
|
|
45
|
+
else if (v && typeof v === "object") {
|
|
46
|
+
walk(v, path);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
walk(pricingTree, "");
|
|
51
|
+
return results;
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=pricing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pricing.js","sourceRoot":"","sources":["../../src/data/pricing.ts"],"names":[],"mappings":"AAEA,MAAM,cAAc,GAAG,UAAU,CAAC;AAClC,MAAM,WAAW,GAAG,kBAAkB,CAAC;AAEvC;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAW;IAC5C,OAAO;QACL,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,OAAqB;YAChD,MAAM,GAAG,GAAG,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,cAAc,GAAG,IAAI,EAAE,CAAC;YAC3E,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChF,CAAC;QAED,KAAK,CAAC,QAAQ,CAAC,IAAY;YACzB,2BAA2B;YAC3B,MAAM,GAAG,GAAG,GAAG,cAAc,GAAG,IAAI,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,OAAO,EAAE,MAAM,IAAI,IAAI,EAAE,CAAC;gBAC5B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;YAChE,CAAC;YAED,wBAAwB;YACxB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAC/C,IAAI,QAAQ,EAAE,MAAM,IAAI,IAAI,EAAE,CAAC;gBAC7B,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAClE,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAED,KAAK,CAAC,WAAW,CAAC,IAAY;YAC5B,MAAM,GAAG,GAAG,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,cAAc,GAAG,IAAI,EAAE,CAAC;YAC3E,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;QAED,KAAK,CAAC,UAAU;YACd,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;YAC/B,MAAM,OAAO,GAA2C,EAAE,CAAC;YAE3D,4DAA4D;YAC5D,MAAM,WAAW,GAAG,GAAG,EAAE,OAAO,CAAC;YACjC,IAAI,CAAC,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ;gBAAE,OAAO,OAAO,CAAC;YAEpE,uEAAuE;YACvE,MAAM,IAAI,GAAG,CAAC,GAAQ,EAAE,MAAc,EAAE,EAAE;gBACxC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBACzC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC3C,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,QAAQ,IAAK,CAAS,IAAI,UAAU,IAAK,CAAS,EAAE,CAAC;wBACrF,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAI,CAAkB,EAAE,CAAC,CAAC;oBACjD,CAAC;yBAAM,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;wBACtC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;oBAChB,CAAC;gBACH,CAAC;YACH,CAAC,CAAC;YAEF,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YACtB,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { EncryptedData } from "../types.js";
|
|
2
|
+
/** JSON-safe AES encrypted data (Uint8Array fields as base64 strings) */
|
|
3
|
+
export interface SerializedAESEncryptedData {
|
|
4
|
+
engine: "aes";
|
|
5
|
+
ciphertext: string;
|
|
6
|
+
iv: string;
|
|
7
|
+
authTag: string;
|
|
8
|
+
keyDerivation: {
|
|
9
|
+
source: "wallet-signature" | "password" | "raw";
|
|
10
|
+
salt: string;
|
|
11
|
+
kdf: "hkdf-sha256" | "pbkdf2-sha256";
|
|
12
|
+
iterations?: number;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
/** JSON-safe Lit encrypted data */
|
|
16
|
+
export interface SerializedLitEncryptedData {
|
|
17
|
+
engine: "lit";
|
|
18
|
+
ciphertext: string;
|
|
19
|
+
dataToEncryptHash: string;
|
|
20
|
+
accessControlConditions: unknown[];
|
|
21
|
+
chain: string;
|
|
22
|
+
}
|
|
23
|
+
export type SerializedEncryptedData = SerializedAESEncryptedData | SerializedLitEncryptedData;
|
|
24
|
+
export declare function serializeEncrypted(data: EncryptedData): SerializedEncryptedData;
|
|
25
|
+
export declare function deserializeEncrypted(data: SerializedEncryptedData): EncryptedData;
|
|
26
|
+
/** Check whether a stored value is a serialized encrypted blob */
|
|
27
|
+
export declare function isSerializedEncrypted(value: unknown): value is SerializedEncryptedData;
|
|
28
|
+
//# sourceMappingURL=serialization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialization.d.ts","sourceRoot":"","sources":["../../src/data/serialization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,aAAa,EAAoB,MAAM,aAAa,CAAC;AAErF,yEAAyE;AACzE,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,KAAK,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE;QACb,MAAM,EAAE,kBAAkB,GAAG,UAAU,GAAG,KAAK,CAAC;QAChD,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,aAAa,GAAG,eAAe,CAAC;QACrC,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,mCAAmC;AACnC,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,KAAK,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uBAAuB,EAAE,OAAO,EAAE,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,uBAAuB,GAAG,0BAA0B,GAAG,0BAA0B,CAAC;AAmB9F,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,aAAa,GAAG,uBAAuB,CA0B/E;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,uBAAuB,GAAG,aAAa,CAwBjF;AAED,kEAAkE;AAClE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,uBAAuB,CAQtF"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
function uint8ToBase64(bytes) {
|
|
2
|
+
let binary = "";
|
|
3
|
+
for (const byte of bytes) {
|
|
4
|
+
binary += String.fromCharCode(byte);
|
|
5
|
+
}
|
|
6
|
+
return btoa(binary);
|
|
7
|
+
}
|
|
8
|
+
function base64ToUint8(b64) {
|
|
9
|
+
const binary = atob(b64);
|
|
10
|
+
const bytes = new Uint8Array(binary.length);
|
|
11
|
+
for (let i = 0; i < binary.length; i++) {
|
|
12
|
+
bytes[i] = binary.charCodeAt(i);
|
|
13
|
+
}
|
|
14
|
+
return bytes;
|
|
15
|
+
}
|
|
16
|
+
export function serializeEncrypted(data) {
|
|
17
|
+
if (data.engine === "aes") {
|
|
18
|
+
const aes = data;
|
|
19
|
+
return {
|
|
20
|
+
engine: "aes",
|
|
21
|
+
ciphertext: uint8ToBase64(aes.ciphertext),
|
|
22
|
+
iv: uint8ToBase64(aes.iv),
|
|
23
|
+
authTag: uint8ToBase64(aes.authTag),
|
|
24
|
+
keyDerivation: {
|
|
25
|
+
source: aes.keyDerivation.source,
|
|
26
|
+
salt: uint8ToBase64(aes.keyDerivation.salt),
|
|
27
|
+
kdf: aes.keyDerivation.kdf,
|
|
28
|
+
...(aes.keyDerivation.iterations != null
|
|
29
|
+
? { iterations: aes.keyDerivation.iterations }
|
|
30
|
+
: {}),
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
const lit = data;
|
|
35
|
+
return {
|
|
36
|
+
engine: "lit",
|
|
37
|
+
ciphertext: uint8ToBase64(lit.ciphertext),
|
|
38
|
+
dataToEncryptHash: lit.dataToEncryptHash,
|
|
39
|
+
accessControlConditions: lit.accessControlConditions,
|
|
40
|
+
chain: lit.chain,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
export function deserializeEncrypted(data) {
|
|
44
|
+
if (data.engine === "aes") {
|
|
45
|
+
return {
|
|
46
|
+
engine: "aes",
|
|
47
|
+
ciphertext: base64ToUint8(data.ciphertext),
|
|
48
|
+
iv: base64ToUint8(data.iv),
|
|
49
|
+
authTag: base64ToUint8(data.authTag),
|
|
50
|
+
keyDerivation: {
|
|
51
|
+
source: data.keyDerivation.source,
|
|
52
|
+
salt: base64ToUint8(data.keyDerivation.salt),
|
|
53
|
+
kdf: data.keyDerivation.kdf,
|
|
54
|
+
...(data.keyDerivation.iterations != null
|
|
55
|
+
? { iterations: data.keyDerivation.iterations }
|
|
56
|
+
: {}),
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
engine: "lit",
|
|
62
|
+
ciphertext: base64ToUint8(data.ciphertext),
|
|
63
|
+
dataToEncryptHash: data.dataToEncryptHash,
|
|
64
|
+
accessControlConditions: data.accessControlConditions,
|
|
65
|
+
chain: data.chain,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
/** Check whether a stored value is a serialized encrypted blob */
|
|
69
|
+
export function isSerializedEncrypted(value) {
|
|
70
|
+
return (value !== null &&
|
|
71
|
+
typeof value === "object" &&
|
|
72
|
+
"engine" in value &&
|
|
73
|
+
(value.engine === "aes" ||
|
|
74
|
+
value.engine === "lit"));
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=serialization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialization.js","sourceRoot":"","sources":["../../src/data/serialization.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { AESEngine } from "../encryption/aes.js";
|
|
2
|
+
import type { ChainFamily, IDataLayer, IEncryptionLayer, LitAccessCondition, LitAuthSig, VaultEntry, VaultPath, WalletAddress } from "../types.js";
|
|
3
|
+
export declare function createVault(orbitdb: any, config: {
|
|
4
|
+
dbName?: string;
|
|
5
|
+
author?: WalletAddress;
|
|
6
|
+
authorChain?: ChainFamily;
|
|
7
|
+
/** AES engine for private/shared encryption */
|
|
8
|
+
aesEngine?: AESEngine;
|
|
9
|
+
/** Encryption layer for Lit Protocol operations */
|
|
10
|
+
encryptionLayer?: IEncryptionLayer;
|
|
11
|
+
}): Promise<IDataLayer & {
|
|
12
|
+
close: () => Promise<void>;
|
|
13
|
+
db: any;
|
|
14
|
+
metaDb: any;
|
|
15
|
+
setDefaultKey: (key: CryptoKey) => void;
|
|
16
|
+
setAuthSig: (authSig: LitAuthSig) => void;
|
|
17
|
+
updateAccess: (path: VaultPath, newConditions: LitAccessCondition[], opts?: {
|
|
18
|
+
chain?: string;
|
|
19
|
+
}) => Promise<VaultEntry>;
|
|
20
|
+
}>;
|
|
21
|
+
//# sourceMappingURL=vault.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault.d.ts","sourceRoot":"","sources":["../../src/data/vault.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAEV,WAAW,EAEX,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,EAEV,UAAU,EACV,SAAS,EAET,aAAa,EACd,MAAM,aAAa,CAAC;AAcrB,wBAAsB,WAAW,CAC/B,OAAO,EAAE,GAAG,EACZ,MAAM,EAAE;IACN,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,+CAA+C;IAC/C,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,mDAAmD;IACnD,eAAe,CAAC,EAAE,gBAAgB,CAAC;CACpC,GACA,OAAO,CACR,UAAU,GAAG;IACX,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,EAAE,EAAE,GAAG,CAAC;IACR,MAAM,EAAE,GAAG,CAAC;IACZ,aAAa,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,CAAC;IACxC,UAAU,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,CAAC;IAC1C,YAAY,EAAE,CACZ,IAAI,EAAE,SAAS,EACf,aAAa,EAAE,kBAAkB,EAAE,EACnC,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KACtB,OAAO,CAAC,UAAU,CAAC,CAAC;CAC1B,CACF,CAmUA"}
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
// oxlint-disable-next-line typescript/triple-slash-reference
|
|
2
|
+
/// <reference path="../types/orbitdb.d.ts" />
|
|
3
|
+
import { useDatabaseType } from "@orbitdb/core";
|
|
4
|
+
import { Nested } from "@orbitdb/nested-db";
|
|
5
|
+
import { deserializeEncrypted, isSerializedEncrypted, serializeEncrypted, } from "./serialization.js";
|
|
6
|
+
// Register the Nested database type at the point of use so callers do not depend on setup order.
|
|
7
|
+
useDatabaseType(Nested);
|
|
8
|
+
function normalizePath(path) {
|
|
9
|
+
return Array.isArray(path) ? path.join("/") : path;
|
|
10
|
+
}
|
|
11
|
+
export async function createVault(orbitdb, config) {
|
|
12
|
+
const db = await orbitdb.open(config.dbName ?? "orbitmem-vault", { type: "nested" });
|
|
13
|
+
// Metadata store: path -> { visibility, encrypted, encryptionEngine, author, authorChain, timestamp }
|
|
14
|
+
const metaDb = await orbitdb.open(`${config.dbName ?? "orbitmem-vault"}-meta`, {
|
|
15
|
+
type: "nested",
|
|
16
|
+
});
|
|
17
|
+
// Default AES key for private data — set via setDefaultKey() after wallet connect
|
|
18
|
+
let defaultKey;
|
|
19
|
+
let litAuthSig;
|
|
20
|
+
function makeEntry(_path, value, visibility, encrypted, engine) {
|
|
21
|
+
return {
|
|
22
|
+
value,
|
|
23
|
+
visibility,
|
|
24
|
+
author: config.author ?? "0x0",
|
|
25
|
+
authorChain: config.authorChain ?? "evm",
|
|
26
|
+
timestamp: Date.now(),
|
|
27
|
+
encrypted,
|
|
28
|
+
encryptionEngine: engine,
|
|
29
|
+
hash: "",
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/** Encrypt a value for storage. Returns the serialized blob or the raw value (public). */
|
|
33
|
+
async function encryptValue(value, visibility, engine, opts) {
|
|
34
|
+
if (visibility === "public" || !engine)
|
|
35
|
+
return value;
|
|
36
|
+
const plaintext = new TextEncoder().encode(JSON.stringify(value));
|
|
37
|
+
if (engine === "aes") {
|
|
38
|
+
if (!config.aesEngine)
|
|
39
|
+
throw new Error("AES engine not configured — pass aesEngine to createVault");
|
|
40
|
+
let cryptoKey;
|
|
41
|
+
if (visibility === "private") {
|
|
42
|
+
cryptoKey = defaultKey;
|
|
43
|
+
if (!cryptoKey)
|
|
44
|
+
throw new Error("No default key — call setDefaultKey() or connect() first");
|
|
45
|
+
}
|
|
46
|
+
else if (visibility === "shared" && opts?.sharedKeySource) {
|
|
47
|
+
cryptoKey = await config.aesEngine.deriveKey(opts.sharedKeySource);
|
|
48
|
+
}
|
|
49
|
+
if (!cryptoKey)
|
|
50
|
+
throw new Error("No encryption key available");
|
|
51
|
+
const encrypted = await config.aesEngine.encrypt(plaintext, cryptoKey);
|
|
52
|
+
return serializeEncrypted(encrypted);
|
|
53
|
+
}
|
|
54
|
+
if (engine === "lit") {
|
|
55
|
+
if (!config.encryptionLayer)
|
|
56
|
+
throw new Error("Encryption layer not configured for Lit");
|
|
57
|
+
if (!opts?.accessConditions)
|
|
58
|
+
throw new Error("accessConditions required for Lit encryption");
|
|
59
|
+
const encrypted = await config.encryptionLayer.encrypt(plaintext, {
|
|
60
|
+
engine: "lit",
|
|
61
|
+
accessConditions: opts.accessConditions,
|
|
62
|
+
});
|
|
63
|
+
return serializeEncrypted(encrypted);
|
|
64
|
+
}
|
|
65
|
+
return value;
|
|
66
|
+
}
|
|
67
|
+
/** Attempt auto-decryption of a stored value. Returns the decrypted value or the raw value. */
|
|
68
|
+
async function tryDecrypt(rawValue, meta) {
|
|
69
|
+
if (!meta?.encrypted || !isSerializedEncrypted(rawValue))
|
|
70
|
+
return rawValue;
|
|
71
|
+
const encrypted = deserializeEncrypted(rawValue);
|
|
72
|
+
if (encrypted.engine === "aes" &&
|
|
73
|
+
config.aesEngine &&
|
|
74
|
+
meta.visibility === "private" &&
|
|
75
|
+
defaultKey) {
|
|
76
|
+
try {
|
|
77
|
+
const decrypted = await config.aesEngine.decrypt(encrypted, defaultKey);
|
|
78
|
+
return JSON.parse(new TextDecoder().decode(decrypted));
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
// Decryption failed — return raw blob
|
|
82
|
+
return rawValue;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
if (encrypted.engine === "lit" && config.encryptionLayer && litAuthSig) {
|
|
86
|
+
try {
|
|
87
|
+
const decrypted = await config.encryptionLayer.decrypt(encrypted, { authSig: litAuthSig });
|
|
88
|
+
return JSON.parse(new TextDecoder().decode(decrypted));
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
return rawValue;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
// shared+aes (no internal key) or lit (no authSig) — return encrypted blob
|
|
95
|
+
return rawValue;
|
|
96
|
+
}
|
|
97
|
+
const vaultImpl = {
|
|
98
|
+
db,
|
|
99
|
+
metaDb,
|
|
100
|
+
setDefaultKey(key) {
|
|
101
|
+
defaultKey = key;
|
|
102
|
+
},
|
|
103
|
+
setAuthSig(authSig) {
|
|
104
|
+
litAuthSig = authSig;
|
|
105
|
+
},
|
|
106
|
+
async put(path, value, opts) {
|
|
107
|
+
const key = normalizePath(path);
|
|
108
|
+
const visibility = opts?.visibility ?? "private";
|
|
109
|
+
const encrypted = visibility !== "public";
|
|
110
|
+
const engine = encrypted ? (opts?.engine ?? "aes") : null;
|
|
111
|
+
const storedValue = await encryptValue(value, visibility, engine, opts);
|
|
112
|
+
const hash = await db.put(key, storedValue);
|
|
113
|
+
const meta = { visibility, encrypted, timestamp: Date.now() };
|
|
114
|
+
if (engine)
|
|
115
|
+
meta.encryptionEngine = engine;
|
|
116
|
+
await metaDb.put(key, meta);
|
|
117
|
+
return { ...makeEntry(key, value, visibility, encrypted, engine ?? undefined), hash };
|
|
118
|
+
},
|
|
119
|
+
async insert(obj, opts) {
|
|
120
|
+
const visibility = opts?.visibility ?? "private";
|
|
121
|
+
const prefix = opts?.prefix;
|
|
122
|
+
// Flatten the object and put each leaf
|
|
123
|
+
const flatten = (o, parentKey = "") => {
|
|
124
|
+
const entries = [];
|
|
125
|
+
for (const [k, v] of Object.entries(o)) {
|
|
126
|
+
const newKey = parentKey ? `${parentKey}/${k}` : k;
|
|
127
|
+
if (v && typeof v === "object" && !Array.isArray(v)) {
|
|
128
|
+
entries.push(...flatten(v, newKey));
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
entries.push([newKey, v]);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return entries;
|
|
135
|
+
};
|
|
136
|
+
const leaves = flatten(obj, prefix ?? "");
|
|
137
|
+
for (const [leafKey, leafValue] of leaves) {
|
|
138
|
+
await vaultImpl.put(leafKey, leafValue, { visibility, engine: opts?.engine });
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
async get(path) {
|
|
142
|
+
const key = normalizePath(path);
|
|
143
|
+
const rawValue = await db.get(key);
|
|
144
|
+
if (rawValue === undefined)
|
|
145
|
+
return null;
|
|
146
|
+
const meta = await metaDb.get(key);
|
|
147
|
+
const visibility = meta?.visibility ?? "private";
|
|
148
|
+
const encEngine = meta?.encryptionEngine;
|
|
149
|
+
const value = await tryDecrypt(rawValue, meta);
|
|
150
|
+
return makeEntry(key, value, visibility, meta?.encrypted ?? visibility !== "public", encEngine);
|
|
151
|
+
},
|
|
152
|
+
async del(path) {
|
|
153
|
+
const key = normalizePath(path);
|
|
154
|
+
await db.del(key);
|
|
155
|
+
await metaDb.del(key);
|
|
156
|
+
},
|
|
157
|
+
async keys(prefix) {
|
|
158
|
+
const all = await db.all();
|
|
159
|
+
const flatten = (o, parentKey = "") => {
|
|
160
|
+
const keys = [];
|
|
161
|
+
if (o && typeof o === "object" && !Array.isArray(o) && !isSerializedEncrypted(o)) {
|
|
162
|
+
for (const [k, v] of Object.entries(o)) {
|
|
163
|
+
const newKey = parentKey ? `${parentKey}/${k}` : k;
|
|
164
|
+
keys.push(...flatten(v, newKey));
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
keys.push(parentKey);
|
|
169
|
+
}
|
|
170
|
+
return keys;
|
|
171
|
+
};
|
|
172
|
+
const allKeys = flatten(all);
|
|
173
|
+
if (prefix)
|
|
174
|
+
return allKeys.filter((k) => k.startsWith(prefix));
|
|
175
|
+
return allKeys;
|
|
176
|
+
},
|
|
177
|
+
async all() {
|
|
178
|
+
return db.all();
|
|
179
|
+
},
|
|
180
|
+
async query(filter) {
|
|
181
|
+
const allData = await db.all();
|
|
182
|
+
const results = [];
|
|
183
|
+
const flatten = (o, parentKey = "") => {
|
|
184
|
+
const entries = [];
|
|
185
|
+
if (o && typeof o === "object" && !Array.isArray(o) && !isSerializedEncrypted(o)) {
|
|
186
|
+
for (const [k, v] of Object.entries(o)) {
|
|
187
|
+
const newKey = parentKey ? `${parentKey}/${k}` : k;
|
|
188
|
+
entries.push(...flatten(v, newKey));
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
entries.push([parentKey, o]);
|
|
193
|
+
}
|
|
194
|
+
return entries;
|
|
195
|
+
};
|
|
196
|
+
const leaves = flatten(allData);
|
|
197
|
+
for (const [key, value] of leaves) {
|
|
198
|
+
if (filter.prefix && !key.startsWith(filter.prefix))
|
|
199
|
+
continue;
|
|
200
|
+
const meta = await metaDb.get(key);
|
|
201
|
+
if (filter.visibility && meta?.visibility !== filter.visibility)
|
|
202
|
+
continue;
|
|
203
|
+
if (filter.since && (meta?.timestamp ?? 0) < filter.since)
|
|
204
|
+
continue;
|
|
205
|
+
const resolved = await tryDecrypt(value, meta);
|
|
206
|
+
results.push(makeEntry(key, resolved, meta?.visibility ?? "private", meta?.encrypted ?? true));
|
|
207
|
+
if (filter.limit && results.length >= filter.limit)
|
|
208
|
+
break;
|
|
209
|
+
}
|
|
210
|
+
return results;
|
|
211
|
+
},
|
|
212
|
+
async sync() {
|
|
213
|
+
return {
|
|
214
|
+
syncing: false,
|
|
215
|
+
pendingPush: 0,
|
|
216
|
+
pendingPull: 0,
|
|
217
|
+
lastSynced: Date.now(),
|
|
218
|
+
connectedPeers: 0,
|
|
219
|
+
};
|
|
220
|
+
},
|
|
221
|
+
getSyncStatus() {
|
|
222
|
+
return {
|
|
223
|
+
syncing: false,
|
|
224
|
+
pendingPush: 0,
|
|
225
|
+
pendingPull: 0,
|
|
226
|
+
lastSynced: null,
|
|
227
|
+
connectedPeers: 0,
|
|
228
|
+
};
|
|
229
|
+
},
|
|
230
|
+
onChange(callback) {
|
|
231
|
+
const handler = (entry) => {
|
|
232
|
+
callback({ type: "put", path: entry?.payload?.key ?? "", entry: undefined });
|
|
233
|
+
};
|
|
234
|
+
db.events.on("update", handler);
|
|
235
|
+
return () => db.events.off("update", handler);
|
|
236
|
+
},
|
|
237
|
+
async exportSnapshot() {
|
|
238
|
+
const allData = await db.all();
|
|
239
|
+
const data = new TextEncoder().encode(JSON.stringify(allData));
|
|
240
|
+
return { data, entryCount: Object.keys(allData).length, timestamp: Date.now() };
|
|
241
|
+
},
|
|
242
|
+
async importSnapshot(data) {
|
|
243
|
+
const obj = JSON.parse(new TextDecoder().decode(data));
|
|
244
|
+
await db.insert(obj);
|
|
245
|
+
return { merged: Object.keys(obj).length, conflicts: 0 };
|
|
246
|
+
},
|
|
247
|
+
async updateAccess(path, newConditions, opts) {
|
|
248
|
+
if (!config.encryptionLayer)
|
|
249
|
+
throw new Error("Encryption layer not configured for Lit");
|
|
250
|
+
if (!litAuthSig)
|
|
251
|
+
throw new Error("No authSig — call setAuthSig() first");
|
|
252
|
+
const key = normalizePath(path);
|
|
253
|
+
const rawValue = await db.get(key);
|
|
254
|
+
if (rawValue === undefined)
|
|
255
|
+
throw new Error(`Not found: ${key}`);
|
|
256
|
+
const meta = await metaDb.get(key);
|
|
257
|
+
if (meta?.encryptionEngine !== "lit")
|
|
258
|
+
throw new Error(`Entry "${key}" is not Lit-encrypted (engine: ${meta?.encryptionEngine})`);
|
|
259
|
+
if (!isSerializedEncrypted(rawValue))
|
|
260
|
+
throw new Error(`Entry "${key}" is not encrypted`);
|
|
261
|
+
// Decrypt with current conditions
|
|
262
|
+
const encrypted = deserializeEncrypted(rawValue);
|
|
263
|
+
const plaintext = await config.encryptionLayer.decrypt(encrypted, { authSig: litAuthSig });
|
|
264
|
+
// Re-encrypt with new conditions
|
|
265
|
+
const reEncrypted = await config.encryptionLayer.encrypt(plaintext, {
|
|
266
|
+
engine: "lit",
|
|
267
|
+
accessConditions: newConditions,
|
|
268
|
+
chain: opts?.chain,
|
|
269
|
+
});
|
|
270
|
+
const serialized = serializeEncrypted(reEncrypted);
|
|
271
|
+
// Write back
|
|
272
|
+
await db.put(key, serialized);
|
|
273
|
+
await metaDb.put(key, { ...meta, timestamp: Date.now() });
|
|
274
|
+
const value = JSON.parse(new TextDecoder().decode(plaintext));
|
|
275
|
+
return makeEntry(key, value, meta.visibility, true, "lit");
|
|
276
|
+
},
|
|
277
|
+
async close() {
|
|
278
|
+
await db.close();
|
|
279
|
+
await metaDb.close();
|
|
280
|
+
},
|
|
281
|
+
};
|
|
282
|
+
return vaultImpl;
|
|
283
|
+
}
|
|
284
|
+
//# sourceMappingURL=vault.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault.js","sourceRoot":"","sources":["../../src/data/vault.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery-layer.d.ts","sourceRoot":"","sources":["../../src/discovery/discovery-layer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAoB,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAItF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,CAK7E"}
|