@aalis/runtime 0.15.1 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -2
- package/dist/config-store.d.ts +49 -12
- package/dist/config-store.d.ts.map +1 -1
- package/dist/config-store.js +415 -56
- package/dist/config-store.js.map +1 -1
- package/dist/config-sync.d.ts +19 -8
- package/dist/config-sync.d.ts.map +1 -1
- package/dist/config-sync.js +76 -33
- package/dist/config-sync.js.map +1 -1
- package/dist/console-sink.d.ts +1 -1
- package/dist/file-logger.d.ts +4 -4
- package/dist/file-logger.d.ts.map +1 -1
- package/dist/file-logger.js +6 -5
- package/dist/file-logger.js.map +1 -1
- package/dist/home.d.ts +64 -0
- package/dist/home.d.ts.map +1 -0
- package/dist/home.js +229 -0
- package/dist/home.js.map +1 -0
- package/dist/host-logs.d.ts +9 -0
- package/dist/host-logs.d.ts.map +1 -0
- package/dist/host-logs.js +104 -0
- package/dist/host-logs.js.map +1 -0
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -4
- package/dist/index.js.map +1 -1
- package/dist/instance-lock.d.ts +56 -0
- package/dist/instance-lock.d.ts.map +1 -0
- package/dist/instance-lock.js +281 -0
- package/dist/instance-lock.js.map +1 -0
- package/dist/node-modules-loader.d.ts +2 -2
- package/dist/node-modules-loader.d.ts.map +1 -1
- package/dist/node-modules-loader.js +8 -4
- package/dist/node-modules-loader.js.map +1 -1
- package/dist/plugin-discovery.d.ts +9 -4
- package/dist/plugin-discovery.d.ts.map +1 -1
- package/dist/plugin-discovery.js +28 -16
- package/dist/plugin-discovery.js.map +1 -1
- package/dist/providers.d.ts +38 -13
- package/dist/providers.d.ts.map +1 -1
- package/dist/providers.js +91 -218
- package/dist/providers.js.map +1 -1
- package/dist/secrets.d.ts +44 -0
- package/dist/secrets.d.ts.map +1 -0
- package/dist/secrets.js +104 -0
- package/dist/secrets.js.map +1 -0
- package/dist/start.d.ts +19 -12
- package/dist/start.d.ts.map +1 -1
- package/dist/start.js +166 -43
- package/dist/start.js.map +1 -1
- package/dist/yaml-file.d.ts +35 -0
- package/dist/yaml-file.d.ts.map +1 -0
- package/dist/yaml-file.js +213 -0
- package/dist/yaml-file.js.map +1 -0
- package/package.json +13 -7
package/dist/providers.js
CHANGED
|
@@ -1,19 +1,25 @@
|
|
|
1
1
|
import { spawn } from 'node:child_process';
|
|
2
|
-
import {
|
|
3
|
-
import { chmodSync, existsSync, watch as fsWatch, readFileSync, renameSync, rmSync, statSync, writeFileSync, } from 'node:fs';
|
|
2
|
+
import { existsSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
|
|
4
3
|
import { readdir } from 'node:fs/promises';
|
|
5
|
-
import {
|
|
6
|
-
import { ConfigSaveRefusedError } from '@aalis/api-host-config';
|
|
4
|
+
import { resolve } from 'node:path';
|
|
7
5
|
import { DefaultLogger } from '@aalis/core';
|
|
8
6
|
import { CORE_CONFIG_SCHEMA, defaultsFrom } from '@aalis/schema-config';
|
|
9
|
-
import {
|
|
7
|
+
import { stringify as stringifyYaml } from 'yaml';
|
|
8
|
+
import { assertAbsolute } from './home.js';
|
|
10
9
|
import { HOST_CORE_DIR, importPluginDefinition, isLoadablePlugin, warnLikelyPluginMissingKeyword, } from './node-modules-loader.js';
|
|
11
10
|
import { disarmTerminalStateRestorer } from './terminal.js';
|
|
11
|
+
import { openYamlFile } from './yaml-file.js';
|
|
12
12
|
// ============================================================
|
|
13
13
|
// FsYamlConfigProvider —— 从 YAML 文件加载+持久化配置
|
|
14
14
|
// ============================================================
|
|
15
|
-
const
|
|
16
|
-
|
|
15
|
+
const CORE_TOP_LEVEL_KEYS = new Set([
|
|
16
|
+
'name',
|
|
17
|
+
'logLevel',
|
|
18
|
+
'plugins',
|
|
19
|
+
'disabledPlugins',
|
|
20
|
+
'servicePreferences',
|
|
21
|
+
'pluginServicePreferences',
|
|
22
|
+
]);
|
|
17
23
|
/**
|
|
18
24
|
* 把 AalisConfig 序列化为 YAML 文本,按固定顺序输出 core 字段,
|
|
19
25
|
* 透传其余顶层字段(业务字段,宿主不解释)。
|
|
@@ -29,6 +35,9 @@ function buildSaveYaml(config) {
|
|
|
29
35
|
if (Object.keys(prefs).length > 0) {
|
|
30
36
|
obj.servicePreferences = prefs;
|
|
31
37
|
}
|
|
38
|
+
const pluginPrefs = config.pluginServicePreferences ?? {};
|
|
39
|
+
if (Object.keys(pluginPrefs).length > 0)
|
|
40
|
+
obj.pluginServicePreferences = pluginPrefs;
|
|
32
41
|
for (const [key, value] of Object.entries(config)) {
|
|
33
42
|
if (CORE_TOP_LEVEL_KEYS.has(key))
|
|
34
43
|
continue;
|
|
@@ -49,227 +58,60 @@ function buildSaveYaml(config) {
|
|
|
49
58
|
return stringifyYaml(obj, { lineWidth: 0 });
|
|
50
59
|
}
|
|
51
60
|
/**
|
|
52
|
-
* 创建一个基于 YAML 文件的 ConfigProvider
|
|
61
|
+
* 创建一个基于 YAML 文件的 ConfigProvider。`absPath` 是配置文件的绝对路径(startAalis 传家目录里的 aalis.config.yaml)。
|
|
53
62
|
*
|
|
54
|
-
* - 同步读取 +
|
|
55
|
-
* - `save()`
|
|
56
|
-
* - `watch()`
|
|
57
|
-
* 并通过与 `rawYaml` 的内容比对去重,避免自激;拒写之后的下一次变更不去重;武装后立即对账一次
|
|
63
|
+
* - 同步读取 + 解析(值原样加载,不做任何替换);文件不存在时告警并以内存默认配置启动
|
|
64
|
+
* - `save()` 原子写回;写前比对盘上内容,有尚未生效的外部修改时拒写(抛 `ConfigSaveRefusedError`,只带路径)
|
|
65
|
+
* - `watch()` 监听配置文件所在目录(按文件名过滤)+ 300ms 去抖,按内容比对去重,避免自激;武装后立即对账一次
|
|
58
66
|
*
|
|
59
|
-
*
|
|
67
|
+
* 读写与监听的细节见 {@link openYamlFile},与密钥文件共用。
|
|
60
68
|
*/
|
|
61
|
-
export function createFsYamlConfigProvider(
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
let rawYaml = null;
|
|
65
|
-
// 拒写之后调用方手里的配置文档(常连同运行态)已领先于文件:下一次文件变更不论内容是否等于 rawYaml
|
|
66
|
-
// 都要投递,让宿主按文件重新对账。否则把文件原样改回的「修好」会被当成空变更跳过,文档与运行态从此
|
|
67
|
-
// 偏离文件,下一次成功保存还会把被拒的改动写进去。
|
|
68
|
-
let reconcilePending = false;
|
|
69
|
-
let watcher = null;
|
|
70
|
-
let debounceTimer = null;
|
|
71
|
-
// 走 LogHub 而非 console:file logger 只订阅 LogHub,脱终端部署下 stderr
|
|
72
|
-
// 进不了 data/latest.log,console 版的告警等于没加。
|
|
69
|
+
export function createFsYamlConfigProvider(absPath) {
|
|
70
|
+
assertAbsolute('配置文件路径', absPath);
|
|
71
|
+
// 走 LogHub 而非 console:file logger 只订阅 LogHub,脱终端部署下 stderr 进不了 logs/latest.log
|
|
73
72
|
const logger = new DefaultLogger('aalis:config');
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
if (v === null)
|
|
84
|
-
return 'empty';
|
|
85
|
-
if (Array.isArray(v))
|
|
86
|
-
return 'array';
|
|
87
|
-
if (typeof v !== 'object')
|
|
88
|
-
return typeof v;
|
|
89
|
-
return null;
|
|
90
|
-
};
|
|
91
|
-
function loadFromDisk() {
|
|
92
|
-
if (existsSync(absPath)) {
|
|
93
|
-
rawYaml = readFileSync(absPath, 'utf-8');
|
|
94
|
-
let parsed;
|
|
95
|
-
try {
|
|
96
|
-
parsed = parseYaml(rawYaml) ?? {};
|
|
97
|
-
}
|
|
98
|
-
catch (err) {
|
|
99
|
-
// 启动语法错误照样响亮拒启,但剥离源码摘录再上抛——崩溃日志同为暴露面。
|
|
100
|
-
throw new Error(`配置文件解析失败:${parseErrorFirstLine(err)}(${absPath})`);
|
|
101
|
-
}
|
|
102
|
-
// 启动坏就该响亮:语法错误本就上抛,「解析成功但不是配置对象」同样上抛,
|
|
103
|
-
// 不能放进 core 摊成 "0": f 再写回磁盘。空文件视同缺省(?? {} 已兜)。
|
|
104
|
-
const kind = describeNonMapping(parsed);
|
|
105
|
-
if (kind) {
|
|
106
|
-
throw new Error(`配置文件不是一个配置对象(得到 ${kind}):${absPath}`);
|
|
107
|
-
}
|
|
108
|
-
return parsed;
|
|
109
|
-
}
|
|
110
|
-
logger.warn(`配置文件不存在(${absPath}),使用内存默认配置启动`);
|
|
111
|
-
rawYaml = null;
|
|
112
|
-
// 名称与日志等级取 CORE_CONFIG_SCHEMA 的默认值,与配置文档补缺省同一来源
|
|
113
|
-
const { name, logLevel } = defaultsFrom(CORE_CONFIG_SCHEMA);
|
|
114
|
-
return { name: name, logLevel: logLevel, plugins: {} };
|
|
115
|
-
}
|
|
116
|
-
const initialConfig = loadFromDisk();
|
|
117
|
-
const provider = {
|
|
118
|
-
save(config) {
|
|
119
|
-
// 写前比对磁盘实况:盘上内容必须仍是本进程最后读入或写出的那份。不是,就有尚未生效的
|
|
120
|
-
// 外部修改(去抖窗口内、监听未武装、解析失败被搁置、另一个进程写过)——整份覆写会把它
|
|
121
|
-
// 静默吃掉,所以拒写,让调用方收到拒绝。文件不存在时没有可保护的内容,照写。
|
|
122
|
-
let onDisk = null;
|
|
123
|
-
try {
|
|
124
|
-
onDisk = readFileSync(absPath, 'utf-8');
|
|
125
|
-
}
|
|
126
|
-
catch (err) {
|
|
127
|
-
if (err.code !== 'ENOENT')
|
|
128
|
-
throw err;
|
|
129
|
-
}
|
|
130
|
-
if (onDisk !== null && onDisk !== rawYaml) {
|
|
131
|
-
reconcilePending = true;
|
|
132
|
-
throw new ConfigSaveRefusedError(`配置文件有尚未生效的外部修改,为免覆盖已拒绝本次保存(${absPath})`);
|
|
133
|
-
}
|
|
134
|
-
const yaml = buildSaveYaml(config);
|
|
135
|
-
// 原子写:先写临时文件再 rename(同目录同分区,rename 原子覆盖)。
|
|
136
|
-
// 直接 writeFileSync 是 O_CREAT|O_TRUNC——写中断(磁盘写满 / 进程被杀)时截断已经发生、
|
|
137
|
-
// 写入却没完成,盘上留下 0 字节或半截 YAML。而空文件会被 loadFromDisk 当成「空配置」放行,
|
|
138
|
-
// 随后 config-sync 按 schema 回填并再次存盘,没有 default 的 apiKey 就此永久消失,
|
|
139
|
-
// 连「文件坏了」的现场都不留。同仓 plugin-storage-local 早已为同样的理由做原子写。
|
|
140
|
-
// watch() 守的是目录而非文件(见下),所以 rename 换 inode 不会打断热重载。
|
|
141
|
-
const tmp = `${absPath}.tmp.${process.pid}.${randomBytes(4).toString('hex')}`;
|
|
142
|
-
// 临时文件建出来就是收紧的权限:沿用原文件的权限位,没有原文件(或取不到)时用 0o600。
|
|
143
|
-
// 配置文件常含密钥:按默认 umask(通常 0644)建出再 chmod,其间或进程在 rename 前被杀时,
|
|
144
|
-
// 目录里就有一份权限更宽的密钥副本;rename 让目标继承 tmp 的权限,用户 chmod 600 过的也不能退回 0644。
|
|
145
|
-
let mode = 0o600;
|
|
146
|
-
try {
|
|
147
|
-
mode = statSync(absPath).mode & 0o777;
|
|
148
|
-
}
|
|
149
|
-
catch {
|
|
150
|
-
/* 原文件不存在或取不到权限:按 0o600 建 */
|
|
151
|
-
}
|
|
152
|
-
try {
|
|
153
|
-
writeFileSync(tmp, yaml, { encoding: 'utf-8', mode });
|
|
154
|
-
// 建文件时的 mode 还会被 umask 收窄;对齐回目标权限位,至多放宽到原文件本就有的程度
|
|
155
|
-
try {
|
|
156
|
-
chmodSync(tmp, mode);
|
|
157
|
-
}
|
|
158
|
-
catch {
|
|
159
|
-
/* 对不齐就保持建出时更窄的权限,不拖累写入本身 */
|
|
160
|
-
}
|
|
161
|
-
renameSync(tmp, absPath);
|
|
162
|
-
}
|
|
163
|
-
catch (err) {
|
|
164
|
-
// 写入或改名失败:临时文件是整份配置(含密钥),不能留在配置目录里
|
|
165
|
-
try {
|
|
166
|
-
rmSync(tmp, { force: true });
|
|
167
|
-
}
|
|
168
|
-
catch {
|
|
169
|
-
/* 删不掉也要把原始错误传出去 */
|
|
170
|
-
}
|
|
171
|
-
throw err;
|
|
172
|
-
}
|
|
173
|
-
rawYaml = yaml;
|
|
174
|
-
reconcilePending = false;
|
|
73
|
+
const file = openYamlFile(absPath, {
|
|
74
|
+
label: '配置文件',
|
|
75
|
+
logger,
|
|
76
|
+
serialize: buildSaveYaml,
|
|
77
|
+
missing: () => {
|
|
78
|
+
logger.warn(`配置文件不存在(${absPath}),使用内存默认配置启动`);
|
|
79
|
+
// 名称与日志等级取 CORE_CONFIG_SCHEMA 的默认值,与配置文档补缺省同一来源
|
|
80
|
+
const { name, logLevel } = defaultsFrom(CORE_CONFIG_SCHEMA);
|
|
81
|
+
return { name: name, logLevel: logLevel, plugins: {} };
|
|
175
82
|
},
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
}
|
|
196
|
-
catch {
|
|
197
|
-
return;
|
|
198
|
-
}
|
|
199
|
-
// rawYaml 在装载 / save / 本回调三处维护,比对它一并挡掉自写回、目录里
|
|
200
|
-
// 无关文件的杂音、touch,以及改完又改回来的空变更。拒写之后的这一次除外(见 reconcilePending)。
|
|
201
|
-
if (current === rawYaml && !reconcilePending)
|
|
202
|
-
return;
|
|
203
|
-
let parsed;
|
|
204
|
-
try {
|
|
205
|
-
parsed = parseYaml(current);
|
|
206
|
-
}
|
|
207
|
-
catch (err) {
|
|
208
|
-
// rawYaml 只在解析成功后推进(不变量=当前生效的那份内容):
|
|
209
|
-
// 同一份坏内容每次保存都重新告警,直到改对为止。
|
|
210
|
-
logger.warn(`配置文件解析失败,本次变更已忽略,仍在使用上一份配置:${parseErrorFirstLine(err)}`);
|
|
211
|
-
return;
|
|
212
|
-
}
|
|
213
|
-
// 空文件 / 裸标量 / 数组:都是「解析不出一个配置对象」的同一问题,
|
|
214
|
-
// 一道闸拒收——放行会让全部插件按默认值 bounce 或往配置文件写回垃圾。
|
|
215
|
-
const kind = describeNonMapping(parsed);
|
|
216
|
-
if (kind) {
|
|
217
|
-
logger.warn(`配置文件不是一个配置对象(得到 ${kind}),本次变更已忽略`);
|
|
218
|
-
return;
|
|
219
|
-
}
|
|
220
|
-
rawYaml = current;
|
|
221
|
-
reconcilePending = false;
|
|
222
|
-
try {
|
|
223
|
-
onChange(parsed);
|
|
224
|
-
}
|
|
225
|
-
catch (err) {
|
|
226
|
-
// 变更处理器抛错此前被整段 catch 静默吞掉——保留兜底但必须出声。
|
|
227
|
-
logger.warn(`配置变更处理器抛错:${err instanceof Error ? err.message : String(err)}`);
|
|
228
|
-
}
|
|
229
|
-
}, 300);
|
|
230
|
-
};
|
|
231
|
-
// **必须监听目录,不能监听文件本身。** fs.watch 绑的是那一刻的 inode,而编辑器
|
|
232
|
-
// 保存普遍是「写临时文件 → rename 覆盖」——rename 之后同名文件已是新 inode,
|
|
233
|
-
// 绑在旧 inode 上的 watcher 从此永不触发,且无异常、无日志、无返回值。
|
|
234
|
-
// save() 同样是「写临时文件 → rename」(见上),自写回也会换 inode——守文件在
|
|
235
|
-
// 第一次保存后就失聪;守目录则人改与自写回两种来源都接得住。
|
|
236
|
-
watcher = fsWatch(dataDir, (_event, filename) => {
|
|
237
|
-
// filename 平台不保证非空;为空时不敢过滤,交给下面的内容比对兜底。
|
|
238
|
-
if (filename && basename(filename.toString()) !== fileName)
|
|
239
|
-
return;
|
|
240
|
-
schedule();
|
|
241
|
-
});
|
|
242
|
-
// 武装即对账一次:武装前(启动期)的外部修改不会再有事件,不补就既不生效、又让 save 一直拒写。
|
|
243
|
-
schedule();
|
|
244
|
-
}
|
|
245
|
-
catch (err) {
|
|
246
|
-
// 平台或挂载不支持 watch:外部修改从此不会自动生效,save 也会因盘上内容已变而拒写。
|
|
247
|
-
logger.warn(`无法监听配置文件变更(${err instanceof Error ? err.message : String(err)}):手动修改后需重启才生效,重启前的进程保存会被拒绝`);
|
|
248
|
-
}
|
|
249
|
-
return () => {
|
|
250
|
-
if (debounceTimer) {
|
|
251
|
-
clearTimeout(debounceTimer);
|
|
252
|
-
debounceTimer = null;
|
|
253
|
-
}
|
|
254
|
-
watcher?.close();
|
|
255
|
-
watcher = null;
|
|
256
|
-
};
|
|
257
|
-
},
|
|
258
|
-
};
|
|
259
|
-
return { config: initialConfig, provider };
|
|
83
|
+
});
|
|
84
|
+
return { config: file.initial, provider: { save: config => file.save(config), watch: file.watch } };
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* 创建基于家目录 `secrets.yaml` 的密钥存储:顶层是「键 → 值」的映射。读写、拒写与监听同配置文件,
|
|
88
|
+
* 另有三处不同:文件不存在时按空映射处理、不告警(第一次保存时建出);运行中改成空文件或只剩注释时按空映射处理;
|
|
89
|
+
* 原子写的临时文件一律以 0600 创建,不沿用原文件的权限位。
|
|
90
|
+
*/
|
|
91
|
+
export function createFsSecretsProvider(absPath) {
|
|
92
|
+
assertAbsolute('密钥文件路径', absPath);
|
|
93
|
+
const file = openYamlFile(absPath, {
|
|
94
|
+
label: '密钥文件',
|
|
95
|
+
logger: new DefaultLogger('aalis:secrets'),
|
|
96
|
+
serialize: values => stringifyYaml(values, { lineWidth: 0 }),
|
|
97
|
+
missing: () => ({}),
|
|
98
|
+
mode: 0o600,
|
|
99
|
+
emptyAsMissing: true,
|
|
100
|
+
});
|
|
101
|
+
return { values: file.initial, provider: { save: values => file.save(values), watch: file.watch } };
|
|
260
102
|
}
|
|
261
103
|
// ============================================================
|
|
262
104
|
// FsPluginLoader —— 扫描目录 + dynamic import
|
|
263
105
|
// ============================================================
|
|
264
106
|
/**
|
|
265
|
-
* 创建一个基于 packages 目录扫描的 PluginLoader
|
|
107
|
+
* 创建一个基于 packages 目录扫描的 PluginLoader。`rootDir` 是 packages 目录的绝对路径(源码形态的入口传 `<仓库>/packages`)。
|
|
266
108
|
*
|
|
267
109
|
* - `discover()`:读 dir 下每个子目录的 package.json,按 aalis-plugin 关键词收录可加载插件
|
|
268
110
|
* - `load()`:先经 assertSameCore 核对 core 是宿主那份,再用 `pathToFileURL(entry).href` 动态 import
|
|
269
111
|
* - `reload()`:用入口文件 mtime 作为 import URL 的 query 强制 ESM 缓存失效
|
|
270
112
|
*/
|
|
271
|
-
export function createFsPluginLoader(
|
|
272
|
-
|
|
113
|
+
export function createFsPluginLoader(rootDir) {
|
|
114
|
+
assertAbsolute('packages 目录', rootDir);
|
|
273
115
|
// 死门信号与 node_modules 加载器同一套(本仓自托管入口走的正是本加载器,
|
|
274
116
|
// 只在一边出声等于对自己的部署失聪)。
|
|
275
117
|
const loaderLogger = new DefaultLogger('aalis:loader');
|
|
@@ -323,11 +165,11 @@ export function isRestartRollback(v) {
|
|
|
323
165
|
return !!r && typeof r.reason === 'string' && Array.isArray(r.restore);
|
|
324
166
|
}
|
|
325
167
|
/** 组装重生用的 exec + argv。分离出来是为了单测覆盖 execArgv 保留。 */
|
|
326
|
-
export function buildRespawnCommand(argv = process.argv, execArgv = process.execArgv
|
|
168
|
+
export function buildRespawnCommand(appDir, argv = process.argv, execArgv = process.execArgv) {
|
|
327
169
|
const scriptFile = argv[1];
|
|
328
170
|
if (scriptFile?.endsWith('.ts')) {
|
|
329
171
|
// tsx 是包装脚本,node 层 flag 由它自己转交,不能塞在它前面。
|
|
330
|
-
const tsxBin = resolve(
|
|
172
|
+
const tsxBin = resolve(appDir, 'node_modules', '.bin', 'tsx');
|
|
331
173
|
return { exec: existsSync(tsxBin) ? tsxBin : 'tsx', args: [...argv.slice(1)] };
|
|
332
174
|
}
|
|
333
175
|
// execArgv 不在 argv 里:`node --max-old-space-size=4096 dist/start.js` 的
|
|
@@ -336,6 +178,36 @@ export function buildRespawnCommand(argv = process.argv, execArgv = process.exec
|
|
|
336
178
|
const [exec, ...rest] = argv;
|
|
337
179
|
return { exec: exec ?? process.execPath, args: [...execArgv, ...rest] };
|
|
338
180
|
}
|
|
181
|
+
/** 服务形态下重启以这个退出码结束:服务管理器(launchd 的 KeepAlive={SuccessfulExit=false}、systemd 的 Restart=on-failure)据此重新拉起 */
|
|
182
|
+
export const SERVICE_RESTART_EXIT_CODE = 75;
|
|
183
|
+
/**
|
|
184
|
+
* 服务形态的重启策略:停掉 App 后以 {@link SERVICE_RESTART_EXIT_CODE} 退出,由服务管理器拉起新进程,
|
|
185
|
+
* 新进程取锁时本进程的锁已随退出释放。不自己 spawn:detached 的新进程会脱离服务管理器的监管
|
|
186
|
+
* (launchd 不再看着它,systemd 随 cgroup 把它一起杀掉)。
|
|
187
|
+
* 服务形态下没有「新版起不来就回滚」:带回滚凭据的重启(市场更新)照常退出,并记一条说明。
|
|
188
|
+
*/
|
|
189
|
+
export function createServiceRestartStrategy() {
|
|
190
|
+
let restarting = false;
|
|
191
|
+
return {
|
|
192
|
+
async restart({ stop, rollback }) {
|
|
193
|
+
if (restarting) {
|
|
194
|
+
console.error('[aalis] 已有重启在进行中,忽略本次请求。');
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
restarting = true;
|
|
198
|
+
if (isRestartRollback(rollback)) {
|
|
199
|
+
console.error(`[aalis] 以服务形态运行,重启交给服务管理器;新版本起不来时不会自动回滚(${rollback.reason})。`);
|
|
200
|
+
}
|
|
201
|
+
try {
|
|
202
|
+
await stop();
|
|
203
|
+
}
|
|
204
|
+
catch (err) {
|
|
205
|
+
console.error('[aalis] 停止应用时出错,仍继续重启:', err);
|
|
206
|
+
}
|
|
207
|
+
process.exit(SERVICE_RESTART_EXIT_CODE);
|
|
208
|
+
},
|
|
209
|
+
};
|
|
210
|
+
}
|
|
339
211
|
/**
|
|
340
212
|
* Node 进程重启策略:spawn 一个 detached 子进程接管,确认其起得来后再退出当前进程。
|
|
341
213
|
*
|
|
@@ -358,13 +230,14 @@ export function buildRespawnCommand(argv = process.argv, execArgv = process.exec
|
|
|
358
230
|
*
|
|
359
231
|
* 对 .ts 入口(开发模式)会优先使用本地 `tsx` 二进制。
|
|
360
232
|
*/
|
|
361
|
-
export function createProcessRespawnStrategy(opts
|
|
233
|
+
export function createProcessRespawnStrategy(opts) {
|
|
362
234
|
const readyTimeoutMs = opts.readyTimeoutMs ?? 30_000;
|
|
363
235
|
let restarting = false;
|
|
364
236
|
function spawnChild(withIpc) {
|
|
365
|
-
const { exec, args } = buildRespawnCommand();
|
|
237
|
+
const { exec, args } = buildRespawnCommand(opts.appDir);
|
|
366
238
|
return spawn(exec, args, {
|
|
367
|
-
cwd:
|
|
239
|
+
cwd: opts.cwd,
|
|
240
|
+
env: { ...process.env, ...opts.env },
|
|
368
241
|
stdio: withIpc ? ['inherit', 'inherit', 'inherit', 'ipc'] : 'inherit',
|
|
369
242
|
detached: true,
|
|
370
243
|
});
|
package/dist/providers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EACL,SAAS,EACT,UAAU,EAEV,KAAK,IAAI,OAAO,EAChB,YAAY,EACZ,UAAU,EACV,MAAM,EACN,QAAQ,EACR,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAoB,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAElF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,MAAM,CAAC;AAEtE,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAChB,8BAA8B,GAC/B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAE5D,+DAA+D;AAC/D,4CAA4C;AAC5C,+DAA+D;AAE/D,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAEhD,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAS,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,iBAAiB,EAAE,oBAAoB,CAAC,CAAC,CAAC;AAEtH;;;GAGG;AACH,SAAS,aAAa,CAAC,MAAmB;IACxC,MAAM,GAAG,GAA4B;QACnC,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC;IAEF,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAE7B,GAAG,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC;IACnD,MAAM,KAAK,GAAG,MAAM,CAAC,kBAAkB,IAAI,EAAE,CAAC;IAC9C,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,GAAG,CAAC,kBAAkB,GAAG,KAAK,CAAC;IACjC,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAC3C,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACzC,CAAC;aAAM,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9C,IAAI,MAAM,CAAC,IAAI,CAAC,KAAgC,CAAC,CAAC,MAAM,GAAG,CAAC;gBAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACjF,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;AAC9C,CAAC;AASD;;;;;;;;;GASG;AACH,MAAM,UAAU,0BAA0B,CAAC,UAAmB;IAC5D,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,mBAAmB,CAAC,CAAC;IAC/F,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjC,IAAI,OAAO,GAAkB,IAAI,CAAC;IAClC,uDAAuD;IACvD,mDAAmD;IACnD,2BAA2B;IAC3B,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,OAAO,GAAqB,IAAI,CAAC;IACrC,IAAI,aAAa,GAAyC,IAAI,CAAC;IAC/D,2DAA2D;IAC3D,wCAAwC;IACxC,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,cAAc,CAAC,CAAC;IAEjD;;;;;OAKG;IACH,MAAM,mBAAmB,GAAG,CAAC,GAAY,EAAU,EAAE,CACnD,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpE,qDAAqD;IACrD,MAAM,kBAAkB,GAAG,CAAC,CAAU,EAAiB,EAAE;QACvD,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,OAAO,CAAC;QAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAAE,OAAO,OAAO,CAAC;QACrC,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,OAAO,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,SAAS,YAAY;QACnB,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACzC,IAAI,MAAe,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,sCAAsC;gBACtC,MAAM,IAAI,KAAK,CAAC,YAAY,mBAAmB,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC;YACtE,CAAC;YACD,sCAAsC;YACtC,+CAA+C;YAC/C,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;YACxC,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC;YACzD,CAAC;YACD,OAAO,MAAqB,CAAC;QAC/B,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,cAAc,CAAC,CAAC;QAC9C,OAAO,GAAG,IAAI,CAAC;QACf,gDAAgD;QAChD,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC,kBAAkB,CAAC,CAAC;QAC5D,OAAO,EAAE,IAAI,EAAE,IAAc,EAAE,QAAQ,EAAE,QAAkB,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAC7E,CAAC;IAED,MAAM,aAAa,GAAG,YAAY,EAAE,CAAC;IAErC,MAAM,QAAQ,GAAmB;QAC/B,IAAI,CAAC,MAAM;YACT,4CAA4C;YAC5C,6CAA6C;YAC7C,wCAAwC;YACxC,IAAI,MAAM,GAAkB,IAAI,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC1C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;oBAAE,MAAM,GAAG,CAAC;YAClE,CAAC;YACD,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBAC1C,gBAAgB,GAAG,IAAI,CAAC;gBACxB,MAAM,IAAI,sBAAsB,CAAC,8BAA8B,OAAO,GAAG,CAAC,CAAC;YAC7E,CAAC;YACD,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;YACnC,0CAA0C;YAC1C,+DAA+D;YAC/D,0DAA0D;YAC1D,8DAA8D;YAC9D,sDAAsD;YACtD,mDAAmD;YACnD,MAAM,GAAG,GAAG,GAAG,OAAO,QAAQ,OAAO,CAAC,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9E,gDAAgD;YAChD,2DAA2D;YAC3D,mEAAmE;YACnE,IAAI,IAAI,GAAG,KAAK,CAAC;YACjB,IAAI,CAAC;gBACH,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC;YACxC,CAAC;YAAC,MAAM,CAAC;gBACP,4BAA4B;YAC9B,CAAC;YACD,IAAI,CAAC;gBACH,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBACtD,kDAAkD;gBAClD,IAAI,CAAC;oBACH,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBACvB,CAAC;gBAAC,MAAM,CAAC;oBACP,4BAA4B;gBAC9B,CAAC;gBACD,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC3B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,mCAAmC;gBACnC,IAAI,CAAC;oBACH,MAAM,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC/B,CAAC;gBAAC,MAAM,CAAC;oBACP,mBAAmB;gBACrB,CAAC;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,OAAO,GAAG,IAAI,CAAC;YACf,gBAAgB,GAAG,KAAK,CAAC;QAC3B,CAAC;QAED,KAAK,CAAC,QAAQ;YACZ,IAAI,OAAO;gBAAE,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;YAC7B,mCAAmC;YACnC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;gBAAE,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;YAC1C,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;YACnC,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,GAAG,EAAE;oBACpB,IAAI,aAAa;wBAAE,YAAY,CAAC,aAAa,CAAC,CAAC;oBAC/C,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;wBAC9B,aAAa,GAAG,IAAI,CAAC;wBACrB,qCAAqC;wBACrC,wCAAwC;wBACxC,kCAAkC;wBAClC,IAAI,OAAe,CAAC;wBACpB,IAAI,CAAC;4BACH,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;wBAC3C,CAAC;wBAAC,MAAM,CAAC;4BACP,OAAO;wBACT,CAAC;wBACD,8CAA8C;wBAC9C,6DAA6D;wBAC7D,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,gBAAgB;4BAAE,OAAO;wBACrD,IAAI,MAAe,CAAC;wBACpB,IAAI,CAAC;4BACH,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;wBAC9B,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACb,oCAAoC;4BACpC,0BAA0B;4BAC1B,MAAM,CAAC,IAAI,CAAC,8BAA8B,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;4BACtE,OAAO;wBACT,CAAC;wBACD,sCAAsC;wBACtC,yCAAyC;wBACzC,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;wBACxC,IAAI,IAAI,EAAE,CAAC;4BACT,MAAM,CAAC,IAAI,CAAC,mBAAmB,IAAI,WAAW,CAAC,CAAC;4BAChD,OAAO;wBACT,CAAC;wBACD,OAAO,GAAG,OAAO,CAAC;wBAClB,gBAAgB,GAAG,KAAK,CAAC;wBACzB,IAAI,CAAC;4BACH,QAAQ,CAAC,MAAqB,CAAC,CAAC;wBAClC,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACb,sCAAsC;4BACtC,MAAM,CAAC,IAAI,CAAC,aAAa,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBAC/E,CAAC;oBACH,CAAC,EAAE,GAAG,CAAC,CAAC;gBACV,CAAC,CAAC;gBACF,mDAAmD;gBACnD,oDAAoD;gBACpD,6CAA6C;gBAC7C,oDAAoD;gBACpD,gCAAgC;gBAChC,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;oBAC9C,wCAAwC;oBACxC,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,QAAQ;wBAAE,OAAO;oBACnE,QAAQ,EAAE,CAAC;gBACb,CAAC,CAAC,CAAC;gBACH,oDAAoD;gBACpD,QAAQ,EAAE,CAAC;YACb,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,iDAAiD;gBACjD,MAAM,CAAC,IAAI,CACT,cAAc,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAC3F,CAAC;YACJ,CAAC;YAED,OAAO,GAAG,EAAE;gBACV,IAAI,aAAa,EAAE,CAAC;oBAClB,YAAY,CAAC,aAAa,CAAC,CAAC;oBAC5B,aAAa,GAAG,IAAI,CAAC;gBACvB,CAAC;gBACD,OAAO,EAAE,KAAK,EAAE,CAAC;gBACjB,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC,CAAC;QACJ,CAAC;KACF,CAAC;IAEF,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;AAC7C,CAAC;AAED,+DAA+D;AAC/D,0CAA0C;AAC1C,+DAA+D;AAE/D;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAoB;IACvD,MAAM,OAAO,GAAG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;IAClE,6CAA6C;IAC7C,qBAAqB;IACrB,MAAM,YAAY,GAAG,IAAI,aAAa,CAAC,cAAc,CAAC,CAAC;IAEvD,OAAO;QACL,KAAK,CAAC,QAAQ;YACZ,IAAI,OAAiB,CAAC;YACtB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;gBAChE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACxF,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,MAAM,UAAU,GAAuB,EAAE,CAAC;YAC1C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;gBAC5D,IAAI,OAAgC,CAAC;gBACrC,IAAI,CAAC;oBACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC3D,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS;gBACX,CAAC;gBACD,4DAA4D;gBAC5D,0DAA0D;gBAC1D,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC/B,8BAA8B,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;oBAC7D,SAAS;gBACX,CAAC;gBACD,MAAM,IAAI,GAAI,OAAO,CAAC,IAAe,IAAI,eAAe,CAAC;gBACzD,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,OAAO,CAAC,IAAc;oBAC5B,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;oBACrC,QAAQ,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;iBAC3C,CAAC,CAAC;YACL,CAAC;YACD,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,sBAAsB,CAAC,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,KAAK,CAAC;QAC9E,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,sBAAsB,CAAC,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,CAAC;KAChF,CAAC;AACJ,CAAC;AAED,+DAA+D;AAC/D,kDAAkD;AAClD,+DAA+D;AAE/D,0CAA0C;AAC1C,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC;AA2B3C,qDAAqD;AACrD,MAAM,UAAU,iBAAiB,CAAC,CAAU;IAC1C,MAAM,CAAC,GAAG,CAA2B,CAAC;IACtC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AACzE,CAAC;AAYD,kDAAkD;AAClD,MAAM,UAAU,mBAAmB,CACjC,OAA0B,OAAO,CAAC,IAAI,EACtC,WAA8B,OAAO,CAAC,QAAQ,EAC9C,MAAc,OAAO,CAAC,GAAG,EAAE;IAE3B,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,wCAAwC;QACxC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC3D,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjF,CAAC;IACD,sEAAsE;IACtE,6DAA6D;IAC7D,aAAa;IACb,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AAC1E,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,4BAA4B,CAAC,OAAuB,EAAE;IACpE,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,MAAM,CAAC;IACrD,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,SAAS,UAAU,CAAC,OAAgB;QAClC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,mBAAmB,EAAE,CAAC;QAC7C,OAAO,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE;YACvB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;YACrE,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC9B,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;gBAC1C,OAAO;YACT,CAAC;YACD,UAAU,GAAG,IAAI,CAAC;YAElB,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC3C,IAAI,CAAC;gBACH,MAAM,IAAI,EAAE,CAAC;YACf,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,4BAA4B;gBAC5B,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;YAC/C,CAAC;YAED,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,OAAO,GAAG,MAAM,IAAI,OAAO,CAA+B,cAAc,CAAC,EAAE;gBAC/E,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC,CAAC;gBAC1E,MAAM,IAAI,GAAG,CAAC,CAA+B,EAAE,EAAE;oBAC/C,YAAY,CAAC,KAAK,CAAC,CAAC;oBACpB,cAAc,CAAC,CAAC,CAAC,CAAC;gBACpB,CAAC,CAAC;gBACF,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAY,EAAE,EAAE;oBACnC,IAAK,GAAiC,EAAE,IAAI,KAAK,aAAa;wBAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBAChF,CAAC,CAAC,CAAC;gBACH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBACrC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;YAEH,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;gBACvB,kDAAkD;gBAClD,4DAA4D;gBAC5D,2BAA2B,EAAE,CAAC;gBAC9B,IAAI,CAAC;oBACH,KAAK,CAAC,UAAU,EAAE,CAAC;gBACrB,CAAC;gBAAC,MAAM,CAAC;oBACP,eAAe;gBACjB,CAAC;gBACD,KAAK,CAAC,KAAK,EAAE,CAAC;gBACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,kBAAkB;YAClB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjC,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;gBAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,wBAAwB,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;YAC3D,uDAAuD;YACvD,4CAA4C;YAC5C,uBAAuB;YACvB,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACjC,IAAI,CAAC;oBACH,8DAA8D;oBAC9D,IAAI,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,OAAO,KAAK,EAAE;wBAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;;wBACpE,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;gBACxC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACpB,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC;oBAC9E,IAAI,CAAC,CAAC,CAAC,aAAa;wBAAE,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBAClF,CAAC;YACH,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,OAAO,CAAC,KAAK,CAAC,iBAAiB,MAAM,CAAC,MAAM,0BAA0B,CAAC,CAAC;gBACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;gBACzB,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,WAAW,CAAC;gBAChD,oDAAoD;gBACpD,iDAAiD;gBACjD,6DAA6D;gBAC7D,kDAAkD;gBAClD,6DAA6D;gBAC7D,gDAAgD;gBAChD,MAAM,IAAI,GAAG,MAAM,IAAI,OAAO,CAAgB,CAAC,CAAC,EAAE;oBAChD,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;oBACtD,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACxB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;wBAClB,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;wBACxC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACR,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBACH,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CACX,wBAAwB,GAAG,QAAQ,IAAI,MAAM;wBAC3C,oEAAoE;wBACpE,oBAAoB,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,KAAK;wBAC7D,sCAAsC,CACzC,CAAC;oBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;YACD,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YAClC,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,MAAM,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAChB,8BAA8B,GAC/B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,+DAA+D;AAC/D,4CAA4C;AAC5C,+DAA+D;AAE/D,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAS;IAC1C,MAAM;IACN,UAAU;IACV,SAAS;IACT,iBAAiB;IACjB,oBAAoB;IACpB,0BAA0B;CAC3B,CAAC,CAAC;AAEH;;;GAGG;AACH,SAAS,aAAa,CAAC,MAAmB;IACxC,MAAM,GAAG,GAA4B;QACnC,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC;IAEF,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAE7B,GAAG,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC;IACnD,MAAM,KAAK,GAAG,MAAM,CAAC,kBAAkB,IAAI,EAAE,CAAC;IAC9C,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,GAAG,CAAC,kBAAkB,GAAG,KAAK,CAAC;IACjC,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,wBAAwB,IAAI,EAAE,CAAC;IAC1D,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,CAAC,wBAAwB,GAAG,WAAW,CAAC;IAEpF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAC3C,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACzC,CAAC;aAAM,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9C,IAAI,MAAM,CAAC,IAAI,CAAC,KAAgC,CAAC,CAAC,MAAM,GAAG,CAAC;gBAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACjF,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;AAC9C,CAAC;AASD;;;;;;;;GAQG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAAe;IACxD,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClC,+EAA+E;IAC/E,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,cAAc,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,YAAY,CAAc,OAAO,EAAE;QAC9C,KAAK,EAAE,MAAM;QACb,MAAM;QACN,SAAS,EAAE,aAAa;QACxB,OAAO,EAAE,GAAG,EAAE;YACZ,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,cAAc,CAAC,CAAC;YAC9C,gDAAgD;YAChD,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC,kBAAkB,CAAC,CAAC;YAC5D,OAAO,EAAE,IAAI,EAAE,IAAc,EAAE,QAAQ,EAAE,QAAkB,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QAC7E,CAAC;KACF,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;AACtG,CAAC;AAQD;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAe;IACrD,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,YAAY,CAA0B,OAAO,EAAE;QAC1D,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,IAAI,aAAa,CAAC,eAAe,CAAC;QAC1C,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAC5D,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;QACnB,IAAI,EAAE,KAAK;QACX,cAAc,EAAE,IAAI;KACrB,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;AACtG,CAAC;AAED,+DAA+D;AAC/D,0CAA0C;AAC1C,+DAA+D;AAE/D;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,cAAc,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACvC,6CAA6C;IAC7C,qBAAqB;IACrB,MAAM,YAAY,GAAG,IAAI,aAAa,CAAC,cAAc,CAAC,CAAC;IAEvD,OAAO;QACL,KAAK,CAAC,QAAQ;YACZ,IAAI,OAAiB,CAAC;YACtB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;gBAChE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACxF,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,MAAM,UAAU,GAAuB,EAAE,CAAC;YAC1C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;gBAC5D,IAAI,OAAgC,CAAC;gBACrC,IAAI,CAAC;oBACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC3D,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS;gBACX,CAAC;gBACD,4DAA4D;gBAC5D,0DAA0D;gBAC1D,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC/B,8BAA8B,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;oBAC7D,SAAS;gBACX,CAAC;gBACD,MAAM,IAAI,GAAI,OAAO,CAAC,IAAe,IAAI,eAAe,CAAC;gBACzD,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,OAAO,CAAC,IAAc;oBAC5B,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;oBACrC,QAAQ,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;iBAC3C,CAAC,CAAC;YACL,CAAC;YACD,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,sBAAsB,CAAC,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,KAAK,CAAC;QAC9E,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,sBAAsB,CAAC,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,CAAC;KAChF,CAAC;AACJ,CAAC;AAED,+DAA+D;AAC/D,kDAAkD;AAClD,+DAA+D;AAE/D,0CAA0C;AAC1C,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC;AA2B3C,qDAAqD;AACrD,MAAM,UAAU,iBAAiB,CAAC,CAAU;IAC1C,MAAM,CAAC,GAAG,CAA2B,CAAC;IACtC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AACzE,CAAC;AAkBD,kDAAkD;AAClD,MAAM,UAAU,mBAAmB,CACjC,MAAc,EACd,OAA0B,OAAO,CAAC,IAAI,EACtC,WAA8B,OAAO,CAAC,QAAQ;IAE9C,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,wCAAwC;QACxC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC9D,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjF,CAAC;IACD,sEAAsE;IACtE,6DAA6D;IAC7D,aAAa;IACb,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AAC1E,CAAC;AAED,2GAA2G;AAC3G,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B;IAC1C,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,OAAO;QACL,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC9B,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;gBAC1C,OAAO;YACT,CAAC;YACD,UAAU,GAAG,IAAI,CAAC;YAClB,IAAI,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChC,OAAO,CAAC,KAAK,CAAC,2CAA2C,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;YAChF,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,IAAI,EAAE,CAAC;YACf,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;YAC/C,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAC1C,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,4BAA4B,CAAC,IAAoB;IAC/D,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,MAAM,CAAC;IACrD,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,SAAS,UAAU,CAAC,OAAgB;QAClC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxD,OAAO,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE;YACvB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE;YACpC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;YACrE,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC9B,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;gBAC1C,OAAO;YACT,CAAC;YACD,UAAU,GAAG,IAAI,CAAC;YAElB,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC3C,IAAI,CAAC;gBACH,MAAM,IAAI,EAAE,CAAC;YACf,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,4BAA4B;gBAC5B,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;YAC/C,CAAC;YAED,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,OAAO,GAAG,MAAM,IAAI,OAAO,CAA+B,cAAc,CAAC,EAAE;gBAC/E,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC,CAAC;gBAC1E,MAAM,IAAI,GAAG,CAAC,CAA+B,EAAE,EAAE;oBAC/C,YAAY,CAAC,KAAK,CAAC,CAAC;oBACpB,cAAc,CAAC,CAAC,CAAC,CAAC;gBACpB,CAAC,CAAC;gBACF,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAY,EAAE,EAAE;oBACnC,IAAK,GAAiC,EAAE,IAAI,KAAK,aAAa;wBAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBAChF,CAAC,CAAC,CAAC;gBACH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBACrC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;YAEH,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;gBACvB,kDAAkD;gBAClD,4DAA4D;gBAC5D,2BAA2B,EAAE,CAAC;gBAC9B,IAAI,CAAC;oBACH,KAAK,CAAC,UAAU,EAAE,CAAC;gBACrB,CAAC;gBAAC,MAAM,CAAC;oBACP,eAAe;gBACjB,CAAC;gBACD,KAAK,CAAC,KAAK,EAAE,CAAC;gBACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,kBAAkB;YAClB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjC,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;gBAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,wBAAwB,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;YAC3D,uDAAuD;YACvD,4CAA4C;YAC5C,uBAAuB;YACvB,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACjC,IAAI,CAAC;oBACH,8DAA8D;oBAC9D,IAAI,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,OAAO,KAAK,EAAE;wBAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;;wBACpE,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;gBACxC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACpB,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC;oBAC9E,IAAI,CAAC,CAAC,CAAC,aAAa;wBAAE,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBAClF,CAAC;YACH,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,OAAO,CAAC,KAAK,CAAC,iBAAiB,MAAM,CAAC,MAAM,0BAA0B,CAAC,CAAC;gBACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;gBACzB,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,WAAW,CAAC;gBAChD,oDAAoD;gBACpD,iDAAiD;gBACjD,6DAA6D;gBAC7D,kDAAkD;gBAClD,6DAA6D;gBAC7D,gDAAgD;gBAChD,MAAM,IAAI,GAAG,MAAM,IAAI,OAAO,CAAgB,CAAC,CAAC,EAAE;oBAChD,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;oBACtD,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACxB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;wBAClB,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;wBACxC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACR,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBACH,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CACX,wBAAwB,GAAG,QAAQ,IAAI,MAAM;wBAC3C,oEAAoE;wBACpE,oBAAoB,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,KAAK;wBAC7D,sCAAsC,CACzC,CAAC;oBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;YACD,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YAClC,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { type ConfigSchema } from '@aalis/schema-config';
|
|
2
|
+
/** 密钥字段上算「有值」的明文:非空。`''`、null、空 map、空 list 是没填,不进密钥存储 */
|
|
3
|
+
export declare function isSecretValue(value: unknown): boolean;
|
|
4
|
+
/** 值里出现的全部引用的键。不看 schema:用来判断一个键还有没有人用,宁可多算 */
|
|
5
|
+
export declare function referencedKeys(value: unknown, into?: Set<string>): Set<string>;
|
|
6
|
+
/** 密钥字段上的非空明文所在的路径(只收文档形态的写入口据此拒绝) */
|
|
7
|
+
export declare function plainSecretPaths(schema: ConfigSchema | undefined, config: Record<string, unknown>): string[];
|
|
8
|
+
export interface SplitSecrets {
|
|
9
|
+
/** 文档形态:密钥字段上只剩引用或没填的空值 */
|
|
10
|
+
doc: Record<string, unknown>;
|
|
11
|
+
/** 要写进密钥存储的键值,由调用方在生效后提交 */
|
|
12
|
+
writes: Map<string, unknown>;
|
|
13
|
+
/** 新值落到的位置与键(日志用,不带值) */
|
|
14
|
+
placed: Array<{
|
|
15
|
+
path: string;
|
|
16
|
+
key: string;
|
|
17
|
+
}>;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* 提交的配置拆成文档形态:密钥字段上的非空明文换成引用,值放进 writes。
|
|
21
|
+
* - 顶层与分组里的字段:写进 `base`(该实例改动前的文档)在同一位置引用的键,键被别处共用时一并改到它们;
|
|
22
|
+
* 那里没有引用就取新键。
|
|
23
|
+
* - 数组元素里的字段:一律取新键。元素可能被重排、增删,按下标找到的可能是别的元素的键。
|
|
24
|
+
* 新键是 `<实例 id>.<字段路径>`(数组元素的路径不带下标),`taken` 认为被占用时依次加 `-2`、`-3`。
|
|
25
|
+
*/
|
|
26
|
+
export declare function splitSecrets(schema: ConfigSchema | undefined, instanceId: string, submitted: Record<string, unknown>, base: Record<string, unknown>, taken: (key: string) => boolean): SplitSecrets;
|
|
27
|
+
export interface ResolvedSecrets {
|
|
28
|
+
config: Record<string, unknown>;
|
|
29
|
+
/** 引用的键不在密钥存储里:引用原样留在 config 里,插件的 parseConfig 会拒绝激活 */
|
|
30
|
+
dangling: Array<{
|
|
31
|
+
path: string;
|
|
32
|
+
key: string;
|
|
33
|
+
}>;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* 文档形态解析成运行态:密钥字段上的引用换成密钥存储里的值。键不在存储里时不回落任何东西,引用原样留着,
|
|
37
|
+
* 让插件激活失败、点名键名(回落默认值会悄悄连上别的东西,例如默认的本机数据库)。
|
|
38
|
+
*/
|
|
39
|
+
export declare function resolveSecrets(schema: ConfigSchema | undefined, doc: Record<string, unknown>, lookup: (key: string) => {
|
|
40
|
+
value: unknown;
|
|
41
|
+
} | undefined): ResolvedSecrets;
|
|
42
|
+
/** 悬空引用的日志:点名实例、字段与键,不涉及值 */
|
|
43
|
+
export declare function describeDangling(instanceId: string, dangling: ResolvedSecrets['dangling']): string;
|
|
44
|
+
//# sourceMappingURL=secrets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../src/secrets.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,YAAY,EAAgC,MAAM,sBAAsB,CAAC;AAEvF,yDAAyD;AACzD,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAMrD;AAED,+CAA+C;AAC/C,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,cAAoB,GAAG,GAAG,CAAC,MAAM,CAAC,CAKpF;AAED,sCAAsC;AACtC,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAO5G;AAED,MAAM,WAAW,YAAY;IAC3B,2BAA2B;IAC3B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,4BAA4B;IAC5B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,yBAAyB;IACzB,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC9C;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,YAAY,GAAG,SAAS,EAChC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAC9B,YAAY,CAad;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,wDAAwD;IACxD,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,GAAG,SAAS,EAChC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,GACtD,eAAe,CAUjB;AAED,6BAA6B;AAC7B,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,GAAG,MAAM,CAGlG"}
|
package/dist/secrets.js
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
// ============================================================
|
|
2
|
+
// secrets —— 配置文档与运行态之间的密钥换算(纯函数,不碰文件)
|
|
3
|
+
//
|
|
4
|
+
// schema 里 `secret: true` 的字段在文档里是引用 `{ $secret: '<键>' }`,值在宿主的密钥存储(家目录的 secrets.yaml);
|
|
5
|
+
// 交给 core(也就是插件)之前解析回原值。字段的位置只认 schema-config 的 mapSecretFields。
|
|
6
|
+
// ============================================================
|
|
7
|
+
import { isSecretRef, mapSecretFields } from '@aalis/schema-config';
|
|
8
|
+
/** 密钥字段上算「有值」的明文:非空。`''`、null、空 map、空 list 是没填,不进密钥存储 */
|
|
9
|
+
export function isSecretValue(value) {
|
|
10
|
+
if (value === undefined || value === null || value === '')
|
|
11
|
+
return false;
|
|
12
|
+
if (isSecretRef(value))
|
|
13
|
+
return false;
|
|
14
|
+
if (Array.isArray(value))
|
|
15
|
+
return value.length > 0;
|
|
16
|
+
if (typeof value === 'object')
|
|
17
|
+
return Object.keys(value).length > 0;
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
/** 值里出现的全部引用的键。不看 schema:用来判断一个键还有没有人用,宁可多算 */
|
|
21
|
+
export function referencedKeys(value, into = new Set()) {
|
|
22
|
+
if (isSecretRef(value))
|
|
23
|
+
into.add(value.$secret);
|
|
24
|
+
else if (Array.isArray(value))
|
|
25
|
+
for (const item of value)
|
|
26
|
+
referencedKeys(item, into);
|
|
27
|
+
else if (value !== null && typeof value === 'object')
|
|
28
|
+
for (const v of Object.values(value))
|
|
29
|
+
referencedKeys(v, into);
|
|
30
|
+
return into;
|
|
31
|
+
}
|
|
32
|
+
/** 密钥字段上的非空明文所在的路径(只收文档形态的写入口据此拒绝) */
|
|
33
|
+
export function plainSecretPaths(schema, config) {
|
|
34
|
+
const paths = [];
|
|
35
|
+
mapSecretFields(schema, config, (value, at) => {
|
|
36
|
+
if (isSecretValue(value))
|
|
37
|
+
paths.push(at.path);
|
|
38
|
+
return value;
|
|
39
|
+
});
|
|
40
|
+
return [...new Set(paths)];
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* 提交的配置拆成文档形态:密钥字段上的非空明文换成引用,值放进 writes。
|
|
44
|
+
* - 顶层与分组里的字段:写进 `base`(该实例改动前的文档)在同一位置引用的键,键被别处共用时一并改到它们;
|
|
45
|
+
* 那里没有引用就取新键。
|
|
46
|
+
* - 数组元素里的字段:一律取新键。元素可能被重排、增删,按下标找到的可能是别的元素的键。
|
|
47
|
+
* 新键是 `<实例 id>.<字段路径>`(数组元素的路径不带下标),`taken` 认为被占用时依次加 `-2`、`-3`。
|
|
48
|
+
*/
|
|
49
|
+
export function splitSecrets(schema, instanceId, submitted, base, taken) {
|
|
50
|
+
const writes = new Map();
|
|
51
|
+
const placed = [];
|
|
52
|
+
const doc = mapSecretFields(schema, submitted, (value, at) => {
|
|
53
|
+
if (!isSecretValue(value))
|
|
54
|
+
return value;
|
|
55
|
+
const key = (at.inArray ? undefined : refAt(base, at.path)) ??
|
|
56
|
+
freshKey(`${instanceId}.${at.path}`, k => taken(k) || writes.has(k));
|
|
57
|
+
writes.set(key, value);
|
|
58
|
+
placed.push({ path: at.path, key });
|
|
59
|
+
return { $secret: key };
|
|
60
|
+
});
|
|
61
|
+
return { doc, writes, placed };
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* 文档形态解析成运行态:密钥字段上的引用换成密钥存储里的值。键不在存储里时不回落任何东西,引用原样留着,
|
|
65
|
+
* 让插件激活失败、点名键名(回落默认值会悄悄连上别的东西,例如默认的本机数据库)。
|
|
66
|
+
*/
|
|
67
|
+
export function resolveSecrets(schema, doc, lookup) {
|
|
68
|
+
const dangling = [];
|
|
69
|
+
const config = mapSecretFields(schema, doc, (value, at) => {
|
|
70
|
+
if (!isSecretRef(value))
|
|
71
|
+
return value;
|
|
72
|
+
const hit = lookup(value.$secret);
|
|
73
|
+
if (hit)
|
|
74
|
+
return hit.value;
|
|
75
|
+
dangling.push({ path: at.path, key: value.$secret });
|
|
76
|
+
return value;
|
|
77
|
+
});
|
|
78
|
+
return { config, dangling };
|
|
79
|
+
}
|
|
80
|
+
/** 悬空引用的日志:点名实例、字段与键,不涉及值 */
|
|
81
|
+
export function describeDangling(instanceId, dangling) {
|
|
82
|
+
const items = dangling.map(d => `${d.path}(键 ${d.key})`).join('、');
|
|
83
|
+
return `${instanceId} 引用的密钥不在 secrets.yaml 里:${items};用 parseConfig 读配置的插件会激活失败,在 WebUI 重新填写或在 secrets.yaml 里补上这些键`;
|
|
84
|
+
}
|
|
85
|
+
/** 按点号路径取顶层或分组里那个位置上的引用键 */
|
|
86
|
+
function refAt(config, path) {
|
|
87
|
+
let value = config;
|
|
88
|
+
for (const part of path.split('.')) {
|
|
89
|
+
if (value === null || typeof value !== 'object' || Array.isArray(value))
|
|
90
|
+
return undefined;
|
|
91
|
+
value = Object.hasOwn(value, part) ? value[part] : undefined;
|
|
92
|
+
}
|
|
93
|
+
return isSecretRef(value) ? value.$secret : undefined;
|
|
94
|
+
}
|
|
95
|
+
function freshKey(base, taken) {
|
|
96
|
+
if (!taken(base))
|
|
97
|
+
return base;
|
|
98
|
+
for (let n = 2;; n++) {
|
|
99
|
+
const key = `${base}-${n}`;
|
|
100
|
+
if (!taken(key))
|
|
101
|
+
return key;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=secrets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets.js","sourceRoot":"","sources":["../src/secrets.ts"],"names":[],"mappings":"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"}
|