@xz-summer/summer-types 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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 夏至
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.en.md ADDED
@@ -0,0 +1,75 @@
1
+ # @xz-summer/summer-types
2
+
3
+ TypeScript type definitions for Summer plugin development.
4
+
5
+ > 📖 [中文文档](./README.md)
6
+
7
+ ## Installation
8
+
9
+ ```bash
10
+ npm install @xz-summer/summer-types --save-dev
11
+ # or
12
+ pnpm add @xz-summer/summer-types -D
13
+ ```
14
+
15
+ ## Usage
16
+
17
+ ```typescript
18
+ import type { PluginContext, SettingItem, LifecycleHook } from '@xz-summer/summer-types'
19
+
20
+ export default class MyPlugin {
21
+ ctx!: PluginContext
22
+ manifest!: PluginManifest
23
+
24
+ async onLoad(): Promise<void> {
25
+ // Full TypeScript support for your plugin
26
+ this.ctx.settings.register([
27
+ {
28
+ key: 'myOption',
29
+ label: 'My Option',
30
+ type: 'boolean',
31
+ default: true
32
+ }
33
+ ])
34
+ }
35
+
36
+ onUnload(): void {
37
+ // Cleanup
38
+ }
39
+ }
40
+ ```
41
+
42
+ ## Available Types
43
+
44
+ ### Core Types
45
+ - `PluginContext` - Plugin context with all available APIs
46
+ - `PluginManifest` - Plugin manifest definition
47
+ - `SummerPlugin` - Base plugin class (for reference)
48
+
49
+ ### Lifecycle Types
50
+ - `LifecycleHook` - All available lifecycle hooks
51
+ - `LifecycleHandler` - Lifecycle handler function type
52
+
53
+ ### Settings Types
54
+ - `SettingItem` - Setting item definition
55
+ - `SettingType` - Available setting types
56
+ - `SettingOption` - Setting option for select type
57
+ - `SettingRegisterOptions` - Options for registering settings
58
+
59
+ ### API Types
60
+ - `EventAPI` - Event system API
61
+ - `SlotAPI` - UI slot system API
62
+ - `StorageAPI` - Storage API
63
+ - `CommandAPI` - Command API
64
+ - `SettingsAPI` - Settings API
65
+ - `ServiceAPI` - Service API
66
+ - `EditorAPI` - Editor API
67
+ - `LifecycleAPI` - Lifecycle API
68
+
69
+ ## Documentation
70
+
71
+ For full documentation, visit: [Summer Plugin Development Guide](https://gitee.com/xiazhi926459/summer)
72
+
73
+ ## License
74
+
75
+ MIT
package/README.md ADDED
@@ -0,0 +1,75 @@
1
+ # @xz-summer/summer-types
2
+
3
+ Summer 插件开发 TypeScript 类型定义包。
4
+
5
+ > 📖 [English Documentation](./README.en.md)
6
+
7
+ ## 安装
8
+
9
+ ```bash
10
+ npm install @xz-summer/summer-types --save-dev
11
+ # 或
12
+ pnpm add @xz-summer/summer-types -D
13
+ ```
14
+
15
+ ## 使用
16
+
17
+ ```typescript
18
+ import type { PluginContext, SettingItem, LifecycleHook } from '@xz-summer/summer-types'
19
+
20
+ export default class MyPlugin {
21
+ ctx!: PluginContext
22
+ manifest!: PluginManifest
23
+
24
+ async onLoad(): Promise<void> {
25
+ // 完整的 TypeScript 类型支持
26
+ this.ctx.settings.register([
27
+ {
28
+ key: 'myOption',
29
+ label: '我的选项',
30
+ type: 'boolean',
31
+ default: true
32
+ }
33
+ ])
34
+ }
35
+
36
+ onUnload(): void {
37
+ // 清理资源
38
+ }
39
+ }
40
+ ```
41
+
42
+ ## 可用类型
43
+
44
+ ### 核心类型
45
+ - `PluginContext` - 插件上下文,包含所有可用 API
46
+ - `PluginManifest` - 插件清单定义
47
+ - `SummerPlugin` - 插件基类(参考用)
48
+
49
+ ### 生命周期类型
50
+ - `LifecycleHook` - 所有可用的生命周期钩子
51
+ - `LifecycleHandler` - 生命周期处理函数类型
52
+
53
+ ### 设置类型
54
+ - `SettingItem` - 设置项定义
55
+ - `SettingType` - 可用的设置类型
56
+ - `SettingOption` - 选择类型的选项
57
+ - `SettingRegisterOptions` - 注册设置的选项
58
+
59
+ ### API 类型
60
+ - `EventAPI` - 事件系统 API
61
+ - `SlotAPI` - UI 插槽系统 API
62
+ - `StorageAPI` - 存储 API
63
+ - `CommandAPI` - 命令 API
64
+ - `SettingsAPI` - 设置 API
65
+ - `ServiceAPI` - 服务 API
66
+ - `EditorAPI` - 编辑器 API
67
+ - `LifecycleAPI` - 生命周期 API
68
+
69
+ ## 文档
70
+
71
+ 完整文档请访问:[Summer 插件开发指南](https://gitee.com/xiazhi926459/summer)
72
+
73
+ ## 许可证
74
+
75
+ MIT
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @xz-summer/summer-types
3
+ *
4
+ * TypeScript type definitions for Summer plugin development
5
+ */
6
+ export type { LifecycleHook, LifecycleHandler } from './lifecycle';
7
+ export type { SettingType, SettingOption, SettingItem, SettingRegisterOptions, CustomSettingsPage, SettingsTab } from './settings';
8
+ export { PluginPriority, PluginType } from './plugin';
9
+ export type { Permission, PluginManifest, ViewMode, SlotName, SlotRegisterOptions, SlotContentType, TabConfig, TabContext, EventAPI, SlotAPI, TabAPI, StorageAPI, CommandAPI, SettingsAPI, ServiceAPI, EditorConfigAPI, EditorAPI, LifecycleAPI, AppContext, EditorConfigContext, EditorReadyContext, PluginContext, ISummerPlugin } from './plugin';
10
+ /**
11
+ * Milkdown 核心依赖已包含在 @xz-summer/summer-types 的 dependencies 中
12
+ *
13
+ * 插件开发者可以直接从各自的包导入需要的类型和功能:
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * import { emoji } from '@milkdown/plugin-emoji'
18
+ * import type { Editor } from '@milkdown/core'
19
+ * ```
20
+ *
21
+ * 由于 TypeScript 的类型解析机制,只要 dependencies 中包含了这些包,
22
+ * 插件开发者就能获得完整的类型提示,无需在此处重新导出。
23
+ */
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAGlE,YAAY,EACV,WAAW,EACX,aAAa,EACb,WAAW,EACX,sBAAsB,EACtB,kBAAkB,EAClB,WAAW,EACZ,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,cAAc,EACd,UAAU,EACX,MAAM,UAAU,CAAA;AAEjB,YAAY,EACV,UAAU,EACV,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,mBAAmB,EACnB,eAAe,EACf,SAAS,EACT,UAAU,EACV,QAAQ,EACR,OAAO,EACP,MAAM,EACN,UAAU,EACV,UAAU,EACV,WAAW,EACX,UAAU,EACV,eAAe,EACf,SAAS,EACT,YAAY,EACZ,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,aAAa,EACd,MAAM,UAAU,CAAA;AAEjB;;;;;;;;;;;;;GAaG"}
package/dist/index.js ADDED
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @xz-summer/summer-types
3
+ *
4
+ * TypeScript type definitions for Summer plugin development
5
+ */
6
+ // 导出插件类型
7
+ export { PluginPriority, PluginType } from './plugin';
8
+ /**
9
+ * Milkdown 核心依赖已包含在 @xz-summer/summer-types 的 dependencies 中
10
+ *
11
+ * 插件开发者可以直接从各自的包导入需要的类型和功能:
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * import { emoji } from '@milkdown/plugin-emoji'
16
+ * import type { Editor } from '@milkdown/core'
17
+ * ```
18
+ *
19
+ * 由于 TypeScript 的类型解析机制,只要 dependencies 中包含了这些包,
20
+ * 插件开发者就能获得完整的类型提示,无需在此处重新导出。
21
+ */
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAeH,SAAS;AACT,OAAO,EACL,cAAc,EACd,UAAU,EACX,MAAM,UAAU,CAAA;AA4BjB;;;;;;;;;;;;;GAaG"}
@@ -0,0 +1,140 @@
1
+ /**
2
+ * 生命周期系统类型定义
3
+ *
4
+ * 定义 Summer 应用的完整生命周期钩子
5
+ */
6
+ /**
7
+ * 生命周期钩子类型
8
+ *
9
+ * 包含应用级、Editor 级和插件级的所有生命周期钩子
10
+ */
11
+ export type LifecycleHook =
12
+ /**
13
+ * 应用初始化前
14
+ *
15
+ * 触发时机:应用启动时,最早的钩子
16
+ * 典型用途:设置全局配置、初始化外部服务连接、加载必需的资源
17
+ * 注意:此时其他插件尚未加载,不要依赖其他插件的功能
18
+ */
19
+ 'app:beforeInit'
20
+ /**
21
+ * 应用初始化中
22
+ *
23
+ * 触发时机:核心插件(Theme、Layout)加载时
24
+ * 典型用途:注册核心服务、设置基础配置、初始化核心功能
25
+ * 注意:此时核心插件正在加载,可以访问部分核心服务
26
+ */
27
+ | 'app:init'
28
+ /**
29
+ * 应用初始化后
30
+ *
31
+ * 触发时机:核心插件加载完成后,功能插件加载前
32
+ * 典型用途:访问核心服务(Theme、Layout 等)、注册依赖核心功能的组件
33
+ * 注意:此时核心插件已就绪,但功能插件尚未加载
34
+ */
35
+ | 'app:afterInit'
36
+ /**
37
+ * 应用就绪前
38
+ *
39
+ * 触发时机:功能插件加载时,应用完全就绪前
40
+ * 典型用途:最后的准备工作、检查依赖是否满足、预加载资源
41
+ * 注意:此时大部分插件已加载,即将进入就绪状态
42
+ */
43
+ | 'app:beforeReady'
44
+ /**
45
+ * 应用就绪
46
+ *
47
+ * 触发时机:所有插件加载完成,应用完全就绪
48
+ * 典型用途:启动后台任务、显示欢迎界面、开始监控和统计、恢复上次会话
49
+ * 注意:此时应用已完全就绪,所有功能都可用
50
+ */
51
+ | 'app:ready'
52
+ /**
53
+ * 应用销毁前
54
+ *
55
+ * 触发时机:应用关闭前,资源清理前
56
+ * 典型用途:保存用户数据、保存应用状态、清理临时文件、断开外部连接、停止后台任务
57
+ * 注意:这是保存数据的最后机会,务必完成所有保存操作
58
+ */
59
+ | 'app:beforeDestroy'
60
+ /**
61
+ * 应用销毁中
62
+ *
63
+ * 触发时机:应用销毁过程中,即将完全关闭
64
+ * 典型用途:最终的资源释放、清理全局状态、记录关闭日志
65
+ * 注意:此时应用即将关闭,只做必要的清理工作
66
+ */
67
+ | 'app:destroy'
68
+ /**
69
+ * Editor 创建前
70
+ *
71
+ * 触发时机:Editor 实例创建前
72
+ * 典型用途:注册 Milkdown 配置(editorCore.config())、注册 Milkdown 插件(editorCore.use())
73
+ * 注意:这是唯一可以调用 editorCore.use() 和 editorCore.config() 的时机
74
+ */
75
+ | 'editor:beforeCreate'
76
+ /**
77
+ * Editor 创建后
78
+ *
79
+ * 触发时机:Editor 实例已创建,但可能还在初始化
80
+ * 典型用途:访问 Editor 实例、设置 Editor 监听器、初始化与 Editor 相关的状态
81
+ * 注意:Editor 可能还在初始化,某些操作可能不稳定
82
+ */
83
+ | 'editor:created'
84
+ /**
85
+ * Editor 就绪
86
+ *
87
+ * 触发时机:Editor 完全就绪,可以安全操作
88
+ * 典型用途:操作 Editor 内容、执行 Editor 命令、设置光标位置、加载文档内容
89
+ * 注意:这是操作 Editor 的推荐时机
90
+ */
91
+ | 'editor:ready'
92
+ /**
93
+ * Editor 销毁前
94
+ *
95
+ * 触发时机:Editor 即将销毁
96
+ * 典型用途:保存编辑器状态、保存文档内容、清理 Editor 相关资源、取消 Editor 监听器
97
+ * 注意:这是访问 Editor 的最后机会
98
+ */
99
+ | 'editor:beforeDestroy'
100
+ /**
101
+ * Editor 已销毁
102
+ *
103
+ * 触发时机:Editor 已销毁
104
+ * 典型用途:最终的编辑器相关清理、重置编辑器相关状态
105
+ * 注意:此时 Editor 已不可用
106
+ */
107
+ | 'editor:destroyed'
108
+ /**
109
+ * 插件加载前
110
+ *
111
+ * 触发时机:插件即将加载
112
+ * 典型用途:插件加载前的准备工作
113
+ */
114
+ | 'plugin:beforeLoad'
115
+ /**
116
+ * 插件已加载
117
+ *
118
+ * 触发时机:插件已成功加载
119
+ * 典型用途:通知其他插件某个插件已加载
120
+ */
121
+ | 'plugin:loaded'
122
+ /**
123
+ * 插件卸载前
124
+ *
125
+ * 触发时机:插件即将卸载
126
+ * 典型用途:插件卸载前的清理工作
127
+ */
128
+ | 'plugin:beforeUnload'
129
+ /**
130
+ * 插件已卸载
131
+ *
132
+ * 触发时机:插件已卸载
133
+ * 典型用途:通知其他插件某个插件已卸载
134
+ */
135
+ | 'plugin:unloaded';
136
+ /**
137
+ * 生命周期钩子处理函数
138
+ */
139
+ export type LifecycleHandler = (context?: any) => void | Promise<void>;
140
+ //# sourceMappingURL=lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;GAIG;AACH,MAAM,MAAM,aAAa;AAGvB;;;;;;GAMG;AACD,gBAAgB;AAElB;;;;;;GAMG;GACD,UAAU;AAEZ;;;;;;GAMG;GACD,eAAe;AAEjB;;;;;;GAMG;GACD,iBAAiB;AAEnB;;;;;;GAMG;GACD,WAAW;AAEb;;;;;;GAMG;GACD,mBAAmB;AAErB;;;;;;GAMG;GACD,aAAa;AAIf;;;;;;GAMG;GACD,qBAAqB;AAEvB;;;;;;GAMG;GACD,gBAAgB;AAElB;;;;;;GAMG;GACD,cAAc;AAEhB;;;;;;GAMG;GACD,sBAAsB;AAExB;;;;;;GAMG;GACD,kBAAkB;AAIpB;;;;;GAKG;GACD,mBAAmB;AAErB;;;;;GAKG;GACD,eAAe;AAEjB;;;;;GAKG;GACD,qBAAqB;AAEvB;;;;;GAKG;GACD,iBAAiB,CAAA;AAErB;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * 生命周期系统类型定义
3
+ *
4
+ * 定义 Summer 应用的完整生命周期钩子
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,436 @@
1
+ /**
2
+ * 插件系统类型定义
3
+ */
4
+ import type { LifecycleHook } from './lifecycle';
5
+ import type { SettingItem, SettingRegisterOptions, CustomSettingsPage, SettingsTab } from './settings';
6
+ import type { Component } from 'vue';
7
+ /** 插件优先级 */
8
+ export declare enum PluginPriority {
9
+ SYSTEM = 0,
10
+ CORE = 100,
11
+ UI = 200,
12
+ FEATURE = 300,
13
+ USER = 1000
14
+ }
15
+ /** 插件类型 */
16
+ export declare enum PluginType {
17
+ CORE = "core",// 核心插件,不可卸载
18
+ UI = "ui",// UI 插件,可卸载
19
+ FEATURE = "feature",// 功能插件,可卸载
20
+ EXTENSION = "extension"
21
+ }
22
+ /** 权限类型 */
23
+ export type Permission = 'editor' | 'editor:syntax' | 'ui:toolbar' | 'ui:sidebar' | 'ui:statusbar' | 'ui:modal' | 'ui:layout' | 'theme' | 'commands' | 'storage' | 'fs' | 'fs:read' | 'fs:write' | 'network' | 'ai';
24
+ /** 插件清单 */
25
+ export interface PluginManifest {
26
+ id: string;
27
+ name: string;
28
+ version: string;
29
+ description?: string;
30
+ author?: string;
31
+ homepage?: string;
32
+ repository?: string;
33
+ license?: string;
34
+ main?: string;
35
+ styles?: string;
36
+ type?: PluginType;
37
+ unloadable?: boolean;
38
+ requiresRestart?: boolean;
39
+ priority?: PluginPriority;
40
+ permissions?: Permission[];
41
+ dependencies?: Record<string, string>;
42
+ minAppVersion?: string;
43
+ }
44
+ /** 编辑器视图模式 */
45
+ export type ViewMode = 'preview' | 'source' | 'split';
46
+ /** 插槽名称 */
47
+ export type SlotName = 'root' | 'titlebar-left' | 'titlebar-center' | 'titlebar-right' | 'toolbar-left' | 'toolbar-center' | 'toolbar-right' | 'sidebar-left' | 'sidebar-right' | 'editor-left' | 'editor' | 'editor-right' | 'editor-toolbar' | 'panel-bottom' | 'statusbar-left' | 'statusbar-right' | 'modal';
48
+ /** 插槽注册选项 */
49
+ export interface SlotRegisterOptions {
50
+ id?: string;
51
+ order?: number;
52
+ props?: Record<string, any>;
53
+ /** 独占模式:替换而非追加 */
54
+ exclusive?: boolean;
55
+ }
56
+ /** 插槽内容类型 - 支持多种框架 */
57
+ export type SlotContentType = Component | HTMLElement | string | (() => HTMLElement) | {
58
+ render: () => HTMLElement;
59
+ };
60
+ /** Tab 配置 */
61
+ export interface TabConfig {
62
+ /** Tab ID(不含插件前缀) */
63
+ id: string;
64
+ /** Tab 标题 */
65
+ label: string;
66
+ /** Tab 图标 */
67
+ icon?: string;
68
+ /** Tab 组件(工厂函数,接收 TabContext) */
69
+ component: (ctx: TabContext) => Component;
70
+ /** 排序权重 */
71
+ order?: number;
72
+ /** 是否默认激活 */
73
+ defaultActive?: boolean;
74
+ }
75
+ /**
76
+ * Tab 上下文 - 组件通过此上下文访问 API
77
+ *
78
+ * 提供统一的 API 访问方式,避免直接使用全局函数
79
+ */
80
+ export interface TabContext {
81
+ /** 服务 API */
82
+ services: ServiceAPI;
83
+ /** 事件 API */
84
+ events: EventAPI;
85
+ /** 插槽 API */
86
+ slots: SlotAPI;
87
+ /** 便捷方法:获取服务 */
88
+ getService<T>(serviceId: string): T | undefined;
89
+ /** 便捷方法:发送事件 */
90
+ emit(event: string, payload?: any): void;
91
+ /** 便捷方法:监听事件(返回取消监听函数) */
92
+ on(event: string, handler: (payload: any) => void): () => void;
93
+ }
94
+ /** 事件 API */
95
+ export interface EventAPI {
96
+ emit(event: string, payload?: any): void;
97
+ on(event: string, handler: (payload: any) => void): () => void;
98
+ once(event: string, handler: (payload: any) => void): () => void;
99
+ }
100
+ /** 插槽 API */
101
+ export interface SlotAPI {
102
+ register(slot: SlotName, content: SlotContentType, options?: SlotRegisterOptions): void;
103
+ unregister(slot: SlotName, componentId: string): void;
104
+ }
105
+ /** Tab API */
106
+ export interface TabAPI {
107
+ /**
108
+ * 注册侧边栏 Tab
109
+ */
110
+ register(config: TabConfig): void;
111
+ /**
112
+ * 取消注册 Tab
113
+ */
114
+ unregister(tabId: string): void;
115
+ }
116
+ /** 存储 API */
117
+ export interface StorageAPI {
118
+ get<T>(key: string, defaultValue?: T): Promise<T>;
119
+ set<T>(key: string, value: T): Promise<void>;
120
+ delete(key: string): Promise<void>;
121
+ }
122
+ /** 命令 API */
123
+ export interface CommandAPI {
124
+ register(id: string, options: {
125
+ name: string;
126
+ shortcut?: string;
127
+ handler: () => void;
128
+ }): void;
129
+ execute(id: string): void;
130
+ }
131
+ /** 设置 API */
132
+ export interface SettingsAPI {
133
+ /**
134
+ * 注册设置项
135
+ */
136
+ register(items: SettingItem[], options?: SettingRegisterOptions): void;
137
+ /**
138
+ * 获取设置值
139
+ */
140
+ get<T>(key: string): T;
141
+ /**
142
+ * 设置值
143
+ */
144
+ set<T>(key: string, value: T): void;
145
+ /**
146
+ * 获取所有设置值
147
+ */
148
+ getAll(): Record<string, any>;
149
+ /**
150
+ * 获取设置项定义
151
+ */
152
+ getItems(): SettingItem[];
153
+ /**
154
+ * 重置设置项
155
+ */
156
+ reset(key: string): void;
157
+ /**
158
+ * 重置所有设置
159
+ */
160
+ resetAll(): void;
161
+ /**
162
+ * 监听设置变更
163
+ */
164
+ onChange(key: string, handler: (value: any) => void): () => void;
165
+ /**
166
+ * 注册自定义设置页面
167
+ */
168
+ registerCustomPage(page: CustomSettingsPage): void;
169
+ /**
170
+ * 注册自定义标签页
171
+ */
172
+ registerTab(tab: Omit<SettingsTab, 'pluginId'>): void;
173
+ }
174
+ /** 服务 API */
175
+ export interface ServiceAPI {
176
+ /** 注册服务 */
177
+ register<T>(serviceId: string, service: T): void;
178
+ /** 获取服务(可能为 undefined) */
179
+ get<T>(serviceId: string): T | undefined;
180
+ /** 等待服务就绪 */
181
+ waitFor<T>(serviceId: string): Promise<T>;
182
+ /** 检查服务是否存在 */
183
+ has(serviceId: string): boolean;
184
+ /** 取消注册服务 */
185
+ unregister(serviceId: string): void;
186
+ }
187
+ /** Editor 配置 API(仅在 onBeforeEditorCreate 阶段可用) */
188
+ export interface EditorConfigAPI {
189
+ /**
190
+ * 注册 Milkdown 配置
191
+ */
192
+ config(configFn: (ctx: any) => void): void;
193
+ /**
194
+ * 注册 Milkdown 插件
195
+ */
196
+ use(plugin: any): void;
197
+ /**
198
+ * 配置 Crepe 选项
199
+ */
200
+ configureCrepe(options: any): void;
201
+ /**
202
+ * 添加 CodeMirror 扩展
203
+ */
204
+ addCodeMirrorExtension(extension: any): void;
205
+ }
206
+ /** Editor 完整 API(Editor 创建后可用) */
207
+ export interface EditorAPI extends EditorConfigAPI {
208
+ /**
209
+ * 获取 Milkdown Editor 实例
210
+ */
211
+ getMilkdown(): any;
212
+ /**
213
+ * 获取 Milkdown 内容
214
+ */
215
+ getMilkdownContent(): string;
216
+ /**
217
+ * 设置 Milkdown 内容
218
+ */
219
+ setMilkdownContent(content: string): void;
220
+ /**
221
+ * 获取 CodeMirror EditorView 实例
222
+ */
223
+ getCodeMirror(): any;
224
+ /**
225
+ * 获取 CodeMirror 内容
226
+ */
227
+ getCodeMirrorContent(): string;
228
+ /**
229
+ * 设置 CodeMirror 内容
230
+ */
231
+ setCodeMirrorContent(content: string): void;
232
+ /**
233
+ * 检查 Milkdown 是否就绪
234
+ */
235
+ isMilkdownReady(): boolean;
236
+ /**
237
+ * 检查 CodeMirror 是否就绪
238
+ */
239
+ isCodeMirrorReady(): boolean;
240
+ /**
241
+ * 检查两个编辑器是否都就绪
242
+ */
243
+ isReady(): boolean;
244
+ /**
245
+ * 等待就绪
246
+ */
247
+ waitForReady(): Promise<any>;
248
+ /**
249
+ * 获取 Editor 实例(向后兼容,等同于 getMilkdown)
250
+ */
251
+ getEditor(): any;
252
+ /**
253
+ * 获取内容(默认从 Milkdown)
254
+ */
255
+ getContent(): string;
256
+ /**
257
+ * 设置内容(默认到 Milkdown)
258
+ */
259
+ setContent(content: string): void;
260
+ /**
261
+ * 监听内容变化
262
+ */
263
+ onContentChange(handler: (content: string) => void): () => void;
264
+ /**
265
+ * 启用双向同步(split 模式)
266
+ */
267
+ enableSync(): void;
268
+ /**
269
+ * 禁用双向同步(preview/source 模式)
270
+ */
271
+ disableSync(): void;
272
+ /**
273
+ * 设置焦点编辑器
274
+ */
275
+ setFocus(editor: 'milkdown' | 'codemirror' | null): void;
276
+ /**
277
+ * 获取当前焦点编辑器
278
+ */
279
+ getFocus(): 'milkdown' | 'codemirror' | null;
280
+ }
281
+ /** 生命周期 API */
282
+ export interface LifecycleAPI {
283
+ /**
284
+ * 注册生命周期钩子
285
+ */
286
+ on(hook: LifecycleHook, handler: (context?: any) => void | Promise<void>): () => void;
287
+ /**
288
+ * 注册一次性钩子
289
+ */
290
+ once(hook: LifecycleHook, handler: (context?: any) => void | Promise<void>): void;
291
+ }
292
+ /**
293
+ * 基础应用上下文 - 应用初始化阶段
294
+ *
295
+ * 可访问:事件、存储、设置、插槽、命令、服务
296
+ */
297
+ export interface AppContext {
298
+ /** 事件 API */
299
+ events: EventAPI;
300
+ /** 插槽 API */
301
+ slots: SlotAPI;
302
+ /** Tab API */
303
+ tabs: TabAPI;
304
+ /** 存储 API */
305
+ storage: StorageAPI;
306
+ /** 命令 API */
307
+ commands: CommandAPI;
308
+ /** 设置 API */
309
+ settings: SettingsAPI;
310
+ /** 服务 API */
311
+ services: ServiceAPI;
312
+ /** 生命周期 API */
313
+ lifecycle: LifecycleAPI;
314
+ /** 插件清单 */
315
+ manifest: PluginManifest;
316
+ }
317
+ /**
318
+ * Editor 配置上下文 - Editor 创建前
319
+ *
320
+ * 可访问:AppContext + Editor 配置 API
321
+ */
322
+ export interface EditorConfigContext extends AppContext {
323
+ /** Editor 配置 API */
324
+ editor: EditorConfigAPI;
325
+ }
326
+ /**
327
+ * Editor 就绪上下文 - Editor 创建后
328
+ *
329
+ * 可访问:AppContext + 完整 Editor API
330
+ */
331
+ export interface EditorReadyContext extends AppContext {
332
+ /** Editor 完整 API */
333
+ editor: EditorAPI;
334
+ }
335
+ /** 插件上下文(向后兼容,已废弃,请使用 AppContext/EditorConfigContext/EditorReadyContext) */
336
+ export interface PluginContext extends EditorReadyContext {
337
+ }
338
+ /**
339
+ * Summer 插件接口
340
+ *
341
+ * 定义插件必须实现的契约
342
+ *
343
+ * 生命周期钩子通过参数类型明确可访问的资源:
344
+ * - AppContext: 应用级资源(events, storage, settings 等)
345
+ * - EditorConfigContext: AppContext + Editor 配置 API(use, config)
346
+ * - EditorReadyContext: AppContext + 完整 Editor API(getEditor, getContent 等)
347
+ */
348
+ export interface ISummerPlugin {
349
+ /** 插件 ID */
350
+ readonly id?: string;
351
+ /** 插件清单 */
352
+ manifest?: PluginManifest;
353
+ /**
354
+ * 插件加载时调用
355
+ *
356
+ * @param ctx - 应用上下文(通过参数传递)
357
+ */
358
+ onLoad(ctx: AppContext): void | Promise<void>;
359
+ /**
360
+ * 插件卸载时调用
361
+ *
362
+ * @param ctx - 应用上下文
363
+ */
364
+ onUnload(ctx: AppContext): void;
365
+ /**
366
+ * 应用初始化前调用(最早的钩子)
367
+ */
368
+ onBeforeInit?(ctx: AppContext): void | Promise<void>;
369
+ /**
370
+ * 应用初始化中调用(核心插件加载时)
371
+ */
372
+ onInit?(ctx: AppContext): void | Promise<void>;
373
+ /**
374
+ * 应用初始化后调用(核心插件已加载)
375
+ */
376
+ onAfterInit?(ctx: AppContext): void | Promise<void>;
377
+ /**
378
+ * 应用就绪前调用(功能插件加载时)
379
+ */
380
+ onBeforeReady?(ctx: AppContext): void | Promise<void>;
381
+ /**
382
+ * 应用就绪后调用(所有插件已加载)
383
+ */
384
+ onReady?(ctx: AppContext): void | Promise<void>;
385
+ /**
386
+ * 应用销毁前调用(保存状态)
387
+ */
388
+ onBeforeDestroy?(ctx: AppContext): void | Promise<void>;
389
+ /**
390
+ * 应用销毁中调用(最后的清理)
391
+ */
392
+ onDestroy?(ctx: AppContext): void | Promise<void>;
393
+ /**
394
+ * Editor 创建前调用
395
+ *
396
+ * 此阶段可以:
397
+ * - 注册 Milkdown 插件 (ctx.editor.use)
398
+ * - 注册 Milkdown 配置 (ctx.editor.config)
399
+ *
400
+ * @param ctx - Editor 配置上下文
401
+ */
402
+ onBeforeEditorCreate?(ctx: EditorConfigContext): void | Promise<void>;
403
+ /**
404
+ * Editor 创建后调用
405
+ *
406
+ * 此阶段可以:
407
+ * - 访问 Editor 实例 (ctx.editor.getEditor)
408
+ * - 获取/设置内容 (ctx.editor.getContent/setContent)
409
+ *
410
+ * @param ctx - Editor 就绪上下文
411
+ */
412
+ onEditorCreated?(ctx: EditorReadyContext): void | Promise<void>;
413
+ /**
414
+ * Editor 就绪后调用
415
+ *
416
+ * 此阶段可以:
417
+ * - 访问 Editor 实例
418
+ * - 监听内容变化 (ctx.editor.onContentChange)
419
+ *
420
+ * @param ctx - Editor 就绪上下文
421
+ */
422
+ onEditorReady?(ctx: EditorReadyContext): void | Promise<void>;
423
+ /**
424
+ * Editor 销毁前调用
425
+ *
426
+ * @param ctx - Editor 就绪上下文
427
+ */
428
+ onBeforeEditorDestroy?(ctx: EditorReadyContext): void | Promise<void>;
429
+ /**
430
+ * Editor 已销毁后调用
431
+ *
432
+ * @param ctx - 应用上下文
433
+ */
434
+ onEditorDestroyed?(ctx: AppContext): void | Promise<void>;
435
+ }
436
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
package/dist/plugin.js ADDED
@@ -0,0 +1,21 @@
1
+ /**
2
+ * 插件系统类型定义
3
+ */
4
+ /** 插件优先级 */
5
+ export var PluginPriority;
6
+ (function (PluginPriority) {
7
+ PluginPriority[PluginPriority["SYSTEM"] = 0] = "SYSTEM";
8
+ PluginPriority[PluginPriority["CORE"] = 100] = "CORE";
9
+ PluginPriority[PluginPriority["UI"] = 200] = "UI";
10
+ PluginPriority[PluginPriority["FEATURE"] = 300] = "FEATURE";
11
+ PluginPriority[PluginPriority["USER"] = 1000] = "USER";
12
+ })(PluginPriority || (PluginPriority = {}));
13
+ /** 插件类型 */
14
+ export var PluginType;
15
+ (function (PluginType) {
16
+ PluginType["CORE"] = "core";
17
+ PluginType["UI"] = "ui";
18
+ PluginType["FEATURE"] = "feature";
19
+ PluginType["EXTENSION"] = "extension"; // 扩展插件,可卸载
20
+ })(PluginType || (PluginType = {}));
21
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,YAAY;AACZ,MAAM,CAAN,IAAY,cAMX;AAND,WAAY,cAAc;IACxB,uDAAU,CAAA;IACV,qDAAU,CAAA;IACV,iDAAQ,CAAA;IACR,2DAAa,CAAA;IACb,sDAAW,CAAA;AACb,CAAC,EANW,cAAc,KAAd,cAAc,QAMzB;AAED,WAAW;AACX,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,2BAAa,CAAA;IACb,uBAAS,CAAA;IACT,iCAAmB,CAAA;IACnB,qCAAuB,CAAA,CAAE,WAAW;AACtC,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * 设置系统类型定义
3
+ */
4
+ /**
5
+ * 设置类型
6
+ */
7
+ export type SettingType = 'boolean' | 'number' | 'string' | 'select' | 'textarea' | 'file' | 'color' | 'slider' | 'hotkey' | 'custom';
8
+ /**
9
+ * 选项定义
10
+ */
11
+ export interface SettingOption {
12
+ /** 显示标签 */
13
+ label: string;
14
+ /** 选项值 */
15
+ value: any;
16
+ /** 描述信息 */
17
+ description?: string;
18
+ }
19
+ /**
20
+ * 设置项定义
21
+ */
22
+ export interface SettingItem {
23
+ /** 设置键 */
24
+ key: string;
25
+ /** 显示标签 */
26
+ label: string;
27
+ /** 设置类型 */
28
+ type: SettingType;
29
+ /** 默认值 */
30
+ default: any;
31
+ /** 描述信息 */
32
+ description?: string;
33
+ /** 最小值(number 类型) */
34
+ min?: number;
35
+ /** 最大值(number 类型) */
36
+ max?: number;
37
+ /** 步长(number 类型) */
38
+ step?: number;
39
+ /** 选项列表(select 类型) */
40
+ options?: SettingOption[];
41
+ /** 占位符(string/textarea 类型) */
42
+ placeholder?: string;
43
+ /** 正则表达式验证(string 类型) */
44
+ pattern?: string;
45
+ /** 是否必填 */
46
+ required?: boolean;
47
+ /** 是否禁用 */
48
+ disabled?: boolean;
49
+ /** 显示顺序 */
50
+ order?: number;
51
+ /** 自定义组件(custom 类型) */
52
+ component?: any;
53
+ /** 自定义组件属性 */
54
+ componentProps?: Record<string, any>;
55
+ }
56
+ /**
57
+ * 设置注册选项
58
+ */
59
+ export interface SettingRegisterOptions {
60
+ /** 分类名称(默认使用插件名称) */
61
+ category?: string;
62
+ /** 分类图标 */
63
+ icon?: string;
64
+ /** 显示顺序 */
65
+ order?: number;
66
+ }
67
+ /**
68
+ * 自定义设置页面
69
+ */
70
+ export interface CustomSettingsPage {
71
+ /** 页面 ID */
72
+ id: string;
73
+ /** 显示标签 */
74
+ label: string;
75
+ /** 图标 */
76
+ icon?: string;
77
+ /** 自定义组件 */
78
+ component: any;
79
+ /** 显示顺序 */
80
+ order?: number;
81
+ /** 所属分类 */
82
+ category?: string;
83
+ }
84
+ /**
85
+ * 设置标签页
86
+ */
87
+ export interface SettingsTab {
88
+ /** 标签 ID */
89
+ id: string;
90
+ /** 显示标签 */
91
+ label: string;
92
+ /** 图标 */
93
+ icon?: string;
94
+ /** 标签组件 */
95
+ component: any;
96
+ /** 显示顺序 */
97
+ order?: number;
98
+ /** 插件 ID */
99
+ pluginId: string;
100
+ }
101
+ //# sourceMappingURL=settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,MAAM,GACN,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,QAAQ,CAAA;AAEZ;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,WAAW;IACX,KAAK,EAAE,MAAM,CAAA;IAEb,UAAU;IACV,KAAK,EAAE,GAAG,CAAA;IAEV,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,UAAU;IACV,GAAG,EAAE,MAAM,CAAA;IAEX,WAAW;IACX,KAAK,EAAE,MAAM,CAAA;IAEb,WAAW;IACX,IAAI,EAAE,WAAW,CAAA;IAEjB,UAAU;IACV,OAAO,EAAE,GAAG,CAAA;IAEZ,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,qBAAqB;IACrB,GAAG,CAAC,EAAE,MAAM,CAAA;IAEZ,qBAAqB;IACrB,GAAG,CAAC,EAAE,MAAM,CAAA;IAEZ,oBAAoB;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,sBAAsB;IACtB,OAAO,CAAC,EAAE,aAAa,EAAE,CAAA;IAEzB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,yBAAyB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB,WAAW;IACX,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB,WAAW;IACX,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,uBAAuB;IACvB,SAAS,CAAC,EAAE,GAAG,CAAA;IAEf,cAAc;IACd,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,WAAW;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,YAAY;IACZ,EAAE,EAAE,MAAM,CAAA;IAEV,WAAW;IACX,KAAK,EAAE,MAAM,CAAA;IAEb,SAAS;IACT,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,YAAY;IACZ,SAAS,EAAE,GAAG,CAAA;IAEd,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,WAAW;IACX,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,YAAY;IACZ,EAAE,EAAE,MAAM,CAAA;IAEV,WAAW;IACX,KAAK,EAAE,MAAM,CAAA;IAEb,SAAS;IACT,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,WAAW;IACX,SAAS,EAAE,GAAG,CAAA;IAEd,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,YAAY;IACZ,QAAQ,EAAE,MAAM,CAAA;CACjB"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * 设置系统类型定义
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA;;GAEG"}
package/package.json ADDED
@@ -0,0 +1,63 @@
1
+ {
2
+ "name": "@xz-summer/summer-types",
3
+ "version": "1.0.0",
4
+ "description": "TypeScript type definitions for Summer plugin development | Summer 插件开发 TypeScript 类型定义",
5
+ "keywords": [
6
+ "summer",
7
+ "plugin",
8
+ "types",
9
+ "typescript",
10
+ "milkdown"
11
+ ],
12
+ "author": {
13
+ "name": "夏至",
14
+ "email": "1378511152@qq.com",
15
+ "url": "https://gitee.com/xiazhi926459"
16
+ },
17
+ "license": "MIT",
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "https://gitee.com/xiazhi926459/summer.git",
21
+ "directory": "npm-packages/summer-types"
22
+ },
23
+ "homepage": "https://gitee.com/xiazhi926459/summer/tree/master/npm-packages/summer-types",
24
+ "bugs": {
25
+ "url": "https://gitee.com/xiazhi926459/summer/issues"
26
+ },
27
+ "type": "module",
28
+ "main": "./dist/index.js",
29
+ "types": "./dist/index.d.ts",
30
+ "exports": {
31
+ ".": {
32
+ "types": "./dist/index.d.ts",
33
+ "import": "./dist/index.js"
34
+ }
35
+ },
36
+ "files": [
37
+ "dist"
38
+ ],
39
+ "dependencies": {
40
+ "@milkdown/core": "^7.18.0",
41
+ "@milkdown/ctx": "^7.18.0",
42
+ "@milkdown/crepe": "^7.18.0",
43
+ "@milkdown/preset-commonmark": "^7.18.0"
44
+ },
45
+ "devDependencies": {
46
+ "typescript": "^5.9.3"
47
+ },
48
+ "peerDependencies": {
49
+ "vue": "^3.5.13"
50
+ },
51
+ "peerDependenciesMeta": {
52
+ "vue": {
53
+ "optional": true
54
+ }
55
+ },
56
+ "publishConfig": {
57
+ "access": "public"
58
+ },
59
+ "scripts": {
60
+ "build": "tsc",
61
+ "watch": "tsc --watch"
62
+ }
63
+ }