jsir 3.0.7 → 3.0.9

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/cmd/oaa.js CHANGED
@@ -1360,7 +1360,7 @@ const keywordDef = {
1360
1360
  throw 'Not Allowed';
1361
1361
  }
1362
1362
  Server.setRoute("post", "/" + setting.configMainFnKey, async (req, res) => {
1363
- res.result = await Room.localConfigs();
1363
+ res.result = await Room.localConfigs(Object.values(_cmdMap));
1364
1364
  })
1365
1365
  console.msg("config service online")
1366
1366
  } else if ("-" === args[0]) {
package/deps/room.js CHANGED
@@ -3,7 +3,7 @@ const {fileJson, fileLock, vl, getKeyTips, getValTips,
3
3
  getRoomsDir, e, isRunningInBackground,
4
4
  batchAsync, trim, getOr, errorTag, warnStr, getConfig, getConfigDir,
5
5
  fileExist, processLock, isPidAlive, cleanFileLocks,
6
- roomConsole: console, reget
6
+ roomConsole: console, reget, md5
7
7
  } = require('./util');
8
8
  const {setRoute, createSign} = require('../deps/server')
9
9
  const roomDataFile = "jsirRoom.json"
@@ -18,7 +18,25 @@ const tailscalePath = os.platform() === 'darwin' ?
18
18
  '/Applications/Tailscale.app/Contents/MacOS/Tailscale':'tailscale';
19
19
  const packageJson = require("../package.json");
20
20
 
21
- async function localConfigs() {
21
+ async function localConfigs(uniqueNameList) {
22
+ if (uniqueNameList && uniqueNameList.length > 0 ) {
23
+ let configDir = getConfigDir();
24
+ let configs = {}
25
+ let fns = uniqueNameList
26
+ .map(uniqueName => async () => {
27
+ let fileName = `${md5(uniqueName + (global.$TEST ? '.test':''))}.json`
28
+ let path = `${configDir}/${fileName}`;
29
+ if (await fileExist(path)) {
30
+ configs[fileName] = String(await fp.readFile(path))
31
+ }
32
+ });
33
+ await batchAsync(fns, 33);
34
+ return configs;
35
+ }
36
+ return await _localAllConfigs();
37
+ }
38
+
39
+ async function _localAllConfigs() {
22
40
  let configDir = getConfigDir();
23
41
  let configFiles = await fp.readdir(configDir)
24
42
  let fns = configFiles
@@ -112,17 +130,14 @@ async function initNodes() {
112
130
  } catch (e) {
113
131
  console.$debug("initNodes", e)
114
132
  }
115
- let isFirst = true
116
133
  for (let line of resp.split("\n").map(trim)) {
117
134
  let ss = line.split(/\s+/);
118
135
  if (/^\d+\.\d+\.\d+\.\d+$/.test(ss[0])) {
119
- let offline = line.indexOf('offline') !== -1 || line.indexOf('active') === -1
120
136
  nodes[ss[0]] = {
121
137
  name: ss[1],
122
- offline: !isFirst && offline,
138
+ offline: line.indexOf('offline') !== -1 ,
123
139
  account: ss[2]
124
140
  }
125
- isFirst = false
126
141
  }
127
142
  }
128
143
  }
@@ -255,9 +270,11 @@ async function _syncSetting(room) {
255
270
  }
256
271
  for (const pid of Object.keys(room.jsirs || {})) {
257
272
  let jsir = room.jsirs[pid];
258
- for (const service of Object.keys(jsir.services || {})) {
273
+ for (let service of Object.keys(jsir.services || {})) {
259
274
  let serviceFns = jsir.services[service] || [];
260
-
275
+ if (service.endsWith("+")) {
276
+ service = service.substring(0, service.length - 1)
277
+ }
261
278
  let existFns = setting.services[service] || [];
262
279
  existFns.push(...serviceFns)
263
280
  setting.services[service] = [...new Set(existFns)]
@@ -356,8 +373,9 @@ async function syncConfigs() {
356
373
  let configs;
357
374
  try {
358
375
  configs = await reqFn(setting.configMainFnKey);
376
+ console.$msg(`syncConfigs load ${Object.keys(configs)} files`);
359
377
  } catch (e) {
360
- console.$debug("syncConfigs failed", e)
378
+ console.$warn("syncConfigs load failed", e)
361
379
  return;
362
380
  }
363
381
  let configDir = getConfigDir();
@@ -370,16 +388,16 @@ async function syncConfigs() {
370
388
  let currText = String(await fp.readFile(path));
371
389
  if (currText !== text) {
372
390
  await fp.writeFile(path, text)
373
- console.$debug(`update config ${key} success`);
391
+ console.$msg(`update config ${key} success`);
374
392
  }
375
393
  } else {
376
394
  await fp.writeFile(path, text)
377
- console.$debug(`create config ${key} success`);
395
+ console.$msg(`create config ${key} success`);
378
396
  }
379
397
  });
380
398
  }
381
399
  await batchAsync(fns, 33)
382
- console.$debug('syncConfigs done')
400
+ console.$msg('syncConfigs done')
383
401
  }
384
402
 
385
403
  async function cleanRoom(room) {
@@ -423,7 +441,12 @@ async function initRoomJsir(room) {
423
441
  let ss = key.split("/").map(trim).filter(i => i);
424
442
  if (ss.length > 3) {
425
443
  // 脚本空间service
426
- getOr(services, ss[1] + '/' + ss[2], []).push(ss[3])
444
+ let route = setting.routes[key]
445
+ let serviceKey = ss[1] + '/' + ss[2]
446
+ if (route.isApi) {
447
+ serviceKey = serviceKey + '+'
448
+ }
449
+ getOr(services, serviceKey, []).push(ss[3])
427
450
  } else if (ss.length > 2) {
428
451
  // jsir service
429
452
  getOr(services, ss[1], []).push(ss[2])
package/deps/util.js CHANGED
@@ -133,7 +133,6 @@ const $log = createLimitLogger(`${setting.name}.log`, {
133
133
  });
134
134
  const $error = createLimitLogger(`${setting.name}.error`, {
135
135
  logInfo: false,
136
- error: true,
137
136
  syncLogs: [$log]
138
137
  });
139
138
  // const $errorOnly = createLimitLogger(`${setting.name}.error`, {
@@ -146,7 +145,6 @@ const roomLog = createLimitLogger(`room.log`, {
146
145
  });
147
146
  const roomError = createLimitLogger(`room.error`, {
148
147
  logInfo: false,
149
- error: true,
150
148
  syncLogs: [roomLog]
151
149
  });
152
150
 
@@ -342,7 +340,7 @@ function createConsole(uniqueName, _logToFile, _errorToFile) {
342
340
  args = ['', ...args]
343
341
  }
344
342
  let _args = _consoleFns[key].args(args);
345
- if ("error" === key) {
343
+ if ("error" === key || "warn" === key) {
346
344
  errorToFile(..._args)
347
345
  } else {
348
346
  logToFile(..._args)
@@ -819,7 +817,6 @@ function createLimitLogger(fileName, {
819
817
  maxChars = 128 * 1024 * 1024,
820
818
  logInfo = true,
821
819
  time = true,
822
- error = false,
823
820
  syncLogs = []
824
821
  } = {}) {
825
822
  fileName = trim(fileName)
@@ -845,9 +842,6 @@ function createLimitLogger(fileName, {
845
842
  syncLogs.forEach(i => i(...args));
846
843
 
847
844
  let text = consoleStrs(...args)
848
- if (error) {
849
- setting.newError = true;
850
- }
851
845
  if (time) {
852
846
  let prefix = debugStr(`${timeStr('YYYY-MM-DD HH:mm:ss.SSS')} ${String(process.pid%100000).padStart(5, '0')}>`)
853
847
  text = `${prefix} ${text}`
@@ -2160,7 +2154,7 @@ function interceptStdStreams() {
2160
2154
  if(setting.enterOutputs) {
2161
2155
  setting.enterOutputs.push(chunk.toString());
2162
2156
  } else if (isRunningInBackground()) {
2163
- console.$log(chunk.toString().trimEnd());
2157
+ $log(chunk.toString().trimEnd());
2164
2158
  } else {
2165
2159
  originalStdoutWrite(chunk, ...args); // 保留原始行为
2166
2160
  }
@@ -2171,7 +2165,7 @@ function interceptStdStreams() {
2171
2165
  if(setting.enterOutputs) {
2172
2166
  setting.enterOutputs.push(chunk.toString());
2173
2167
  } else if (isRunningInBackground()) {
2174
- console.$error(chunk.toString().trimEnd());
2168
+ $error(chunk.toString().trimEnd());
2175
2169
  } else {
2176
2170
  originalStderrWrite(chunk, ...args); // 保留原始行为
2177
2171
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jsir",
3
- "version": "3.0.7",
3
+ "version": "3.0.9",
4
4
  "description": "JavaScript Script Management Tool",
5
5
  "main": "index.js",
6
6
  "scripts": {