verteilen-core 1.2.4 → 1.2.7

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 (142) hide show
  1. package/dist/client/analysis.d.ts +35 -0
  2. package/dist/client/analysis.js +382 -0
  3. package/dist/client/client.d.ts +25 -0
  4. package/dist/client/client.js +227 -0
  5. package/dist/client/cluster.d.ts +1 -0
  6. package/dist/{src/client → client}/cluster.js +1 -2
  7. package/dist/client/database.d.ts +13 -0
  8. package/dist/client/database.js +37 -0
  9. package/dist/client/execute.d.ts +24 -0
  10. package/dist/{src/client → client}/execute.js +61 -51
  11. package/dist/client/http.d.ts +7 -0
  12. package/dist/client/http.js +40 -0
  13. package/dist/client/javascript.d.ts +47 -0
  14. package/dist/{src/client → client}/javascript.js +110 -136
  15. package/dist/client/job_database.d.ts +10 -0
  16. package/dist/client/job_database.js +34 -0
  17. package/dist/client/job_execute.d.ts +20 -0
  18. package/dist/client/job_execute.js +173 -0
  19. package/dist/client/os.d.ts +29 -0
  20. package/dist/client/os.js +197 -0
  21. package/dist/client/resource.d.ts +7 -0
  22. package/dist/client/resource.js +107 -0
  23. package/dist/client/shell.d.ts +16 -0
  24. package/dist/client/shell.js +122 -0
  25. package/dist/computed.d.ts +13 -0
  26. package/dist/index.d.ts +3 -0
  27. package/dist/index.js +3 -3
  28. package/dist/interface/base.d.ts +70 -0
  29. package/dist/interface/bus.d.ts +90 -0
  30. package/dist/interface/enum.d.ts +143 -0
  31. package/dist/interface/execute.d.ts +20 -0
  32. package/dist/interface/record.d.ts +93 -0
  33. package/dist/interface/server.d.ts +76 -0
  34. package/dist/interface/struct.d.ts +182 -0
  35. package/dist/interface/table.d.ts +20 -0
  36. package/dist/interface/ui.d.ts +29 -0
  37. package/dist/interface.d.ts +29 -0
  38. package/dist/plugins/i18n.d.ts +1666 -0
  39. package/dist/script/console_manager.d.ts +18 -0
  40. package/dist/script/console_manager.js +131 -0
  41. package/dist/script/console_server_manager.d.ts +13 -0
  42. package/dist/script/console_server_manager.js +40 -0
  43. package/dist/script/execute/base.d.ts +45 -0
  44. package/dist/script/execute/base.js +200 -0
  45. package/dist/script/execute/feedback.d.ts +12 -0
  46. package/dist/script/execute/feedback.js +179 -0
  47. package/dist/script/execute/interface.d.ts +8 -0
  48. package/dist/script/execute/region_job.d.ts +5 -0
  49. package/dist/{src/script → script}/execute/region_job.js +1 -0
  50. package/dist/script/execute/region_project.d.ts +10 -0
  51. package/dist/{src/script → script}/execute/region_project.js +4 -0
  52. package/dist/script/execute/region_subtask.d.ts +5 -0
  53. package/dist/{src/script → script}/execute/region_subtask.js +1 -0
  54. package/dist/script/execute/region_task.d.ts +10 -0
  55. package/dist/{src/script → script}/execute/region_task.js +4 -0
  56. package/dist/script/execute/runner.d.ts +14 -0
  57. package/dist/script/execute/runner.js +264 -0
  58. package/dist/script/execute/util_parser.d.ts +14 -0
  59. package/dist/script/execute/util_parser.js +135 -0
  60. package/dist/script/execute_manager.d.ts +25 -0
  61. package/dist/script/execute_manager.js +297 -0
  62. package/dist/script/socket_manager.d.ts +31 -0
  63. package/dist/script/socket_manager.js +263 -0
  64. package/dist/script/webhook_manager.d.ts +3 -0
  65. package/dist/script/webhook_server_manager.d.ts +13 -0
  66. package/dist/script/webhook_server_manager.js +133 -0
  67. package/dist/server/detail.d.ts +72 -0
  68. package/dist/server/detail.js +451 -0
  69. package/dist/server/io.d.ts +46 -0
  70. package/dist/{src/server → server}/io.js +42 -51
  71. package/dist/server/plugin.d.ts +18 -0
  72. package/dist/{src/server → server}/plugin.js +45 -54
  73. package/dist/server/server.d.ts +27 -0
  74. package/dist/server/server.js +53 -0
  75. package/dist/server.d.ts +4 -0
  76. package/dist/util/console_handle.d.ts +20 -0
  77. package/dist/util/console_handle.js +244 -0
  78. package/dist/util/log_handle.d.ts +23 -0
  79. package/dist/util/log_handle.js +224 -0
  80. package/index.ts +1 -6
  81. package/package.json +1 -1
  82. package/src/index.ts +6 -0
  83. package/test/TEST.d.ts +1 -0
  84. package/test/TEST.js +88 -0
  85. package/test/client/execute.test.d.ts +1 -0
  86. package/{dist/test → test}/client/execute.test.js +6 -15
  87. package/test/client/javascript.test.d.ts +1 -0
  88. package/{dist/test → test}/client/javascript.test.js +21 -30
  89. package/test/client/server.test.d.ts +1 -0
  90. package/test/client/task.test.d.ts +1 -0
  91. package/{dist/test → test}/client/task.test.js +1 -1
  92. package/test/script/parser.test.d.ts +1 -0
  93. package/test/script/socket.test.d.ts +1 -0
  94. package/tsconfig.json +8 -4
  95. package/dist/jest.config.js +0 -8
  96. package/dist/src/client/analysis.js +0 -383
  97. package/dist/src/client/client.js +0 -233
  98. package/dist/src/client/database.js +0 -36
  99. package/dist/src/client/http.js +0 -37
  100. package/dist/src/client/job_database.js +0 -36
  101. package/dist/src/client/job_execute.js +0 -171
  102. package/dist/src/client/job_parameter.js +0 -36
  103. package/dist/src/client/os.js +0 -202
  104. package/dist/src/client/parameter.js +0 -36
  105. package/dist/src/client/resource.js +0 -118
  106. package/dist/src/client/shell.js +0 -118
  107. package/dist/src/script/console_manager.js +0 -125
  108. package/dist/src/script/console_server_manager.js +0 -37
  109. package/dist/src/script/execute/base.js +0 -197
  110. package/dist/src/script/execute/feedback.js +0 -188
  111. package/dist/src/script/execute/runner.js +0 -274
  112. package/dist/src/script/execute/util_parser.js +0 -137
  113. package/dist/src/script/execute_manager.js +0 -309
  114. package/dist/src/script/socket_manager.js +0 -260
  115. package/dist/src/script/webhook_server_manager.js +0 -140
  116. package/dist/src/server/detail.js +0 -428
  117. package/dist/src/server/server.js +0 -51
  118. package/dist/src/util/console_handle.js +0 -248
  119. package/dist/src/util/log_handle.js +0 -230
  120. package/dist/src/util/server/console_handle.js +0 -248
  121. package/dist/src/util/server/log_handle.js +0 -230
  122. package/dist/test/TEST.js +0 -105
  123. /package/dist/{src/computed.js → computed.js} +0 -0
  124. /package/dist/{src/interface → interface}/base.js +0 -0
  125. /package/dist/{src/interface → interface}/bus.js +0 -0
  126. /package/dist/{src/interface → interface}/enum.js +0 -0
  127. /package/dist/{src/interface → interface}/execute.js +0 -0
  128. /package/dist/{src/interface → interface}/record.js +0 -0
  129. /package/dist/{src/interface → interface}/server.js +0 -0
  130. /package/dist/{src/interface → interface}/struct.js +0 -0
  131. /package/dist/{src/interface → interface}/table.js +0 -0
  132. /package/dist/{src/interface → interface}/ui.js +0 -0
  133. /package/dist/{src/interface.js → interface.js} +0 -0
  134. /package/dist/{src/lan → lan}/en.json +0 -0
  135. /package/dist/{src/lan → lan}/zh_TW.json +0 -0
  136. /package/dist/{src/plugins → plugins}/i18n.js +0 -0
  137. /package/dist/{src/script → script}/execute/interface.js +0 -0
  138. /package/dist/{src/script → script}/webhook_manager.js +0 -0
  139. /package/dist/{src/server.js → server.js} +0 -0
  140. /package/{dist/test → test}/client/server.test.js +0 -0
  141. /package/{dist/test → test}/script/parser.test.js +0 -0
  142. /package/{dist/test → test}/script/socket.test.js +0 -0
@@ -0,0 +1,244 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Util_Server_Console_Proxy = exports.Util_Server_Console = void 0;
4
+ const interface_1 = require("../interface");
5
+ class Util_Server_Console {
6
+ receivedPack = (model, record) => {
7
+ const pass = model.manager.Register();
8
+ if (pass == -1) {
9
+ model.record.running = false;
10
+ model.record.stop = true;
11
+ return false;
12
+ }
13
+ model.record.projects = record.projects;
14
+ model.record.nodes = record.nodes;
15
+ model.record.project_state = model.record.projects.map(x => {
16
+ return {
17
+ uuid: x.uuid,
18
+ state: interface_1.ExecuteState.NONE
19
+ };
20
+ });
21
+ model.record.project_index = pass;
22
+ model.record.project = record.projects[pass].uuid;
23
+ model.record.task_index = 0;
24
+ model.record.task_state = model.record.projects[0].task.map(x => {
25
+ return {
26
+ uuid: x.uuid,
27
+ state: interface_1.ExecuteState.NONE
28
+ };
29
+ });
30
+ model.record.task_state[0].state = interface_1.ExecuteState.RUNNING;
31
+ model.record.task_detail = [];
32
+ const task = model.record.projects[model.record.project_index]?.task[model.record.task_index];
33
+ const count = task.cronjob ? (task?.jobs.length ?? 0) : 1;
34
+ for (let i = 0; i < count; i++) {
35
+ model.record.task_detail.push({
36
+ index: i,
37
+ node: "",
38
+ message: [],
39
+ state: interface_1.ExecuteState.NONE
40
+ });
41
+ }
42
+ model.manager.Update();
43
+ return true;
44
+ };
45
+ }
46
+ exports.Util_Server_Console = Util_Server_Console;
47
+ class Util_Server_Console_Proxy {
48
+ model;
49
+ constructor(_model) {
50
+ this.model = _model;
51
+ }
52
+ get execute_proxy() {
53
+ const d = {
54
+ executeProjectStart: (data) => { this.execute_project_start(data); },
55
+ executeProjectFinish: (data) => { this.execute_project_finish(data); },
56
+ executeTaskStart: (data) => { this.execute_task_start(data); },
57
+ executeTaskFinish: (data) => { this.execute_task_finish(data); },
58
+ executeSubtaskStart: (data) => { this.execute_subtask_start(data); },
59
+ executeSubtaskUpdate: (data) => { this.execute_subtask_update(data); },
60
+ executeSubtaskFinish: (data) => { this.execute_subtask_end(data); },
61
+ executeJobStart: (data) => { this.execute_job_start(data); },
62
+ executeJobFinish: (data) => { this.execute_job_finish(data); },
63
+ feedbackMessage: (data) => { this.feedback_message(data); },
64
+ updateDatabase: (data) => { this.update_runtime_database(data); }
65
+ };
66
+ return d;
67
+ }
68
+ execute_project_start = (d) => {
69
+ const index = d[1];
70
+ if (index == -1)
71
+ return;
72
+ this.model.record.project = d[0].uuid;
73
+ this.model.record.project_index = index;
74
+ this.model.record.project_state[index].state = interface_1.ExecuteState.RUNNING;
75
+ this.model.record.task_state = this.model.record.projects[index].task.map(x => {
76
+ return {
77
+ uuid: x.uuid,
78
+ state: interface_1.ExecuteState.NONE
79
+ };
80
+ });
81
+ this.model.record.task_detail = [];
82
+ const task = this.model.record.projects[this.model.record.project_index]?.task[this.model.record.task_index];
83
+ const count = task.cronjob ? (task?.jobs.length ?? 0) : 1;
84
+ for (let i = 0; i < count; i++) {
85
+ this.model.record.task_detail.push({
86
+ index: i,
87
+ node: "",
88
+ message: [],
89
+ state: interface_1.ExecuteState.NONE
90
+ });
91
+ }
92
+ console.log("project start: ", this.model.record.projects.length, index);
93
+ };
94
+ execute_project_finish = (d) => {
95
+ if (this.model.record.process_type >= 1) {
96
+ this.model.record.running = false;
97
+ this.model.record.stop = true;
98
+ }
99
+ const index = d[1];
100
+ const size = this.model.record.projects.length;
101
+ if (index == -1)
102
+ return;
103
+ this.model.record.project = "";
104
+ this.model.record.project_state[index].state = interface_1.ExecuteState.FINISH;
105
+ this.model.record.para = undefined;
106
+ console.log("project finish: ", this.model.record.projects.length, index);
107
+ if (index == size - 1) {
108
+ this.model.record.command.push(['clean']);
109
+ }
110
+ };
111
+ execute_task_start = (d) => {
112
+ if (this.model.record.project_index == -1)
113
+ return;
114
+ const index = this.model.record.projects[this.model.record.project_index].task.findIndex(x => x.uuid == d[0].uuid);
115
+ if (index == -1)
116
+ return;
117
+ this.model.record.useCron = d[0].cronjob;
118
+ this.model.record.task = d[0].uuid;
119
+ this.model.record.task_index = index;
120
+ this.model.record.task_state[index].state = interface_1.ExecuteState.RUNNING;
121
+ for (let i = 0; i < index; i++)
122
+ this.model.record.task_state[i].state = interface_1.ExecuteState.FINISH;
123
+ for (let i = index + 1; i < this.model.record.task_state.length; i++)
124
+ this.model.record.task_state[i].state = interface_1.ExecuteState.NONE;
125
+ this.model.record.task_detail = [];
126
+ const p = this.model.record.projects[this.model.record.project_index];
127
+ const t = p.task[this.model.record.task_index];
128
+ const count = this.model.manager.get_task_state_count(t);
129
+ for (let i = 0; i < count; i++) {
130
+ this.model.record.task_detail.push({
131
+ index: i,
132
+ node: "",
133
+ message: [],
134
+ state: interface_1.ExecuteState.NONE
135
+ });
136
+ }
137
+ };
138
+ execute_task_finish = (d) => {
139
+ if (this.model.record.process_type == 2) {
140
+ this.model.record.running = false;
141
+ this.model.record.stop = true;
142
+ }
143
+ if (this.model.record.project_index == -1)
144
+ return;
145
+ const index = this.model.record.projects[this.model.record.project_index].task.findIndex(x => x.uuid == d.uuid);
146
+ if (index == -1)
147
+ return;
148
+ this.model.record.useCron = false;
149
+ this.model.record.task = "";
150
+ this.model.record.task_state[index].state = interface_1.ExecuteState.FINISH;
151
+ if (index + 1 < this.model.record.task_state.length - 1) {
152
+ this.model.record.task_state[index + 1].state = interface_1.ExecuteState.RUNNING;
153
+ }
154
+ };
155
+ execute_subtask_start = (d) => {
156
+ try {
157
+ this.model.record.task_detail[d[1]].node = d[2] ?? '';
158
+ this.model.record.task_detail[d[1]].state = interface_1.ExecuteState.RUNNING;
159
+ }
160
+ catch (error) {
161
+ console.error(`execute_subtask_start`, error.message);
162
+ }
163
+ };
164
+ execute_subtask_update = (d) => {
165
+ if (this.model.record.task_detail.length > d[1]) {
166
+ this.model.record.task_detail[d[1]].node = d[2];
167
+ this.model.record.task_detail[d[1]].state = d[3];
168
+ }
169
+ else {
170
+ console.error(`subtask_start ${d[1]} is out of range: ${this.model.record.task_detail.length}`);
171
+ }
172
+ };
173
+ execute_subtask_end = (d) => {
174
+ try {
175
+ this.model.record.task_detail[d[1]].state = interface_1.ExecuteState.FINISH;
176
+ }
177
+ catch (error) {
178
+ console.error(`execute_subtask_end`, error.message);
179
+ }
180
+ };
181
+ execute_job_start = (d) => {
182
+ if (this.model.record.project_index == -1)
183
+ return;
184
+ if (!this.model.record.useCron) {
185
+ this.model.record.task_detail[0].node = d[2];
186
+ }
187
+ };
188
+ execute_job_finish = (d) => {
189
+ if (d[3] == 1) {
190
+ const task = this.model.record.projects[this.model.record.project_index].task[this.model.record.task_index];
191
+ const index = task.jobs.findIndex(x => x.uuid == d[0].uuid);
192
+ if (index != -1 && task.jobs[index].category == interface_1.JobCategory.Condition) {
193
+ const cr = task.jobs[index].number_args[0];
194
+ if (cr == interface_1.ConditionResult.None)
195
+ return;
196
+ this.model.record.command.push(['stop']);
197
+ let timer;
198
+ timer = setInterval(() => {
199
+ if (this.model.record.running == false) {
200
+ clearInterval(timer);
201
+ const state = (cr == interface_1.ConditionResult.ThrowTask || cr == interface_1.ConditionResult.ThrowProject) ? interface_1.ExecuteState.ERROR : interface_1.ExecuteState.SKIP;
202
+ const target = this.model.record.task_detail[d[1]];
203
+ if (target != undefined) {
204
+ target.state = state;
205
+ }
206
+ if (cr == interface_1.ConditionResult.Pause)
207
+ return;
208
+ if (cr == interface_1.ConditionResult.SkipProject || cr == interface_1.ConditionResult.ThrowProject) {
209
+ this.model.record.command.push(['skip', 0, state]);
210
+ if (this.model.record.project.length > 0) {
211
+ if (this.model.record.process_type == 0) {
212
+ this.model.record.command.push(['execute', this.model.record.process_type]);
213
+ }
214
+ }
215
+ }
216
+ else if (cr == interface_1.ConditionResult.SkipTask || cr == interface_1.ConditionResult.ThrowTask) {
217
+ this.model.record.command.push(['skip', 1, state]);
218
+ if (this.model.record.project.length > 0) {
219
+ if (this.model.record.process_type == 0) {
220
+ this.model.record.command.push(['execute', this.model.record.process_type]);
221
+ }
222
+ }
223
+ }
224
+ }
225
+ }, 1000);
226
+ }
227
+ }
228
+ };
229
+ feedback_message = (d) => {
230
+ if (d.index == undefined || d.index == -1)
231
+ return;
232
+ const container = this.model.record.task_detail[d.index];
233
+ if (container != undefined) {
234
+ container.message.push(d.message);
235
+ if (container.message.length > interface_1.MESSAGE_LIMIT) {
236
+ container.message.shift();
237
+ }
238
+ }
239
+ };
240
+ update_runtime_database = (d) => {
241
+ this.model.record.para = d;
242
+ };
243
+ }
244
+ exports.Util_Server_Console_Proxy = Util_Server_Console_Proxy;
@@ -0,0 +1,23 @@
1
+ import { ExecutePair, ExecuteProxy, ExecuteState, FeedBack, Job, Log, Database, Preference, Project, Task } from "../interface";
2
+ export declare class Util_Server_Log_Proxy {
3
+ model: ExecutePair;
4
+ logs: Log;
5
+ preference: Preference;
6
+ private task_index;
7
+ private uuid;
8
+ private get target_log();
9
+ constructor(_model: ExecutePair, _log: Log, _preference: Preference);
10
+ get execute_proxy(): ExecuteProxy;
11
+ execute_project_start: (d: [Project, number]) => Promise<void>;
12
+ execute_project_finish: (d: [Project, number]) => void;
13
+ execute_task_start: (d: [Task, number]) => void;
14
+ execute_task_finish: (d: Task) => void;
15
+ execute_subtask_start: (d: [Task, number, string]) => void;
16
+ execute_subtask_update: (d: [Task, number, string, ExecuteState]) => void;
17
+ execute_subtask_end: (d: [Task, number, string]) => void;
18
+ execute_job_start: (d: [Job, number, string]) => void;
19
+ execute_job_finish: (d: [Job, number, string, number]) => void;
20
+ feedback_message: (d: FeedBack) => void;
21
+ update_runtime_database: (d: Database) => void;
22
+ getnewname: (name: string) => Promise<string>;
23
+ }
@@ -0,0 +1,224 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.Util_Server_Log_Proxy = void 0;
37
+ const uuid_1 = require("uuid");
38
+ const interface_1 = require("../interface");
39
+ const fs = __importStar(require("fs"));
40
+ class Util_Server_Log_Proxy {
41
+ model;
42
+ logs;
43
+ preference;
44
+ task_index = 0;
45
+ uuid = '';
46
+ get target_log() {
47
+ return this.logs.logs.find(x => x.uuid == this.uuid);
48
+ }
49
+ constructor(_model, _log, _preference) {
50
+ this.model = _model;
51
+ this.logs = _log;
52
+ this.preference = _preference;
53
+ }
54
+ get execute_proxy() {
55
+ const d = {
56
+ executeProjectStart: (data) => { this.execute_project_start(data); },
57
+ executeProjectFinish: (data) => { this.execute_project_finish(data); },
58
+ executeTaskStart: (data) => { this.execute_task_start(data); },
59
+ executeTaskFinish: (data) => { this.execute_task_finish(data); },
60
+ executeSubtaskStart: (data) => { this.execute_subtask_start(data); },
61
+ executeSubtaskUpdate: (data) => { this.execute_subtask_update(data); },
62
+ executeSubtaskFinish: (data) => { this.execute_subtask_end(data); },
63
+ executeJobStart: (data) => { this.execute_job_start(data); },
64
+ executeJobFinish: (data) => { this.execute_job_finish(data); },
65
+ feedbackMessage: (data) => { this.feedback_message(data); },
66
+ updateDatabase: (data) => { this.update_runtime_database(data); }
67
+ };
68
+ return d;
69
+ }
70
+ execute_project_start = async (d) => {
71
+ const target = this.model.record.projects[this.model.record.project_index];
72
+ const title = await this.getnewname(target.title);
73
+ this.uuid = (0, uuid_1.v6)();
74
+ const newlog = {
75
+ uuid: this.uuid,
76
+ filename: title,
77
+ dirty: true,
78
+ output: this.preference.log,
79
+ project: target,
80
+ state: interface_1.ExecuteState.RUNNING,
81
+ start_timer: Date.now(),
82
+ database: d[0].database,
83
+ end_timer: 0,
84
+ logs: target.task.map(x => {
85
+ return {
86
+ start_timer: 0,
87
+ end_timer: 0,
88
+ task_state: {
89
+ uuid: x.uuid,
90
+ state: interface_1.ExecuteState.NONE
91
+ },
92
+ task_detail: []
93
+ };
94
+ })
95
+ };
96
+ this.logs.logs = [newlog].concat(this.logs.logs);
97
+ };
98
+ execute_project_finish = (d) => {
99
+ if (this.target_log == undefined)
100
+ return;
101
+ this.target_log.state = interface_1.ExecuteState.FINISH;
102
+ this.target_log.end_timer = Date.now();
103
+ this.target_log.dirty = true;
104
+ };
105
+ execute_task_start = (d) => {
106
+ if (this.target_log == undefined)
107
+ return;
108
+ const index = this.target_log.project.task.findIndex(x => x.uuid == d[0].uuid);
109
+ if (index == -1)
110
+ return;
111
+ this.task_index = index;
112
+ this.target_log.logs[this.task_index].task_detail = [];
113
+ const p = this.model.record.projects[this.model.record.project_index];
114
+ const t = p.task[this.task_index];
115
+ const count = this.model.manager.get_task_state_count(t);
116
+ for (let i = 0; i < count; i++) {
117
+ this.target_log.logs[this.task_index].task_detail.push({
118
+ index: i,
119
+ node: "",
120
+ message: [],
121
+ state: interface_1.ExecuteState.NONE
122
+ });
123
+ }
124
+ if (this.target_log.logs.length > this.task_index) {
125
+ this.target_log.logs[this.task_index].task_state.state = interface_1.ExecuteState.RUNNING;
126
+ this.target_log.logs[this.task_index].start_timer = Date.now();
127
+ this.target_log.dirty = true;
128
+ }
129
+ };
130
+ execute_task_finish = (d) => {
131
+ if (this.target_log == undefined)
132
+ return;
133
+ if (this.target_log.logs.length > this.task_index) {
134
+ this.target_log.logs[this.task_index].task_state.state = interface_1.ExecuteState.FINISH;
135
+ this.target_log.logs[this.task_index].end_timer = Date.now();
136
+ this.target_log.dirty = true;
137
+ }
138
+ };
139
+ execute_subtask_start = (d) => {
140
+ if (this.target_log == undefined)
141
+ return;
142
+ if (this.target_log.logs[this.task_index].task_detail.length > d[1]) {
143
+ this.target_log.logs[this.task_index].task_detail[d[1]].state = interface_1.ExecuteState.RUNNING;
144
+ this.target_log.dirty = true;
145
+ }
146
+ };
147
+ execute_subtask_update = (d) => {
148
+ if (this.target_log == undefined)
149
+ return;
150
+ if (this.target_log.logs[this.task_index].task_detail.length > d[1]) {
151
+ this.target_log.logs[this.task_index].task_detail[d[1]].state = d[3];
152
+ this.target_log.dirty = true;
153
+ }
154
+ };
155
+ execute_subtask_end = (d) => {
156
+ if (this.target_log == undefined)
157
+ return;
158
+ if (this.target_log.logs[this.task_index].task_detail.length > d[1]) {
159
+ this.target_log.logs[this.task_index].task_detail[d[1]].state = interface_1.ExecuteState.FINISH;
160
+ this.target_log.dirty = true;
161
+ }
162
+ };
163
+ execute_job_start = (d) => {
164
+ };
165
+ execute_job_finish = (d) => {
166
+ if (this.target_log == undefined)
167
+ return;
168
+ if (d[3] == 1) {
169
+ const currentLog = this.target_log;
170
+ const task = currentLog.project.task[this.task_index];
171
+ const index = task.jobs.findIndex(x => x.uuid == d[0].uuid);
172
+ if (index != -1 && task.jobs[index].category == interface_1.JobCategory.Condition) {
173
+ const cr = task.jobs[index].number_args[0];
174
+ if (cr == interface_1.ConditionResult.None)
175
+ return;
176
+ const state = (cr == interface_1.ConditionResult.ThrowTask || cr == interface_1.ConditionResult.ThrowProject) ? interface_1.ExecuteState.ERROR : interface_1.ExecuteState.SKIP;
177
+ const target = this.model.record.task_detail[d[1]];
178
+ if (target != undefined) {
179
+ target.state = state;
180
+ }
181
+ currentLog.logs[this.task_index].task_state.state = state;
182
+ if (cr == interface_1.ConditionResult.Pause)
183
+ return;
184
+ if (cr == interface_1.ConditionResult.SkipProject || cr == interface_1.ConditionResult.ThrowProject) {
185
+ currentLog.state = state;
186
+ }
187
+ }
188
+ }
189
+ };
190
+ feedback_message = (d) => {
191
+ if (this.target_log == undefined)
192
+ return;
193
+ if (d.index == undefined || d.index == -1)
194
+ return;
195
+ if (this.target_log == undefined)
196
+ return;
197
+ if (this.target_log.logs[this.task_index].task_detail.length > d.index) {
198
+ this.target_log.logs[this.task_index].task_detail[d.index].message.push(d.message);
199
+ this.target_log.dirty = true;
200
+ }
201
+ else {
202
+ console.warn("Try access message by index but failed: ", d);
203
+ }
204
+ };
205
+ update_runtime_database = (d) => {
206
+ if (this.target_log != undefined) {
207
+ this.target_log.database = d;
208
+ this.target_log.dirty = true;
209
+ }
210
+ };
211
+ getnewname = async (name) => {
212
+ const root = "data/log";
213
+ let count = 0;
214
+ let filename = name;
215
+ let p = `${root}/${filename}`;
216
+ while (fs.existsSync(p + ".json")) {
217
+ count = count + 1;
218
+ filename = `${name} ${count}`;
219
+ p = `${root}/${filename}`;
220
+ }
221
+ return filename;
222
+ };
223
+ }
224
+ exports.Util_Server_Log_Proxy = Util_Server_Log_Proxy;
package/index.ts CHANGED
@@ -1,6 +1 @@
1
- // ? Cannot be import in browser
2
- export * from './src/computed'
3
- // ? Can be import in browser
4
- export * from './src/interface'
5
- // ? Cannot be import in browser
6
- export * from './src/server'
1
+ export * from "./dist/index"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "verteilen-core",
3
- "version": "1.2.4",
3
+ "version": "1.2.7",
4
4
  "license": "MIT",
5
5
  "homepage": "https://verteilen.github.io/wiki/",
6
6
  "author": "Elly",
package/src/index.ts ADDED
@@ -0,0 +1,6 @@
1
+ // ? Cannot be import in browser
2
+ export * from './computed'
3
+ // ? Can be import in browser
4
+ export * from './interface'
5
+ // ? Cannot be import in browser
6
+ export * from './server'
package/test/TEST.d.ts ADDED
@@ -0,0 +1 @@
1
+ export {};
package/test/TEST.js ADDED
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const pem = __importStar(require("pem"));
37
+ const https = __importStar(require("https"));
38
+ const ws = __importStar(require("ws"));
39
+ let h = undefined;
40
+ let w = undefined;
41
+ async function get_pem() {
42
+ return new Promise(resolve => {
43
+ pem.createCertificate({ days: 1, selfSigned: true }, (err, keys) => {
44
+ resolve([keys.clientKey, keys.certificate]);
45
+ });
46
+ });
47
+ }
48
+ async function start_server() {
49
+ const pems = await get_pem();
50
+ h = https.createServer({ key: pems[0], cert: pems[1], minVersion: 'TLSv1.2', maxVersion: 'TLSv1.3' }, (req, res) => {
51
+ res.writeHead(200);
52
+ res.end('HTTPS server is running');
53
+ });
54
+ h.addListener('upgrade', (req, res, head) => console.log('UPGRADE:', req.url));
55
+ w = new ws.Server({ server: h });
56
+ w.on('listening', (socket) => {
57
+ console.log("Listen Event");
58
+ });
59
+ w.on('error', (err) => {
60
+ console.log("Error Event");
61
+ });
62
+ w.on('connection', (socket) => {
63
+ socket.on('message', (data) => {
64
+ console.log("Recevied Data: ", data.toString());
65
+ });
66
+ });
67
+ h.listen(10000, () => {
68
+ console.log("Listen to 10000");
69
+ });
70
+ }
71
+ async function start_client() {
72
+ return new Promise((resolve) => {
73
+ const cli = new ws.WebSocket("wss://127.0.0.1:10000", { agent: new https.Agent(), rejectUnauthorized: false });
74
+ cli.on('error', (err) => {
75
+ console.log("Socket Error: ", err);
76
+ });
77
+ setTimeout(() => {
78
+ cli.send("Hello World");
79
+ cli.close();
80
+ resolve(undefined);
81
+ }, 1000);
82
+ });
83
+ }
84
+ async function main() {
85
+ await start_server();
86
+ await start_client();
87
+ }
88
+ main();
@@ -0,0 +1 @@
1
+ export {};
@@ -1,13 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  const job_execute_1 = require("../../src/client/job_execute");
13
4
  const interface_1 = require("../../src/interface");
@@ -17,7 +8,7 @@ describe("Client Execute Test", () => {
17
8
  afterAll(() => {
18
9
  execute = undefined;
19
10
  });
20
- test("Testing condition (OS when path not exist)", () => __awaiter(void 0, void 0, void 0, function* () {
11
+ test("Testing condition (OS when path not exist)", async () => {
21
12
  job = {
22
13
  index: 0,
23
14
  uuid: "UUID",
@@ -31,9 +22,9 @@ describe("Client Execute Test", () => {
31
22
  id_args: [],
32
23
  };
33
24
  execute = new job_execute_1.ClientJobExecute((str) => console.log(str), (str) => console.log(str), job, undefined, { plugins: [] });
34
- yield expect(execute.execute()).rejects.toBeDefined();
35
- }));
36
- test("Testing condition (OS when path exist)", () => __awaiter(void 0, void 0, void 0, function* () {
25
+ await expect(execute.execute()).rejects.toBeDefined();
26
+ });
27
+ test("Testing condition (OS when path exist)", async () => {
37
28
  job = {
38
29
  index: 0,
39
30
  uuid: "UUID",
@@ -47,6 +38,6 @@ describe("Client Execute Test", () => {
47
38
  id_args: [],
48
39
  };
49
40
  execute = new job_execute_1.ClientJobExecute((str) => console.log(str), (str) => console.log(str), job, undefined, { plugins: [] });
50
- yield expect(execute.execute()).resolves.toBeDefined();
51
- }));
41
+ await expect(execute.execute()).resolves.toBeDefined();
42
+ });
52
43
  });
@@ -0,0 +1 @@
1
+ export {};