@agentunion/fastaun-browser 0.2.13

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 (82) hide show
  1. package/README.md +604 -0
  2. package/dist/auth.d.ts +150 -0
  3. package/dist/auth.d.ts.map +1 -0
  4. package/dist/auth.js +1388 -0
  5. package/dist/auth.js.map +1 -0
  6. package/dist/certs/root.d.ts +2 -0
  7. package/dist/certs/root.d.ts.map +1 -0
  8. package/dist/certs/root.js +16 -0
  9. package/dist/certs/root.js.map +1 -0
  10. package/dist/client.d.ts +341 -0
  11. package/dist/client.d.ts.map +1 -0
  12. package/dist/client.js +4061 -0
  13. package/dist/client.js.map +1 -0
  14. package/dist/config.d.ts +37 -0
  15. package/dist/config.d.ts.map +1 -0
  16. package/dist/config.js +85 -0
  17. package/dist/config.js.map +1 -0
  18. package/dist/crypto.d.ts +41 -0
  19. package/dist/crypto.d.ts.map +1 -0
  20. package/dist/crypto.js +132 -0
  21. package/dist/crypto.js.map +1 -0
  22. package/dist/discovery.d.ts +20 -0
  23. package/dist/discovery.d.ts.map +1 -0
  24. package/dist/discovery.js +75 -0
  25. package/dist/discovery.js.map +1 -0
  26. package/dist/e2ee-group.d.ts +221 -0
  27. package/dist/e2ee-group.d.ts.map +1 -0
  28. package/dist/e2ee-group.js +1174 -0
  29. package/dist/e2ee-group.js.map +1 -0
  30. package/dist/e2ee.d.ts +187 -0
  31. package/dist/e2ee.d.ts.map +1 -0
  32. package/dist/e2ee.js +1067 -0
  33. package/dist/e2ee.js.map +1 -0
  34. package/dist/errors.d.ts +118 -0
  35. package/dist/errors.d.ts.map +1 -0
  36. package/dist/errors.js +250 -0
  37. package/dist/errors.js.map +1 -0
  38. package/dist/events.d.ts +33 -0
  39. package/dist/events.d.ts.map +1 -0
  40. package/dist/events.js +68 -0
  41. package/dist/events.js.map +1 -0
  42. package/dist/index.d.ts +22 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +32 -0
  45. package/dist/index.js.map +1 -0
  46. package/dist/keystore/index.d.ts +88 -0
  47. package/dist/keystore/index.d.ts.map +1 -0
  48. package/dist/keystore/index.js +3 -0
  49. package/dist/keystore/index.js.map +1 -0
  50. package/dist/keystore/indexeddb.d.ts +94 -0
  51. package/dist/keystore/indexeddb.d.ts.map +1 -0
  52. package/dist/keystore/indexeddb.js +1434 -0
  53. package/dist/keystore/indexeddb.js.map +1 -0
  54. package/dist/namespaces/auth.d.ts +52 -0
  55. package/dist/namespaces/auth.d.ts.map +1 -0
  56. package/dist/namespaces/auth.js +237 -0
  57. package/dist/namespaces/auth.js.map +1 -0
  58. package/dist/namespaces/custody.d.ts +48 -0
  59. package/dist/namespaces/custody.d.ts.map +1 -0
  60. package/dist/namespaces/custody.js +230 -0
  61. package/dist/namespaces/custody.js.map +1 -0
  62. package/dist/secret-store/index.d.ts +20 -0
  63. package/dist/secret-store/index.d.ts.map +1 -0
  64. package/dist/secret-store/index.js +12 -0
  65. package/dist/secret-store/index.js.map +1 -0
  66. package/dist/secret-store/indexeddb-store.d.ts +22 -0
  67. package/dist/secret-store/indexeddb-store.d.ts.map +1 -0
  68. package/dist/secret-store/indexeddb-store.js +133 -0
  69. package/dist/secret-store/indexeddb-store.js.map +1 -0
  70. package/dist/seq-tracker.d.ts +30 -0
  71. package/dist/seq-tracker.d.ts.map +1 -0
  72. package/dist/seq-tracker.js +219 -0
  73. package/dist/seq-tracker.js.map +1 -0
  74. package/dist/transport.d.ts +45 -0
  75. package/dist/transport.d.ts.map +1 -0
  76. package/dist/transport.js +251 -0
  77. package/dist/transport.js.map +1 -0
  78. package/dist/types.d.ts +171 -0
  79. package/dist/types.d.ts.map +1 -0
  80. package/dist/types.js +10 -0
  81. package/dist/types.js.map +1 -0
  82. package/package.json +37 -0
package/dist/auth.d.ts ADDED
@@ -0,0 +1,150 @@
1
+ import type { KeyStore } from './keystore/index.js';
2
+ import { CryptoProvider } from './crypto.js';
3
+ import { type IdentityRecord, type JsonObject, type RpcMessage, type RpcParams, type RpcResult } from './types.js';
4
+ interface AuthContext extends JsonObject {
5
+ token?: string;
6
+ identity?: IdentityRecord;
7
+ }
8
+ interface TransportLike {
9
+ call(method: string, params: RpcParams): Promise<RpcResult>;
10
+ }
11
+ /**
12
+ * 认证流程管理器 — 负责 AID 注册、登录、token 管理。
13
+ *
14
+ * 完整实现:
15
+ * - PKI 证书链验证(链验证 + CRL + OCSP + AID 绑定)
16
+ * - login1/login2 双阶段认证
17
+ * - token 刷新
18
+ * - 证书自动续期
19
+ */
20
+ export declare class AuthFlow {
21
+ private static readonly _INSTANCE_STATE_FIELDS;
22
+ private _keystore;
23
+ private _crypto;
24
+ private _aid;
25
+ private _deviceId;
26
+ private _slotId;
27
+ private _rootCaPem;
28
+ private _verifySsl;
29
+ private _rootCerts;
30
+ private _gatewayChainCache;
31
+ private _gatewayCrlCache;
32
+ private _gatewayOcspCache;
33
+ private _chainVerifiedCache;
34
+ private _chainCacheTtl;
35
+ private _gatewayCaVerified;
36
+ constructor(opts: {
37
+ keystore: KeyStore;
38
+ crypto: CryptoProvider;
39
+ aid?: string | null;
40
+ deviceId?: string;
41
+ slotId?: string;
42
+ rootCaPem?: string | null;
43
+ verifySsl?: boolean;
44
+ chainCacheTtl?: number;
45
+ });
46
+ /** 加载本地身份信息 */
47
+ loadIdentity(aid?: string): Promise<IdentityRecord>;
48
+ /** 加载身份,不存在时返回 null */
49
+ loadIdentityOrNull(aid?: string): Promise<IdentityRecord | null>;
50
+ /** 与 Node/TS SDK 对齐的别名:加载身份,不存在时返回 null */
51
+ loadIdentityOrNone(aid?: string): Promise<IdentityRecord | null>;
52
+ /** 获取 access_token 过期时间 */
53
+ getAccessTokenExpiry(identity: IdentityRecord): number | null;
54
+ setInstanceContext(opts: {
55
+ deviceId: string;
56
+ slotId?: string;
57
+ }): void;
58
+ /**
59
+ * 注册新 AID。
60
+ *
61
+ * 流程:
62
+ * 1. 确保本地密钥对存在
63
+ * 2. 短连接 RPC 调用 auth.create_aid
64
+ * 3. 保存返回的证书
65
+ */
66
+ createAid(gatewayUrl: string, aid: string): Promise<JsonObject>;
67
+ /**
68
+ * 认证已有 AID — login1/login2 双阶段流程。
69
+ */
70
+ authenticate(gatewayUrl: string, aid?: string): Promise<JsonObject>;
71
+ /**
72
+ * 确保已认证(如无身份则先注册再登录)。
73
+ */
74
+ ensureAuthenticated(gatewayUrl: string): Promise<AuthContext>;
75
+ /**
76
+ * 使用已有 token 初始化 WebSocket 会话。
77
+ */
78
+ initializeWithToken(transport: TransportLike, challenge: RpcMessage | null, accessToken: string, opts?: {
79
+ deviceId?: string;
80
+ slotId?: string;
81
+ deliveryMode?: JsonObject | null;
82
+ }): Promise<void>;
83
+ /**
84
+ * 连接会话 — 多策略认证:显式 token → 缓存 token → refresh → 重新登录。
85
+ */
86
+ connectSession(transport: TransportLike, challenge: RpcMessage | null, gatewayUrl: string, accessToken?: string | {
87
+ accessToken?: string;
88
+ deviceId?: string;
89
+ slotId?: string;
90
+ deliveryMode?: JsonObject | null;
91
+ }): Promise<AuthContext>;
92
+ /**
93
+ * 刷新 token。
94
+ */
95
+ refreshCachedTokens(gatewayUrl: string, identity: IdentityRecord): Promise<IdentityRecord>;
96
+ /**
97
+ * 统一的对端证书验证入口:时间有效性 + 链验证 + CRL + OCSP + AID 绑定。
98
+ */
99
+ verifyPeerCertificate(gatewayUrl: string, certPem: string, expectedAid: string): Promise<void>;
100
+ /** 打开原生 WebSocket,接收 challenge,发送 JSON-RPC,接收响应,关闭 */
101
+ private _shortRpc;
102
+ /** fetch GET 返回文本 */
103
+ private _fetchText;
104
+ /** fetch GET 返回 JSON */
105
+ private _fetchJson;
106
+ private _createAid;
107
+ /** 下载已注册证书恢复本地状态 */
108
+ private _recoverCertViaDownload;
109
+ private _login;
110
+ /** 刷新 access token */
111
+ private _refreshAccessToken;
112
+ /** 初始化 WebSocket 会话(auth.connect RPC) */
113
+ private _initializeSession;
114
+ private _verifyPhase1Response;
115
+ private _verifyAuthCertChain;
116
+ /** 加载 Gateway CA 链(带缓存) */
117
+ private _loadGatewayCaChain;
118
+ /** 从 Gateway PKI 端点下载 CA 链 */
119
+ private _fetchGatewayCaChain;
120
+ private _verifyAuthCertRevocation;
121
+ /** 加载 Gateway 吊销列表(带缓存) */
122
+ private _loadGatewayRevokedSerials;
123
+ /** 从 Gateway PKI 端点获取并验证 CRL */
124
+ private _fetchGatewayCrl;
125
+ private _verifyAuthCertOcsp;
126
+ /** 加载 OCSP 状态(带缓存) */
127
+ private _loadGatewayOcspStatus;
128
+ /** 从 Gateway PKI 端点获取并验证 OCSP 状态 */
129
+ private _fetchGatewayOcspStatus;
130
+ private _loadTrustedRoots;
131
+ private _rememberTokens;
132
+ /** 验证服务端返回的 new_cert,通过后正式接受 */
133
+ private _validateNewCert;
134
+ /** 获取缓存的有效 access_token */
135
+ private _getCachedAccessToken;
136
+ private static readonly _AID_NAME_RE;
137
+ private static _validateAidName;
138
+ /** 确保本地有密钥对(没有则生成) */
139
+ private _ensureLocalIdentity;
140
+ /** 加载身份,不存在时抛出异常 */
141
+ private _loadIdentityOrRaise;
142
+ /** 确保有身份(无则尝试生成) */
143
+ private _ensureIdentity;
144
+ private _loadInstanceState;
145
+ private _persistIdentity;
146
+ /** 清理过期的 gateway 缓存条目(供外部定时调用) */
147
+ cleanExpiredCaches(): void;
148
+ }
149
+ export {};
150
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}