skill-home 0.3.0 → 0.3.1
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/SKILL.md +1 -1
- package/dist/cli/cmd_read.js +12 -8
- package/dist/cli/cmd_read.js.map +1 -1
- package/dist/cli/config.d.ts +5 -1
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +8 -2
- package/dist/cli/config.js.map +1 -1
- package/dist/config.d.ts +13 -4
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +58 -8
- package/dist/config.js.map +1 -1
- package/dist/fetch/backup.d.ts +4 -6
- package/dist/fetch/backup.d.ts.map +1 -1
- package/dist/fetch/backup.js +4 -13
- package/dist/fetch/backup.js.map +1 -1
- package/dist/fetch/errors.d.ts +1 -1
- package/dist/fetch/errors.d.ts.map +1 -1
- package/dist/fetch/errors.js.map +1 -1
- package/dist/fetch/index.d.ts +3 -0
- package/dist/fetch/index.d.ts.map +1 -1
- package/dist/fetch/index.js +2 -0
- package/dist/fetch/index.js.map +1 -1
- package/dist/fetch/masterKey.d.ts +11 -0
- package/dist/fetch/masterKey.d.ts.map +1 -0
- package/dist/fetch/masterKey.js +46 -0
- package/dist/fetch/masterKey.js.map +1 -0
- package/dist/fetch/paths.d.ts +48 -1
- package/dist/fetch/paths.d.ts.map +1 -1
- package/dist/fetch/paths.js +82 -8
- package/dist/fetch/paths.js.map +1 -1
- package/dist/health.d.ts.map +1 -1
- package/dist/health.js +47 -35
- package/dist/health.js.map +1 -1
- package/dist/help/helpAssets.js +4 -4
- package/dist/help/helpAssets.js.map +1 -1
- package/dist/help/manifest.d.ts +8 -2
- package/dist/help/manifest.d.ts.map +1 -1
- package/dist/help/manifest.js +10 -4
- package/dist/help/manifest.js.map +1 -1
- package/package.json +1 -1
package/dist/fetch/backup.js
CHANGED
|
@@ -12,11 +12,11 @@ import { existsSync, mkdirSync, readFileSync, readdirSync, statSync, unlinkSync,
|
|
|
12
12
|
import { basename, dirname, isAbsolute, join, resolve } from 'node:path';
|
|
13
13
|
import { closeHomeDb, openHomeDb } from './db.js';
|
|
14
14
|
import { HomeFetchError, HomePolicyError } from './errors.js';
|
|
15
|
-
import { dbFilename,
|
|
16
|
-
|
|
15
|
+
import { dbFilename, resolveDbPath, resolveBackupDir } from './paths.js';
|
|
16
|
+
export { resolveBackupDir };
|
|
17
17
|
import { zipRead, zipWrite } from './archive.js';
|
|
18
|
-
/**
|
|
19
|
-
export
|
|
18
|
+
/** 备份目录名的默认值:具名引用(唯一定义地=`src/fetch/paths.ts` 的同名常量,铁律二)。 */
|
|
19
|
+
export { DEFAULT_BACKUP_DIR_NAME } from './paths.js';
|
|
20
20
|
const BACKUP_KEEP_N = 5; // 老家 ops.py:25 同值
|
|
21
21
|
const BACKUP_PREFIX = 'home_backup_';
|
|
22
22
|
const EXPORT_SCHEMA_VERSION = 1;
|
|
@@ -40,15 +40,6 @@ function parseStamp(name) {
|
|
|
40
40
|
function daysBetween(from, to = new Date()) {
|
|
41
41
|
return Math.floor((to.getTime() - from.getTime()) / 86400000);
|
|
42
42
|
}
|
|
43
|
-
/** 备份目录名:配置 `backup.dir`,空串=默认(`backups`)。 */
|
|
44
|
-
export function backupDirName() {
|
|
45
|
-
const dir = loadHomeConfig().values.backup.dir;
|
|
46
|
-
return dir === '' ? DEFAULT_BACKUP_DIR_NAME : dir;
|
|
47
|
-
}
|
|
48
|
-
/** 备份目录(库目录下 `backups/`)——设置页「备份目录」那一项的取值口;只算路径,不建目录。 */
|
|
49
|
-
export function resolveBackupDir() {
|
|
50
|
-
return join(resolveDbDir(), backupDirName());
|
|
51
|
-
}
|
|
52
43
|
function backupFiles(dir) {
|
|
53
44
|
if (!existsSync(dir))
|
|
54
45
|
return [];
|
package/dist/fetch/backup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backup.js","sourceRoot":"","sources":["../../src/fetch/backup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"backup.js","sourceRoot":"","sources":["../../src/fetch/backup.ts"],"names":[],"mappings":"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"}
|
package/dist/fetch/errors.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare class HomeFetchError extends Error {
|
|
2
|
-
readonly code: 'HOME_DB_MISSING' | 'HOME_DB_UNREADABLE' | 'HOME_ITEM_NOT_FOUND' | 'HOME_BAD_QUERY' | 'HOME_EMPTY_RANGE' | 'HOME_ACCOUNT_MISSING' | 'HOME_ACCOUNT_BAD_KEY';
|
|
2
|
+
readonly code: 'HOME_DB_MISSING' | 'HOME_DB_UNREADABLE' | 'HOME_ITEM_NOT_FOUND' | 'HOME_BAD_QUERY' | 'HOME_EMPTY_RANGE' | 'HOME_ACCOUNT_MISSING' | 'HOME_ACCOUNT_BAD_KEY' | 'HOME_MASTER_KEY_MISSING' | 'HOME_MASTER_KEY_UNREADABLE';
|
|
3
3
|
constructor(code: HomeFetchError['code'], message: string, options?: {
|
|
4
4
|
cause?: unknown;
|
|
5
5
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/fetch/errors.ts"],"names":[],"mappings":"AACA,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,EACT,iBAAiB,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,gBAAgB,GACnF,kBAAkB,GAAG,sBAAsB,GAAG,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/fetch/errors.ts"],"names":[],"mappings":"AACA,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,EACT,iBAAiB,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,gBAAgB,GACnF,kBAAkB,GAAG,sBAAsB,GAAG,sBAAsB,GACpE,yBAAyB,GAAG,4BAA4B,CAAC;gBACjD,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAKzF;AAED,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,IAAI,EACT,iBAAiB,GAAG,qBAAqB,GAAG,qBAAqB,GACjE,qBAAqB,GAAG,mBAAmB,GAAG,iBAAiB,GAAG,kBAAkB,CAAC;gBAC7E,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM;CAK3D"}
|
package/dist/fetch/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/fetch/errors.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,MAAM,OAAO,cAAe,SAAQ,KAAK;IAC9B,IAAI,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/fetch/errors.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,MAAM,OAAO,cAAe,SAAQ,KAAK;IAC9B,IAAI,CAGgD;IAC7D,YAAY,IAA4B,EAAE,OAAe,EAAE,OAA6B;QACtF,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAC/B,IAAI,CAE4E;IACzF,YAAY,IAA6B,EAAE,OAAe;QACxD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
|
package/dist/fetch/index.d.ts
CHANGED
|
@@ -2,6 +2,9 @@ export { HomeFetchError, HomePolicyError } from './errors.js';
|
|
|
2
2
|
export { SCHEMA_VERSION, openHomeDb, closeHomeDb, addItem, getItemById, listLocationsByItem, listTagsByItem, searchItems, updateItem, adjustQuantity, setLocationStatus, moveLocation, setItemTags, listAllTags, mergeTags, listCategories, getCategoryById, encryptPassword, decryptPassword, assertMasterKey, } from './db.js';
|
|
3
3
|
export type { HomeItem, HomeLocation, HomeDb, SearchFilter } from './db.js';
|
|
4
4
|
export { resolveDbDir, resolveDbPath, dbFilename, DEFAULT_DB_FILENAME } from './paths.js';
|
|
5
|
+
export { resolveKeyFile, keyFileOf, resolvedHomePaths } from './paths.js';
|
|
6
|
+
export type { HomeResolvedPaths } from './paths.js';
|
|
7
|
+
export { loadMasterKey, retiredParamMessage, hasParamMasterKey } from './masterKey.js';
|
|
5
8
|
export { resolveBackupDir, createBackup, listBackups, restoreBackup, exportData } from './backup.js';
|
|
6
9
|
export { addInventoryRecord, listInventoryRecords, listLocationNodes, ensureLocationNode, listShopping, addShopping, checkShopping, missingItems, stockList, setThreshold, listPurchases, addPurchase, purchaseYearStats, listWarranties, addWarranty, addServiceEvent, listCerts, addCert, listAccounts, listMembers, addMember, listBorrows, addBorrow, statsOverview, highFreq, idleItems, expiringItems, } from './domains.js';
|
|
7
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fetch/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EACL,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAC7D,mBAAmB,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAC5E,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EACpE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,GACnF,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fetch/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EACL,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAC7D,mBAAmB,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAC5E,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EACpE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,GACnF,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC1E,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEvF,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrG,OAAO,EACL,kBAAkB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,kBAAkB,EAC/E,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAC/E,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,EAC3F,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAChF,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,GAClD,MAAM,cAAc,CAAC"}
|
package/dist/fetch/index.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export { HomeFetchError, HomePolicyError } from './errors.js';
|
|
2
2
|
export { SCHEMA_VERSION, openHomeDb, closeHomeDb, addItem, getItemById, listLocationsByItem, listTagsByItem, searchItems, updateItem, adjustQuantity, setLocationStatus, moveLocation, setItemTags, listAllTags, mergeTags, listCategories, getCategoryById, encryptPassword, decryptPassword, assertMasterKey, } from './db.js';
|
|
3
3
|
export { resolveDbDir, resolveDbPath, dbFilename, DEFAULT_DB_FILENAME } from './paths.js';
|
|
4
|
+
export { resolveKeyFile, keyFileOf, resolvedHomePaths } from './paths.js';
|
|
5
|
+
export { loadMasterKey, retiredParamMessage, hasParamMasterKey } from './masterKey.js';
|
|
4
6
|
// #707:备份导出/导入恢复(HELP SM8-3/SM8-4)的落点。
|
|
5
7
|
export { resolveBackupDir, createBackup, listBackups, restoreBackup, exportData } from './backup.js';
|
|
6
8
|
export { addInventoryRecord, listInventoryRecords, listLocationNodes, ensureLocationNode, listShopping, addShopping, checkShopping, missingItems, stockList, setThreshold, listPurchases, addPurchase, purchaseYearStats, listWarranties, addWarranty, addServiceEvent, listCerts, addCert, listAccounts, listMembers, addMember, listBorrows, addBorrow, statsOverview, highFreq, idleItems, expiringItems, } from './domains.js';
|
package/dist/fetch/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fetch/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EACL,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAC7D,mBAAmB,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAC5E,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EACpE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,GACnF,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC1F,uCAAuC;AACvC,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrG,OAAO,EACL,kBAAkB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,kBAAkB,EAC/E,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAC/E,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,EAC3F,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAChF,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,GAClD,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fetch/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EACL,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAC7D,mBAAmB,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAC5E,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EACpE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,GACnF,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACvF,uCAAuC;AACvC,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrG,OAAO,EACL,kBAAkB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,kBAAkB,EAC/E,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAC/E,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,EAC3F,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAChF,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,GAClD,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** 读主密钥文件,返回 trim 后的口令(BOM 一并去掉)。
|
|
2
|
+
*
|
|
3
|
+
* 文件不在 ⇒ 响亮失败,报文里给出该文件绝对路径 + 建法指引;
|
|
4
|
+
* 内容过短(<8 位,与 `assertMasterKey` 同门)⇒ 同样响亮失败。 */
|
|
5
|
+
export declare function loadMasterKey(keyFile?: string): string;
|
|
6
|
+
/** 退场报文:调用参数里给了 `master_key`/`masterKey` 时用它响亮失败(exit 2:用法错),
|
|
7
|
+
* 报文直接说"把它写进 <路径>"。口令不许再经调用参数传(会进对话记录与日志)。 */
|
|
8
|
+
export declare function retiredParamMessage(keyFile?: string): string;
|
|
9
|
+
/** 调用参数里有没有已退场的口令键(分派层判用法错用)。 */
|
|
10
|
+
export declare function hasParamMasterKey(params: Record<string, unknown>): boolean;
|
|
11
|
+
//# sourceMappingURL=masterKey.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"masterKey.d.ts","sourceRoot":"","sources":["../../src/fetch/masterKey.ts"],"names":[],"mappings":"AAgBA;;;gDAGgD;AAChD,wBAAgB,aAAa,CAAC,OAAO,SAAmB,GAAG,MAAM,CAkBhE;AAED;+CAC+C;AAC/C,wBAAgB,mBAAmB,CAAC,OAAO,SAAmB,GAAG,MAAM,CAEtE;AAED,iCAAiC;AACjC,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAE1E"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/** 主密钥改从文件读(#793 定稿,#794 落地)。
|
|
2
|
+
*
|
|
3
|
+
* 第一性原理(定稿出处 #793):口令经调用参数传会**进对话记录与日志**(仓内已有"密码脱敏"补丁,
|
|
4
|
+
* 说明这是已知风险);文件是唯一来源,口令只落磁盘一处。故调用参数 `master_key`/`masterKey` 退场,
|
|
5
|
+
* 账号类命令一律读 `key.file` 指的那个文件(内容 trim 后当主密钥)。
|
|
6
|
+
*
|
|
7
|
+
* 同一个口令 ⇒ 同一个 `scryptSync(口令,'home-salt',32)`(`fetch/db.ts` 的 `deriveKey`)⇒
|
|
8
|
+
* 老库那几条 accounts 照样解得开,无迁移。
|
|
9
|
+
*
|
|
10
|
+
* **不自动生成密钥文件**:密钥是人的口令,技能随机生成了用户就不知道,换机即不可恢复 ⇒
|
|
11
|
+
* 文件不在时报错 + 人话指引(与"库不存在自动建"不同:库是数据,密钥是凭据)。
|
|
12
|
+
*/
|
|
13
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
14
|
+
import { HomeFetchError } from './errors.js';
|
|
15
|
+
import { resolveKeyFile } from './paths.js';
|
|
16
|
+
/** 读主密钥文件,返回 trim 后的口令(BOM 一并去掉)。
|
|
17
|
+
*
|
|
18
|
+
* 文件不在 ⇒ 响亮失败,报文里给出该文件绝对路径 + 建法指引;
|
|
19
|
+
* 内容过短(<8 位,与 `assertMasterKey` 同门)⇒ 同样响亮失败。 */
|
|
20
|
+
export function loadMasterKey(keyFile = resolveKeyFile()) {
|
|
21
|
+
if (!existsSync(keyFile)) {
|
|
22
|
+
throw new HomeFetchError('HOME_MASTER_KEY_MISSING', '主密钥文件不在:' + keyFile + '。把口令写进这个文件(纯文本一行即可),再跑这条命令;换机恢复后要用账号密码,把它一起带过去。');
|
|
23
|
+
}
|
|
24
|
+
let text;
|
|
25
|
+
try {
|
|
26
|
+
text = readFileSync(keyFile, 'utf8');
|
|
27
|
+
}
|
|
28
|
+
catch (e) {
|
|
29
|
+
throw new HomeFetchError('HOME_MASTER_KEY_UNREADABLE', '主密钥文件读不出来:' + keyFile + '(' + (e instanceof Error ? e.message : String(e)) + ')', { cause: e });
|
|
30
|
+
}
|
|
31
|
+
const key = (text.charCodeAt(0) === 0xfeff ? text.slice(1) : text).trim();
|
|
32
|
+
if (key.length < 8) {
|
|
33
|
+
throw new HomeFetchError('HOME_ACCOUNT_BAD_KEY', '主密钥文件里的口令须 ≥8 位:' + keyFile + '(缺失阻断,不返空)');
|
|
34
|
+
}
|
|
35
|
+
return key;
|
|
36
|
+
}
|
|
37
|
+
/** 退场报文:调用参数里给了 `master_key`/`masterKey` 时用它响亮失败(exit 2:用法错),
|
|
38
|
+
* 报文直接说"把它写进 <路径>"。口令不许再经调用参数传(会进对话记录与日志)。 */
|
|
39
|
+
export function retiredParamMessage(keyFile = resolveKeyFile()) {
|
|
40
|
+
return '主密钥改从文件读:调用参数不再收口令。把它写进 ' + keyFile + '(纯文本一行即可),再跑这条命令。';
|
|
41
|
+
}
|
|
42
|
+
/** 调用参数里有没有已退场的口令键(分派层判用法错用)。 */
|
|
43
|
+
export function hasParamMasterKey(params) {
|
|
44
|
+
return params['master_key'] !== undefined || params['masterKey'] !== undefined;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=masterKey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"masterKey.js","sourceRoot":"","sources":["../../src/fetch/masterKey.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C;;;gDAGgD;AAChD,MAAM,UAAU,aAAa,CAAC,OAAO,GAAG,cAAc,EAAE;IACtD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,cAAc,CAAC,yBAAyB,EAChD,UAAU,GAAG,OAAO,GAAG,iDAAiD,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,cAAc,CAAC,4BAA4B,EACnD,YAAY,GAAG,OAAO,GAAG,GAAG,GAAG,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACrG,CAAC;IACD,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1E,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,cAAc,CAAC,sBAAsB,EAC7C,kBAAkB,GAAG,OAAO,GAAG,YAAY,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;+CAC+C;AAC/C,MAAM,UAAU,mBAAmB,CAAC,OAAO,GAAG,cAAc,EAAE;IAC5D,OAAO,0BAA0B,GAAG,OAAO,GAAG,mBAAmB,CAAC;AACpE,CAAC;AAED,iCAAiC;AACjC,MAAM,UAAU,iBAAiB,CAAC,MAA+B;IAC/D,OAAO,MAAM,CAAC,YAAY,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,WAAW,CAAC,KAAK,SAAS,CAAC;AACjF,CAAC"}
|
package/dist/fetch/paths.d.ts
CHANGED
|
@@ -1,8 +1,55 @@
|
|
|
1
1
|
/** 库文件名的默认值:=改造前的代码常量 `DB_FILENAME`(配置项 `db.name` 空串即用它)。 */
|
|
2
2
|
export declare const DEFAULT_DB_FILENAME = "home.db";
|
|
3
|
+
/** 备份目录名的默认值:=改造前的代码常量 `BACKUP_DIR_NAME`(配置项 `backup.dir` 空串即用它)。 */
|
|
4
|
+
export declare const DEFAULT_BACKUP_DIR_NAME = "backups";
|
|
5
|
+
/** 主密钥文件名的默认值:新键 `key.file` 空串即用它(#793 定稿)。 */
|
|
6
|
+
export declare const DEFAULT_MASTER_KEY_FILENAME = ".master.key";
|
|
3
7
|
/** 库文件名:配置 `db.name`,空串=默认(`home.db`)。 */
|
|
4
8
|
export declare function dbFilename(): string;
|
|
5
|
-
/**
|
|
9
|
+
/** 库目录算式:`db.dir` 非空即用它,空串=默认数据目录(默认 `~/.ilife/data/`)。
|
|
10
|
+
* 这是「面板上唯一可改的落点」,写盘时那一格写成算出来的绝对路径(见 `src/config.ts`)。 */
|
|
11
|
+
export declare function dbDirOf(dataDir: string, configured: string): string;
|
|
12
|
+
/** 库目录:配置 `db.dir` 的解析结果。 */
|
|
6
13
|
export declare function resolveDbDir(): string;
|
|
14
|
+
/** 库文件算式(目录 + 文件名)。 */
|
|
15
|
+
export declare function dbFileOf(dbDir: string, name: string): string;
|
|
16
|
+
/** 库文件完整路径(目录不存在即建,`mkdir -p` 语义)。 */
|
|
7
17
|
export declare function resolveDbPath(filename?: string, dir?: string): string;
|
|
18
|
+
/** 产物目录算式:`<库目录>/<html.dir 值>`(空串=默认子目录名)——设置页那一行与体检都调它。 */
|
|
19
|
+
export declare function htmlDirOf(dbDir: string, configured: string): string;
|
|
20
|
+
/** 产物目录:配置 `html.dir` 的解析结果(算式见 `htmlDirOf`)。只算路径,落盘归交付那条链。 */
|
|
21
|
+
export declare function resolveHtmlDir(dbDir?: string): string;
|
|
22
|
+
/** 主密钥文件算式:值绝对 ⇒ 用它;相对 ⇒ `<数据目录>/<值>`;空串 ⇒ `<数据目录>/.master.key`
|
|
23
|
+
* (#793 定稿:与 `backup.dir` 同一条「绝对优先」规则)。文件名与绝对路径两种取值都要能解。 */
|
|
24
|
+
export declare function keyFileOf(dataDir: string, configured: string): string;
|
|
25
|
+
/** 主密钥文件:配置 `key.file` 的解析结果(算式见 `keyFileOf`)。只算路径,不建文件、
|
|
26
|
+
* 不生成口令——密钥是人的口令,文件不在时报错+人话指引(见 `src/fetch/masterKey.ts`)。 */
|
|
27
|
+
export declare function resolveKeyFile(dataDir?: string): string;
|
|
28
|
+
/** 备份目录算式:值绝对 ⇒ 用它;相对 ⇒ `<库目录>/<值>`;空串 ⇒ `<库目录>/backups`
|
|
29
|
+
* (#793 定稿口径,与记账同名键统一——相对值不再按当刻工作目录解:技能是被宿主 spawn 的,
|
|
30
|
+
* 宿主不传 `cwd`,相对值于是跟着「宿主从哪儿启动」变)。
|
|
31
|
+
*
|
|
32
|
+
* 为什么相对值不再按**当刻工作目录**解:同一个相对值换个启动位置就是另一个目录,
|
|
33
|
+
* 而面板只读显示的是技能回执算出来的绝对路径,两边会走散。 */
|
|
34
|
+
export declare function backupDirOf(dbDir: string, configured: string): string;
|
|
35
|
+
/** 备份目录:配置 `backup.dir` 的解析结果(算式见 `backupDirOf`)。
|
|
36
|
+
* 「不自动建」是体检那条判据的口径——本函数只算路径,建目录归调用方。 */
|
|
37
|
+
export declare function resolveBackupDir(dbDir?: string): string;
|
|
38
|
+
/** 一组**解析后的绝对路径**(#794,照记账 #749 样板):设置页的只读行显示的就是这一组,
|
|
39
|
+
* 面板不自己拼路径(#677 冻结的边界)。六家的 `*.config.read` 回执都扩这样一组,
|
|
40
|
+
* 每家的格子按自家落点项来;居家这一组=面板那 4 行只读 + 生效数据目录。 */
|
|
41
|
+
export interface HomeResolvedPaths {
|
|
42
|
+
/** 生效数据目录(`db.dir` 非空用它,空=默认落点)——面板上唯一可改的那一项的生效值。 */
|
|
43
|
+
readonly dbDir: string;
|
|
44
|
+
/** 库文件绝对路径。 */
|
|
45
|
+
readonly dbFile: string;
|
|
46
|
+
/** HTML 产物目录绝对路径。 */
|
|
47
|
+
readonly htmlDir: string;
|
|
48
|
+
/** 备份目录绝对路径。 */
|
|
49
|
+
readonly backupDir: string;
|
|
50
|
+
/** 主密钥文件绝对路径。 */
|
|
51
|
+
readonly keyFile: string;
|
|
52
|
+
}
|
|
53
|
+
/** 算那一组解析后的绝对路径。**只算路径、不建目录、不写盘**(设置页与体检都能随时调)。 */
|
|
54
|
+
export declare function resolvedHomePaths(): HomeResolvedPaths;
|
|
8
55
|
//# sourceMappingURL=paths.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/fetch/paths.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/fetch/paths.ts"],"names":[],"mappings":"AAeA,6DAA6D;AAC7D,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAE7C,qEAAqE;AACrE,eAAO,MAAM,uBAAuB,YAAY,CAAC;AAEjD,+CAA+C;AAC/C,eAAO,MAAM,2BAA2B,gBAAgB,CAAC;AAEzD,0CAA0C;AAC1C,wBAAgB,UAAU,IAAI,MAAM,CAGnC;AAED;0DAC0D;AAC1D,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,6BAA6B;AAC7B,wBAAgB,YAAY,IAAI,MAAM,CAGrC;AAED,uBAAuB;AACvB,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,sCAAsC;AACtC,wBAAgB,aAAa,CAAC,QAAQ,SAAe,EAAE,GAAG,SAAiB,GAAG,MAAM,CAGnF;AAQD,4DAA4D;AAC5D,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAGnE;AAED,+DAA+D;AAC/D,wBAAgB,cAAc,CAAC,KAAK,SAAiB,GAAG,MAAM,CAE7D;AAED;6DAC6D;AAC7D,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAGrE;AAED;+DAC+D;AAC/D,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAGvD;AAED;;;;;kCAKkC;AAClC,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAGrE;AAED;yCACyC;AACzC,wBAAgB,gBAAgB,CAAC,KAAK,SAAiB,GAAG,MAAM,CAE/D;AAED;;6CAE6C;AAC7C,MAAM,WAAW,iBAAiB;IAChC,qDAAqD;IACrD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,eAAe;IACf,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qBAAqB;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,gBAAgB;IAChB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,iBAAiB;IACjB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,mDAAmD;AACnD,wBAAgB,iBAAiB,IAAI,iBAAiB,CAUrD"}
|
package/dist/fetch/paths.js
CHANGED
|
@@ -1,26 +1,100 @@
|
|
|
1
|
-
//
|
|
1
|
+
// 库、产物目录、主密钥文件与备份的**落点解析**:配置文件的唯一真相(#695;口径见「配置的存与生效口径裁定」#675)。
|
|
2
2
|
// 改造前这里读 `SKILLS_DB_PATH`(无默认值、缺失即抛),并按 `HOME_FORCE_PROD=1` 守「非 tmp 不许写库」;
|
|
3
3
|
// #695 按用户裁决把两个环境变量**一并删掉**:路径改从 `~/.ilife/home.yaml` 取,写库边界改由
|
|
4
|
-
//
|
|
4
|
+
// 家目录注入+生产守卫(`base-link-core` 的 `CONFIG_TEST_ISOLATION_MISSING`,要落到真实家目录即抛)承担——
|
|
5
5
|
// 把「忘了配」从静默写真实库变成响亮失败。
|
|
6
6
|
// 老家 home_manager/db.py Q6 fallback 链(D:/.db 等)TS 线仍有意不继承:拒绝隐式写生产。
|
|
7
|
+
//
|
|
8
|
+
// **#794 起本件是全部落点算式的唯一定义地**(设置页只读行显示的那一组绝对路径由这里算,
|
|
9
|
+
// `src/health.ts` 的体检报告与 `src/help/manifest.ts` 的产物目录名都调这里,各处不许走散;
|
|
10
|
+
// 照记账 #749 样板):算式一律是**纯函数**(只拼路径、不读配置、不碰盘),读配置只在下面几个
|
|
11
|
+
// `resolve*` 薄壳里发生。
|
|
7
12
|
import { mkdirSync } from 'node:fs';
|
|
8
|
-
import { join } from 'node:path';
|
|
9
|
-
import { loadHomeConfig } from '../config.js';
|
|
13
|
+
import { isAbsolute, join } from 'node:path';
|
|
14
|
+
import { HOME_CONFIG_DEFAULTS, loadHomeConfig } from '../config.js';
|
|
10
15
|
/** 库文件名的默认值:=改造前的代码常量 `DB_FILENAME`(配置项 `db.name` 空串即用它)。 */
|
|
11
16
|
export const DEFAULT_DB_FILENAME = 'home.db';
|
|
17
|
+
/** 备份目录名的默认值:=改造前的代码常量 `BACKUP_DIR_NAME`(配置项 `backup.dir` 空串即用它)。 */
|
|
18
|
+
export const DEFAULT_BACKUP_DIR_NAME = 'backups';
|
|
19
|
+
/** 主密钥文件名的默认值:新键 `key.file` 空串即用它(#793 定稿)。 */
|
|
20
|
+
export const DEFAULT_MASTER_KEY_FILENAME = '.master.key';
|
|
12
21
|
/** 库文件名:配置 `db.name`,空串=默认(`home.db`)。 */
|
|
13
22
|
export function dbFilename() {
|
|
14
23
|
const name = loadHomeConfig().values.db.name;
|
|
15
24
|
return name === '' ? DEFAULT_DB_FILENAME : name;
|
|
16
25
|
}
|
|
17
|
-
/**
|
|
26
|
+
/** 库目录算式:`db.dir` 非空即用它,空串=默认数据目录(默认 `~/.ilife/data/`)。
|
|
27
|
+
* 这是「面板上唯一可改的落点」,写盘时那一格写成算出来的绝对路径(见 `src/config.ts`)。 */
|
|
28
|
+
export function dbDirOf(dataDir, configured) {
|
|
29
|
+
return configured !== '' ? configured : dataDir;
|
|
30
|
+
}
|
|
31
|
+
/** 库目录:配置 `db.dir` 的解析结果。 */
|
|
18
32
|
export function resolveDbDir() {
|
|
19
|
-
const
|
|
20
|
-
return
|
|
33
|
+
const cfg = loadHomeConfig();
|
|
34
|
+
return dbDirOf(cfg.dataDir, cfg.values.db.dir);
|
|
35
|
+
}
|
|
36
|
+
/** 库文件算式(目录 + 文件名)。 */
|
|
37
|
+
export function dbFileOf(dbDir, name) {
|
|
38
|
+
return join(dbDir, name !== '' ? name : DEFAULT_DB_FILENAME);
|
|
21
39
|
}
|
|
40
|
+
/** 库文件完整路径(目录不存在即建,`mkdir -p` 语义)。 */
|
|
22
41
|
export function resolveDbPath(filename = dbFilename(), dir = resolveDbDir()) {
|
|
23
42
|
mkdirSync(dir, { recursive: true });
|
|
24
|
-
return
|
|
43
|
+
return dbFileOf(dir, filename);
|
|
44
|
+
}
|
|
45
|
+
/** 目录名配置值 → 目录段:值里带分隔符时按段拼(`a/b` 是两层子目录,不是两处落点);
|
|
46
|
+
* 空段丢弃——Windows 用户手写路径时两种分隔符都会用。 */
|
|
47
|
+
function dirSegments(value) {
|
|
48
|
+
return value.split(/[\\/]+/).filter((seg) => seg !== '' && seg !== '.');
|
|
49
|
+
}
|
|
50
|
+
/** 产物目录算式:`<库目录>/<html.dir 值>`(空串=默认子目录名)——设置页那一行与体检都调它。 */
|
|
51
|
+
export function htmlDirOf(dbDir, configured) {
|
|
52
|
+
const name = configured !== '' ? configured : HOME_CONFIG_DEFAULTS.html.dir;
|
|
53
|
+
return join(dbDir, ...dirSegments(name));
|
|
54
|
+
}
|
|
55
|
+
/** 产物目录:配置 `html.dir` 的解析结果(算式见 `htmlDirOf`)。只算路径,落盘归交付那条链。 */
|
|
56
|
+
export function resolveHtmlDir(dbDir = resolveDbDir()) {
|
|
57
|
+
return htmlDirOf(dbDir, loadHomeConfig().values.html.dir);
|
|
58
|
+
}
|
|
59
|
+
/** 主密钥文件算式:值绝对 ⇒ 用它;相对 ⇒ `<数据目录>/<值>`;空串 ⇒ `<数据目录>/.master.key`
|
|
60
|
+
* (#793 定稿:与 `backup.dir` 同一条「绝对优先」规则)。文件名与绝对路径两种取值都要能解。 */
|
|
61
|
+
export function keyFileOf(dataDir, configured) {
|
|
62
|
+
if (configured === '')
|
|
63
|
+
return join(dataDir, DEFAULT_MASTER_KEY_FILENAME);
|
|
64
|
+
return isAbsolute(configured) ? configured : join(dataDir, configured);
|
|
65
|
+
}
|
|
66
|
+
/** 主密钥文件:配置 `key.file` 的解析结果(算式见 `keyFileOf`)。只算路径,不建文件、
|
|
67
|
+
* 不生成口令——密钥是人的口令,文件不在时报错+人话指引(见 `src/fetch/masterKey.ts`)。 */
|
|
68
|
+
export function resolveKeyFile(dataDir) {
|
|
69
|
+
const cfg = loadHomeConfig();
|
|
70
|
+
return keyFileOf(dataDir ?? cfg.dataDir, cfg.values.key.file);
|
|
71
|
+
}
|
|
72
|
+
/** 备份目录算式:值绝对 ⇒ 用它;相对 ⇒ `<库目录>/<值>`;空串 ⇒ `<库目录>/backups`
|
|
73
|
+
* (#793 定稿口径,与记账同名键统一——相对值不再按当刻工作目录解:技能是被宿主 spawn 的,
|
|
74
|
+
* 宿主不传 `cwd`,相对值于是跟着「宿主从哪儿启动」变)。
|
|
75
|
+
*
|
|
76
|
+
* 为什么相对值不再按**当刻工作目录**解:同一个相对值换个启动位置就是另一个目录,
|
|
77
|
+
* 而面板只读显示的是技能回执算出来的绝对路径,两边会走散。 */
|
|
78
|
+
export function backupDirOf(dbDir, configured) {
|
|
79
|
+
if (configured === '')
|
|
80
|
+
return join(dbDir, DEFAULT_BACKUP_DIR_NAME);
|
|
81
|
+
return isAbsolute(configured) ? configured : join(dbDir, configured);
|
|
82
|
+
}
|
|
83
|
+
/** 备份目录:配置 `backup.dir` 的解析结果(算式见 `backupDirOf`)。
|
|
84
|
+
* 「不自动建」是体检那条判据的口径——本函数只算路径,建目录归调用方。 */
|
|
85
|
+
export function resolveBackupDir(dbDir = resolveDbDir()) {
|
|
86
|
+
return backupDirOf(dbDir, loadHomeConfig().values.backup.dir);
|
|
87
|
+
}
|
|
88
|
+
/** 算那一组解析后的绝对路径。**只算路径、不建目录、不写盘**(设置页与体检都能随时调)。 */
|
|
89
|
+
export function resolvedHomePaths() {
|
|
90
|
+
const cfg = loadHomeConfig();
|
|
91
|
+
const dbDir = dbDirOf(cfg.dataDir, cfg.values.db.dir);
|
|
92
|
+
return {
|
|
93
|
+
dbDir,
|
|
94
|
+
dbFile: dbFileOf(dbDir, cfg.values.db.name),
|
|
95
|
+
htmlDir: htmlDirOf(dbDir, cfg.values.html.dir),
|
|
96
|
+
backupDir: backupDirOf(dbDir, cfg.values.backup.dir),
|
|
97
|
+
keyFile: keyFileOf(cfg.dataDir, cfg.values.key.file),
|
|
98
|
+
};
|
|
25
99
|
}
|
|
26
100
|
//# sourceMappingURL=paths.js.map
|
package/dist/fetch/paths.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/fetch/paths.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/fetch/paths.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,2EAA2E;AAC3E,+DAA+D;AAC/D,gFAAgF;AAChF,uBAAuB;AACvB,mEAAmE;AACnE,EAAE;AACF,kDAAkD;AAClD,mEAAmE;AACnE,qDAAqD;AACrD,oBAAoB;AACpB,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEpE,6DAA6D;AAC7D,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAS,CAAC;AAE7C,qEAAqE;AACrE,MAAM,CAAC,MAAM,uBAAuB,GAAG,SAAS,CAAC;AAEjD,+CAA+C;AAC/C,MAAM,CAAC,MAAM,2BAA2B,GAAG,aAAa,CAAC;AAEzD,0CAA0C;AAC1C,MAAM,UAAU,UAAU;IACxB,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC;IAC7C,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;AAClD,CAAC;AAED;0DAC0D;AAC1D,MAAM,UAAU,OAAO,CAAC,OAAe,EAAE,UAAkB;IACzD,OAAO,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;AAClD,CAAC;AAED,6BAA6B;AAC7B,MAAM,UAAU,YAAY;IAC1B,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACjD,CAAC;AAED,uBAAuB;AACvB,MAAM,UAAU,QAAQ,CAAC,KAAa,EAAE,IAAY;IAClD,OAAO,IAAI,CAAC,KAAK,EAAE,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;AAC/D,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,aAAa,CAAC,QAAQ,GAAG,UAAU,EAAE,EAAE,GAAG,GAAG,YAAY,EAAE;IACzE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,OAAO,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED;qCACqC;AACrC,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;AAC1E,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,SAAS,CAAC,KAAa,EAAE,UAAkB;IACzD,MAAM,IAAI,GAAG,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC;IAC5E,OAAO,IAAI,CAAC,KAAK,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,cAAc,CAAC,KAAK,GAAG,YAAY,EAAE;IACnD,OAAO,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5D,CAAC;AAED;6DAC6D;AAC7D,MAAM,UAAU,SAAS,CAAC,OAAe,EAAE,UAAkB;IAC3D,IAAI,UAAU,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC;IACzE,OAAO,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACzE,CAAC;AAED;+DAC+D;AAC/D,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,OAAO,SAAS,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAChE,CAAC;AAED;;;;;kCAKkC;AAClC,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,UAAkB;IAC3D,IAAI,UAAU,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;IACnE,OAAO,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AACvE,CAAC;AAED;yCACyC;AACzC,MAAM,UAAU,gBAAgB,CAAC,KAAK,GAAG,YAAY,EAAE;IACrD,OAAO,WAAW,CAAC,KAAK,EAAE,cAAc,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAChE,CAAC;AAkBD,mDAAmD;AACnD,MAAM,UAAU,iBAAiB;IAC/B,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACtD,OAAO;QACL,KAAK;QACL,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC;QAC3C,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QAC9C,SAAS,EAAE,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;QACpD,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;KACrD,CAAC;AACJ,CAAC"}
|
package/dist/health.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"AA6BA,0BAA0B;AAC1B,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEtD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;CACvC;AAED,uEAAuE;AACvE,eAAO,MAAM,kBAAkB,EAAG,EAAW,CAAC;AAiB9C,oDAAoD;AACpD,MAAM,MAAM,UAAU,GAClB;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAAE,GACxH;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,IAAI,UAAU,CAYnD;AA+QD,sDAAsD;AACtD,wBAAgB,qBAAqB,IAAI,gBAAgB,CA4LxD"}
|
package/dist/health.js
CHANGED
|
@@ -25,11 +25,12 @@ import { fileURLToPath } from 'node:url';
|
|
|
25
25
|
import { DatabaseSync } from 'node:sqlite';
|
|
26
26
|
import { configPaths } from 'base-link-core';
|
|
27
27
|
import { HOME_CONFIG_DEFAULTS, HOME_CONFIG_STEM } from './config.js';
|
|
28
|
+
import { dbDirOf, dbFileOf, htmlDirOf, keyFileOf, DEFAULT_MASTER_KEY_FILENAME } from './fetch/paths.js';
|
|
28
29
|
/** 库表数门槛:`src/fetch/db.ts` 的建表语句里那 16 张表齐了才算正常(少了报黄:还能用,但缺功能的表要重建)。 */
|
|
29
30
|
export const DB_TABLE_THRESHOLD = 16;
|
|
30
31
|
const SKILL = 'home';
|
|
31
|
-
/**
|
|
32
|
-
const MASTER_KEY_NAME =
|
|
32
|
+
/** 老四级定位的那个文件名(#794 起只是只读提示里的名字,判据以配置 `key.file` 为准)。 */
|
|
33
|
+
const MASTER_KEY_NAME = DEFAULT_MASTER_KEY_FILENAME;
|
|
33
34
|
/** 包根:`dist/health.js` 上一级。 */
|
|
34
35
|
function packageRoot() {
|
|
35
36
|
return join(dirname(fileURLToPath(import.meta.url)), '..');
|
|
@@ -239,16 +240,10 @@ function textOf(value) {
|
|
|
239
240
|
function sourceOf(present, key) {
|
|
240
241
|
return present.has(key) ? '配置文件' : '默认值';
|
|
241
242
|
}
|
|
242
|
-
/**
|
|
243
|
-
*
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
}
|
|
247
|
-
/** 主密钥文件按老 `accounts.py:32-56` 那四级定位的**第一处存在**位置(照源码算,不猜):
|
|
248
|
-
* ① 数据目录(老技能里是 `SKILLS_DB_PATH` 那一档)→ ② 包根 → ③ 包根任一父目录下的 `.db/` → ④ 包根下的 `.db/`。
|
|
249
|
-
* 老实现在第 ① 档是「无论是否存在都用它」,新仓的数据目录恒有默认值,故这里仍按「四级里第一处真在的」
|
|
250
|
-
* 报;一处都没有时报第 ① 档那个落点(用它说明「该放哪」)。 */
|
|
251
|
-
function masterKeyCandidates(dataDir) {
|
|
243
|
+
/** 老 `accounts.py:32-56` 那四级定位的落点(#794 起只是**只读提示**,判据以配置 `key.file` 为准):
|
|
244
|
+
* ① 数据目录 → ② 包根 → ③ 包根任一父目录下的 `.db/` → ④ 包根下的 `.db/`。
|
|
245
|
+
* 配置那处不在、而这四处某处真在时,⑧ 那条按下复制指引报。 */
|
|
246
|
+
function legacyKeyCandidates(dataDir) {
|
|
252
247
|
const root = packageRoot();
|
|
253
248
|
const parents = [];
|
|
254
249
|
let now = dirname(root);
|
|
@@ -342,10 +337,10 @@ export function buildHomeHealthReport() {
|
|
|
342
337
|
const read = readHomeConfigReadOnly();
|
|
343
338
|
const values = read.kind === 'ok' ? read.values : projectOnDefaults({});
|
|
344
339
|
const present = read.kind === 'ok' ? read.present : new Set();
|
|
345
|
-
// ①
|
|
340
|
+
// ① 配置文件本身:能不能解析;它落在默认位置还是别处(只陈述,不评价)。
|
|
346
341
|
const defaultConfigFile = join(homedir(), '.ilife', HOME_CONFIG_STEM + '.yaml');
|
|
347
342
|
const relocated = paths.configFile !== defaultConfigFile;
|
|
348
|
-
const where = relocated ? '
|
|
343
|
+
const where = relocated ? '位置与默认不同(见配置文件落点)' : '默认位置';
|
|
349
344
|
if (read.kind === 'bad') {
|
|
350
345
|
items.push({
|
|
351
346
|
id: 'config.file', title: '配置文件', status: 'red',
|
|
@@ -370,9 +365,9 @@ export function buildHomeHealthReport() {
|
|
|
370
365
|
source: '配置文件',
|
|
371
366
|
});
|
|
372
367
|
}
|
|
373
|
-
// ②
|
|
368
|
+
// ② 数据目录:在不在、能不能写(算式与回执同源:`src/fetch/paths.ts` 的 `dbDirOf`)。
|
|
374
369
|
const dbDirConfigured = textOf(readValue(values, 'db', 'dir'));
|
|
375
|
-
const dataDir =
|
|
370
|
+
const dataDir = dbDirOf(paths.dataDir, dbDirConfigured);
|
|
376
371
|
const dataDirSource = sourceOf(present, 'db.dir');
|
|
377
372
|
const dataDirVerdict = dirVerdict(dataDir);
|
|
378
373
|
items.push({
|
|
@@ -388,16 +383,15 @@ export function buildHomeHealthReport() {
|
|
|
388
383
|
: dataDirVerdict.writable ? '' : '去掉这个目录的只读属性,或把「数据目录」改到别处。',
|
|
389
384
|
source: dataDirSource,
|
|
390
385
|
});
|
|
391
|
-
// ③ 库文件:在不在 +
|
|
386
|
+
// ③ 库文件:在不在 + 表数够不够(算式与回执同源:`src/fetch/paths.ts` 的 `dbFileOf`)。
|
|
392
387
|
const dbNameConfigured = textOf(readValue(values, 'db', 'name'));
|
|
393
|
-
const
|
|
394
|
-
const dbFile = join(dataDir, dbName);
|
|
388
|
+
const dbFile = dbFileOf(dataDir, dbNameConfigured);
|
|
395
389
|
const dbSource = sourceOf(present, 'db.name');
|
|
396
390
|
if (!existsSync(dbFile)) {
|
|
397
391
|
items.push({
|
|
398
392
|
id: 'db.file', title: '库文件', status: 'red',
|
|
399
393
|
message: '不在:' + p(dbFile) + '。',
|
|
400
|
-
action: '
|
|
394
|
+
action: '新装的话,跑一条会写库的命令即会建库;要换库文件名,编辑配置文件里的 db.name。',
|
|
401
395
|
source: dbSource,
|
|
402
396
|
});
|
|
403
397
|
}
|
|
@@ -428,9 +422,10 @@ export function buildHomeHealthReport() {
|
|
|
428
422
|
});
|
|
429
423
|
}
|
|
430
424
|
}
|
|
431
|
-
// ④
|
|
425
|
+
// ④ 产物目录:在不在、能不能写(还没建=绿:交付页面时才落这里,那时自动建;
|
|
426
|
+
// 算式与回执同源:`src/fetch/paths.ts` 的 `htmlDirOf`)。
|
|
432
427
|
const htmlDirValue = textOf(readValue(values, 'html', 'dir'));
|
|
433
|
-
const htmlDir =
|
|
428
|
+
const htmlDir = htmlDirOf(dataDir, htmlDirValue);
|
|
434
429
|
const htmlVerdict = dirVerdict(htmlDir);
|
|
435
430
|
const htmlSource = sourceOf(present, 'html.dir');
|
|
436
431
|
items.push({
|
|
@@ -441,7 +436,7 @@ export function buildHomeHealthReport() {
|
|
|
441
436
|
: htmlVerdict.writable
|
|
442
437
|
? '在且能写:' + p(htmlDir) + '。'
|
|
443
438
|
: '在,但写不进去:' + p(htmlDir) + '(交付会转成内联回执,不再落盘)。',
|
|
444
|
-
action: !htmlVerdict.exists || htmlVerdict.writable ? '' : '
|
|
439
|
+
action: !htmlVerdict.exists || htmlVerdict.writable ? '' : '去掉这个目录的只读属性;要换目录,编辑配置文件里的 html.dir。',
|
|
445
440
|
source: htmlSource,
|
|
446
441
|
});
|
|
447
442
|
// ⑤ 这个值从哪来:只陈述数据目录与库文件名的来源,不判好坏(六家通用最后一条)。
|
|
@@ -459,7 +454,7 @@ export function buildHomeHealthReport() {
|
|
|
459
454
|
message: sameRoot
|
|
460
455
|
? '两处同一处:产物根 ' + p(htmlDir) + ',库根 ' + p(dataDir) + '。'
|
|
461
456
|
: '产物根 ' + p(htmlDir) + ',库根 ' + p(dataDir) + '(产物与库分离,不是故障)。',
|
|
462
|
-
action: sameRoot ? '' : '
|
|
457
|
+
action: sameRoot ? '' : '这是默认布局:页面产物落在库旁边的产物目录里,库文件仍在库根。想把产物也放库根,编辑配置文件,把 html.dir 留空或写 `.`。',
|
|
463
458
|
source: htmlSource,
|
|
464
459
|
});
|
|
465
460
|
// ⑦ 种子分类(居家特有):查的是**新仓这份口径的入口件**=`src/policy/category.ts`
|
|
@@ -478,18 +473,35 @@ export function buildHomeHealthReport() {
|
|
|
478
473
|
: '不在:' + p(seedSource) + '(新仓的种子分类口径;包内源码件,缺了多半是包装坏了)。',
|
|
479
474
|
action: seedExists ? '' : '重装这个技能包即会补齐;缺了它建分类时没有顶级分类口径。',
|
|
480
475
|
});
|
|
481
|
-
// ⑧
|
|
482
|
-
|
|
483
|
-
const
|
|
476
|
+
// ⑧ 主密钥文件(居家特有):判据=配置 `key.file` 那一处(在/不在);老四级定位只读提示——
|
|
477
|
+
// 配置那处不在、而老四处某处真在,就报"把它复制到 <配置那处>,或把 `key.file` 指过去"。
|
|
478
|
+
const keyConfigured = textOf(readValue(values, 'key', 'file'));
|
|
479
|
+
const keyFile = keyFileOf(paths.dataDir, keyConfigured);
|
|
480
|
+
const keySource = sourceOf(present, 'key.file');
|
|
484
481
|
const keyExists = existsSync(keyFile);
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
: '
|
|
491
|
-
|
|
492
|
-
|
|
482
|
+
if (keyExists) {
|
|
483
|
+
items.push({
|
|
484
|
+
id: 'key.file', title: '主密钥文件',
|
|
485
|
+
status: 'green',
|
|
486
|
+
message: '在:' + p(keyFile) + '。',
|
|
487
|
+
action: '',
|
|
488
|
+
source: keySource,
|
|
489
|
+
});
|
|
490
|
+
}
|
|
491
|
+
else {
|
|
492
|
+
const legacyHit = legacyKeyCandidates(paths.dataDir).find((c) => c !== keyFile && existsSync(c));
|
|
493
|
+
items.push({
|
|
494
|
+
id: 'key.file', title: '主密钥文件',
|
|
495
|
+
status: 'yellow',
|
|
496
|
+
message: legacyHit !== undefined
|
|
497
|
+
? '配置那处不在:在 ' + p(legacyHit) + ' 发现 ' + MASTER_KEY_NAME + '(老位置),配置要的是 ' + p(keyFile) + '。'
|
|
498
|
+
: '不在:' + p(keyFile) + '(只在用「存账号/看密码」时才是故障)。',
|
|
499
|
+
action: legacyHit !== undefined
|
|
500
|
+
? '把它复制到 ' + p(keyFile) + ',或编辑配置文件把 key.file 指到它现在的位置。'
|
|
501
|
+
: '要用「存账号/看密码」就先把这个文件建出来(纯文本一行写口令);换机恢复后要用账号密码,把它一起带过去。',
|
|
502
|
+
source: keySource,
|
|
503
|
+
});
|
|
504
|
+
}
|
|
493
505
|
// ⑨ 包内模板目录(居家特有):业务页模板是包内固定件,缺了页面就渲染不出来 ⇒ 红。报文给件数。
|
|
494
506
|
const templatesDir = join(packageRoot(), 'templates');
|
|
495
507
|
const templatesOk = existsSync(templatesDir);
|