@agentunion/fastaun-browser 0.4.5 → 0.4.6

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.
Files changed (54) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/_packed_docs/CHANGELOG.md +28 -0
  3. package/_packed_docs/INDEX.md +2 -2
  4. package/_packed_docs/KITE_DOCS_GUIDE.md +1 -1
  5. package/_packed_docs/agent.md//350/277/234/347/250/213agent.md/347/274/223/345/255/230/344/270/216etag/351/200/217/344/274/240/346/226/271/346/241/210.md +73 -84
  6. package/_packed_docs/sdk/01-/345/277/253/351/200/237/345/274/200/345/247/213.md +15 -14
  7. package/_packed_docs/sdk/02-WebSocket/345/215/217/350/256/256.md +2 -2
  8. package/_packed_docs/sdk/03-/346/240/270/345/277/203/346/246/202/345/277/265.md +22 -5
  9. package/_packed_docs/sdk/04-/350/277/236/346/216/245/344/270/216/350/256/244/350/257/201.md +42 -26
  10. package/_packed_docs/sdk/05-E2EE/345/212/240/345/257/206/351/200/232/344/277/241.md +1 -1
  11. package/_packed_docs/sdk/06-API/346/211/213/345/206/214.md +61 -35
  12. package/_packed_docs/sdk/08-/346/234/200/344/275/263/345/256/236/350/267/265.md +3 -3
  13. package/_packed_docs/sdk/09-message-rpc-manual.md +6 -6
  14. package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +6 -4
  15. package/_packed_docs/sdk/INDEX.md +2 -2
  16. package/_packed_docs/sdk/README.md +3 -3
  17. package/dist/agent-md.d.ts +111 -0
  18. package/dist/agent-md.d.ts.map +1 -0
  19. package/dist/agent-md.js +656 -0
  20. package/dist/agent-md.js.map +1 -0
  21. package/dist/aid-store.d.ts +7 -40
  22. package/dist/aid-store.d.ts.map +1 -1
  23. package/dist/aid-store.js +71 -171
  24. package/dist/aid-store.js.map +1 -1
  25. package/dist/auth.js +1 -1
  26. package/dist/auth.js.map +1 -1
  27. package/dist/bundle.js +4224 -4151
  28. package/dist/client.d.ts +3 -61
  29. package/dist/client.d.ts.map +1 -1
  30. package/dist/client.js +136 -703
  31. package/dist/client.js.map +1 -1
  32. package/dist/index.d.ts +3 -2
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +2 -1
  35. package/dist/index.js.map +1 -1
  36. package/dist/keystore/index.d.ts +6 -2
  37. package/dist/keystore/index.d.ts.map +1 -1
  38. package/dist/keystore/indexeddb-identity-store.d.ts +59 -0
  39. package/dist/keystore/indexeddb-identity-store.d.ts.map +1 -0
  40. package/dist/keystore/indexeddb-identity-store.js +489 -0
  41. package/dist/keystore/indexeddb-identity-store.js.map +1 -0
  42. package/dist/keystore/indexeddb-shared.d.ts +76 -0
  43. package/dist/keystore/indexeddb-shared.d.ts.map +1 -0
  44. package/dist/keystore/indexeddb-shared.js +382 -0
  45. package/dist/keystore/indexeddb-shared.js.map +1 -0
  46. package/dist/keystore/indexeddb-token-store.d.ts +119 -0
  47. package/dist/keystore/indexeddb-token-store.d.ts.map +1 -0
  48. package/dist/keystore/indexeddb-token-store.js +1086 -0
  49. package/dist/keystore/indexeddb-token-store.js.map +1 -0
  50. package/dist/register-flow.d.ts +22 -3
  51. package/dist/register-flow.d.ts.map +1 -1
  52. package/dist/register-flow.js +49 -3
  53. package/dist/register-flow.js.map +1 -1
  54. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexeddb-identity-store.js","sourceRoot":"","sources":["../../src/keystore/indexeddb-identity-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ import type { ModuleLogger } from '../logger.js';
2
+ import type { AgentMdCacheRecord, AgentMdCacheUpsert } from './index.js';
3
+ import { type GroupOldEpochRecord, type GroupSecretRecord, type JsonObject, type KeyPairRecord, type MetadataRecord, type PrekeyMap, type PrekeyRecord, type SessionRecord } from '../types.js';
4
+ export declare const _noopLog: ModuleLogger;
5
+ export declare const STORE_KEY_PAIRS = "key_pairs";
6
+ export declare const STORE_CERTS = "certs";
7
+ export declare const STORE_METADATA = "metadata";
8
+ export declare const STORE_INSTANCE_STATE = "instance_state";
9
+ export declare const STORE_PREKEYS = "prekeys";
10
+ export declare const STORE_GROUP_CURRENT = "group_current";
11
+ export declare const STORE_GROUP_OLD_EPOCHS = "group_old_epochs";
12
+ export declare const STORE_SESSIONS = "e2ee_sessions";
13
+ export declare const STORE_GROUP_STATE = "group_state";
14
+ export declare const STORE_AGENT_MD_CACHE = "agent_md_cache";
15
+ export declare const STORE_PENDING_IDENTITIES = "pending_identities";
16
+ export declare const STRUCTURED_RECOVERY_RETENTION_MS: number;
17
+ export declare function safeAid(aid: string): string;
18
+ export declare function encodePart(value: string): string;
19
+ export declare function deepClone<T>(value: T): T;
20
+ export declare function isRecord(value: unknown): value is JsonObject;
21
+ export declare function toBufferSource(bytes: Uint8Array): BufferSource;
22
+ export declare function sameJson(a: JsonObject | string | number | boolean | null | undefined, b: JsonObject | string | number | boolean | null | undefined): boolean;
23
+ export declare function randomHex(byteLength: number): string;
24
+ export declare function metadataStoreKey(aid: string): string;
25
+ export declare function normalizeCertFingerprint(certFingerprint?: string): string;
26
+ export declare function fingerprintFromCertPem(certPem: string): Promise<string>;
27
+ export declare function certStoreKey(aid: string, certFingerprint?: string): string;
28
+ export declare function instanceStateStoreKey(aid: string, deviceId: string, slotId?: string): string;
29
+ export declare function prekeyPrefix(aid: string): string;
30
+ export declare function prekeyStoreKey(aid: string, prekeyId: string, deviceId?: string): string;
31
+ export declare function groupCurrentPrefix(aid: string): string;
32
+ export declare function groupCurrentStoreKey(aid: string, groupId: string): string;
33
+ export declare function groupOldPrefix(aid: string, groupId?: string): string;
34
+ export declare function groupOldStoreKey(aid: string, groupId: string, epoch: number): string;
35
+ export declare function sessionPrefix(aid: string): string;
36
+ export declare function sessionStoreKey(aid: string, sessionId: string): string;
37
+ export declare function seqTrackerPrefix(aid: string, deviceId: string, slotId: string): string;
38
+ export declare function seqTrackerStoreKey(aid: string, deviceId: string, slotId: string, namespace: string): string;
39
+ export declare function agentMdCachePrefix(ownerAid: string): string;
40
+ export declare function agentMdCacheStoreKey(ownerAid: string, targetAid: string): string;
41
+ export declare function pendingIdentityPrefix(aid: string): string;
42
+ export declare function stripStructuredFields(metadata: MetadataRecord): MetadataRecord;
43
+ export declare function defaultAgentMdCacheRecord(aid: string): AgentMdCacheRecord;
44
+ export declare function normalizeAgentMdCacheRecord(aid: string, value: unknown): AgentMdCacheRecord | null;
45
+ export declare function mergeAgentMdCacheRecord(aid: string, current: AgentMdCacheRecord | null, fields: AgentMdCacheUpsert): AgentMdCacheRecord;
46
+ export interface EncryptedEnvelope {
47
+ ct: string;
48
+ iv: string;
49
+ salt: string;
50
+ }
51
+ export declare function encryptPEM(pem: string, seed: string): Promise<EncryptedEnvelope>;
52
+ export declare function decryptPEM(enc: EncryptedEnvelope, seed: string): Promise<string>;
53
+ export declare function hasEncryptionSeed(seed: string | undefined): seed is string;
54
+ export declare function openDB(): Promise<IDBDatabase>;
55
+ export declare function idbGet<T>(storeName: string, key: string): Promise<T | undefined>;
56
+ export declare function idbGetAll<T>(storeName: string): Promise<Array<{
57
+ key: string;
58
+ value: T;
59
+ }>>;
60
+ export declare function idbGetAllByPrefix<T>(storeName: string, prefix: string): Promise<Array<{
61
+ key: string;
62
+ value: T;
63
+ }>>;
64
+ export declare function idbPut<T>(storeName: string, key: string, value: T): Promise<void>;
65
+ export declare function idbDelete(storeName: string, key: string): Promise<void>;
66
+ export declare function extractSpkiB64FromCertPem(certPem: string): string;
67
+ export type LegacyGroupSecretMap = Record<string, GroupSecretRecord>;
68
+ export type PendingIdentityRecord = {
69
+ aid: string;
70
+ key_pair?: JsonObject;
71
+ cert?: string;
72
+ created_at: number;
73
+ updated_at: number;
74
+ };
75
+ export type { GroupOldEpochRecord, GroupSecretRecord, JsonObject, KeyPairRecord, MetadataRecord, PrekeyMap, PrekeyRecord, SessionRecord, };
76
+ //# sourceMappingURL=indexeddb-shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexeddb-shared.d.ts","sourceRoot":"","sources":["../../src/keystore/indexeddb-shared.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAoB,MAAM,YAAY,CAAC;AAC3F,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,QAAQ,EAAE,YAAmF,CAAC;AAG3G,eAAO,MAAM,eAAe,cAAc,CAAC;AAC3C,eAAO,MAAM,WAAW,UAAU,CAAC;AACnC,eAAO,MAAM,cAAc,aAAa,CAAC;AACzC,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AACrD,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AACnD,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AACzD,eAAO,MAAM,cAAc,kBAAkB,CAAC;AAC9C,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAC/C,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AACrD,eAAO,MAAM,wBAAwB,uBAAuB,CAAC;AAE7D,eAAO,MAAM,gCAAgC,QAAuB,CAAC;AAOrE,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAExC;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAE5D;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,YAAY,CAE9D;AAED,wBAAgB,QAAQ,CACtB,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,EAC5D,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAC3D,OAAO,CAET;AAED,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAGpD;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,wBAAwB,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,CAOzE;AAED,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAS7E;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,CAI1E;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAK,GAAG,MAAM,CAIxF;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,SAAK,GAAG,MAAM,CAMnF;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAIpE;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpF;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAItF;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAE3G;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEhF;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,cAAc,GAAG,cAAc,CAM9E;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAgBzE;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,kBAAkB,GAAG,IAAI,CAYlG;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI,EAAE,MAAM,EAAE,kBAAkB,GAAG,kBAAkB,CAgBvI;AAMD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAqBD,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAUtF;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOtF;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,IAAI,MAAM,CAE1E;AAOD,wBAAgB,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,CA0C7C;AAID,wBAAsB,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAStF;AAED,wBAAsB,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC,CAAC,CAkB/F;AAED,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC,CAAC,CAqBvH;AAED,wBAAsB,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CASvF;AAED,wBAAsB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAS7E;AAID,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAsBjE;AAID,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;AAErE,MAAM,MAAM,qBAAqB,GAAG;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAGF,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,cAAc,EACd,SAAS,EACT,YAAY,EACZ,aAAa,GACd,CAAC"}
@@ -0,0 +1,382 @@
1
+ // ── IndexedDB 共享基础设施(内部模块,不对外导出)──────────────────
2
+ import { pemToArrayBuffer } from '../crypto.js';
3
+ import { normalizeInstanceId, slotIsolationKey } from '../config.js';
4
+ import { isJsonObject, } from '../types.js';
5
+ export const _noopLog = { error: () => { }, warn: () => { }, info: () => { }, debug: () => { } };
6
+ // ── 对象仓库名称 ──────────────────────────────────────────────────
7
+ export const STORE_KEY_PAIRS = 'key_pairs';
8
+ export const STORE_CERTS = 'certs';
9
+ export const STORE_METADATA = 'metadata';
10
+ export const STORE_INSTANCE_STATE = 'instance_state';
11
+ export const STORE_PREKEYS = 'prekeys';
12
+ export const STORE_GROUP_CURRENT = 'group_current';
13
+ export const STORE_GROUP_OLD_EPOCHS = 'group_old_epochs';
14
+ export const STORE_SESSIONS = 'e2ee_sessions';
15
+ export const STORE_GROUP_STATE = 'group_state';
16
+ export const STORE_AGENT_MD_CACHE = 'agent_md_cache';
17
+ export const STORE_PENDING_IDENTITIES = 'pending_identities';
18
+ export const STRUCTURED_RECOVERY_RETENTION_MS = 7 * 24 * 3600 * 1000;
19
+ const DB_NAME = 'aun-keystore';
20
+ const DB_VERSION = 7;
21
+ // ── 工具函数 ──────────────────────────────────────────────────────
22
+ export function safeAid(aid) {
23
+ return aid.replace(/[/\\:]/g, '_');
24
+ }
25
+ export function encodePart(value) {
26
+ return encodeURIComponent(value);
27
+ }
28
+ export function deepClone(value) {
29
+ return JSON.parse(JSON.stringify(value));
30
+ }
31
+ export function isRecord(value) {
32
+ return isJsonObject(value);
33
+ }
34
+ export function toBufferSource(bytes) {
35
+ return bytes.slice().buffer;
36
+ }
37
+ export function sameJson(a, b) {
38
+ return JSON.stringify(a) === JSON.stringify(b);
39
+ }
40
+ export function randomHex(byteLength) {
41
+ const bytes = crypto.getRandomValues(new Uint8Array(byteLength));
42
+ return Array.from(bytes).map((b) => b.toString(16).padStart(2, '0')).join('');
43
+ }
44
+ export function metadataStoreKey(aid) {
45
+ return safeAid(aid);
46
+ }
47
+ export function normalizeCertFingerprint(certFingerprint) {
48
+ const normalized = String(certFingerprint ?? '').trim().toLowerCase();
49
+ if (!normalized)
50
+ return '';
51
+ if (!normalized.startsWith('sha256:'))
52
+ return '';
53
+ const hexPart = normalized.slice(7);
54
+ if (hexPart.length !== 64 || /[^0-9a-f]/.test(hexPart))
55
+ return '';
56
+ return normalized;
57
+ }
58
+ export async function fingerprintFromCertPem(certPem) {
59
+ try {
60
+ const der = pemToArrayBuffer(certPem);
61
+ const hash = await crypto.subtle.digest('SHA-256', der);
62
+ const hex = Array.from(new Uint8Array(hash)).map((b) => b.toString(16).padStart(2, '0')).join('');
63
+ return `sha256:${hex}`;
64
+ }
65
+ catch {
66
+ return '';
67
+ }
68
+ }
69
+ export function certStoreKey(aid, certFingerprint) {
70
+ const normalized = normalizeCertFingerprint(certFingerprint);
71
+ if (!normalized)
72
+ return safeAid(aid);
73
+ return `${safeAid(aid)}|${encodePart(normalized)}`;
74
+ }
75
+ export function instanceStateStoreKey(aid, deviceId, slotId = '') {
76
+ const normalizedDevice = normalizeInstanceId(deviceId, 'device_id');
77
+ const slotKey = slotIsolationKey(slotId) || '_singleton';
78
+ return `${safeAid(aid)}|${encodePart(normalizedDevice)}|${encodePart(slotKey)}`;
79
+ }
80
+ export function prekeyPrefix(aid) {
81
+ return `${safeAid(aid)}|`;
82
+ }
83
+ export function prekeyStoreKey(aid, prekeyId, deviceId = '') {
84
+ const normalizedDeviceId = String(deviceId ?? '').trim();
85
+ if (!normalizedDeviceId) {
86
+ return `${safeAid(aid)}|${encodePart(prekeyId)}`;
87
+ }
88
+ return `${safeAid(aid)}|${encodePart(normalizedDeviceId)}|${encodePart(prekeyId)}`;
89
+ }
90
+ export function groupCurrentPrefix(aid) {
91
+ return `${safeAid(aid)}|`;
92
+ }
93
+ export function groupCurrentStoreKey(aid, groupId) {
94
+ return `${safeAid(aid)}|${encodePart(groupId)}`;
95
+ }
96
+ export function groupOldPrefix(aid, groupId) {
97
+ const base = `${safeAid(aid)}|`;
98
+ if (groupId === undefined)
99
+ return base;
100
+ return `${base}${encodePart(groupId)}|`;
101
+ }
102
+ export function groupOldStoreKey(aid, groupId, epoch) {
103
+ return `${safeAid(aid)}|${encodePart(groupId)}|${epoch}`;
104
+ }
105
+ export function sessionPrefix(aid) {
106
+ return `${safeAid(aid)}|`;
107
+ }
108
+ export function sessionStoreKey(aid, sessionId) {
109
+ return `${safeAid(aid)}|${encodePart(sessionId)}`;
110
+ }
111
+ export function seqTrackerPrefix(aid, deviceId, slotId) {
112
+ const normalizedDevice = normalizeInstanceId(deviceId, 'device_id');
113
+ const slotKey = slotIsolationKey(slotId) || '_singleton';
114
+ return `_seq_|${safeAid(aid)}|${encodePart(normalizedDevice)}|${encodePart(slotKey)}|`;
115
+ }
116
+ export function seqTrackerStoreKey(aid, deviceId, slotId, namespace) {
117
+ return `${seqTrackerPrefix(aid, deviceId, slotId)}${encodePart(namespace)}`;
118
+ }
119
+ export function agentMdCachePrefix(ownerAid) {
120
+ return `${safeAid(ownerAid)}|`;
121
+ }
122
+ export function agentMdCacheStoreKey(ownerAid, targetAid) {
123
+ return `${agentMdCachePrefix(ownerAid)}${encodePart(targetAid)}`;
124
+ }
125
+ export function pendingIdentityPrefix(aid) {
126
+ return `${safeAid(aid)}-`;
127
+ }
128
+ export function stripStructuredFields(metadata) {
129
+ const plain = deepClone(metadata);
130
+ delete plain.e2ee_prekeys;
131
+ delete plain.group_secrets;
132
+ delete plain.e2ee_sessions;
133
+ return plain;
134
+ }
135
+ export function defaultAgentMdCacheRecord(aid) {
136
+ return {
137
+ aid,
138
+ content: '',
139
+ local_etag: '',
140
+ remote_etag: '',
141
+ last_modified: '',
142
+ fetched_at: 0,
143
+ observed_at: 0,
144
+ checked_at: 0,
145
+ remote_status: '',
146
+ verify_status: '',
147
+ verify_error: '',
148
+ last_error: '',
149
+ updated_at: 0,
150
+ };
151
+ }
152
+ export function normalizeAgentMdCacheRecord(aid, value) {
153
+ if (!isRecord(value))
154
+ return null;
155
+ const out = defaultAgentMdCacheRecord(aid);
156
+ for (const key of ['content', 'local_etag', 'remote_etag', 'last_modified', 'remote_status', 'verify_status', 'verify_error', 'last_error']) {
157
+ out[key] = String(value[key] ?? '');
158
+ }
159
+ for (const key of ['fetched_at', 'observed_at', 'checked_at', 'updated_at']) {
160
+ const n = Number(value[key] ?? 0);
161
+ out[key] = Number.isFinite(n) ? Math.trunc(n) : 0;
162
+ }
163
+ out.aid = String(value.aid ?? aid).trim() || aid;
164
+ return out;
165
+ }
166
+ export function mergeAgentMdCacheRecord(aid, current, fields) {
167
+ const out = current ? { ...current } : defaultAgentMdCacheRecord(aid);
168
+ out.aid = aid;
169
+ for (const key of ['content', 'local_etag', 'remote_etag', 'last_modified', 'remote_status', 'verify_status', 'verify_error', 'last_error']) {
170
+ if (Object.prototype.hasOwnProperty.call(fields, key) && fields[key] !== undefined && fields[key] !== null) {
171
+ out[key] = String(fields[key] ?? '');
172
+ }
173
+ }
174
+ for (const key of ['fetched_at', 'observed_at', 'checked_at']) {
175
+ if (Object.prototype.hasOwnProperty.call(fields, key) && fields[key] !== undefined && fields[key] !== null) {
176
+ const n = Number(fields[key] ?? 0);
177
+ out[key] = Number.isFinite(n) ? Math.trunc(n) : 0;
178
+ }
179
+ }
180
+ out.updated_at = Date.now();
181
+ return out;
182
+ }
183
+ // ── 私钥字段级加密 (AES-256-GCM + PBKDF2) ──────────────────────
184
+ const _ENC_ALGO = 'AES-GCM';
185
+ const _PBKDF2_ITERATIONS = 100_000;
186
+ function _uint8ToBase64(bytes) {
187
+ let b = '';
188
+ for (let i = 0; i < bytes.length; i++)
189
+ b += String.fromCharCode(bytes[i]);
190
+ return btoa(b);
191
+ }
192
+ function _base64ToUint8(b64) {
193
+ return Uint8Array.from(atob(b64), c => c.charCodeAt(0));
194
+ }
195
+ async function _deriveEncKey(seed, salt) {
196
+ const raw = new TextEncoder().encode(seed);
197
+ const base = await crypto.subtle.importKey('raw', raw, 'PBKDF2', false, ['deriveKey']);
198
+ return crypto.subtle.deriveKey({ name: 'PBKDF2', salt: salt, iterations: _PBKDF2_ITERATIONS, hash: 'SHA-256' }, base, { name: _ENC_ALGO, length: 256 }, false, ['encrypt', 'decrypt']);
199
+ }
200
+ export async function encryptPEM(pem, seed) {
201
+ const salt = crypto.getRandomValues(new Uint8Array(16));
202
+ const iv = crypto.getRandomValues(new Uint8Array(12));
203
+ const key = await _deriveEncKey(seed, salt);
204
+ const ct = await crypto.subtle.encrypt({ name: _ENC_ALGO, iv: iv }, key, new TextEncoder().encode(pem));
205
+ return {
206
+ ct: _uint8ToBase64(new Uint8Array(ct)),
207
+ iv: _uint8ToBase64(iv),
208
+ salt: _uint8ToBase64(salt),
209
+ };
210
+ }
211
+ export async function decryptPEM(enc, seed) {
212
+ const salt = _base64ToUint8(enc.salt);
213
+ const iv = _base64ToUint8(enc.iv);
214
+ const ct = _base64ToUint8(enc.ct);
215
+ const key = await _deriveEncKey(seed, salt);
216
+ const pt = await crypto.subtle.decrypt({ name: _ENC_ALGO, iv: toBufferSource(iv) }, key, toBufferSource(ct));
217
+ return new TextDecoder().decode(pt);
218
+ }
219
+ export function hasEncryptionSeed(seed) {
220
+ return seed !== undefined;
221
+ }
222
+ // ── IndexedDB 连接管理 ────────────────────────────────────────────
223
+ let _cachedDB = null;
224
+ let _openDBPromise = null;
225
+ export function openDB() {
226
+ if (_cachedDB)
227
+ return Promise.resolve(_cachedDB);
228
+ if (_openDBPromise)
229
+ return _openDBPromise;
230
+ _openDBPromise = new Promise((resolve, reject) => {
231
+ const request = indexedDB.open(DB_NAME, DB_VERSION);
232
+ request.onupgradeneeded = () => {
233
+ const db = request.result;
234
+ for (const name of [
235
+ STORE_KEY_PAIRS, STORE_CERTS, STORE_METADATA, STORE_INSTANCE_STATE,
236
+ STORE_PREKEYS, STORE_GROUP_CURRENT, STORE_GROUP_OLD_EPOCHS, STORE_SESSIONS,
237
+ STORE_GROUP_STATE, STORE_AGENT_MD_CACHE, STORE_PENDING_IDENTITIES,
238
+ ]) {
239
+ if (!db.objectStoreNames.contains(name))
240
+ db.createObjectStore(name);
241
+ }
242
+ };
243
+ request.onsuccess = () => {
244
+ const db = request.result;
245
+ db.onversionchange = () => {
246
+ _cachedDB = null;
247
+ _openDBPromise = null;
248
+ try {
249
+ db.close();
250
+ }
251
+ catch { /* ignore */ }
252
+ };
253
+ db.onclose = () => { _cachedDB = null; };
254
+ _cachedDB = db;
255
+ _openDBPromise = null;
256
+ resolve(db);
257
+ };
258
+ request.onerror = () => {
259
+ _openDBPromise = null;
260
+ reject(new Error('IndexedDB 不可用(可能处于隐私模式或 IndexedDB 被禁用)。' +
261
+ '请使用本地 split store (Node.js) 或在浏览器中允许 IndexedDB。'));
262
+ };
263
+ request.onblocked = () => {
264
+ _openDBPromise = null;
265
+ reject(new Error('IndexedDB 升级被其它 tab 阻塞,请关闭其它页面后重试'));
266
+ };
267
+ });
268
+ return _openDBPromise;
269
+ }
270
+ // ── IndexedDB CRUD 工具 ───────────────────────────────────────────
271
+ export async function idbGet(storeName, key) {
272
+ const db = await openDB();
273
+ return new Promise((resolve, reject) => {
274
+ const tx = db.transaction(storeName, 'readonly');
275
+ const req = tx.objectStore(storeName).get(key);
276
+ tx.oncomplete = () => { resolve(req.result ?? null); };
277
+ tx.onerror = () => { reject(tx.error ?? new Error(`读取 ${storeName} 失败`)); };
278
+ tx.onabort = () => { reject(tx.error ?? new Error(`读取 ${storeName} 被中止`)); };
279
+ });
280
+ }
281
+ export async function idbGetAll(storeName) {
282
+ const db = await openDB();
283
+ return new Promise((resolve, reject) => {
284
+ const tx = db.transaction(storeName, 'readonly');
285
+ const store = tx.objectStore(storeName);
286
+ const valuesReq = store.getAll();
287
+ const keysReq = store.getAllKeys();
288
+ tx.oncomplete = () => {
289
+ const values = valuesReq.result ?? [];
290
+ const keys = keysReq.result ?? [];
291
+ resolve(keys.map((key, index) => ({
292
+ key: typeof key === 'string' ? key : String(key),
293
+ value: values[index],
294
+ })));
295
+ };
296
+ tx.onerror = () => { reject(tx.error ?? new Error(`读取 ${storeName} 全量数据失败`)); };
297
+ tx.onabort = () => { reject(tx.error ?? new Error(`读取 ${storeName} 全量数据被中止`)); };
298
+ });
299
+ }
300
+ export async function idbGetAllByPrefix(storeName, prefix) {
301
+ const db = await openDB();
302
+ return new Promise((resolve, reject) => {
303
+ const tx = db.transaction(storeName, 'readonly');
304
+ const store = tx.objectStore(storeName);
305
+ const range = IDBKeyRange.bound(prefix, `${prefix}￿`, false, false);
306
+ const result = [];
307
+ const req = store.openCursor(range);
308
+ req.onsuccess = () => {
309
+ const cursor = req.result;
310
+ if (!cursor)
311
+ return;
312
+ result.push({
313
+ key: typeof cursor.key === 'string' ? cursor.key : String(cursor.key),
314
+ value: cursor.value,
315
+ });
316
+ cursor.continue();
317
+ };
318
+ tx.oncomplete = () => { resolve(result); };
319
+ tx.onerror = () => { reject(tx.error ?? new Error(`按前缀读取 ${storeName} 失败`)); };
320
+ tx.onabort = () => { reject(tx.error ?? new Error(`按前缀读取 ${storeName} 被中止`)); };
321
+ });
322
+ }
323
+ export async function idbPut(storeName, key, value) {
324
+ const db = await openDB();
325
+ return new Promise((resolve, reject) => {
326
+ const tx = db.transaction(storeName, 'readwrite');
327
+ tx.objectStore(storeName).put(value, key);
328
+ tx.oncomplete = () => { resolve(); };
329
+ tx.onerror = () => { reject(tx.error ?? new Error(`写入 ${storeName} 失败`)); };
330
+ tx.onabort = () => { reject(tx.error ?? new Error(`写入 ${storeName} 被中止`)); };
331
+ });
332
+ }
333
+ export async function idbDelete(storeName, key) {
334
+ const db = await openDB();
335
+ return new Promise((resolve, reject) => {
336
+ const tx = db.transaction(storeName, 'readwrite');
337
+ tx.objectStore(storeName).delete(key);
338
+ tx.oncomplete = () => { resolve(); };
339
+ tx.onerror = () => { reject(tx.error ?? new Error(`删除 ${storeName} 失败`)); };
340
+ tx.onabort = () => { reject(tx.error ?? new Error(`删除 ${storeName} 被中止`)); };
341
+ });
342
+ }
343
+ // ── SPKI 提取(证书公钥一致性校验用)────────────────────────────
344
+ export function extractSpkiB64FromCertPem(certPem) {
345
+ try {
346
+ const der = new Uint8Array(pemToArrayBuffer(certPem));
347
+ const tlv = (d, o) => {
348
+ let lo = o + 1, len;
349
+ if (d[lo] & 0x80) {
350
+ const n = d[lo] & 0x7f;
351
+ len = 0;
352
+ for (let i = 0; i < n; i++)
353
+ len = (len << 8) | d[lo + 1 + i];
354
+ lo += 1 + n;
355
+ }
356
+ else {
357
+ len = d[lo];
358
+ lo += 1;
359
+ }
360
+ return [lo, len];
361
+ };
362
+ const skip = (d, o) => { const [vs, vl] = tlv(d, o); return vs + vl; };
363
+ let [vs] = tlv(der, 0);
364
+ let pos = vs;
365
+ const [tbsVs] = tlv(der, pos);
366
+ pos = tbsVs;
367
+ if (der[pos] === 0xa0)
368
+ pos = skip(der, pos);
369
+ for (let i = 0; i < 5; i++)
370
+ pos = skip(der, pos);
371
+ const spkiEnd = skip(der, pos);
372
+ const spkiBytes = der.slice(pos, spkiEnd);
373
+ let b = '';
374
+ for (let i = 0; i < spkiBytes.length; i++)
375
+ b += String.fromCharCode(spkiBytes[i]);
376
+ return btoa(b);
377
+ }
378
+ catch {
379
+ return '';
380
+ }
381
+ }
382
+ //# sourceMappingURL=indexeddb-shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexeddb-shared.js","sourceRoot":"","sources":["../../src/keystore/indexeddb-shared.ts"],"names":[],"mappings":"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"}