@wetoria/siyuan-sdk 0.0.4 → 1.0.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 +34 -25
- package/dist/api/_demo/index.d.ts +15 -0
- package/dist/api/_demo/index.d.ts.map +1 -0
- package/dist/api/_demo/index.js +5 -0
- package/dist/api/_demo/index.js.map +1 -0
- package/dist/api/account/index.d.ts +47 -0
- package/dist/api/account/index.d.ts.map +1 -0
- package/dist/api/account/index.js +18 -0
- package/dist/api/account/index.js.map +1 -0
- package/dist/api/ai/index.d.ts +26 -0
- package/dist/api/ai/index.d.ts.map +1 -0
- package/dist/api/ai/index.js +9 -0
- package/dist/api/ai/index.js.map +1 -0
- package/dist/api/archive/index.d.ts +10 -0
- package/dist/api/archive/index.d.ts.map +1 -1
- package/dist/api/archive/index.js +3 -0
- package/dist/api/archive/index.js.map +1 -1
- package/dist/api/asset/index.d.ts +161 -0
- package/dist/api/asset/index.d.ts.map +1 -1
- package/dist/api/asset/index.js +51 -0
- package/dist/api/asset/index.js.map +1 -1
- package/dist/api/attr/index.d.ts +15 -0
- package/dist/api/attr/index.d.ts.map +1 -1
- package/dist/api/attr/index.js +6 -0
- package/dist/api/attr/index.js.map +1 -1
- package/dist/api/av/index.d.ts +479 -0
- package/dist/api/av/index.d.ts.map +1 -0
- package/dist/api/av/index.js +110 -0
- package/dist/api/av/index.js.map +1 -0
- package/dist/api/av/types.d.ts +129 -0
- package/dist/api/av/types.d.ts.map +1 -0
- package/dist/api/av/types.js +2 -0
- package/dist/api/av/types.js.map +1 -0
- package/dist/api/bazaar/index.d.ts +293 -0
- package/dist/api/bazaar/index.d.ts.map +1 -0
- package/dist/api/bazaar/index.js +72 -0
- package/dist/api/bazaar/index.js.map +1 -0
- package/dist/api/block/index.d.ts +346 -0
- package/dist/api/block/index.d.ts.map +1 -1
- package/dist/api/block/index.js +118 -0
- package/dist/api/block/index.js.map +1 -1
- package/dist/api/bookmark/index.d.ts +30 -0
- package/dist/api/bookmark/index.d.ts.map +1 -0
- package/dist/api/bookmark/index.js +12 -0
- package/dist/api/bookmark/index.js.map +1 -0
- package/dist/api/broadcast/index.d.ts +54 -0
- package/dist/api/broadcast/index.d.ts.map +1 -0
- package/dist/api/broadcast/index.js +15 -0
- package/dist/api/broadcast/index.js.map +1 -0
- package/dist/api/clipboard/index.d.ts +12 -0
- package/dist/api/clipboard/index.d.ts.map +1 -0
- package/dist/api/clipboard/index.js +6 -0
- package/dist/api/clipboard/index.js.map +1 -0
- package/dist/api/cloud/index.d.ts +27 -0
- package/dist/api/cloud/index.d.ts.map +1 -0
- package/dist/api/cloud/index.js +6 -0
- package/dist/api/cloud/index.js.map +1 -0
- package/dist/api/export/index.d.ts +344 -4
- package/dist/api/export/index.d.ts.map +1 -1
- package/dist/api/export/index.js +83 -2
- package/dist/api/export/index.js.map +1 -1
- package/dist/api/extension/index.d.ts +12 -0
- package/dist/api/extension/index.d.ts.map +1 -0
- package/dist/api/extension/index.js +6 -0
- package/dist/api/extension/index.js.map +1 -0
- package/dist/api/file/index.d.ts +40 -0
- package/dist/api/file/index.d.ts.map +1 -1
- package/dist/api/file/index.js +22 -1
- package/dist/api/file/index.js.map +1 -1
- package/dist/api/filetree/index.d.ts +303 -0
- package/dist/api/filetree/index.d.ts.map +1 -1
- package/dist/api/filetree/index.js +69 -0
- package/dist/api/filetree/index.js.map +1 -1
- package/dist/api/format/index.d.ts +34 -0
- package/dist/api/format/index.d.ts.map +1 -0
- package/dist/api/format/index.js +12 -0
- package/dist/api/format/index.js.map +1 -0
- package/dist/api/graph/index.d.ts +59 -0
- package/dist/api/graph/index.d.ts.map +1 -0
- package/dist/api/graph/index.js +15 -0
- package/dist/api/graph/index.js.map +1 -0
- package/dist/api/history/index.d.ts +120 -0
- package/dist/api/history/index.d.ts.map +1 -0
- package/dist/api/history/index.js +30 -0
- package/dist/api/history/index.js.map +1 -0
- package/dist/api/icon/index.d.ts +23 -0
- package/dist/api/icon/index.d.ts.map +1 -0
- package/dist/api/icon/index.js +17 -0
- package/dist/api/icon/index.js.map +1 -0
- package/dist/api/import/index.d.ts +34 -0
- package/dist/api/import/index.d.ts.map +1 -0
- package/dist/api/import/index.js +21 -0
- package/dist/api/import/index.js.map +1 -0
- package/dist/api/inbox/index.d.ts +32 -0
- package/dist/api/inbox/index.d.ts.map +1 -0
- package/dist/api/inbox/index.js +12 -0
- package/dist/api/inbox/index.js.map +1 -0
- package/dist/api/index.d.ts +61 -3
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +30 -1
- package/dist/api/index.js.map +1 -1
- package/dist/api/lute/index.d.ts +42 -0
- package/dist/api/lute/index.d.ts.map +1 -0
- package/dist/api/lute/index.js +12 -0
- package/dist/api/lute/index.js.map +1 -0
- package/dist/api/notebook/index.d.ts +28 -0
- package/dist/api/notebook/index.d.ts.map +1 -1
- package/dist/api/notebook/index.js +9 -0
- package/dist/api/notebook/index.js.map +1 -1
- package/dist/api/outline/index.d.ts +18 -0
- package/dist/api/outline/index.d.ts.map +1 -0
- package/dist/api/outline/index.js +6 -0
- package/dist/api/outline/index.js.map +1 -0
- package/dist/api/petal/index.d.ts +29 -0
- package/dist/api/petal/index.d.ts.map +1 -0
- package/dist/api/petal/index.js +9 -0
- package/dist/api/petal/index.js.map +1 -0
- package/dist/api/{sql → query}/index.d.ts +3 -2
- package/dist/api/query/index.d.ts.map +1 -0
- package/dist/api/{sql → query}/index.js +1 -0
- package/dist/api/query/index.js.map +1 -0
- package/dist/api/ref/index.d.ts +108 -0
- package/dist/api/ref/index.d.ts.map +1 -0
- package/dist/api/ref/index.js +18 -0
- package/dist/api/ref/index.js.map +1 -0
- package/dist/api/repo/index.d.ts +212 -0
- package/dist/api/repo/index.d.ts.map +1 -0
- package/dist/api/repo/index.js +69 -0
- package/dist/api/repo/index.js.map +1 -0
- package/dist/api/riff/index.d.ts +218 -0
- package/dist/api/riff/index.d.ts.map +1 -0
- package/dist/api/riff/index.js +54 -0
- package/dist/api/riff/index.js.map +1 -0
- package/dist/api/search/index.d.ts +269 -0
- package/dist/api/search/index.d.ts.map +1 -0
- package/dist/api/search/index.js +45 -0
- package/dist/api/search/index.js.map +1 -0
- package/dist/api/setting/index.d.ts +150 -0
- package/dist/api/setting/index.d.ts.map +1 -0
- package/dist/api/setting/index.js +66 -0
- package/dist/api/setting/index.js.map +1 -0
- package/dist/api/snippet/index.d.ts +42 -0
- package/dist/api/snippet/index.d.ts.map +1 -0
- package/dist/api/snippet/index.js +12 -0
- package/dist/api/snippet/index.js.map +1 -0
- package/dist/api/storage/index.d.ts +122 -0
- package/dist/api/storage/index.d.ts.map +1 -0
- package/dist/api/storage/index.js +45 -0
- package/dist/api/storage/index.js.map +1 -0
- package/dist/api/sync/index.d.ts +176 -0
- package/dist/api/sync/index.d.ts.map +1 -0
- package/dist/api/sync/index.js +70 -0
- package/dist/api/sync/index.js.map +1 -0
- package/dist/api/system/index.d.ts +264 -4
- package/dist/api/system/index.d.ts.map +1 -1
- package/dist/api/system/index.js +109 -4
- package/dist/api/system/index.js.map +1 -1
- package/dist/api/tag/index.d.ts +37 -0
- package/dist/api/tag/index.d.ts.map +1 -0
- package/dist/api/tag/index.js +12 -0
- package/dist/api/tag/index.js.map +1 -0
- package/dist/api/template/index.d.ts +12 -0
- package/dist/api/template/index.d.ts.map +1 -1
- package/dist/api/template/index.js +3 -0
- package/dist/api/template/index.js.map +1 -1
- package/dist/api/transactions/index.d.ts +18 -0
- package/dist/api/transactions/index.d.ts.map +1 -0
- package/dist/api/transactions/index.js +6 -0
- package/dist/api/transactions/index.js.map +1 -0
- package/dist/api/ui/index.d.ts +44 -0
- package/dist/api/ui/index.d.ts.map +1 -0
- package/dist/api/ui/index.js +21 -0
- package/dist/api/ui/index.js.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +6 -4
- package/dist/api/sql/index.d.ts.map +0 -1
- package/dist/api/sql/index.js.map +0 -1
- package/src/api/archive/index.ts +0 -26
- package/src/api/asset/index.ts +0 -26
- package/src/api/attr/index.ts +0 -72
- package/src/api/block/index.ts +0 -285
- package/src/api/convert/index.ts +0 -18
- package/src/api/export/index.ts +0 -36
- package/src/api/file/index.ts +0 -69
- package/src/api/filetree/index.ts +0 -129
- package/src/api/index.ts +0 -56
- package/src/api/network/index.ts +0 -32
- package/src/api/notebook/index.ts +0 -102
- package/src/api/notification/index.ts +0 -33
- package/src/api/sql/index.ts +0 -65
- package/src/api/sqlite/index.ts +0 -20
- package/src/api/system/index.ts +0 -46
- package/src/api/template/index.ts +0 -32
- package/src/core/index.ts +0 -287
- package/src/index.ts +0 -16
- package/src/types/index.ts +0 -201
- package/src/types/transaction/index.ts +0 -45
- package/src/utils/index.ts +0 -3
package/src/core/index.ts
DELETED
|
@@ -1,287 +0,0 @@
|
|
|
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
|
-
import { IWebSocketData } from 'siyuan'
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* 标准 API 响应格式
|
|
16
|
-
*/
|
|
17
|
-
export interface SyApiResponse<T = any> {
|
|
18
|
-
code: number
|
|
19
|
-
msg: string
|
|
20
|
-
data: T
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export type SyApiMethodResponse<T = any> = Promise<SyApiResponse<T> | IWebSocketData | T>
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* 请求选项
|
|
28
|
-
*/
|
|
29
|
-
export interface RequestOptions {
|
|
30
|
-
/**
|
|
31
|
-
* 请求方法
|
|
32
|
-
* @default POST
|
|
33
|
-
* @description 请求方法
|
|
34
|
-
* @example 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'
|
|
35
|
-
*/
|
|
36
|
-
method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'
|
|
37
|
-
/**
|
|
38
|
-
* 请求头
|
|
39
|
-
* @default {}
|
|
40
|
-
* @description 请求头
|
|
41
|
-
* @example { 'Content-Type': 'application/json' }
|
|
42
|
-
*/
|
|
43
|
-
headers?: Record<string, string>
|
|
44
|
-
/**
|
|
45
|
-
* 超时时间(毫秒)
|
|
46
|
-
* @default 30000
|
|
47
|
-
*/
|
|
48
|
-
timeout?: number
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* 基础 Fetch 函数类型(统一的结构)
|
|
53
|
-
*/
|
|
54
|
-
export type SyBaseApiMethod<T = any> = (
|
|
55
|
-
url: string,
|
|
56
|
-
data?: any,
|
|
57
|
-
options?: RequestOptions
|
|
58
|
-
) => SyApiMethodResponse<T>
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* 自定义 Fetch 函数类型(别名)
|
|
62
|
-
*/
|
|
63
|
-
export type CustomFetch<T = any> = SyBaseApiMethod<T>
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* API 配置(两种方式互斥)
|
|
69
|
-
*/
|
|
70
|
-
export type SiYuanAPIConfig =
|
|
71
|
-
| { baseURL: string, token: string, customFetch?: never }
|
|
72
|
-
| { baseURL?: never, token?: never, customFetch: SyBaseApiMethod }
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* SiYuan API 客户端
|
|
77
|
-
*/
|
|
78
|
-
export class SiYuanAPI {
|
|
79
|
-
/** 基础 URL */
|
|
80
|
-
private baseURL: string
|
|
81
|
-
/** 认证 Token(与 customFetch 互斥) */
|
|
82
|
-
private token?: string
|
|
83
|
-
/** 自定义 fetch 函数(与 token 互斥) */
|
|
84
|
-
private customFetch?: CustomFetch
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
constructor(config: SiYuanAPIConfig) {
|
|
88
|
-
this.setConfig(config)
|
|
89
|
-
// 自动绑定所有原型方法,确保在解构或箭头函数中调用时 this 不会丢失
|
|
90
|
-
this._bindMethods()
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* 绑定所有原型方法到当前实例
|
|
95
|
-
* 这样即使方法被解构,this 也能正确指向实例
|
|
96
|
-
* @private
|
|
97
|
-
*/
|
|
98
|
-
private _bindMethods(): void {
|
|
99
|
-
const prototype = SiYuanAPI.prototype
|
|
100
|
-
const boundMethods = new Set<string>()
|
|
101
|
-
|
|
102
|
-
// 获取原型上的所有属性名(包括不可枚举的)
|
|
103
|
-
const propertyNames = Object.getOwnPropertyNames(prototype)
|
|
104
|
-
|
|
105
|
-
for (const name of propertyNames) {
|
|
106
|
-
// 跳过已绑定的方法和特殊方法
|
|
107
|
-
if (
|
|
108
|
-
boundMethods.has(name)
|
|
109
|
-
|| name === 'constructor'
|
|
110
|
-
|| name.startsWith('_')
|
|
111
|
-
|| name === 'setConfig'
|
|
112
|
-
|| name === 'getConfig'
|
|
113
|
-
|| name === 'extractData'
|
|
114
|
-
|| name === '_bindMethods'
|
|
115
|
-
|| name === 'request'
|
|
116
|
-
|| name === 'post'
|
|
117
|
-
) {
|
|
118
|
-
continue
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
const descriptor = Object.getOwnPropertyDescriptor(prototype, name)
|
|
122
|
-
|
|
123
|
-
// 只绑定函数类型的属性
|
|
124
|
-
if (descriptor && typeof descriptor.value === 'function') {
|
|
125
|
-
;(this as any)[name] = descriptor.value.bind(this)
|
|
126
|
-
boundMethods.add(name)
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
setConfig(config: SiYuanAPIConfig): void {
|
|
132
|
-
// 根据配置类型设置属性
|
|
133
|
-
if ('customFetch' in config) {
|
|
134
|
-
// 使用 customFetch
|
|
135
|
-
this.baseURL = '' // customFetch 模式下 baseURL 可能不需要
|
|
136
|
-
this.customFetch = config.customFetch
|
|
137
|
-
this.token = undefined
|
|
138
|
-
} else {
|
|
139
|
-
// 使用 baseURL + token
|
|
140
|
-
this.baseURL = config.baseURL
|
|
141
|
-
this.token = config.token
|
|
142
|
-
this.customFetch = undefined
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
/**
|
|
147
|
-
* 获取当前配置
|
|
148
|
-
*/
|
|
149
|
-
getConfig(): {
|
|
150
|
-
baseURL: string
|
|
151
|
-
token?: string
|
|
152
|
-
customFetch?: CustomFetch
|
|
153
|
-
} {
|
|
154
|
-
return {
|
|
155
|
-
baseURL: this.baseURL,
|
|
156
|
-
token: this.token,
|
|
157
|
-
customFetch: this.customFetch,
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
/**
|
|
162
|
-
* 默认的 baseFetch 实现(使用标准 fetch)
|
|
163
|
-
*/
|
|
164
|
-
private async _defaultBaseFetch(
|
|
165
|
-
url: string,
|
|
166
|
-
data?: any,
|
|
167
|
-
options?: RequestOptions,
|
|
168
|
-
): Promise<any> {
|
|
169
|
-
const baseURL = this.baseURL || ''
|
|
170
|
-
const fullURL = url.startsWith('http')
|
|
171
|
-
? url
|
|
172
|
-
: `${baseURL.replace(/\/$/, '')}${url}`
|
|
173
|
-
|
|
174
|
-
const method = options?.method || 'POST'
|
|
175
|
-
const headers: Record<string, string> = {
|
|
176
|
-
'Content-Type': 'application/json',
|
|
177
|
-
...options?.headers,
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
// 如果有 token,添加到请求头
|
|
181
|
-
if (this.token) {
|
|
182
|
-
headers.Authorization = `Token ${this.token}`
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
const requestInit: RequestInit = {
|
|
186
|
-
method,
|
|
187
|
-
headers,
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
// 处理请求体
|
|
191
|
-
if (data !== undefined) {
|
|
192
|
-
if (data instanceof FormData) {
|
|
193
|
-
delete headers['Content-Type']
|
|
194
|
-
requestInit.body = data
|
|
195
|
-
} else {
|
|
196
|
-
requestInit.body = JSON.stringify(data)
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
// 处理超时
|
|
201
|
-
const timeout = options?.timeout || 30000
|
|
202
|
-
const controller = new AbortController()
|
|
203
|
-
const timeoutId = setTimeout(() => controller.abort(), timeout)
|
|
204
|
-
|
|
205
|
-
try {
|
|
206
|
-
const response = await fetch(fullURL, {
|
|
207
|
-
...requestInit,
|
|
208
|
-
signal: controller.signal,
|
|
209
|
-
})
|
|
210
|
-
|
|
211
|
-
clearTimeout(timeoutId)
|
|
212
|
-
|
|
213
|
-
if (!response.ok) {
|
|
214
|
-
throw new Error(`HTTP ${response.status}: ${response.statusText}`)
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
const contentType = response.headers.get('content-type')
|
|
218
|
-
|
|
219
|
-
if (contentType && contentType.includes('application/json')) {
|
|
220
|
-
return await response.json()
|
|
221
|
-
} else {
|
|
222
|
-
return await response.text()
|
|
223
|
-
}
|
|
224
|
-
} catch (error: any) {
|
|
225
|
-
clearTimeout(timeoutId)
|
|
226
|
-
if (error.name === 'AbortError') {
|
|
227
|
-
throw new Error(`Request timeout after ${timeout}ms`)
|
|
228
|
-
}
|
|
229
|
-
throw error
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
/**
|
|
234
|
-
* 内部请求方法
|
|
235
|
-
* 如果存在自定义 fetch,使用自定义 fetch;否则使用默认的 baseFetch(会自动设置 baseURL 和 token)
|
|
236
|
-
* 返回思源标准格式 SyApiResponse<T>
|
|
237
|
-
* 此方法为内部方法,禁止外部修改或覆盖
|
|
238
|
-
* 允许在注入的 API 方法中使用
|
|
239
|
-
*
|
|
240
|
-
* @param url - API 端点路径
|
|
241
|
-
* @param data - 请求数据
|
|
242
|
-
* @param options - 请求选项
|
|
243
|
-
* @returns SyApiResponse<T>
|
|
244
|
-
*
|
|
245
|
-
* @internal
|
|
246
|
-
*/
|
|
247
|
-
async request<T = any>(
|
|
248
|
-
url: string,
|
|
249
|
-
data?: any,
|
|
250
|
-
options?: RequestOptions,
|
|
251
|
-
): SyApiMethodResponse<T> {
|
|
252
|
-
// 如果提供了自定义 fetch,使用自定义 fetch
|
|
253
|
-
if (this.customFetch) {
|
|
254
|
-
return await this.customFetch(url, data, options) as SyApiResponse<T>
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
// 否则使用默认的 baseFetch
|
|
258
|
-
return await this._defaultBaseFetch(url, data, options) as SyApiResponse<T>
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
async post<T = any>(url: string, data?: any, options?: RequestOptions): SyApiMethodResponse<T> {
|
|
263
|
-
return await this.request(url, data, {
|
|
264
|
-
...options,
|
|
265
|
-
method: 'POST',
|
|
266
|
-
}) as SyApiResponse<T>
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
/**
|
|
271
|
-
* 提取响应数据(用于插件模式,直接返回 data)
|
|
272
|
-
* 如果 code === 0,返回 data;否则返回 null
|
|
273
|
-
*
|
|
274
|
-
* @param response - API 响应
|
|
275
|
-
* @returns 提取的数据或 null
|
|
276
|
-
*/
|
|
277
|
-
extractData<T>(response: SyApiResponse<T>): T | null {
|
|
278
|
-
return response.code === 0 ? response.data : null
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
/**
|
|
283
|
-
* 创建 API 实例的便捷函数
|
|
284
|
-
*/
|
|
285
|
-
export function createAPI(config: SiYuanAPIConfig): SiYuanAPI {
|
|
286
|
-
return new SiYuanAPI(config)
|
|
287
|
-
}
|
package/src/index.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SiYuan SDK
|
|
3
|
-
*
|
|
4
|
-
* Copyright (c) 2023 Wetoria. All rights reserved.
|
|
5
|
-
* https://github.com/wetoria/sy-plugin-enhance
|
|
6
|
-
*
|
|
7
|
-
* See API Document in [API.md](https://github.com/siyuan-note/siyuan/blob/master/API.md)
|
|
8
|
-
* API 文档见 [API_zh_CN.md](https://github.com/siyuan-note/siyuan/blob/master/API_zh_CN.md)
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
export * from './api/index.js'
|
|
13
|
-
export type * from './core/index.js'
|
|
14
|
-
export * from './core/index.js'
|
|
15
|
-
export * from './types/index.js'
|
|
16
|
-
|
package/src/types/index.ts
DELETED
|
@@ -1,201 +0,0 @@
|
|
|
1
|
-
export * from './transaction'
|
|
2
|
-
/**
|
|
3
|
-
* Frequently used data structures in SiYuan
|
|
4
|
-
*/
|
|
5
|
-
export type DocumentId = string
|
|
6
|
-
export type BlockId = string
|
|
7
|
-
export type NotebookId = string
|
|
8
|
-
export type PreviousID = BlockId
|
|
9
|
-
export type ParentID = BlockId | DocumentId
|
|
10
|
-
export type DataType = "markdown" | "dom"
|
|
11
|
-
|
|
12
|
-
export interface Notebook {
|
|
13
|
-
id: NotebookId
|
|
14
|
-
name: string
|
|
15
|
-
icon: string
|
|
16
|
-
sort: number
|
|
17
|
-
closed: boolean
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export interface NotebookConf {
|
|
21
|
-
name: string
|
|
22
|
-
closed: boolean
|
|
23
|
-
refCreateSavePath: string
|
|
24
|
-
createDocNameTemplate: string
|
|
25
|
-
dailyNoteSavePath: string
|
|
26
|
-
dailyNoteTemplatePath: string
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export type BlockType =
|
|
30
|
-
| "d"
|
|
31
|
-
| "s"
|
|
32
|
-
| "h"
|
|
33
|
-
| "t"
|
|
34
|
-
| "i"
|
|
35
|
-
| "p"
|
|
36
|
-
| "f"
|
|
37
|
-
| "audio"
|
|
38
|
-
| "video"
|
|
39
|
-
| "other"
|
|
40
|
-
|
|
41
|
-
export type BlockSubType =
|
|
42
|
-
| "d1"
|
|
43
|
-
| "d2"
|
|
44
|
-
| "s1"
|
|
45
|
-
| "s2"
|
|
46
|
-
| "s3"
|
|
47
|
-
| "t1"
|
|
48
|
-
| "t2"
|
|
49
|
-
| "h1"
|
|
50
|
-
| "h2"
|
|
51
|
-
| "h3"
|
|
52
|
-
| "h4"
|
|
53
|
-
| "h5"
|
|
54
|
-
| "h6"
|
|
55
|
-
| "table"
|
|
56
|
-
| "task"
|
|
57
|
-
| "toggle"
|
|
58
|
-
| "latex"
|
|
59
|
-
| "quote"
|
|
60
|
-
| "html"
|
|
61
|
-
| "code"
|
|
62
|
-
| "footnote"
|
|
63
|
-
| "cite"
|
|
64
|
-
| "collection"
|
|
65
|
-
| "bookmark"
|
|
66
|
-
| "attachment"
|
|
67
|
-
| "comment"
|
|
68
|
-
| "mindmap"
|
|
69
|
-
| "spreadsheet"
|
|
70
|
-
| "calendar"
|
|
71
|
-
| "image"
|
|
72
|
-
| "audio"
|
|
73
|
-
| "video"
|
|
74
|
-
| "other"
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* 块属性接口 - 可以手动修改的属性
|
|
78
|
-
* 注释掉的内容也存在,这里用于展示全部字段类型,但禁止手动修改
|
|
79
|
-
*/
|
|
80
|
-
export interface IBlockAttrs {
|
|
81
|
-
// 基础元数据属性
|
|
82
|
-
"name"?: string // 块名称
|
|
83
|
-
"alias"?: string // 块别名
|
|
84
|
-
"memo"?: string // 块备注
|
|
85
|
-
"bookmark"?: string // 书签
|
|
86
|
-
"tags"?: string // 标签(多个用逗号分隔)
|
|
87
|
-
|
|
88
|
-
// 显示控制属性
|
|
89
|
-
"fold"?: "1" | "" // 折叠状态
|
|
90
|
-
"heading-fold"?: "1" | "" // 标题折叠状态
|
|
91
|
-
"style"?: string // CSS 样式字符串
|
|
92
|
-
"scroll"?: string // 滚动位置(JSON 格式)
|
|
93
|
-
|
|
94
|
-
// 系统属性(通常不应手动修改,但可以设置)
|
|
95
|
-
"id"?: string // 块 ID(系统自动生成)
|
|
96
|
-
"title"?: string // 块标题(文档块使用)
|
|
97
|
-
"updated"?: string // 更新时间(系统自动维护)
|
|
98
|
-
"type"?: string // 块类型
|
|
99
|
-
"icon"?: string // 图标
|
|
100
|
-
"status"?: string // 状态
|
|
101
|
-
|
|
102
|
-
// 其他系统属性
|
|
103
|
-
"refcount"?: string // 引用计数
|
|
104
|
-
"parent-heading"?: string // 父标题 ID
|
|
105
|
-
"embed-content"?: string // 嵌入内容
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
// 属性视图相关
|
|
109
|
-
"custom-avs"?: string // 属性视图 ID 列表(逗号分隔)
|
|
110
|
-
"custom-avs-names"?: string // 属性视图名称
|
|
111
|
-
"data-av-type"?: string // 属性视图类型
|
|
112
|
-
|
|
113
|
-
// 闪卡相关
|
|
114
|
-
"custom-riff-decks"?: string // 闪卡牌组
|
|
115
|
-
|
|
116
|
-
// 日记相关
|
|
117
|
-
[key: `custom-dailynote-${string}`]: string
|
|
118
|
-
|
|
119
|
-
// 自定义属性(必须以 custom- 开头)
|
|
120
|
-
[key: `custom-${string}`]: string
|
|
121
|
-
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
/**
|
|
125
|
-
* 允许设置的块属性类型
|
|
126
|
-
* 排除了系统自动维护的属性:id、updated、type、status、refcount、parent-heading、embed-content、scroll
|
|
127
|
-
*/
|
|
128
|
-
export type ISettableBlockAttrs = Omit<
|
|
129
|
-
IBlockAttrs,
|
|
130
|
-
"id"
|
|
131
|
-
| "updated"
|
|
132
|
-
| "type"
|
|
133
|
-
| "status"
|
|
134
|
-
| "refcount"
|
|
135
|
-
| "parent-heading"
|
|
136
|
-
| "embed-content"
|
|
137
|
-
| "scroll"
|
|
138
|
-
>
|
|
139
|
-
|
|
140
|
-
export interface Block {
|
|
141
|
-
id: BlockId
|
|
142
|
-
parent_id?: BlockId
|
|
143
|
-
root_id: DocumentId
|
|
144
|
-
hash: string
|
|
145
|
-
box: string
|
|
146
|
-
path: string
|
|
147
|
-
hpath: string
|
|
148
|
-
name: string
|
|
149
|
-
alias: string
|
|
150
|
-
memo: string
|
|
151
|
-
tag: string
|
|
152
|
-
content: string
|
|
153
|
-
fcontent?: string
|
|
154
|
-
markdown: string
|
|
155
|
-
length: number
|
|
156
|
-
type: BlockType
|
|
157
|
-
subtype: BlockSubType
|
|
158
|
-
/**
|
|
159
|
-
* 块属性(Inline Attributes List)
|
|
160
|
-
* For instance: "{: custom-type=\"query-code\" id=\"20230613234017-zkw3pr0\" updated=\"20230613234509\"}"
|
|
161
|
-
*/
|
|
162
|
-
ial?: string
|
|
163
|
-
sort: number
|
|
164
|
-
created: string
|
|
165
|
-
updated: string
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
export interface IBreadcrumb {
|
|
171
|
-
id: string
|
|
172
|
-
name: string
|
|
173
|
-
type: string
|
|
174
|
-
subType: string
|
|
175
|
-
children: any
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
export interface backlinkData {
|
|
179
|
-
dom: string
|
|
180
|
-
blockPaths: IBreadcrumb[]
|
|
181
|
-
expand: boolean
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
/**
|
|
185
|
-
* 子块信息(用于 getChildBlocks 返回值)
|
|
186
|
-
*/
|
|
187
|
-
export interface ChildBlock {
|
|
188
|
-
id: BlockId
|
|
189
|
-
type: BlockType
|
|
190
|
-
content?: string
|
|
191
|
-
markdown?: string
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
/**
|
|
195
|
-
* 块的 DOM 结构(用于 getBlockDOM 返回值)
|
|
196
|
-
*/
|
|
197
|
-
export interface BlockDOM {
|
|
198
|
-
dom: string
|
|
199
|
-
id: BlockId
|
|
200
|
-
}
|
|
201
|
-
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
BlockId,
|
|
3
|
-
DocumentId,
|
|
4
|
-
} from '../index'
|
|
5
|
-
|
|
6
|
-
export enum ActionTypes {
|
|
7
|
-
insert = 'insert',
|
|
8
|
-
update = 'update',
|
|
9
|
-
delete = 'delete',
|
|
10
|
-
move = 'move',
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export interface doOperation {
|
|
14
|
-
action: ActionTypes
|
|
15
|
-
data: string
|
|
16
|
-
id: BlockId
|
|
17
|
-
parentID: BlockId | DocumentId
|
|
18
|
-
previousID: BlockId
|
|
19
|
-
nextID?: string
|
|
20
|
-
retData: null
|
|
21
|
-
blockIDs?: string[] | null
|
|
22
|
-
blockID?: string
|
|
23
|
-
deckID?: string
|
|
24
|
-
avID?: string
|
|
25
|
-
srcIDs?: string[] | null
|
|
26
|
-
srcs?: string[] | null
|
|
27
|
-
isDetached?: boolean
|
|
28
|
-
ignoreFillFilter?: boolean
|
|
29
|
-
name?: string
|
|
30
|
-
type?: string
|
|
31
|
-
format?: string
|
|
32
|
-
keyID?: string
|
|
33
|
-
rowID?: string
|
|
34
|
-
isTwoWay?: boolean
|
|
35
|
-
backRelationKeyID?: string
|
|
36
|
-
removeDest?: boolean
|
|
37
|
-
layout?: string
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
export interface TransactionItem {
|
|
42
|
-
timestamp: string
|
|
43
|
-
doOperations: doOperation[]
|
|
44
|
-
undoOperations: doOperation[] | null
|
|
45
|
-
}
|
package/src/utils/index.ts
DELETED