@aalis/runtime 0.18.0 → 0.20.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.
Files changed (74) hide show
  1. package/README.md +4 -4
  2. package/dist/config-store.d.ts +10 -2
  3. package/dist/config-store.d.ts.map +1 -1
  4. package/dist/config-store.js +76 -25
  5. package/dist/config-store.js.map +1 -1
  6. package/dist/config-sync.d.ts +9 -15
  7. package/dist/config-sync.d.ts.map +1 -1
  8. package/dist/config-sync.js +45 -50
  9. package/dist/config-sync.js.map +1 -1
  10. package/dist/console-sink.d.ts +1 -1
  11. package/dist/console-sink.d.ts.map +1 -1
  12. package/dist/console-sink.js +1 -5
  13. package/dist/console-sink.js.map +1 -1
  14. package/dist/data-dir.d.ts +60 -0
  15. package/dist/data-dir.d.ts.map +1 -0
  16. package/dist/data-dir.js +181 -0
  17. package/dist/data-dir.js.map +1 -0
  18. package/dist/file-logger.d.ts +2 -2
  19. package/dist/file-logger.d.ts.map +1 -1
  20. package/dist/file-logger.js +13 -10
  21. package/dist/file-logger.js.map +1 -1
  22. package/dist/host-logs.d.ts +1 -1
  23. package/dist/host-logs.js +1 -1
  24. package/dist/index.d.ts +2 -4
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +3 -5
  27. package/dist/index.js.map +1 -1
  28. package/dist/instance-lock.js +5 -5
  29. package/dist/instance-lock.js.map +1 -1
  30. package/dist/locales/en.d.ts +4 -0
  31. package/dist/locales/en.d.ts.map +1 -1
  32. package/dist/locales/en.js +4 -0
  33. package/dist/locales/en.js.map +1 -1
  34. package/dist/node-modules-loader.d.ts +4 -7
  35. package/dist/node-modules-loader.d.ts.map +1 -1
  36. package/dist/node-modules-loader.js +18 -25
  37. package/dist/node-modules-loader.js.map +1 -1
  38. package/dist/plugin-discovery.d.ts +10 -3
  39. package/dist/plugin-discovery.d.ts.map +1 -1
  40. package/dist/plugin-discovery.js +64 -30
  41. package/dist/plugin-discovery.js.map +1 -1
  42. package/dist/providers.d.ts +13 -13
  43. package/dist/providers.d.ts.map +1 -1
  44. package/dist/providers.js +22 -35
  45. package/dist/providers.js.map +1 -1
  46. package/dist/secrets.js +1 -1
  47. package/dist/secrets.js.map +1 -1
  48. package/dist/start.d.ts +7 -13
  49. package/dist/start.d.ts.map +1 -1
  50. package/dist/start.js +96 -75
  51. package/dist/start.js.map +1 -1
  52. package/dist/subcommand.d.ts +1 -1
  53. package/dist/subcommand.js +1 -1
  54. package/dist/texts.d.ts +8 -0
  55. package/dist/texts.d.ts.map +1 -1
  56. package/dist/texts.js +4 -0
  57. package/dist/texts.js.map +1 -1
  58. package/dist/yaml-file.d.ts +4 -2
  59. package/dist/yaml-file.d.ts.map +1 -1
  60. package/dist/yaml-file.js +9 -5
  61. package/dist/yaml-file.js.map +1 -1
  62. package/package.json +6 -6
  63. package/dist/bootstrap-buffer.d.ts +0 -34
  64. package/dist/bootstrap-buffer.d.ts.map +0 -1
  65. package/dist/bootstrap-buffer.js +0 -42
  66. package/dist/bootstrap-buffer.js.map +0 -1
  67. package/dist/home.d.ts +0 -64
  68. package/dist/home.d.ts.map +0 -1
  69. package/dist/home.js +0 -206
  70. package/dist/home.js.map +0 -1
  71. package/dist/terminal.d.ts +0 -16
  72. package/dist/terminal.d.ts.map +0 -1
  73. package/dist/terminal.js +0 -43
  74. package/dist/terminal.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/locales/en.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,eAAe,YAAY,EAAU,CAAC;IACpC,UAAU,EAAE,aAAa;IACzB,WAAW,EAAE,cAAc;IAC3B,UAAU,EAAE,cAAc;IAC1B,YAAY,EAAE,oCAAoC;IAClD,WAAW,EACT,4HAA4H;IAC9H,cAAc,EAAE,yBAAyB;IACzC,YAAY,EACV,uJAAuJ;IACzJ,WAAW,EACT,6KAA6K;IAC/K,QAAQ,EAAE,oBAAoB;IAC9B,gBAAgB,EACd,yIAAyI;IAC3I,QAAQ,EACN,kNAAkN;IACpN,eAAe,EAAE,0DAA0D;CAC5E,CAAC,CAAC"}
1
+ {"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/locales/en.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,eAAe,YAAY,EAAU,CAAC;IACpC,UAAU,EAAE,aAAa;IACzB,WAAW,EAAE,cAAc;IAC3B,UAAU,EAAE,cAAc;IAC1B,YAAY,EAAE,oCAAoC;IAClD,WAAW,EACT,4HAA4H;IAC9H,cAAc,EAAE,yBAAyB;IACzC,UAAU,EAAE,mFAAmF;IAC/F,iBAAiB,EAAE,2DAA2D;IAC9E,cAAc,EAAE,wDAAwD;IACxE,cAAc,EAAE,0DAA0D;IAC1E,YAAY,EACV,uJAAuJ;IACzJ,WAAW,EACT,6KAA6K;IAC/K,QAAQ,EAAE,oBAAoB;IAC9B,gBAAgB,EACd,yIAAyI;IAC3I,QAAQ,EACN,kNAAkN;IACpN,eAAe,EAAE,0DAA0D;CAC5E,CAAC,CAAC"}
@@ -1,15 +1,12 @@
1
1
  import type { Logger, PluginDefinition } from '@aalis/core';
2
2
  import type { PluginDescriptor, PluginLoader } from './plugin-discovery.js';
3
3
  /**
4
- * 判定一个已装依赖是否为可加载的 Aalis 插件。纯函数,便于单测。
5
- * 唯一标准:keywords 含 'aalis-plugin'(真插件均带;契约/前端/核心/工具库带各自类型词,自然排除)。
6
- */
7
- export declare function isLoadablePlugin(meta: Record<string, unknown>): boolean;
8
- /**
9
- * 从已导入模块取出定义,并按加载器政策出声:形状不对必须 warn;定义 name 与包名不一致也必须点名。
4
+ * 从已导入模块取出定义,形状不对必须 warn(定义 name 与包名不一致由发现驱动拒载)。
10
5
  * 判定本身在 `@aalis/api-plugin-source` 的 `pluginDefinitionOf`;两加载器共用本包装,告警文案只有这一份。
11
6
  */
12
7
  export declare function loadPluginDefinition(ns: unknown, pkgName: string, logger: Logger): PluginDefinition | null;
8
+ /** 插件包的入口({@link packageEntry}),解不出时 warn 点名、返回 undefined。两加载器共用,入口规则与告警只有这一份 */
9
+ export declare function pluginEntry(logger: Logger, name: string, dir: string, meta: Record<string, unknown>): string | undefined;
13
10
  /**
14
11
  * 宿主那份 @aalis/core:runtime 用它创建 App,从本文件所在目录按同一规则算一次。
15
12
  * 算不到(如被打包内联、import.meta.url 不是文件 URL)为 undefined,检测随之跳过,不误报。
@@ -32,7 +29,7 @@ export declare function warnLikelyPluginMissingKeyword(logger: Logger, name: str
32
29
  * @param opts.hostCoreDir 宿主那份 @aalis/core 的包目录,默认 {@link HOST_CORE_DIR};插件解析到的 core 与它不同即拒绝加载
33
30
  *
34
31
  * - `discover()`:读 projectDir/package.json 的 dependencies + optionalDependencies,
35
- * 按 node_modules 上溯定位每个依赖的包目录并读其 package.json,按标记过滤出可加载插件;入口见 {@link packageEntry}。
32
+ * 按 node_modules 上溯定位每个依赖的包目录并读其 package.json,按 declaresPlugin 过滤出插件;入口见 {@link pluginEntry}。
36
33
  * - `load()`:先经 {@link assertSameCore} 核对 core 是宿主那份,再用 `pathToFileURL(entry).href` 动态 import。
37
34
  * - `reload()`:用入口文件 mtime 作 import URL query 强制 ESM 缓存失效。
38
35
  */
@@ -1 +1 @@
1
- {"version":3,"file":"node-modules-loader.d.ts","sourceRoot":"","sources":["../src/node-modules-loader.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAyB5E;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAGvE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAY1G;AAuDD;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,GAAG,SAMjC,CAAC;AA0BL;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,gBAAgB,EACtB,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAWlC;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAMhH;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,YAAY,CA4CnH"}
1
+ {"version":3,"file":"node-modules-loader.d.ts","sourceRoot":"","sources":["../src/node-modules-loader.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAuB5E;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAS1G;AAuDD,iFAAiF;AACjF,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,MAAM,GAAG,SAAS,CAQpB;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,GAAG,SAMjC,CAAC;AA0BL;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,gBAAgB,EACtB,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAWlC;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAMhH;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,YAAY,CAuCnH"}
@@ -2,9 +2,9 @@ import { existsSync, readFileSync, realpathSync, statSync } from 'node:fs';
2
2
  import { stat } from 'node:fs/promises';
3
3
  import { dirname, join, resolve } from 'node:path';
4
4
  import { fileURLToPath, pathToFileURL } from 'node:url';
5
- import { pluginDefinitionOf } from '@aalis/api-plugin-source';
5
+ import { declaresPlugin, pluginDefinitionOf } from '@aalis/api-plugin-source';
6
6
  import { DefaultLogger } from '@aalis/core';
7
- import { assertAbsolute } from './home.js';
7
+ import { assertAbsolute } from './data-dir.js';
8
8
  // ============================================================
9
9
  // NodeModulesPluginLoader —— 从 node_modules 解析并加载插件
10
10
  // ============================================================
@@ -14,11 +14,9 @@ import { assertAbsolute } from './home.js';
14
14
  // 入口取 import 条件)找到已装的插件并 dynamic import。与 monorepo 的 createFsPluginLoader 是
15
15
  // 「两种部署模型的两个加载器」,非重复:前者扫目录,后者走 node 解析。
16
16
  //
17
- // 插件识别(纯正向关键词门):
18
- // - 唯一标准:package.json 的 keywords 含 'aalis-plugin'。
19
- // 每类包各带自己的类型关键词(插件 aalis-plugin / 契约 aalis-api / 前端 aalis-interface / 工具库 aalis-util /
20
- // 核心 aalis-core / 工具链 aalis-runtime,后几类均不带 aalis-plugin),所以 @aalis/core、各 *-api、webui-client、
21
- // @aalis/runtime、各 util-* 与 express/yaml 等普通依赖都因不带 aalis-plugin 而自然不被加载——无需 marker 特判或名前缀/service 回退。
17
+ // 插件识别(纯正向关键词门):@aalis/api-plugin-source 的 declaresPlugin,keywords 含 'aalis-plugin' 才收。
18
+ // @aalis/core、各 *-api、webui-client、@aalis/runtime、各 util-* 与 express/yaml 等普通依赖都因不带 aalis-plugin
19
+ // 而自然不被加载——无需 marker 特判或名前缀/service 回退。
22
20
  function readJson(path) {
23
21
  try {
24
22
  return JSON.parse(readFileSync(path, 'utf-8'));
@@ -28,15 +26,7 @@ function readJson(path) {
28
26
  }
29
27
  }
30
28
  /**
31
- * 判定一个已装依赖是否为可加载的 Aalis 插件。纯函数,便于单测。
32
- * 唯一标准:keywords 含 'aalis-plugin'(真插件均带;契约/前端/核心/工具库带各自类型词,自然排除)。
33
- */
34
- export function isLoadablePlugin(meta) {
35
- const keywords = Array.isArray(meta.keywords) ? meta.keywords : [];
36
- return keywords.includes('aalis-plugin');
37
- }
38
- /**
39
- * 从已导入模块取出定义,并按加载器政策出声:形状不对必须 warn;定义 name 与包名不一致也必须点名。
29
+ * 从已导入模块取出定义,形状不对必须 warn(定义 name 与包名不一致由发现驱动拒载)。
40
30
  * 判定本身在 `@aalis/api-plugin-source` 的 `pluginDefinitionOf`;两加载器共用本包装,告警文案只有这一份。
41
31
  */
42
32
  export function loadPluginDefinition(ns, pkgName, logger) {
@@ -45,9 +35,6 @@ export function loadPluginDefinition(ns, pkgName, logger) {
45
35
  logger.warn(`插件 "${pkgName}" 的入口没有默认导出插件定义,将被跳过——入口须 \`export default definePlugin({ … })\``);
46
36
  return null;
47
37
  }
48
- if (def.name !== pkgName) {
49
- logger.warn(`插件包 "${pkgName}" 的定义 name 为 "${def.name}"——配置键/热扫描/卸载均以定义的 name 为准,二者应一致`);
50
- }
51
38
  return def;
52
39
  }
53
40
  /**
@@ -102,6 +89,14 @@ function packageEntry(dir, meta) {
102
89
  const guesses = typeof main === 'string' && main ? [main, `${main}.js`, join(main, 'index.js')] : [];
103
90
  return [...guesses, 'index.js'].map(file => join(dir, file)).find(isFile);
104
91
  }
92
+ /** 插件包的入口({@link packageEntry}),解不出时 warn 点名、返回 undefined。两加载器共用,入口规则与告警只有这一份 */
93
+ export function pluginEntry(logger, name, dir, meta) {
94
+ const entry = packageEntry(dir, meta);
95
+ if (!entry) {
96
+ logger.warn(`插件 "${name}" 入口无法解析(exports 的 "." 没有 import 条件可用的目标,或入口文件不存在:main 写错、没有构建、产物未打进 files),跳过`);
97
+ }
98
+ return entry;
99
+ }
105
100
  /**
106
101
  * 宿主那份 @aalis/core:runtime 用它创建 App,从本文件所在目录按同一规则算一次。
107
102
  * 算不到(如被打包内联、import.meta.url 不是文件 URL)为 undefined,检测随之跳过,不误报。
@@ -172,7 +167,7 @@ export function warnLikelyPluginMissingKeyword(logger, name, meta) {
172
167
  * @param opts.hostCoreDir 宿主那份 @aalis/core 的包目录,默认 {@link HOST_CORE_DIR};插件解析到的 core 与它不同即拒绝加载
173
168
  *
174
169
  * - `discover()`:读 projectDir/package.json 的 dependencies + optionalDependencies,
175
- * 按 node_modules 上溯定位每个依赖的包目录并读其 package.json,按标记过滤出可加载插件;入口见 {@link packageEntry}。
170
+ * 按 node_modules 上溯定位每个依赖的包目录并读其 package.json,按 declaresPlugin 过滤出插件;入口见 {@link pluginEntry}。
176
171
  * - `load()`:先经 {@link assertSameCore} 核对 core 是宿主那份,再用 `pathToFileURL(entry).href` 动态 import。
177
172
  * - `reload()`:用入口文件 mtime 作 import URL query 强制 ESM 缓存失效。
178
173
  */
@@ -201,15 +196,13 @@ export function createNodeModulesPluginLoader(projectDir, opts = {}) {
201
196
  const meta = readJson(join(dir, 'package.json'));
202
197
  if (!meta)
203
198
  continue;
204
- if (!isLoadablePlugin(meta)) {
199
+ if (!declaresPlugin(meta)) {
205
200
  warnLikelyPluginMissingKeyword(logger, dep, meta);
206
201
  continue;
207
202
  }
208
- const entry = packageEntry(dir, meta);
209
- if (!entry) {
210
- logger.warn(`插件 "${dep}" 入口无法解析(exports 的 "." 没有 import 条件可用的目标,或入口文件不存在:main 写错、产物未打进 files),跳过`);
203
+ const entry = pluginEntry(logger, dep, dir, meta);
204
+ if (!entry)
211
205
  continue;
212
- }
213
206
  discovered.push({ name: meta.name ?? dep, source: entry, metadata: { dir } });
214
207
  }
215
208
  return discovered;
@@ -1 +1 @@
1
- {"version":3,"file":"node-modules-loader.js","sourceRoot":"","sources":["../src/node-modules-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node-modules-loader.js","sourceRoot":"","sources":["../src/node-modules-loader.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ import type { ConfigStore } from './config-store.js';
6
6
  * (fs loader 用绝对路径,URL loader 用 URL,内存 loader 用 module 别名)。
7
7
  */
8
8
  export interface PluginDescriptor {
9
- /** 插件名,与定义的 `name` 一致;按它跳过已注册者 */
9
+ /** 插件名,等于包名:这个条目导出的定义 `name` 必须与它相同,不一致的拒载;按它去重、认出已登记的 */
10
10
  name: string;
11
11
  /** 给 loader 自己用的不透明定位串 */
12
12
  source: string;
@@ -25,6 +25,13 @@ export interface PluginLoader {
25
25
  load(descriptor: PluginDescriptor): Promise<PluginDefinition | null>;
26
26
  reload?(descriptor: PluginDescriptor): Promise<PluginDefinition | null>;
27
27
  }
28
+ export interface PluginDiscoveryOptions {
29
+ /**
30
+ * 每一批(冷启动一批、每次热扫描一批)定下要登记的定义后、交给 core 之前调用一次(宿主的配置同步政策 withPluginConfigSync
31
+ * 挂在这里),返回其中准备好的;没准备好的由它记下,不登记。被拒载、去重或已登记而跳过的不经过它
32
+ */
33
+ prepare(definitions: PluginDefinition[]): PluginDefinition[];
34
+ }
28
35
  export interface PluginDiscovery extends PluginSourceService {
29
36
  /** 冷启动:发现并导入全部插件,整批注册,返回时已静置 */
30
37
  loadAll(): Promise<void>;
@@ -41,7 +48,7 @@ export interface PluginDiscovery extends PluginSourceService {
41
48
  export declare function moduleDefinitionOf(app: App, moduleName: string): PluginDefinition | undefined;
42
49
  /**
43
50
  * @param doc 配置文档:登记时按实例 id 取配置(解析密钥引用后交给 core)与禁用标记,并从中枚举 `name:suffix` 实例。
44
- * 默认值回填与密钥拆出由加载器一侧的政策(withPluginConfigSync)先写进文档。
51
+ * 默认值回填与密钥拆出由 `options.prepare`(宿主的配置同步政策)先写进文档。
45
52
  */
46
- export declare function createPluginDiscovery(app: App, loader: PluginLoader, doc: Pick<ConfigStore, 'get' | 'isPluginDisabled' | 'resolvePluginConfig'>): PluginDiscovery;
53
+ export declare function createPluginDiscovery(app: App, loader: PluginLoader, doc: Pick<ConfigStore, 'get' | 'isPluginDisabled' | 'resolvePluginConfig'>, options?: PluginDiscoveryOptions): PluginDiscovery;
47
54
  //# sourceMappingURL=plugin-discovery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-discovery.d.ts","sourceRoot":"","sources":["../src/plugin-discovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,gBAAgB,EAA4C,MAAM,aAAa,CAAC;AACxG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAarD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACxC,IAAI,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IACrE,MAAM,CAAC,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;CACzE;AAED,MAAM,WAAW,eAAgB,SAAQ,mBAAmB;IAC1D,gCAAgC;IAChC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB;;;OAGG;IACH,2BAA2B,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAS7F;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,GAAG,kBAAkB,GAAG,qBAAqB,CAAC,GACzE,eAAe,CA2FjB"}
1
+ {"version":3,"file":"plugin-discovery.d.ts","sourceRoot":"","sources":["../src/plugin-discovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,gBAAgB,EAA4C,MAAM,aAAa,CAAC;AACxG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAarD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACxC,IAAI,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IACrE,MAAM,CAAC,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;CACzE;AAED,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,OAAO,CAAC,WAAW,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,EAAE,CAAC;CAC9D;AAED,MAAM,WAAW,eAAgB,SAAQ,mBAAmB;IAC1D,gCAAgC;IAChC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB;;;OAGG;IACH,2BAA2B,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAS7F;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,GAAG,kBAAkB,GAAG,qBAAqB,CAAC,EAC1E,OAAO,CAAC,EAAE,sBAAsB,GAC/B,eAAe,CA8HjB"}
@@ -19,9 +19,9 @@ export function moduleDefinitionOf(app, moduleName) {
19
19
  }
20
20
  /**
21
21
  * @param doc 配置文档:登记时按实例 id 取配置(解析密钥引用后交给 core)与禁用标记,并从中枚举 `name:suffix` 实例。
22
- * 默认值回填与密钥拆出由加载器一侧的政策(withPluginConfigSync)先写进文档。
22
+ * 默认值回填与密钥拆出由 `options.prepare`(宿主的配置同步政策)先写进文档。
23
23
  */
24
- export function createPluginDiscovery(app, loader, doc) {
24
+ export function createPluginDiscovery(app, loader, doc, options) {
25
25
  const log = app.logger;
26
26
  const registration = (definition, instanceId = definition.name) => {
27
27
  const { config, dangling } = doc.resolvePluginConfig(instanceId, definition.configSchema);
@@ -29,34 +29,78 @@ export function createPluginDiscovery(app, loader, doc) {
29
29
  log.error(describeDangling(instanceId, dangling).source);
30
30
  return { definition, instanceId, config, disabled: doc.isPluginDisabled(instanceId) };
31
31
  };
32
- /** 导入一批描述符并备好各自的登记项;单个失败(含 id 撞上危险键、文档拒取)只记该条,不拖累其余 */
32
+ /** 经本驱动交给 core 的定义:插件来源据此回答注册表里以某个名字登记的是不是经它登记的 */
33
+ const ours = new WeakSet();
34
+ /** 以 name 登记的主实例是不是经本驱动登记的;没登记或宿主直接登记的为 false */
35
+ const isOurs = (name) => {
36
+ const registered = app.plugins.getPlugin(name)?.definition;
37
+ return registered !== undefined && ours.has(registered);
38
+ };
39
+ /**
40
+ * 导入一批描述符并备好各自的登记项;单个失败(含 id 撞上危险键、文档拒取)只记该条,不拖累其余。
41
+ * 插件名即包名,是登记的身份:名字已登记的、同一批里已导入过同名一份的,在导入之前跳过;导入后定义名与包名不同的拒载。
42
+ * 只有导入成了的那份占名:前面的没导入成(导入失败、拒载)时照常导入后面同名的。
43
+ * 跳过与拒载都在 prepare 之前:留给 core 去拒收为时已晚,它们的 schema 已同步进同名的配置段。prepare 整批调用一次
44
+ */
33
45
  async function importAll(descriptors, fresh) {
34
- const loaded = [];
46
+ const imported = [];
47
+ const seen = new Map();
35
48
  for (const desc of descriptors) {
49
+ if (app.plugins.getPlugin(desc.name)) {
50
+ // 经本驱动登记过的是已加载的包,不再导入;宿主直接登记的占着这个名字
51
+ if (!isOurs(desc.name))
52
+ log.warn(`插件 "${desc.name}" 已由宿主直接登记,跳过发现到的同名包`);
53
+ continue;
54
+ }
55
+ const first = seen.get(desc.name);
56
+ if (first) {
57
+ log.warn(`插件 "${desc.name}" 发现了两份(${first.source} 与 ${desc.source}),只加载前一份`);
58
+ continue;
59
+ }
36
60
  try {
37
- // 加载器已按入口约定判定(pluginDefinitionOf),不是插件返回 null;定义本身的校验在注册时做
61
+ // 加载器已按入口约定判定(pluginDefinitionOf),不是插件返回 null
38
62
  const definition = fresh && loader.reload ? await loader.reload(desc) : await loader.load(desc);
39
63
  if (!definition)
40
64
  continue;
41
- loaded.push(registration(definition));
65
+ if (definition.name !== desc.name) {
66
+ log.error(`插件包 "${desc.name}" 的定义 name 是 "${definition.name}",必须与包名相同,已拒绝加载`);
67
+ continue;
68
+ }
69
+ // 导入途中并发的另一次热扫描已登记了它
70
+ if (app.plugins.getPlugin(desc.name))
71
+ continue;
72
+ seen.set(desc.name, desc);
73
+ imported.push(definition);
42
74
  }
43
75
  catch (err) {
44
76
  log.error(`加载插件 "${desc.name}" 失败:`, err);
45
77
  }
46
78
  }
79
+ const loaded = [];
80
+ for (const definition of options ? options.prepare(imported) : imported) {
81
+ try {
82
+ loaded.push(registration(definition));
83
+ ours.add(definition);
84
+ }
85
+ catch (err) {
86
+ log.error(`加载插件 "${definition.name}" 失败:`, err);
87
+ }
88
+ }
47
89
  return loaded;
48
90
  }
49
91
  /**
50
- * 配置键里的 `name:suffix` 实例:模块查得到定义才登记,已在注册表的跳过。
92
+ * 配置键里的 `name:suffix` 实例:模块查得到定义才登记,已在注册表的跳过。模块的定义取这一批新登记的(`batch`),
93
+ * 没有就取注册表里该模块在册实例的({@link moduleDefinitionOf}):插件名已登记的包不再导入,
94
+ * 它的后缀实例跟已登记的定义走,与主实例跑同一份代码。
51
95
  * 冷启动、热扫描与热重载共用,任何一处都不得少收
52
96
  */
53
- function configuredInstances(definitionOf) {
97
+ function configuredInstances(batch = new Map()) {
54
98
  const items = [];
55
99
  for (const configKey of Object.keys(doc.get('plugins') ?? {})) {
56
100
  const { moduleName, suffix } = parseInstanceId(configKey);
57
101
  if (!suffix || app.plugins.getPlugin(configKey))
58
102
  continue;
59
- const definition = definitionOf(moduleName);
103
+ const definition = batch.get(moduleName) ?? moduleDefinitionOf(app, moduleName);
60
104
  if (definition)
61
105
  items.push(registration(definition, configKey));
62
106
  else
@@ -66,14 +110,14 @@ export function createPluginDiscovery(app, loader, doc) {
66
110
  }
67
111
  /**
68
112
  * 单实例配置段找不到对应插件(多为直接 `npm uninstall` 后残留):冷启动时逐段告警一次。
69
- * 发现到却导入失败的已有加载错误,不重复报;多实例键由 {@link configuredInstances} 报。
113
+ * 发现到却没登记上的(导入失败、定义校验不过)已有加载错误,不重复报;多实例键由 {@link configuredInstances} 报。
70
114
  */
71
- function warnOrphanedConfig(known, discovered) {
115
+ function warnOrphanedConfig(discovered) {
72
116
  const attempted = new Set(discovered.map(d => d.name));
73
117
  for (const configKey of Object.keys(doc.get('plugins') ?? {})) {
74
118
  if (parseInstanceId(configKey).suffix)
75
119
  continue;
76
- if (known.has(configKey) || attempted.has(configKey) || app.plugins.getPlugin(configKey))
120
+ if (attempted.has(configKey) || app.plugins.getPlugin(configKey))
77
121
  continue;
78
122
  log.warn(`配置段 "${configKey}" 对应的插件未找到,已忽略;若已卸载可删除该段(其中可能含密钥)`);
79
123
  }
@@ -84,27 +128,16 @@ export function createPluginDiscovery(app, loader, doc) {
84
128
  log.info(`发现 ${discovered.length} 个插件`);
85
129
  const loaded = await importAll(discovered, false);
86
130
  const known = new Map(loaded.map(item => [item.definition.name, item.definition]));
87
- warnOrphanedConfig(known, discovered);
88
- await app.pluginAll([...loaded, ...configuredInstances(name => known.get(name))]);
131
+ warnOrphanedConfig(discovered);
132
+ await app.pluginAll([...loaded, ...configuredInstances(known)]);
89
133
  // app:ready / app:started 的发出时机依赖「返回即全部收敛」;引导路径不在任何 apply 内,无自等死锁面。
90
134
  await app.plugins.idle();
91
135
  },
92
136
  async rescan() {
93
- const known = new Map();
94
- const fresh = [];
95
- for (const desc of await loader.discover()) {
96
- const registered = app.plugins.getPlugin(desc.name);
97
- if (registered)
98
- known.set(registered.definition.name, registered.definition);
99
- else
100
- fresh.push(desc);
101
- }
102
- const loaded = await importAll(fresh, true);
103
- for (const item of loaded)
104
- known.set(item.definition.name, item.definition);
105
- const results = await app.pluginAll([...loaded, ...configuredInstances(name => known.get(name))]);
106
- // 模块自报的 name 与描述符不同且已注册时 register 会拒绝——那不算热加载,不报进名单。
107
- // 报的是登记进注册表的主实例名(定义名),不是加载器给的描述符名(通常是包名,二者可以不同)。
137
+ const loaded = await importAll(await loader.discover(), true);
138
+ const known = new Map(loaded.map(item => [item.definition.name, item.definition]));
139
+ const results = await app.pluginAll([...loaded, ...configuredInstances(known)]);
140
+ // core 拒收的(定义校验不过、已在停机等)不算热加载,不报进名单
108
141
  const names = loaded.filter((_, i) => results[i]).map(item => item.definition.name);
109
142
  for (const name of names)
110
143
  log.info(`热加载插件: ${name}`);
@@ -112,8 +145,9 @@ export function createPluginDiscovery(app, loader, doc) {
112
145
  },
113
146
  async registerConfiguredInstances() {
114
147
  // 主实例已卸载时用同模块任一在册实例的定义,与冷启动时这一段照常登记一致
115
- await app.pluginAll(configuredInstances(name => moduleDefinitionOf(app, name)));
148
+ await app.pluginAll(configuredInstances());
116
149
  },
150
+ loaded: isOurs,
117
151
  };
118
152
  }
119
153
  //# sourceMappingURL=plugin-discovery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-discovery.js","sourceRoot":"","sources":["../src/plugin-discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin-discovery.js","sourceRoot":"","sources":["../src/plugin-discovery.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { AalisConfig } from '@aalis/api-host-config';
2
2
  import type { RestartStrategy } from '@aalis/core';
3
- import type { ConfigProvider, SecretProvider } from './config-store.js';
3
+ import { type ConfigProvider, type SecretProvider } from './config-store.js';
4
4
  import type { PluginLoader } from './plugin-discovery.js';
5
5
  interface FsYamlConfigProviderResult {
6
6
  /** 当前快照(交给 `createConfigStore(config, provider)` 作初始文档) */
@@ -9,11 +9,11 @@ interface FsYamlConfigProviderResult {
9
9
  provider: ConfigProvider;
10
10
  }
11
11
  /**
12
- * 创建一个基于 YAML 文件的 ConfigProvider。`absPath` 是配置文件的绝对路径(startAalis 传家目录里的 aalis.config.yaml)。
12
+ * 创建一个基于 YAML 文件的 ConfigProvider。`absPath` 是配置文件的绝对路径(startAalis 传数据目录里的 aalis.config.yaml)。
13
13
  *
14
14
  * - 同步读取 + 解析(值原样加载,不做任何替换);文件不存在时告警并以内存默认配置启动
15
15
  * - `save()` 原子写回;写前比对盘上内容,有尚未生效的外部修改时拒写(抛 `ConfigSaveRefusedError`,只带路径)
16
- * - `watch()` 监听配置文件所在目录(按文件名过滤)+ 300ms 去抖,按内容比对去重,避免自激;武装后立即对账一次
16
+ * - `watch()` 监听配置文件所在目录(按文件名过滤)+ 300ms 去抖,按内容比对去重,避免自激;武装后立即核对一次
17
17
  *
18
18
  * 读写与监听的细节见 {@link openYamlFile},与密钥文件共用。
19
19
  */
@@ -24,7 +24,7 @@ interface FsSecretsProviderResult {
24
24
  provider: SecretProvider;
25
25
  }
26
26
  /**
27
- * 创建基于家目录 `secrets.yaml` 的密钥存储:顶层是「键 → 值」的映射。读写、拒写与监听同配置文件,
27
+ * 创建基于数据目录 `secrets.yaml` 的密钥存储:顶层是「键 → 值」的映射。读写、拒写与监听同配置文件,
28
28
  * 另有三处不同:文件不存在时按空映射处理、不告警(第一次保存时建出);运行中改成空文件或只剩注释时按空映射处理;
29
29
  * 原子写的临时文件一律以 0600 创建,不沿用原文件的权限位。
30
30
  */
@@ -32,7 +32,7 @@ export declare function createFsSecretsProvider(absPath: string): FsSecretsProvi
32
32
  /**
33
33
  * 创建一个基于 packages 目录扫描的 PluginLoader。`rootDir` 是 packages 目录的绝对路径(源码形态的入口传 `<仓库>/packages`)。
34
34
  *
35
- * - `discover()`:读 dir 下每个子目录的 package.json,按 aalis-plugin 关键词收录可加载插件
35
+ * - `discover()`:读 dir 下每个子目录的 package.json,按 aalis-plugin 关键词收录插件,入口与 node_modules 加载器同一份解析
36
36
  * - `load()`:先经 assertSameCore 核对 core 是宿主那份,再用 `pathToFileURL(entry).href` 动态 import
37
37
  * - `reload()`:用入口文件 mtime 作为 import URL 的 query 强制 ESM 缓存失效
38
38
  */
@@ -40,7 +40,7 @@ export declare function createFsPluginLoader(rootDir: string): PluginLoader;
40
40
  /** 子进程 `app.start()` 成功后经 IPC 回传的握手消息。 */
41
41
  export declare const READY_MESSAGE = "aalis:ready";
42
42
  /**
43
- * 重启回滚凭据——「更新后新实例起不来」时把工程恢复到更新前的手段。
43
+ * 重启回滚凭据——「更新后新实例无法启动」时把工程恢复到更新前的手段。
44
44
  *
45
45
  * 由发起方(市场的 core/runtime 更新)在改写 `package.json` **之前**构造,经
46
46
  * `app.restart({ rollback })` 交给策略,**全程只在父进程内存里**:触发条件(新进程
@@ -63,7 +63,7 @@ export interface RestartRollback {
63
63
  }>;
64
64
  /**
65
65
  * 还原文件后需要跑的命令——`package.json` 回退了,`node_modules` 还停在新版,
66
- * 必须再跑一次安装才能真正回到旧状态。省略则只还原文件。
66
+ * 必须再执行一次安装才能真正回到旧状态。省略则只还原文件。
67
67
  */
68
68
  postRestore?: {
69
69
  cmd: string;
@@ -76,7 +76,7 @@ export declare function isRestartRollback(v: unknown): v is RestartRollback;
76
76
  export interface RespawnOptions {
77
77
  /** 安装集目录:开发模式(.ts 入口)在这里找本地 tsx */
78
78
  appDir: string;
79
- /** 新进程的 cwd:启动时的 cwd,命令行里相对的 --home 才能解析到同一处 */
79
+ /** 新进程的 cwd:启动时的 cwd,命令行里相对的 --data 才能解析到同一处 */
80
80
  cwd: string;
81
81
  /** 额外交给新进程的环境变量(实例锁的交接令牌) */
82
82
  env?: Record<string, string>;
@@ -93,17 +93,17 @@ export declare function buildRespawnCommand(appDir: string, argv?: readonly stri
93
93
  exec: string;
94
94
  args: string[];
95
95
  };
96
- /** 服务形态下重启以这个退出码结束:服务管理器(launchd 的 KeepAlive={SuccessfulExit=false}、systemd 的 Restart=on-failure)据此重新拉起 */
96
+ /** 服务形态下重启以这个退出码结束:服务管理器(launchd 的 KeepAlive={SuccessfulExit=false}、systemd 的 Restart=on-failure)据此重新启动进程 */
97
97
  export declare const SERVICE_RESTART_EXIT_CODE = 75;
98
98
  /**
99
- * 服务形态的重启策略:停掉 App 后以 {@link SERVICE_RESTART_EXIT_CODE} 退出,由服务管理器拉起新进程,
99
+ * 服务形态的重启策略:停掉 App 后以 {@link SERVICE_RESTART_EXIT_CODE} 退出,由服务管理器启动新进程,
100
100
  * 新进程取锁时本进程的锁已随退出释放。不自己 spawn:detached 的新进程会脱离服务管理器的监管
101
101
  * (launchd 不再看着它,systemd 随 cgroup 把它一起杀掉)。
102
- * 服务形态下没有「新版起不来就回滚」:带回滚凭据的重启(市场更新)照常退出,并记一条说明。
102
+ * 服务形态下没有「新版启动失败就回滚」:带回滚凭据的重启(市场更新)照常退出,并记一条说明。
103
103
  */
104
104
  export declare function createServiceRestartStrategy(): RestartStrategy;
105
105
  /**
106
- * Node 进程重启策略:spawn 一个 detached 子进程接管,确认其起得来后再退出当前进程。
106
+ * Node 进程重启策略:spawn 一个 detached 子进程接管,确认其启动成功后再退出当前进程。
107
107
  *
108
108
  * 时序:
109
109
  * 1. 等 500ms 让正在飞行的 HTTP/WS 响应有机会先返回客户端
@@ -114,7 +114,7 @@ export declare function createServiceRestartStrategy(): RestartStrategy;
114
114
  * - ready 或超时 → 放手、`exit(0)`
115
115
  * - **ready 前夭折** → 有回滚凭据则还原工程并重生旧版;否则记 fatal 后 `exit(1)`
116
116
  *
117
- * 第 4 步是「更新 core 从不可逆赌博变成可接受操作」的关键:没有它,新 core 起不来时
117
+ * 第 4 步是「更新 core 从不可逆赌博变成可接受操作」的关键:没有它,新 core 启动失败时
118
118
  * 父进程已经退了,用户只剩手改 package.json 一条路。
119
119
  *
120
120
  * **单飞**:重启期间的第二次调用直接忽略。窗口是 500ms + stop 耗时 + 等 ready 的全程
@@ -1 +1 @@
1
- {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAInD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAQxE,OAAO,KAAK,EAAoB,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAqD5E,UAAU,0BAA0B;IAClC,2DAA2D;IAC3D,MAAM,EAAE,WAAW,CAAC;IACpB,4DAA4D;IAC5D,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,0BAA0B,CAgBtF;AAED,UAAU,uBAAuB;IAC/B,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,uBAAuB,CAWhF;AAMD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CA4ClE;AAMD,0CAA0C;AAC1C,eAAO,MAAM,aAAa,gBAAgB,CAAC;AAE3C;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC3E;;;OAGG;IACH,WAAW,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5D;AAED,qDAAqD;AACrD,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,eAAe,CAGlE;AAED,MAAM,WAAW,cAAc;IAC7B,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,6BAA6B;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,kDAAkD;AAClD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,SAAS,MAAM,EAAiB,EACtC,QAAQ,GAAE,SAAS,MAAM,EAAqB,GAC7C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAYlC;AAED,2GAA2G;AAC3G,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C;;;;;GAKG;AACH,wBAAgB,4BAA4B,IAAI,eAAe,CAsB9D;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,cAAc,GAAG,eAAe,CA0HlF"}
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAInD,OAAO,EAAuB,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAQlG,OAAO,KAAK,EAAoB,YAAY,EAAE,MAAM,uBAAuB,CAAC;AA2C5E,UAAU,0BAA0B;IAClC,2DAA2D;IAC3D,MAAM,EAAE,WAAW,CAAC;IACpB,4DAA4D;IAC5D,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,0BAA0B,CAgBtF;AAED,UAAU,uBAAuB;IAC/B,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,uBAAuB,CAWhF;AAMD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAwClE;AAMD,0CAA0C;AAC1C,eAAO,MAAM,aAAa,gBAAgB,CAAC;AAE3C;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC3E;;;OAGG;IACH,WAAW,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5D;AAED,qDAAqD;AACrD,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,eAAe,CAGlE;AAED,MAAM,WAAW,cAAc;IAC7B,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,6BAA6B;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,kDAAkD;AAClD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,SAAS,MAAM,EAAiB,EACtC,QAAQ,GAAE,SAAS,MAAM,EAAqB,GAC7C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAYlC;AAED,6GAA6G;AAC7G,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C;;;;;GAKG;AACH,wBAAgB,4BAA4B,IAAI,eAAe,CAsB9D;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,cAAc,GAAG,eAAe,CAuHlF"}