@winccoa-tools-pack/npm-winccoa-core 0.1.1 → 0.2.1-33c7c0b

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 (33) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/dist/cjs/types/components/WinCCOAComponent.js +17 -2
  4. package/dist/cjs/types/components/WinCCOAComponent.js.map +1 -1
  5. package/dist/cjs/types/components/implementations/PmonComponent.js +268 -43
  6. package/dist/cjs/types/components/implementations/PmonComponent.js.map +1 -1
  7. package/dist/cjs/types/project/ProjEnvProject.js +94 -8
  8. package/dist/cjs/types/project/ProjEnvProject.js.map +1 -1
  9. package/dist/cjs/types/project/ProjEnvProjectConfig.js +17 -7
  10. package/dist/cjs/types/project/ProjEnvProjectConfig.js.map +1 -1
  11. package/dist/cjs/types/project/ProjEnvProjectRegistry.js +30 -3
  12. package/dist/cjs/types/project/ProjEnvProjectRegistry.js.map +1 -1
  13. package/dist/esm/types/components/WinCCOAComponent.js +17 -2
  14. package/dist/esm/types/components/WinCCOAComponent.js.map +1 -1
  15. package/dist/esm/types/components/implementations/PmonComponent.js +267 -43
  16. package/dist/esm/types/components/implementations/PmonComponent.js.map +1 -1
  17. package/dist/esm/types/project/ProjEnvProject.js +94 -8
  18. package/dist/esm/types/project/ProjEnvProject.js.map +1 -1
  19. package/dist/esm/types/project/ProjEnvProjectConfig.js +17 -7
  20. package/dist/esm/types/project/ProjEnvProjectConfig.js.map +1 -1
  21. package/dist/esm/types/project/ProjEnvProjectRegistry.js +30 -3
  22. package/dist/esm/types/project/ProjEnvProjectRegistry.js.map +1 -1
  23. package/dist/types/components/WinCCOAComponent.d.ts +1 -0
  24. package/dist/types/components/WinCCOAComponent.d.ts.map +1 -1
  25. package/dist/types/components/implementations/PmonComponent.d.ts +46 -3
  26. package/dist/types/components/implementations/PmonComponent.d.ts.map +1 -1
  27. package/dist/types/project/ProjEnv.d.ts +1 -1
  28. package/dist/types/project/ProjEnv.d.ts.map +1 -1
  29. package/dist/types/project/ProjEnvProject.d.ts +38 -3
  30. package/dist/types/project/ProjEnvProject.d.ts.map +1 -1
  31. package/dist/types/project/ProjEnvProjectRegistry.d.ts +1 -0
  32. package/dist/types/project/ProjEnvProjectRegistry.d.ts.map +1 -1
  33. package/package.json +9 -9
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2025 winccoa-tools-pack
3
+ Copyright (c) 2026 winccoa-tools-pack
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -225,7 +225,7 @@ We're excited to be part of your development journey.
225
225
 
226
226
  ## Quick Links
227
227
 
228
- • [📦 VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=mPokornyETM.wincc-oa-projects)
228
+ • [📦 npm package](https://www.npmjs.com/package/@winccoa-tools-pack/npm-winccoa-core)
229
229
  • [📚 Documentation](docs/dev/README.md)
230
230
  • [🐛 Report Issues](https://github.com/winccoa-tools-pack/npm-winccoa-core/issues)
231
231
 
@@ -234,16 +234,30 @@ class WinCCOAComponent {
234
234
  proc.stdout?.on('data', (d) => {
235
235
  const str = d.toString();
236
236
  this.stdOut += str;
237
- console.log(`[${new Date().toISOString()}]`, cmdId, 'STDOUT:', str); /* histEntry.stdOut += str; */
237
+ // console.log(
238
+ // `[${new Date().toISOString()}]`,
239
+ // cmdId,
240
+ // 'STDOUT:',
241
+ // str,
242
+ // ); /* histEntry.stdOut += str; */
238
243
  });
239
244
  proc.stderr?.on('data', (d) => {
240
245
  const str = d.toString();
241
246
  this.stdErr += str;
242
- console.log(`[${new Date().toISOString()}]`, cmdId, 'STDERR:', str); /* histEntry.stdErr += str; */
247
+ // console.log(
248
+ // `[${new Date().toISOString()}]`,
249
+ // cmdId,
250
+ // 'STDERR:',
251
+ // str,
252
+ // ); /* histEntry.stdErr += str; */
243
253
  });
244
254
  proc.on('close', (code) => {
245
255
  if (timeoutHandle)
246
256
  clearTimeout(timeoutHandle);
257
+ if (options.checkStdout) {
258
+ options.checkStdout(this.stdOut);
259
+ console.log(`[${new Date().toISOString()}]`, cmdId, 'stderr: ' + this.stdErr);
260
+ }
247
261
  resolve(code ?? 0);
248
262
  });
249
263
  proc.on('error', (err) => {
@@ -272,6 +286,7 @@ class WinCCOAComponent {
272
286
  * @throws Error if process fails to spawn or timeout is exceeded
273
287
  */
274
288
  async execAndCollectLines(cmdPath, args, timeout) {
289
+ console.log(`[${new Date().toISOString()}] Executing command for component ${this.getName()}:`, cmdPath, args, timeout ? `(timeout: ${timeout}ms)` : '');
275
290
  return new Promise((resolve, reject) => {
276
291
  const proc = (0, child_process_1.spawn)(cmdPath, args, { shell: false });
277
292
  let stdout = '';
@@ -1 +1 @@
1
- {"version":3,"file":"WinCCOAComponent.js","sourceRoot":"","sources":["../../../../src/types/components/WinCCOAComponent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WinCCOAComponent.js","sourceRoot":"","sources":["../../../../src/types/components/WinCCOAComponent.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,42 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PmonComponent = void 0;
3
+ exports.PmonComponent = exports.PmonComponentCredential = void 0;
4
4
  const WinCCOAComponent_js_1 = require("../WinCCOAComponent.js");
5
5
  const ProjEnvPmonStatus_js_1 = require("../../project/ProjEnvPmonStatus.js");
6
6
  const ProjEnv_js_1 = require("../../project/ProjEnv.js");
7
+ class PmonComponentCredential {
8
+ constructor(username, password) {
9
+ this.username = username;
10
+ this.password = password;
11
+ }
12
+ }
13
+ exports.PmonComponentCredential = PmonComponentCredential;
7
14
  class PmonComponent extends WinCCOAComponent_js_1.WinCCOAComponent {
15
+ constructor() {
16
+ //-------------------------------------------------------------------------
17
+ //@public members
18
+ //-------------------------------------------------------------------------
19
+ super(...arguments);
20
+ //-------------------------------------------------------------------------
21
+ //@private members
22
+ //-------------------------------------------------------------------------
23
+ this.currentCredentials = null;
24
+ }
25
+ //-------------------------------------------------------------------------
8
26
  /**
9
27
  * Returns the component name
10
28
  */
11
29
  getName() {
12
30
  return 'WCCILpmon';
13
31
  }
32
+ //-------------------------------------------------------------------------
14
33
  /**
15
34
  * Returns the component description
16
35
  */
17
36
  getDescription() {
18
37
  return 'Process Monitor';
19
38
  }
39
+ //-------------------------------------------------------------------------
20
40
  /**
21
41
  * Registers a sub-project using pmon's -regsubf option
22
42
  * @param projectPath - Path to the sub-project directory
@@ -24,9 +44,9 @@ class PmonComponent extends WinCCOAComponent_js_1.WinCCOAComponent {
24
44
  */
25
45
  async registerSubProject(projectPath) {
26
46
  const args = ['-regsubf', '-proj', projectPath, '-log', '+stderr'];
27
- const code = super.start(args);
28
- return code;
47
+ return this.startAndValidateOutput(args, { checkStdout: false });
29
48
  }
49
+ //-------------------------------------------------------------------------
30
50
  /**
31
51
  * Unregisters a project using pmon's -unreg option
32
52
  * @param projectName - Name of the project to unregister
@@ -36,9 +56,9 @@ class PmonComponent extends WinCCOAComponent_js_1.WinCCOAComponent {
36
56
  async unregisterProject(projectName) {
37
57
  // Use -unreg option to unregister project
38
58
  const args = ['-unreg', projectName, '-log', '+stderr'];
39
- const code = super.start(args);
40
- return code;
59
+ return this.startAndValidateOutput(args, { checkStdout: false });
41
60
  }
61
+ //-------------------------------------------------------------------------
42
62
  /**
43
63
  * Registers a runnable project using pmon's -config -autofreg -status options
44
64
  * @param configPath - Path to the project config file
@@ -52,11 +72,12 @@ class PmonComponent extends WinCCOAComponent_js_1.WinCCOAComponent {
52
72
  // Use -config -autofreg -status options to register runnable project
53
73
  const args = ['-config', configPath, '-log', '+stderr', '-autofreg', '-status'];
54
74
  super.setVersion(projectVersion);
55
- const code = super.start(args);
75
+ const code = this.startAndValidateOutput(args, { checkStdout: false });
56
76
  // the pmon returns 3 if the project is not running after registrations
57
77
  const state = this.pmonStateCodeToStatus(await code);
58
78
  return state !== ProjEnvPmonStatus_js_1.ProjEnvPmonStatus.Unknown ? 0 : -1;
59
79
  }
80
+ //-------------------------------------------------------------------------
60
81
  /**
61
82
  * Get pmon status. It check if the pmon is running or not
62
83
  */
@@ -66,61 +87,89 @@ class PmonComponent extends WinCCOAComponent_js_1.WinCCOAComponent {
66
87
  0=pmon is running, 3=pmon is stopped, 4=unknown
67
88
  */
68
89
  const args = ['-status', '-proj', projectName, '-log', '+stdout'];
69
- const code = super.start(args);
90
+ const code = this.startAndValidateOutput(args, { checkStdout: () => { } });
70
91
  return this.pmonStateCodeToStatus(await code);
71
92
  }
93
+ //-------------------------------------------------------------------------
72
94
  /**
73
95
  * Starts pmon only (without auto-starting managers)
74
96
  */
75
97
  async startPmonOnly(projectName) {
76
98
  const args = ['-proj', projectName, '-noAutostart'];
77
- return super.start(args, { detached: true, waitForLog: 'WAIT_MODE' });
99
+ return this.startAndValidateOutput(args, { detached: true, waitForLog: 'WAIT_MODE' });
78
100
  }
101
+ //-------------------------------------------------------------------------
79
102
  /**
80
103
  * Starts a project with all managers
81
104
  */
82
105
  async startProject(projectName, startAll = true) {
83
106
  let args = ['-proj', projectName];
84
107
  if (startAll) {
85
- args = args.concat(['-command', 'START_ALL:']);
108
+ args = args.concat(['-command', this.makeCliCredentials() + 'START_ALL:']);
86
109
  // INFO, 9/pmon, Das Projekt wurde gestartet und läuft. Gehe in den Überwachungsmodus
87
- return super.start(args, { waitForLog: '9/pmon' });
110
+ return this.startAndValidateOutput(args, { waitForLog: '9/pmon' });
88
111
  }
89
112
  else {
90
113
  // starting pmon only without extra arguments means, it will start the project too.
91
114
  // that means the pmon process will never end (hopefully, otherwise it crashed), so we need to detach
92
- return super.start(args, { detached: true, waitForLog: 'WAIT_MODE' });
115
+ return this.startAndValidateOutput(args, { detached: true, waitForLog: 'WAIT_MODE' });
93
116
  }
94
117
  }
118
+ //-------------------------------------------------------------------------
95
119
  /**
96
120
  * Stops all managers in a project
97
121
  */
98
122
  async stopProject(projectName) {
99
- const args = ['-proj', projectName, '-command', 'STOP_ALL:'];
123
+ const args = [
124
+ '-proj',
125
+ projectName,
126
+ '-command',
127
+ this.makeCliCredentials() + 'STOP_ALL:',
128
+ '-log',
129
+ '+stderr',
130
+ ];
100
131
  // INFO, 13/pmon, Projekt wurde komplett gestoppt - warte auf Befehle
101
- return super.start(args, { waitForLog: '13/pmon' });
132
+ return this.startAndValidateOutput(args, { waitForLog: '13/pmon' });
102
133
  }
134
+ //-------------------------------------------------------------------------
103
135
  /**
104
136
  * Stops all managers and exits pmon
105
137
  */
106
138
  async stopProjectAndPmon(projectName, timeout) {
107
- const args = ['-proj', projectName, '-stopWait'];
108
- return super.start(args, { timeout: timeout });
139
+ const args = ['-proj', projectName, '-stopWait', '-log', '+stderr'];
140
+ return this.startAndValidateOutput(args, { timeout: timeout, checkStdout: false });
109
141
  }
142
+ //-------------------------------------------------------------------------
110
143
  /**
111
144
  * Restarts all managers in a project
112
145
  */
113
146
  async restartProject(projectName) {
114
- const args = ['-proj', projectName, '-command', 'RESTART_ALL:'];
115
- return super.start(args);
147
+ const args = [
148
+ '-proj',
149
+ projectName,
150
+ '-command',
151
+ this.makeCliCredentials() + 'RESTART_ALL:',
152
+ '-log',
153
+ '+stderr',
154
+ ];
155
+ return this.startAndValidateOutput(args);
116
156
  }
157
+ //-------------------------------------------------------------------------
117
158
  /**
118
159
  * Sets pmon wait mode
119
160
  */
120
161
  async setWaitMode(projectName) {
121
- const args = ['-proj', projectName, '-command', 'WAIT_MODE:'];
122
- return super.start(args);
162
+ const args = [
163
+ '-proj',
164
+ projectName,
165
+ '-command',
166
+ this.makeCliCredentials() + 'WAIT_MODE:',
167
+ '-log',
168
+ '+stderr',
169
+ ];
170
+ return this.startAndValidateOutput(args);
123
171
  }
172
+ //-------------------------------------------------------------------------
124
173
  /**
125
174
  * Starts a specific manager by index
126
175
  */
@@ -129,32 +178,62 @@ class PmonComponent extends WinCCOAComponent_js_1.WinCCOAComponent {
129
178
  '-proj',
130
179
  projectName,
131
180
  '-command',
132
- 'SINGLE_MGR:START',
181
+ this.makeCliCredentials() + 'SINGLE_MGR:START',
133
182
  managerIndex.toString(),
183
+ '-log',
184
+ '+stderr',
134
185
  ];
135
- return super.start(args);
186
+ return this.startAndValidateOutput(args);
136
187
  }
188
+ //-------------------------------------------------------------------------
137
189
  /**
138
190
  * Stops a specific manager by index
139
191
  */
140
192
  async stopManager(projectName, managerIndex) {
141
- const args = ['-proj', projectName, '-command', 'SINGLE_MGR:STOP', managerIndex.toString()];
142
- return super.start(args);
193
+ const args = [
194
+ '-proj',
195
+ projectName,
196
+ '-command',
197
+ this.makeCliCredentials() + 'SINGLE_MGR:STOP',
198
+ managerIndex.toString(),
199
+ '-log',
200
+ '+stderr',
201
+ ];
202
+ return this.startAndValidateOutput(args);
143
203
  }
204
+ //-------------------------------------------------------------------------
144
205
  /**
145
206
  * Kills a specific manager by index
146
207
  */
147
208
  async killManager(projectName, managerIndex) {
148
- const args = ['-proj', projectName, '-command', 'SINGLE_MGR:KILL', managerIndex.toString()];
149
- return super.start(args);
209
+ const args = [
210
+ '-proj',
211
+ projectName,
212
+ '-command',
213
+ this.makeCliCredentials() + 'SINGLE_MGR:KILL',
214
+ managerIndex.toString(),
215
+ '-log',
216
+ '+stderr',
217
+ ];
218
+ return this.startAndValidateOutput(args);
150
219
  }
220
+ //-------------------------------------------------------------------------
151
221
  /**
152
222
  * Removes a specific manager by index
153
223
  */
154
224
  async removeManager(projectName, managerIndex) {
155
- const args = ['-proj', projectName, '-command', 'SINGLE_MGR:DEL', managerIndex.toString()];
156
- return super.start(args);
225
+ const args = [
226
+ '-proj',
227
+ projectName,
228
+ '-command',
229
+ this.makeCliCredentials() + 'SINGLE_MGR:DEL',
230
+ managerIndex.toString(),
231
+ '-log',
232
+ '+stderr',
233
+ ];
234
+ return this.startAndValidateOutput(args);
157
235
  }
236
+ //-------------------------------------------------------------------------
158
237
  /**
159
238
  * Gets the list of managers in a project
160
239
  */
@@ -163,12 +242,20 @@ class PmonComponent extends WinCCOAComponent_js_1.WinCCOAComponent {
163
242
  if (!pmonPath) {
164
243
  throw new Error('WCCILpmon executable not found');
165
244
  }
166
- const args = ['-proj', projectName, '-command', 'MGRLIST:LIST', '-log', '+stdout'];
245
+ const args = [
246
+ '-proj',
247
+ projectName,
248
+ '-command',
249
+ this.makeCliCredentials() + 'MGRLIST:LIST',
250
+ '-log',
251
+ '+stdout',
252
+ ];
167
253
  const callPath = pmonPath ?? '';
168
254
  const lines = await this.execAndCollectLines(callPath, args);
169
255
  const parsed = this.parseManagerList(lines.join('\n'));
170
256
  return parsed;
171
257
  }
258
+ //-------------------------------------------------------------------------
172
259
  /**
173
260
  * Convenience accessor for manager option (from MGRLIST:LIST) by index.
174
261
  * If `projectName` is provided, it will refresh the options list first.
@@ -186,42 +273,61 @@ once 30 3 1 -m gedi -n -num 5` to get the properties. It shall be mu more faster
186
273
  }
187
274
  return undefined;
188
275
  }
276
+ //-------------------------------------------------------------------------
277
+ /** Sets manager options at a specific index in project
278
+ *
279
+ * @param options
280
+ * @param projectName
281
+ * @param managerIndex
282
+ * @returns
283
+ */
189
284
  async setManagerOptionsAt(options, projectName, managerIndex) {
190
285
  const args = [
191
286
  '-proj',
192
287
  projectName,
193
288
  '-command',
194
- 'SINGLE_MGR:PROP_PUT',
289
+ this.makeCliCredentials() + 'SINGLE_MGR:PROP_PUT',
195
290
  managerIndex.toString(),
196
- options.startMode.toString(),
291
+ (0, ProjEnv_js_1.startModeToString)(options.startMode),
197
292
  options.secondToKill.toString(),
198
293
  options.resetStartCounter.toString(),
199
- options.restart.toString(),
294
+ options.resetMin.toString(),
200
295
  options.startOptions,
296
+ '-log',
297
+ '+stderr',
201
298
  ];
202
- return super.start(args);
299
+ return this.startAndValidateOutput(args);
203
300
  }
301
+ //-------------------------------------------------------------------------
204
302
  /** Inserts a manager at a specific index into project
205
303
  * @param options Manager options
206
304
  * @param projectName Project name
207
305
  * @param managerIndex Index to insert at
208
306
  */
209
307
  async insertManagerAt(options, projectName, managerIndex) {
308
+ if (managerIndex === undefined) {
309
+ managerIndex =
310
+ (await this.getManagerOptionsList(projectName).then((list) => list.length)) + 1;
311
+ }
312
+ // SINGLE_MGR:INS <idx> <manager> <startmode> <seckill> <restartcount> <resetmin> <args>
210
313
  const args = [
211
314
  '-proj',
212
315
  projectName,
213
316
  '-command',
214
- 'SINGLE_MGR:INS',
317
+ this.makeCliCredentials() + 'SINGLE_MGR:INS',
215
318
  managerIndex.toString(),
216
319
  options.component,
217
- options.startMode.toString(),
320
+ (0, ProjEnv_js_1.startModeToString)(options.startMode),
218
321
  options.secondToKill.toString(),
219
322
  options.resetStartCounter.toString(),
220
- options.restart.toString(),
323
+ options.resetMin.toString(),
221
324
  options.startOptions,
325
+ '-log',
326
+ '+stderr',
222
327
  ];
223
- return super.start(args);
328
+ return this.startAndValidateOutput(args);
224
329
  }
330
+ //-------------------------------------------------------------------------
225
331
  /** Sends a debug flag to a specific manager
226
332
  * @param flag Debug flag to send (e.g., '-dbg http', '-dbg all')
227
333
  * @param projectName Project name
@@ -232,14 +338,19 @@ once 30 3 1 -m gedi -n -num 5` to get the properties. It shall be mu more faster
232
338
  '-proj',
233
339
  projectName,
234
340
  '-command',
235
- 'SINGLE_MGR:DEBUG',
341
+ this.makeCliCredentials() + 'SINGLE_MGR:DEBUG',
236
342
  managerIndex.toString(),
237
343
  flag,
344
+ '-log',
345
+ '+stderr',
238
346
  ];
239
- return super.start(args);
347
+ return this.startAndValidateOutput(args);
240
348
  }
241
- /**
242
- * Gets detailed project and manager status (MGRLIST:STATI) and returns typed managers and optional project state
349
+ //-------------------------------------------------------------------------
350
+ /** Gets detailed project and manager status (MGRLIST:STATI) and returns typed
351
+ * managers and optional project state
352
+ * @param projectName Project name
353
+ * @returns Parsed project status
243
354
  */
244
355
  async getProjectStatus(projectName) {
245
356
  const pmonPath = this.getPath();
@@ -247,13 +358,21 @@ once 30 3 1 -m gedi -n -num 5` to get the properties. It shall be mu more faster
247
358
  const errorMsg = 'Could not locate WCCILpmon executable';
248
359
  throw new Error(errorMsg);
249
360
  }
250
- const args = ['-proj', projectName, '-command', 'MGRLIST:STATI', '-log', '+stdout'];
361
+ const args = [
362
+ '-proj',
363
+ projectName,
364
+ '-command',
365
+ this.makeCliCredentials() + 'MGRLIST:STATI',
366
+ '-log',
367
+ '+stdout',
368
+ ];
251
369
  const callPath = pmonPath ?? '';
252
370
  const lines = await this.execAndCollectLines(callPath, args);
253
371
  const raw = lines.join('\n');
254
372
  const parsed = this.parseManagerStatus(raw);
255
373
  return parsed;
256
374
  }
375
+ //-------------------------------------------------------------------------
257
376
  /**
258
377
  * Convenience method to get a single manager status by index.
259
378
  * If `projectName` is provided, it will refresh the list first.
@@ -269,6 +388,109 @@ once 30 3 1 -m gedi -n -num 5` to get the properties. It shall be mu more faster
269
388
  // No cached data and no project specified
270
389
  return undefined;
271
390
  }
391
+ //-------------------------------------------------------------------------
392
+ /** Saves credentials for pmon authentication
393
+ *
394
+ * @param projectName Project name
395
+ * @param credentials Credentials to save
396
+ * @returns
397
+ */
398
+ async saveCredentials(projectName, credentials) {
399
+ if (!this.currentCredentials) {
400
+ this.currentCredentials = { username: '', password: '' };
401
+ }
402
+ this.validateCredentials(credentials);
403
+ const code = this._storeCredentials(projectName, this.currentCredentials, credentials);
404
+ if ((await code) === 0) {
405
+ this.currentCredentials = credentials;
406
+ console.log('Saved credentials for project', projectName);
407
+ }
408
+ else {
409
+ console.log('Failed to save credentials for project', projectName);
410
+ }
411
+ return code;
412
+ }
413
+ //-------------------------------------------------------------------------
414
+ /** Validates pmon credentials
415
+ *
416
+ * @param credentials
417
+ * throws Error if credentials are invalid
418
+ */
419
+ validateCredentials(credentials) {
420
+ if (!credentials.username || credentials.username.trim() === '') {
421
+ throw new Error('Username cannot be empty');
422
+ }
423
+ if (!credentials.password || credentials.password.trim() === '') {
424
+ throw new Error('Password cannot be empty');
425
+ }
426
+ if (credentials.username.indexOf('#') !== -1) {
427
+ throw new Error('Username cannot contains the character "#"');
428
+ }
429
+ if (credentials.password.indexOf('#') !== -1) {
430
+ throw new Error('Password cannot contains the character "#"');
431
+ }
432
+ }
433
+ //-------------------------------------------------------------------------
434
+ /** Gets the currently used credentials
435
+ *
436
+ * @returns
437
+ */
438
+ getCredentials() {
439
+ return this.currentCredentials;
440
+ }
441
+ //-------------------------------------------------------------------------
442
+ /** Verifies pmon credentials
443
+ *
444
+ * @param projectName Project name
445
+ * @param credentials Credentials to verify
446
+ * @returns
447
+ */
448
+ verifyCredentials(projectName, credentials) {
449
+ const oldCredentials = credentials;
450
+ // just try to store the same credentials again
451
+ return this._storeCredentials(projectName, oldCredentials, credentials).then((code) => code === 0);
452
+ }
453
+ makeCliCredentials() {
454
+ if (!this.currentCredentials) {
455
+ return '';
456
+ }
457
+ return `${this.currentCredentials.username}#${this.currentCredentials.password}`;
458
+ }
459
+ //-------------------------------------------------------------------------
460
+ _storeCredentials(projectName, oldCredentials, newCredentials) {
461
+ const args = [
462
+ '-proj',
463
+ projectName,
464
+ '-auth',
465
+ oldCredentials.username,
466
+ oldCredentials.password,
467
+ newCredentials.username,
468
+ newCredentials.password,
469
+ '-log',
470
+ '+stderr',
471
+ ];
472
+ return this.startAndValidateOutput(args);
473
+ }
474
+ startAndValidateOutput(args = [], options = {}) {
475
+ if (options.checkStdout === undefined) {
476
+ options.checkStdout = (stdout) => {
477
+ if (!stdout) {
478
+ console.warn('WARNING: Pmon command returned empty output. Do you means stdErr: ' +
479
+ this.stdErr);
480
+ return;
481
+ }
482
+ stdout = stdout.trim();
483
+ if (stdout != 'OK') {
484
+ console.error('ERROR: Pmon command failed with output:', stdout);
485
+ }
486
+ else if (stdout.startsWith('ERROR')) {
487
+ throw new Error(`Pmon command failed with error: ${stdout}`);
488
+ }
489
+ };
490
+ }
491
+ return super.start(args, options);
492
+ }
493
+ //-------------------------------------------------------------------------
272
494
  /** Converts pmon exit code to ProjEnvPmonStatus
273
495
  *
274
496
  * @param code
@@ -285,6 +507,7 @@ once 30 3 1 -m gedi -n -num 5` to get the properties. It shall be mu more faster
285
507
  status = ProjEnvPmonStatus_js_1.ProjEnvPmonStatus.Unknown;
286
508
  return status;
287
509
  }
510
+ //-------------------------------------------------------------------------
288
511
  // Private parser for manager list output
289
512
  parseManagerList(output) {
290
513
  const lines = output
@@ -327,13 +550,14 @@ once 30 3 1 -m gedi -n -num 5` to get the properties. It shall be mu more faster
327
550
  component: name,
328
551
  startMode: startModeEnum,
329
552
  secondToKill: seckill,
330
- restart: restartCount,
331
- resetStartCounter: resetMin,
553
+ resetMin: resetMin,
554
+ resetStartCounter: restartCount,
332
555
  startOptions: args,
333
556
  });
334
557
  }
335
558
  return result;
336
559
  }
560
+ //-------------------------------------------------------------------------
337
561
  // Parse project state line from STATI output
338
562
  parseProjectState(line) {
339
563
  const parts = line.trim().split(/\s+/);
@@ -370,6 +594,7 @@ once 30 3 1 -m gedi -n -num 5` to get the properties. It shall be mu more faster
370
594
  }
371
595
  return null;
372
596
  }
597
+ //-------------------------------------------------------------------------
373
598
  // Parse STATI output into typed managers and project state
374
599
  parseManagerStatus(output) {
375
600
  const managers = [];