@aalis/core 0.6.0 → 0.8.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/dist/app.d.ts +11 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +7 -1
- package/dist/app.js.map +1 -1
- package/dist/config.d.ts +0 -49
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +0 -134
- package/dist/config.js.map +1 -1
- package/dist/context.d.ts +61 -46
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +93 -63
- package/dist/context.js.map +1 -1
- package/dist/contributions.d.ts +75 -0
- package/dist/contributions.d.ts.map +1 -0
- package/dist/contributions.js +83 -0
- package/dist/contributions.js.map +1 -0
- package/dist/events.js +1 -1
- package/dist/events.js.map +1 -1
- package/dist/hooks.d.ts +7 -22
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +6 -2
- package/dist/hooks.js.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +1 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/plugin.d.ts +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +27 -6
- package/dist/plugin.js.map +1 -1
- package/dist/service.d.ts +0 -35
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +0 -52
- package/dist/service.js.map +1 -1
- package/dist/types/contributions.d.ts +3 -0
- package/dist/types/contributions.d.ts.map +1 -0
- package/dist/types/contributions.js +10 -0
- package/dist/types/contributions.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +3 -2
- package/dist/types/index.js.map +1 -1
- package/package.json +1 -1
package/dist/context.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { ScopedConfigManager } from './config.js';
|
|
2
1
|
import { DisposableChain } from './disposable-chain.js';
|
|
3
2
|
import { emitServiceRegistered, validateProvide } from './service-helpers.js';
|
|
4
3
|
/**
|
|
@@ -10,8 +9,6 @@ import { emitServiceRegistered, validateProvide } from './service-helpers.js';
|
|
|
10
9
|
* 采用 fork / inject / provide / middleware 等术语,
|
|
11
10
|
* 但 Aalis 在此之上引入若干差异化机制:
|
|
12
11
|
* - **多提供者**:`getService` / `getAllServices` 支持同名多实现并存(偏好 > 优先级 > 注册顺序)
|
|
13
|
-
* - **`ScopedServiceContainer` + `ScopedConfigManager`**:`createScope()` 创建
|
|
14
|
-
* 读取 fallback、写入隔离的子作用域,用于会话/沙盒
|
|
15
12
|
* - **`whenService(name, cb)`**:服务就绪即触发的延迟订阅,回调可返回 cleanup
|
|
16
13
|
* 纳入 dispose 链
|
|
17
14
|
*/
|
|
@@ -20,16 +17,7 @@ export class Context {
|
|
|
20
17
|
logger;
|
|
21
18
|
config;
|
|
22
19
|
/**
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
* 插件可 `ctx.hooks.run(hook, data, defaultAction)` 驱动自己定义的钩子链;
|
|
26
|
-
* 注册 handler 请用 `ctx.middleware(hook, fn)` —— 它绑定当前 ctx.id 并纳入
|
|
27
|
-
* dispose 链,插件卸载时自动清扫。完整 HookRegistry(register / onStall)
|
|
28
|
-
* 不对插件暴露,与 `_events` / `_services` 同一门面纪律。
|
|
29
|
-
*/
|
|
30
|
-
hooks;
|
|
31
|
-
/**
|
|
32
|
-
* 开发模式开关——由 App 注入,子 Context 通过 fork/createScope 继承。
|
|
20
|
+
* 开发模式开关——由 App 注入,子 Context 通过 fork 继承。
|
|
33
21
|
*
|
|
34
22
|
* - `true`(默认):`provide` 时按声明的能力跑探测器,暴露"声明与实现不符"
|
|
35
23
|
* - `false`(生产):跳过探测,节省热路径开销
|
|
@@ -39,8 +27,22 @@ export class Context {
|
|
|
39
27
|
devMode;
|
|
40
28
|
_events;
|
|
41
29
|
_services;
|
|
42
|
-
/** 完整钩子注册表——仅 Context 内部(middleware / dispose / fork)使用。 */
|
|
30
|
+
/** 完整钩子注册表——仅 Context 内部(middleware / runHook / dispose / fork)使用。 */
|
|
43
31
|
_hooks;
|
|
32
|
+
/** 完整贡献点注册表——仅 Context 内部(contribute / collect / dispose / fork)使用。 */
|
|
33
|
+
_contributions;
|
|
34
|
+
/**
|
|
35
|
+
* 本 ctx 已登记的贡献退订函数(键 = point + '\u0000' + 局部 id,与
|
|
36
|
+
* contribute 内 mapKey 的构造保持一致;NUL 不会出现在合法键名中)。
|
|
37
|
+
*
|
|
38
|
+
* 用于同键重注册时先摘旧登记:注册表本身是替换语义,但门面每次 contribute
|
|
39
|
+
* 都会往 _disposables 压一个闭包——不摘旧的,反复刷新贡献(文档明示的合法
|
|
40
|
+
* 用法)会让 dispose 链无界增长且旧 build 闭包无法 GC。
|
|
41
|
+
* 条目数有界于本 ctx 用过的 (point, id) 组合数。
|
|
42
|
+
*/
|
|
43
|
+
_contributionDisposers = new Map();
|
|
44
|
+
/** 活跃沙盒子上下文 id(useModule)——用于同名重复挂载时唯一化 childId。 */
|
|
45
|
+
_moduleIds = new Set();
|
|
44
46
|
_disposables;
|
|
45
47
|
_children = new Set();
|
|
46
48
|
_parent;
|
|
@@ -50,7 +52,7 @@ export class Context {
|
|
|
50
52
|
this._events = options.events;
|
|
51
53
|
this._services = options.services;
|
|
52
54
|
this._hooks = options.hooks;
|
|
53
|
-
this.
|
|
55
|
+
this._contributions = options.contributions;
|
|
54
56
|
this.logger = options.logger;
|
|
55
57
|
this.config = options.config;
|
|
56
58
|
this._parent = options.parent;
|
|
@@ -82,6 +84,7 @@ export class Context {
|
|
|
82
84
|
events: this._events,
|
|
83
85
|
services: this._services,
|
|
84
86
|
hooks: this._hooks,
|
|
87
|
+
contributions: this._contributions,
|
|
85
88
|
logger: this.logger.child(id),
|
|
86
89
|
config: this.config,
|
|
87
90
|
parent: this,
|
|
@@ -90,44 +93,6 @@ export class Context {
|
|
|
90
93
|
this._children.add(child);
|
|
91
94
|
return child;
|
|
92
95
|
}
|
|
93
|
-
/**
|
|
94
|
-
* 创建隔离作用域的子上下文
|
|
95
|
-
*
|
|
96
|
-
* 与 fork() 的区别:fork() 共享同一个 ServiceContainer / ConfigManager;
|
|
97
|
-
* createScope() 同时创建:
|
|
98
|
-
* - **ScopedServiceContainer**(子容器):读 fallback、写不影响父级
|
|
99
|
-
* - **ScopedConfigManager**(cleanup-7 新增):同样 fallback + overlay 语义
|
|
100
|
-
*
|
|
101
|
-
* 适用于沙盒/会话隔离场景:
|
|
102
|
-
* - 沙盒内 `ctx.provide('agent', sandboxAgent)` 不会污染全局
|
|
103
|
-
* - 沙盒内 `ctx.getService('authority')` 仍能 fallback 到全局服务
|
|
104
|
-
* - 沙盒内 `ctx.config.set('logLevel', 'debug')` 仅作用于沙盒
|
|
105
|
-
* - 沙盒内 `ctx.config.setPluginConfig('llm.openai', { ... })` 给当前沙盒一份
|
|
106
|
-
* 临时 LLM 配置,dispose 后随作用域消失(写只进 overlay,save() 为内存
|
|
107
|
-
* 模式 no-op,磁盘不被污染)
|
|
108
|
-
*
|
|
109
|
-
* @example
|
|
110
|
-
* const sandbox = ctx.createScope('sandbox-group-123');
|
|
111
|
-
* sandbox.provide('agent', myCustomAgent); // 仅此作用域可见
|
|
112
|
-
* sandbox.config.setPluginConfig('llm.openai', { temperature: 0.1 }); // 临时配置
|
|
113
|
-
* sandbox.getService('authority'); // fallback 到父级全局服务
|
|
114
|
-
*/
|
|
115
|
-
createScope(id) {
|
|
116
|
-
const scopedServices = this._services.createScope();
|
|
117
|
-
const scopedConfig = new ScopedConfigManager(this.config);
|
|
118
|
-
const child = new Context({
|
|
119
|
-
id,
|
|
120
|
-
events: this._events,
|
|
121
|
-
services: scopedServices,
|
|
122
|
-
hooks: this._hooks,
|
|
123
|
-
logger: this.logger.child(id),
|
|
124
|
-
config: scopedConfig,
|
|
125
|
-
parent: this,
|
|
126
|
-
devMode: this.devMode,
|
|
127
|
-
});
|
|
128
|
-
this._children.add(child);
|
|
129
|
-
return child;
|
|
130
|
-
}
|
|
131
96
|
// ---- 事件 ----
|
|
132
97
|
on(event, handler) {
|
|
133
98
|
const off = this._events.on(event, handler);
|
|
@@ -140,7 +105,7 @@ export class Context {
|
|
|
140
105
|
/**
|
|
141
106
|
* 把一个底层退订原语登记到 disposable 链,并返回**自移除**的退订函数:
|
|
142
107
|
* 调用方手动退订时,闭包不再滞留 _disposables(否则它持有 handler 引用直到
|
|
143
|
-
* ctx.dispose
|
|
108
|
+
* ctx.dispose 才释放——故所有注册 API 的退订都统一走此路径,杜绝该类泄漏)。
|
|
144
109
|
*/
|
|
145
110
|
trackDisposable(off) {
|
|
146
111
|
const dispose = () => {
|
|
@@ -179,7 +144,7 @@ export class Context {
|
|
|
179
144
|
const entry = this._services.register(name, instance, options?.priority ?? 0, entryId, options?.label);
|
|
180
145
|
const dispose = () => {
|
|
181
146
|
// 自移除:调用方手动 dispose 后,闭包不再滞留 _disposables(否则它持有
|
|
182
|
-
// entry 引用,instance 无法 GC
|
|
147
|
+
// entry 引用,instance 无法 GC,多实例热替换场景累积僵尸)。
|
|
183
148
|
// ctx.dispose 经 DisposableChain.dispose 调用本函数时 remove 返回 false,无害。
|
|
184
149
|
this._disposables.remove(dispose);
|
|
185
150
|
const removed = this._services.unregisterEntry(name, entry);
|
|
@@ -364,6 +329,56 @@ export class Context {
|
|
|
364
329
|
middleware(hook, fn) {
|
|
365
330
|
return this.trackDisposable(this._hooks.register(hook, fn, this.id));
|
|
366
331
|
}
|
|
332
|
+
/**
|
|
333
|
+
* 执行钩子链(语义见 {@link HookRegistry.run})。
|
|
334
|
+
*
|
|
335
|
+
* 任何插件都可驱动自己定义的钩子链——对称钩子系统的立身之本,地位等价于
|
|
336
|
+
* `ctx.emit`。注册 handler 请用 `ctx.middleware(hook, fn)`。完整 HookRegistry
|
|
337
|
+
* (register / unregisterByContext / onStall)不对插件暴露,与 `_events` /
|
|
338
|
+
* `_services` 同一门面纪律。
|
|
339
|
+
*
|
|
340
|
+
* @returns `true` = 链路完整走完(执行了 defaultAction,或本就没有 handler);
|
|
341
|
+
* `false` = 被某个 handler swallow(不调 next 中断)
|
|
342
|
+
*/
|
|
343
|
+
runHook(hook, data, defaultAction, opts) {
|
|
344
|
+
return this._hooks.run(hook, data, defaultAction, opts);
|
|
345
|
+
}
|
|
346
|
+
// ---- 贡献点 ----
|
|
347
|
+
/**
|
|
348
|
+
* 向贡献点交付一份 spec,返回 dispose 函数(并挂 dispose 链,卸载自动清扫)。
|
|
349
|
+
*
|
|
350
|
+
* spec.id 是**局部名**,注册时自动冠 `${ctx.id}/` 前缀成全局键——同一 ctx 内
|
|
351
|
+
* 同 id 重复注册为替换(幂等);spec.id 侧无法顶替他人贡献(信任边界的
|
|
352
|
+
* 如实声明见 {@link ContributionSpec})。贡献者不掌握任何控制流:无排序
|
|
353
|
+
* 影响力(顺序是全局键的纯函数)、无短路、不可见其他贡献——排布与执行
|
|
354
|
+
* 策略全归贡献点 owner({@link collect} 的调用方)。
|
|
355
|
+
*
|
|
356
|
+
* 贡献点的键与 spec 类型由各 -api 包 declaration merging 扩展
|
|
357
|
+
* ContributionPointMap 定义。
|
|
358
|
+
*/
|
|
359
|
+
contribute(point, spec) {
|
|
360
|
+
// 窄化取 id:core 内 ContributionPointMap 是空接口,`ContributionPointMap[K]`
|
|
361
|
+
// 索引不出成员,但交叉的 ContributionSpec 保证 id 存在。
|
|
362
|
+
const mapKey = `${point}\u0000${spec.id}`;
|
|
363
|
+
// 同键重注册 = 替换:先撤旧登记(自移除出 dispose 链 + 撤注册表旧条目),
|
|
364
|
+
// 再写新的——先删后写,避免旧闭包滞留(见 _contributionDisposers)。
|
|
365
|
+
this._contributionDisposers.get(mapKey)?.();
|
|
366
|
+
const off = this.trackDisposable(this._contributions.register(point, spec, this.id));
|
|
367
|
+
this._contributionDisposers.set(mapKey, off);
|
|
368
|
+
return off;
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* 枚举某贡献点的全部条目(语义见 {@link ContributionRegistry.collect})。
|
|
372
|
+
*
|
|
373
|
+
* 驱动公开——任何插件都可拥有并收集自己定义的贡献点,地位等价于
|
|
374
|
+
* `ctx.emit` / `ctx.runHook`。返回数组快照,每项是 `{ key, spec }`:
|
|
375
|
+
* `key` 是全局键(含贡献方 ctx.id 前缀)供归属标注与统计,`spec` 是注册
|
|
376
|
+
* 方交付的本体(引用,`spec.id` 仍是其局部名)。如何执行 spec(并行 /
|
|
377
|
+
* 隔离 / 超时)是收集方的策略,内核不执行任何插件代码。
|
|
378
|
+
*/
|
|
379
|
+
collect(point) {
|
|
380
|
+
return this._contributions.collect(point);
|
|
381
|
+
}
|
|
367
382
|
// ---- 生命周期 ----
|
|
368
383
|
get disposed() {
|
|
369
384
|
return this._disposed;
|
|
@@ -373,18 +388,16 @@ export class Context {
|
|
|
373
388
|
*
|
|
374
389
|
* 与 `App.plugin(...)` / `PluginManager.register(...)` 的区别:
|
|
375
390
|
* - 不进入全局 `PluginManager`(不参与依赖追踪、softReload)
|
|
376
|
-
* -
|
|
391
|
+
* - fork 一个子上下文,调用 `module.apply(child, config)`
|
|
377
392
|
* - 返回 dispose:调用即销毁该子上下文,对应子上下文里所有副作用一并清理
|
|
378
393
|
* - 父 ctx dispose 时也会级联销毁
|
|
379
394
|
*
|
|
380
395
|
* 典型场景:
|
|
381
396
|
* - 会话级动态工具/中间件
|
|
382
|
-
* - 沙盒(`createScope`)内挂载临时 mini 插件
|
|
383
397
|
* - 单元测试里组装最小可运行单元
|
|
384
398
|
*
|
|
385
399
|
* @param module 任意符合 `{ name, apply(ctx, config) }` 的对象
|
|
386
400
|
* @param config 传给 apply 的配置(默认 `{}`)
|
|
387
|
-
* @param options.scoped 是否使用 `createScope`(服务/配置隔离),默认 false 用 `fork`
|
|
388
401
|
* @returns dispose 函数;返回的 Promise 在 apply 完成后 resolve
|
|
389
402
|
*
|
|
390
403
|
* @example
|
|
@@ -400,20 +413,32 @@ export class Context {
|
|
|
400
413
|
* // ...
|
|
401
414
|
* off(); // 卸载临时中间件
|
|
402
415
|
*/
|
|
403
|
-
async useModule(module, config = {}
|
|
416
|
+
async useModule(module, config = {}) {
|
|
404
417
|
if (this._disposed) {
|
|
405
418
|
throw new Error(`Context "${this.id}" 已 dispose,无法 useModule`);
|
|
406
419
|
}
|
|
407
|
-
|
|
408
|
-
|
|
420
|
+
// 同一父 ctx 重复挂载同名 module(文档背书的"每会话一实例"用法)必须拿到
|
|
421
|
+
// 互不相同的 ctx.id:id 是 contributions 全局键与 unregisterByContext 的
|
|
422
|
+
// 归属锚,重复 id 会让后挂载者静默顶替先挂载者的贡献、且任一方 dispose
|
|
423
|
+
// 连带清掉对方的。活跃集合随 dispose 收缩,长期反复挂载不会无界增长。
|
|
424
|
+
const baseId = `${this.id}#${module.name}`;
|
|
425
|
+
let childId = baseId;
|
|
426
|
+
for (let n = 2; this._moduleIds.has(childId); n++)
|
|
427
|
+
childId = `${baseId}~${n}`;
|
|
428
|
+
this._moduleIds.add(childId);
|
|
429
|
+
const child = this.fork(childId);
|
|
409
430
|
try {
|
|
410
431
|
await module.apply(child, config);
|
|
411
432
|
}
|
|
412
433
|
catch (err) {
|
|
434
|
+
this._moduleIds.delete(childId);
|
|
413
435
|
child.dispose();
|
|
414
436
|
throw err;
|
|
415
437
|
}
|
|
416
|
-
return () =>
|
|
438
|
+
return () => {
|
|
439
|
+
this._moduleIds.delete(childId);
|
|
440
|
+
child.dispose();
|
|
441
|
+
};
|
|
417
442
|
}
|
|
418
443
|
/**
|
|
419
444
|
* 注册一个在本 Context dispose 时执行的清理回调。
|
|
@@ -478,8 +503,13 @@ export class Context {
|
|
|
478
503
|
this.logger.warn(`emit service:unregistered 失败 (${svc}): ${err}`);
|
|
479
504
|
});
|
|
480
505
|
}
|
|
481
|
-
//
|
|
506
|
+
// 清理该上下文注册的钩子与贡献
|
|
482
507
|
this._hooks.unregisterByContext(this.id);
|
|
508
|
+
this._contributions.unregisterByContext(this.id);
|
|
509
|
+
// 释放本 ctx 持有的登记表:闭包会捎带 spec(及其 build 捕获的数据),
|
|
510
|
+
// dispose 后不清则外部若仍持有本 ctx 引用,这些对象就跟着活着。
|
|
511
|
+
this._contributionDisposers.clear();
|
|
512
|
+
this._moduleIds.clear();
|
|
483
513
|
// 服务自清理协议:任何服务实例若实现 `unregisterByPlugin(contextId)`,
|
|
484
514
|
// dispose 时统一通知它清理本上下文相关的注册项(如 plugin-tools 的
|
|
485
515
|
// ToolService、plugin-commands 的 CommandService)。
|
package/dist/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 贡献 spec 的内核契约:只要求一个 id。
|
|
3
|
+
*
|
|
4
|
+
* id 是**局部名**(如 'context'、'group-hint'),注册时由门面自动冠以
|
|
5
|
+
* `${ctx.id}/` 前缀成为全局键(见 {@link ContributionHandle.key})——
|
|
6
|
+
* **spec.id 侧**的抢注/顶替由此杜绝,无需归属权校验(与 provide 的
|
|
7
|
+
* entryId 前缀约定同源,但由构造保证而非 warn)。
|
|
8
|
+
*
|
|
9
|
+
* 边界如实声明:该保证以 ctx.id 为信任锚。`ctx.fork(id)` 与
|
|
10
|
+
* `ctx.useModule(module)`(childId = `${父id}#${模块名}`)都不保证 ctx.id
|
|
11
|
+
* 唯一,重复 ctx.id 会使两方共用同一命名空间、后注册者替换先注册者。
|
|
12
|
+
* 这是 Context 模型的信任边界(provide / middleware 的 contextId 归属同理
|
|
13
|
+
* 暴露),如需硬化应在 fork 层统一处理,而非各原语自设门禁。
|
|
14
|
+
*/
|
|
15
|
+
export interface ContributionSpec {
|
|
16
|
+
/**
|
|
17
|
+
* 局部幂等键:同一 ctx 内同 id 重复注册 = 替换。
|
|
18
|
+
*
|
|
19
|
+
* 必须**非空且不含 `/`**(`/` 是全局键的分隔符,含它可构造出跨 ctx 的
|
|
20
|
+
* 键碰撞),违者注册期抛 `TypeError`。
|
|
21
|
+
*/
|
|
22
|
+
id: string;
|
|
23
|
+
}
|
|
24
|
+
/** collect 的枚举条目:全局键 + 注册时原样传入的 spec(不拷贝、不改写)。 */
|
|
25
|
+
export interface ContributionHandle<S extends ContributionSpec = ContributionSpec> {
|
|
26
|
+
/** 全局键 `${contextId}/${spec.id}`——归属标识与幂等键。 */
|
|
27
|
+
readonly key: string;
|
|
28
|
+
/** 注册方交付的 spec 本体(引用,非副本)。 */
|
|
29
|
+
readonly spec: S;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* 贡献点注册表 —— 第四内核原语(与 services 成对偶的数据原语)。
|
|
33
|
+
*
|
|
34
|
+
* 四原语按「执行/数据」二分:events(执行·无返回·隔离)、hooks(执行·可变·
|
|
35
|
+
* 短路)、services(数据·解析单胜者)、contributions(数据·确定性枚举全量)。
|
|
36
|
+
*
|
|
37
|
+
* 本注册表**永不执行插件代码**:register/collect 是同步的数据插入与快照枚举。
|
|
38
|
+
* 如何调用 spec(并行/隔离/超时)是收集方(贡献点 owner)的策略,不在内核。
|
|
39
|
+
*
|
|
40
|
+
* 确定性:collect 按全局键(`${contextId}/${id}`)码元序排序——同一注册集合
|
|
41
|
+
* 在任意注册顺序、任意机器上枚举结果逐字节相同;顺序是键的纯函数,
|
|
42
|
+
* 重复注册也无法影响排位。
|
|
43
|
+
*
|
|
44
|
+
* 插件面与 events / services / hooks 同一门面纪律(方法窄面,对象不外露):
|
|
45
|
+
* 注册经 `ctx.contribute(point, spec)`(冠 ctx.id 前缀 + 挂 dispose 链),
|
|
46
|
+
* 枚举经 `ctx.collect(point)`(驱动公开——任何插件都可拥有自己的贡献点)。
|
|
47
|
+
* 完整注册表仅 App(组合根)与 Context 内部持有。
|
|
48
|
+
*
|
|
49
|
+
* 注册表本身只认 {@link ContributionSpec}(不透明数据面);按贡献点键精化
|
|
50
|
+
* spec 类型是 Context 门面的职责(经 types/contributions.ts 的
|
|
51
|
+
* ContributionPointMap declaration merging)。
|
|
52
|
+
*/
|
|
53
|
+
export declare class ContributionRegistry {
|
|
54
|
+
/** point → 全局键 → 注册项 */
|
|
55
|
+
private points;
|
|
56
|
+
/**
|
|
57
|
+
* 注册一份贡献,返回 dispose 函数。
|
|
58
|
+
*
|
|
59
|
+
* 全局键 = `${contextId}/${spec.id}`;同键重复注册为替换(幂等),
|
|
60
|
+
* 旧注册的 dispose 函数在替换后失效(不会误删新注册)。
|
|
61
|
+
*/
|
|
62
|
+
register(point: string, spec: ContributionSpec, contextId: string): () => void;
|
|
63
|
+
/**
|
|
64
|
+
* 枚举某贡献点的全部条目,按全局键码元序(`Array.prototype.sort` 默认
|
|
65
|
+
* 比较,无 locale 依赖)。返回数组快照;spec 按**引用**给出——不拷贝、
|
|
66
|
+
* 不改写字段,故 class 实例 spec 的原型方法、getter 语义均完好保留
|
|
67
|
+
* (注册表"永不执行插件代码"因此在枚举侧也成立)。
|
|
68
|
+
*/
|
|
69
|
+
collect(point: string): ReadonlyArray<ContributionHandle>;
|
|
70
|
+
/**
|
|
71
|
+
* 按 contextId 移除该上下文的全部贡献(插件卸载清扫)。
|
|
72
|
+
*/
|
|
73
|
+
unregisterByContext(contextId: string): void;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=contributions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contributions.d.ts","sourceRoot":"","sources":["../src/contributions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,kDAAkD;AAClD,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB;IAC/E,+CAA+C;IAC/C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,8BAA8B;IAC9B,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;CAClB;AAOD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,oBAAoB;IAC/B,wBAAwB;IACxB,OAAO,CAAC,MAAM,CAAgD;IAE9D;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,IAAI;IA0B9E;;;;;OAKG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC,kBAAkB,CAAC;IAMzD;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;CAQ7C"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 贡献点注册表 —— 第四内核原语(与 services 成对偶的数据原语)。
|
|
3
|
+
*
|
|
4
|
+
* 四原语按「执行/数据」二分:events(执行·无返回·隔离)、hooks(执行·可变·
|
|
5
|
+
* 短路)、services(数据·解析单胜者)、contributions(数据·确定性枚举全量)。
|
|
6
|
+
*
|
|
7
|
+
* 本注册表**永不执行插件代码**:register/collect 是同步的数据插入与快照枚举。
|
|
8
|
+
* 如何调用 spec(并行/隔离/超时)是收集方(贡献点 owner)的策略,不在内核。
|
|
9
|
+
*
|
|
10
|
+
* 确定性:collect 按全局键(`${contextId}/${id}`)码元序排序——同一注册集合
|
|
11
|
+
* 在任意注册顺序、任意机器上枚举结果逐字节相同;顺序是键的纯函数,
|
|
12
|
+
* 重复注册也无法影响排位。
|
|
13
|
+
*
|
|
14
|
+
* 插件面与 events / services / hooks 同一门面纪律(方法窄面,对象不外露):
|
|
15
|
+
* 注册经 `ctx.contribute(point, spec)`(冠 ctx.id 前缀 + 挂 dispose 链),
|
|
16
|
+
* 枚举经 `ctx.collect(point)`(驱动公开——任何插件都可拥有自己的贡献点)。
|
|
17
|
+
* 完整注册表仅 App(组合根)与 Context 内部持有。
|
|
18
|
+
*
|
|
19
|
+
* 注册表本身只认 {@link ContributionSpec}(不透明数据面);按贡献点键精化
|
|
20
|
+
* spec 类型是 Context 门面的职责(经 types/contributions.ts 的
|
|
21
|
+
* ContributionPointMap declaration merging)。
|
|
22
|
+
*/
|
|
23
|
+
export class ContributionRegistry {
|
|
24
|
+
/** point → 全局键 → 注册项 */
|
|
25
|
+
points = new Map();
|
|
26
|
+
/**
|
|
27
|
+
* 注册一份贡献,返回 dispose 函数。
|
|
28
|
+
*
|
|
29
|
+
* 全局键 = `${contextId}/${spec.id}`;同键重复注册为替换(幂等),
|
|
30
|
+
* 旧注册的 dispose 函数在替换后失效(不会误删新注册)。
|
|
31
|
+
*/
|
|
32
|
+
register(point, spec, contextId) {
|
|
33
|
+
// 空 id 会静默同键碰撞;含 '/' 的局部 id 可构造出与他人 `${contextId}/${id}`
|
|
34
|
+
// 相同的全局键(如 ctx 'a' + id 'b/c' 撞 ctx 'a/b' + id 'c'),打破
|
|
35
|
+
// 「spec.id 侧无法顶替他人贡献」的保证——两者都必须在注册期拒绝。
|
|
36
|
+
if (!spec.id || spec.id.includes('/')) {
|
|
37
|
+
throw new TypeError(`贡献点 "${point}" 的 spec.id 必须非空且不含 '/'(得到 "${spec.id}")`);
|
|
38
|
+
}
|
|
39
|
+
let byKey = this.points.get(point);
|
|
40
|
+
if (!byKey) {
|
|
41
|
+
byKey = new Map();
|
|
42
|
+
this.points.set(point, byKey);
|
|
43
|
+
}
|
|
44
|
+
const key = `${contextId}/${spec.id}`;
|
|
45
|
+
const entry = { spec, contextId };
|
|
46
|
+
byKey.set(key, entry);
|
|
47
|
+
return () => {
|
|
48
|
+
// 仅当当前占位仍是本次注册时才删除——同键已被替换时旧 dispose 是 no-op
|
|
49
|
+
const current = this.points.get(point);
|
|
50
|
+
if (current?.get(key) === entry) {
|
|
51
|
+
current.delete(key);
|
|
52
|
+
if (current.size === 0)
|
|
53
|
+
this.points.delete(point);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* 枚举某贡献点的全部条目,按全局键码元序(`Array.prototype.sort` 默认
|
|
59
|
+
* 比较,无 locale 依赖)。返回数组快照;spec 按**引用**给出——不拷贝、
|
|
60
|
+
* 不改写字段,故 class 实例 spec 的原型方法、getter 语义均完好保留
|
|
61
|
+
* (注册表"永不执行插件代码"因此在枚举侧也成立)。
|
|
62
|
+
*/
|
|
63
|
+
collect(point) {
|
|
64
|
+
const byKey = this.points.get(point);
|
|
65
|
+
if (!byKey)
|
|
66
|
+
return [];
|
|
67
|
+
return [...byKey.keys()].sort().map(key => ({ key, spec: byKey.get(key).spec }));
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* 按 contextId 移除该上下文的全部贡献(插件卸载清扫)。
|
|
71
|
+
*/
|
|
72
|
+
unregisterByContext(contextId) {
|
|
73
|
+
for (const [point, byKey] of this.points) {
|
|
74
|
+
for (const [key, entry] of byKey) {
|
|
75
|
+
if (entry.contextId === contextId)
|
|
76
|
+
byKey.delete(key);
|
|
77
|
+
}
|
|
78
|
+
if (byKey.size === 0)
|
|
79
|
+
this.points.delete(point);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=contributions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contributions.js","sourceRoot":"","sources":["../src/contributions.ts"],"names":[],"mappings":"AAqCA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,oBAAoB;IAC/B,wBAAwB;IAChB,MAAM,GAAG,IAAI,GAAG,EAAqC,CAAC;IAE9D;;;;;OAKG;IACH,QAAQ,CAAC,KAAa,EAAE,IAAsB,EAAE,SAAiB;QAC/D,yDAAyD;QACzD,uDAAuD;QACvD,uCAAuC;QACvC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,SAAS,CAAC,QAAQ,KAAK,+BAA+B,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QAC/E,CAAC;QACD,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC;QACD,MAAM,GAAG,GAAG,GAAG,SAAS,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,KAAK,GAAiB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAChD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAEtB,OAAO,GAAG,EAAE;YACV,6CAA6C;YAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACvC,IAAI,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;gBAChC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACpB,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;oBAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,KAAa;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACrG,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,SAAiB;QACnC,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACzC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;gBACjC,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS;oBAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvD,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;gBAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;CACF"}
|
package/dist/events.js
CHANGED
|
@@ -20,7 +20,7 @@ export class EventBus {
|
|
|
20
20
|
reportHandlerError(event, error) {
|
|
21
21
|
try {
|
|
22
22
|
// onHandlerError 签名为 void,但运行时可能返回 promise(如异步 logger 实现)。
|
|
23
|
-
// 同步抛错被 catch;异步 rejection 单独吞掉,避免逃逸成 unhandledRejection
|
|
23
|
+
// 同步抛错被 catch;异步 rejection 单独吞掉,避免逃逸成 unhandledRejection。
|
|
24
24
|
const ret = this.onHandlerError?.(event, error);
|
|
25
25
|
if (ret && typeof ret.then === 'function') {
|
|
26
26
|
ret.catch(() => { });
|
package/dist/events.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,MAAM,OAAO,QAAQ;IACnB,mFAAmF;IAC3E,QAAQ,GAAG,IAAI,GAAG,EAAkC,CAAC;IAE7D;;;;;;;OAOG;IACH,cAAc,CAA2C;IAEjD,kBAAkB,CAAC,KAAa,EAAE,KAAc;QACtD,IAAI,CAAC;YACH,2DAA2D;YAC3D,
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks.d.ts
CHANGED
|
@@ -1,23 +1,4 @@
|
|
|
1
1
|
import type { HookContextMap, MiddlewareFn } from './types/index.js';
|
|
2
|
-
/**
|
|
3
|
-
* 钩子执行面 —— `ctx.hooks` 暴露给插件的窄接口。
|
|
4
|
-
*
|
|
5
|
-
* 与 events / services 相同的门面纪律(驱动公开、挂载走 id 绑定门面):
|
|
6
|
-
* - **驱动公开**:任何插件都可 `ctx.hooks.run(...)` 驱动自己定义的钩子链
|
|
7
|
-
* (对称钩子系统的立身之本,地位等价于 `ctx.emit`);
|
|
8
|
-
* - **挂载走门面**:注册 handler 只经 `ctx.middleware(hook, fn)` —— 它闭包当前
|
|
9
|
-
* ctx.id 作 contextId 并登记 dispose 链,插件卸载时才能被 `unregisterByContext`
|
|
10
|
-
* 清扫。裸 `register` 默认落到 'root',会静默泄漏进全局管道,故不在本接口上。
|
|
11
|
-
*
|
|
12
|
-
* 完整的 {@link HookRegistry}(register / unregisterByContext / onStall)仅
|
|
13
|
-
* App(组合根,接 onStall 到 logger)与 Context 内部持有。
|
|
14
|
-
*/
|
|
15
|
-
export interface HookRunner {
|
|
16
|
-
/** 执行钩子链;语义见 {@link HookRegistry.run}。 */
|
|
17
|
-
run<K extends string & keyof HookContextMap>(hook: K, data: HookContextMap[K], defaultAction?: () => Promise<void>, opts?: {
|
|
18
|
-
warnOnStall?: boolean;
|
|
19
|
-
}): Promise<boolean>;
|
|
20
|
-
}
|
|
21
2
|
/**
|
|
22
3
|
* 钩子注册表 —— 命名生命周期事件的 handler 总线
|
|
23
4
|
*
|
|
@@ -28,8 +9,12 @@ export interface HookRunner {
|
|
|
28
9
|
* 不再使用数字 priority:相位之间的次序由调度方(plugin-gateway 等)
|
|
29
10
|
* 显式表达;相位内部的 handler 应顺序无关,或由相位拥有方约定。
|
|
30
11
|
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
12
|
+
* 插件面与 events / services 同一门面纪律(方法窄面,对象不外露):
|
|
13
|
+
* 注册 handler 只经 `ctx.middleware(hook, fn)`(闭包 ctx.id 作 contextId 并登记
|
|
14
|
+
* dispose 链,插件卸载时被 `unregisterByContext` 清扫;裸 `register` 默认落
|
|
15
|
+
* 'root',会静默泄漏进全局管道);驱动钩子链经 `ctx.runHook(hook, data,
|
|
16
|
+
* defaultAction)`。完整注册表仅 App(组合根,接 onStall 到 logger)与
|
|
17
|
+
* Context 内部持有。
|
|
33
18
|
*
|
|
34
19
|
* Handler 可以:
|
|
35
20
|
* - 修改 data 对象(引用传递)
|
|
@@ -38,7 +23,7 @@ export interface HookRunner {
|
|
|
38
23
|
*
|
|
39
24
|
* 第三方插件可通过 TS declaration merging 扩展 HookContextMap。
|
|
40
25
|
*/
|
|
41
|
-
export declare class HookRegistry
|
|
26
|
+
export declare class HookRegistry {
|
|
42
27
|
private hooks;
|
|
43
28
|
/**
|
|
44
29
|
* 广播型相位的"卡链"上报回调(由 App 接到 logger)。
|
package/dist/hooks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAkB,MAAM,kBAAkB,CAAC;AAOrF
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAkB,MAAM,kBAAkB,CAAC;AAOrF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,YAAY;IAEvB,OAAO,CAAC,KAAK,CAAuC;IAEpD;;;;;OAKG;IACH,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1E;;;OAGG;IACH,QAAQ,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,cAAc,EAC9C,IAAI,EAAE,CAAC,EACP,EAAE,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EACnC,SAAS,GAAE,MAAe,GACzB,MAAM,IAAI;IAsBb;;;;;;;;;;;;;OAaG;IACG,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,cAAc,EAC/C,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EACvB,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EACnC,IAAI,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAC/B,OAAO,CAAC,OAAO,CAAC;IA8BnB;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;CAU7C"}
|
package/dist/hooks.js
CHANGED
|
@@ -8,8 +8,12 @@
|
|
|
8
8
|
* 不再使用数字 priority:相位之间的次序由调度方(plugin-gateway 等)
|
|
9
9
|
* 显式表达;相位内部的 handler 应顺序无关,或由相位拥有方约定。
|
|
10
10
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
11
|
+
* 插件面与 events / services 同一门面纪律(方法窄面,对象不外露):
|
|
12
|
+
* 注册 handler 只经 `ctx.middleware(hook, fn)`(闭包 ctx.id 作 contextId 并登记
|
|
13
|
+
* dispose 链,插件卸载时被 `unregisterByContext` 清扫;裸 `register` 默认落
|
|
14
|
+
* 'root',会静默泄漏进全局管道);驱动钩子链经 `ctx.runHook(hook, data,
|
|
15
|
+
* defaultAction)`。完整注册表仅 App(组合根,接 onStall 到 logger)与
|
|
16
|
+
* Context 内部持有。
|
|
13
17
|
*
|
|
14
18
|
* Handler 可以:
|
|
15
19
|
* - 修改 data 对象(引用传递)
|
package/dist/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
export type { AppOptions } from './app.js';
|
|
2
2
|
export { App, createApp } from './app.js';
|
|
3
3
|
export type { AalisConfig, ConfigManagerOptions } from './config.js';
|
|
4
|
-
export { CORE_CONFIG_SCHEMA, ConfigManager
|
|
4
|
+
export { CORE_CONFIG_SCHEMA, ConfigManager } from './config.js';
|
|
5
5
|
export { Context } from './context.js';
|
|
6
|
+
export { type ContributionHandle, ContributionRegistry, type ContributionSpec } from './contributions.js';
|
|
6
7
|
export { EventBus } from './events.js';
|
|
7
|
-
export { HookRegistry
|
|
8
|
+
export { HookRegistry } from './hooks.js';
|
|
8
9
|
export type { LogEntry, LogLevel } from './logger.js';
|
|
9
10
|
export { DefaultLogger, formatLogLine, type Logger, LogHub, parseLogLine } from './logger.js';
|
|
10
11
|
export type { PluginEntry, PluginModule, PluginState } from './plugin.js';
|
|
11
12
|
export { PluginManager, parseInstanceId } from './plugin.js';
|
|
12
13
|
export type { ConfigProvider, PluginDescriptor, PluginLoader, RestartStrategy } from './providers.js';
|
|
13
14
|
export type { NormalizedDependency, ServiceEntry, ServicePriorityValue } from './service.js';
|
|
14
|
-
export {
|
|
15
|
-
export type { AalisEvents, AppService, ConfigSchema, DependencyDeclaration, DisposableService, HookContextMap, InjectDeclaration, MiddlewareFn, MiddlewareNext, PluginManagerService, PluginStatusEntry, SchemaArray, SchemaField, SchemaFieldType, SchemaFieldTypes, SchemaGroup, ServiceDependency, ServiceOf, ServiceTypeMap, } from './types/index.js';
|
|
15
|
+
export { ServiceContainer, ServicePriority } from './service.js';
|
|
16
|
+
export type { AalisEvents, AppService, ConfigSchema, ContributionPointMap, DependencyDeclaration, DisposableService, HookContextMap, InjectDeclaration, MiddlewareFn, MiddlewareNext, PluginManagerService, PluginStatusEntry, SchemaArray, SchemaField, SchemaFieldType, SchemaFieldTypes, SchemaGroup, ServiceDependency, ServiceOf, ServiceTypeMap, } from './types/index.js';
|
|
16
17
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAeA,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,YAAY,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAeA,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,YAAY,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,OAAO,EAAE,KAAK,kBAAkB,EAAE,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC1G,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE9F,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC7D,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtG,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEjE,YAAY,EACV,WAAW,EACX,UAAU,EACV,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,cAAc,GACf,MAAM,kBAAkB,CAAC"}
|