agentlink-sdk 1.0.0 → 1.0.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/index.d.mts +55 -87
- package/dist/index.d.ts +55 -87
- package/dist/index.js +143 -5945
- package/dist/index.mjs +137 -5964
- package/package.json +7 -12
package/dist/index.d.mts
CHANGED
|
@@ -1,17 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
interface URLData {
|
|
2
|
+
data: any;
|
|
3
|
+
type: string;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* 将数据编码为 URL hash
|
|
7
|
+
*/
|
|
8
|
+
declare function encodeDataToUrl(data: any, type: string, baseUrl: string): Promise<string>;
|
|
9
|
+
/**
|
|
10
|
+
* 从 URL 中解码数据
|
|
11
|
+
*/
|
|
12
|
+
declare function decodeDataFromUrl(urlStr: string): Promise<URLData | null>;
|
|
4
13
|
|
|
5
14
|
interface AgentLinkClientOptions {
|
|
6
15
|
/**
|
|
7
|
-
*
|
|
8
|
-
* 例如: 'https://
|
|
16
|
+
* 服务端验证地址
|
|
17
|
+
* 例如: 'https://agentlink-server.vercel.app'
|
|
9
18
|
*/
|
|
10
19
|
serverUrl: string;
|
|
11
|
-
/**
|
|
12
|
-
* localforage 存储配置(可选)
|
|
13
|
-
*/
|
|
14
|
-
storageOptions?: Parameters<typeof localforage.createInstance>[0];
|
|
15
20
|
}
|
|
16
21
|
interface WhitelistInfo {
|
|
17
22
|
domain: string;
|
|
@@ -22,96 +27,59 @@ interface WhitelistResponse {
|
|
|
22
27
|
origin: string | null;
|
|
23
28
|
}
|
|
24
29
|
/**
|
|
25
|
-
* AgentLink 客户端 SDK
|
|
26
|
-
* 用于跨域访问存储服务
|
|
30
|
+
* AgentLink 客户端 SDK (URL Hash 方案)
|
|
27
31
|
*/
|
|
28
|
-
declare class AgentLinkClient
|
|
29
|
-
private client;
|
|
32
|
+
declare class AgentLinkClient {
|
|
30
33
|
private serverUrl;
|
|
34
|
+
private static DEFAULT_WINDOW_NAME;
|
|
31
35
|
constructor(options: AgentLinkClientOptions);
|
|
32
36
|
/**
|
|
33
|
-
*
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
*
|
|
38
|
-
*/
|
|
39
|
-
onConnect(callback: () => void): () => void;
|
|
40
|
-
/**
|
|
41
|
-
* 监听存储变更
|
|
42
|
-
*/
|
|
43
|
-
onChange(callback: (data: IChangeData) => void): Promise<{
|
|
44
|
-
off: () => void;
|
|
45
|
-
broadcastChanges: boolean;
|
|
46
|
-
}>;
|
|
47
|
-
/**
|
|
48
|
-
* 获取指定 key 的值
|
|
49
|
-
* @param key 数据键
|
|
50
|
-
* @param options 选项
|
|
51
|
-
* @param options.filterOrigin 指定要读取的域名(默认:当前域名)
|
|
52
|
-
* @param options.includeMetadata 是否包含元数据(origin 和 timestamp)
|
|
53
|
-
*/
|
|
54
|
-
getItem(key: string, options?: {
|
|
55
|
-
filterOrigin?: string;
|
|
56
|
-
includeMetadata?: boolean;
|
|
57
|
-
}): Promise<any>;
|
|
58
|
-
/**
|
|
59
|
-
* 设置指定 key 的值
|
|
37
|
+
* 发送数据到目标应用
|
|
38
|
+
* @param targetUrl 目标应用的地址
|
|
39
|
+
* @param data 要发送的数据
|
|
40
|
+
* @param type 数据类型标识
|
|
41
|
+
* @param windowName 窗口名称,用于复用(默认: 'agentlink-window')
|
|
60
42
|
*/
|
|
61
|
-
|
|
43
|
+
sendData(targetUrl: string, data: any, type: string, windowName?: string): Promise<void>;
|
|
62
44
|
/**
|
|
63
|
-
*
|
|
45
|
+
* 监听来自 URL 的数据
|
|
46
|
+
* @param callback 接收到数据时的回调函数
|
|
64
47
|
*/
|
|
65
|
-
|
|
48
|
+
receiveData(callback: (data: any, type: string) => void): () => void;
|
|
66
49
|
/**
|
|
67
|
-
*
|
|
68
|
-
* @param filterOrigin 指定要清除的域名(默认:当前域名)
|
|
50
|
+
* 从当前 URL 获取数据并验证接收方白名单
|
|
69
51
|
*/
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* 获取存储项数量
|
|
73
|
-
* @param filterOrigin 指定要统计的域名(默认:当前域名)
|
|
74
|
-
*/
|
|
75
|
-
length(filterOrigin?: string): Promise<number>;
|
|
76
|
-
/**
|
|
77
|
-
* 获取指定索引的 key 名称
|
|
78
|
-
* @param index 索引
|
|
79
|
-
* @param filterOrigin 指定要查询的域名(默认:当前域名)
|
|
80
|
-
*/
|
|
81
|
-
key(index: number, filterOrigin?: string): Promise<string | null>;
|
|
82
|
-
/**
|
|
83
|
-
* 获取所有 key 的数组
|
|
84
|
-
* @param filterOrigin 指定要查询的域名(默认:当前域名)
|
|
85
|
-
*/
|
|
86
|
-
keys(filterOrigin?: string): Promise<string[]>;
|
|
87
|
-
/**
|
|
88
|
-
* 获取包含元数据的数据项
|
|
89
|
-
* @param key 数据键
|
|
90
|
-
* @param filterOrigin 指定要读取的域名(默认:当前域名)
|
|
91
|
-
* @returns 包含 value、origin 和 timestamp 的对象
|
|
92
|
-
*/
|
|
93
|
-
getItemWithMetadata(key: string, filterOrigin?: string): Promise<{
|
|
94
|
-
value: any;
|
|
95
|
-
origin: string;
|
|
96
|
-
timestamp: number;
|
|
97
|
-
}>;
|
|
98
|
-
/**
|
|
99
|
-
* 获取所有数据项(支持过滤)
|
|
100
|
-
* @param filterOrigin 指定要读取的域名(默认:当前域名)
|
|
101
|
-
* @returns 包含所有数据的对象,key 为数据键,value 为包含 value、origin 和 timestamp 的对象
|
|
102
|
-
*/
|
|
103
|
-
getAllItems(filterOrigin?: string): Promise<{
|
|
104
|
-
[key: string]: {
|
|
105
|
-
value: any;
|
|
106
|
-
origin: string;
|
|
107
|
-
timestamp: number;
|
|
108
|
-
};
|
|
109
|
-
}>;
|
|
52
|
+
getDataFromUrl(url?: string): Promise<URLData | null>;
|
|
110
53
|
/**
|
|
111
54
|
* 获取白名单信息
|
|
112
|
-
* @param includeAll 如果为true,返回所有白名单;如果为false,只返回当前域名的白名单信息
|
|
113
55
|
*/
|
|
114
56
|
getWhitelistInfo(includeAll?: boolean): Promise<WhitelistResponse>;
|
|
115
57
|
}
|
|
116
58
|
|
|
117
|
-
|
|
59
|
+
/**
|
|
60
|
+
* 使用 CompressionStream API 进行 gzip 压缩
|
|
61
|
+
*/
|
|
62
|
+
declare function compress(text: string): Promise<Uint8Array>;
|
|
63
|
+
/**
|
|
64
|
+
* 使用 DecompressionStream API 进行 gzip 解压
|
|
65
|
+
*/
|
|
66
|
+
declare function decompress(compressedData: Uint8Array): Promise<string>;
|
|
67
|
+
/**
|
|
68
|
+
* 将 Uint8Array 转换为 base64 字符串(URL 安全)
|
|
69
|
+
*/
|
|
70
|
+
declare function uint8ArrayToBase64(arr: Uint8Array): string;
|
|
71
|
+
/**
|
|
72
|
+
* 将 URL 安全的 base64 字符串转换为 Uint8Array
|
|
73
|
+
*/
|
|
74
|
+
declare function base64ToUint8Array(base64: string): Uint8Array;
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* 验证域名是否在白名单中
|
|
78
|
+
*/
|
|
79
|
+
declare function verifyWhitelist(serverUrl: string, origin?: string): Promise<boolean>;
|
|
80
|
+
/**
|
|
81
|
+
* 获取白名单详细信息
|
|
82
|
+
*/
|
|
83
|
+
declare function fetchWhitelistInfo(serverUrl: string, includeAll?: boolean): Promise<any>;
|
|
84
|
+
|
|
85
|
+
export { AgentLinkClient, type AgentLinkClientOptions, type URLData, type WhitelistInfo, type WhitelistResponse, base64ToUint8Array, compress, decodeDataFromUrl, decompress, encodeDataToUrl, fetchWhitelistInfo, uint8ArrayToBase64, verifyWhitelist };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,17 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
interface URLData {
|
|
2
|
+
data: any;
|
|
3
|
+
type: string;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* 将数据编码为 URL hash
|
|
7
|
+
*/
|
|
8
|
+
declare function encodeDataToUrl(data: any, type: string, baseUrl: string): Promise<string>;
|
|
9
|
+
/**
|
|
10
|
+
* 从 URL 中解码数据
|
|
11
|
+
*/
|
|
12
|
+
declare function decodeDataFromUrl(urlStr: string): Promise<URLData | null>;
|
|
4
13
|
|
|
5
14
|
interface AgentLinkClientOptions {
|
|
6
15
|
/**
|
|
7
|
-
*
|
|
8
|
-
* 例如: 'https://
|
|
16
|
+
* 服务端验证地址
|
|
17
|
+
* 例如: 'https://agentlink-server.vercel.app'
|
|
9
18
|
*/
|
|
10
19
|
serverUrl: string;
|
|
11
|
-
/**
|
|
12
|
-
* localforage 存储配置(可选)
|
|
13
|
-
*/
|
|
14
|
-
storageOptions?: Parameters<typeof localforage.createInstance>[0];
|
|
15
20
|
}
|
|
16
21
|
interface WhitelistInfo {
|
|
17
22
|
domain: string;
|
|
@@ -22,96 +27,59 @@ interface WhitelistResponse {
|
|
|
22
27
|
origin: string | null;
|
|
23
28
|
}
|
|
24
29
|
/**
|
|
25
|
-
* AgentLink 客户端 SDK
|
|
26
|
-
* 用于跨域访问存储服务
|
|
30
|
+
* AgentLink 客户端 SDK (URL Hash 方案)
|
|
27
31
|
*/
|
|
28
|
-
declare class AgentLinkClient
|
|
29
|
-
private client;
|
|
32
|
+
declare class AgentLinkClient {
|
|
30
33
|
private serverUrl;
|
|
34
|
+
private static DEFAULT_WINDOW_NAME;
|
|
31
35
|
constructor(options: AgentLinkClientOptions);
|
|
32
36
|
/**
|
|
33
|
-
*
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
*
|
|
38
|
-
*/
|
|
39
|
-
onConnect(callback: () => void): () => void;
|
|
40
|
-
/**
|
|
41
|
-
* 监听存储变更
|
|
42
|
-
*/
|
|
43
|
-
onChange(callback: (data: IChangeData) => void): Promise<{
|
|
44
|
-
off: () => void;
|
|
45
|
-
broadcastChanges: boolean;
|
|
46
|
-
}>;
|
|
47
|
-
/**
|
|
48
|
-
* 获取指定 key 的值
|
|
49
|
-
* @param key 数据键
|
|
50
|
-
* @param options 选项
|
|
51
|
-
* @param options.filterOrigin 指定要读取的域名(默认:当前域名)
|
|
52
|
-
* @param options.includeMetadata 是否包含元数据(origin 和 timestamp)
|
|
53
|
-
*/
|
|
54
|
-
getItem(key: string, options?: {
|
|
55
|
-
filterOrigin?: string;
|
|
56
|
-
includeMetadata?: boolean;
|
|
57
|
-
}): Promise<any>;
|
|
58
|
-
/**
|
|
59
|
-
* 设置指定 key 的值
|
|
37
|
+
* 发送数据到目标应用
|
|
38
|
+
* @param targetUrl 目标应用的地址
|
|
39
|
+
* @param data 要发送的数据
|
|
40
|
+
* @param type 数据类型标识
|
|
41
|
+
* @param windowName 窗口名称,用于复用(默认: 'agentlink-window')
|
|
60
42
|
*/
|
|
61
|
-
|
|
43
|
+
sendData(targetUrl: string, data: any, type: string, windowName?: string): Promise<void>;
|
|
62
44
|
/**
|
|
63
|
-
*
|
|
45
|
+
* 监听来自 URL 的数据
|
|
46
|
+
* @param callback 接收到数据时的回调函数
|
|
64
47
|
*/
|
|
65
|
-
|
|
48
|
+
receiveData(callback: (data: any, type: string) => void): () => void;
|
|
66
49
|
/**
|
|
67
|
-
*
|
|
68
|
-
* @param filterOrigin 指定要清除的域名(默认:当前域名)
|
|
50
|
+
* 从当前 URL 获取数据并验证接收方白名单
|
|
69
51
|
*/
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* 获取存储项数量
|
|
73
|
-
* @param filterOrigin 指定要统计的域名(默认:当前域名)
|
|
74
|
-
*/
|
|
75
|
-
length(filterOrigin?: string): Promise<number>;
|
|
76
|
-
/**
|
|
77
|
-
* 获取指定索引的 key 名称
|
|
78
|
-
* @param index 索引
|
|
79
|
-
* @param filterOrigin 指定要查询的域名(默认:当前域名)
|
|
80
|
-
*/
|
|
81
|
-
key(index: number, filterOrigin?: string): Promise<string | null>;
|
|
82
|
-
/**
|
|
83
|
-
* 获取所有 key 的数组
|
|
84
|
-
* @param filterOrigin 指定要查询的域名(默认:当前域名)
|
|
85
|
-
*/
|
|
86
|
-
keys(filterOrigin?: string): Promise<string[]>;
|
|
87
|
-
/**
|
|
88
|
-
* 获取包含元数据的数据项
|
|
89
|
-
* @param key 数据键
|
|
90
|
-
* @param filterOrigin 指定要读取的域名(默认:当前域名)
|
|
91
|
-
* @returns 包含 value、origin 和 timestamp 的对象
|
|
92
|
-
*/
|
|
93
|
-
getItemWithMetadata(key: string, filterOrigin?: string): Promise<{
|
|
94
|
-
value: any;
|
|
95
|
-
origin: string;
|
|
96
|
-
timestamp: number;
|
|
97
|
-
}>;
|
|
98
|
-
/**
|
|
99
|
-
* 获取所有数据项(支持过滤)
|
|
100
|
-
* @param filterOrigin 指定要读取的域名(默认:当前域名)
|
|
101
|
-
* @returns 包含所有数据的对象,key 为数据键,value 为包含 value、origin 和 timestamp 的对象
|
|
102
|
-
*/
|
|
103
|
-
getAllItems(filterOrigin?: string): Promise<{
|
|
104
|
-
[key: string]: {
|
|
105
|
-
value: any;
|
|
106
|
-
origin: string;
|
|
107
|
-
timestamp: number;
|
|
108
|
-
};
|
|
109
|
-
}>;
|
|
52
|
+
getDataFromUrl(url?: string): Promise<URLData | null>;
|
|
110
53
|
/**
|
|
111
54
|
* 获取白名单信息
|
|
112
|
-
* @param includeAll 如果为true,返回所有白名单;如果为false,只返回当前域名的白名单信息
|
|
113
55
|
*/
|
|
114
56
|
getWhitelistInfo(includeAll?: boolean): Promise<WhitelistResponse>;
|
|
115
57
|
}
|
|
116
58
|
|
|
117
|
-
|
|
59
|
+
/**
|
|
60
|
+
* 使用 CompressionStream API 进行 gzip 压缩
|
|
61
|
+
*/
|
|
62
|
+
declare function compress(text: string): Promise<Uint8Array>;
|
|
63
|
+
/**
|
|
64
|
+
* 使用 DecompressionStream API 进行 gzip 解压
|
|
65
|
+
*/
|
|
66
|
+
declare function decompress(compressedData: Uint8Array): Promise<string>;
|
|
67
|
+
/**
|
|
68
|
+
* 将 Uint8Array 转换为 base64 字符串(URL 安全)
|
|
69
|
+
*/
|
|
70
|
+
declare function uint8ArrayToBase64(arr: Uint8Array): string;
|
|
71
|
+
/**
|
|
72
|
+
* 将 URL 安全的 base64 字符串转换为 Uint8Array
|
|
73
|
+
*/
|
|
74
|
+
declare function base64ToUint8Array(base64: string): Uint8Array;
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* 验证域名是否在白名单中
|
|
78
|
+
*/
|
|
79
|
+
declare function verifyWhitelist(serverUrl: string, origin?: string): Promise<boolean>;
|
|
80
|
+
/**
|
|
81
|
+
* 获取白名单详细信息
|
|
82
|
+
*/
|
|
83
|
+
declare function fetchWhitelistInfo(serverUrl: string, includeAll?: boolean): Promise<any>;
|
|
84
|
+
|
|
85
|
+
export { AgentLinkClient, type AgentLinkClientOptions, type URLData, type WhitelistInfo, type WhitelistResponse, base64ToUint8Array, compress, decodeDataFromUrl, decompress, encodeDataToUrl, fetchWhitelistInfo, uint8ArrayToBase64, verifyWhitelist };
|