@maxdrellin/xenocline 0.0.1
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/.kodrdriv/config.yaml +10 -0
- package/.kodrdriv/context/content.md +26 -0
- package/LICENSE.md +66 -0
- package/README.md +739 -0
- package/__mocks__/src/execution/event.js +8 -0
- package/dist/aggregator.d.ts +28 -0
- package/dist/aggregator.js +31 -0
- package/dist/aggregator.js.map +1 -0
- package/dist/constants.d.ts +2 -0
- package/dist/context.d.ts +3 -0
- package/dist/event/aggregator.d.ts +16 -0
- package/dist/event/aggregator.js +29 -0
- package/dist/event/aggregator.js.map +1 -0
- package/dist/event/event.d.ts +14 -0
- package/dist/event/event.js +12 -0
- package/dist/event/event.js.map +1 -0
- package/dist/event/handler.d.ts +7 -0
- package/dist/event/handler.js +8 -0
- package/dist/event/handler.js.map +1 -0
- package/dist/event/node.d.ts +40 -0
- package/dist/event/node.js +24 -0
- package/dist/event/node.js.map +1 -0
- package/dist/event/phase.d.ts +15 -0
- package/dist/event/phase.js +12 -0
- package/dist/event/phase.js.map +1 -0
- package/dist/event/process.d.ts +14 -0
- package/dist/event/process.js +15 -0
- package/dist/event/process.js.map +1 -0
- package/dist/event/transition.d.ts +45 -0
- package/dist/event/transition.js +35 -0
- package/dist/event/transition.js.map +1 -0
- package/dist/event.d.ts +30 -0
- package/dist/execution/aggregator.d.ts +23 -0
- package/dist/execution/aggregator.js +81 -0
- package/dist/execution/aggregator.js.map +1 -0
- package/dist/execution/event.d.ts +26 -0
- package/dist/execution/event.js +29 -0
- package/dist/execution/event.js.map +1 -0
- package/dist/execution/next.d.ts +7 -0
- package/dist/execution/next.js +116 -0
- package/dist/execution/next.js.map +1 -0
- package/dist/execution/node.d.ts +4 -0
- package/dist/execution/node.js +170 -0
- package/dist/execution/node.js.map +1 -0
- package/dist/execution/process.d.ts +35 -0
- package/dist/execution/process.js +97 -0
- package/dist/execution/process.js.map +1 -0
- package/dist/input.d.ts +6 -0
- package/dist/input.js +4 -0
- package/dist/input.js.map +1 -0
- package/dist/logger.d.ts +12 -0
- package/dist/node/aggregatornode.d.ts +40 -0
- package/dist/node/aggregatornode.js +41 -0
- package/dist/node/aggregatornode.js.map +1 -0
- package/dist/node/node.d.ts +18 -0
- package/dist/node/node.js +80 -0
- package/dist/node/node.js.map +1 -0
- package/dist/node/phasenode.d.ts +21 -0
- package/dist/node/phasenode.js +35 -0
- package/dist/node/phasenode.js.map +1 -0
- package/dist/output.d.ts +6 -0
- package/dist/phase.d.ts +16 -0
- package/dist/phase.js +23 -0
- package/dist/phase.js.map +1 -0
- package/dist/process.d.ts +15 -0
- package/dist/process.js +106 -0
- package/dist/process.js.map +1 -0
- package/dist/transition/beginning.d.ts +19 -0
- package/dist/transition/beginning.js +31 -0
- package/dist/transition/beginning.js.map +1 -0
- package/dist/transition/connection.d.ts +26 -0
- package/dist/transition/connection.js +80 -0
- package/dist/transition/connection.js.map +1 -0
- package/dist/transition/decision.d.ts +20 -0
- package/dist/transition/decision.js +47 -0
- package/dist/transition/decision.js.map +1 -0
- package/dist/transition/next.d.ts +13 -0
- package/dist/transition/next.js +81 -0
- package/dist/transition/next.js.map +1 -0
- package/dist/transition/termination.d.ts +17 -0
- package/dist/transition/termination.js +50 -0
- package/dist/transition/termination.js.map +1 -0
- package/dist/transition/transition.d.ts +16 -0
- package/dist/transition/transition.js +72 -0
- package/dist/transition/transition.js.map +1 -0
- package/dist/util/general.d.ts +4 -0
- package/dist/util/general.js +6 -0
- package/dist/util/general.js.map +1 -0
- package/dist/utility/event/eventfilter.d.ts +7 -0
- package/dist/utility/event/eventfilter.js +15 -0
- package/dist/utility/event/eventfilter.js.map +1 -0
- package/dist/utility/event/filteredhandler.d.ts +13 -0
- package/dist/utility/event/filteredhandler.js +18 -0
- package/dist/utility/event/filteredhandler.js.map +1 -0
- package/dist/utility/event/logginghandler.d.ts +12 -0
- package/dist/xenocline.d.ts +72 -0
- package/dist/xenocline.js +21 -0
- package/dist/xenocline.js.map +1 -0
- package/eslint.config.mjs +82 -0
- package/package.json +71 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type TransitionType = 'connection' | 'decision' | 'termination' | 'beginning';
|
|
2
|
+
/**
|
|
3
|
+
* Base interface for transitions between nodes in a process.
|
|
4
|
+
* It is primarily a marker interface that allows Connection,
|
|
5
|
+
* Decision and Termination to share common generics.
|
|
6
|
+
*/
|
|
7
|
+
export interface Transition {
|
|
8
|
+
id: string;
|
|
9
|
+
type: TransitionType;
|
|
10
|
+
}
|
|
11
|
+
export declare const createTransition: (type: TransitionType, id: string) => Readonly<Transition>;
|
|
12
|
+
export declare const isTransition: (item: any) => item is Transition;
|
|
13
|
+
export declare const validateTransition: (item: any, coordinates?: string[]) => Array<{
|
|
14
|
+
coordinates: string[];
|
|
15
|
+
error: string;
|
|
16
|
+
}>;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
const createTransition = (type, id)=>{
|
|
2
|
+
return {
|
|
3
|
+
id,
|
|
4
|
+
type
|
|
5
|
+
};
|
|
6
|
+
};
|
|
7
|
+
const isTransition = (item)=>{
|
|
8
|
+
return item !== null && typeof item === 'object' && typeof item.id === 'string' && (item.type === 'connection' || item.type === 'decision' || item.type === 'termination' || item.type === 'beginning');
|
|
9
|
+
};
|
|
10
|
+
const validateTransition = (item, coordinates)=>{
|
|
11
|
+
const errors = [];
|
|
12
|
+
const currentCoordinates = [
|
|
13
|
+
...coordinates || [],
|
|
14
|
+
'Transition'
|
|
15
|
+
];
|
|
16
|
+
if (item === undefined || item === null) {
|
|
17
|
+
errors.push({
|
|
18
|
+
coordinates: [
|
|
19
|
+
...currentCoordinates
|
|
20
|
+
],
|
|
21
|
+
error: 'Transition is undefined or null.'
|
|
22
|
+
});
|
|
23
|
+
return errors;
|
|
24
|
+
}
|
|
25
|
+
if (typeof item !== 'object') {
|
|
26
|
+
errors.push({
|
|
27
|
+
coordinates: [
|
|
28
|
+
...currentCoordinates
|
|
29
|
+
],
|
|
30
|
+
error: 'Transition is not an object.'
|
|
31
|
+
});
|
|
32
|
+
return errors;
|
|
33
|
+
}
|
|
34
|
+
if (item.id === undefined || typeof item.id !== 'string') {
|
|
35
|
+
errors.push({
|
|
36
|
+
coordinates: [
|
|
37
|
+
...currentCoordinates
|
|
38
|
+
],
|
|
39
|
+
error: 'Transition id is undefined or not a string.'
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
if (item.type === undefined || typeof item.type !== 'string') {
|
|
43
|
+
errors.push({
|
|
44
|
+
coordinates: [
|
|
45
|
+
...currentCoordinates
|
|
46
|
+
],
|
|
47
|
+
error: 'Transition type is undefined or not a string.'
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
if (item.type !== 'connection' && item.type !== 'decision' && item.type !== 'termination' && item.type !== 'beginning') {
|
|
51
|
+
errors.push({
|
|
52
|
+
coordinates: [
|
|
53
|
+
...currentCoordinates
|
|
54
|
+
],
|
|
55
|
+
error: 'Transition type is not a valid type.'
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
// We have an id, push to current coordinates
|
|
59
|
+
currentCoordinates.push(`Transition: ${item.id}`);
|
|
60
|
+
if (item.type === undefined || typeof item.type !== 'string') {
|
|
61
|
+
errors.push({
|
|
62
|
+
coordinates: [
|
|
63
|
+
...currentCoordinates
|
|
64
|
+
],
|
|
65
|
+
error: 'Transition type is undefined or not a string.'
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
return errors;
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
export { createTransition, isTransition, validateTransition };
|
|
72
|
+
//# sourceMappingURL=transition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transition.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"general.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Event } from '../../event/event';
|
|
2
|
+
export interface EventFilter<E extends Event = Event> {
|
|
3
|
+
type?: string[];
|
|
4
|
+
stage?: string[];
|
|
5
|
+
filter: (event: E) => boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare const createEventFilter: <E extends Event = Event>(type?: string[], stage?: string[]) => EventFilter<E>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const createEventFilter = (type, stage)=>{
|
|
2
|
+
const filterFn = (event)=>{
|
|
3
|
+
const typeMatch = !type || type.includes(event.type);
|
|
4
|
+
const stageMatch = !stage || stage.includes(event.stage);
|
|
5
|
+
return typeMatch && stageMatch;
|
|
6
|
+
};
|
|
7
|
+
return {
|
|
8
|
+
type,
|
|
9
|
+
stage,
|
|
10
|
+
filter: filterFn
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export { createEventFilter };
|
|
15
|
+
//# sourceMappingURL=eventfilter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventfilter.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Event } from '../../event/event';
|
|
2
|
+
import { Context } from '../../context';
|
|
3
|
+
import { EventHandler, HandleMethod } from '../../event/handler';
|
|
4
|
+
import { EventFilter } from './eventfilter';
|
|
5
|
+
export interface FilteredHandler<E extends Event = Event, C extends Context = Context> extends EventHandler<E, C> {
|
|
6
|
+
filter: EventFilter<E>;
|
|
7
|
+
handler: EventHandler<E, C>;
|
|
8
|
+
}
|
|
9
|
+
export declare const createFilteredHandler: <E extends Event = Event, C extends Context = Context>(filter: EventFilter<E>, options: {
|
|
10
|
+
handler: EventHandler<E, C>;
|
|
11
|
+
} | {
|
|
12
|
+
handle: HandleMethod<E, C>;
|
|
13
|
+
}) => FilteredHandler<E, C>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { createEventHandler } from '../../event/handler.js';
|
|
2
|
+
|
|
3
|
+
const createFilteredHandler = (filter, options)=>{
|
|
4
|
+
const handler = 'handler' in options ? options.handler : createEventHandler(options.handle);
|
|
5
|
+
const handle = async (event, context)=>{
|
|
6
|
+
if (filter.filter(event)) {
|
|
7
|
+
await handler.handle(event, context);
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
return {
|
|
11
|
+
filter,
|
|
12
|
+
handler,
|
|
13
|
+
handle
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export { createFilteredHandler };
|
|
18
|
+
//# sourceMappingURL=filteredhandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filteredhandler.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Logger, LogLevel } from '../../logger';
|
|
2
|
+
import { Event } from '../../event/event';
|
|
3
|
+
import { EventHandler } from '../../event/handler';
|
|
4
|
+
import { Context } from '../../context';
|
|
5
|
+
export type EventLogFunction<T extends Event, C extends Context> = (event: T, context: C) => [message: string, ...args: any[]];
|
|
6
|
+
export type LoggingHandler<T extends Event, C extends Context> = EventHandler<T, C>;
|
|
7
|
+
export interface LoggingHandlerOptions {
|
|
8
|
+
level: LogLevel;
|
|
9
|
+
context: string;
|
|
10
|
+
log: EventLogFunction<any, any>;
|
|
11
|
+
}
|
|
12
|
+
export declare const createLoggingHandler: <T extends Event, C extends Context>(logger: Logger, options: Partial<LoggingHandlerOptions>) => LoggingHandler<T, C>;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
export { createAggregator } from './aggregator';
|
|
2
|
+
export { createAggregatorEvent } from './event/aggregator';
|
|
3
|
+
export { createAggregatorNode } from './node/aggregatornode';
|
|
4
|
+
export { createBeginning } from './transition/beginning';
|
|
5
|
+
export { createBeginningEvent } from './event/transition';
|
|
6
|
+
export { createConnection } from './transition/connection';
|
|
7
|
+
export { createConnectionEvent } from './event/transition';
|
|
8
|
+
export { createDecision } from './transition/decision';
|
|
9
|
+
export { createDecisionEvent } from './event/transition';
|
|
10
|
+
export { createEventHandler } from './event/handler';
|
|
11
|
+
export { createEventFilter } from './utility/event/eventfilter';
|
|
12
|
+
export { createFilteredHandler } from './utility/event/filteredhandler';
|
|
13
|
+
export { createEventState, dispatchEvent } from './execution/event';
|
|
14
|
+
export { createNode, validateNode } from './node/node';
|
|
15
|
+
export { createNodeEvent } from './event/node';
|
|
16
|
+
export { createPhase } from './phase';
|
|
17
|
+
export { createPhaseNode } from './node/phasenode';
|
|
18
|
+
export { createProcess } from './process';
|
|
19
|
+
export { createProcessEvent } from './event/process';
|
|
20
|
+
export { createTermination } from './transition/termination';
|
|
21
|
+
export { createTerminationEvent } from './event/transition';
|
|
22
|
+
export { createTransitionEvent } from './event/transition';
|
|
23
|
+
export { executeProcess } from './execution/process';
|
|
24
|
+
export { isAggregator } from './aggregator';
|
|
25
|
+
export { isAggregatorEvent } from './event/aggregator';
|
|
26
|
+
export { isAggregatorNode } from './node/aggregatornode';
|
|
27
|
+
export { isAggregatorNodeEvent } from './event/node';
|
|
28
|
+
export { isBeginning } from './transition/beginning';
|
|
29
|
+
export { isBeginningEvent } from './event/transition';
|
|
30
|
+
export { isConnection } from './transition/connection';
|
|
31
|
+
export { isConnectionEvent } from './event/transition';
|
|
32
|
+
export { isDecision } from './transition/decision';
|
|
33
|
+
export { isDecisionEvent } from './event/transition';
|
|
34
|
+
export { isNode } from './node/node';
|
|
35
|
+
export { isNodeEvent } from './event/node';
|
|
36
|
+
export { isPhase } from './phase';
|
|
37
|
+
export { isPhaseNode } from './node/phasenode';
|
|
38
|
+
export { isPhaseNodeEvent } from './event/node';
|
|
39
|
+
export { isProcess } from './process';
|
|
40
|
+
export { isProcessEvent } from './event/process';
|
|
41
|
+
export { isTermination } from './transition/termination';
|
|
42
|
+
export { isTerminationEvent } from './event/transition';
|
|
43
|
+
export { isTransition } from './transition/transition';
|
|
44
|
+
export type { Aggregator, AggregationResult } from './aggregator';
|
|
45
|
+
export type { AggregatorEvent } from './event/aggregator';
|
|
46
|
+
export type { AggregatorEventStage } from './event/aggregator';
|
|
47
|
+
export type { AggregatorNode } from './node/aggregatornode';
|
|
48
|
+
export type { Beginning } from './transition/beginning';
|
|
49
|
+
export type { Connection } from './transition/connection';
|
|
50
|
+
export type { Context } from './context';
|
|
51
|
+
export type { Decision } from './transition/decision';
|
|
52
|
+
export type { Event } from './event/event';
|
|
53
|
+
export type { EventHandler } from './event/handler';
|
|
54
|
+
export type { EventState } from './execution/event';
|
|
55
|
+
export type { EventFilter } from './utility/event/eventfilter';
|
|
56
|
+
export type { FilteredHandler } from './utility/event/filteredhandler';
|
|
57
|
+
export type { Input } from './input';
|
|
58
|
+
export type { Node } from './node/node';
|
|
59
|
+
export type { NodeEvent, NodeEventStage, AggregatorNodeEvent, PhaseNodeEvent } from './event/node';
|
|
60
|
+
export type { Output } from './output';
|
|
61
|
+
export type { Phase } from './phase';
|
|
62
|
+
export type { PhaseEvent } from './event/phase';
|
|
63
|
+
export type { PhaseEventStage } from './event/phase';
|
|
64
|
+
export type { PhaseNode } from './node/phasenode';
|
|
65
|
+
export type { PhaseResults } from './execution/process';
|
|
66
|
+
export type { Process } from './process';
|
|
67
|
+
export type { ProcessEvent } from './event/process';
|
|
68
|
+
export type { ProcessEventStage } from './event/process';
|
|
69
|
+
export type { ProcessResults } from './execution/process';
|
|
70
|
+
export type { Termination } from './transition/termination';
|
|
71
|
+
export type { Transition } from './transition/transition';
|
|
72
|
+
export type { TransitionEvent, TransitionEventStage, TransitionEventType, ConnectionEvent, DecisionEvent, TerminationEvent, BeginningEvent } from './event/transition';
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export { createAggregator, isAggregator } from './aggregator.js';
|
|
2
|
+
export { createAggregatorEvent, isAggregatorEvent } from './event/aggregator.js';
|
|
3
|
+
export { createAggregatorNode, isAggregatorNode } from './node/aggregatornode.js';
|
|
4
|
+
export { createBeginning, isBeginning } from './transition/beginning.js';
|
|
5
|
+
export { createBeginningEvent, createConnectionEvent, createDecisionEvent, createTerminationEvent, createTransitionEvent, isBeginningEvent, isConnectionEvent, isDecisionEvent, isTerminationEvent } from './event/transition.js';
|
|
6
|
+
export { createConnection, isConnection } from './transition/connection.js';
|
|
7
|
+
export { createDecision, isDecision } from './transition/decision.js';
|
|
8
|
+
export { createEventHandler } from './event/handler.js';
|
|
9
|
+
export { createEventFilter } from './utility/event/eventfilter.js';
|
|
10
|
+
export { createFilteredHandler } from './utility/event/filteredhandler.js';
|
|
11
|
+
export { createEventState, dispatchEvent } from './execution/event.js';
|
|
12
|
+
export { createNode, isNode, validateNode } from './node/node.js';
|
|
13
|
+
export { createNodeEvent, isAggregatorNodeEvent, isNodeEvent, isPhaseNodeEvent } from './event/node.js';
|
|
14
|
+
export { createPhase, isPhase } from './phase.js';
|
|
15
|
+
export { createPhaseNode, isPhaseNode } from './node/phasenode.js';
|
|
16
|
+
export { createProcess, isProcess } from './process.js';
|
|
17
|
+
export { createProcessEvent, isProcessEvent } from './event/process.js';
|
|
18
|
+
export { createTermination, isTermination } from './transition/termination.js';
|
|
19
|
+
export { executeProcess } from './execution/process.js';
|
|
20
|
+
export { isTransition } from './transition/transition.js';
|
|
21
|
+
//# sourceMappingURL=xenocline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xenocline.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { defineConfig, globalIgnores } from "eslint/config";
|
|
2
|
+
import typescriptEslint from "@typescript-eslint/eslint-plugin";
|
|
3
|
+
import importPlugin from "eslint-plugin-import";
|
|
4
|
+
import globals from "globals";
|
|
5
|
+
import tsParser from "@typescript-eslint/parser";
|
|
6
|
+
import path from "node:path";
|
|
7
|
+
import { fileURLToPath } from "node:url";
|
|
8
|
+
import js from "@eslint/js";
|
|
9
|
+
import { FlatCompat } from "@eslint/eslintrc";
|
|
10
|
+
|
|
11
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
12
|
+
const __dirname = path.dirname(__filename);
|
|
13
|
+
const compat = new FlatCompat({
|
|
14
|
+
baseDirectory: __dirname,
|
|
15
|
+
recommendedConfig: js.configs.recommended,
|
|
16
|
+
allConfig: js.configs.all
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
export default defineConfig([
|
|
20
|
+
globalIgnores([
|
|
21
|
+
"dist/**",
|
|
22
|
+
"node_modules/**",
|
|
23
|
+
"**/*.test.ts",
|
|
24
|
+
]),
|
|
25
|
+
{
|
|
26
|
+
extends: compat.extends("eslint:recommended", "plugin:@typescript-eslint/recommended"),
|
|
27
|
+
|
|
28
|
+
plugins: {
|
|
29
|
+
"@typescript-eslint": typescriptEslint,
|
|
30
|
+
"import": importPlugin,
|
|
31
|
+
},
|
|
32
|
+
|
|
33
|
+
languageOptions: {
|
|
34
|
+
globals: {
|
|
35
|
+
...globals.node,
|
|
36
|
+
},
|
|
37
|
+
|
|
38
|
+
parser: tsParser,
|
|
39
|
+
ecmaVersion: "latest",
|
|
40
|
+
sourceType: "module",
|
|
41
|
+
},
|
|
42
|
+
|
|
43
|
+
rules: {
|
|
44
|
+
"@typescript-eslint/no-explicit-any": "off",
|
|
45
|
+
"@typescript-eslint/explicit-function-return-type": "off",
|
|
46
|
+
|
|
47
|
+
"@typescript-eslint/no-unused-vars": ["warn", {
|
|
48
|
+
argsIgnorePattern: "^_",
|
|
49
|
+
}],
|
|
50
|
+
|
|
51
|
+
indent: ["error", 4, {
|
|
52
|
+
SwitchCase: 1,
|
|
53
|
+
}],
|
|
54
|
+
|
|
55
|
+
"import/extensions": ["error", "never", {
|
|
56
|
+
ignorePackages: true,
|
|
57
|
+
pattern: {
|
|
58
|
+
"js": "never",
|
|
59
|
+
"ts": "never",
|
|
60
|
+
"d": "always"
|
|
61
|
+
}
|
|
62
|
+
}],
|
|
63
|
+
|
|
64
|
+
"import/no-extraneous-dependencies": ["error", {
|
|
65
|
+
devDependencies: true,
|
|
66
|
+
optionalDependencies: false,
|
|
67
|
+
peerDependencies: false,
|
|
68
|
+
}],
|
|
69
|
+
|
|
70
|
+
"no-console": ["error"],
|
|
71
|
+
|
|
72
|
+
"no-restricted-imports": ["error", {
|
|
73
|
+
paths: ["dayjs", "fs", "moment-timezone"],
|
|
74
|
+
patterns: [
|
|
75
|
+
{
|
|
76
|
+
group: ["src/**"],
|
|
77
|
+
message: "Use absolute imports instead of relative imports"
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
}]
|
|
81
|
+
},
|
|
82
|
+
}]);
|
package/package.json
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@maxdrellin/xenocline",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Xenocline provides a streamlined, modular framework to manage and execute Processor Pipelines—sequences of computational steps or tasks executed systematically to process data or events. It allows developers to define, connect, and orchestrate individual processors into efficient workflows, supporting clear separation of concerns, scalability, and ease of maintenance.",
|
|
5
|
+
"main": "dist/Xenocline.js",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"bin": {
|
|
8
|
+
"Xenocline": "./dist/xenocline.js"
|
|
9
|
+
},
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "git+https://github.com/maxdrellin/xenocline.git"
|
|
13
|
+
},
|
|
14
|
+
"exports": {
|
|
15
|
+
".": {
|
|
16
|
+
"import": "./dist/Xenocline.js",
|
|
17
|
+
"types": "./dist/Xenocline.d.ts"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"keywords": [
|
|
21
|
+
"pipeline",
|
|
22
|
+
"execution",
|
|
23
|
+
"workflow"
|
|
24
|
+
],
|
|
25
|
+
"author": "Max Drellin <maxdrellin@yahoo.com>",
|
|
26
|
+
"license": "Apache-2.0",
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"@doccident/doccident": "^0.0.1"
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@babel/core": "^7.27.1",
|
|
32
|
+
"@babel/plugin-transform-modules-commonjs": "^7.27.1",
|
|
33
|
+
"@babel/plugin-transform-typescript": "^7.27.1",
|
|
34
|
+
"@babel/preset-typescript": "^7.27.1",
|
|
35
|
+
"@eslint/eslintrc": "^3.3.1",
|
|
36
|
+
"@eslint/js": "^9.27.0",
|
|
37
|
+
"@jest/globals": "^29.7.0",
|
|
38
|
+
"@rollup/plugin-replace": "^6.0.2",
|
|
39
|
+
"@swc/core": "^1.11.24",
|
|
40
|
+
"@types/jest": "^29.5.14",
|
|
41
|
+
"@types/js-yaml": "^4.0.9",
|
|
42
|
+
"@types/luxon": "^3.6.2",
|
|
43
|
+
"@types/node": "^22.15.19",
|
|
44
|
+
"@typescript-eslint/eslint-plugin": "^8.32.1",
|
|
45
|
+
"@typescript-eslint/parser": "^8.32.1",
|
|
46
|
+
"copyfiles": "^2.4.1",
|
|
47
|
+
"eslint": "^9.27.0",
|
|
48
|
+
"eslint-plugin-import": "^2.31.0",
|
|
49
|
+
"globals": "^16.1.0",
|
|
50
|
+
"jest": "^29.7.0",
|
|
51
|
+
"rollup-plugin-preserve-shebang": "^1.0.1",
|
|
52
|
+
"rollup-plugin-visualizer": "^5.14.0",
|
|
53
|
+
"ts-jest": "^29.3.4",
|
|
54
|
+
"typescript": "^5.8.3",
|
|
55
|
+
"vite": "^6.3.5",
|
|
56
|
+
"vite-plugin-dts": "^4.5.4",
|
|
57
|
+
"vite-plugin-node": "^5.0.1"
|
|
58
|
+
},
|
|
59
|
+
"scripts": {
|
|
60
|
+
"build": "tsc --noEmit && vite build && copyfiles -u 1 \"src/**/*.md\" dist && copyfiles -u 1 \"src/**/*.yaml\" dist",
|
|
61
|
+
"start": "node dist/Xenocline.js",
|
|
62
|
+
"dev": "vite",
|
|
63
|
+
"watch": "vite build --watch",
|
|
64
|
+
"test": "pnpm run test:coverage",
|
|
65
|
+
"test:coverage": "jest --coverage",
|
|
66
|
+
"test:readme": "doccident -c .doccident-setup.mjs README.md",
|
|
67
|
+
"lint": "eslint . --ext .ts",
|
|
68
|
+
"lint:fix": "eslint . --ext .ts --fix",
|
|
69
|
+
"clean": "rm -rf dist"
|
|
70
|
+
}
|
|
71
|
+
}
|