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.
Files changed (79) hide show
  1. package/README.md +76 -25
  2. package/dist/InterventionLog-CRP6YJVM.cjs +30 -0
  3. package/dist/{InterventionLog-25EHE4QR.cjs.map → InterventionLog-CRP6YJVM.cjs.map} +1 -1
  4. package/dist/{InterventionLog-R6CCPU2B.es.js → InterventionLog-PZT2CCN3.es.js} +5 -5
  5. package/dist/LogStore-7MTUQA4G.cjs +54 -0
  6. package/dist/{LogStore-M2AUBNGO.cjs.map → LogStore-7MTUQA4G.cjs.map} +1 -1
  7. package/dist/{LogStore-ECXX34WC.es.js → LogStore-Q35YFNAY.es.js} +3 -3
  8. package/dist/asaihost-nodejs.cjs +1296 -1410
  9. package/dist/asaihost-nodejs.cjs.map +1 -1
  10. package/dist/asaihost-nodejs.d.cts +154 -17
  11. package/dist/asaihost-nodejs.d.ts +154 -17
  12. package/dist/asaihost-nodejs.es.js +911 -1025
  13. package/dist/asaihost-nodejs.es.js.map +1 -1
  14. package/dist/{chunk-HHPGUJ75.cjs → chunk-2BCIIKRG.cjs} +13 -6
  15. package/dist/chunk-2BCIIKRG.cjs.map +1 -0
  16. package/dist/{chunk-G4WVDUBH.cjs → chunk-4E7Z5K5U.cjs} +7 -7
  17. package/dist/{chunk-G4WVDUBH.cjs.map → chunk-4E7Z5K5U.cjs.map} +1 -1
  18. package/dist/{chunk-DROOHKB3.es.js → chunk-57UQJKSL.es.js} +2 -2
  19. package/dist/{chunk-EOGZPRML.es.js → chunk-A5CDJGJI.es.js} +224 -39
  20. package/dist/chunk-A5CDJGJI.es.js.map +1 -0
  21. package/dist/{chunk-E7V3EBDB.es.js → chunk-A6VJPLDD.es.js} +5 -3
  22. package/dist/chunk-A6VJPLDD.es.js.map +1 -0
  23. package/dist/{chunk-X7VHW2TD.cjs → chunk-H3K33HBA.cjs} +249 -64
  24. package/dist/chunk-H3K33HBA.cjs.map +1 -0
  25. package/dist/{chunk-KOFCBB3N.cjs → chunk-K2QPSQEV.cjs} +9 -9
  26. package/dist/{chunk-KOFCBB3N.cjs.map → chunk-K2QPSQEV.cjs.map} +1 -1
  27. package/dist/{chunk-LOMSUPPU.es.js → chunk-LTEP4XB2.es.js} +6 -6
  28. package/dist/{chunk-QWVR2HNT.cjs → chunk-LXJMGLKW.cjs} +21 -19
  29. package/dist/chunk-LXJMGLKW.cjs.map +1 -0
  30. package/dist/{chunk-4WJDC4M4.es.js → chunk-NLZNIGNF.es.js} +2 -2
  31. package/dist/chunk-NLZNIGNF.es.js.map +1 -0
  32. package/dist/{chunk-W7DVKGX5.cjs → chunk-OCEBEEP5.cjs} +2 -2
  33. package/dist/{chunk-W7DVKGX5.cjs.map → chunk-OCEBEEP5.cjs.map} +1 -1
  34. package/dist/{chunk-NLBFIRDB.cjs → chunk-RIRKIYET.cjs} +12 -12
  35. package/dist/{chunk-NLBFIRDB.cjs.map → chunk-RIRKIYET.cjs.map} +1 -1
  36. package/dist/{chunk-XBIN4C2V.es.js → chunk-SB23ESX2.es.js} +2 -2
  37. package/dist/{chunk-VLMM735Q.cjs → chunk-TKJAHTPO.cjs} +26 -26
  38. package/dist/{chunk-VLMM735Q.cjs.map → chunk-TKJAHTPO.cjs.map} +1 -1
  39. package/dist/{chunk-MCMADJQR.es.js → chunk-VUZO7DCA.es.js} +4 -4
  40. package/dist/chunk-VUZO7DCA.es.js.map +1 -0
  41. package/dist/{chunk-KUZQ36IJ.es.js → chunk-ZQBHJRAO.es.js} +10 -3
  42. package/dist/chunk-ZQBHJRAO.es.js.map +1 -0
  43. package/dist/intervention-hooks-KF3SNB5Q.cjs +21 -0
  44. package/dist/{intervention-hooks-LE6X4C6N.cjs.map → intervention-hooks-KF3SNB5Q.cjs.map} +1 -1
  45. package/dist/{intervention-hooks-FI4EHOL5.es.js → intervention-hooks-TCGIC4IV.es.js} +6 -6
  46. package/dist/log-formats-TUXGMCCU.cjs +31 -0
  47. package/dist/{log-formats-FKFMQKNO.cjs.map → log-formats-TUXGMCCU.cjs.map} +1 -1
  48. package/dist/{log-formats-I5E32H5F.es.js → log-formats-WW3TDUAK.es.js} +2 -2
  49. package/dist/{password-63OY27RX.es.js → password-4BABWAG4.es.js} +4 -4
  50. package/dist/password-PJHJRGPE.cjs +20 -0
  51. package/dist/{password-NZ5EGDWG.cjs.map → password-PJHJRGPE.cjs.map} +1 -1
  52. package/dist/user-store-6J2PSEIN.cjs +12 -0
  53. package/dist/{user-store-SX4N6PQ4.cjs.map → user-store-6J2PSEIN.cjs.map} +1 -1
  54. package/dist/user-store-UC5URX3C.es.js +12 -0
  55. package/package.json +2 -13
  56. package/dist/InterventionLog-25EHE4QR.cjs +0 -30
  57. package/dist/LogStore-M2AUBNGO.cjs +0 -54
  58. package/dist/chunk-4WJDC4M4.es.js.map +0 -1
  59. package/dist/chunk-E7V3EBDB.es.js.map +0 -1
  60. package/dist/chunk-EOGZPRML.es.js.map +0 -1
  61. package/dist/chunk-HHPGUJ75.cjs.map +0 -1
  62. package/dist/chunk-KUZQ36IJ.es.js.map +0 -1
  63. package/dist/chunk-MCMADJQR.es.js.map +0 -1
  64. package/dist/chunk-QWVR2HNT.cjs.map +0 -1
  65. package/dist/chunk-X7VHW2TD.cjs.map +0 -1
  66. package/dist/intervention-hooks-LE6X4C6N.cjs +0 -21
  67. package/dist/log-formats-FKFMQKNO.cjs +0 -31
  68. package/dist/password-NZ5EGDWG.cjs +0 -20
  69. package/dist/user-store-J7LWEXSW.es.js +0 -12
  70. package/dist/user-store-SX4N6PQ4.cjs +0 -12
  71. /package/dist/{InterventionLog-R6CCPU2B.es.js.map → InterventionLog-PZT2CCN3.es.js.map} +0 -0
  72. /package/dist/{LogStore-ECXX34WC.es.js.map → LogStore-Q35YFNAY.es.js.map} +0 -0
  73. /package/dist/{chunk-DROOHKB3.es.js.map → chunk-57UQJKSL.es.js.map} +0 -0
  74. /package/dist/{chunk-LOMSUPPU.es.js.map → chunk-LTEP4XB2.es.js.map} +0 -0
  75. /package/dist/{chunk-XBIN4C2V.es.js.map → chunk-SB23ESX2.es.js.map} +0 -0
  76. /package/dist/{intervention-hooks-FI4EHOL5.es.js.map → intervention-hooks-TCGIC4IV.es.js.map} +0 -0
  77. /package/dist/{log-formats-I5E32H5F.es.js.map → log-formats-WW3TDUAK.es.js.map} +0 -0
  78. /package/dist/{password-63OY27RX.es.js.map → password-4BABWAG4.es.js.map} +0 -0
  79. /package/dist/{user-store-J7LWEXSW.es.js.map → user-store-UC5URX3C.es.js.map} +0 -0
@@ -6,7 +6,8 @@
6
6
 
7
7
 
8
8
 
9
- var _chunkHHPGUJ75cjs = require('./chunk-HHPGUJ75.cjs');
9
+
10
+ var _chunk2BCIIKRGcjs = require('./chunk-2BCIIKRG.cjs');
10
11
 
11
12
 
12
13
  var _chunkSMVZ3ZDJcjs = require('./chunk-SMVZ3ZDJ.cjs');
@@ -34,13 +35,114 @@ 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
- const resolved = _chunkHHPGUJ75cjs.resolveStoreConfig.call(void 0, $asai, "user");
39
- return { type: resolved.type, opt: resolved.opt };
47
+ const resolved = _chunk2BCIIKRGcjs.resolveStoreConfig.call(void 0, $asai, "user");
48
+ const type = resolved.type;
49
+ return { type, opt: _chunk2BCIIKRGcjs.normalizeStoreOpt.call(void 0, "user", type, resolved.opt) };
40
50
  }
41
51
  _chunkSMVZ3ZDJcjs.__name.call(void 0, 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: _nullishCoalesce(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
+ _chunkSMVZ3ZDJcjs.__name.call(void 0, getUserStoreMeta, "getUserStoreMeta");
75
+ function isTableMissing(err) {
76
+ const msg = String(_optionalChain([err, 'optionalAccess', _ => _.message]) || err || "");
77
+ return msg.includes("no such table") || msg.includes("doesn't exist");
78
+ }
79
+ _chunkSMVZ3ZDJcjs.__name.call(void 0, isTableMissing, "isTableMissing");
80
+ function sqlLiteralForField(field, dbType, marker) {
81
+ if (field === "id" && marker) return _chunk2BCIIKRGcjs.qStr.call(void 0, 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 _chunk2BCIIKRGcjs.qNum.call(void 0, 0);
94
+ }
95
+ return _chunk2BCIIKRGcjs.qStr.call(void 0, "", dbType);
96
+ }
97
+ _chunkSMVZ3ZDJcjs.__name.call(void 0, 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, "=", _chunk2BCIIKRGcjs.qStr.call(void 0, marker, dbType)]]
112
+ });
113
+ }
114
+ _chunkSMVZ3ZDJcjs.__name.call(void 0, 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
+ _chunkSMVZ3ZDJcjs.__name.call(void 0, ensureUserStoreTables, "ensureUserStoreTables");
138
+ async function beforeUserStoreOp($asai) {
139
+ if (getUserStoreConfig($asai).type !== "file") {
140
+ await ensureUserStoreTables($asai);
141
+ }
142
+ }
143
+ _chunkSMVZ3ZDJcjs.__name.call(void 0, beforeUserStoreOp, "beforeUserStoreOp");
42
144
  function getUserDataServer($asai) {
43
- return _chunkHHPGUJ75cjs.getDataServer.call(void 0, $asai, "user");
145
+ return _chunk2BCIIKRGcjs.getDataServer.call(void 0, $asai, "user");
44
146
  }
45
147
  _chunkSMVZ3ZDJcjs.__name.call(void 0, getUserDataServer, "getUserDataServer");
46
148
  function rowToRecord(row, numericKeys) {
@@ -54,11 +156,11 @@ function rowToRecord(row, numericKeys) {
54
156
  }
55
157
  _chunkSMVZ3ZDJcjs.__name.call(void 0, rowToRecord, "rowToRecord");
56
158
  async function readJsonArray(db, filename) {
57
- return _chunkHHPGUJ75cjs.readJsonBlob.call(void 0, db, filename);
159
+ return _chunk2BCIIKRGcjs.readJsonBlob.call(void 0, db, filename);
58
160
  }
59
161
  _chunkSMVZ3ZDJcjs.__name.call(void 0, readJsonArray, "readJsonArray");
60
162
  async function writeJsonArray(db, filename, data) {
61
- await _chunkHHPGUJ75cjs.writeJsonBlob.call(void 0, db, filename, data);
163
+ await _chunk2BCIIKRGcjs.writeJsonBlob.call(void 0, db, filename, data);
62
164
  }
63
165
  _chunkSMVZ3ZDJcjs.__name.call(void 0, writeJsonArray, "writeJsonArray");
64
166
  async function dbListUsers($asai) {
@@ -67,8 +169,9 @@ 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
- return _chunkHHPGUJ75cjs.asRows.call(void 0, res).map((r) => rowToRecord(r, ["lv", "failCount", "lockedUntil", "mustChangePassword", "passwordChangedAt", "createdAt", "updatedAt"]));
174
+ return _chunk2BCIIKRGcjs.asRows.call(void 0, res).map((r) => rowToRecord(r, ["lv", "failCount", "lockedUntil", "mustChangePassword", "passwordChangedAt", "createdAt", "updatedAt"]));
72
175
  }
73
176
  _chunkSMVZ3ZDJcjs.__name.call(void 0, dbListUsers, "dbListUsers");
74
177
  async function dbFindUser($asai, field, value) {
@@ -78,14 +181,15 @@ 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,
84
188
  field: [...USER_FIELDS],
85
- where: [[field, "=", _chunkHHPGUJ75cjs.qStr.call(void 0, value, cfg.type)]],
189
+ where: [[field, "=", _chunk2BCIIKRGcjs.qStr.call(void 0, value, cfg.type)]],
86
190
  limit: 1
87
191
  });
88
- const rows = _chunkHHPGUJ75cjs.asRows.call(void 0, res);
192
+ const rows = _chunk2BCIIKRGcjs.asRows.call(void 0, res);
89
193
  return rows.length ? rowToRecord(rows[0], ["lv", "failCount", "lockedUntil", "mustChangePassword", "passwordChangedAt", "createdAt", "updatedAt"]) : null;
90
194
  }
91
195
  _chunkSMVZ3ZDJcjs.__name.call(void 0, dbFindUser, "dbFindUser");
@@ -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,
@@ -105,8 +210,8 @@ async function dbCreateUser($asai, user) {
105
210
  value: [
106
211
  USER_FIELDS.map((f) => {
107
212
  const v = user[f];
108
- if (typeof v === "number") return _chunkHHPGUJ75cjs.qNum.call(void 0, v);
109
- return _chunkHHPGUJ75cjs.qStr.call(void 0, v == null ? "" : String(v), cfg.type);
213
+ if (typeof v === "number") return _chunk2BCIIKRGcjs.qNum.call(void 0, v);
214
+ return _chunk2BCIIKRGcjs.qStr.call(void 0, v == null ? "" : String(v), cfg.type);
110
215
  })
111
216
  ]
112
217
  });
@@ -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;
@@ -138,7 +244,7 @@ async function dbUpdateUser($asai, us, patch) {
138
244
  type: "update",
139
245
  table: TABLE_USERS,
140
246
  set: sets,
141
- where: [["us", "=", _chunkHHPGUJ75cjs.qStr.call(void 0, us, cfg.type)]]
247
+ where: [["us", "=", _chunk2BCIIKRGcjs.qStr.call(void 0, us, cfg.type)]]
142
248
  });
143
249
  return merged;
144
250
  }
@@ -149,8 +255,9 @@ 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
- return _chunkHHPGUJ75cjs.asRows.call(void 0, res).map((r) => rowToRecord(r, ["createdAt", "expiresAt", "lastActivityAt"]));
260
+ return _chunk2BCIIKRGcjs.asRows.call(void 0, res).map((r) => rowToRecord(r, ["createdAt", "expiresAt", "lastActivityAt"]));
154
261
  }
155
262
  _chunkSMVZ3ZDJcjs.__name.call(void 0, dbListSessions, "dbListSessions");
156
263
  async function dbWriteSessions($asai, sessions) {
@@ -160,12 +267,13 @@ 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({
166
274
  type: "delete",
167
275
  table: TABLE_SESSIONS,
168
- where: [["id", "=", _chunkHHPGUJ75cjs.qStr.call(void 0, String(s.id), cfg.type)]]
276
+ where: [["id", "=", _chunk2BCIIKRGcjs.qStr.call(void 0, String(s.id), cfg.type)]]
169
277
  });
170
278
  }
171
279
  for (const s of sessions) {
@@ -176,8 +284,8 @@ async function dbWriteSessions($asai, sessions) {
176
284
  value: [
177
285
  SESSION_FIELDS.map((f) => {
178
286
  const v = s[f];
179
- if (typeof v === "number") return _chunkHHPGUJ75cjs.qNum.call(void 0, v);
180
- return _chunkHHPGUJ75cjs.qStr.call(void 0, v == null ? "" : String(v), cfg.type);
287
+ if (typeof v === "number") return _chunk2BCIIKRGcjs.qNum.call(void 0, v);
288
+ return _chunk2BCIIKRGcjs.qStr.call(void 0, v == null ? "" : String(v), cfg.type);
181
289
  })
182
290
  ]
183
291
  });
@@ -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,
@@ -200,8 +309,8 @@ async function dbAddSession($asai, session) {
200
309
  value: [
201
310
  SESSION_FIELDS.map((f) => {
202
311
  const v = session[f];
203
- if (typeof v === "number") return _chunkHHPGUJ75cjs.qNum.call(void 0, v);
204
- return _chunkHHPGUJ75cjs.qStr.call(void 0, v == null ? "" : String(v), cfg.type);
312
+ if (typeof v === "number") return _chunk2BCIIKRGcjs.qNum.call(void 0, v);
313
+ return _chunk2BCIIKRGcjs.qStr.call(void 0, v == null ? "" : String(v), cfg.type);
205
314
  })
206
315
  ]
207
316
  });
@@ -219,10 +328,11 @@ 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,
225
- where: [["id", "=", _chunkHHPGUJ75cjs.qStr.call(void 0, sessionId, cfg.type)]]
335
+ where: [["id", "=", _chunk2BCIIKRGcjs.qStr.call(void 0, sessionId, cfg.type)]]
226
336
  });
227
337
  }
228
338
  _chunkSMVZ3ZDJcjs.__name.call(void 0, dbRemoveSession, "dbRemoveSession");
@@ -238,10 +348,11 @@ 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,
244
- where: [["us", "=", _chunkHHPGUJ75cjs.qStr.call(void 0, us, cfg.type)]]
355
+ where: [["us", "=", _chunk2BCIIKRGcjs.qStr.call(void 0, us, cfg.type)]]
245
356
  });
246
357
  }
247
358
  _chunkSMVZ3ZDJcjs.__name.call(void 0, dbRemoveSessionsByUser, "dbRemoveSessionsByUser");
@@ -258,10 +369,11 @@ 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,
264
- where: [["us", "=", _chunkHHPGUJ75cjs.qStr.call(void 0, us, cfg.type)]]
376
+ where: [["us", "=", _chunk2BCIIKRGcjs.qStr.call(void 0, us, cfg.type)]]
265
377
  });
266
378
  return true;
267
379
  }
@@ -275,38 +387,51 @@ var _promises = require('fs/promises'); var _promises2 = _interopRequireDefault(
275
387
  var _path = require('path'); var _path2 = _interopRequireDefault(_path);
276
388
 
277
389
  // src/sysserver/api/login/service/route-defaults.ts
278
- var DEFAULT_ROUTE_RIGHTS = [
279
- { route: "testkdd", title: "testkdd", minLv: 0, public: true },
280
- { route: "testkdd/testindex", title: "\u529F\u80FD\u603B\u89C8", minLv: 0, public: true },
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
+ var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs);
391
+
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 = _optionalChain([$asai, 'optionalAccess', _2 => _2.hostconfig, 'optionalAccess', _3 => _3.security, 'optionalAccess', _4 => _4.routeCatalogPath]);
402
+ const root = _optionalChain([$asai, 'optionalAccess', _5 => _5.serverRoot]) || process.cwd();
403
+ if (custom) {
404
+ return _path2.default.isAbsolute(custom) ? custom : _path2.default.resolve(root, String(custom));
405
+ }
406
+ return _path2.default.resolve(root, DEFAULT_CATALOG_REL);
407
+ }
408
+ _chunkSMVZ3ZDJcjs.__name.call(void 0, 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
+ _chunkSMVZ3ZDJcjs.__name.call(void 0, catalogItemsToRouteRights, "catalogItemsToRouteRights");
418
+ function loadRouteCatalogAsRights($asai, refresh = false) {
419
+ const file = resolveRouteCatalogPath($asai);
420
+ if (!refresh && _optionalChain([cachedCatalog, 'optionalAccess', _6 => _6.file]) === file) {
421
+ return cachedCatalog.rights.map((r) => ({ ...r }));
422
+ }
423
+ try {
424
+ const text = _fs2.default.readFileSync(file, "utf8");
425
+ const parsed = JSON.parse(text);
426
+ const rights = catalogItemsToRouteRights(Array.isArray(_optionalChain([parsed, 'optionalAccess', _7 => _7.items])) ? parsed.items : []);
427
+ cachedCatalog = { file, rights };
428
+ return rights.map((r) => ({ ...r }));
429
+ } catch (e) {
430
+ cachedCatalog = { file, rights: [] };
431
+ return [];
432
+ }
433
+ }
434
+ _chunkSMVZ3ZDJcjs.__name.call(void 0, 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, "");
@@ -341,7 +466,7 @@ function routesFromLegacyRights(rights, titles) {
341
466
  if (!r) continue;
342
467
  out.push({
343
468
  route: r,
344
- title: _optionalChain([titles, 'optionalAccess', _ => _[r]]),
469
+ title: _optionalChain([titles, 'optionalAccess', _8 => _8[r]]),
345
470
  minLv,
346
471
  public: minLv === 0
347
472
  });
@@ -352,6 +477,7 @@ function routesFromLegacyRights(rights, titles) {
352
477
  _chunkSMVZ3ZDJcjs.__name.call(void 0, 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" },
@@ -367,12 +493,12 @@ var DEFAULT_THRESHOLDS = {
367
493
  };
368
494
  var META_FILE = "_meta/user-levels.json";
369
495
  function configPath($asai) {
370
- const dir = String(_optionalChain([getUserStoreConfig, 'call', _2 => _2($asai), 'access', _3 => _3.opt, 'optionalAccess', _4 => _4.dir]) || "webdata/webdb/users/");
496
+ const dir = String(_optionalChain([getUserStoreConfig, 'call', _9 => _9($asai), 'access', _10 => _10.opt, 'optionalAccess', _11 => _11.dir]) || "webdata/webdb/users/");
371
497
  return _path2.default.resolve(dir, META_FILE);
372
498
  }
373
499
  _chunkSMVZ3ZDJcjs.__name.call(void 0, configPath, "configPath");
374
500
  function fromHostLevels($asai) {
375
- const raw = _optionalChain([$asai, 'optionalAccess', _5 => _5.hostconfig, 'optionalAccess', _6 => _6.security, 'optionalAccess', _7 => _7.userLevels]);
501
+ const raw = _optionalChain([$asai, 'optionalAccess', _12 => _12.hostconfig, 'optionalAccess', _13 => _13.security, 'optionalAccess', _14 => _14.userLevels]);
376
502
  if (!Array.isArray(raw) || !raw.length) return null;
377
503
  const levels = [];
378
504
  for (const item of raw) {
@@ -392,7 +518,7 @@ function fromHostLevels($asai) {
392
518
  }
393
519
  _chunkSMVZ3ZDJcjs.__name.call(void 0, fromHostLevels, "fromHostLevels");
394
520
  function fromHostThresholds($asai) {
395
- const t = _optionalChain([$asai, 'optionalAccess', _8 => _8.hostconfig, 'optionalAccess', _9 => _9.security, 'optionalAccess', _10 => _10.permissionThresholds]);
521
+ const t = _optionalChain([$asai, 'optionalAccess', _15 => _15.hostconfig, 'optionalAccess', _16 => _16.security, 'optionalAccess', _17 => _17.permissionThresholds]);
396
522
  if (!t || typeof t !== "object") return { ...DEFAULT_THRESHOLDS };
397
523
  return {
398
524
  logRead: Number(_nullishCoalesce(t.logRead, () => ( DEFAULT_THRESHOLDS.logRead))),
@@ -402,8 +528,14 @@ function fromHostThresholds($asai) {
402
528
  }
403
529
  _chunkSMVZ3ZDJcjs.__name.call(void 0, fromHostThresholds, "fromHostThresholds");
404
530
  function getDefaultRouteRights($asai) {
405
- const fromHost = _optionalChain([$asai, 'optionalAccess', _11 => _11.hostconfig, 'optionalAccess', _12 => _12.security, 'optionalAccess', _13 => _13.routeRights]);
406
- let base = DEFAULT_ROUTE_RIGHTS.map((r) => ({ ...r }));
531
+ let base = loadRouteCatalogAsRights($asai);
532
+ if (!base.length) {
533
+ const legacy2 = _optionalChain([$asai, 'optionalAccess', _18 => _18.hostconfig, 'optionalAccess', _19 => _19.security, 'optionalAccess', _20 => _20.routerRights]);
534
+ if (legacy2 && typeof legacy2 === "object") {
535
+ base = routesFromLegacyRights(legacy2);
536
+ }
537
+ }
538
+ const fromHost = _optionalChain([$asai, 'optionalAccess', _21 => _21.hostconfig, 'optionalAccess', _22 => _22.security, 'optionalAccess', _23 => _23.routeRights]);
407
539
  if (Array.isArray(fromHost) && fromHost.length) {
408
540
  const parsed = [];
409
541
  for (const item of fromHost) {
@@ -412,8 +544,8 @@ function getDefaultRouteRights($asai) {
412
544
  }
413
545
  if (parsed.length) base = mergeRouteRights(base, parsed);
414
546
  }
415
- const legacy = _optionalChain([$asai, 'optionalAccess', _14 => _14.hostconfig, 'optionalAccess', _15 => _15.security, 'optionalAccess', _16 => _16.routerRights]);
416
- if (legacy && typeof legacy === "object") {
547
+ const legacy = _optionalChain([$asai, 'optionalAccess', _24 => _24.hostconfig, 'optionalAccess', _25 => _25.security, 'optionalAccess', _26 => _26.routerRights]);
548
+ if (legacy && typeof legacy === "object" && base.length) {
417
549
  base = mergeRouteRights(base, routesFromLegacyRights(legacy));
418
550
  }
419
551
  return base;
@@ -444,7 +576,7 @@ _chunkSMVZ3ZDJcjs.__name.call(void 0, normalizeLevel, "normalizeLevel");
444
576
  function normalizeUserLevelConfig(input, $asai) {
445
577
  const base = getDefaultUserLevelConfig($asai);
446
578
  const synced = getUserLevelConfigSync($asai);
447
- const levelBase = _optionalChain([synced, 'access', _17 => _17.levels, 'optionalAccess', _18 => _18.length]) ? synced : base;
579
+ const levelBase = _optionalChain([synced, 'access', _27 => _27.levels, 'optionalAccess', _28 => _28.length]) ? synced : base;
448
580
  const levels = [];
449
581
  const seenLv = /* @__PURE__ */ new Set();
450
582
  const seenKey = /* @__PURE__ */ new Set();
@@ -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
  _chunkSMVZ3ZDJcjs.__name.call(void 0, 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
+ _chunkSMVZ3ZDJcjs.__name.call(void 0, 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
  _chunkSMVZ3ZDJcjs.__name.call(void 0, 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
+ _chunkSMVZ3ZDJcjs.__name.call(void 0, 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 (_optionalChain([cat, 'optionalAccess', _29 => _29.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
+ _chunkSMVZ3ZDJcjs.__name.call(void 0, repairUserLevelConfig, "repairUserLevelConfig");
494
666
  function validateUserLevelConfig(cfg) {
495
667
  if (!cfg.levels.length) return "LEVELS_EMPTY";
496
668
  const keys = /* @__PURE__ */ new Set();
@@ -520,14 +692,20 @@ async function loadUserLevelConfig($asai) {
520
692
  try {
521
693
  const text = await _promises2.default.readFile(file, "utf8");
522
694
  const parsed = JSON.parse(text);
523
- const cfg = normalizeUserLevelConfig(parsed, $asai);
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 _promises2.default.mkdir(_path2.default.dirname(file), { recursive: true });
705
+ await _promises2.default.writeFile(file, JSON.stringify(cfg, null, 2), "utf8");
706
+ }
529
707
  }
530
- } catch (e) {
708
+ } catch (e2) {
531
709
  $asai._userLevelConfig = getDefaultUserLevelConfig($asai);
532
710
  }
533
711
  return $asai._userLevelConfig;
@@ -537,6 +715,10 @@ 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);
@@ -600,7 +782,7 @@ var DEFAULT_ROLES = [
600
782
  { name: "superadmin", minLv: 99, permissions: ["read", "operate", "audit", "admin", "develop", "super"] }
601
783
  ];
602
784
  function getSecurityBlock($asai) {
603
- return _optionalChain([$asai, 'optionalAccess', _19 => _19.hostconfig, 'optionalAccess', _20 => _20.security]) || {};
785
+ return _optionalChain([$asai, 'optionalAccess', _30 => _30.hostconfig, 'optionalAccess', _31 => _31.security]) || {};
604
786
  }
605
787
  _chunkSMVZ3ZDJcjs.__name.call(void 0, getSecurityBlock, "getSecurityBlock");
606
788
  function getLoginBanner($asai) {
@@ -648,7 +830,7 @@ function resolveRoleForLevel($asai, lv) {
648
830
  const roles = getRoleDefinitions($asai);
649
831
  let best = roles[0];
650
832
  for (const r of roles) {
651
- if (lv >= r.minLv && r.minLv >= (_nullishCoalesce(_optionalChain([best, 'optionalAccess', _21 => _21.minLv]), () => ( -1)))) best = r;
833
+ if (lv >= r.minLv && r.minLv >= (_nullishCoalesce(_optionalChain([best, 'optionalAccess', _32 => _32.minLv]), () => ( -1)))) best = r;
652
834
  }
653
835
  return best || DEFAULT_ROLES[0];
654
836
  }
@@ -674,7 +856,7 @@ function parsePassHistory(raw) {
674
856
  try {
675
857
  const arr = JSON.parse(raw);
676
858
  return Array.isArray(arr) ? arr.map(String) : [];
677
- } catch (e2) {
859
+ } catch (e3) {
678
860
  return [];
679
861
  }
680
862
  }
@@ -707,7 +889,8 @@ 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
  _chunkSMVZ3ZDJcjs.__name.call(void 0, getPublicSecurityConfig, "getPublicSecurityConfig");
@@ -736,5 +919,7 @@ _chunkSMVZ3ZDJcjs.__name.call(void 0, getPublicSecurityConfig, "getPublicSecurit
736
919
 
737
920
 
738
921
 
739
- exports.dbListUsers = dbListUsers; exports.dbFindUser = dbFindUser; exports.dbCreateUser = dbCreateUser; exports.dbUpdateUser = dbUpdateUser; exports.dbListSessions = dbListSessions; exports.dbWriteSessions = dbWriteSessions; exports.dbAddSession = dbAddSession; exports.dbRemoveSession = dbRemoveSession; exports.dbRemoveSessionsByUser = dbRemoveSessionsByUser; exports.dbDeleteUser = dbDeleteUser; exports.getUserLevelConfigSync = getUserLevelConfigSync; exports.loadUserLevelConfig = loadUserLevelConfig; exports.saveUserLevelConfig = saveUserLevelConfig; exports.getPermissionThreshold = getPermissionThreshold; exports.isValidUserLv = isValidUserLv; exports.getPasswordPolicy = getPasswordPolicy; exports.resolveRoleForLevel = resolveRoleForLevel; exports.hashPasswordForHistory = hashPasswordForHistory; exports.validatePasswordWithPolicy = validatePasswordWithPolicy; exports.parsePassHistory = parsePassHistory; exports.isPasswordInHistory = isPasswordInHistory; exports.isPasswordExpired = isPasswordExpired; exports.getPublicSecurityConfig = getPublicSecurityConfig;
740
- //# sourceMappingURL=chunk-X7VHW2TD.cjs.map
922
+
923
+
924
+ exports.ensureUserStoreTables = ensureUserStoreTables; exports.dbListUsers = dbListUsers; exports.dbFindUser = dbFindUser; exports.dbCreateUser = dbCreateUser; exports.dbUpdateUser = dbUpdateUser; exports.dbListSessions = dbListSessions; exports.dbWriteSessions = dbWriteSessions; exports.dbAddSession = dbAddSession; exports.dbRemoveSession = dbRemoveSession; exports.dbRemoveSessionsByUser = dbRemoveSessionsByUser; exports.dbDeleteUser = dbDeleteUser; exports.getDefaultResetPassword = getDefaultResetPassword; exports.getUserLevelConfigSync = getUserLevelConfigSync; exports.loadUserLevelConfig = loadUserLevelConfig; exports.saveUserLevelConfig = saveUserLevelConfig; exports.getPermissionThreshold = getPermissionThreshold; exports.isValidUserLv = isValidUserLv; exports.getPasswordPolicy = getPasswordPolicy; exports.resolveRoleForLevel = resolveRoleForLevel; exports.hashPasswordForHistory = hashPasswordForHistory; exports.validatePasswordWithPolicy = validatePasswordWithPolicy; exports.parsePassHistory = parsePassHistory; exports.isPasswordInHistory = isPasswordInHistory; exports.isPasswordExpired = isPasswordExpired; exports.getPublicSecurityConfig = getPublicSecurityConfig;
925
+ //# sourceMappingURL=chunk-H3K33HBA.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["d:\\Web\\Git\\asaicms-v1\\webserver\\src\\plugs\\asaihost-nodejs\\dist\\chunk-H3K33HBA.cjs"],"names":[],"mappings":"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IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;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,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;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,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;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,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;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;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;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,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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-H3K33HBA.cjs","sourcesContent":[null]}
@@ -4,7 +4,7 @@
4
4
 
5
5
 
6
6
 
7
- var _chunkX7VHW2TDcjs = require('./chunk-X7VHW2TD.cjs');
7
+ var _chunkH3K33HBAcjs = require('./chunk-H3K33HBA.cjs');
8
8
 
9
9
 
10
10
  var _chunkSMVZ3ZDJcjs = require('./chunk-SMVZ3ZDJ.cjs');
@@ -47,24 +47,24 @@ function verifyPassword(password, passHash, passSalt) {
47
47
  _chunkSMVZ3ZDJcjs.__name.call(void 0, verifyPassword, "verifyPassword");
48
48
  function validatePasswordPolicy(password, minLen = 8, policy) {
49
49
  const p = policy || { minLength: minLen, requireLower: true, requireDigit: true, requireUpper: false, requireSpecial: false, maxAgeDays: 0, historyCount: 0 };
50
- return _chunkX7VHW2TDcjs.validatePasswordWithPolicy.call(void 0, password, p);
50
+ return _chunkH3K33HBAcjs.validatePasswordWithPolicy.call(void 0, password, p);
51
51
  }
52
52
  _chunkSMVZ3ZDJcjs.__name.call(void 0, validatePasswordPolicy, "validatePasswordPolicy");
53
53
  function validatePasswordChange(password, $asai, passHistory) {
54
- const policy = _chunkX7VHW2TDcjs.getPasswordPolicy.call(void 0, $asai);
55
- const err = _chunkX7VHW2TDcjs.validatePasswordWithPolicy.call(void 0, password, policy);
54
+ const policy = _chunkH3K33HBAcjs.getPasswordPolicy.call(void 0, $asai);
55
+ const err = _chunkH3K33HBAcjs.validatePasswordWithPolicy.call(void 0, password, policy);
56
56
  if (err) return err;
57
57
  if (policy.historyCount > 0) {
58
- const history = _chunkX7VHW2TDcjs.parsePassHistory.call(void 0, passHistory);
59
- if (_chunkX7VHW2TDcjs.isPasswordInHistory.call(void 0, password, history)) return "PASSWORD_REUSED";
58
+ const history = _chunkH3K33HBAcjs.parsePassHistory.call(void 0, passHistory);
59
+ if (_chunkH3K33HBAcjs.isPasswordInHistory.call(void 0, password, history)) return "PASSWORD_REUSED";
60
60
  }
61
61
  return null;
62
62
  }
63
63
  _chunkSMVZ3ZDJcjs.__name.call(void 0, validatePasswordChange, "validatePasswordChange");
64
64
  function nextPassHistory(password, passHistory, historyCount) {
65
65
  if (!historyCount || historyCount <= 0) return "[]";
66
- const history = _chunkX7VHW2TDcjs.parsePassHistory.call(void 0, passHistory);
67
- history.unshift(_chunkX7VHW2TDcjs.hashPasswordForHistory.call(void 0, password));
66
+ const history = _chunkH3K33HBAcjs.parsePassHistory.call(void 0, passHistory);
67
+ history.unshift(_chunkH3K33HBAcjs.hashPasswordForHistory.call(void 0, password));
68
68
  return JSON.stringify(history.slice(0, historyCount));
69
69
  }
70
70
  _chunkSMVZ3ZDJcjs.__name.call(void 0, nextPassHistory, "nextPassHistory");
@@ -84,4 +84,4 @@ _chunkSMVZ3ZDJcjs.__name.call(void 0, verifyHostPassword, "verifyHostPassword");
84
84
 
85
85
 
86
86
  exports.secureCompare = secureCompare; exports.hashPassword = hashPassword; exports.verifyPassword = verifyPassword; exports.validatePasswordPolicy = validatePasswordPolicy; exports.validatePasswordChange = validatePasswordChange; exports.nextPassHistory = nextPassHistory; exports.verifyHostPassword = verifyHostPassword;
87
- //# sourceMappingURL=chunk-KOFCBB3N.cjs.map
87
+ //# sourceMappingURL=chunk-K2QPSQEV.cjs.map