@digipair/skill-temporal 0.19.2 → 0.19.4
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/package.json
CHANGED
package/schema.json
CHANGED
|
@@ -66,6 +66,34 @@
|
|
|
66
66
|
"x-events": []
|
|
67
67
|
}
|
|
68
68
|
},
|
|
69
|
+
"/condition": {
|
|
70
|
+
"post": {
|
|
71
|
+
"tags": ["service"],
|
|
72
|
+
"summary": "Condition d'attente",
|
|
73
|
+
"description": "Condition d'attente dans un workflow",
|
|
74
|
+
"parameters": [
|
|
75
|
+
{
|
|
76
|
+
"name": "condition",
|
|
77
|
+
"summary": "Condition",
|
|
78
|
+
"required": true,
|
|
79
|
+
"description": "Condition d'attente au format Feel",
|
|
80
|
+
"schema": {
|
|
81
|
+
"type": "string"
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"name": "timeout",
|
|
86
|
+
"summary": "Timeout",
|
|
87
|
+
"required": false,
|
|
88
|
+
"description": "Timeout de la condition",
|
|
89
|
+
"schema": {
|
|
90
|
+
"type": "number"
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
],
|
|
94
|
+
"x-events": []
|
|
95
|
+
}
|
|
96
|
+
},
|
|
69
97
|
"/goto": {
|
|
70
98
|
"post": {
|
|
71
99
|
"tags": ["service"],
|
|
@@ -111,6 +139,53 @@
|
|
|
111
139
|
],
|
|
112
140
|
"x-events": []
|
|
113
141
|
}
|
|
142
|
+
},
|
|
143
|
+
"/push": {
|
|
144
|
+
"post": {
|
|
145
|
+
"tags": ["service"],
|
|
146
|
+
"summary": "Envoi de nouvelles données dans un workflow",
|
|
147
|
+
"description": "Envoi de nouvelles données dans le workflow",
|
|
148
|
+
"parameters": [
|
|
149
|
+
{
|
|
150
|
+
"name": "id",
|
|
151
|
+
"summary": "Identifiant du workflow",
|
|
152
|
+
"required": true,
|
|
153
|
+
"description": "Identifiant du workflow",
|
|
154
|
+
"schema": {
|
|
155
|
+
"type": "string"
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"name": "data",
|
|
160
|
+
"summary": "Données",
|
|
161
|
+
"required": true,
|
|
162
|
+
"description": "Données",
|
|
163
|
+
"schema": {
|
|
164
|
+
"type": "object"
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
],
|
|
168
|
+
"x-events": []
|
|
169
|
+
}
|
|
170
|
+
},
|
|
171
|
+
"/terminate": {
|
|
172
|
+
"post": {
|
|
173
|
+
"tags": ["service"],
|
|
174
|
+
"summary": "Arrête un workflow",
|
|
175
|
+
"description": "Arrête un workflow",
|
|
176
|
+
"parameters": [
|
|
177
|
+
{
|
|
178
|
+
"name": "id",
|
|
179
|
+
"summary": "Identifiant du workflow",
|
|
180
|
+
"required": true,
|
|
181
|
+
"description": "Identifiant du workflow",
|
|
182
|
+
"schema": {
|
|
183
|
+
"type": "string"
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
],
|
|
187
|
+
"x-events": []
|
|
188
|
+
}
|
|
114
189
|
}
|
|
115
190
|
},
|
|
116
191
|
"components": {
|
|
@@ -123,6 +198,15 @@
|
|
|
123
198
|
"tags": ["service"],
|
|
124
199
|
"metadata": [],
|
|
125
200
|
"parameters": [
|
|
201
|
+
{
|
|
202
|
+
"name": "id",
|
|
203
|
+
"summary": "Identifiant",
|
|
204
|
+
"required": true,
|
|
205
|
+
"description": "Identifiant du workflow",
|
|
206
|
+
"schema": {
|
|
207
|
+
"type": "string"
|
|
208
|
+
}
|
|
209
|
+
},
|
|
126
210
|
{
|
|
127
211
|
"name": "steps",
|
|
128
212
|
"summary": "Exécute les étapes suivantes",
|
|
@@ -2,3 +2,5 @@
|
|
|
2
2
|
import { PinsSettings } from '@digipair/engine';
|
|
3
3
|
export declare const initialize: (adresse: string) => Promise<void>;
|
|
4
4
|
export declare const workflow: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<any>;
|
|
5
|
+
export declare const push: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<any>;
|
|
6
|
+
export declare const terminate: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<any>;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.workflow = exports.initialize = void 0;
|
|
3
|
+
exports.terminate = exports.push = exports.workflow = exports.initialize = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const client_1 = require("@temporalio/client");
|
|
6
6
|
const worker_1 = require("@temporalio/worker");
|
|
7
|
-
const uuid_1 = require("uuid");
|
|
8
7
|
const workflows_1 = require("./workflows");
|
|
9
8
|
const shared_1 = require("./shared");
|
|
10
9
|
const activities = require("./activities");
|
|
@@ -45,21 +44,39 @@ class TemporalService {
|
|
|
45
44
|
workflow(params, _pinsSettingsList, context) {
|
|
46
45
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
47
46
|
var _a;
|
|
48
|
-
const { steps, options = (_a = context.privates.TEMPORAL_OPTIONS) !== null && _a !== void 0 ? _a : {} } = params;
|
|
47
|
+
const { id, steps, options = (_a = context.privates.TEMPORAL_OPTIONS) !== null && _a !== void 0 ? _a : {} } = params;
|
|
49
48
|
const workflowOptions = Object.assign({
|
|
50
49
|
// RetryPolicy specifies how to automatically handle retries if an Activity fails.
|
|
51
50
|
retry: Object.assign({ initialInterval: '1 second', maximumInterval: '1 minute', backoffCoefficient: 2, maximumAttempts: 500, nonRetryableErrorTypes: [] }, (options.retry || {})), startToCloseTimeout: '1 minute' }, options);
|
|
52
51
|
this.client.start(workflows_1.workflow, {
|
|
53
52
|
args: [{ steps, context, options: workflowOptions }],
|
|
54
53
|
taskQueue: shared_1.taskQueue,
|
|
55
|
-
workflowId: `digipair-workflow-${context.request.digipair}-${context.request.reasoning}-${
|
|
54
|
+
workflowId: `digipair-workflow-${context.request.digipair}-${context.request.reasoning}-${id}`,
|
|
56
55
|
});
|
|
57
56
|
});
|
|
58
57
|
}
|
|
58
|
+
push(params, _pinsSettingsList, context) {
|
|
59
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
60
|
+
const { id, data } = params;
|
|
61
|
+
const handle = this.client.getHandle(`digipair-workflow-${context.request.digipair}-${context.request.reasoning}-${id}`);
|
|
62
|
+
yield handle.signal(workflows_1.dataSignal, data);
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
terminate(params, _pinsSettingsList, context) {
|
|
66
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
67
|
+
const { id } = params;
|
|
68
|
+
const handle = this.client.getHandle(`digipair-workflow-${context.request.digipair}-${context.request.reasoning}-${id}`);
|
|
69
|
+
yield handle.terminate();
|
|
70
|
+
});
|
|
71
|
+
}
|
|
59
72
|
}
|
|
60
73
|
let instance;
|
|
61
74
|
const initialize = (adresse) => (instance = new TemporalService()).initialize(adresse);
|
|
62
75
|
exports.initialize = initialize;
|
|
63
76
|
const workflow = (params, pinsSettingsList, context) => instance.workflow(params, pinsSettingsList, context);
|
|
64
77
|
exports.workflow = workflow;
|
|
78
|
+
const push = (params, pinsSettingsList, context) => instance.push(params, pinsSettingsList, context);
|
|
79
|
+
exports.push = push;
|
|
80
|
+
const terminate = (params, pinsSettingsList, context) => instance.terminate(params, pinsSettingsList, context);
|
|
81
|
+
exports.terminate = terminate;
|
|
65
82
|
//# sourceMappingURL=skill-temporal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-temporal.js","sourceRoot":"","sources":["../../../../../libs/skill-temporal/src/lib/skill-temporal.ts"],"names":[],"mappings":";;;;AAGA,+CAAgE;AAChE,+CAA8D;
|
|
1
|
+
{"version":3,"file":"skill-temporal.js","sourceRoot":"","sources":["../../../../../libs/skill-temporal/src/lib/skill-temporal.ts"],"names":[],"mappings":"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"}
|
package/src/lib/workflows.d.ts
CHANGED
package/src/lib/workflows.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.workflow = void 0;
|
|
3
|
+
exports.workflow = exports.dataSignal = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const workflow_1 = require("@temporalio/workflow");
|
|
6
6
|
const common_1 = require("@temporalio/common");
|
|
7
7
|
const engine_1 = require("@digipair/engine");
|
|
8
|
+
const feelin_1 = require("feelin");
|
|
9
|
+
exports.dataSignal = (0, workflow_1.defineSignal)('data');
|
|
8
10
|
function executePins(executePinsList, steps, state, settingsOrigin, context) {
|
|
9
11
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
10
12
|
var _a, _b, _c;
|
|
@@ -39,7 +41,10 @@ function executePins(executePinsList, steps, state, settingsOrigin, context) {
|
|
|
39
41
|
throw 'DIGIPAIR_CONDITIONS_IF_FALSE';
|
|
40
42
|
}
|
|
41
43
|
if (settings.element === 'sleep') {
|
|
42
|
-
yield (0, workflow_1.sleep)(settings.properties['duration']);
|
|
44
|
+
result = yield (0, workflow_1.sleep)(settings.properties['duration']);
|
|
45
|
+
}
|
|
46
|
+
else if (settings.element === 'condition') {
|
|
47
|
+
result = yield (0, workflow_1.condition)(() => (0, feelin_1.evaluate)(settings.properties.condition, context), settings.properties.timeout);
|
|
43
48
|
}
|
|
44
49
|
else if (settings.element === 'stop') {
|
|
45
50
|
throw 'DIGIPAIR_WORKFLOW_STOP';
|
|
@@ -53,7 +58,7 @@ function executePins(executePinsList, steps, state, settingsOrigin, context) {
|
|
|
53
58
|
settings.properties['name'],
|
|
54
59
|
]);
|
|
55
60
|
}
|
|
56
|
-
state.step = step;
|
|
61
|
+
result = state.step = step;
|
|
57
62
|
}
|
|
58
63
|
else if (settings.element === 'activity') {
|
|
59
64
|
try {
|
|
@@ -77,8 +82,11 @@ function workflow(_a) {
|
|
|
77
82
|
return tslib_1.__awaiter(this, arguments, void 0, function* ({ steps, context, options }) {
|
|
78
83
|
var _b;
|
|
79
84
|
let result;
|
|
80
|
-
context.
|
|
85
|
+
context.workflow = { steps: {}, data: {} };
|
|
81
86
|
const { executePinsList } = (0, workflow_1.proxyActivities)(options);
|
|
87
|
+
(0, workflow_1.setHandler)(exports.dataSignal, (data) => {
|
|
88
|
+
context.workflow.data = Object.assign(Object.assign({}, context.workflow.data), data);
|
|
89
|
+
});
|
|
82
90
|
// vérifie si tous les pinsSettings sont bien de la librairie @digipair/skill-temporal
|
|
83
91
|
const indexSkillNoWorkflow = steps.findIndex(pinsSettings => pinsSettings.library !== '@digipair/skill-temporal');
|
|
84
92
|
if (indexSkillNoWorkflow >= 0) {
|
|
@@ -102,7 +110,7 @@ function workflow(_a) {
|
|
|
102
110
|
throw error;
|
|
103
111
|
}
|
|
104
112
|
if ((_b = pinsSettings.properties) === null || _b === void 0 ? void 0 : _b['name']) {
|
|
105
|
-
context.
|
|
113
|
+
context.workflow.steps[pinsSettings.properties['name']] = result;
|
|
106
114
|
}
|
|
107
115
|
}
|
|
108
116
|
return result;
|
package/src/lib/workflows.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../../../../libs/skill-temporal/src/lib/workflows.ts"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../../../../libs/skill-temporal/src/lib/workflows.ts"],"names":[],"mappings":"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"}
|