bpmn-client 1.4.0 → 1.6.0
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/README.md +29 -0
- package/bin/cli.js +245 -0
- package/bin/setup.js +24 -0
- package/{src → dist}/BPMNClient.js +3 -3
- package/{cli.js → dist/cli.js} +3 -2
- package/dist/setup.js +22 -0
- package/dist/test.js +75 -0
- package/package.json +11 -2
- package/.env +0 -4
- package/Sample/.env +0 -4
- package/Sample/CarExample.js +0 -62
- package/Sample/CarExample.ts +0 -97
- package/Sample/package.json +0 -44
- package/Sample/test.js +0 -33
- package/Sample/test.ts +0 -32
- package/Sample/tsconfig.json +0 -17
- package/cli.ts +0 -268
- package/demo.env +0 -4
- package/index.js +0 -17
- package/index.ts +0 -1
- package/local.env +0 -4
- package/monitor.ts +0 -100
- package/remote-import.ts +0 -167
- package/src/BPMNClient.ts +0 -265
- package/src/WebService.ts +0 -90
- package/src/index.ts +0 -4
- package/src/interfaces/BPMNClient.ts +0 -29
- package/src/interfaces/DataObjects.ts +0 -100
- package/src/interfaces/Enums.ts +0 -82
- package/test/.eslintrc.json +0 -20
- package/test/.mocharc.json +0 -12
- package/test/feature/.env +0 -4
- package/test/feature/car.js +0 -123
- package/test/feature/carServer.js +0 -123
- package/test/helpers/setup.js +0 -9
- package/test/logs/Buy Used Carrepairsfalse cleaning +0 -0
- package/test/logs/Buy Used Carrepairstrue cleaning +0 -0
- package/test/logs/Buy Used Carscenario CaseId +0 -0
- package/test/logs/carrepairsfalse cleaning +0 -0
- package/test/logs/carrepairstrue cleaning +0 -0
- package/test-raw.ts +0 -73
- package/test.env +0 -4
- package/test.js +0 -258
- package/test.ts +0 -339
- package/test2.js +0 -91
- package/test3.ts +0 -40
- package/tsconfig.json +0 -17
- /package/{src → dist}/WebService.js +0 -0
- /package/{src → dist}/index.js +0 -0
- /package/{src/interfaces/BPMNClient.js → dist/interfaces/API.js} +0 -0
- /package/{src → dist}/interfaces/DataObjects.js +0 -0
- /package/{src → dist}/interfaces/Enums.js +0 -0
- /package/{monitor.js → dist/monitor.js} +0 -0
- /package/{remote-import.js → dist/remote-import.js} +0 -0
- /package/{test-raw.js → dist/test-raw.js} +0 -0
- /package/{test3.js → dist/test3.js} +0 -0
package/README.md
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
cbpmn-client
|
|
2
|
+
===========
|
|
3
|
+
|
|
4
|
+
[](http://www.repostatus.org/#active)
|
|
5
|
+
|
|
6
|
+
This is a light-weight package to allow remote access to [bpmn-server](https://github.com/bpmnServer/bpmn-server)
|
|
7
|
+
|
|
8
|
+
# Installation
|
|
9
|
+
|
|
10
|
+
This installs bpmn-client-sample application along with `bpmn-client`
|
|
11
|
+
|
|
12
|
+
```sh
|
|
13
|
+
|
|
14
|
+
git clone https://github.com/bpmnServer/bpmn-client-sample.git
|
|
15
|
+
|
|
16
|
+
cd bpmn-client-sample
|
|
17
|
+
|
|
18
|
+
npm install
|
|
19
|
+
|
|
20
|
+
npm run setup
|
|
21
|
+
```
|
|
22
|
+
the above setup command will copy .env
|
|
23
|
+
You can edit .env file to point to your implementation of `bpmn-server`
|
|
24
|
+
|
|
25
|
+
### to update to latest release
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
$ npm update bpmn-client
|
|
29
|
+
```
|
package/bin/cli.js
ADDED
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
4
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
5
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
6
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
7
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
8
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
9
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
//import { BPMNClient } from "bpmn-client";
|
|
14
|
+
const _1 = require("../dist/");
|
|
15
|
+
const readline = require("readline");
|
|
16
|
+
const dotenv = require('dotenv');
|
|
17
|
+
const res = dotenv.config();
|
|
18
|
+
const server = new _1.BPMNClient(process.env.HOST, process.env.PORT, process.env.API_KEY);
|
|
19
|
+
const cl = readline.createInterface(process.stdin, process.stdout);
|
|
20
|
+
const question = function (q) {
|
|
21
|
+
return new Promise((res, rej) => {
|
|
22
|
+
cl.question(q, answer => {
|
|
23
|
+
res(answer);
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
completeUserTask();
|
|
28
|
+
function menu() {
|
|
29
|
+
console.log('Commands:');
|
|
30
|
+
console.log(' q to quit');
|
|
31
|
+
console.log(' s start process ');
|
|
32
|
+
console.log(' lo list outstanding items');
|
|
33
|
+
console.log(' li list items');
|
|
34
|
+
console.log(' l list instances for a process');
|
|
35
|
+
console.log(' di display Instance information');
|
|
36
|
+
console.log(' i Invoke Task');
|
|
37
|
+
console.log(' sgl Signal Task');
|
|
38
|
+
console.log(' msg Message Task');
|
|
39
|
+
console.log(' d delete instnaces');
|
|
40
|
+
console.log(' ? repeat this list');
|
|
41
|
+
}
|
|
42
|
+
function completeUserTask() {
|
|
43
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
44
|
+
menu();
|
|
45
|
+
let option = '';
|
|
46
|
+
var command;
|
|
47
|
+
while (option !== 'q') {
|
|
48
|
+
command = yield question('Enter Command, q to quit\n\r>');
|
|
49
|
+
let opts = command.split(' ');
|
|
50
|
+
option = opts[0];
|
|
51
|
+
switch (option) {
|
|
52
|
+
case '?':
|
|
53
|
+
menu();
|
|
54
|
+
break;
|
|
55
|
+
case 'lo':
|
|
56
|
+
console.log("Listing Outstanding Items");
|
|
57
|
+
yield findItems({ "items.status": "wait" });
|
|
58
|
+
break;
|
|
59
|
+
case 'l':
|
|
60
|
+
console.log("Listing Instances for a Process");
|
|
61
|
+
yield listInstances();
|
|
62
|
+
break;
|
|
63
|
+
case 'li':
|
|
64
|
+
console.log("list items");
|
|
65
|
+
yield listItems();
|
|
66
|
+
break;
|
|
67
|
+
case 'di':
|
|
68
|
+
console.log("Displaying Instance Details");
|
|
69
|
+
yield displayInstance();
|
|
70
|
+
break;
|
|
71
|
+
case 'i':
|
|
72
|
+
console.log("invoking");
|
|
73
|
+
yield invoke();
|
|
74
|
+
break;
|
|
75
|
+
case 's':
|
|
76
|
+
console.log("Starting Process");
|
|
77
|
+
yield start();
|
|
78
|
+
break;
|
|
79
|
+
case 'sgl':
|
|
80
|
+
console.log("Signalling Process");
|
|
81
|
+
yield signal();
|
|
82
|
+
break;
|
|
83
|
+
case 'msg':
|
|
84
|
+
console.log("Message Process");
|
|
85
|
+
yield message();
|
|
86
|
+
break;
|
|
87
|
+
case 'd':
|
|
88
|
+
console.log("deleting");
|
|
89
|
+
yield delInstances();
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
console.log("bye");
|
|
94
|
+
cl.close();
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
function start() {
|
|
98
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
99
|
+
const name = yield question('Please provide your process name: ');
|
|
100
|
+
let taskData = yield question('Please provide your Task Data (json obj) if any: ');
|
|
101
|
+
console.log(taskData);
|
|
102
|
+
try {
|
|
103
|
+
if (taskData === "") {
|
|
104
|
+
taskData = {};
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
taskData = JSON.parse(taskData.toString());
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
catch (exc) {
|
|
111
|
+
console.log(exc);
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
let response = yield server.engine.start(name, taskData);
|
|
115
|
+
console.log("Process " + name + " started:", 'InstanceId', response.id);
|
|
116
|
+
return yield displayInstance(response.id);
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
function findItems(query) {
|
|
120
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
121
|
+
var items = yield server.datastore.findItems(query);
|
|
122
|
+
console.log(`processName item.name item.elementId instanceId item.id`);
|
|
123
|
+
for (var i = 0; i < items.length; i++) {
|
|
124
|
+
let item = items[i];
|
|
125
|
+
console.log(`${item['processName']} ${item.name} ${item.elementId} ${item['instanceId']} ${item.id}`);
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
function listItems() {
|
|
130
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
131
|
+
const answer = yield question('Please items criteria name value pair; example: items.status wait ');
|
|
132
|
+
let str = '' + answer;
|
|
133
|
+
const list = str.split(' ');
|
|
134
|
+
let criteria = {};
|
|
135
|
+
console.log(list);
|
|
136
|
+
for (var i = 0; i < list.length; i += 2) {
|
|
137
|
+
console.log(list[i], list[i + 1]);
|
|
138
|
+
criteria[list[i]] = list[i + 1];
|
|
139
|
+
}
|
|
140
|
+
console.log(criteria);
|
|
141
|
+
var items = yield server.datastore.findItems(criteria);
|
|
142
|
+
console.log(items.length);
|
|
143
|
+
for (var j = 0; j < items.length; j++) {
|
|
144
|
+
let item = items[j];
|
|
145
|
+
console.log(`element: ${item.elementId} status: ${item.status} processName: ${item['processName']} InstanceId: ${item['instanceId']} id: ${item.id}`);
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
function listInstances() {
|
|
150
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
151
|
+
const name = yield question('Please provide your process name: ');
|
|
152
|
+
let insts = yield server.datastore.findInstances({ name: name });
|
|
153
|
+
for (var i = 0; i < insts.length; i++) {
|
|
154
|
+
let inst = insts[i];
|
|
155
|
+
console.log(`name: ${inst.name} status: ${inst.status} instanceId: ${inst.id}
|
|
156
|
+
startedAt: ${inst.startedAt} endedAt ${inst.endedAt}`, 'data:', inst.data);
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
function displayInstance(instanceId = null) {
|
|
161
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
162
|
+
if (instanceId == null)
|
|
163
|
+
instanceId = yield question('Please provide your Instance ID: ');
|
|
164
|
+
let insts = yield server.datastore.findInstances({ id: instanceId });
|
|
165
|
+
for (var i = 0; i < insts.length; i++) {
|
|
166
|
+
let inst = insts[i];
|
|
167
|
+
var items = inst.items;
|
|
168
|
+
console.log(`name: ${inst.name} status: ${inst.status} instanceId: ${inst.id}
|
|
169
|
+
startedAt: ${inst.startedAt} endedAt ${inst.endedAt}`, 'data:', inst.data);
|
|
170
|
+
for (var j = 0; j < items.length; j++) {
|
|
171
|
+
let item = items[j];
|
|
172
|
+
console.log(`element: ${item.elementId} status: ${item.status} id: ${item.id}`);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
function invoke() {
|
|
178
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
179
|
+
const instanceId = yield question('Please provide your Instance ID: ');
|
|
180
|
+
const taskId = yield question('Please provide your Task ID: ');
|
|
181
|
+
let taskData = yield question('Please provide your Task Data (json obj) if any: ');
|
|
182
|
+
if (taskData === "") {
|
|
183
|
+
taskData = {};
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
taskData = JSON.parse(taskData.toString());
|
|
187
|
+
}
|
|
188
|
+
try {
|
|
189
|
+
let response = yield server.engine.invoke({ id: instanceId, "items.elementId": taskId }, taskData);
|
|
190
|
+
console.log("Completed UserTask:", taskId);
|
|
191
|
+
return yield displayInstance(response.id);
|
|
192
|
+
}
|
|
193
|
+
catch (exc) {
|
|
194
|
+
console.log("Invoking task failed for:", taskId, instanceId);
|
|
195
|
+
yield findItems({ id: instanceId, "items.elementId": taskId });
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
function signal() {
|
|
200
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
201
|
+
const signalId = yield question('Please provide signal ID: ');
|
|
202
|
+
let signalData = yield question('Please provide your Data (json obj) if any: ');
|
|
203
|
+
//if (typeof signalData === 'string' && signalData.trim() === '') {
|
|
204
|
+
if (signalData === "") {
|
|
205
|
+
signalData = {};
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
try {
|
|
209
|
+
signalData = JSON.parse(signalData.toString());
|
|
210
|
+
}
|
|
211
|
+
catch (exc) {
|
|
212
|
+
console.log(exc);
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
let response = yield server.engine.throwSignal(signalId, signalData);
|
|
217
|
+
console.log("Signal Response:", response);
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
function message() {
|
|
221
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
222
|
+
const messageId = yield question('Please provide message ID: ');
|
|
223
|
+
let messageData = yield question('Please provide your Data (json obj) if any: ');
|
|
224
|
+
if (typeof messageData === 'string' && messageData.trim() === '') {
|
|
225
|
+
messageData = {};
|
|
226
|
+
}
|
|
227
|
+
else {
|
|
228
|
+
messageData = JSON.parse(messageData.toString());
|
|
229
|
+
}
|
|
230
|
+
let response = yield server.engine.throwMessage(messageId, messageData);
|
|
231
|
+
if (response['id'])
|
|
232
|
+
return yield displayInstance(response['id']);
|
|
233
|
+
else {
|
|
234
|
+
console.log(' no results.');
|
|
235
|
+
return null;
|
|
236
|
+
}
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
function delInstances() {
|
|
240
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
241
|
+
const name = yield question('Please provide process name to delete instances for process: ');
|
|
242
|
+
let response = yield server.datastore.deleteInstances({ name: name });
|
|
243
|
+
console.log("Instances Deleted:", response['result']['deletedCount']);
|
|
244
|
+
});
|
|
245
|
+
}
|
package/bin/setup.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const fs = require('fs');
|
|
4
|
+
const readline = require("readline");
|
|
5
|
+
const cl = readline.createInterface({ input: process.stdin, output: process.stdout, terminal: false });
|
|
6
|
+
const question = function (q) {
|
|
7
|
+
return new Promise((res, rej) => {
|
|
8
|
+
cl.question(q, answer => {
|
|
9
|
+
res(answer);
|
|
10
|
+
});
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
console.log('This routine will create .env file');
|
|
14
|
+
const cwd = process.cwd();
|
|
15
|
+
createEnv();
|
|
16
|
+
function createEnv() {
|
|
17
|
+
if (!fs.existsSync('.env')) {
|
|
18
|
+
fs.appendFileSync('.env', "API_KEY = 12345 \nHOST = localhost\nPORT = 3000\nBASE_URL = api");
|
|
19
|
+
console.log(`file ".env" created.`);
|
|
20
|
+
}
|
|
21
|
+
else
|
|
22
|
+
console.log('.env file already exists.');
|
|
23
|
+
process.exit();
|
|
24
|
+
}
|
|
@@ -11,7 +11,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.ClientDefinitions = exports.ClientDatastore = exports.ClientEngine = exports.BPMNClient = void 0;
|
|
13
13
|
const WebService_1 = require("./WebService");
|
|
14
|
-
console.log("BPMNClient 1.2");
|
|
15
14
|
class BPMNClient extends WebService_1.WebService {
|
|
16
15
|
constructor(host, port, apiKey) {
|
|
17
16
|
super();
|
|
@@ -99,9 +98,10 @@ class ClientEngine {
|
|
|
99
98
|
return instance;
|
|
100
99
|
});
|
|
101
100
|
}
|
|
102
|
-
invoke(query, data, userId = null) {
|
|
101
|
+
invoke(query, data, userId = null, options = {}) {
|
|
103
102
|
return __awaiter(this, void 0, void 0, function* () {
|
|
104
|
-
|
|
103
|
+
console.log('invoke', options);
|
|
104
|
+
const ret = yield this.client.put('engine/invoke', { query, data, userId, options });
|
|
105
105
|
if (ret['errors']) {
|
|
106
106
|
console.log(ret['errors']);
|
|
107
107
|
throw new Error(ret['errors']);
|
package/{cli.js → dist/cli.js}
RENAMED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
1
2
|
"use strict";
|
|
2
3
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
4
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
@@ -151,7 +152,7 @@ function listInstances() {
|
|
|
151
152
|
let insts = yield server.datastore.findInstances({ name: name });
|
|
152
153
|
for (var i = 0; i < insts.length; i++) {
|
|
153
154
|
let inst = insts[i];
|
|
154
|
-
console.log(`name: ${inst.name} status: ${inst.status} instanceId: ${inst.id}
|
|
155
|
+
console.log(`name: ${inst.name} status: ${inst.status} instanceId: ${inst.id}
|
|
155
156
|
startedAt: ${inst.startedAt} endedAt ${inst.endedAt}`, 'data:', inst.data);
|
|
156
157
|
}
|
|
157
158
|
});
|
|
@@ -164,7 +165,7 @@ function displayInstance(instanceId = null) {
|
|
|
164
165
|
for (var i = 0; i < insts.length; i++) {
|
|
165
166
|
let inst = insts[i];
|
|
166
167
|
var items = inst.items;
|
|
167
|
-
console.log(`name: ${inst.name} status: ${inst.status} instanceId: ${inst.id}
|
|
168
|
+
console.log(`name: ${inst.name} status: ${inst.status} instanceId: ${inst.id}
|
|
168
169
|
startedAt: ${inst.startedAt} endedAt ${inst.endedAt}`, 'data:', inst.data);
|
|
169
170
|
for (var j = 0; j < items.length; j++) {
|
|
170
171
|
let item = items[j];
|
package/dist/setup.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
const fs = require('fs');
|
|
2
|
+
const readline = require("readline");
|
|
3
|
+
const cl = readline.createInterface({ input: process.stdin, output: process.stdout, terminal: false });
|
|
4
|
+
const question = function (q) {
|
|
5
|
+
return new Promise((res, rej) => {
|
|
6
|
+
cl.question(q, answer => {
|
|
7
|
+
res(answer);
|
|
8
|
+
});
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
console.log('This routine will create .env file');
|
|
12
|
+
const cwd = process.cwd();
|
|
13
|
+
createEnv();
|
|
14
|
+
function createEnv() {
|
|
15
|
+
if (!fs.existsSync('.env')) {
|
|
16
|
+
fs.appendFileSync('.env', "API_KEY = 12345 \nHOST = localhost\nPORT = 3000\nBASE_URL = api");
|
|
17
|
+
console.log(`file ".env" created.`);
|
|
18
|
+
}
|
|
19
|
+
else
|
|
20
|
+
console.log('.env file already exists.');
|
|
21
|
+
process.exit();
|
|
22
|
+
}
|
package/dist/test.js
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const _1 = require("./");
|
|
13
|
+
testLong();
|
|
14
|
+
function testLong() {
|
|
15
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
16
|
+
console.log('testlong');
|
|
17
|
+
const dotenv = require('dotenv');
|
|
18
|
+
dotenv.config();
|
|
19
|
+
console.log('env:', process.env.HOST, process.env.PORT, process.env.API_KEY);
|
|
20
|
+
var caseId = Math.floor(Math.random() * 10000);
|
|
21
|
+
let name = 'test-concurrency';
|
|
22
|
+
let response;
|
|
23
|
+
let instanceId;
|
|
24
|
+
let userId = 'user1';
|
|
25
|
+
let options = { noWait: true };
|
|
26
|
+
const server1 = new _1.BPMNClient(process.env.HOST, process.env.PORT, process.env.API_KEY);
|
|
27
|
+
response = yield server1.engine.start(name, { caseId: caseId }, null, userId);
|
|
28
|
+
console.log(response.id, response.items.length);
|
|
29
|
+
response.items.forEach(item => { console.log(item.id, item.name, item.type, item.status); });
|
|
30
|
+
response = yield server1.engine.invoke({ id: response.id, "items.elementId": 'UserLong' }, null, userId, options);
|
|
31
|
+
console.log('invoked userLong', response.items.length);
|
|
32
|
+
response = yield server1.engine.invoke({ id: response.id, "items.elementId": 'UserShort' }, null, userId, options);
|
|
33
|
+
console.log('invoked userShort', response.items.length);
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
function test() {
|
|
37
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
38
|
+
const dotenv = require('dotenv');
|
|
39
|
+
dotenv.config();
|
|
40
|
+
console.log('env:', process.env.HOST, process.env.PORT, process.env.API_KEY);
|
|
41
|
+
var caseId = Math.floor(Math.random() * 10000);
|
|
42
|
+
let name = 'Buy Used Car';
|
|
43
|
+
let response;
|
|
44
|
+
let instanceId;
|
|
45
|
+
let userId = 'user1';
|
|
46
|
+
let options = { noWait: true };
|
|
47
|
+
const server1 = new _1.BPMNClient(process.env.HOST, process.env.PORT, process.env.API_KEY);
|
|
48
|
+
const server2 = new _1.BPMNClient(process.env.HOST, 3030, process.env.API_KEY);
|
|
49
|
+
response = yield server1.engine.start(name, { caseId: caseId }, null, userId, options);
|
|
50
|
+
console.log(response.id);
|
|
51
|
+
response = yield server2.engine.invoke({ id: response.id, "items.elementId": 'task_Buy' }, null, userId, options);
|
|
52
|
+
console.log('invoked', response.id);
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
function importModel() {
|
|
56
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
57
|
+
console.log('from client lib');
|
|
58
|
+
try {
|
|
59
|
+
// const server = new BPMNClient('localhost', 3000, '12345');
|
|
60
|
+
const dotenv = require('dotenv');
|
|
61
|
+
dotenv.config();
|
|
62
|
+
console.log('env:', process.env.HOST, process.env.PORT, process.env.API_KEY);
|
|
63
|
+
const server = new _1.BPMNClient(process.env.HOST, process.env.PORT, process.env.API_KEY);
|
|
64
|
+
var name = 'test-import';
|
|
65
|
+
var file = '..\\WebApp\\processes\\Trans.bpmn';
|
|
66
|
+
var file2 = '..\\WebApp\\processes\\Trans.svg';
|
|
67
|
+
var res = yield server.definitions.import(name, file, file2);
|
|
68
|
+
return res;
|
|
69
|
+
}
|
|
70
|
+
catch (exc) {
|
|
71
|
+
console.log('*******ERROR********');
|
|
72
|
+
console.log(exc);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
}
|
package/package.json
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bpmn-client",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"license": "MIT",
|
|
5
|
+
"main":"./dist/index.js",
|
|
5
6
|
"scripts": {
|
|
6
7
|
"build": "tsc --build",
|
|
7
8
|
"compileRun": "tsc --build && node cli.js",
|
|
8
|
-
"
|
|
9
|
+
"cli": "ts-node src/cli",
|
|
9
10
|
"clean": "tsc --build --clean",
|
|
10
11
|
"start": "node cli.ts",
|
|
11
12
|
"test": "mocha -exit --config=test\\.mocharc.json"
|
|
@@ -25,6 +26,14 @@
|
|
|
25
26
|
"type": "git",
|
|
26
27
|
"url": "git+https:github.com/ralphhanna/bpmn-client.git"
|
|
27
28
|
},
|
|
29
|
+
"bin": {
|
|
30
|
+
"bpmn-client-setup": "./bin/setup.js",
|
|
31
|
+
"bpmn-client-cli": "./bin/cli.js"
|
|
32
|
+
},
|
|
33
|
+
"files": [
|
|
34
|
+
"bin",
|
|
35
|
+
"dist"
|
|
36
|
+
],
|
|
28
37
|
"dependencies": {
|
|
29
38
|
"axios": "^1.3.4",
|
|
30
39
|
"connect-busboy": "0.0.2",
|
package/.env
DELETED
package/Sample/.env
DELETED
package/Sample/CarExample.js
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
const bpmn_client_1 = require("bpmn-client");
|
|
13
|
-
const dotenv = require('dotenv');
|
|
14
|
-
const res = dotenv.config();
|
|
15
|
-
console.log("Testing BPMNClient 3");
|
|
16
|
-
const http = require('http');
|
|
17
|
-
test();
|
|
18
|
-
function test() {
|
|
19
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
20
|
-
console.log('-------- car.js -----------');
|
|
21
|
-
const server = new bpmn_client_1.BPMNClient(process.env.HOST, process.env.PORT, process.env.API_KEY);
|
|
22
|
-
var caseId = Math.floor(Math.random() * 10000);
|
|
23
|
-
let name = 'Buy Used Car';
|
|
24
|
-
let instanceId;
|
|
25
|
-
var instance = yield server.engine.start("Buy Used Car", { caseId: caseId });
|
|
26
|
-
console.log("instance.id", instance.id, instance.name, instance.status, instance.data.caseId);
|
|
27
|
-
var response = yield server.engine.invoke({ id: instance.id, "items.elementId": 'task_Buy' }, { needsCleaning: "Yes", needsRepairs: "Yes" });
|
|
28
|
-
console.log('after buy', response.id, response.data);
|
|
29
|
-
response = yield server.engine.invoke({ id: instance.id, "items.elementId": 'task_clean' }, {});
|
|
30
|
-
console.log('after clean', response.id, response.data);
|
|
31
|
-
response = yield server.engine.invoke({ id: instance.id, "items.elementId": 'task_repair' }, {});
|
|
32
|
-
console.log('after repair', response.id, response.data);
|
|
33
|
-
try {
|
|
34
|
-
response = yield server.engine.invoke({ id: instance.id, "items.elementId": 'task_Drive' }, {});
|
|
35
|
-
console.log('after drive', response.id, response.data);
|
|
36
|
-
}
|
|
37
|
-
catch (exc) {
|
|
38
|
-
console.log(exc);
|
|
39
|
-
}
|
|
40
|
-
var insts = yield server.datastore.findInstances({ data: { caseId: caseId } });
|
|
41
|
-
insts.forEach(inst => {
|
|
42
|
-
console.log('Inst for CaseId id==>' + inst.id, inst.name, inst.data.caseId, 'status==>', inst.status);
|
|
43
|
-
});
|
|
44
|
-
var insts = yield server.datastore.findInstances({ id: instance.id });
|
|
45
|
-
insts.forEach(inst => {
|
|
46
|
-
for (var i = 0; i < inst.items.length; i++) {
|
|
47
|
-
var item = inst.items[i];
|
|
48
|
-
console.log(' item: elementId==>' + item.elementId, item.name, 'status==>', item.status);
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
var inst = yield server.engine.get({ id: instance.id });
|
|
52
|
-
for (var i = 0; i < inst.items.length; i++) {
|
|
53
|
-
var item = inst.items[i];
|
|
54
|
-
console.log(' item: elementId==>' + item.elementId, item.name, 'status==>', item.status);
|
|
55
|
-
}
|
|
56
|
-
// var items = await server.datastore.findItems({ query: { "items.elementId": "task_Buy" } });
|
|
57
|
-
var items = yield server.datastore.findItems({ id: instance.id });
|
|
58
|
-
items.forEach(item => {
|
|
59
|
-
console.log('item: id==>' + item.elementId, item.type, item.name, 'status==>', item.status);
|
|
60
|
-
});
|
|
61
|
-
});
|
|
62
|
-
}
|
package/Sample/CarExample.ts
DELETED
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
import { BPMNClient } from "bpmn-client";
|
|
2
|
-
|
|
3
|
-
const dotenv = require('dotenv');
|
|
4
|
-
const res = dotenv.config();
|
|
5
|
-
|
|
6
|
-
console.log("Testing BPMNClient 3");
|
|
7
|
-
|
|
8
|
-
const http = require('http');
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
test();
|
|
12
|
-
|
|
13
|
-
async function test() {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
console.log('-------- car.js -----------');
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const server= new BPMNClient(process.env.HOST, process.env.PORT, process.env.API_KEY);
|
|
20
|
-
var caseId = Math.floor(Math.random() * 10000);
|
|
21
|
-
|
|
22
|
-
let name = 'Buy Used Car';
|
|
23
|
-
let instanceId;
|
|
24
|
-
|
|
25
|
-
var instance = await server.engine.start("Buy Used Car", { caseId: caseId });
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
console.log("instance.id", instance.id, instance.name, instance.status, instance.data.caseId);
|
|
29
|
-
|
|
30
|
-
var response = await server.engine.invoke(
|
|
31
|
-
{ id: instance.id, "items.elementId": 'task_Buy' }
|
|
32
|
-
, { needsCleaning: "Yes", needsRepairs: "Yes" });
|
|
33
|
-
|
|
34
|
-
console.log('after buy', response.id, response.data);
|
|
35
|
-
|
|
36
|
-
response = await server.engine.invoke(
|
|
37
|
-
{ id: instance.id, "items.elementId": 'task_clean' }
|
|
38
|
-
, {});
|
|
39
|
-
|
|
40
|
-
console.log('after clean', response.id, response.data);
|
|
41
|
-
|
|
42
|
-
response = await server.engine.invoke(
|
|
43
|
-
{ id: instance.id, "items.elementId": 'task_repair' }
|
|
44
|
-
, {});
|
|
45
|
-
|
|
46
|
-
console.log('after repair', response.id, response.data);
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
try {
|
|
50
|
-
response = await server.engine.invoke(
|
|
51
|
-
{ id: instance.id, "items.elementId": 'task_Drive' }
|
|
52
|
-
, {});
|
|
53
|
-
|
|
54
|
-
console.log('after drive', response.id, response.data);
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
catch (exc) {
|
|
58
|
-
console.log(exc);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
var insts = await server.datastore.findInstances({ data: { caseId: caseId } });
|
|
64
|
-
|
|
65
|
-
insts.forEach(inst => {
|
|
66
|
-
console.log('Inst for CaseId id==>' + inst.id, inst.name, inst.data.caseId, 'status==>', inst.status);
|
|
67
|
-
});
|
|
68
|
-
var insts = await server.datastore.findInstances({ id: instance.id });
|
|
69
|
-
|
|
70
|
-
insts.forEach(inst => {
|
|
71
|
-
for (var i = 0; i < inst.items.length; i++) {
|
|
72
|
-
var item = inst.items[i];
|
|
73
|
-
console.log(' item: elementId==>' + item.elementId, item.name, 'status==>', item.status);
|
|
74
|
-
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
var inst = await server.engine.get({ id: instance.id });
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
for (var i = 0; i < inst.items.length; i++) {
|
|
82
|
-
var item = inst.items[i];
|
|
83
|
-
console.log(' item: elementId==>' + item.elementId, item.name, 'status==>', item.status);
|
|
84
|
-
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
// var items = await server.datastore.findItems({ query: { "items.elementId": "task_Buy" } });
|
|
90
|
-
var items = await server.datastore.findItems({ id: instance.id });
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
items.forEach(item => {
|
|
94
|
-
console.log('item: id==>' + item.elementId, item.type, item.name, 'status==>', item.status);
|
|
95
|
-
});
|
|
96
|
-
|
|
97
|
-
}
|