asaihost-nodejs 0.0.1 → 0.0.2
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 +76 -25
- package/dist/InterventionLog-CRP6YJVM.cjs +30 -0
- package/dist/{InterventionLog-25EHE4QR.cjs.map → InterventionLog-CRP6YJVM.cjs.map} +1 -1
- package/dist/{InterventionLog-R6CCPU2B.es.js → InterventionLog-PZT2CCN3.es.js} +5 -5
- package/dist/LogStore-7MTUQA4G.cjs +54 -0
- package/dist/{LogStore-M2AUBNGO.cjs.map → LogStore-7MTUQA4G.cjs.map} +1 -1
- package/dist/{LogStore-ECXX34WC.es.js → LogStore-Q35YFNAY.es.js} +3 -3
- package/dist/asaihost-nodejs.cjs +1296 -1410
- package/dist/asaihost-nodejs.cjs.map +1 -1
- package/dist/asaihost-nodejs.d.cts +154 -17
- package/dist/asaihost-nodejs.d.ts +154 -17
- package/dist/asaihost-nodejs.es.js +911 -1025
- package/dist/asaihost-nodejs.es.js.map +1 -1
- package/dist/{chunk-HHPGUJ75.cjs → chunk-2BCIIKRG.cjs} +13 -6
- package/dist/chunk-2BCIIKRG.cjs.map +1 -0
- package/dist/{chunk-G4WVDUBH.cjs → chunk-4E7Z5K5U.cjs} +7 -7
- package/dist/{chunk-G4WVDUBH.cjs.map → chunk-4E7Z5K5U.cjs.map} +1 -1
- package/dist/{chunk-DROOHKB3.es.js → chunk-57UQJKSL.es.js} +2 -2
- package/dist/{chunk-EOGZPRML.es.js → chunk-A5CDJGJI.es.js} +224 -39
- package/dist/chunk-A5CDJGJI.es.js.map +1 -0
- package/dist/{chunk-E7V3EBDB.es.js → chunk-A6VJPLDD.es.js} +5 -3
- package/dist/chunk-A6VJPLDD.es.js.map +1 -0
- package/dist/{chunk-X7VHW2TD.cjs → chunk-H3K33HBA.cjs} +249 -64
- package/dist/chunk-H3K33HBA.cjs.map +1 -0
- package/dist/{chunk-KOFCBB3N.cjs → chunk-K2QPSQEV.cjs} +9 -9
- package/dist/{chunk-KOFCBB3N.cjs.map → chunk-K2QPSQEV.cjs.map} +1 -1
- package/dist/{chunk-LOMSUPPU.es.js → chunk-LTEP4XB2.es.js} +6 -6
- package/dist/{chunk-QWVR2HNT.cjs → chunk-LXJMGLKW.cjs} +21 -19
- package/dist/chunk-LXJMGLKW.cjs.map +1 -0
- package/dist/{chunk-4WJDC4M4.es.js → chunk-NLZNIGNF.es.js} +2 -2
- package/dist/chunk-NLZNIGNF.es.js.map +1 -0
- package/dist/{chunk-W7DVKGX5.cjs → chunk-OCEBEEP5.cjs} +2 -2
- package/dist/{chunk-W7DVKGX5.cjs.map → chunk-OCEBEEP5.cjs.map} +1 -1
- package/dist/{chunk-NLBFIRDB.cjs → chunk-RIRKIYET.cjs} +12 -12
- package/dist/{chunk-NLBFIRDB.cjs.map → chunk-RIRKIYET.cjs.map} +1 -1
- package/dist/{chunk-XBIN4C2V.es.js → chunk-SB23ESX2.es.js} +2 -2
- package/dist/{chunk-VLMM735Q.cjs → chunk-TKJAHTPO.cjs} +26 -26
- package/dist/{chunk-VLMM735Q.cjs.map → chunk-TKJAHTPO.cjs.map} +1 -1
- package/dist/{chunk-MCMADJQR.es.js → chunk-VUZO7DCA.es.js} +4 -4
- package/dist/chunk-VUZO7DCA.es.js.map +1 -0
- package/dist/{chunk-KUZQ36IJ.es.js → chunk-ZQBHJRAO.es.js} +10 -3
- package/dist/chunk-ZQBHJRAO.es.js.map +1 -0
- package/dist/intervention-hooks-KF3SNB5Q.cjs +21 -0
- package/dist/{intervention-hooks-LE6X4C6N.cjs.map → intervention-hooks-KF3SNB5Q.cjs.map} +1 -1
- package/dist/{intervention-hooks-FI4EHOL5.es.js → intervention-hooks-TCGIC4IV.es.js} +6 -6
- package/dist/log-formats-TUXGMCCU.cjs +31 -0
- package/dist/{log-formats-FKFMQKNO.cjs.map → log-formats-TUXGMCCU.cjs.map} +1 -1
- package/dist/{log-formats-I5E32H5F.es.js → log-formats-WW3TDUAK.es.js} +2 -2
- package/dist/{password-63OY27RX.es.js → password-4BABWAG4.es.js} +4 -4
- package/dist/password-PJHJRGPE.cjs +20 -0
- package/dist/{password-NZ5EGDWG.cjs.map → password-PJHJRGPE.cjs.map} +1 -1
- package/dist/user-store-6J2PSEIN.cjs +12 -0
- package/dist/{user-store-SX4N6PQ4.cjs.map → user-store-6J2PSEIN.cjs.map} +1 -1
- package/dist/user-store-UC5URX3C.es.js +12 -0
- package/package.json +2 -13
- package/dist/InterventionLog-25EHE4QR.cjs +0 -30
- package/dist/LogStore-M2AUBNGO.cjs +0 -54
- package/dist/chunk-4WJDC4M4.es.js.map +0 -1
- package/dist/chunk-E7V3EBDB.es.js.map +0 -1
- package/dist/chunk-EOGZPRML.es.js.map +0 -1
- package/dist/chunk-HHPGUJ75.cjs.map +0 -1
- package/dist/chunk-KUZQ36IJ.es.js.map +0 -1
- package/dist/chunk-MCMADJQR.es.js.map +0 -1
- package/dist/chunk-QWVR2HNT.cjs.map +0 -1
- package/dist/chunk-X7VHW2TD.cjs.map +0 -1
- package/dist/intervention-hooks-LE6X4C6N.cjs +0 -21
- package/dist/log-formats-FKFMQKNO.cjs +0 -31
- package/dist/password-NZ5EGDWG.cjs +0 -20
- package/dist/user-store-J7LWEXSW.es.js +0 -12
- package/dist/user-store-SX4N6PQ4.cjs +0 -12
- /package/dist/{InterventionLog-R6CCPU2B.es.js.map → InterventionLog-PZT2CCN3.es.js.map} +0 -0
- /package/dist/{LogStore-ECXX34WC.es.js.map → LogStore-Q35YFNAY.es.js.map} +0 -0
- /package/dist/{chunk-DROOHKB3.es.js.map → chunk-57UQJKSL.es.js.map} +0 -0
- /package/dist/{chunk-LOMSUPPU.es.js.map → chunk-LTEP4XB2.es.js.map} +0 -0
- /package/dist/{chunk-XBIN4C2V.es.js.map → chunk-SB23ESX2.es.js.map} +0 -0
- /package/dist/{intervention-hooks-FI4EHOL5.es.js.map → intervention-hooks-TCGIC4IV.es.js.map} +0 -0
- /package/dist/{log-formats-I5E32H5F.es.js.map → log-formats-WW3TDUAK.es.js.map} +0 -0
- /package/dist/{password-63OY27RX.es.js.map → password-4BABWAG4.es.js.map} +0 -0
- /package/dist/{user-store-J7LWEXSW.es.js.map → user-store-UC5URX3C.es.js.map} +0 -0
|
@@ -29,6 +29,9 @@ function resolveStoreConfig($asai, domain) {
|
|
|
29
29
|
const u = host.userStore;
|
|
30
30
|
return { type: u.type || "file", opt: u.opt || {} };
|
|
31
31
|
}
|
|
32
|
+
if (domain === "user") {
|
|
33
|
+
return { type: "file", opt: { dir: "webdata/webdb/users/", ext: ".json", create: 1 } };
|
|
34
|
+
}
|
|
32
35
|
if (domain === "log" && _optionalChain([host, 'access', _2 => _2.logger, 'optionalAccess', _3 => _3.store])) {
|
|
33
36
|
const s = host.logger.store;
|
|
34
37
|
return { type: s.type || "sqlite", opt: { database: s.database, create: s.create, dir: s.dir, ext: s.ext } };
|
|
@@ -82,15 +85,19 @@ function getDataServerBySpec($asai, spec) {
|
|
|
82
85
|
const cache = cacheMap($asai);
|
|
83
86
|
if (cache.has(key)) return cache.get(key);
|
|
84
87
|
const factory = $asai.dataserver;
|
|
85
|
-
|
|
88
|
+
if (typeof factory !== "function") {
|
|
89
|
+
throw new Error("[data-store] $asai.dataserver \u672A\u521D\u59CB\u5316\uFF0C\u8BF7\u5148\u8C03\u7528 sysserver($asai)");
|
|
90
|
+
}
|
|
91
|
+
const dbDrivers = _nullishCoalesce(_optionalChain([$asai, 'access', _4 => _4.$lib, 'optionalAccess', _5 => _5.db]), () => ( {}));
|
|
92
|
+
const instance = factory(full.type, full.opt, dbDrivers);
|
|
86
93
|
cache.set(key, instance);
|
|
87
94
|
return instance;
|
|
88
95
|
}
|
|
89
96
|
_chunkSMVZ3ZDJcjs.__name.call(void 0, getDataServerBySpec, "getDataServerBySpec");
|
|
90
97
|
function getDataServerForAsDb($asai, cfg) {
|
|
91
|
-
const type = _optionalChain([cfg, 'optionalAccess',
|
|
92
|
-
const opt = _optionalChain([cfg, 'optionalAccess',
|
|
93
|
-
const domain = _optionalChain([cfg, 'optionalAccess',
|
|
98
|
+
const type = _optionalChain([cfg, 'optionalAccess', _6 => _6.type]) || "sqlite";
|
|
99
|
+
const opt = _optionalChain([cfg, 'optionalAccess', _7 => _7.opt]) || {};
|
|
100
|
+
const domain = _optionalChain([cfg, 'optionalAccess', _8 => _8.storeKey]) || `asdb:${type}:${opt.database || opt.dir || "default"}`;
|
|
94
101
|
return getDataServerBySpec($asai, { domain, type, opt });
|
|
95
102
|
}
|
|
96
103
|
_chunkSMVZ3ZDJcjs.__name.call(void 0, getDataServerForAsDb, "getDataServerForAsDb");
|
|
@@ -143,7 +150,7 @@ async function writeJsonBlob(db, filename, data) {
|
|
|
143
150
|
type: "update",
|
|
144
151
|
table: "",
|
|
145
152
|
where: [["name", "=", filename]],
|
|
146
|
-
set: [["
|
|
153
|
+
set: [["content", content]]
|
|
147
154
|
});
|
|
148
155
|
}
|
|
149
156
|
_chunkSMVZ3ZDJcjs.__name.call(void 0, writeJsonBlob, "writeJsonBlob");
|
|
@@ -159,4 +166,4 @@ _chunkSMVZ3ZDJcjs.__name.call(void 0, writeJsonBlob, "writeJsonBlob");
|
|
|
159
166
|
|
|
160
167
|
|
|
161
168
|
exports.resolveStoreConfig = resolveStoreConfig; exports.normalizeStoreOpt = normalizeStoreOpt; exports.getDataServer = getDataServer; exports.getDataServerForAsDb = getDataServerForAsDb; exports.qStr = qStr; exports.qNum = qNum; exports.asRows = asRows; exports.readJsonBlob = readJsonBlob; exports.writeJsonBlob = writeJsonBlob;
|
|
162
|
-
//# sourceMappingURL=chunk-
|
|
169
|
+
//# sourceMappingURL=chunk-2BCIIKRG.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["d:\\Web\\Git\\asaicms-v1\\webserver\\src\\plugs\\asaihost-nodejs\\dist\\chunk-2BCIIKRG.cjs"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACA;AACA,IAAI,UAAU,EAAE,oBAAoB;AACpC,SAAS,QAAQ,CAAC,KAAK,EAAE;AACzB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,kBAAkB,IAAI,GAAG,CAAC,CAAC;AACrE,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC;AACzB;AACA,sCAAM,QAAS,EAAE,UAAU,CAAC;AAC5B,SAAS,YAAY,CAAC,IAAI,EAAE;AAC5B,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;AAC7B,EAAE,OAAO,GAAG,CAAC,KAAK;AAClB,EAAE,OAAO,CAAC,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"D:\\Web\\Git\\asaicms-v1\\webserver\\src\\plugs\\asaihost-nodejs\\dist\\chunk-2BCIIKRG.cjs","sourcesContent":[null]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkTKJAHTPOcjs = require('./chunk-TKJAHTPO.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _chunkOCEBEEP5cjs = require('./chunk-OCEBEEP5.cjs');
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
var _chunkO6LVLSNBcjs = require('./chunk-O6LVLSNB.cjs');
|
|
@@ -177,7 +177,7 @@ async function doLogIntervention($asai, event, ns) {
|
|
|
177
177
|
const header = [
|
|
178
178
|
"CEF:0",
|
|
179
179
|
escHeader(_optionalChain([$asai, 'optionalAccess', _8 => _8.hostconfig, 'optionalAccess', _9 => _9.website, 'optionalAccess', _10 => _10.title]) || "AsaiCMS"),
|
|
180
|
-
escHeader("
|
|
180
|
+
escHeader("AsaiHostNodejs"),
|
|
181
181
|
escHeader(_optionalChain([$asai, 'optionalAccess', _11 => _11.hostconfig, 'optionalAccess', _12 => _12.website, 'optionalAccess', _13 => _13.ver]) || "1.0.0.0"),
|
|
182
182
|
escHeader(sigId),
|
|
183
183
|
escHeader(event.name),
|
|
@@ -199,7 +199,7 @@ async function doLogIntervention($asai, event, ns) {
|
|
|
199
199
|
state.fileTip[fileName] = chainHash;
|
|
200
200
|
state.lastHash = chainHash;
|
|
201
201
|
await saveState($asai, ns, state);
|
|
202
|
-
void
|
|
202
|
+
void _chunkTKJAHTPOcjs.mirrorInterventionLog.call(void 0, $asai, {
|
|
203
203
|
ns,
|
|
204
204
|
fileName,
|
|
205
205
|
event,
|
|
@@ -416,7 +416,7 @@ async function deleteInterventionFile($asai, fileName, opt = {}, ns = "prod") {
|
|
|
416
416
|
throw err;
|
|
417
417
|
}
|
|
418
418
|
await _promises2.default.unlink(meta.filePath);
|
|
419
|
-
void
|
|
419
|
+
void _chunkTKJAHTPOcjs.purgeSqliteEntriesForFile.call(void 0, $asai, fileName, ns).catch(() => void 0);
|
|
420
420
|
const state = await loadState($asai, ns);
|
|
421
421
|
delete state.fileAnchors[fileName];
|
|
422
422
|
delete state.fileTip[fileName];
|
|
@@ -426,7 +426,7 @@ async function deleteInterventionFile($asai, fileName, opt = {}, ns = "prod") {
|
|
|
426
426
|
_chunkSMVZ3ZDJcjs.__name.call(void 0, deleteInterventionFile, "deleteInterventionFile");
|
|
427
427
|
function getInterventionTaxonomy($asai) {
|
|
428
428
|
return {
|
|
429
|
-
formats:
|
|
429
|
+
formats: _chunkOCEBEEP5cjs.getLogFormatTaxonomy.call(void 0, $asai).formats,
|
|
430
430
|
types: Object.keys(SIGNATURE_ID).map((type) => ({
|
|
431
431
|
type,
|
|
432
432
|
signatureId: SIGNATURE_ID[type],
|
|
@@ -460,4 +460,4 @@ _chunkSMVZ3ZDJcjs.__name.call(void 0, getInterventionTaxonomy, "getInterventionT
|
|
|
460
460
|
|
|
461
461
|
|
|
462
462
|
exports.sha256Hex = sha256Hex; exports.crc32 = crc32; exports.logIntervention = logIntervention; exports.getRetentionMeta = getRetentionMeta; exports.listInterventionFiles = listInterventionFiles; exports.parseCefLine = parseCefLine; exports.verifyChainForFile = verifyChainForFile; exports.readInterventionFile = readInterventionFile; exports.deleteInterventionFile = deleteInterventionFile; exports.getInterventionTaxonomy = getInterventionTaxonomy; exports.InterventionLog_exports = InterventionLog_exports;
|
|
463
|
-
//# sourceMappingURL=chunk-
|
|
463
|
+
//# sourceMappingURL=chunk-4E7Z5K5U.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["d:\\Web\\Git\\asaicms-v1\\webserver\\src\\plugs\\asaihost-nodejs\\dist\\chunk-
|
|
1
|
+
{"version":3,"sources":["d:\\Web\\Git\\asaicms-v1\\webserver\\src\\plugs\\asaihost-nodejs\\dist\\chunk-4E7Z5K5U.cjs"],"names":[],"mappings":"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AA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"D:\\Web\\Git\\asaicms-v1\\webserver\\src\\plugs\\asaihost-nodejs\\dist\\chunk-4E7Z5K5U.cjs","sourcesContent":[null]}
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
isPasswordInHistory,
|
|
5
5
|
parsePassHistory,
|
|
6
6
|
validatePasswordWithPolicy
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-A5CDJGJI.es.js";
|
|
8
8
|
import {
|
|
9
9
|
__name
|
|
10
10
|
} from "./chunk-6U2I5EON.es.js";
|
|
@@ -84,4 +84,4 @@ export {
|
|
|
84
84
|
nextPassHistory,
|
|
85
85
|
verifyHostPassword
|
|
86
86
|
};
|
|
87
|
-
//# sourceMappingURL=chunk-
|
|
87
|
+
//# sourceMappingURL=chunk-57UQJKSL.es.js.map
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
asRows,
|
|
3
3
|
getDataServer,
|
|
4
|
+
normalizeStoreOpt,
|
|
4
5
|
qNum,
|
|
5
6
|
qStr,
|
|
6
7
|
readJsonBlob,
|
|
7
8
|
resolveStoreConfig,
|
|
8
9
|
writeJsonBlob
|
|
9
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-ZQBHJRAO.es.js";
|
|
10
11
|
import {
|
|
11
12
|
__name
|
|
12
13
|
} from "./chunk-6U2I5EON.es.js";
|
|
@@ -34,11 +35,112 @@ var FILE_USERS = "users.json";
|
|
|
34
35
|
var FILE_SESSIONS = "sessions.json";
|
|
35
36
|
var TABLE_USERS = "auth_users";
|
|
36
37
|
var TABLE_SESSIONS = "auth_sessions";
|
|
38
|
+
var SCHEMA_PROBE_ID = "__schema_probe__";
|
|
39
|
+
var STORE_TYPE_LABELS = {
|
|
40
|
+
file: "File",
|
|
41
|
+
sqlite: "SQLite",
|
|
42
|
+
mysql: "MySQL"
|
|
43
|
+
};
|
|
44
|
+
var USER_TABLE_ENSURED = "_userStoreTablesEnsured";
|
|
45
|
+
var ensureUserTablesPromise = null;
|
|
37
46
|
function getUserStoreConfig($asai) {
|
|
38
47
|
const resolved = resolveStoreConfig($asai, "user");
|
|
39
|
-
|
|
48
|
+
const type = resolved.type;
|
|
49
|
+
return { type, opt: normalizeStoreOpt("user", type, resolved.opt) };
|
|
40
50
|
}
|
|
41
51
|
__name(getUserStoreConfig, "getUserStoreConfig");
|
|
52
|
+
function getUserStoreMeta($asai) {
|
|
53
|
+
const { type, opt } = getUserStoreConfig($asai);
|
|
54
|
+
const meta = {
|
|
55
|
+
type,
|
|
56
|
+
label: STORE_TYPE_LABELS[type] || type,
|
|
57
|
+
mode: type === "file" ? "json-blob" : type,
|
|
58
|
+
create: opt.create ?? 1
|
|
59
|
+
};
|
|
60
|
+
if (type === "file") {
|
|
61
|
+
meta.dir = opt.dir;
|
|
62
|
+
meta.ext = opt.ext || ".json";
|
|
63
|
+
meta.location = String(opt.dir || "");
|
|
64
|
+
} else if (type === "sqlite") {
|
|
65
|
+
meta.database = opt.database;
|
|
66
|
+
meta.location = String(opt.database || "");
|
|
67
|
+
} else if (type === "mysql") {
|
|
68
|
+
meta.host = opt.host;
|
|
69
|
+
meta.database = opt.database;
|
|
70
|
+
meta.location = `${opt.host || "127.0.0.1"}/${opt.database || "asai"}`;
|
|
71
|
+
}
|
|
72
|
+
return meta;
|
|
73
|
+
}
|
|
74
|
+
__name(getUserStoreMeta, "getUserStoreMeta");
|
|
75
|
+
function isTableMissing(err) {
|
|
76
|
+
const msg = String(err?.message || err || "");
|
|
77
|
+
return msg.includes("no such table") || msg.includes("doesn't exist");
|
|
78
|
+
}
|
|
79
|
+
__name(isTableMissing, "isTableMissing");
|
|
80
|
+
function sqlLiteralForField(field, dbType, marker) {
|
|
81
|
+
if (field === "id" && marker) return qStr(marker, dbType);
|
|
82
|
+
if ([
|
|
83
|
+
"lv",
|
|
84
|
+
"failCount",
|
|
85
|
+
"mustChangePassword",
|
|
86
|
+
"passwordChangedAt",
|
|
87
|
+
"createdAt",
|
|
88
|
+
"updatedAt",
|
|
89
|
+
"lockedUntil",
|
|
90
|
+
"expiresAt",
|
|
91
|
+
"lastActivityAt"
|
|
92
|
+
].includes(field)) {
|
|
93
|
+
return qNum(0);
|
|
94
|
+
}
|
|
95
|
+
return qStr("", dbType);
|
|
96
|
+
}
|
|
97
|
+
__name(sqlLiteralForField, "sqlLiteralForField");
|
|
98
|
+
async function ensureSqlTable(db, table, fields, dbType, markerField) {
|
|
99
|
+
try {
|
|
100
|
+
await db.sqlDb({ type: "select", table, field: ["id"], limit: 1 });
|
|
101
|
+
return;
|
|
102
|
+
} catch (err) {
|
|
103
|
+
if (!isTableMissing(err)) throw err;
|
|
104
|
+
}
|
|
105
|
+
const marker = SCHEMA_PROBE_ID;
|
|
106
|
+
const valueRow = fields.map((f) => sqlLiteralForField(f, dbType, f === "id" ? marker : void 0));
|
|
107
|
+
await db.sqlDb({ type: "insert", table, field: [...fields], value: [valueRow] });
|
|
108
|
+
await db.sqlDb({
|
|
109
|
+
type: "delete",
|
|
110
|
+
table,
|
|
111
|
+
where: [[markerField, "=", qStr(marker, dbType)]]
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
__name(ensureSqlTable, "ensureSqlTable");
|
|
115
|
+
async function ensureUserStoreTables($asai) {
|
|
116
|
+
if ($asai[USER_TABLE_ENSURED]) return;
|
|
117
|
+
const cfg = getUserStoreConfig($asai);
|
|
118
|
+
if (cfg.type === "file") {
|
|
119
|
+
$asai[USER_TABLE_ENSURED] = true;
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
if (!ensureUserTablesPromise) {
|
|
123
|
+
ensureUserTablesPromise = (async () => {
|
|
124
|
+
const db = getUserDataServer($asai);
|
|
125
|
+
await ensureSqlTable(db, TABLE_USERS, USER_FIELDS, cfg.type, "id");
|
|
126
|
+
await ensureSqlTable(db, TABLE_SESSIONS, SESSION_FIELDS, cfg.type, "id");
|
|
127
|
+
$asai[USER_TABLE_ENSURED] = true;
|
|
128
|
+
})();
|
|
129
|
+
}
|
|
130
|
+
try {
|
|
131
|
+
await ensureUserTablesPromise;
|
|
132
|
+
} catch (err) {
|
|
133
|
+
ensureUserTablesPromise = null;
|
|
134
|
+
throw err;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
__name(ensureUserStoreTables, "ensureUserStoreTables");
|
|
138
|
+
async function beforeUserStoreOp($asai) {
|
|
139
|
+
if (getUserStoreConfig($asai).type !== "file") {
|
|
140
|
+
await ensureUserStoreTables($asai);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
__name(beforeUserStoreOp, "beforeUserStoreOp");
|
|
42
144
|
function getUserDataServer($asai) {
|
|
43
145
|
return getDataServer($asai, "user");
|
|
44
146
|
}
|
|
@@ -67,6 +169,7 @@ async function dbListUsers($asai) {
|
|
|
67
169
|
if (cfg.type === "file") {
|
|
68
170
|
return readJsonArray(db, FILE_USERS);
|
|
69
171
|
}
|
|
172
|
+
await beforeUserStoreOp($asai);
|
|
70
173
|
const res = await db.sqlDb({ type: "select", table: TABLE_USERS, field: [...USER_FIELDS] });
|
|
71
174
|
return asRows(res).map((r) => rowToRecord(r, ["lv", "failCount", "lockedUntil", "mustChangePassword", "passwordChangedAt", "createdAt", "updatedAt"]));
|
|
72
175
|
}
|
|
@@ -78,6 +181,7 @@ async function dbFindUser($asai, field, value) {
|
|
|
78
181
|
const users = await readJsonArray(db, FILE_USERS);
|
|
79
182
|
return users.find((u) => u[field] === value) || null;
|
|
80
183
|
}
|
|
184
|
+
await beforeUserStoreOp($asai);
|
|
81
185
|
const res = await db.sqlDb({
|
|
82
186
|
type: "select",
|
|
83
187
|
table: TABLE_USERS,
|
|
@@ -98,6 +202,7 @@ async function dbCreateUser($asai, user) {
|
|
|
98
202
|
await writeJsonArray(db, FILE_USERS, users);
|
|
99
203
|
return user;
|
|
100
204
|
}
|
|
205
|
+
await beforeUserStoreOp($asai);
|
|
101
206
|
await db.sqlDb({
|
|
102
207
|
type: "insert",
|
|
103
208
|
table: TABLE_USERS,
|
|
@@ -127,6 +232,7 @@ async function dbUpdateUser($asai, us, patch) {
|
|
|
127
232
|
await writeJsonArray(db, FILE_USERS, users);
|
|
128
233
|
return merged;
|
|
129
234
|
}
|
|
235
|
+
await beforeUserStoreOp($asai);
|
|
130
236
|
const sets = [];
|
|
131
237
|
for (const [key, val] of Object.entries(patch)) {
|
|
132
238
|
if (val === void 0) continue;
|
|
@@ -149,6 +255,7 @@ async function dbListSessions($asai) {
|
|
|
149
255
|
if (cfg.type === "file") {
|
|
150
256
|
return readJsonArray(db, FILE_SESSIONS);
|
|
151
257
|
}
|
|
258
|
+
await beforeUserStoreOp($asai);
|
|
152
259
|
const res = await db.sqlDb({ type: "select", table: TABLE_SESSIONS, field: [...SESSION_FIELDS] });
|
|
153
260
|
return asRows(res).map((r) => rowToRecord(r, ["createdAt", "expiresAt", "lastActivityAt"]));
|
|
154
261
|
}
|
|
@@ -160,6 +267,7 @@ async function dbWriteSessions($asai, sessions) {
|
|
|
160
267
|
await writeJsonArray(db, FILE_SESSIONS, sessions);
|
|
161
268
|
return;
|
|
162
269
|
}
|
|
270
|
+
await beforeUserStoreOp($asai);
|
|
163
271
|
const existing = await dbListSessions($asai);
|
|
164
272
|
for (const s of existing) {
|
|
165
273
|
await db.sqlDb({
|
|
@@ -193,6 +301,7 @@ async function dbAddSession($asai, session) {
|
|
|
193
301
|
await writeJsonArray(db, FILE_SESSIONS, sessions);
|
|
194
302
|
return;
|
|
195
303
|
}
|
|
304
|
+
await beforeUserStoreOp($asai);
|
|
196
305
|
await db.sqlDb({
|
|
197
306
|
type: "insert",
|
|
198
307
|
table: TABLE_SESSIONS,
|
|
@@ -219,6 +328,7 @@ async function dbRemoveSession($asai, sessionId) {
|
|
|
219
328
|
);
|
|
220
329
|
return;
|
|
221
330
|
}
|
|
331
|
+
await beforeUserStoreOp($asai);
|
|
222
332
|
await db.sqlDb({
|
|
223
333
|
type: "delete",
|
|
224
334
|
table: TABLE_SESSIONS,
|
|
@@ -238,6 +348,7 @@ async function dbRemoveSessionsByUser($asai, us) {
|
|
|
238
348
|
);
|
|
239
349
|
return;
|
|
240
350
|
}
|
|
351
|
+
await beforeUserStoreOp($asai);
|
|
241
352
|
await db.sqlDb({
|
|
242
353
|
type: "delete",
|
|
243
354
|
table: TABLE_SESSIONS,
|
|
@@ -258,6 +369,7 @@ async function dbDeleteUser($asai, us) {
|
|
|
258
369
|
await writeJsonArray(db, FILE_USERS, next);
|
|
259
370
|
return true;
|
|
260
371
|
}
|
|
372
|
+
await beforeUserStoreOp($asai);
|
|
261
373
|
await db.sqlDb({
|
|
262
374
|
type: "delete",
|
|
263
375
|
table: TABLE_USERS,
|
|
@@ -271,42 +383,55 @@ __name(dbDeleteUser, "dbDeleteUser");
|
|
|
271
383
|
import { createHash } from "crypto";
|
|
272
384
|
|
|
273
385
|
// src/sysserver/api/login/service/user-level-config.ts
|
|
274
|
-
import
|
|
275
|
-
import
|
|
386
|
+
import fs2 from "fs/promises";
|
|
387
|
+
import path2 from "path";
|
|
276
388
|
|
|
277
389
|
// src/sysserver/api/login/service/route-defaults.ts
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
{ route: "user/login", title: "\u7528\u6237\u767B\u5F55", minLv: 0, public: true },
|
|
282
|
-
{ route: "user/reg", title: "\u7528\u6237\u6CE8\u518C", minLv: 0, public: true },
|
|
283
|
-
{ route: "user/exit", title: "\u9000\u51FA\u767B\u5F55", minLv: 0, public: true },
|
|
284
|
-
{ route: "testkdd/testerrorcodes", title: "\u9519\u8BEF\u7801\u6CE8\u518C\u8868", minLv: 0, public: true },
|
|
285
|
-
{ route: "testkdd/testhealth", title: "\u5065\u5EB7\u76D1\u63A7", minLv: 0, public: true },
|
|
286
|
-
{ route: "testkdd/testauth", title: "\u8BA4\u8BC1\u5B9E\u9A8C\u5BA4", minLv: 0, public: true },
|
|
287
|
-
{ route: "testkdd/testasdb", title: "AsDb \u603B\u89C8", minLv: 0, public: true },
|
|
288
|
-
{ route: "testkdd/testasdbfile", title: "AsDb \u6587\u4EF6", minLv: 0, public: true },
|
|
289
|
-
{ route: "testkdd/testasdbsqlite", title: "AsDb SQLite", minLv: 0, public: true },
|
|
290
|
-
{ route: "testkdd/testmfc", title: "AES MFC", minLv: 0, public: true },
|
|
291
|
-
{ route: "testkdd/testws", title: "WebSocket", minLv: 0, public: true },
|
|
292
|
-
{ route: "testkdd/testchat", title: "WS \u804A\u5929\u5BA4", minLv: 0, public: true },
|
|
293
|
-
{ route: "testkdd/testascss", title: "AsCss", minLv: 0, public: true },
|
|
294
|
-
{ route: "testkdd/testpopbox", title: "\u5F39\u7A97\u7EC4\u4EF6", minLv: 0, public: true },
|
|
295
|
-
{ route: "testkdd/testaes", title: "AES \u52A0\u89E3\u5BC6", minLv: 0, public: true },
|
|
296
|
-
{ route: "testkdd/testdirectives", title: "Vue \u6307\u4EE4", minLv: 0, public: true },
|
|
297
|
-
{ route: "testkdd/testjsonp", title: "JSONP", minLv: 0, public: true },
|
|
298
|
-
{ route: "testkdd/testlv1", title: "\u6743\u9650\u6F14\u793A\xB7\u64CD\u4F5C\u5458", minLv: 3 },
|
|
299
|
-
{ route: "testkdd/testlv2", title: "\u6743\u9650\u6F14\u793A\xB7\u7BA1\u7406\u5458", minLv: 7 },
|
|
300
|
-
{ route: "testkdd/testlv3", title: "\u6743\u9650\u6F14\u793A\xB7\u5F00\u53D1\u8005", minLv: 9 },
|
|
301
|
-
{ route: "testkdd/testlog", title: "IEC62443 \u65E5\u5FD7", minLv: 3 },
|
|
302
|
-
{ route: "user/manage", title: "\u7528\u6237\u7BA1\u7406", minLv: 7 }
|
|
303
|
-
];
|
|
390
|
+
import fs from "fs";
|
|
391
|
+
import path from "path";
|
|
392
|
+
var DEFAULT_CATALOG_REL = "../webclient/public/webmodel/sys/testkdd/route-catalog.json";
|
|
304
393
|
var LEGACY_RIGHTS_MIN_LV = {
|
|
305
394
|
lv0: 0,
|
|
306
395
|
lv1: 3,
|
|
307
396
|
lv2: 7,
|
|
308
397
|
lv3: 9
|
|
309
398
|
};
|
|
399
|
+
var cachedCatalog = null;
|
|
400
|
+
function resolveRouteCatalogPath($asai) {
|
|
401
|
+
const custom = $asai?.hostconfig?.security?.routeCatalogPath;
|
|
402
|
+
const root = $asai?.serverRoot || process.cwd();
|
|
403
|
+
if (custom) {
|
|
404
|
+
return path.isAbsolute(custom) ? custom : path.resolve(root, String(custom));
|
|
405
|
+
}
|
|
406
|
+
return path.resolve(root, DEFAULT_CATALOG_REL);
|
|
407
|
+
}
|
|
408
|
+
__name(resolveRouteCatalogPath, "resolveRouteCatalogPath");
|
|
409
|
+
function catalogItemsToRouteRights(items) {
|
|
410
|
+
const out = [];
|
|
411
|
+
for (const item of items) {
|
|
412
|
+
const row = normalizeRouteRight(item);
|
|
413
|
+
if (row) out.push(row);
|
|
414
|
+
}
|
|
415
|
+
return out;
|
|
416
|
+
}
|
|
417
|
+
__name(catalogItemsToRouteRights, "catalogItemsToRouteRights");
|
|
418
|
+
function loadRouteCatalogAsRights($asai, refresh = false) {
|
|
419
|
+
const file = resolveRouteCatalogPath($asai);
|
|
420
|
+
if (!refresh && cachedCatalog?.file === file) {
|
|
421
|
+
return cachedCatalog.rights.map((r) => ({ ...r }));
|
|
422
|
+
}
|
|
423
|
+
try {
|
|
424
|
+
const text = fs.readFileSync(file, "utf8");
|
|
425
|
+
const parsed = JSON.parse(text);
|
|
426
|
+
const rights = catalogItemsToRouteRights(Array.isArray(parsed?.items) ? parsed.items : []);
|
|
427
|
+
cachedCatalog = { file, rights };
|
|
428
|
+
return rights.map((r) => ({ ...r }));
|
|
429
|
+
} catch {
|
|
430
|
+
cachedCatalog = { file, rights: [] };
|
|
431
|
+
return [];
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
__name(loadRouteCatalogAsRights, "loadRouteCatalogAsRights");
|
|
310
435
|
function normalizeRouteRight(item) {
|
|
311
436
|
if (!item || typeof item !== "object") return null;
|
|
312
437
|
const route = String(item.route || "").trim().replace(/^\/+|\/+$/g, "");
|
|
@@ -352,6 +477,7 @@ function routesFromLegacyRights(rights, titles) {
|
|
|
352
477
|
__name(routesFromLegacyRights, "routesFromLegacyRights");
|
|
353
478
|
|
|
354
479
|
// src/sysserver/api/login/service/user-level-config.ts
|
|
480
|
+
var DEFAULT_RESET_PASSWORD = "Asai@1234";
|
|
355
481
|
var DEFAULT_LEVELS = [
|
|
356
482
|
{ lv: 0, key: "guest", name: "\u666E\u901A\u7528\u6237", nameEn: "Guest" },
|
|
357
483
|
{ lv: 3, key: "operator", name: "\u64CD\u4F5C\u5458", nameEn: "Operator" },
|
|
@@ -368,7 +494,7 @@ var DEFAULT_THRESHOLDS = {
|
|
|
368
494
|
var META_FILE = "_meta/user-levels.json";
|
|
369
495
|
function configPath($asai) {
|
|
370
496
|
const dir = String(getUserStoreConfig($asai).opt?.dir || "webdata/webdb/users/");
|
|
371
|
-
return
|
|
497
|
+
return path2.resolve(dir, META_FILE);
|
|
372
498
|
}
|
|
373
499
|
__name(configPath, "configPath");
|
|
374
500
|
function fromHostLevels($asai) {
|
|
@@ -402,8 +528,14 @@ function fromHostThresholds($asai) {
|
|
|
402
528
|
}
|
|
403
529
|
__name(fromHostThresholds, "fromHostThresholds");
|
|
404
530
|
function getDefaultRouteRights($asai) {
|
|
531
|
+
let base = loadRouteCatalogAsRights($asai);
|
|
532
|
+
if (!base.length) {
|
|
533
|
+
const legacy2 = $asai?.hostconfig?.security?.routerRights;
|
|
534
|
+
if (legacy2 && typeof legacy2 === "object") {
|
|
535
|
+
base = routesFromLegacyRights(legacy2);
|
|
536
|
+
}
|
|
537
|
+
}
|
|
405
538
|
const fromHost = $asai?.hostconfig?.security?.routeRights;
|
|
406
|
-
let base = DEFAULT_ROUTE_RIGHTS.map((r) => ({ ...r }));
|
|
407
539
|
if (Array.isArray(fromHost) && fromHost.length) {
|
|
408
540
|
const parsed = [];
|
|
409
541
|
for (const item of fromHost) {
|
|
@@ -413,7 +545,7 @@ function getDefaultRouteRights($asai) {
|
|
|
413
545
|
if (parsed.length) base = mergeRouteRights(base, parsed);
|
|
414
546
|
}
|
|
415
547
|
const legacy = $asai?.hostconfig?.security?.routerRights;
|
|
416
|
-
if (legacy && typeof legacy === "object") {
|
|
548
|
+
if (legacy && typeof legacy === "object" && base.length) {
|
|
417
549
|
base = mergeRouteRights(base, routesFromLegacyRights(legacy));
|
|
418
550
|
}
|
|
419
551
|
return base;
|
|
@@ -469,15 +601,25 @@ function normalizeUserLevelConfig(input, $asai) {
|
|
|
469
601
|
adminRead: Number.isFinite(Number(th.adminRead)) ? Number(th.adminRead) : base.thresholds.adminRead,
|
|
470
602
|
adminWrite: Number.isFinite(Number(th.adminWrite)) ? Number(th.adminWrite) : base.thresholds.adminWrite
|
|
471
603
|
};
|
|
604
|
+
const syncedPwd = synced.defaultResetPassword;
|
|
605
|
+
const inputPwd = typeof input.defaultResetPassword === "string" ? input.defaultResetPassword.trim() : "";
|
|
606
|
+
const defaultResetPassword = inputPwd || syncedPwd || DEFAULT_RESET_PASSWORD;
|
|
472
607
|
return {
|
|
473
608
|
levels,
|
|
474
609
|
thresholds,
|
|
475
610
|
routeRights: normalizeRouteRightsList(input.routeRights, base.routeRights || getDefaultRouteRights($asai)),
|
|
611
|
+
defaultResetPassword,
|
|
476
612
|
updatedAt: input.updatedAt,
|
|
477
613
|
updatedBy: input.updatedBy
|
|
478
614
|
};
|
|
479
615
|
}
|
|
480
616
|
__name(normalizeUserLevelConfig, "normalizeUserLevelConfig");
|
|
617
|
+
function getDefaultResetPassword($asai) {
|
|
618
|
+
const cfg = getUserLevelConfigSync($asai);
|
|
619
|
+
const pwd = String(cfg.defaultResetPassword || "").trim();
|
|
620
|
+
return pwd || DEFAULT_RESET_PASSWORD;
|
|
621
|
+
}
|
|
622
|
+
__name(getDefaultResetPassword, "getDefaultResetPassword");
|
|
481
623
|
function normalizeRouteRightsList(raw, fallback) {
|
|
482
624
|
if (!Array.isArray(raw) || !raw.length) return fallback.map((r) => ({ ...r }));
|
|
483
625
|
const parsed = [];
|
|
@@ -491,6 +633,36 @@ function normalizeRouteRightsList(raw, fallback) {
|
|
|
491
633
|
return parsed.length ? parsed : fallback.map((r) => ({ ...r }));
|
|
492
634
|
}
|
|
493
635
|
__name(normalizeRouteRightsList, "normalizeRouteRightsList");
|
|
636
|
+
function looksLikeMojibake(text) {
|
|
637
|
+
if (!text) return false;
|
|
638
|
+
if (/[\u4e00-\u9fff]/.test(text)) return false;
|
|
639
|
+
if (/^[\x20-\x7e]+$/.test(text)) return false;
|
|
640
|
+
return true;
|
|
641
|
+
}
|
|
642
|
+
__name(looksLikeMojibake, "looksLikeMojibake");
|
|
643
|
+
function repairUserLevelConfig(cfg, $asai) {
|
|
644
|
+
let repaired = false;
|
|
645
|
+
const levels = cfg.levels.map((l) => {
|
|
646
|
+
const def = DEFAULT_LEVELS.find((d) => d.lv === l.lv || d.key === l.key);
|
|
647
|
+
if (def && looksLikeMojibake(l.name)) {
|
|
648
|
+
repaired = true;
|
|
649
|
+
return { ...l, name: def.name, nameEn: l.nameEn || def.nameEn };
|
|
650
|
+
}
|
|
651
|
+
return l;
|
|
652
|
+
});
|
|
653
|
+
const catalogMap = new Map(loadRouteCatalogAsRights($asai, true).map((r) => [r.route, r]));
|
|
654
|
+
const routeRights = (cfg.routeRights || []).map((r) => {
|
|
655
|
+
const cat = catalogMap.get(r.route);
|
|
656
|
+
if (cat?.title && looksLikeMojibake(r.title)) {
|
|
657
|
+
repaired = true;
|
|
658
|
+
return { ...r, title: cat.title };
|
|
659
|
+
}
|
|
660
|
+
return r;
|
|
661
|
+
});
|
|
662
|
+
if (!repaired) return { cfg, repaired: false };
|
|
663
|
+
return { cfg: { ...cfg, levels, routeRights }, repaired: true };
|
|
664
|
+
}
|
|
665
|
+
__name(repairUserLevelConfig, "repairUserLevelConfig");
|
|
494
666
|
function validateUserLevelConfig(cfg) {
|
|
495
667
|
if (!cfg.levels.length) return "LEVELS_EMPTY";
|
|
496
668
|
const keys = /* @__PURE__ */ new Set();
|
|
@@ -518,14 +690,20 @@ __name(getUserLevelConfigSync, "getUserLevelConfigSync");
|
|
|
518
690
|
async function loadUserLevelConfig($asai) {
|
|
519
691
|
const file = configPath($asai);
|
|
520
692
|
try {
|
|
521
|
-
const text = await
|
|
693
|
+
const text = await fs2.readFile(file, "utf8");
|
|
522
694
|
const parsed = JSON.parse(text);
|
|
523
|
-
|
|
695
|
+
let cfg = normalizeUserLevelConfig(parsed, $asai);
|
|
524
696
|
const err = validateUserLevelConfig(cfg);
|
|
525
697
|
if (err) {
|
|
526
698
|
$asai._userLevelConfig = getDefaultUserLevelConfig($asai);
|
|
527
699
|
} else {
|
|
700
|
+
const { cfg: fixed, repaired } = repairUserLevelConfig(cfg, $asai);
|
|
701
|
+
cfg = fixed;
|
|
528
702
|
$asai._userLevelConfig = cfg;
|
|
703
|
+
if (repaired) {
|
|
704
|
+
await fs2.mkdir(path2.dirname(file), { recursive: true });
|
|
705
|
+
await fs2.writeFile(file, JSON.stringify(cfg, null, 2), "utf8");
|
|
706
|
+
}
|
|
529
707
|
}
|
|
530
708
|
} catch {
|
|
531
709
|
$asai._userLevelConfig = getDefaultUserLevelConfig($asai);
|
|
@@ -537,11 +715,15 @@ async function saveUserLevelConfig($asai, input, updatedBy) {
|
|
|
537
715
|
const cfg = normalizeUserLevelConfig(input, $asai);
|
|
538
716
|
const err = validateUserLevelConfig(cfg);
|
|
539
717
|
if (err) throw new Error(err);
|
|
718
|
+
const pwd = String(cfg.defaultResetPassword || "").trim() || DEFAULT_RESET_PASSWORD;
|
|
719
|
+
const policyErr = validatePasswordWithPolicy(pwd, getPasswordPolicy($asai));
|
|
720
|
+
if (policyErr) throw new Error(policyErr);
|
|
721
|
+
cfg.defaultResetPassword = pwd;
|
|
540
722
|
cfg.updatedAt = Date.now();
|
|
541
723
|
cfg.updatedBy = updatedBy;
|
|
542
724
|
const file = configPath($asai);
|
|
543
|
-
await
|
|
544
|
-
await
|
|
725
|
+
await fs2.mkdir(path2.dirname(file), { recursive: true });
|
|
726
|
+
await fs2.writeFile(file, JSON.stringify(cfg, null, 2), "utf8");
|
|
545
727
|
$asai._userLevelConfig = cfg;
|
|
546
728
|
return cfg;
|
|
547
729
|
}
|
|
@@ -707,12 +889,14 @@ function getPublicSecurityConfig($asai, lang = "zh-CN") {
|
|
|
707
889
|
sessionIdleMinutes: getSessionIdleMinutes($asai),
|
|
708
890
|
roles: getRoleDefinitions($asai).map((r) => ({ name: r.name, minLv: r.minLv })),
|
|
709
891
|
userLevels: toPublicUserLevels($asai, lang),
|
|
710
|
-
allowRegister: getSecurityBlock($asai).allowRegister !== 0
|
|
892
|
+
allowRegister: getSecurityBlock($asai).allowRegister !== 0,
|
|
893
|
+
userStore: getUserStoreMeta($asai)
|
|
711
894
|
};
|
|
712
895
|
}
|
|
713
896
|
__name(getPublicSecurityConfig, "getPublicSecurityConfig");
|
|
714
897
|
|
|
715
898
|
export {
|
|
899
|
+
ensureUserStoreTables,
|
|
716
900
|
dbListUsers,
|
|
717
901
|
dbFindUser,
|
|
718
902
|
dbCreateUser,
|
|
@@ -723,6 +907,7 @@ export {
|
|
|
723
907
|
dbRemoveSession,
|
|
724
908
|
dbRemoveSessionsByUser,
|
|
725
909
|
dbDeleteUser,
|
|
910
|
+
getDefaultResetPassword,
|
|
726
911
|
getUserLevelConfigSync,
|
|
727
912
|
loadUserLevelConfig,
|
|
728
913
|
saveUserLevelConfig,
|
|
@@ -737,4 +922,4 @@ export {
|
|
|
737
922
|
isPasswordExpired,
|
|
738
923
|
getPublicSecurityConfig
|
|
739
924
|
};
|
|
740
|
-
//# sourceMappingURL=chunk-
|
|
925
|
+
//# sourceMappingURL=chunk-A5CDJGJI.es.js.map
|