@openfn/ws-worker 1.0.0 → 1.1.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/CHANGELOG.md +12 -0
- package/dist/index.js +54 -61
- package/dist/start.js +55 -61
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# ws-worker
|
|
2
2
|
|
|
3
|
+
## 1.1.0
|
|
4
|
+
|
|
5
|
+
Allow runs to use multiple versions of the same adaptor
|
|
6
|
+
|
|
7
|
+
### Patch Changes
|
|
8
|
+
|
|
9
|
+
- 58e0d11: Move version log to workflow start
|
|
10
|
+
- Updated dependencies [4f5f1dd]
|
|
11
|
+
- Updated dependencies [58e0d11]
|
|
12
|
+
- @openfn/engine-multi@1.1.0
|
|
13
|
+
- @openfn/runtime@1.1.0
|
|
14
|
+
|
|
3
15
|
## 1.0.0
|
|
4
16
|
|
|
5
17
|
### Major Changes
|
package/dist/index.js
CHANGED
|
@@ -29,7 +29,7 @@ var name, version, description, main, type, scripts, bin, author, license, depen
|
|
|
29
29
|
var init_package = __esm({
|
|
30
30
|
"package.json"() {
|
|
31
31
|
name = "@openfn/ws-worker";
|
|
32
|
-
version = "1.
|
|
32
|
+
version = "1.1.0";
|
|
33
33
|
description = "A Websocket Worker to connect Lightning to a Runtime Engine";
|
|
34
34
|
main = "dist/index.js";
|
|
35
35
|
type = "module";
|
|
@@ -497,6 +497,57 @@ var createThrottler = () => {
|
|
|
497
497
|
};
|
|
498
498
|
var throttle_default = createThrottler;
|
|
499
499
|
|
|
500
|
+
// src/events/run-start.ts
|
|
501
|
+
import { timestamp } from "@openfn/logger";
|
|
502
|
+
|
|
503
|
+
// src/util/versions.ts
|
|
504
|
+
import { mainSymbols } from "figures";
|
|
505
|
+
var { triangleRightSmall: t } = mainSymbols;
|
|
506
|
+
var versions_default = (versions) => {
|
|
507
|
+
let longest = "worker".length;
|
|
508
|
+
for (const v in versions) {
|
|
509
|
+
longest = Math.max(v.length, longest);
|
|
510
|
+
}
|
|
511
|
+
const { node, worker, compiler, runtime, engine, ...adaptors } = versions;
|
|
512
|
+
const prefix = (str2) => ` ${t} ${str2.padEnd(longest + 4, " ")}`;
|
|
513
|
+
let str = `Versions:
|
|
514
|
+
${prefix("node.js")}${versions.node || "unknown"}
|
|
515
|
+
${prefix("worker")}${versions.worker || "unknown"}`;
|
|
516
|
+
if (Object.keys(adaptors).length) {
|
|
517
|
+
let allAdaptors = Object.keys(adaptors);
|
|
518
|
+
str += "\n" + allAdaptors.sort().map(
|
|
519
|
+
(adaptorName) => `${prefix(adaptorName)}${adaptors[adaptorName].sort().join(", ")}`
|
|
520
|
+
).join("\n");
|
|
521
|
+
}
|
|
522
|
+
return str;
|
|
523
|
+
};
|
|
524
|
+
|
|
525
|
+
// src/events/run-start.ts
|
|
526
|
+
init_package();
|
|
527
|
+
async function onRunStart(context, event) {
|
|
528
|
+
const { channel, state } = context;
|
|
529
|
+
const time = (timestamp() - BigInt(1e7)).toString();
|
|
530
|
+
const versionLogContext = {
|
|
531
|
+
...context,
|
|
532
|
+
state: {
|
|
533
|
+
...state,
|
|
534
|
+
activeStep: state.activeStep
|
|
535
|
+
}
|
|
536
|
+
};
|
|
537
|
+
const versions = {
|
|
538
|
+
worker: package_default.version,
|
|
539
|
+
...event.versions
|
|
540
|
+
};
|
|
541
|
+
await sendEvent(channel, RUN_START, { versions });
|
|
542
|
+
const versionMessage = versions_default(versions);
|
|
543
|
+
await onJobLog(versionLogContext, {
|
|
544
|
+
time,
|
|
545
|
+
message: [versionMessage],
|
|
546
|
+
level: "info",
|
|
547
|
+
name: "VER"
|
|
548
|
+
});
|
|
549
|
+
}
|
|
550
|
+
|
|
500
551
|
// src/events/step-complete.ts
|
|
501
552
|
import crypto3 from "node:crypto";
|
|
502
553
|
|
|
@@ -573,72 +624,17 @@ function onStepComplete({ channel, state, options }, event, error) {
|
|
|
573
624
|
}
|
|
574
625
|
|
|
575
626
|
// src/events/step-start.ts
|
|
576
|
-
init_package();
|
|
577
627
|
import crypto4 from "node:crypto";
|
|
578
|
-
import { timestamp } from "@openfn/logger";
|
|
579
|
-
|
|
580
|
-
// src/util/versions.ts
|
|
581
|
-
import { mainSymbols } from "figures";
|
|
582
|
-
var { triangleRightSmall: t } = mainSymbols;
|
|
583
|
-
var versions_default = (stepId, versions, adaptor) => {
|
|
584
|
-
let longest = "worker".length;
|
|
585
|
-
for (const v in versions) {
|
|
586
|
-
longest = Math.max(v.length, longest);
|
|
587
|
-
}
|
|
588
|
-
const { node, worker, ...adaptors } = versions;
|
|
589
|
-
const prefix = (str2) => ` ${t} ${str2.padEnd(longest + 4, " ")}`;
|
|
590
|
-
let str = `Versions for step ${stepId}:
|
|
591
|
-
${prefix("node.js")}${versions.node || "unknown"}
|
|
592
|
-
${prefix("worker")}${versions.worker || "unknown"}`;
|
|
593
|
-
if (Object.keys(adaptors).length) {
|
|
594
|
-
let allAdaptors = Object.keys(adaptors);
|
|
595
|
-
if (adaptor) {
|
|
596
|
-
allAdaptors = allAdaptors.filter((name2) => adaptor.startsWith(name2));
|
|
597
|
-
}
|
|
598
|
-
str += "\n" + allAdaptors.sort().map((adaptorName) => `${prefix(adaptorName)}${adaptors[adaptorName]}`).join("\n");
|
|
599
|
-
}
|
|
600
|
-
return str;
|
|
601
|
-
};
|
|
602
|
-
|
|
603
|
-
// src/events/step-start.ts
|
|
604
628
|
async function onStepStart(context, event) {
|
|
605
|
-
const time = (timestamp() - BigInt(1e7)).toString();
|
|
606
629
|
const { channel, state } = context;
|
|
607
630
|
state.activeStep = crypto4.randomUUID();
|
|
608
631
|
state.activeJob = event.jobId;
|
|
609
|
-
const job = state.plan.workflow.steps.find(
|
|
610
|
-
({ id }) => id === event.jobId
|
|
611
|
-
);
|
|
612
632
|
const input_dataclip_id = state.inputDataclips[event.jobId];
|
|
613
|
-
const versions = {
|
|
614
|
-
worker: package_default.version,
|
|
615
|
-
...event.versions
|
|
616
|
-
};
|
|
617
|
-
const versionLogContext = {
|
|
618
|
-
...context,
|
|
619
|
-
state: {
|
|
620
|
-
...state,
|
|
621
|
-
activeStep: state.activeStep
|
|
622
|
-
}
|
|
623
|
-
};
|
|
624
633
|
await sendEvent(channel, STEP_START, {
|
|
625
634
|
step_id: state.activeStep,
|
|
626
635
|
job_id: state.activeJob,
|
|
627
|
-
input_dataclip_id
|
|
628
|
-
versions
|
|
629
|
-
});
|
|
630
|
-
const versionMessage = versions_default(
|
|
631
|
-
versionLogContext.state.activeStep,
|
|
632
|
-
versions,
|
|
633
|
-
job?.adaptor
|
|
634
|
-
);
|
|
635
|
-
await onJobLog(versionLogContext, {
|
|
636
|
-
time,
|
|
637
|
-
message: [versionMessage],
|
|
638
|
-
level: "info",
|
|
639
|
-
name: "VER"
|
|
636
|
+
input_dataclip_id
|
|
640
637
|
});
|
|
641
|
-
return;
|
|
642
638
|
}
|
|
643
639
|
|
|
644
640
|
// src/util/log-final-reason.ts
|
|
@@ -733,7 +729,7 @@ function execute(channel, engine, logger, plan, input, options = {}, onFinish =
|
|
|
733
729
|
};
|
|
734
730
|
const listeners = Object.assign(
|
|
735
731
|
{},
|
|
736
|
-
addEvent("workflow-start", throttle(
|
|
732
|
+
addEvent("workflow-start", throttle(onRunStart)),
|
|
737
733
|
addEvent("job-start", throttle(onStepStart)),
|
|
738
734
|
addEvent("job-complete", throttle(onStepComplete)),
|
|
739
735
|
addEvent("job-error", throttle(onJobError)),
|
|
@@ -787,9 +783,6 @@ function onJobError(context, event) {
|
|
|
787
783
|
return onStepComplete(context, event, event.error);
|
|
788
784
|
}
|
|
789
785
|
}
|
|
790
|
-
function onWorkflowStart({ channel }, _event) {
|
|
791
|
-
return sendEvent(channel, RUN_START);
|
|
792
|
-
}
|
|
793
786
|
function onJobLog({ channel, state }, event) {
|
|
794
787
|
const timeInMicroseconds = BigInt(event.time) / BigInt(1e3);
|
|
795
788
|
const log = {
|
package/dist/start.js
CHANGED
|
@@ -37,7 +37,7 @@ var name, version, description, main, type, scripts, bin, author, license, depen
|
|
|
37
37
|
var init_package = __esm({
|
|
38
38
|
"package.json"() {
|
|
39
39
|
name = "@openfn/ws-worker";
|
|
40
|
-
version = "1.
|
|
40
|
+
version = "1.1.0";
|
|
41
41
|
description = "A Websocket Worker to connect Lightning to a Runtime Engine";
|
|
42
42
|
main = "dist/index.js";
|
|
43
43
|
type = "module";
|
|
@@ -5042,6 +5042,7 @@ async function createMock() {
|
|
|
5042
5042
|
level: "info",
|
|
5043
5043
|
json: true,
|
|
5044
5044
|
message: JSON.stringify(args2),
|
|
5045
|
+
name: "JOB",
|
|
5045
5046
|
time: Date.now()
|
|
5046
5047
|
});
|
|
5047
5048
|
}
|
|
@@ -5487,6 +5488,57 @@ var createThrottler = () => {
|
|
|
5487
5488
|
};
|
|
5488
5489
|
var throttle_default = createThrottler;
|
|
5489
5490
|
|
|
5491
|
+
// src/events/run-start.ts
|
|
5492
|
+
import { timestamp } from "@openfn/logger";
|
|
5493
|
+
|
|
5494
|
+
// src/util/versions.ts
|
|
5495
|
+
import { mainSymbols } from "figures";
|
|
5496
|
+
var { triangleRightSmall: t } = mainSymbols;
|
|
5497
|
+
var versions_default = (versions) => {
|
|
5498
|
+
let longest = "worker".length;
|
|
5499
|
+
for (const v in versions) {
|
|
5500
|
+
longest = Math.max(v.length, longest);
|
|
5501
|
+
}
|
|
5502
|
+
const { node, worker, compiler, runtime, engine, ...adaptors } = versions;
|
|
5503
|
+
const prefix = (str2) => ` ${t} ${str2.padEnd(longest + 4, " ")}`;
|
|
5504
|
+
let str = `Versions:
|
|
5505
|
+
${prefix("node.js")}${versions.node || "unknown"}
|
|
5506
|
+
${prefix("worker")}${versions.worker || "unknown"}`;
|
|
5507
|
+
if (Object.keys(adaptors).length) {
|
|
5508
|
+
let allAdaptors = Object.keys(adaptors);
|
|
5509
|
+
str += "\n" + allAdaptors.sort().map(
|
|
5510
|
+
(adaptorName) => `${prefix(adaptorName)}${adaptors[adaptorName].sort().join(", ")}`
|
|
5511
|
+
).join("\n");
|
|
5512
|
+
}
|
|
5513
|
+
return str;
|
|
5514
|
+
};
|
|
5515
|
+
|
|
5516
|
+
// src/events/run-start.ts
|
|
5517
|
+
init_package();
|
|
5518
|
+
async function onRunStart(context, event) {
|
|
5519
|
+
const { channel, state } = context;
|
|
5520
|
+
const time = (timestamp() - BigInt(1e7)).toString();
|
|
5521
|
+
const versionLogContext = {
|
|
5522
|
+
...context,
|
|
5523
|
+
state: {
|
|
5524
|
+
...state,
|
|
5525
|
+
activeStep: state.activeStep
|
|
5526
|
+
}
|
|
5527
|
+
};
|
|
5528
|
+
const versions = {
|
|
5529
|
+
worker: package_default.version,
|
|
5530
|
+
...event.versions
|
|
5531
|
+
};
|
|
5532
|
+
await sendEvent(channel, RUN_START, { versions });
|
|
5533
|
+
const versionMessage = versions_default(versions);
|
|
5534
|
+
await onJobLog(versionLogContext, {
|
|
5535
|
+
time,
|
|
5536
|
+
message: [versionMessage],
|
|
5537
|
+
level: "info",
|
|
5538
|
+
name: "VER"
|
|
5539
|
+
});
|
|
5540
|
+
}
|
|
5541
|
+
|
|
5490
5542
|
// src/events/step-complete.ts
|
|
5491
5543
|
import crypto4 from "node:crypto";
|
|
5492
5544
|
|
|
@@ -5563,72 +5615,17 @@ function onStepComplete({ channel, state, options }, event, error) {
|
|
|
5563
5615
|
}
|
|
5564
5616
|
|
|
5565
5617
|
// src/events/step-start.ts
|
|
5566
|
-
init_package();
|
|
5567
5618
|
import crypto5 from "node:crypto";
|
|
5568
|
-
import { timestamp } from "@openfn/logger";
|
|
5569
|
-
|
|
5570
|
-
// src/util/versions.ts
|
|
5571
|
-
import { mainSymbols } from "figures";
|
|
5572
|
-
var { triangleRightSmall: t } = mainSymbols;
|
|
5573
|
-
var versions_default = (stepId, versions, adaptor) => {
|
|
5574
|
-
let longest = "worker".length;
|
|
5575
|
-
for (const v in versions) {
|
|
5576
|
-
longest = Math.max(v.length, longest);
|
|
5577
|
-
}
|
|
5578
|
-
const { node, worker, ...adaptors } = versions;
|
|
5579
|
-
const prefix = (str2) => ` ${t} ${str2.padEnd(longest + 4, " ")}`;
|
|
5580
|
-
let str = `Versions for step ${stepId}:
|
|
5581
|
-
${prefix("node.js")}${versions.node || "unknown"}
|
|
5582
|
-
${prefix("worker")}${versions.worker || "unknown"}`;
|
|
5583
|
-
if (Object.keys(adaptors).length) {
|
|
5584
|
-
let allAdaptors = Object.keys(adaptors);
|
|
5585
|
-
if (adaptor) {
|
|
5586
|
-
allAdaptors = allAdaptors.filter((name2) => adaptor.startsWith(name2));
|
|
5587
|
-
}
|
|
5588
|
-
str += "\n" + allAdaptors.sort().map((adaptorName) => `${prefix(adaptorName)}${adaptors[adaptorName]}`).join("\n");
|
|
5589
|
-
}
|
|
5590
|
-
return str;
|
|
5591
|
-
};
|
|
5592
|
-
|
|
5593
|
-
// src/events/step-start.ts
|
|
5594
5619
|
async function onStepStart(context, event) {
|
|
5595
|
-
const time = (timestamp() - BigInt(1e7)).toString();
|
|
5596
5620
|
const { channel, state } = context;
|
|
5597
5621
|
state.activeStep = crypto5.randomUUID();
|
|
5598
5622
|
state.activeJob = event.jobId;
|
|
5599
|
-
const job = state.plan.workflow.steps.find(
|
|
5600
|
-
({ id }) => id === event.jobId
|
|
5601
|
-
);
|
|
5602
5623
|
const input_dataclip_id = state.inputDataclips[event.jobId];
|
|
5603
|
-
const versions = {
|
|
5604
|
-
worker: package_default.version,
|
|
5605
|
-
...event.versions
|
|
5606
|
-
};
|
|
5607
|
-
const versionLogContext = {
|
|
5608
|
-
...context,
|
|
5609
|
-
state: {
|
|
5610
|
-
...state,
|
|
5611
|
-
activeStep: state.activeStep
|
|
5612
|
-
}
|
|
5613
|
-
};
|
|
5614
5624
|
await sendEvent(channel, STEP_START, {
|
|
5615
5625
|
step_id: state.activeStep,
|
|
5616
5626
|
job_id: state.activeJob,
|
|
5617
|
-
input_dataclip_id
|
|
5618
|
-
versions
|
|
5619
|
-
});
|
|
5620
|
-
const versionMessage = versions_default(
|
|
5621
|
-
versionLogContext.state.activeStep,
|
|
5622
|
-
versions,
|
|
5623
|
-
job?.adaptor
|
|
5624
|
-
);
|
|
5625
|
-
await onJobLog(versionLogContext, {
|
|
5626
|
-
time,
|
|
5627
|
-
message: [versionMessage],
|
|
5628
|
-
level: "info",
|
|
5629
|
-
name: "VER"
|
|
5627
|
+
input_dataclip_id
|
|
5630
5628
|
});
|
|
5631
|
-
return;
|
|
5632
5629
|
}
|
|
5633
5630
|
|
|
5634
5631
|
// src/util/log-final-reason.ts
|
|
@@ -5723,7 +5720,7 @@ function execute(channel, engine, logger2, plan, input, options = {}, onFinish =
|
|
|
5723
5720
|
};
|
|
5724
5721
|
const listeners = Object.assign(
|
|
5725
5722
|
{},
|
|
5726
|
-
addEvent("workflow-start", throttle(
|
|
5723
|
+
addEvent("workflow-start", throttle(onRunStart)),
|
|
5727
5724
|
addEvent("job-start", throttle(onStepStart)),
|
|
5728
5725
|
addEvent("job-complete", throttle(onStepComplete)),
|
|
5729
5726
|
addEvent("job-error", throttle(onJobError)),
|
|
@@ -5777,9 +5774,6 @@ function onJobError(context, event) {
|
|
|
5777
5774
|
return onStepComplete(context, event, event.error);
|
|
5778
5775
|
}
|
|
5779
5776
|
}
|
|
5780
|
-
function onWorkflowStart({ channel }, _event) {
|
|
5781
|
-
return sendEvent(channel, RUN_START);
|
|
5782
|
-
}
|
|
5783
5777
|
function onJobLog({ channel, state }, event) {
|
|
5784
5778
|
const timeInMicroseconds = BigInt(event.time) / BigInt(1e3);
|
|
5785
5779
|
const log = {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openfn/ws-worker",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "A Websocket Worker to connect Lightning to a Runtime Engine",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -22,10 +22,10 @@
|
|
|
22
22
|
"koa-logger": "^3.2.1",
|
|
23
23
|
"phoenix": "1.7.10",
|
|
24
24
|
"ws": "^8.14.1",
|
|
25
|
-
"@openfn/engine-multi": "1.
|
|
25
|
+
"@openfn/engine-multi": "1.1.0",
|
|
26
26
|
"@openfn/lexicon": "^1.0.0",
|
|
27
|
-
"@openfn/
|
|
28
|
-
"@openfn/
|
|
27
|
+
"@openfn/runtime": "1.1.0",
|
|
28
|
+
"@openfn/logger": "1.0.0"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@types/koa": "^2.13.5",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"tsup": "^6.2.3",
|
|
43
43
|
"typescript": "^4.6.4",
|
|
44
44
|
"yargs": "^17.6.2",
|
|
45
|
-
"@openfn/lightning-mock": "2.0.
|
|
45
|
+
"@openfn/lightning-mock": "2.0.1"
|
|
46
46
|
},
|
|
47
47
|
"files": [
|
|
48
48
|
"dist",
|