@decaf-ts/core 0.8.53 → 0.8.55

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 (81) hide show
  1. package/README.md +1 -1
  2. package/dist/core.cjs +1 -1
  3. package/dist/core.cjs.map +1 -1
  4. package/dist/core.js +1 -1
  5. package/dist/core.js.map +1 -1
  6. package/lib/esm/fs/FilesystemAdapter.d.ts +4 -2
  7. package/lib/esm/fs/FilesystemAdapter.js +37 -15
  8. package/lib/esm/fs/FilesystemAdapter.js.map +1 -1
  9. package/lib/esm/index.d.ts +1 -1
  10. package/lib/esm/index.js +1 -1
  11. package/lib/esm/tasks/TaskEngine.d.ts +28 -46
  12. package/lib/esm/tasks/TaskEngine.js +16 -358
  13. package/lib/esm/tasks/TaskEngine.js.map +1 -1
  14. package/lib/esm/tasks/TaskService.d.ts +4 -1
  15. package/lib/esm/tasks/TaskService.js +1 -4
  16. package/lib/esm/tasks/TaskService.js.map +1 -1
  17. package/lib/esm/tasks/TaskTracker.d.ts +1 -1
  18. package/lib/esm/tasks/TaskTracker.js.map +1 -1
  19. package/lib/esm/tasks/constants.js +0 -1
  20. package/lib/esm/tasks/constants.js.map +1 -1
  21. package/lib/esm/tasks/types.d.ts +0 -12
  22. package/lib/esm/workers/TaskEngine.d.ts +40 -0
  23. package/lib/esm/workers/TaskEngine.js +499 -0
  24. package/lib/esm/workers/TaskEngine.js.map +1 -0
  25. package/lib/esm/{tasks/workers → workers}/WorkThreadEnvironment.d.ts +1 -0
  26. package/lib/esm/workers/WorkThreadEnvironment.js.map +1 -0
  27. package/lib/esm/workers/index.d.ts +4 -0
  28. package/lib/esm/workers/index.js +5 -0
  29. package/lib/esm/workers/index.js.map +1 -0
  30. package/lib/{tasks → esm}/workers/messages.d.ts +1 -1
  31. package/lib/{tasks → esm}/workers/messages.js.map +1 -1
  32. package/lib/esm/workers/types.d.ts +41 -0
  33. package/lib/esm/workers/types.js +2 -0
  34. package/lib/esm/workers/types.js.map +1 -0
  35. package/lib/esm/workers/workerThread.d.ts +1 -0
  36. package/lib/esm/{tasks/workers → workers}/workerThread.js +8 -8
  37. package/lib/esm/workers/workerThread.js.map +1 -0
  38. package/lib/fs/FilesystemAdapter.cjs +34 -12
  39. package/lib/fs/FilesystemAdapter.d.ts +4 -2
  40. package/lib/fs/FilesystemAdapter.js.map +1 -1
  41. package/lib/index.cjs +1 -1
  42. package/lib/index.d.ts +1 -1
  43. package/lib/tasks/TaskEngine.cjs +15 -357
  44. package/lib/tasks/TaskEngine.d.ts +28 -46
  45. package/lib/tasks/TaskEngine.js.map +1 -1
  46. package/lib/tasks/TaskService.cjs +1 -4
  47. package/lib/tasks/TaskService.d.ts +4 -1
  48. package/lib/tasks/TaskService.js.map +1 -1
  49. package/lib/tasks/TaskTracker.d.ts +1 -1
  50. package/lib/tasks/TaskTracker.js.map +1 -1
  51. package/lib/tasks/constants.cjs +0 -1
  52. package/lib/tasks/constants.js.map +1 -1
  53. package/lib/tasks/types.d.ts +0 -12
  54. package/lib/workers/TaskEngine.cjs +503 -0
  55. package/lib/workers/TaskEngine.d.ts +40 -0
  56. package/lib/workers/TaskEngine.js.map +1 -0
  57. package/lib/{tasks/workers → workers}/WorkThreadEnvironment.d.ts +1 -0
  58. package/lib/workers/WorkThreadEnvironment.js.map +1 -0
  59. package/lib/workers/index.cjs +21 -0
  60. package/lib/workers/index.d.ts +4 -0
  61. package/lib/workers/index.js.map +1 -0
  62. package/lib/{esm/tasks/workers → workers}/messages.d.ts +1 -1
  63. package/lib/workers/messages.js.map +1 -0
  64. package/lib/workers/types.cjs +3 -0
  65. package/lib/workers/types.d.ts +41 -0
  66. package/lib/workers/types.js.map +1 -0
  67. package/lib/{tasks/workers → workers}/workerThread.cjs +17 -17
  68. package/lib/workers/workerThread.d.ts +1 -0
  69. package/lib/workers/workerThread.js.map +1 -0
  70. package/package.json +6 -1
  71. package/lib/esm/tasks/workers/WorkThreadEnvironment.js.map +0 -1
  72. package/lib/esm/tasks/workers/messages.js.map +0 -1
  73. package/lib/esm/tasks/workers/workerThread.d.ts +0 -1
  74. package/lib/esm/tasks/workers/workerThread.js.map +0 -1
  75. package/lib/tasks/workers/WorkThreadEnvironment.js.map +0 -1
  76. package/lib/tasks/workers/workerThread.d.ts +0 -1
  77. package/lib/tasks/workers/workerThread.js.map +0 -1
  78. /package/lib/esm/{tasks/workers → workers}/WorkThreadEnvironment.js +0 -0
  79. /package/lib/esm/{tasks/workers → workers}/messages.js +0 -0
  80. /package/lib/{tasks/workers → workers}/WorkThreadEnvironment.cjs +0 -0
  81. /package/lib/{tasks/workers → workers}/messages.cjs +0 -0
@@ -3,7 +3,7 @@ import { Constructor } from "@decaf-ts/decoration";
3
3
  import { Model } from "@decaf-ts/decorator-validation";
4
4
  import { PrimaryKeyType } from "@decaf-ts/db-decorators";
5
5
  import { Dispatch } from "../persistence/Dispatch";
6
- import { ContextualArgs } from "../utils/ContextualLoggedClass";
6
+ import { ContextualArgs, MaybeContextualArg } from "../utils/ContextualLoggedClass";
7
7
  import { RamAdapter } from "../ram";
8
8
  import type { RamContext, RawRamQuery } from "../ram/types";
9
9
  import type { FilesystemConfig } from "./types";
@@ -11,7 +11,6 @@ export declare class FilesystemAdapter extends RamAdapter {
11
11
  private readonly rootDir;
12
12
  private readonly dbPath;
13
13
  private readonly fs;
14
- private readonly ready;
15
14
  private readonly jsonSpacing?;
16
15
  private readonly onHydrated?;
17
16
  private readonly indexStore;
@@ -20,9 +19,11 @@ export declare class FilesystemAdapter extends RamAdapter {
20
19
  private readonly tableWatchers;
21
20
  private rootWatcher?;
22
21
  private watching;
22
+ private ready;
23
23
  private readonly watchDebounceMs;
24
24
  private readonly pendingObserverRefresh;
25
25
  constructor(conf?: FilesystemConfig, alias?: string);
26
+ initialize(...args: MaybeContextualArg<any>): Promise<void>;
26
27
  getFs(): typeof defaultFs;
27
28
  getStoragePath(): string;
28
29
  getTablePath(tableName: string): string;
@@ -64,4 +65,5 @@ export declare class FilesystemAdapter extends RamAdapter {
64
65
  update<M extends Model>(clazz: Constructor<M>, id: PrimaryKeyType, model: Record<string, any>, ...args: ContextualArgs<RamContext>): Promise<Record<string, any>>;
65
66
  delete<M extends Model>(clazz: Constructor<M>, id: PrimaryKeyType, ...args: ContextualArgs<RamContext>): Promise<Record<string, any>>;
66
67
  raw<R, D extends boolean>(rawInput: RawRamQuery<any>, docsOnly?: D, ...args: ContextualArgs<RamContext>): Promise<import("..").RawResult<R, D>>;
68
+ static decoration(): void;
67
69
  }
@@ -1,14 +1,16 @@
1
1
  import { promises as defaultFs, watch as fsWatch } from "node:fs";
2
2
  import { tmpdir } from "node:os";
3
3
  import path from "node:path";
4
+ import { Decoration, propMetadata } from "@decaf-ts/decoration";
4
5
  import { Model } from "@decaf-ts/decorator-validation";
5
- import { OperationKeys } from "@decaf-ts/db-decorators";
6
+ import { onCreate, onCreateUpdate, OperationKeys, } from "@decaf-ts/db-decorators";
6
7
  import { PersistenceKeys } from "./../persistence/constants.js";
7
- import { RamAdapter } from "./../ram/index.js";
8
- import { deserializeId, encodeId, ensureDir, readDirSafe, readJsonFile, removeFile, serializeId, writeJsonAtomic, fileExists, } from "./helpers.js";
8
+ import { createdByOnRamCreateUpdate, RamAdapter } from "./../ram/index.js";
9
+ import { deserializeId, encodeId, ensureDir, fileExists, readDirSafe, readJsonFile, removeFile, serializeId, writeJsonAtomic, } from "./helpers.js";
9
10
  import { FilesystemMultiLock } from "./locks/FilesystemMultiLock.js";
10
11
  import { FsDispatch } from "./FsDispatch.js";
11
12
  import { FsIndexStore, toIndexFileName } from "./indexStore.js";
13
+ import { Adapter } from "./../persistence/Adapter.js";
12
14
  export class FilesystemAdapter extends RamAdapter {
13
15
  constructor(conf = {}, alias = "fs") {
14
16
  const fsImpl = conf.fs ?? defaultFs;
@@ -16,8 +18,7 @@ export class FilesystemAdapter extends RamAdapter {
16
18
  const rootDir = conf.rootDir ?? path.join(tmpdir(), "decaf-fs-adapter");
17
19
  const dbPath = path.join(rootDir, aliasName);
18
20
  const lockDir = conf.lockDir ?? path.join(dbPath, "locks");
19
- const lock = conf.lock ??
20
- new FilesystemMultiLock(lockDir, fsImpl);
21
+ const lock = conf.lock ?? new FilesystemMultiLock(lockDir, fsImpl);
21
22
  const normalizedConfig = Object.assign({}, conf, {
22
23
  fs: fsImpl,
23
24
  rootDir,
@@ -29,6 +30,7 @@ export class FilesystemAdapter extends RamAdapter {
29
30
  this.indexDescriptorCache = new WeakMap();
30
31
  this.tableWatchers = new Map();
31
32
  this.watching = false;
33
+ this.ready = false;
32
34
  this.pendingObserverRefresh = new Map();
33
35
  this.fs = fsImpl;
34
36
  this.jsonSpacing = conf.jsonSpacing;
@@ -37,10 +39,13 @@ export class FilesystemAdapter extends RamAdapter {
37
39
  this.dbPath = dbPath;
38
40
  this.indexStore = new FsIndexStore(this.fs, (tableName) => this.indexesPath(tableName), this.jsonSpacing);
39
41
  this.watchDebounceMs = conf.watchDebounceMs ?? 50;
40
- this.ready = this.initializeFromDisk();
41
- this.ready.then(() => this.ensureWatching().catch((error) => this.log
42
- .for(this.ensureWatching)
43
- .error(`Filesystem watcher setup failed: ${error}`)));
42
+ }
43
+ async initialize(...args) {
44
+ const { ctxArgs } = (await this.logCtx(args, PersistenceKeys.INITIALIZATION, true)).for(this.initialize);
45
+ await super.initialize(...ctxArgs);
46
+ await this.initializeFromDisk();
47
+ await this.ensureWatching();
48
+ this.ready = true;
44
49
  }
45
50
  getFs() {
46
51
  return this.fs;
@@ -117,7 +122,9 @@ export class FilesystemAdapter extends RamAdapter {
117
122
  if (this.rootWatcher)
118
123
  return;
119
124
  this.rootWatcher = fsWatch(this.dbPath, { persistent: false }, (event, filename) => void this.handleRootEvent(event, filename));
120
- this.rootWatcher.on("error", (error) => this.log.for(this.startRootWatcher).error(`Filesystem root watcher error: ${error}`));
125
+ this.rootWatcher.on("error", (error) => this.log
126
+ .for(this.startRootWatcher)
127
+ .error(`Filesystem root watcher error: ${error}`));
121
128
  }
122
129
  async handleRootEvent(event, filename) {
123
130
  if (event !== "rename")
@@ -136,9 +143,7 @@ export class FilesystemAdapter extends RamAdapter {
136
143
  normalizeFilename(filename) {
137
144
  if (!filename)
138
145
  return undefined;
139
- return typeof filename === "string"
140
- ? filename
141
- : filename.toString("utf8");
146
+ return typeof filename === "string" ? filename : filename.toString("utf8");
142
147
  }
143
148
  scheduleObserverRefresh(tableName, event, id) {
144
149
  if (!this.dispatch)
@@ -188,7 +193,9 @@ export class FilesystemAdapter extends RamAdapter {
188
193
  if (!(await this.directoryExists(tableDir)))
189
194
  return;
190
195
  const watcher = fsWatch(tableDir, { persistent: false }, (event, filename) => void this.handleTableEvent(tableName, event, filename));
191
- watcher.on("error", (error) => this.log.for(this.watchTable).error(`Watcher error for ${tableName}: ${error}`));
196
+ watcher.on("error", (error) => this.log
197
+ .for(this.watchTable)
198
+ .error(`Watcher error for ${tableName}: ${error}`));
192
199
  this.tableWatchers.set(tableName, watcher);
193
200
  }
194
201
  unwatchTable(tableName) {
@@ -235,7 +242,8 @@ export class FilesystemAdapter extends RamAdapter {
235
242
  return undefined;
236
243
  }
237
244
  applyRecord(tableName, payload) {
238
- const map = this.client.get(tableName) ?? new Map();
245
+ const map = this.client.get(tableName) ??
246
+ new Map();
239
247
  const id = deserializeId(payload.id);
240
248
  const existed = map.has(id);
241
249
  map.set(id, payload.record);
@@ -426,5 +434,19 @@ export class FilesystemAdapter extends RamAdapter {
426
434
  await this.ensureReady();
427
435
  return super.raw(rawInput, docsOnly, ...args);
428
436
  }
437
+ static decoration() {
438
+ const createdByKey = PersistenceKeys.CREATED_BY;
439
+ const updatedByKey = PersistenceKeys.UPDATED_BY;
440
+ Decoration.flavouredAs("fs")
441
+ .for(createdByKey)
442
+ .define(onCreate(createdByOnRamCreateUpdate), propMetadata(createdByKey, {}))
443
+ .apply();
444
+ Decoration.flavouredAs("fs")
445
+ .for(updatedByKey)
446
+ .define(onCreateUpdate(createdByOnRamCreateUpdate), propMetadata(updatedByKey, {}))
447
+ .apply();
448
+ }
429
449
  }
450
+ FilesystemAdapter.decoration();
451
+ Adapter.setCurrent("fs");
430
452
  //# sourceMappingURL=FilesystemAdapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilesystemAdapter.js","sourceRoot":"","sources":["../../../src/fs/FilesystemAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FilesystemAdapter.js","sourceRoot":"","sources":["../../../src/fs/FilesystemAdapter.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@ export * from "./persistence";
22
22
  * @const VERSION
23
23
  * @memberOf module:core
24
24
  */
25
- export declare const VERSION = "0.8.52";
25
+ export declare const VERSION = "0.8.54";
26
26
  /**
27
27
  * @description Stores the current package version
28
28
  * @summary A constant representing the version of the core package
package/lib/esm/index.js CHANGED
@@ -32,7 +32,7 @@ export * from "./persistence/index.js";
32
32
  * @const VERSION
33
33
  * @memberOf module:core
34
34
  */
35
- export const VERSION = "0.8.52";
35
+ export const VERSION = "0.8.54";
36
36
  /**
37
37
  * @description Stores the current package version
38
38
  * @summary A constant representing the version of the core package
@@ -3,27 +3,29 @@ import { Repo } from "../repository/Repository";
3
3
  import { TaskEventModel } from "./models/TaskEventModel";
4
4
  import { TaskHandlerRegistry } from "./TaskHandlerRegistry";
5
5
  import { TaskEventBus } from "./TaskEventBus";
6
+ import { TaskStepResultModel } from "./models/TaskStepResultModel";
7
+ import { TaskLogEntryModel } from "./models/TaskLogEntryModel";
8
+ import { TaskBackoffModel } from "./models/TaskBackoffModel";
9
+ import { TaskStepSpecModel } from "./models/TaskStepSpecModel";
10
+ import { TaskEventType, TaskStatus } from "./constants";
6
11
  import { Adapter } from "../persistence/Adapter";
7
12
  import { Context } from "../persistence/Context";
8
13
  import { ContextOf, FlagsOf } from "../persistence/types";
9
- import { AbsContextual, MaybeContextualArg } from "../utils/ContextualLoggedClass";
14
+ import { LogLevel } from "@decaf-ts/logging";
15
+ import { AbsContextual, ContextualArgs, MaybeContextualArg } from "../utils/ContextualLoggedClass";
10
16
  import { OperationKeys } from "@decaf-ts/db-decorators";
11
17
  import { TaskContext } from "./TaskContext";
18
+ import { TaskStateChangeRequest } from "./TaskStateChangeError";
12
19
  import { DateTarget } from "@decaf-ts/decorator-validation";
13
20
  import { Constructor } from "@decaf-ts/decoration";
14
21
  import { TaskEngineConfig, TaskFlags } from "./types";
15
22
  import { TaskTracker } from "./TaskTracker";
16
- export declare class TaskEngine<A extends Adapter<any, any, any, any>> extends AbsContextual<ContextOf<A>> {
17
- private config;
23
+ import { Lock } from "@decaf-ts/transactional-decorators";
24
+ export declare class TaskEngine<A extends Adapter<any, any, any, any>, C extends TaskEngineConfig<A> = TaskEngineConfig<A>> extends AbsContextual<ContextOf<A>> {
25
+ protected config: C;
18
26
  private _tasks?;
19
27
  private _events?;
20
- private workerPoolConfig?;
21
- private workerThreads;
22
- private workerJobQueue;
23
- private workerJobs;
24
- private workerCounter;
25
- private workerThreadCapacity;
26
- private lock;
28
+ protected lock: Lock;
27
29
  protected get Context(): Constructor<ContextOf<A>>;
28
30
  protected get adapter(): A;
29
31
  protected get registry(): TaskHandlerRegistry;
@@ -32,14 +34,7 @@ export declare class TaskEngine<A extends Adapter<any, any, any, any>> extends A
32
34
  protected get events(): Repo<TaskEventModel>;
33
35
  protected running: boolean;
34
36
  static createTaskContext(base?: Context<any>, overrides?: Partial<TaskFlags>): TaskContext;
35
- constructor(config: TaskEngineConfig<A>);
36
- private normalizeWorkerPoolConfig;
37
- private hasWorkerPool;
38
- private getWorkerCount;
39
- private getWorkerExecutionSlots;
40
- private canDispatchToWorkers;
41
- private getExecutionConcurrency;
42
- private computeWorkerModules;
37
+ constructor(config: C);
43
38
  push<I, O>(task: TaskModel<I, O>, ...args: MaybeContextualArg<any>): Promise<TaskModel<I, O>>;
44
39
  push<I, O>(task: TaskModel<I, O>, track: false, ...args: MaybeContextualArg<any>): Promise<TaskModel<I, O>>;
45
40
  push<I, O>(task: TaskModel<I, O>, track: true, ...args: MaybeContextualArg<any>): Promise<{
@@ -62,38 +57,25 @@ export declare class TaskEngine<A extends Adapter<any, any, any, any>> extends A
62
57
  task: TaskModel<any, any>;
63
58
  tracker: TaskTracker<any>;
64
59
  }>;
65
- private ensureTaskError;
60
+ protected ensureTaskError(task: TaskModel, ctx: Context): Promise<TaskModel>;
66
61
  cancel(id: string, ...args: MaybeContextualArg<any>): Promise<TaskModel>;
67
62
  isRunning(): Promise<boolean>;
68
63
  start(...args: MaybeContextualArg<any>): Promise<void>;
69
64
  stop(...args: MaybeContextualArg<any>): Promise<void>;
70
- private spawnWorkers;
71
- private createWorker;
72
- private shutdownWorkers;
73
- private handleWorkerError;
74
- private handleWorkerExit;
75
- private handleWorkerMessage;
76
- private applyWorkerCache;
77
- private processWorkerQueue;
78
- private assignWorker;
79
- private enqueueWorkerJob;
80
- private loop;
81
- private claimBatch;
82
- private tryClaim;
83
- private runHandlerInline;
84
- private dispatchToWorker;
85
- private invokeHandler;
86
- private executeClaimed;
87
- private handleTaskStateChange;
88
- private runComposite;
89
- private normalizeBackoff;
90
- private normalizeSteps;
91
- private normalizeStepResults;
92
- private appendLog;
93
- private emitStatus;
94
- private emitLog;
95
- private emitProgress;
96
- private persistEvent;
65
+ protected loop(...args: ContextualArgs<any>): Promise<void>;
66
+ protected claimBatch(ctx: Context<any>): Promise<TaskModel[]>;
67
+ protected tryClaim(task: TaskModel, ctx: Context): Promise<TaskModel | null>;
68
+ protected executeClaimed(task: TaskModel): Promise<void>;
69
+ protected handleTaskStateChange(request: TaskStateChangeRequest, task: TaskModel, ctx: TaskContext): Promise<void>;
70
+ protected runComposite(task: TaskModel, context: TaskContext): Promise<any>;
71
+ protected normalizeBackoff(backoff: TaskBackoffModel | string | object | any): TaskBackoffModel;
72
+ protected normalizeSteps(steps: TaskStepSpecModel[] | string | undefined): TaskStepSpecModel[];
73
+ protected normalizeStepResults(results: TaskStepResultModel[] | string | undefined): TaskStepResultModel[];
74
+ protected appendLog(ctx: TaskContext | Context, task: TaskModel, logEntries: [LogLevel, string] | [LogLevel, string, any] | ([LogLevel, string] | [LogLevel, string, any])[]): Promise<[TaskModel, TaskLogEntryModel[]]>;
75
+ protected emitStatus(ctx: TaskContext | Context, task: TaskModel, status: TaskStatus, outputOrError?: any | Error, originalError?: Error): Promise<void>;
76
+ protected emitLog(ctx: TaskContext | Context, taskId: string, entries: TaskLogEntryModel[]): Promise<void>;
77
+ protected emitProgress(ctx: TaskContext | Context, taskId: string, data: any): Promise<void>;
78
+ protected persistEvent(ctx: TaskContext | Context, taskId: string, type: TaskEventType, payload: any): Promise<TaskEventModel>;
97
79
  toString(): string;
98
80
  context(operation: ((...args: any[]) => any) | OperationKeys.CREATE | OperationKeys.READ | OperationKeys.UPDATE | OperationKeys.DELETE | string, overrides: Partial<FlagsOf<ContextOf<A>>>, ...args: any[]): Promise<ContextOf<A>>;
99
81
  }