@wetoria/siyuan-sdk 0.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/README.md +44 -0
- package/dist/api/archive/index.d.ts +12 -0
- package/dist/api/archive/index.d.ts.map +1 -0
- package/dist/api/archive/index.js +8 -0
- package/dist/api/archive/index.js.map +1 -0
- package/dist/api/asset/index.d.ts +12 -0
- package/dist/api/asset/index.d.ts.map +1 -0
- package/dist/api/asset/index.js +10 -0
- package/dist/api/asset/index.js.map +1 -0
- package/dist/api/attr/index.d.ts +39 -0
- package/dist/api/attr/index.d.ts.map +1 -0
- package/dist/api/attr/index.js +17 -0
- package/dist/api/attr/index.js.map +1 -0
- package/dist/api/block/index.d.ts +91 -0
- package/dist/api/block/index.d.ts.map +1 -0
- package/dist/api/block/index.js +87 -0
- package/dist/api/block/index.js.map +1 -0
- package/dist/api/convert/index.d.ts +12 -0
- package/dist/api/convert/index.d.ts.map +1 -0
- package/dist/api/convert/index.js +5 -0
- package/dist/api/convert/index.js.map +1 -0
- package/dist/api/export/index.d.ts +18 -0
- package/dist/api/export/index.d.ts.map +1 -0
- package/dist/api/export/index.js +12 -0
- package/dist/api/export/index.js.map +1 -0
- package/dist/api/file/index.d.ts +27 -0
- package/dist/api/file/index.d.ts.map +1 -0
- package/dist/api/file/index.js +27 -0
- package/dist/api/file/index.js.map +1 -0
- package/dist/api/filetree/index.d.ts +50 -0
- package/dist/api/filetree/index.d.ts.map +1 -0
- package/dist/api/filetree/index.js +47 -0
- package/dist/api/filetree/index.js.map +1 -0
- package/dist/api/index.d.ts +38 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +17 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/network/index.d.ts +12 -0
- package/dist/api/network/index.d.ts.map +1 -0
- package/dist/api/network/index.js +12 -0
- package/dist/api/network/index.js.map +1 -0
- package/dist/api/notebook/index.d.ts +48 -0
- package/dist/api/notebook/index.d.ts.map +1 -0
- package/dist/api/notebook/index.js +32 -0
- package/dist/api/notebook/index.js.map +1 -0
- package/dist/api/notification/index.d.ts +17 -0
- package/dist/api/notification/index.d.ts.map +1 -0
- package/dist/api/notification/index.js +14 -0
- package/dist/api/notification/index.js.map +1 -0
- package/dist/api/sql/index.d.ts +29 -0
- package/dist/api/sql/index.d.ts.map +1 -0
- package/dist/api/sql/index.js +18 -0
- package/dist/api/sql/index.js.map +1 -0
- package/dist/api/sqlite/index.d.ts +12 -0
- package/dist/api/sqlite/index.d.ts.map +1 -0
- package/dist/api/sqlite/index.js +5 -0
- package/dist/api/sqlite/index.js.map +1 -0
- package/dist/api/system/index.d.ts +27 -0
- package/dist/api/system/index.d.ts.map +1 -0
- package/dist/api/system/index.js +14 -0
- package/dist/api/system/index.js.map +1 -0
- package/dist/api/template/index.d.ts +18 -0
- package/dist/api/template/index.d.ts.map +1 -0
- package/dist/api/template/index.js +11 -0
- package/dist/api/template/index.js.map +1 -0
- package/dist/core/index.d.ts +103 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +152 -0
- package/dist/core/index.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/types/index.d.ts +88 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +4 -0
- package/dist/utils/index.js.map +1 -0
- package/package.json +42 -0
- package/src/api/archive/index.ts +26 -0
- package/src/api/asset/index.ts +26 -0
- package/src/api/attr/index.ts +59 -0
- package/src/api/block/index.ts +226 -0
- package/src/api/convert/index.ts +18 -0
- package/src/api/export/index.ts +36 -0
- package/src/api/file/index.ts +59 -0
- package/src/api/filetree/index.ts +129 -0
- package/src/api/index.ts +56 -0
- package/src/api/network/index.ts +32 -0
- package/src/api/notebook/index.ts +93 -0
- package/src/api/notification/index.ts +33 -0
- package/src/api/sql/index.ts +65 -0
- package/src/api/sqlite/index.ts +20 -0
- package/src/api/system/index.ts +46 -0
- package/src/api/template/index.ts +32 -0
- package/src/core/index.ts +237 -0
- package/src/index.ts +9 -0
- package/src/types/index.ts +140 -0
- package/src/utils/index.ts +3 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAGtD,OAAO,oBAAoB,CAAA;AAC3B,OAAO,kBAAkB,CAAA;AACzB,OAAO,iBAAiB,CAAA;AACxB,OAAO,kBAAkB,CAAA;AACzB,OAAO,oBAAoB,CAAA;AAC3B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,iBAAiB,CAAA;AACxB,OAAO,qBAAqB,CAAA;AAC5B,OAAO,oBAAoB,CAAA;AAC3B,OAAO,qBAAqB,CAAA;AAC5B,OAAO,yBAAyB,CAAA;AAChC,OAAO,gBAAgB,CAAA;AACvB,OAAO,mBAAmB,CAAA;AAC1B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,qBAAqB,CAAA;AAE5B;;GAEG;AACH,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,SACR,SACA,UAAU,EACV,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,UAAU,EACV,SAAS,EACT,OAAO,EACP,WAAW,EACX,UAAU,EACV,WAAW,EACX,eAAe,EACf,MAAM,EACN,SAAS,EACT,SAAS,EACT,WAAW;KACX;CACH"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// 导入所有 API 实现
|
|
2
|
+
import './archive/index.js';
|
|
3
|
+
import './asset/index.js';
|
|
4
|
+
import './attr/index.js';
|
|
5
|
+
import './block/index.js';
|
|
6
|
+
import './convert/index.js';
|
|
7
|
+
import './export/index.js';
|
|
8
|
+
import './file/index.js';
|
|
9
|
+
import './filetree/index.js';
|
|
10
|
+
import './network/index.js';
|
|
11
|
+
import './notebook/index.js';
|
|
12
|
+
import './notification/index.js';
|
|
13
|
+
import './sql/index.js';
|
|
14
|
+
import './sqlite/index.js';
|
|
15
|
+
import './system/index.js';
|
|
16
|
+
import './template/index.js';
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAgBA,cAAc;AACd,OAAO,oBAAoB,CAAA;AAC3B,OAAO,kBAAkB,CAAA;AACzB,OAAO,iBAAiB,CAAA;AACxB,OAAO,kBAAkB,CAAA;AACzB,OAAO,oBAAoB,CAAA;AAC3B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,iBAAiB,CAAA;AACxB,OAAO,qBAAqB,CAAA;AAC5B,OAAO,oBAAoB,CAAA;AAC3B,OAAO,qBAAqB,CAAA;AAC5B,OAAO,yBAAyB,CAAA;AAChC,OAAO,gBAAgB,CAAA;AACvB,OAAO,mBAAmB,CAAA;AAC1B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,qBAAqB,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { SyApiMethodResponse } from '../../core/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Network API 类型定义
|
|
4
|
+
*/
|
|
5
|
+
export interface NetworkAPI {
|
|
6
|
+
/**
|
|
7
|
+
* 转发代理请求
|
|
8
|
+
* @path /api/network/forwardProxy
|
|
9
|
+
*/
|
|
10
|
+
forwardProxy: (url: string, method?: string, payload?: any, headers?: any[], timeout?: number, contentType?: string) => SyApiMethodResponse<any>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/network/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAG9D;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,YAAY,EAAE,CACZ,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,GAAG,EACb,OAAO,CAAC,EAAE,GAAG,EAAE,EACf,OAAO,CAAC,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,KACjB,mBAAmB,CAAC,GAAG,CAAC,CAAA;CAC9B"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { SiYuanAPI } from '../../core/index.js';
|
|
2
|
+
SiYuanAPI.prototype.forwardProxy = function (url, method = 'GET', payload = {}, headers = [], timeout = 7000, contentType = 'text/html') {
|
|
3
|
+
return this.request('/api/network/forwardProxy', {
|
|
4
|
+
url,
|
|
5
|
+
method,
|
|
6
|
+
timeout,
|
|
7
|
+
contentType,
|
|
8
|
+
headers,
|
|
9
|
+
payload,
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/network/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAoB/C,SAAS,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,GAAW,EAAE,SAAiB,KAAK,EAAE,UAAe,EAAE,EAAE,UAAiB,EAAE,EAAE,UAAkB,IAAI,EAAE,cAAsB,WAAW;IACjL,OAAO,IAAI,CAAC,OAAO,CAAC,2BAA2B,EAAE;QAC/C,GAAG;QACH,MAAM;QACN,OAAO;QACP,WAAW;QACX,OAAO;QACP,OAAO;KACR,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { SyApiMethodResponse } from '../../core/index.js';
|
|
2
|
+
import type { NotebookId } from '../../types/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Notebook API 类型定义
|
|
5
|
+
*/
|
|
6
|
+
export interface NotebookAPI {
|
|
7
|
+
/**
|
|
8
|
+
* 列出所有笔记本
|
|
9
|
+
* @path /api/notebook/lsNotebooks
|
|
10
|
+
*/
|
|
11
|
+
lsNotebooks: () => SyApiMethodResponse<any>;
|
|
12
|
+
/**
|
|
13
|
+
* 打开笔记本
|
|
14
|
+
* @path /api/notebook/openNotebook
|
|
15
|
+
*/
|
|
16
|
+
openNotebook: (notebook: NotebookId) => SyApiMethodResponse<any>;
|
|
17
|
+
/**
|
|
18
|
+
* 关闭笔记本
|
|
19
|
+
* @path /api/notebook/closeNotebook
|
|
20
|
+
*/
|
|
21
|
+
closeNotebook: (notebook: NotebookId) => SyApiMethodResponse<any>;
|
|
22
|
+
/**
|
|
23
|
+
* 重命名笔记本
|
|
24
|
+
* @path /api/notebook/renameNotebook
|
|
25
|
+
*/
|
|
26
|
+
renameNotebook: (notebook: NotebookId, name: string) => SyApiMethodResponse<any>;
|
|
27
|
+
/**
|
|
28
|
+
* 创建笔记本
|
|
29
|
+
* @path /api/notebook/createNotebook
|
|
30
|
+
*/
|
|
31
|
+
createNotebook: (name: string) => SyApiMethodResponse<any>;
|
|
32
|
+
/**
|
|
33
|
+
* 删除笔记本
|
|
34
|
+
* @path /api/notebook/removeNotebook
|
|
35
|
+
*/
|
|
36
|
+
removeNotebook: (notebook: NotebookId) => SyApiMethodResponse<any>;
|
|
37
|
+
/**
|
|
38
|
+
* 获取笔记本配置
|
|
39
|
+
* @path /api/notebook/getNotebookConf
|
|
40
|
+
*/
|
|
41
|
+
getNotebookConf: (notebook: NotebookId) => SyApiMethodResponse<any>;
|
|
42
|
+
/**
|
|
43
|
+
* 设置笔记本配置
|
|
44
|
+
* @path /api/notebook/setNotebookConf
|
|
45
|
+
*/
|
|
46
|
+
setNotebookConf: (notebook: NotebookId, conf: any) => SyApiMethodResponse<any>;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/notebook/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAGtD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,WAAW,EAAE,MAAM,mBAAmB,CAAC,GAAG,CAAC,CAAA;IAC3C;;;OAGG;IACH,YAAY,EAAE,CAAC,QAAQ,EAAE,UAAU,KAAK,mBAAmB,CAAC,GAAG,CAAC,CAAA;IAChE;;;OAGG;IACH,aAAa,EAAE,CAAC,QAAQ,EAAE,UAAU,KAAK,mBAAmB,CAAC,GAAG,CAAC,CAAA;IACjE;;;OAGG;IACH,cAAc,EAAE,CACd,QAAQ,EAAE,UAAU,EACpB,IAAI,EAAE,MAAM,KACT,mBAAmB,CAAC,GAAG,CAAC,CAAA;IAC7B;;;OAGG;IACH,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,mBAAmB,CAAC,GAAG,CAAC,CAAA;IAC1D;;;OAGG;IACH,cAAc,EAAE,CAAC,QAAQ,EAAE,UAAU,KAAK,mBAAmB,CAAC,GAAG,CAAC,CAAA;IAClE;;;OAGG;IACH,eAAe,EAAE,CAAC,QAAQ,EAAE,UAAU,KAAK,mBAAmB,CAAC,GAAG,CAAC,CAAA;IACnE;;;OAGG;IACH,eAAe,EAAE,CACf,QAAQ,EAAE,UAAU,EACpB,IAAI,EAAE,GAAG,KACN,mBAAmB,CAAC,GAAG,CAAC,CAAA;CAC9B"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { SiYuanAPI } from '../../core/index.js';
|
|
2
|
+
SiYuanAPI.prototype.lsNotebooks = function () {
|
|
3
|
+
return this.request('/api/notebook/lsNotebooks', '');
|
|
4
|
+
};
|
|
5
|
+
SiYuanAPI.prototype.openNotebook = function (notebook) {
|
|
6
|
+
return this.request('/api/notebook/openNotebook', { notebook });
|
|
7
|
+
};
|
|
8
|
+
SiYuanAPI.prototype.closeNotebook = function (notebook) {
|
|
9
|
+
return this.request('/api/notebook/closeNotebook', { notebook });
|
|
10
|
+
};
|
|
11
|
+
SiYuanAPI.prototype.renameNotebook = function (notebook, name) {
|
|
12
|
+
return this.request('/api/notebook/renameNotebook', {
|
|
13
|
+
notebook,
|
|
14
|
+
name,
|
|
15
|
+
});
|
|
16
|
+
};
|
|
17
|
+
SiYuanAPI.prototype.createNotebook = function (name) {
|
|
18
|
+
return this.request('/api/notebook/createNotebook', { name });
|
|
19
|
+
};
|
|
20
|
+
SiYuanAPI.prototype.removeNotebook = function (notebook) {
|
|
21
|
+
return this.request('/api/notebook/removeNotebook', { notebook });
|
|
22
|
+
};
|
|
23
|
+
SiYuanAPI.prototype.getNotebookConf = function (notebook) {
|
|
24
|
+
return this.request('/api/notebook/getNotebookConf', { notebook });
|
|
25
|
+
};
|
|
26
|
+
SiYuanAPI.prototype.setNotebookConf = function (notebook, conf) {
|
|
27
|
+
return this.request('/api/notebook/setNotebookConf', {
|
|
28
|
+
notebook,
|
|
29
|
+
conf,
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/notebook/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAsD/C,SAAS,CAAC,SAAS,CAAC,WAAW,GAAG;IAChC,OAAO,IAAI,CAAC,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAA;AACtD,CAAC,CAAA;AAED,SAAS,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,QAAgB;IAC3D,OAAO,IAAI,CAAC,OAAO,CAAC,4BAA4B,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;AACjE,CAAC,CAAA;AAED,SAAS,CAAC,SAAS,CAAC,aAAa,GAAG,UAAU,QAAgB;IAC5D,OAAO,IAAI,CAAC,OAAO,CAAC,6BAA6B,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;AAClE,CAAC,CAAA;AAED,SAAS,CAAC,SAAS,CAAC,cAAc,GAAG,UAAU,QAAgB,EAAE,IAAY;IAC3E,OAAO,IAAI,CAAC,OAAO,CAAC,8BAA8B,EAAE;QAClD,QAAQ;QACR,IAAI;KACL,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,SAAS,CAAC,SAAS,CAAC,cAAc,GAAG,UAAU,IAAY;IACzD,OAAO,IAAI,CAAC,OAAO,CAAC,8BAA8B,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;AAC/D,CAAC,CAAA;AAED,SAAS,CAAC,SAAS,CAAC,cAAc,GAAG,UAAU,QAAgB;IAC7D,OAAO,IAAI,CAAC,OAAO,CAAC,8BAA8B,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;AACnE,CAAC,CAAA;AAED,SAAS,CAAC,SAAS,CAAC,eAAe,GAAG,UAAU,QAAgB;IAC9D,OAAO,IAAI,CAAC,OAAO,CAAC,+BAA+B,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;AACpE,CAAC,CAAA;AAED,SAAS,CAAC,SAAS,CAAC,eAAe,GAAG,UAAU,QAAgB,EAAE,IAAS;IACzE,OAAO,IAAI,CAAC,OAAO,CAAC,+BAA+B,EAAE;QACnD,QAAQ;QACR,IAAI;KACL,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { SyApiMethodResponse } from '../../core/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Notification API 类型定义
|
|
4
|
+
*/
|
|
5
|
+
export interface NotificationAPI {
|
|
6
|
+
/**
|
|
7
|
+
* 推送消息通知
|
|
8
|
+
* @path /api/notification/pushMsg
|
|
9
|
+
*/
|
|
10
|
+
pushMsg: (msg: string, timeout?: number) => SyApiMethodResponse<any>;
|
|
11
|
+
/**
|
|
12
|
+
* 推送错误消息通知
|
|
13
|
+
* @path /api/notification/pushErrMsg
|
|
14
|
+
*/
|
|
15
|
+
pushErrMsg: (msg: string, timeout?: number) => SyApiMethodResponse<any>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/notification/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAG9D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,mBAAmB,CAAC,GAAG,CAAC,CAAA;IACpE;;;OAGG;IACH,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,mBAAmB,CAAC,GAAG,CAAC,CAAA;CACxE"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SiYuanAPI } from '../../core/index.js';
|
|
2
|
+
SiYuanAPI.prototype.pushMsg = function (msg, timeout = 7000) {
|
|
3
|
+
return this.request('/api/notification/pushMsg', {
|
|
4
|
+
msg,
|
|
5
|
+
timeout,
|
|
6
|
+
});
|
|
7
|
+
};
|
|
8
|
+
SiYuanAPI.prototype.pushErrMsg = function (msg, timeout = 7000) {
|
|
9
|
+
return this.request('/api/notification/pushErrMsg', {
|
|
10
|
+
msg,
|
|
11
|
+
timeout,
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/notification/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAkB/C,SAAS,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,GAAW,EAAE,UAAkB,IAAI;IACzE,OAAO,IAAI,CAAC,OAAO,CAAC,2BAA2B,EAAE;QAC/C,GAAG;QACH,OAAO;KACR,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,SAAS,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,GAAW,EAAE,UAAkB,IAAI;IAC5E,OAAO,IAAI,CAAC,OAAO,CAAC,8BAA8B,EAAE;QAClD,GAAG;QACH,OAAO;KACR,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { Block, BlockId } from '../../types/index.js';
|
|
2
|
+
import { SyApiMethodResponse } from '../../core/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* SQL API 类型定义
|
|
5
|
+
*/
|
|
6
|
+
export interface SqlAPI {
|
|
7
|
+
/**
|
|
8
|
+
* Execute SQL query
|
|
9
|
+
*
|
|
10
|
+
* @path /api/query/sql
|
|
11
|
+
* @param stmt - SQL statement to execute
|
|
12
|
+
* @param options - The options for the SQL query
|
|
13
|
+
* @param options.trim - Whether to trim the SQL string
|
|
14
|
+
* @default true
|
|
15
|
+
* @returns {T[]} result of the SQL query
|
|
16
|
+
*/
|
|
17
|
+
sql: <T = any>(stmt: string, options?: {
|
|
18
|
+
trim?: boolean;
|
|
19
|
+
}) => SyApiMethodResponse<T[]>;
|
|
20
|
+
/**
|
|
21
|
+
* Get block by block_id (through SQL query)
|
|
22
|
+
*
|
|
23
|
+
* @path wrapper: uses sql
|
|
24
|
+
* @param {BlockId} blockId - block_id
|
|
25
|
+
* @returns {Block | null} block data - Block or null
|
|
26
|
+
*/
|
|
27
|
+
getBlockByID: (blockId: BlockId) => SyApiMethodResponse<Block | null>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/sql/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,OAAO,EACR,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAEL,mBAAmB,EACpB,MAAM,qBAAqB,CAAA;AAG5B;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB;;;;;;;;;OASG;IACH,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,OAAO,CAAA;KACf,KACE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAA;IAC7B;;;;;;OAMG;IACH,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,mBAAmB,CAAC,KAAK,GAAG,IAAI,CAAC,CAAA;CACtE"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { SiYuanAPI, } from '../../core/index.js';
|
|
2
|
+
import { trimSqlBlank } from '../../utils/index.js';
|
|
3
|
+
SiYuanAPI.prototype.sql = function (stmt, options = {}) {
|
|
4
|
+
const { trim = true, } = options;
|
|
5
|
+
const finalStmt = trim ? trimSqlBlank(stmt) : stmt;
|
|
6
|
+
return this.request('/api/query/sql', {
|
|
7
|
+
stmt: finalStmt,
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
SiYuanAPI.prototype.getBlockByID = async function (blockId) {
|
|
11
|
+
const res = await this.sql(`select * from blocks where id ='${blockId}'`);
|
|
12
|
+
return {
|
|
13
|
+
code: res.code,
|
|
14
|
+
msg: res.msg,
|
|
15
|
+
data: res.data?.[0] ?? null,
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/sql/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,SAAS,GAEV,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAiCnD,SAAS,CAAC,SAAS,CAAC,GAAG,GAAG,UACxB,IAAY,EACZ,UAEI,EAAE;IAEN,MAAM,EACJ,IAAI,GAAG,IAAI,GACZ,GAAG,OAAO,CAAA;IACX,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAClD,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;QACpC,IAAI,EAAE,SAAS;KAChB,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,SAAS,CAAC,SAAS,CAAC,YAAY,GAAG,KAAK,WAAW,OAAe;IAChE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,mCAAmC,OAAO,GAAG,CAAC,CAAA;IACzE,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI;KAC5B,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { SyApiMethodResponse } from '../../core/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Sqlite API 类型定义
|
|
4
|
+
*/
|
|
5
|
+
export interface SqliteAPI {
|
|
6
|
+
/**
|
|
7
|
+
* 刷新事务
|
|
8
|
+
* @path /api/sqlite/flushTransaction
|
|
9
|
+
*/
|
|
10
|
+
flushTransactions: () => SyApiMethodResponse<any>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/sqlite/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACpB,MAAM,qBAAqB,CAAA;AAG5B;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,iBAAiB,EAAE,MAAM,mBAAmB,CAAC,GAAG,CAAC,CAAA;CAClD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/sqlite/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAa/C,SAAS,CAAC,SAAS,CAAC,iBAAiB,GAAG;IACtC,OAAO,IAAI,CAAC,OAAO,CAAC,8BAA8B,EAAE,EAAE,CAAC,CAAA;AACzD,CAAC,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { SyApiMethodResponse } from '../../core/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* System API 类型定义
|
|
4
|
+
*/
|
|
5
|
+
export interface SystemAPI {
|
|
6
|
+
/**
|
|
7
|
+
* 获取启动进度
|
|
8
|
+
* @path /api/system/bootProgress
|
|
9
|
+
*/
|
|
10
|
+
bootProgress: () => SyApiMethodResponse<any>;
|
|
11
|
+
/**
|
|
12
|
+
* 获取版本号
|
|
13
|
+
* @path /api/system/version
|
|
14
|
+
*/
|
|
15
|
+
version: () => SyApiMethodResponse<string>;
|
|
16
|
+
/**
|
|
17
|
+
* 获取当前时间戳
|
|
18
|
+
* @path /api/system/currentTime
|
|
19
|
+
*/
|
|
20
|
+
currentTime: () => SyApiMethodResponse<number>;
|
|
21
|
+
/**
|
|
22
|
+
* 执行同步
|
|
23
|
+
* @path /api/sync/performSync
|
|
24
|
+
*/
|
|
25
|
+
performSync: () => SyApiMethodResponse<number>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/system/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAI9D;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,YAAY,EAAE,MAAM,mBAAmB,CAAC,GAAG,CAAC,CAAA;IAC5C;;;OAGG;IACH,OAAO,EAAE,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAA;IAC1C;;;OAGG;IACH,WAAW,EAAE,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAA;IAC9C;;;OAGG;IACH,WAAW,EAAE,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAA;CAC/C"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SiYuanAPI } from '../../core/index.js';
|
|
2
|
+
SiYuanAPI.prototype.bootProgress = function () {
|
|
3
|
+
return this.request('/api/system/bootProgress', {});
|
|
4
|
+
};
|
|
5
|
+
SiYuanAPI.prototype.version = function () {
|
|
6
|
+
return this.request('/api/system/version', {});
|
|
7
|
+
};
|
|
8
|
+
SiYuanAPI.prototype.currentTime = function () {
|
|
9
|
+
return this.request('/api/system/currentTime', {});
|
|
10
|
+
};
|
|
11
|
+
SiYuanAPI.prototype.performSync = function () {
|
|
12
|
+
return this.request('/api/sync/performSync', {});
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/system/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AA4B/C,SAAS,CAAC,SAAS,CAAC,YAAY,GAAG;IACjC,OAAO,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAA;AACrD,CAAC,CAAA;AAED,SAAS,CAAC,SAAS,CAAC,OAAO,GAAG;IAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAA;AAChD,CAAC,CAAA;AAED,SAAS,CAAC,SAAS,CAAC,WAAW,GAAG;IAChC,OAAO,IAAI,CAAC,OAAO,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAA;AACpD,CAAC,CAAA;AAED,SAAS,CAAC,SAAS,CAAC,WAAW,GAAG;IAChC,OAAO,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAA;AAClD,CAAC,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { SyApiMethodResponse } from '../../core/index.js';
|
|
2
|
+
import type { DocumentId } from '../../types/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Template API 类型定义
|
|
5
|
+
*/
|
|
6
|
+
export interface TemplateAPI {
|
|
7
|
+
/**
|
|
8
|
+
* 渲染模板
|
|
9
|
+
* @path /api/template/render
|
|
10
|
+
*/
|
|
11
|
+
render: (id: DocumentId, path: string) => SyApiMethodResponse<any>;
|
|
12
|
+
/**
|
|
13
|
+
* 渲染 Sprig 模板
|
|
14
|
+
* @path /api/template/renderSprig
|
|
15
|
+
*/
|
|
16
|
+
renderSprig: (template: string) => SyApiMethodResponse<string>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/template/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAItD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,MAAM,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,mBAAmB,CAAC,GAAG,CAAC,CAAA;IAClE;;;OAGG;IACH,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,mBAAmB,CAAC,MAAM,CAAC,CAAA;CAC/D"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { SiYuanAPI } from '../../core/index.js';
|
|
2
|
+
SiYuanAPI.prototype.render = function (id, path) {
|
|
3
|
+
return this.request('/api/template/render', {
|
|
4
|
+
id,
|
|
5
|
+
path,
|
|
6
|
+
});
|
|
7
|
+
};
|
|
8
|
+
SiYuanAPI.prototype.renderSprig = function (template) {
|
|
9
|
+
return this.request('/api/template/renderSprig', { template });
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/template/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAkB/C,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,EAAU,EAAE,IAAY;IAC7D,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE;QAC1C,EAAE;QACF,IAAI;KACL,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,SAAS,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,QAAgB;IAC1D,OAAO,IAAI,CAAC,OAAO,CAAC,2BAA2B,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;AAChE,CAAC,CAAA"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SiYuan SDK - API Client
|
|
3
|
+
*
|
|
4
|
+
* Supports maintaining baseURL and token, binding custom fetch, and dynamically adding methods
|
|
5
|
+
*
|
|
6
|
+
* 支持维护 baseURL 和 token,绑定自定义 fetch,动态添加方法
|
|
7
|
+
*
|
|
8
|
+
*/
|
|
9
|
+
import { IWebSocketData } from 'siyuan';
|
|
10
|
+
/**
|
|
11
|
+
* 标准 API 响应格式
|
|
12
|
+
*/
|
|
13
|
+
export interface SyApiResponse<T = any> {
|
|
14
|
+
code: number;
|
|
15
|
+
msg: string;
|
|
16
|
+
data: T;
|
|
17
|
+
}
|
|
18
|
+
export type SyApiMethodResponse<T = any> = Promise<SyApiResponse<T> | IWebSocketData>;
|
|
19
|
+
/**
|
|
20
|
+
* 请求选项
|
|
21
|
+
*/
|
|
22
|
+
export interface RequestOptions {
|
|
23
|
+
/** 请求方法 */
|
|
24
|
+
method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
|
|
25
|
+
/** 请求头 */
|
|
26
|
+
headers?: Record<string, string>;
|
|
27
|
+
/** 超时时间(毫秒) */
|
|
28
|
+
timeout?: number;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* 基础 Fetch 函数类型(统一的结构)
|
|
32
|
+
*/
|
|
33
|
+
export type SyBaseApiMethod<T = any> = (url: string, data?: any, options?: RequestOptions) => SyApiMethodResponse<T>;
|
|
34
|
+
/**
|
|
35
|
+
* 自定义 Fetch 函数类型(别名)
|
|
36
|
+
*/
|
|
37
|
+
export type CustomFetch<T = any> = SyBaseApiMethod<T>;
|
|
38
|
+
/**
|
|
39
|
+
* API 配置(两种方式互斥)
|
|
40
|
+
*/
|
|
41
|
+
export type SiYuanAPIConfig = {
|
|
42
|
+
baseURL: string;
|
|
43
|
+
token: string;
|
|
44
|
+
customFetch?: never;
|
|
45
|
+
} | {
|
|
46
|
+
baseURL?: never;
|
|
47
|
+
token?: never;
|
|
48
|
+
customFetch: SyBaseApiMethod;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* SiYuan API 客户端
|
|
52
|
+
*/
|
|
53
|
+
export declare class SiYuanAPI {
|
|
54
|
+
/** 基础 URL */
|
|
55
|
+
private baseURL;
|
|
56
|
+
/** 认证 Token(与 customFetch 互斥) */
|
|
57
|
+
private token?;
|
|
58
|
+
/** 自定义 fetch 函数(与 token 互斥) */
|
|
59
|
+
private customFetch?;
|
|
60
|
+
constructor(config: SiYuanAPIConfig);
|
|
61
|
+
setConfig(config: SiYuanAPIConfig): void;
|
|
62
|
+
/**
|
|
63
|
+
* 获取当前配置
|
|
64
|
+
*/
|
|
65
|
+
getConfig(): {
|
|
66
|
+
baseURL: string;
|
|
67
|
+
token?: string;
|
|
68
|
+
customFetch?: CustomFetch;
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* 默认的 baseFetch 实现(使用标准 fetch)
|
|
72
|
+
*/
|
|
73
|
+
private _defaultBaseFetch;
|
|
74
|
+
/**
|
|
75
|
+
* 内部请求方法
|
|
76
|
+
* 如果存在自定义 fetch,使用自定义 fetch;否则使用默认的 baseFetch(会自动设置 baseURL 和 token)
|
|
77
|
+
* 返回思源标准格式 SyApiResponse<T>
|
|
78
|
+
* 此方法为内部方法,禁止外部修改或覆盖
|
|
79
|
+
* 允许在注入的 API 方法中使用
|
|
80
|
+
*
|
|
81
|
+
* @param url - API 端点路径
|
|
82
|
+
* @param data - 请求数据
|
|
83
|
+
* @param options - 请求选项
|
|
84
|
+
* @returns SyApiResponse<T>
|
|
85
|
+
*
|
|
86
|
+
* @internal
|
|
87
|
+
*/
|
|
88
|
+
request<T = any>(url: string, data?: any, options?: RequestOptions): SyApiMethodResponse<T>;
|
|
89
|
+
post<T = any>(url: string, data?: any, options?: RequestOptions): SyApiMethodResponse<T>;
|
|
90
|
+
/**
|
|
91
|
+
* 提取响应数据(用于插件模式,直接返回 data)
|
|
92
|
+
* 如果 code === 0,返回 data;否则返回 null
|
|
93
|
+
*
|
|
94
|
+
* @param response - API 响应
|
|
95
|
+
* @returns 提取的数据或 null
|
|
96
|
+
*/
|
|
97
|
+
extractData<T>(response: SyApiResponse<T>): T | null;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* 创建 API 实例的便捷函数
|
|
101
|
+
*/
|
|
102
|
+
export declare function createAPI(config: SiYuanAPIConfig): SiYuanAPI;
|
|
103
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AAIvC;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,GAAG;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,CAAC,CAAA;CACR;AAED,MAAM,MAAM,mBAAmB,CAAC,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAA;AAGrF;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW;IACX,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAA;IACpD,UAAU;IACV,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,eAAe;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAKD;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,GAAG,GAAG,IAAI,CACrC,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,GAAG,EACV,OAAO,CAAC,EAAE,cAAc,KACrB,mBAAmB,CAAC,CAAC,CAAC,CAAA;AAE3B;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC,CAAA;AAIrD;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,KAAK,CAAA;CAAE,GACvD;IAAE,OAAO,CAAC,EAAE,KAAK,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IAAC,WAAW,EAAE,eAAe,CAAA;CAAE,CAAA;AAGpE;;GAEG;AACH,qBAAa,SAAS;IACpB,aAAa;IACb,OAAO,CAAC,OAAO,CAAQ;IACvB,iCAAiC;IACjC,OAAO,CAAC,KAAK,CAAC,CAAQ;IACtB,+BAA+B;IAC/B,OAAO,CAAC,WAAW,CAAC,CAAa;gBAGrB,MAAM,EAAE,eAAe;IAInC,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAexC;;OAEG;IACH,SAAS,IAAI;QACX,OAAO,EAAE,MAAM,CAAA;QACf,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,WAAW,CAAC,EAAE,WAAW,CAAA;KAC1B;IAQD;;OAEG;YACW,iBAAiB;IAqE/B;;;;;;;;;;;;;OAaG;IACG,OAAO,CAAC,CAAC,GAAG,GAAG,EACnB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,GAAG,EACV,OAAO,CAAC,EAAE,cAAc,GACvB,mBAAmB,CAAC,CAAC,CAAC;IAWnB,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,mBAAmB,CAAC,CAAC,CAAC;IAQ9F;;;;;;OAMG;IACH,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;CAGrD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,CAE5D"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SiYuan SDK - API Client
|
|
3
|
+
*
|
|
4
|
+
* Supports maintaining baseURL and token, binding custom fetch, and dynamically adding methods
|
|
5
|
+
*
|
|
6
|
+
* 支持维护 baseURL 和 token,绑定自定义 fetch,动态添加方法
|
|
7
|
+
*
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* SiYuan API 客户端
|
|
11
|
+
*/
|
|
12
|
+
export class SiYuanAPI {
|
|
13
|
+
/** 基础 URL */
|
|
14
|
+
baseURL;
|
|
15
|
+
/** 认证 Token(与 customFetch 互斥) */
|
|
16
|
+
token;
|
|
17
|
+
/** 自定义 fetch 函数(与 token 互斥) */
|
|
18
|
+
customFetch;
|
|
19
|
+
constructor(config) {
|
|
20
|
+
this.setConfig(config);
|
|
21
|
+
}
|
|
22
|
+
setConfig(config) {
|
|
23
|
+
// 根据配置类型设置属性
|
|
24
|
+
if ('customFetch' in config) {
|
|
25
|
+
// 使用 customFetch
|
|
26
|
+
this.baseURL = ''; // customFetch 模式下 baseURL 可能不需要
|
|
27
|
+
this.customFetch = config.customFetch;
|
|
28
|
+
this.token = undefined;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
// 使用 baseURL + token
|
|
32
|
+
this.baseURL = config.baseURL;
|
|
33
|
+
this.token = config.token;
|
|
34
|
+
this.customFetch = undefined;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* 获取当前配置
|
|
39
|
+
*/
|
|
40
|
+
getConfig() {
|
|
41
|
+
return {
|
|
42
|
+
baseURL: this.baseURL,
|
|
43
|
+
token: this.token,
|
|
44
|
+
customFetch: this.customFetch,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* 默认的 baseFetch 实现(使用标准 fetch)
|
|
49
|
+
*/
|
|
50
|
+
async _defaultBaseFetch(url, data, options) {
|
|
51
|
+
const baseURL = this.baseURL || '';
|
|
52
|
+
const fullURL = url.startsWith('http')
|
|
53
|
+
? url
|
|
54
|
+
: `${baseURL.replace(/\/$/, '')}${url}`;
|
|
55
|
+
const method = options?.method || 'POST';
|
|
56
|
+
const headers = {
|
|
57
|
+
'Content-Type': 'application/json',
|
|
58
|
+
...options?.headers,
|
|
59
|
+
};
|
|
60
|
+
// 如果有 token,添加到请求头
|
|
61
|
+
if (this.token) {
|
|
62
|
+
headers.Authorization = `Token ${this.token}`;
|
|
63
|
+
}
|
|
64
|
+
const requestInit = {
|
|
65
|
+
method,
|
|
66
|
+
headers,
|
|
67
|
+
};
|
|
68
|
+
// 处理请求体
|
|
69
|
+
if (data !== undefined) {
|
|
70
|
+
if (data instanceof FormData) {
|
|
71
|
+
delete headers['Content-Type'];
|
|
72
|
+
requestInit.body = data;
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
requestInit.body = JSON.stringify(data);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// 处理超时
|
|
79
|
+
const timeout = options?.timeout || 30000;
|
|
80
|
+
const controller = new AbortController();
|
|
81
|
+
const timeoutId = setTimeout(() => controller.abort(), timeout);
|
|
82
|
+
try {
|
|
83
|
+
const response = await fetch(fullURL, {
|
|
84
|
+
...requestInit,
|
|
85
|
+
signal: controller.signal,
|
|
86
|
+
});
|
|
87
|
+
clearTimeout(timeoutId);
|
|
88
|
+
if (!response.ok) {
|
|
89
|
+
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
|
|
90
|
+
}
|
|
91
|
+
const contentType = response.headers.get('content-type');
|
|
92
|
+
if (contentType && contentType.includes('application/json')) {
|
|
93
|
+
return await response.json();
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
return await response.text();
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
clearTimeout(timeoutId);
|
|
101
|
+
if (error.name === 'AbortError') {
|
|
102
|
+
throw new Error(`Request timeout after ${timeout}ms`);
|
|
103
|
+
}
|
|
104
|
+
throw error;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* 内部请求方法
|
|
109
|
+
* 如果存在自定义 fetch,使用自定义 fetch;否则使用默认的 baseFetch(会自动设置 baseURL 和 token)
|
|
110
|
+
* 返回思源标准格式 SyApiResponse<T>
|
|
111
|
+
* 此方法为内部方法,禁止外部修改或覆盖
|
|
112
|
+
* 允许在注入的 API 方法中使用
|
|
113
|
+
*
|
|
114
|
+
* @param url - API 端点路径
|
|
115
|
+
* @param data - 请求数据
|
|
116
|
+
* @param options - 请求选项
|
|
117
|
+
* @returns SyApiResponse<T>
|
|
118
|
+
*
|
|
119
|
+
* @internal
|
|
120
|
+
*/
|
|
121
|
+
async request(url, data, options) {
|
|
122
|
+
// 如果提供了自定义 fetch,使用自定义 fetch
|
|
123
|
+
if (this.customFetch) {
|
|
124
|
+
return await this.customFetch(url, data, options);
|
|
125
|
+
}
|
|
126
|
+
// 否则使用默认的 baseFetch
|
|
127
|
+
return await this._defaultBaseFetch(url, data, options);
|
|
128
|
+
}
|
|
129
|
+
async post(url, data, options) {
|
|
130
|
+
return await this.request(url, data, {
|
|
131
|
+
...options,
|
|
132
|
+
method: 'POST',
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* 提取响应数据(用于插件模式,直接返回 data)
|
|
137
|
+
* 如果 code === 0,返回 data;否则返回 null
|
|
138
|
+
*
|
|
139
|
+
* @param response - API 响应
|
|
140
|
+
* @returns 提取的数据或 null
|
|
141
|
+
*/
|
|
142
|
+
extractData(response) {
|
|
143
|
+
return response.code === 0 ? response.data : null;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* 创建 API 实例的便捷函数
|
|
148
|
+
*/
|
|
149
|
+
export function createAPI(config) {
|
|
150
|
+
return new SiYuanAPI(config);
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
|