verteilen-core 1.3.21 → 1.3.23

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 (51) hide show
  1. package/dist/client/analysis.js +6 -8
  2. package/dist/client/client.d.ts +2 -2
  3. package/dist/client/client.js +1 -1
  4. package/dist/client/job_execute.d.ts +2 -2
  5. package/dist/interface/base.d.ts +9 -6
  6. package/dist/interface/base.js +10 -1
  7. package/dist/interface/bus.d.ts +2 -5
  8. package/dist/interface/execute.d.ts +1 -1
  9. package/dist/interface/log.d.ts +51 -0
  10. package/dist/interface/log.js +2 -0
  11. package/dist/interface/plugin.d.ts +79 -0
  12. package/dist/interface/plugin.js +2 -0
  13. package/dist/interface/record.d.ts +0 -49
  14. package/dist/interface/struct.d.ts +2 -80
  15. package/dist/interface/table.d.ts +2 -1
  16. package/dist/interface.d.ts +4 -2
  17. package/dist/interface.js +4 -2
  18. package/dist/lan/en.json +7 -2
  19. package/dist/lan/zh_TW.json +7 -2
  20. package/dist/plugins/i18n.d.ts +20 -0
  21. package/dist/server/detail/console_handle.d.ts +20 -0
  22. package/dist/server/detail/console_handle.js +244 -0
  23. package/dist/server/detail/log_handle.d.ts +23 -0
  24. package/dist/server/detail/log_handle.js +224 -0
  25. package/dist/server/detail.d.ts +6 -4
  26. package/dist/server/detail.js +54 -52
  27. package/dist/server/plugin.d.ts +3 -5
  28. package/dist/server/plugin.js +68 -158
  29. package/dist/server/server.js +0 -1
  30. package/package.json +1 -1
  31. package/src/client/analysis.ts +10 -12
  32. package/src/client/client.ts +3 -3
  33. package/src/client/cluster.ts +2 -2
  34. package/src/client/job_execute.ts +3 -3
  35. package/src/interface/base.ts +19 -7
  36. package/src/interface/bus.ts +2 -5
  37. package/src/interface/execute.ts +1 -1
  38. package/src/interface/log.ts +63 -0
  39. package/src/interface/plugin.ts +247 -0
  40. package/src/interface/record.ts +0 -62
  41. package/src/interface/struct.ts +2 -112
  42. package/src/interface/table.ts +2 -1
  43. package/src/interface.ts +4 -2
  44. package/src/lan/en.json +7 -2
  45. package/src/lan/zh_TW.json +7 -2
  46. package/src/{util → server/detail}/console_handle.ts +3 -3
  47. package/src/{util → server/detail}/log_handle.ts +2 -2
  48. package/src/server/detail.ts +74 -60
  49. package/src/server/io.ts +3 -0
  50. package/src/server/plugin.ts +118 -166
  51. package/src/server/server.ts +0 -1
@@ -140,7 +140,7 @@ class ClientAnalysis {
140
140
  source.send(JSON.stringify(h));
141
141
  };
142
142
  plugin_info = (data, source) => {
143
- const pat = path.join(os.homedir(), interface_1.DATA_FOLDER, "plugin.json");
143
+ const pat = path.join(os.homedir(), interface_1.DATA_FOLDER, "node_plugin", "plugin.json");
144
144
  if ((0, fs_1.existsSync)(pat)) {
145
145
  const p = JSON.parse((0, fs_1.readFileSync)(pat).toString());
146
146
  const h = { name: 'plugin_info_reply', data: p.plugins };
@@ -210,7 +210,7 @@ class ClientAnalysis {
210
210
  const filename = links[links.length - 1];
211
211
  const version = links[links.length - 2];
212
212
  const REPO = `${links[3]}/${links[4]}`;
213
- const dir = path.join(os.homedir(), interface_1.DATA_FOLDER, "exe");
213
+ const dir = path.join(os.homedir(), interface_1.DATA_FOLDER, "node_plugin", plugin.name);
214
214
  if (!(0, fs_1.existsSync)(dir))
215
215
  (0, fs_1.mkdirSync)(dir, { recursive: true });
216
216
  let req = {};
@@ -264,14 +264,12 @@ class ClientAnalysis {
264
264
  plugin_remove = (plugin, source) => {
265
265
  this.client.plugins.plugins = this.client.plugins.plugins.filter(x => x.name != plugin.name);
266
266
  this.client.savePlugin();
267
- const dir = path.join(os.homedir(), interface_1.DATA_FOLDER, "exe");
267
+ const dir = path.join(os.homedir(), interface_1.DATA_FOLDER, "node_plugin");
268
268
  if (!(0, fs_1.existsSync)(dir))
269
269
  (0, fs_1.mkdirSync)(dir, { recursive: true });
270
- plugin.contents.forEach(x => {
271
- if ((0, fs_1.existsSync)(path.join(dir, x.filename))) {
272
- (0, fs_1.rmSync)(path.join(dir, x.filename));
273
- }
274
- });
270
+ if ((0, fs_1.existsSync)(path.join(dir, plugin.name))) {
271
+ (0, fs_1.rmSync)(path.join(dir, plugin.name), { recursive: true });
272
+ }
275
273
  this.plugin_info(0, source);
276
274
  };
277
275
  resource_start = (data, source) => {
@@ -1,7 +1,7 @@
1
1
  import { WebSocket } from 'ws';
2
- import { Messager, Messager_log, PluginList } from '../interface';
2
+ import { Messager, Messager_log, PluginNode } from '../interface';
3
3
  export declare class Client {
4
- plugins: PluginList;
4
+ plugins: PluginNode;
5
5
  private httpss;
6
6
  private client;
7
7
  private sources;
@@ -148,7 +148,7 @@ class Client {
148
148
  this.analysis.forEach(x => x.update(this));
149
149
  };
150
150
  loadPlugins = () => {
151
- const f = path.join(os.homedir(), interface_1.DATA_FOLDER);
151
+ const f = path.join(os.homedir(), interface_1.DATA_FOLDER, "node_plugin");
152
152
  const pluginPath = path.join(f, 'plugin.json');
153
153
  if (!(0, fs_1.existsSync)(f))
154
154
  (0, fs_1.mkdirSync)(f, { recursive: true });
@@ -1,5 +1,5 @@
1
1
  import WebSocket from "ws";
2
- import { Job, Libraries, Messager, Messager_log, Database, PluginList } from "../interface";
2
+ import { Job, Libraries, Messager, Messager_log, Database, PluginNode } from "../interface";
3
3
  export declare class ClientJobExecute {
4
4
  database: Database | undefined;
5
5
  libraries: Libraries | undefined;
@@ -12,7 +12,7 @@ export declare class ClientJobExecute {
12
12
  private para;
13
13
  private job;
14
14
  private plugin;
15
- constructor(_messager: Messager, _messager_log: Messager_log, _job: Job, _source: WebSocket | undefined, _plugin: PluginList);
15
+ constructor(_messager: Messager, _messager_log: Messager_log, _job: Job, _source: WebSocket | undefined, _plugin: PluginNode);
16
16
  execute: () => Promise<string>;
17
17
  stop_all: () => void;
18
18
  private execute_job_exe;
@@ -6,6 +6,8 @@ export interface DatabaseConfigTrigger {
6
6
  }
7
7
  export interface DataHeader {
8
8
  uuid: string;
9
+ }
10
+ export interface DataTime {
9
11
  createDate?: string;
10
12
  updateDate?: string;
11
13
  }
@@ -23,7 +25,7 @@ export interface Property {
23
25
  expression: string;
24
26
  deep?: number;
25
27
  }
26
- export interface Service extends DataHeader {
28
+ export interface Service extends DataHeader, DataTime {
27
29
  title: string;
28
30
  description: string;
29
31
  meta: any;
@@ -33,14 +35,14 @@ export interface Service extends DataHeader {
33
35
  permission?: LocalPermission;
34
36
  acl?: ACLType;
35
37
  }
36
- export interface Database extends DataHeader {
38
+ export interface Database extends DataHeader, DataTime {
37
39
  title: string;
38
40
  canWrite: boolean;
39
41
  containers: Array<DatabaseContainer>;
40
42
  permission?: LocalPermission;
41
43
  acl?: ACLType;
42
44
  }
43
- export interface Job extends DataHeader {
45
+ export interface Job extends DataHeader, DataTime {
44
46
  index?: number;
45
47
  title: string;
46
48
  description: string;
@@ -71,11 +73,11 @@ export interface TaskOption {
71
73
  multi: boolean;
72
74
  multiKey: string;
73
75
  }
74
- export interface Task extends DataHeader, TaskBase, TaskOption {
76
+ export interface Task extends DataHeader, DataTime, TaskBase, TaskOption {
75
77
  permission?: LocalPermission;
76
78
  acl?: ACLType;
77
79
  }
78
- export interface Project extends DataHeader {
80
+ export interface Project extends DataHeader, DataTime {
79
81
  owner?: string;
80
82
  title: string;
81
83
  description?: string;
@@ -86,7 +88,7 @@ export interface Project extends DataHeader {
86
88
  permission?: LocalPermission;
87
89
  acl?: ACLType;
88
90
  }
89
- export interface Node extends DataHeader {
91
+ export interface Node extends DataHeader, DataTime {
90
92
  cluster: boolean;
91
93
  parent?: string;
92
94
  url: string;
@@ -96,3 +98,4 @@ export interface Node extends DataHeader {
96
98
  export declare const CreateDefaultProject: () => Project;
97
99
  export declare const CreateDefaultTask: () => Task;
98
100
  export declare const CreateDefaultJob: () => Job;
101
+ export declare const CreateDefaultDatabase: () => Database;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CreateDefaultJob = exports.CreateDefaultTask = exports.CreateDefaultProject = void 0;
3
+ exports.CreateDefaultDatabase = exports.CreateDefaultJob = exports.CreateDefaultTask = exports.CreateDefaultProject = void 0;
4
4
  const enum_1 = require("./enum");
5
5
  const uuid_1 = require("uuid");
6
6
  const CreateDefaultProject = () => {
@@ -45,3 +45,12 @@ const CreateDefaultJob = () => {
45
45
  };
46
46
  };
47
47
  exports.CreateDefaultJob = CreateDefaultJob;
48
+ const CreateDefaultDatabase = () => {
49
+ return {
50
+ uuid: (0, uuid_1.v6)(),
51
+ title: "",
52
+ canWrite: true,
53
+ containers: [],
54
+ };
55
+ };
56
+ exports.CreateDefaultDatabase = CreateDefaultDatabase;
@@ -1,6 +1,7 @@
1
1
  import { Job, Database, Project, Task } from "./base";
2
2
  import { ExecuteState } from "./enum";
3
- import { ExecutionLog, Log, Preference } from "./record";
3
+ import { ExecutionLog, Log } from "./log";
4
+ import { Preference } from "./record";
4
5
  import { Login } from "./server";
5
6
  import { FeedBack, Header, Setter, ShellFolder, Single, WebsocketPack } from "./struct";
6
7
  import { DatabaseTable, NodeTable, ProjectTable } from "./table";
@@ -50,16 +51,12 @@ export type BusType = {
50
51
  makeToast: ToastData;
51
52
  modeSelect: boolean;
52
53
  createProject: void;
53
- updateProject: void;
54
54
  recoverProject: ProjectTable;
55
55
  recoverDatabase: DatabaseTable;
56
56
  relogin: void;
57
57
  loginGuest: void;
58
58
  login: Login;
59
59
  logout: void;
60
- updateTask: void;
61
- updateJob: void;
62
- updateDatabase: void;
63
60
  selectDatabase: string;
64
61
  updateLocate: void;
65
62
  updateNode: Array<NodeTable>;
@@ -1,7 +1,7 @@
1
1
  import { ExecuteManager } from "../script/execute_manager";
2
2
  import { Job } from "./base";
3
3
  import { ExecuteState } from "./enum";
4
- import { ExecuteRecord } from "./record";
4
+ import { ExecuteRecord } from "./log";
5
5
  export interface ExecutePair {
6
6
  manager?: ExecuteManager;
7
7
  record?: ExecuteRecord;
@@ -0,0 +1,51 @@
1
+ import { Database, Node, Project } from "./base";
2
+ import { ExecuteState } from "./enum";
3
+ import { ExecuteData } from "./record";
4
+ export interface ExecuteRecordTask {
5
+ index: number;
6
+ node: string;
7
+ message: Array<string>;
8
+ state: ExecuteState;
9
+ }
10
+ export interface ExecutionTaskLog {
11
+ task_state: ExecuteData;
12
+ start_timer: number;
13
+ end_timer: number;
14
+ task_detail: Array<ExecuteRecordTask>;
15
+ }
16
+ export interface ExecutionLog {
17
+ uuid: string;
18
+ dirty?: boolean;
19
+ output?: boolean;
20
+ filename: string;
21
+ project: Project;
22
+ database: Database;
23
+ start_timer: number;
24
+ end_timer: number;
25
+ state: ExecuteState;
26
+ logs: Array<ExecutionTaskLog>;
27
+ }
28
+ export interface Log {
29
+ logs: Array<ExecutionLog>;
30
+ }
31
+ export interface Record {
32
+ projects: Array<Project>;
33
+ nodes: Array<Node>;
34
+ }
35
+ export interface ExecuteRecord extends Record {
36
+ uuid: string;
37
+ name: string;
38
+ running: boolean;
39
+ stop: boolean;
40
+ process_type: number;
41
+ para: Database | undefined;
42
+ command: Array<Array<any>>;
43
+ project: string;
44
+ useCron: boolean;
45
+ task: string;
46
+ project_index: number;
47
+ task_index: number;
48
+ project_state: Array<ExecuteData>;
49
+ task_state: Array<ExecuteData>;
50
+ task_detail: Array<ExecuteRecordTask>;
51
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,79 @@
1
+ import { DatabaseContainer, DataTime, Project } from "./base";
2
+ import { ACLType, LocalPermission } from "./server";
3
+ type ProjectCall = (p: Project) => Project;
4
+ type DatabaseCall = () => Array<DatabaseContainer>;
5
+ export interface PluginContent {
6
+ filename: string;
7
+ url: string;
8
+ unpack: boolean;
9
+ platform: NodeJS.Platform;
10
+ arch: NodeJS.Architecture;
11
+ }
12
+ export interface Plugin {
13
+ icon?: string;
14
+ name: string;
15
+ description: string;
16
+ requireVersion: string;
17
+ version?: string;
18
+ progress?: number;
19
+ contents: Array<PluginContent>;
20
+ }
21
+ export interface PluginNode {
22
+ plugins: Array<Plugin>;
23
+ }
24
+ export interface PluginWithToken extends Plugin {
25
+ token: Array<string>;
26
+ }
27
+ export interface PluginContainer extends DataTime {
28
+ thumbnail?: string;
29
+ icon?: string;
30
+ owner?: string;
31
+ title?: string;
32
+ url?: string;
33
+ plugins: Array<Plugin>;
34
+ projects: Array<TemplateData_Project>;
35
+ databases: Array<TemplateData_Database>;
36
+ gen_projects?: Array<TemplateGroup_Project>;
37
+ gen_databases?: Array<TemplateGroup_Database>;
38
+ permission?: LocalPermission;
39
+ acl?: ACLType;
40
+ }
41
+ export interface PluginPageData {
42
+ plugins: Array<PluginContainer>;
43
+ }
44
+ export interface PluginState {
45
+ name: string;
46
+ url: string;
47
+ installed: boolean;
48
+ supported: boolean;
49
+ }
50
+ export interface TemplateData_Project {
51
+ title: string;
52
+ filename: string;
53
+ group: string;
54
+ }
55
+ export interface TemplateData_Database {
56
+ title: string;
57
+ filename: string;
58
+ group: string;
59
+ }
60
+ export interface TemplateGroup_Project {
61
+ value: number;
62
+ group: string;
63
+ title?: string;
64
+ filename?: string;
65
+ template?: ProjectCall;
66
+ }
67
+ export interface TemplateGroup_Database {
68
+ value: number;
69
+ group: string;
70
+ title?: string;
71
+ filename?: string;
72
+ template?: DatabaseCall;
73
+ }
74
+ export interface TemplateData {
75
+ url?: string;
76
+ projects: Array<TemplateData_Project>;
77
+ databases: Array<TemplateData_Database>;
78
+ }
79
+ export {};
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,61 +1,12 @@
1
- import { Node, Database, Project } from "./base";
2
1
  import { ExecuteState } from "./enum";
3
2
  export interface ExecuteData {
4
3
  uuid: string;
5
4
  state: ExecuteState;
6
5
  }
7
- export interface ExecutionTaskLog {
8
- task_state: ExecuteData;
9
- start_timer: number;
10
- end_timer: number;
11
- task_detail: Array<ExecuteRecordTask>;
12
- }
13
- export interface ExecutionLog {
14
- uuid: string;
15
- dirty?: boolean;
16
- output?: boolean;
17
- filename: string;
18
- project: Project;
19
- database: Database;
20
- start_timer: number;
21
- end_timer: number;
22
- state: ExecuteState;
23
- logs: Array<ExecutionTaskLog>;
24
- }
25
- export interface ExecuteRecordTask {
26
- index: number;
27
- node: string;
28
- message: Array<string>;
29
- state: ExecuteState;
30
- }
31
- export interface Log {
32
- logs: Array<ExecutionLog>;
33
- }
34
- export interface Record {
35
- projects: Array<Project>;
36
- nodes: Array<Node>;
37
- }
38
6
  export interface RecordHeader {
39
7
  projects: Array<string>;
40
8
  nodes: Array<string>;
41
9
  }
42
- export interface ExecuteRecord extends Record {
43
- uuid: string;
44
- name: string;
45
- running: boolean;
46
- stop: boolean;
47
- process_type: number;
48
- para: Database | undefined;
49
- command: Array<Array<any>>;
50
- project: string;
51
- useCron: boolean;
52
- task: string;
53
- project_index: number;
54
- task_index: number;
55
- project_state: Array<ExecuteData>;
56
- task_state: Array<ExecuteData>;
57
- task_detail: Array<ExecuteRecordTask>;
58
- }
59
10
  export interface PluginToken {
60
11
  name: string;
61
12
  token: string;
@@ -1,9 +1,7 @@
1
- import { DatabaseContainer, Job, Project } from "./base";
1
+ import { Job } from "./base";
2
2
  import ws from 'ws';
3
3
  import { ServiceMode, TaskLogicType } from "./enum";
4
- import { ACLType, LocalPermission } from "./server";
5
- type ProjectCall = (p: Project) => Project;
6
- type DatabaseCall = () => Array<DatabaseContainer>;
4
+ import { Plugin } from "./plugin";
7
5
  export interface WebsocketPack {
8
6
  s?: boolean;
9
7
  uuid: string;
@@ -17,9 +15,6 @@ export interface WebsocketPack {
17
15
  plugins?: Array<Plugin>;
18
16
  children?: Array<WebsocketPack>;
19
17
  }
20
- export interface CronWebsocketPack {
21
- websocket: WebsocketPack;
22
- }
23
18
  export interface Header {
24
19
  name: string;
25
20
  token?: string;
@@ -103,78 +98,6 @@ export interface ShellFolder {
103
98
  files: Array<string>;
104
99
  folders: Array<string>;
105
100
  }
106
- export interface TemplateGroup {
107
- value: number;
108
- group: string;
109
- title?: string;
110
- filename?: string;
111
- template?: ProjectCall;
112
- }
113
- export interface TemplateGroup2 {
114
- value: number;
115
- group: string;
116
- title?: string;
117
- filename?: string;
118
- template?: DatabaseCall;
119
- }
120
- export interface PluginContent {
121
- filename: string;
122
- url: string;
123
- platform: NodeJS.Platform;
124
- arch: NodeJS.Architecture;
125
- }
126
- export interface Plugin {
127
- name: string;
128
- description: string;
129
- version?: string;
130
- progress?: number;
131
- contents: Array<PluginContent>;
132
- }
133
- export interface PluginWithToken extends Plugin {
134
- token: Array<string>;
135
- }
136
- export interface PluginList {
137
- owner?: string;
138
- title?: string;
139
- url?: string;
140
- plugins: Array<Plugin>;
141
- permission?: LocalPermission;
142
- acl?: ACLType;
143
- }
144
- export interface PluginState {
145
- name: string;
146
- url: string;
147
- installed: boolean;
148
- supported: boolean;
149
- }
150
- export interface PluginPageTemplate {
151
- owner?: string;
152
- name: string;
153
- project: Array<TemplateGroup>;
154
- database: Array<TemplateGroup2>;
155
- url?: string;
156
- permission?: LocalPermission;
157
- acl?: ACLType;
158
- }
159
- export interface PluginPageData {
160
- plugins: Array<PluginList>;
161
- templates: Array<PluginPageTemplate>;
162
- }
163
- export interface TemplateDataProject {
164
- title: string;
165
- filename: string;
166
- group: string;
167
- }
168
- export interface TemplateDataDatabase {
169
- title: string;
170
- filename: string;
171
- group: string;
172
- }
173
- export interface TemplateData {
174
- url?: string;
175
- projects: Array<TemplateDataProject>;
176
- databases: Array<TemplateDataDatabase>;
177
- }
178
101
  export interface BuildinAssetsContent {
179
102
  name: string;
180
103
  description: string;
@@ -196,4 +119,3 @@ export interface TaskLogicUnit {
196
119
  export interface TaskLogic {
197
120
  group: Array<TaskLogicUnit>;
198
121
  }
199
- export {};
@@ -1,5 +1,6 @@
1
1
  import { Node, Database, Project, Task, Job } from './base';
2
- import { Plugin, SystemLoad } from './struct';
2
+ import { Plugin } from './plugin';
3
+ import { SystemLoad } from './struct';
3
4
  export interface JobTable extends Job {
4
5
  s?: boolean;
5
6
  }
@@ -18,6 +18,8 @@ export * from './interface/server';
18
18
  export * from './interface/struct';
19
19
  export * from './interface/table';
20
20
  export * from './interface/ui';
21
+ export * from './interface/plugin';
22
+ export * from './interface/log';
21
23
  export * as I18N from './plugins/i18n';
22
24
  export * as Execute_PART from './script/execute';
23
25
  export * as Execute_ConsoleManager from './script/console_manager';
@@ -25,5 +27,5 @@ export * as Execute_ConsoleServerManager from './script/console_server_manager';
25
27
  export * as Execute_ExecuteManager from './script/execute_manager';
26
28
  export * as Execute_SocketManager from './script/socket_manager';
27
29
  export * as Execute_WebhookManager from './script/webhook_manager';
28
- export * as UtilServer_Console from './util/console_handle';
29
- export * as UtilServer_Log from './util/log_handle';
30
+ export * as UtilServer_Console from './server/detail/console_handle';
31
+ export * as UtilServer_Log from './server/detail/log_handle';
package/dist/interface.js CHANGED
@@ -57,6 +57,8 @@ __exportStar(require("./interface/server"), exports);
57
57
  __exportStar(require("./interface/struct"), exports);
58
58
  __exportStar(require("./interface/table"), exports);
59
59
  __exportStar(require("./interface/ui"), exports);
60
+ __exportStar(require("./interface/plugin"), exports);
61
+ __exportStar(require("./interface/log"), exports);
60
62
  exports.I18N = __importStar(require("./plugins/i18n"));
61
63
  exports.Execute_PART = __importStar(require("./script/execute"));
62
64
  exports.Execute_ConsoleManager = __importStar(require("./script/console_manager"));
@@ -64,5 +66,5 @@ exports.Execute_ConsoleServerManager = __importStar(require("./script/console_se
64
66
  exports.Execute_ExecuteManager = __importStar(require("./script/execute_manager"));
65
67
  exports.Execute_SocketManager = __importStar(require("./script/socket_manager"));
66
68
  exports.Execute_WebhookManager = __importStar(require("./script/webhook_manager"));
67
- exports.UtilServer_Console = __importStar(require("./util/console_handle"));
68
- exports.UtilServer_Log = __importStar(require("./util/log_handle"));
69
+ exports.UtilServer_Console = __importStar(require("./server/detail/console_handle"));
70
+ exports.UtilServer_Log = __importStar(require("./server/detail/log_handle"));
package/dist/lan/en.json CHANGED
@@ -138,7 +138,10 @@
138
138
  "delete-job": "Delete Job",
139
139
  "delete-job-confirm": "Are you sure you want to delete this job?",
140
140
  "delete-task": "Delete Task",
141
- "delete-task-confirm": "Are you sure you want to delete these tasks?"
141
+ "delete-task-confirm": "Are you sure you want to delete these tasks?",
142
+ "create-service": "Create Service",
143
+ "delete-service": "Delete Service",
144
+ "delete-service-confirm": "Are you sure you want to delete these services?"
142
145
  },
143
146
  "toolbar": {
144
147
  "server": "Server",
@@ -274,7 +277,8 @@
274
277
  "task-count": "Task Count",
275
278
  "job-count": "Job Count",
276
279
  "hidden": "Hidden",
277
- "runtime": "Runtime"
280
+ "runtime": "Runtime",
281
+ "value": "Value"
278
282
  },
279
283
  "codehint": {
280
284
  "v_path": "Path module",
@@ -351,6 +355,7 @@
351
355
  "selectall": "Select All",
352
356
  "unselectall": "Unselect All",
353
357
  "project": "Project",
358
+ "service": "Service",
354
359
  "task": "Task",
355
360
  "job": "JOB",
356
361
  "database": "Database",
@@ -138,7 +138,10 @@
138
138
  "delete-job": "刪除工作",
139
139
  "delete-job-confirm": "確定刪除選取的工作嗎?",
140
140
  "delete-task": "刪除流程",
141
- "delete-task-confirm": "確定刪除流程的工作嗎?"
141
+ "delete-task-confirm": "確定刪除選取的工作嗎?",
142
+ "create-service": "建立服務",
143
+ "delete-service": "刪除服務",
144
+ "delete-service-confirm": "確定刪除選取的服務嗎?"
142
145
  },
143
146
  "toolbar": {
144
147
  "server": "伺服器",
@@ -274,7 +277,8 @@
274
277
  "task-count": "流程數",
275
278
  "job-count": "工作數",
276
279
  "hidden": "隱藏",
277
- "runtime": "執行生成"
280
+ "runtime": "執行生成",
281
+ "value": "數值"
278
282
  },
279
283
  "codehint": {
280
284
  "v_path": "Path module",
@@ -351,6 +355,7 @@
351
355
  "selectall": "全選",
352
356
  "unselectall": "取消全選",
353
357
  "project": "專案",
358
+ "service": "服務",
354
359
  "task": "流程",
355
360
  "job": "工作",
356
361
  "database": "資料庫",