@runium/core 0.0.5 → 0.0.7

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 (2) hide show
  1. package/package.json +2 -5
  2. package/index.d.ts +0 -414
package/package.json CHANGED
@@ -1,20 +1,17 @@
1
1
  {
2
2
  "name": "@runium/core",
3
- "version": "0.0.5",
3
+ "version": "0.0.7",
4
4
  "description": "Runium Core",
5
5
  "author": "TheBeastApp",
6
6
  "license": "MIT",
7
7
  "type": "module",
8
- "types": "./index.d.ts",
9
8
  "main": "./index.js",
10
9
  "module": "./index.js",
11
10
  "files": [
12
- "index.js",
13
- "index.d.ts"
11
+ "index.js"
14
12
  ],
15
13
  "exports": {
16
14
  ".": {
17
- "types": "./index.d.ts",
18
15
  "import": "./index.js"
19
16
  }
20
17
  },
package/index.d.ts DELETED
@@ -1,414 +0,0 @@
1
- import { ChildProcessWithoutNullStreams } from 'node:child_process';
2
- import { EventEmitter } from 'node:events';
3
- import { WriteStream } from 'node:fs';
4
-
5
- export declare function applyMacros(text: string, macros: MacrosCollection): string;
6
-
7
- export declare class EventTrigger extends RuniumTrigger<EventTriggerOptions> {
8
- constructor(options: EventTriggerOptions, project: RuniumTriggerProjectAccessible);
9
- enable(): void;
10
- disable(): void;
11
- }
12
-
13
- export declare interface EventTriggerOptions extends RuniumTriggerOptions {
14
- event: string;
15
- }
16
-
17
- export declare function extendProjectSchema(schema: object, extensions: ProjectSchemaExtension): object;
18
-
19
- export declare enum FileErrorCode {
20
- READ_JSON = "file-read-json",
21
- WRITE_JSON = "file-write-json"
22
- }
23
-
24
- export declare function getProjectSchema(): object;
25
-
26
- export declare const ID_REGEX: RegExp;
27
-
28
- export declare class IntervalTrigger extends RuniumTrigger<IntervalTriggerOptions> {
29
- constructor(options: IntervalTriggerOptions, project: RuniumTriggerProjectAccessible);
30
- enable(): void;
31
- disable(): void;
32
- }
33
-
34
- export declare interface IntervalTriggerOptions extends RuniumTriggerOptions {
35
- interval: number;
36
- }
37
-
38
- export declare function isCustomAction(action: ProjectAction): action is ProjectCustomAction;
39
-
40
- export declare function isCustomTrigger(trigger: ProjectTrigger): trigger is ProjectCustomTrigger;
41
-
42
- export declare function isProcessTaskAction(action: ProjectAction): action is ProjectActionProcessTask;
43
-
44
- export declare function isRuniumError(error: unknown): boolean;
45
-
46
- export declare function isToggleTriggerAction(action: ProjectAction): action is ProjectActionToggleTrigger;
47
-
48
- export declare interface JSONObject {
49
- [x: string]: JSONValue;
50
- }
51
-
52
- export declare type JSONValue = string | number | boolean | JSONObject | JSONValue[];
53
-
54
- export declare type Macro = (...params: string[]) => string;
55
-
56
- export declare type MacrosCollection = Record<string, Macro>;
57
-
58
- export declare enum MacrosErrorCode {
59
- MACRO_APPLY_ERROR = "macro-apply-error"
60
- }
61
-
62
- export declare class Project extends EventEmitter {
63
- constructor(config: ProjectConfig);
64
- validate(): void;
65
- getConfig(): ProjectConfig;
66
- setConfig(config: ProjectConfig): void;
67
- getState(): ProjectState;
68
- start(): Promise<void>;
69
- stop(reason?: string): Promise<void>;
70
- extendValidationSchema(extensions: ProjectSchemaExtension): void;
71
- registerAction(type: string, processor: RuniumActionProcessor): void;
72
- registerTask(type: string, processor: RuniumTaskConstructor<unknown, any>): void;
73
- registerTrigger(type: string, processor: RuniumTriggerConstructor<any>): void;
74
- }
75
-
76
- export declare type ProjectAction = ProjectCustomAction | ProjectActionEmitEvent | ProjectActionProcessTask | ProjectActionStopProject | ProjectActionToggleTrigger;
77
-
78
- export declare interface ProjectActionEmitEvent {
79
- type: ProjectActionType.EMIT_EVENT;
80
- event: string;
81
- }
82
-
83
- export declare interface ProjectActionProcessTask {
84
- type: ProjectActionType.START_TASK | ProjectActionType.RESTART_TASK | ProjectActionType.STOP_TASK;
85
- taskId: string;
86
- }
87
-
88
- export declare interface ProjectActionStopProject {
89
- type: ProjectActionType.STOP_PROJECT;
90
- }
91
-
92
- export declare interface ProjectActionToggleTrigger {
93
- type: ProjectActionType.ENABLE_TRIGGER | ProjectActionType.DISABLE_TRIGGER;
94
- triggerId: string;
95
- }
96
-
97
- export declare enum ProjectActionType {
98
- EMIT_EVENT = "emit-event",
99
- START_TASK = "start-task",
100
- RESTART_TASK = "restart-task",
101
- STOP_TASK = "stop-task",
102
- STOP_PROJECT = "stop-project",
103
- ENABLE_TRIGGER = "enable-trigger",
104
- DISABLE_TRIGGER = "disable-trigger"
105
- }
106
-
107
- export declare interface ProjectConfig {
108
- id: string;
109
- name?: string;
110
- tasks: ProjectTaskConfig[];
111
- triggers?: ProjectTrigger[];
112
- }
113
-
114
- export declare enum ProjectConfigErrorCode {
115
- INCORRECT_DATA = "project-config-incorrect-data",
116
- TASKS_CIRCULAR_DEPENDENCY = "project-config-tasks-circular-dependency",
117
- TASK_NOT_EXISTS = "project-config-task-not-exists",
118
- TRIGGER_NOT_EXISTS = "project-config-trigger-not-exists"
119
- }
120
-
121
- export declare interface ProjectCustomAction {
122
- type: string;
123
- payload?: unknown;
124
- }
125
-
126
- export declare interface ProjectCustomTrigger extends ProjectTriggerBase {
127
- type: string;
128
- payload?: unknown;
129
- }
130
-
131
- export declare interface ProjectDefaultTaskConfig extends ProjectTaskConfig<TaskOptions> {
132
- type?: ProjectTaskType.DEFAULT;
133
- }
134
-
135
- export declare enum ProjectErrorCode {
136
- ACTION_PROCESSOR_ALREADY_REGISTERED = "project-action-processor-already-registered",
137
- ACTION_PROCESSOR_INCORRECT = "project-action-processor-incorrect",
138
- TASK_PROCESSOR_NOT_FOUND = "project-task-processor-not-found",
139
- TASK_PROCESSOR_ALREADY_REGISTERED = "project-task-processor-already-registered",
140
- TASK_PROCESSOR_INCORRECT = "project-task-processor-incorrect",
141
- TRIGGER_PROCESSOR_ALREADY_REGISTERED = "project-trigger-processor-already-registered",
142
- TRIGGER_PROCESSOR_INCORRECT = "project-trigger-processor-incorrect"
143
- }
144
-
145
- export declare enum ProjectEvent {
146
- STATE_CHANGE = "state-change",
147
- START_TASK = "start-task",
148
- RESTART_TASK = "restart-task",
149
- STOP_TASK = "stop-task",
150
- PROCESS_ACTION = "process-action",
151
- ENABLE_TRIGGER = "enable-trigger",
152
- DISABLE_TRIGGER = "disable-trigger",
153
- TASK_STATE_CHANGE = "task-state-change",
154
- TASK_STDOUT = "task-stdout",
155
- TASK_STDERR = "task-stderr"
156
- }
157
-
158
- export declare enum ProjectSchemaErrorCode {
159
- ACTION_TYPE_ALREADY_USED = "project-schema-action-type-already-used",
160
- TASK_TYPE_ALREADY_USED = "project-schema-task-type-already-used",
161
- TRIGGER_TYPE_ALREADY_USED = "project-schema-trigger-type-already-used"
162
- }
163
-
164
- export declare interface ProjectSchemaExtension {
165
- project?: {
166
- properties: unknown;
167
- required?: string[];
168
- };
169
- tasks?: Record<string, {
170
- type: string;
171
- options: unknown;
172
- }>;
173
- definitions?: Record<string, unknown>;
174
- actions?: Record<string, {
175
- type: string;
176
- payload?: unknown;
177
- }>;
178
- triggers?: Record<string, {
179
- type: string;
180
- payload?: unknown;
181
- }>;
182
- }
183
-
184
- export declare interface ProjectState {
185
- status: ProjectStatus;
186
- timestamp: number;
187
- reason?: string;
188
- }
189
-
190
- export declare enum ProjectStatus {
191
- IDLE = "idle",
192
- STARTING = "starting",
193
- STARTED = "started",
194
- STOPPING = "stopping",
195
- STOPPED = "stopped"
196
- }
197
-
198
- export declare interface ProjectTaskConfig<Options = unknown> {
199
- id: string;
200
- options: Options;
201
- type?: ProjectTaskType | string;
202
- name?: string;
203
- mode?: ProjectTaskStartMode;
204
- dependencies?: ProjectTaskDependency[];
205
- handlers?: ProjectTaskHandler[];
206
- restart?: ProjectTaskRestartPolicy;
207
- }
208
-
209
- export declare interface ProjectTaskDependency {
210
- taskId: string;
211
- condition: ProjectTaskStateCondition;
212
- }
213
-
214
- export declare interface ProjectTaskHandler {
215
- condition: ProjectTaskStateCondition;
216
- action: ProjectAction;
217
- }
218
-
219
- export declare type ProjectTaskRestartPolicy = ProjectTaskRestartPolicyAlways | ProjectTaskRestartPolicyOnFailure;
220
-
221
- export declare interface ProjectTaskRestartPolicyAlways {
222
- policy: ProjectTaskRestartPolicyType.ALWAYS;
223
- delay?: number;
224
- }
225
-
226
- export declare interface ProjectTaskRestartPolicyOnFailure {
227
- policy: ProjectTaskRestartPolicyType.ON_FAILURE;
228
- delay?: number;
229
- maxRetries?: number;
230
- }
231
-
232
- export declare enum ProjectTaskRestartPolicyType {
233
- ALWAYS = "always",
234
- ON_FAILURE = "on-failure"
235
- }
236
-
237
- export declare enum ProjectTaskStartMode {
238
- IMMEDIATE = "immediate",
239
- DEFERRED = "deferred",
240
- IGNORE = "ignore"
241
- }
242
-
243
- export declare type ProjectTaskStateCondition = string | boolean | Partial<RuniumTaskState> | ((state: RuniumTaskState) => boolean);
244
-
245
- export declare enum ProjectTaskType {
246
- DEFAULT = "default"
247
- }
248
-
249
- export declare type ProjectTrigger = ProjectTriggerEvent | ProjectTriggerInterval | ProjectTriggerTimeout | ProjectCustomTrigger;
250
-
251
- declare interface ProjectTriggerBase {
252
- id: string;
253
- type: ProjectTriggerType | string;
254
- action: ProjectAction;
255
- disabled?: boolean;
256
- }
257
-
258
- export declare interface ProjectTriggerEvent extends ProjectTriggerBase {
259
- type: ProjectTriggerType.EVENT;
260
- event: string;
261
- }
262
-
263
- export declare interface ProjectTriggerInterval extends ProjectTriggerBase {
264
- type: ProjectTriggerType.INTERVAL;
265
- interval: number;
266
- }
267
-
268
- export declare interface ProjectTriggerTimeout extends ProjectTriggerBase {
269
- type: ProjectTriggerType.TIMEOUT;
270
- timeout: number;
271
- }
272
-
273
- export declare enum ProjectTriggerType {
274
- EVENT = "event",
275
- TIMEOUT = "timeout",
276
- INTERVAL = "interval"
277
- }
278
-
279
- export declare function readJsonFile<T = JSONValue>(path: string): Promise<T>;
280
-
281
- declare type RuniumActionProcessor = (payload: unknown) => void;
282
-
283
- export declare class RuniumError extends Error {
284
- code: string;
285
- payload: unknown;
286
- constructor(message: string, code: string, payload?: unknown);
287
- }
288
-
289
- export declare abstract class RuniumTask<Options = unknown, State = RuniumTaskState> extends EventEmitter {
290
- protected options: Options;
291
- protected constructor(options: Options);
292
- abstract getOptions(): Options;
293
- abstract getState(): State;
294
- abstract start(): Promise<void>;
295
- abstract stop(reason?: string): Promise<void>;
296
- abstract restart(): Promise<void>;
297
- }
298
-
299
- export declare type RuniumTaskConstructor<Options = unknown, State extends RuniumTaskState = RuniumTaskState> = new (options: any) => RuniumTask<Options, State>;
300
-
301
- export declare interface RuniumTaskState {
302
- status: TaskStatus;
303
- timestamp: number;
304
- iteration: number;
305
- exitCode?: number;
306
- error?: Error;
307
- reason?: string;
308
- }
309
-
310
- export declare abstract class RuniumTrigger<Options extends RuniumTriggerOptions> {
311
- protected project: RuniumTriggerProjectAccessible;
312
- protected id: string;
313
- protected action: ProjectAction;
314
- protected disabled: boolean;
315
- constructor(options: Options, project: RuniumTriggerProjectAccessible);
316
- abstract enable(): void;
317
- abstract disable(): void;
318
- getId(): string;
319
- isDisabled(): boolean;
320
- }
321
-
322
- export declare type RuniumTriggerConstructor<Options extends RuniumTriggerOptions> = new (options: Options, project: RuniumTriggerProjectAccessible) => RuniumTrigger<Options>;
323
-
324
- export declare interface RuniumTriggerOptions {
325
- id: string;
326
- action: ProjectAction;
327
- disabled?: boolean;
328
- }
329
-
330
- export declare interface RuniumTriggerProjectAccessible {
331
- processAction(action: ProjectAction): void;
332
- on: NodeJS.EventEmitter['on'];
333
- off: NodeJS.EventEmitter['off'];
334
- }
335
-
336
- export declare const SILENT_EXIT_CODE = -1;
337
-
338
- export declare class Task extends RuniumTask<TaskOptions, TaskState> {
339
- protected readonly options: TaskOptions;
340
- protected state: TaskState;
341
- protected process: ChildProcessWithoutNullStreams | null;
342
- protected stdoutStream: WriteStream | null;
343
- protected stderrStream: WriteStream | null;
344
- protected ttlTimer: NodeJS.Timeout | null;
345
- constructor(options: TaskOptions);
346
- getState(): TaskState;
347
- getOptions(): TaskOptions;
348
- protected canStart(): boolean;
349
- start(): Promise<void>;
350
- protected canStop(): boolean;
351
- stop(reason?: string): Promise<void>;
352
- restart(): Promise<void>;
353
- protected updateState(state: Partial<TaskState>): void;
354
- protected initLogStreams(): Promise<void>;
355
- protected setTTLTimer(): void;
356
- protected addProcessListeners(): void;
357
- protected onStdOutData(data: Buffer): void;
358
- protected onStdErrData(data: Buffer): void;
359
- protected onExit(code: number | null): void;
360
- protected onError(error: Error): void;
361
- protected cleanup(): void;
362
- }
363
-
364
- export declare enum TaskEvent {
365
- STATE_CHANGE = "state-change",
366
- STDOUT = "stdout",
367
- STDERR = "stderr"
368
- }
369
-
370
- export declare interface TaskOptions {
371
- command: string;
372
- arguments?: string[];
373
- shell?: boolean;
374
- stopSignal?: string;
375
- cwd?: string;
376
- env?: {
377
- [key: string]: string | number | boolean;
378
- };
379
- ttl?: number;
380
- log?: {
381
- stdout?: string | null;
382
- stderr?: string | null;
383
- };
384
- }
385
-
386
- export declare interface TaskState extends RuniumTaskState {
387
- pid: number;
388
- }
389
-
390
- export declare enum TaskStatus {
391
- IDLE = "idle",
392
- STARTING = "starting",
393
- STARTED = "started",
394
- COMPLETED = "completed",
395
- FAILED = "failed",
396
- STOPPING = "stopping",
397
- STOPPED = "stopped"
398
- }
399
-
400
- export declare class TimeoutTrigger extends RuniumTrigger<TimeoutTriggerOptions> {
401
- constructor(options: TimeoutTriggerOptions, project: RuniumTriggerProjectAccessible);
402
- enable(): void;
403
- disable(): void;
404
- }
405
-
406
- export declare interface TimeoutTriggerOptions extends RuniumTriggerOptions {
407
- timeout: number;
408
- }
409
-
410
- export declare function validateProject(project: ProjectConfig, schema: object): void;
411
-
412
- export declare function writeJsonFile<T = JSONValue>(path: string, data: T): Promise<void>;
413
-
414
- export { }