@decaf-ts/core 0.18.0 → 0.19.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/lib/cjs/auth/constants.cjs +2 -2
- package/lib/cjs/auth/constants.cjs.map +1 -0
- package/lib/cjs/auth/decorators.cjs +1 -0
- package/lib/cjs/auth/decorators.cjs.map +1 -0
- package/lib/cjs/auth/index.cjs +1 -0
- package/lib/cjs/auth/index.cjs.map +1 -0
- package/lib/cjs/fs/FilesystemAdapter.cjs +40 -39
- package/lib/cjs/fs/FilesystemAdapter.cjs.map +1 -0
- package/lib/cjs/fs/FsDispatch.cjs +3 -2
- package/lib/cjs/fs/FsDispatch.cjs.map +1 -0
- package/lib/cjs/fs/helpers.cjs +1 -0
- package/lib/cjs/fs/helpers.cjs.map +1 -0
- package/lib/cjs/fs/index.cjs +1 -0
- package/lib/cjs/fs/index.cjs.map +1 -0
- package/lib/cjs/fs/indexStore.cjs +8 -7
- package/lib/cjs/fs/indexStore.cjs.map +1 -0
- package/lib/cjs/fs/locks/FilesystemLock.cjs +3 -2
- package/lib/cjs/fs/locks/FilesystemLock.cjs.map +1 -0
- package/lib/cjs/fs/locks/FilesystemMultiLock.cjs +5 -4
- package/lib/cjs/fs/locks/FilesystemMultiLock.cjs.map +1 -0
- package/lib/cjs/fs/types.cjs +1 -0
- package/lib/cjs/fs/types.cjs.map +1 -0
- package/lib/cjs/identity/decorators.cjs +11 -10
- package/lib/cjs/identity/decorators.cjs.map +1 -0
- package/lib/cjs/identity/index.cjs +1 -0
- package/lib/cjs/identity/index.cjs.map +1 -0
- package/lib/cjs/index.cjs +4 -3
- package/lib/cjs/index.cjs.map +1 -0
- package/lib/cjs/interfaces/ContextuallyLogged.cjs +1 -0
- package/lib/cjs/interfaces/ContextuallyLogged.cjs.map +1 -0
- package/lib/cjs/interfaces/ErrorParser.cjs +1 -0
- package/lib/cjs/interfaces/ErrorParser.cjs.map +1 -0
- package/lib/cjs/interfaces/Executor.cjs +1 -0
- package/lib/cjs/interfaces/Executor.cjs.map +1 -0
- package/lib/cjs/interfaces/Observable.cjs +1 -0
- package/lib/cjs/interfaces/Observable.cjs.map +1 -0
- package/lib/cjs/interfaces/Observer.cjs +1 -0
- package/lib/cjs/interfaces/Observer.cjs.map +1 -0
- package/lib/cjs/interfaces/Paginatable.cjs +1 -0
- package/lib/cjs/interfaces/Paginatable.cjs.map +1 -0
- package/lib/cjs/interfaces/Queriable.cjs +1 -0
- package/lib/cjs/interfaces/Queriable.cjs.map +1 -0
- package/lib/cjs/interfaces/RawExecutor.cjs +1 -0
- package/lib/cjs/interfaces/RawExecutor.cjs.map +1 -0
- package/lib/cjs/interfaces/SequenceOptions.cjs +1 -0
- package/lib/cjs/interfaces/SequenceOptions.cjs.map +1 -0
- package/lib/cjs/interfaces/index.cjs +1 -0
- package/lib/cjs/interfaces/index.cjs.map +1 -0
- package/lib/cjs/migrations/Migration.cjs +16 -15
- package/lib/cjs/migrations/Migration.cjs.map +1 -0
- package/lib/cjs/migrations/MigrationService.cjs +38 -37
- package/lib/cjs/migrations/MigrationService.cjs.map +1 -0
- package/lib/cjs/migrations/MigrationTaskBuilder.cjs +3 -2
- package/lib/cjs/migrations/MigrationTaskBuilder.cjs.map +1 -0
- package/lib/cjs/migrations/MigrationTasks.cjs +22 -17
- package/lib/cjs/migrations/MigrationTasks.cjs.map +1 -0
- package/lib/cjs/migrations/MigrationVersioning.cjs +1 -0
- package/lib/cjs/migrations/MigrationVersioning.cjs.map +1 -0
- package/lib/cjs/migrations/SemverMigrationVersioning.cjs +1 -0
- package/lib/cjs/migrations/SemverMigrationVersioning.cjs.map +1 -0
- package/lib/cjs/migrations/StandardMigrationVersioning.cjs +1 -0
- package/lib/cjs/migrations/StandardMigrationVersioning.cjs.map +1 -0
- package/lib/cjs/migrations/constants.cjs +3 -2
- package/lib/cjs/migrations/constants.cjs.map +1 -0
- package/lib/cjs/migrations/decorators.cjs +10 -9
- package/lib/cjs/migrations/decorators.cjs.map +1 -0
- package/lib/cjs/migrations/index.cjs +6 -5
- package/lib/cjs/migrations/index.cjs.map +1 -0
- package/lib/cjs/migrations/types.cjs +1 -0
- package/lib/cjs/migrations/types.cjs.map +1 -0
- package/lib/cjs/model/BaseModel.cjs +14 -8
- package/lib/cjs/model/BaseModel.cjs.map +1 -0
- package/lib/cjs/model/SequenceModel.cjs +19 -13
- package/lib/cjs/model/SequenceModel.cjs.map +1 -0
- package/lib/cjs/model/construction.cjs +27 -26
- package/lib/cjs/model/construction.cjs.map +1 -0
- package/lib/cjs/model/decorators.cjs +48 -47
- package/lib/cjs/model/decorators.cjs.map +1 -0
- package/lib/cjs/model/index.cjs +1 -0
- package/lib/cjs/model/index.cjs.map +1 -0
- package/lib/cjs/model/indexing.cjs +6 -5
- package/lib/cjs/model/indexing.cjs.map +1 -0
- package/lib/cjs/model/types.cjs +1 -0
- package/lib/cjs/model/types.cjs.map +1 -0
- package/lib/cjs/overrides/Metadata.cjs +1 -0
- package/lib/cjs/overrides/Metadata.cjs.map +1 -0
- package/lib/cjs/overrides/Model.cjs +1 -0
- package/lib/cjs/overrides/Model.cjs.map +1 -0
- package/lib/cjs/overrides/ModelBuilder.cjs +1 -0
- package/lib/cjs/overrides/ModelBuilder.cjs.map +1 -0
- package/lib/cjs/overrides/index.cjs +1 -0
- package/lib/cjs/overrides/index.cjs.map +1 -0
- package/lib/cjs/overrides/injectables.cjs +1 -0
- package/lib/cjs/overrides/injectables.cjs.map +1 -0
- package/lib/cjs/overrides/overrides.cjs +22 -21
- package/lib/cjs/overrides/overrides.cjs.map +1 -0
- package/lib/cjs/persistence/Adapter.cjs +47 -41
- package/lib/cjs/persistence/Adapter.cjs.map +1 -0
- package/lib/cjs/persistence/Context.cjs +10 -7
- package/lib/cjs/persistence/Context.cjs.map +1 -0
- package/lib/cjs/persistence/ContextLock.cjs +1 -0
- package/lib/cjs/persistence/ContextLock.cjs.map +1 -0
- package/lib/cjs/persistence/Dispatch.cjs +15 -14
- package/lib/cjs/persistence/Dispatch.cjs.map +1 -0
- package/lib/cjs/persistence/ObserverHandler.cjs +3 -2
- package/lib/cjs/persistence/ObserverHandler.cjs.map +1 -0
- package/lib/cjs/persistence/Sequence.cjs +19 -18
- package/lib/cjs/persistence/Sequence.cjs.map +1 -0
- package/lib/cjs/persistence/constants.cjs +14 -21
- package/lib/cjs/persistence/constants.cjs.map +1 -0
- package/lib/cjs/persistence/decorators.cjs +6 -5
- package/lib/cjs/persistence/decorators.cjs.map +1 -0
- package/lib/cjs/persistence/errors.cjs +1 -0
- package/lib/cjs/persistence/errors.cjs.map +1 -0
- package/lib/cjs/persistence/event-filters.cjs +5 -4
- package/lib/cjs/persistence/event-filters.cjs.map +1 -0
- package/lib/cjs/persistence/generators.cjs +1 -0
- package/lib/cjs/persistence/generators.cjs.map +1 -0
- package/lib/cjs/persistence/index.cjs +1 -0
- package/lib/cjs/persistence/index.cjs.map +1 -0
- package/lib/cjs/persistence/transactions.cjs +9 -8
- package/lib/cjs/persistence/transactions.cjs.map +1 -0
- package/lib/cjs/persistence/types.cjs +1 -0
- package/lib/cjs/persistence/types.cjs.map +1 -0
- package/lib/cjs/query/Condition.cjs +173 -165
- package/lib/cjs/query/Condition.cjs.map +1 -0
- package/lib/cjs/query/MethodQueryBuilder.cjs +37 -34
- package/lib/cjs/query/MethodQueryBuilder.cjs.map +1 -0
- package/lib/cjs/query/Paginator.cjs +28 -27
- package/lib/cjs/query/Paginator.cjs.map +1 -0
- package/lib/cjs/query/Statement.cjs +90 -84
- package/lib/cjs/query/Statement.cjs.map +1 -0
- package/lib/cjs/query/constants.cjs +5 -21
- package/lib/cjs/query/constants.cjs.map +1 -0
- package/lib/cjs/query/decorators.cjs +16 -15
- package/lib/cjs/query/decorators.cjs.map +1 -0
- package/lib/cjs/query/errors.cjs +1 -0
- package/lib/cjs/query/errors.cjs.map +1 -0
- package/lib/cjs/query/index.cjs +1 -0
- package/lib/cjs/query/index.cjs.map +1 -0
- package/lib/cjs/query/options.cjs +1 -0
- package/lib/cjs/query/options.cjs.map +1 -0
- package/lib/cjs/query/selectors.cjs +1 -0
- package/lib/cjs/query/selectors.cjs.map +1 -0
- package/lib/cjs/query/types.cjs +2 -13
- package/lib/cjs/query/types.cjs.map +1 -0
- package/lib/cjs/query/utils.cjs +10 -9
- package/lib/cjs/query/utils.cjs.map +1 -0
- package/lib/cjs/ram/RamAdapter.cjs +21 -20
- package/lib/cjs/ram/RamAdapter.cjs.map +1 -0
- package/lib/cjs/ram/RamPaginator.cjs +3 -2
- package/lib/cjs/ram/RamPaginator.cjs.map +1 -0
- package/lib/cjs/ram/RamStatement.cjs +38 -37
- package/lib/cjs/ram/RamStatement.cjs.map +1 -0
- package/lib/cjs/ram/constants.cjs +1 -0
- package/lib/cjs/ram/constants.cjs.map +1 -0
- package/lib/cjs/ram/handlers.cjs +3 -2
- package/lib/cjs/ram/handlers.cjs.map +1 -0
- package/lib/cjs/ram/index.cjs +8 -7
- package/lib/cjs/ram/index.cjs.map +1 -0
- package/lib/cjs/ram/types.cjs +1 -0
- package/lib/cjs/ram/types.cjs.map +1 -0
- package/lib/cjs/repository/Repository.cjs +85 -79
- package/lib/cjs/repository/Repository.cjs.map +1 -0
- package/lib/cjs/repository/constants.cjs +5 -20
- package/lib/cjs/repository/constants.cjs.map +1 -0
- package/lib/cjs/repository/decorators.cjs +7 -6
- package/lib/cjs/repository/decorators.cjs.map +1 -0
- package/lib/cjs/repository/errors.cjs +1 -0
- package/lib/cjs/repository/errors.cjs.map +1 -0
- package/lib/cjs/repository/index.cjs +1 -0
- package/lib/cjs/repository/index.cjs.map +1 -0
- package/lib/cjs/repository/injectables.cjs +14 -13
- package/lib/cjs/repository/injectables.cjs.map +1 -0
- package/lib/cjs/repository/types.cjs +1 -0
- package/lib/cjs/repository/types.cjs.map +1 -0
- package/lib/cjs/repository/utils.cjs +3 -2
- package/lib/cjs/repository/utils.cjs.map +1 -0
- package/lib/cjs/services/ModelService.cjs +36 -30
- package/lib/cjs/services/ModelService.cjs.map +1 -0
- package/lib/cjs/services/PersistenceService.cjs +9 -8
- package/lib/cjs/services/PersistenceService.cjs.map +1 -0
- package/lib/cjs/services/index.cjs +1 -0
- package/lib/cjs/services/index.cjs.map +1 -0
- package/lib/cjs/services/services.cjs +37 -31
- package/lib/cjs/services/services.cjs.map +1 -0
- package/lib/cjs/tasks/CleanUpTask.cjs +30 -24
- package/lib/cjs/tasks/CleanUpTask.cjs.map +1 -0
- package/lib/cjs/tasks/TaskContext.cjs +16 -15
- package/lib/cjs/tasks/TaskContext.cjs.map +1 -0
- package/lib/cjs/tasks/TaskEngine.cjs +112 -111
- package/lib/cjs/tasks/TaskEngine.cjs.map +1 -0
- package/lib/cjs/tasks/TaskErrors.cjs +1 -0
- package/lib/cjs/tasks/TaskErrors.cjs.map +1 -0
- package/lib/cjs/tasks/TaskEventBus.cjs +7 -6
- package/lib/cjs/tasks/TaskEventBus.cjs.map +1 -0
- package/lib/cjs/tasks/TaskEventService.cjs +8 -7
- package/lib/cjs/tasks/TaskEventService.cjs.map +1 -0
- package/lib/cjs/tasks/TaskHandler.cjs +5 -4
- package/lib/cjs/tasks/TaskHandler.cjs.map +1 -0
- package/lib/cjs/tasks/TaskHandlerRegistry.cjs +1 -0
- package/lib/cjs/tasks/TaskHandlerRegistry.cjs.map +1 -0
- package/lib/cjs/tasks/TaskService.cjs +43 -37
- package/lib/cjs/tasks/TaskService.cjs.map +1 -0
- package/lib/cjs/tasks/TaskStateChangeError.cjs +1 -0
- package/lib/cjs/tasks/TaskStateChangeError.cjs.map +1 -0
- package/lib/cjs/tasks/TaskTracker.cjs +62 -61
- package/lib/cjs/tasks/TaskTracker.cjs.map +1 -0
- package/lib/cjs/tasks/builder.cjs +30 -24
- package/lib/cjs/tasks/builder.cjs.map +1 -0
- package/lib/cjs/tasks/constants.cjs +6 -10
- package/lib/cjs/tasks/constants.cjs.map +1 -0
- package/lib/cjs/tasks/decorators.cjs +5 -4
- package/lib/cjs/tasks/decorators.cjs.map +1 -0
- package/lib/cjs/tasks/index.cjs +6 -5
- package/lib/cjs/tasks/index.cjs.map +1 -0
- package/lib/cjs/tasks/logging.cjs +12 -11
- package/lib/cjs/tasks/logging.cjs.map +1 -0
- package/lib/cjs/tasks/models/TaskBackoffModel.cjs +16 -10
- package/lib/cjs/tasks/models/TaskBackoffModel.cjs.map +1 -0
- package/lib/cjs/tasks/models/TaskErrorModel.cjs +11 -5
- package/lib/cjs/tasks/models/TaskErrorModel.cjs.map +1 -0
- package/lib/cjs/tasks/models/TaskEventModel.cjs +29 -23
- package/lib/cjs/tasks/models/TaskEventModel.cjs.map +1 -0
- package/lib/cjs/tasks/models/TaskIOSerializer.cjs +4 -3
- package/lib/cjs/tasks/models/TaskIOSerializer.cjs.map +1 -0
- package/lib/cjs/tasks/models/TaskLogEntryModel.cjs +11 -5
- package/lib/cjs/tasks/models/TaskLogEntryModel.cjs.map +1 -0
- package/lib/cjs/tasks/models/TaskModel.cjs +72 -66
- package/lib/cjs/tasks/models/TaskModel.cjs.map +1 -0
- package/lib/cjs/tasks/models/TaskStepResultModel.cjs +14 -8
- package/lib/cjs/tasks/models/TaskStepResultModel.cjs.map +1 -0
- package/lib/cjs/tasks/models/TaskStepSpecModel.cjs +11 -5
- package/lib/cjs/tasks/models/TaskStepSpecModel.cjs.map +1 -0
- package/lib/cjs/tasks/models/index.cjs +1 -0
- package/lib/cjs/tasks/models/index.cjs.map +1 -0
- package/lib/cjs/tasks/types.cjs +1 -0
- package/lib/cjs/tasks/types.cjs.map +1 -0
- package/lib/cjs/tasks/utils.cjs +6 -5
- package/lib/cjs/tasks/utils.cjs.map +1 -0
- package/lib/cjs/utils/ContextualLoggedClass.cjs +5 -4
- package/lib/cjs/utils/ContextualLoggedClass.cjs.map +1 -0
- package/lib/cjs/utils/decorators.cjs +9 -8
- package/lib/cjs/utils/decorators.cjs.map +1 -0
- package/lib/cjs/utils/errors.cjs +1 -0
- package/lib/cjs/utils/errors.cjs.map +1 -0
- package/lib/cjs/utils/index.cjs +1 -0
- package/lib/cjs/utils/index.cjs.map +1 -0
- package/lib/cjs/utils/throttling.cjs +4 -3
- package/lib/cjs/utils/throttling.cjs.map +1 -0
- package/lib/cjs/utils/types.cjs +1 -0
- package/lib/cjs/utils/types.cjs.map +1 -0
- package/lib/cjs/utils/utils.cjs +3 -2
- package/lib/cjs/utils/utils.cjs.map +1 -0
- package/lib/cjs/workers/TaskEngine.cjs +30 -29
- package/lib/cjs/workers/TaskEngine.cjs.map +1 -0
- package/lib/cjs/workers/WorkThreadEnvironment.cjs +1 -0
- package/lib/cjs/workers/WorkThreadEnvironment.cjs.map +1 -0
- package/lib/cjs/workers/index.cjs +1 -0
- package/lib/cjs/workers/index.cjs.map +1 -0
- package/lib/cjs/workers/messages.cjs +1 -0
- package/lib/cjs/workers/messages.cjs.map +1 -0
- package/lib/cjs/workers/types.cjs +1 -0
- package/lib/cjs/workers/types.cjs.map +1 -0
- package/lib/cjs/workers/workerThread.cjs +18 -17
- package/lib/cjs/workers/workerThread.cjs.map +1 -0
- package/lib/esm/index.js +1 -1
- package/lib/types/auth/constants.d.cts +5 -0
- package/lib/types/auth/constants.d.mts +5 -0
- package/lib/types/auth/decorators.d.cts +5 -0
- package/lib/types/auth/decorators.d.mts +5 -0
- package/lib/types/auth/index.d.cts +2 -0
- package/lib/types/auth/index.d.mts +2 -0
- package/lib/types/fs/FilesystemAdapter.d.cts +70 -0
- package/lib/types/fs/FilesystemAdapter.d.mts +70 -0
- package/lib/types/fs/FsDispatch.d.cts +7 -0
- package/lib/types/fs/FsDispatch.d.mts +7 -0
- package/lib/types/fs/helpers.d.cts +17 -0
- package/lib/types/fs/helpers.d.mts +17 -0
- package/lib/types/fs/index.d.cts +4 -0
- package/lib/types/fs/index.d.mts +4 -0
- package/lib/types/fs/indexStore.d.cts +28 -0
- package/lib/types/fs/indexStore.d.mts +28 -0
- package/lib/types/fs/locks/FilesystemLock.d.cts +13 -0
- package/lib/types/fs/locks/FilesystemLock.d.mts +13 -0
- package/lib/types/fs/locks/FilesystemMultiLock.d.cts +8 -0
- package/lib/types/fs/locks/FilesystemMultiLock.d.mts +8 -0
- package/lib/types/fs/types.d.cts +40 -0
- package/lib/types/fs/types.d.mts +40 -0
- package/lib/types/identity/decorators.d.cts +72 -0
- package/lib/types/identity/decorators.d.mts +72 -0
- package/lib/types/identity/index.d.cts +6 -0
- package/lib/types/identity/index.d.mts +6 -0
- package/lib/types/index.d.cts +34 -0
- package/lib/types/index.d.mts +34 -0
- package/lib/types/index.d.ts +1 -1
- package/lib/types/interfaces/ContextuallyLogged.d.cts +8 -0
- package/lib/types/interfaces/ContextuallyLogged.d.mts +8 -0
- package/lib/types/interfaces/ErrorParser.d.cts +16 -0
- package/lib/types/interfaces/ErrorParser.d.mts +16 -0
- package/lib/types/interfaces/Executor.d.cts +16 -0
- package/lib/types/interfaces/Executor.d.mts +16 -0
- package/lib/types/interfaces/Observable.d.cts +33 -0
- package/lib/types/interfaces/Observable.d.mts +33 -0
- package/lib/types/interfaces/Observer.d.cts +15 -0
- package/lib/types/interfaces/Observer.d.mts +15 -0
- package/lib/types/interfaces/Paginatable.d.cts +20 -0
- package/lib/types/interfaces/Paginatable.d.mts +20 -0
- package/lib/types/interfaces/Queriable.d.cts +47 -0
- package/lib/types/interfaces/Queriable.d.mts +47 -0
- package/lib/types/interfaces/RawExecutor.d.cts +28 -0
- package/lib/types/interfaces/RawExecutor.d.mts +28 -0
- package/lib/types/interfaces/SequenceOptions.d.cts +79 -0
- package/lib/types/interfaces/SequenceOptions.d.mts +79 -0
- package/lib/types/interfaces/index.d.cts +12 -0
- package/lib/types/interfaces/index.d.mts +12 -0
- package/lib/types/migrations/Migration.d.cts +19 -0
- package/lib/types/migrations/Migration.d.mts +19 -0
- package/lib/types/migrations/MigrationService.d.cts +63 -0
- package/lib/types/migrations/MigrationService.d.mts +63 -0
- package/lib/types/migrations/MigrationTaskBuilder.d.cts +10 -0
- package/lib/types/migrations/MigrationTaskBuilder.d.mts +10 -0
- package/lib/types/migrations/MigrationTasks.d.cts +9 -0
- package/lib/types/migrations/MigrationTasks.d.mts +9 -0
- package/lib/types/migrations/MigrationVersioning.d.cts +7 -0
- package/lib/types/migrations/MigrationVersioning.d.mts +7 -0
- package/lib/types/migrations/SemverMigrationVersioning.d.cts +10 -0
- package/lib/types/migrations/SemverMigrationVersioning.d.mts +10 -0
- package/lib/types/migrations/StandardMigrationVersioning.d.cts +12 -0
- package/lib/types/migrations/StandardMigrationVersioning.d.mts +12 -0
- package/lib/types/migrations/constants.d.cts +2 -0
- package/lib/types/migrations/constants.d.mts +2 -0
- package/lib/types/migrations/decorators.d.cts +12 -0
- package/lib/types/migrations/decorators.d.mts +12 -0
- package/lib/types/migrations/index.d.cts +15 -0
- package/lib/types/migrations/index.d.mts +15 -0
- package/lib/types/migrations/types.d.cts +46 -0
- package/lib/types/migrations/types.d.mts +46 -0
- package/lib/types/model/BaseModel.d.cts +37 -0
- package/lib/types/model/BaseModel.d.mts +37 -0
- package/lib/types/model/SequenceModel.d.cts +32 -0
- package/lib/types/model/SequenceModel.d.mts +32 -0
- package/lib/types/model/construction.d.cts +455 -0
- package/lib/types/model/construction.d.mts +455 -0
- package/lib/types/model/decorators.d.cts +237 -0
- package/lib/types/model/decorators.d.mts +237 -0
- package/lib/types/model/index.d.cts +11 -0
- package/lib/types/model/index.d.mts +11 -0
- package/lib/types/model/indexing.d.cts +20 -0
- package/lib/types/model/indexing.d.mts +20 -0
- package/lib/types/model/types.d.cts +60 -0
- package/lib/types/model/types.d.mts +60 -0
- package/lib/types/overrides/Metadata.d.cts +22 -0
- package/lib/types/overrides/Metadata.d.mts +22 -0
- package/lib/types/overrides/Model.d.cts +94 -0
- package/lib/types/overrides/Model.d.mts +94 -0
- package/lib/types/overrides/ModelBuilder.d.cts +31 -0
- package/lib/types/overrides/ModelBuilder.d.mts +31 -0
- package/lib/types/overrides/index.d.cts +11 -0
- package/lib/types/overrides/index.d.mts +11 -0
- package/lib/types/overrides/injectables.d.cts +10 -0
- package/lib/types/overrides/injectables.d.mts +10 -0
- package/lib/types/overrides/overrides.d.cts +1 -0
- package/lib/types/overrides/overrides.d.mts +1 -0
- package/lib/types/persistence/Adapter.d.cts +469 -0
- package/lib/types/persistence/Adapter.d.mts +469 -0
- package/lib/types/persistence/Context.d.cts +16 -0
- package/lib/types/persistence/Context.d.mts +16 -0
- package/lib/types/persistence/ContextLock.d.cts +18 -0
- package/lib/types/persistence/ContextLock.d.mts +18 -0
- package/lib/types/persistence/Dispatch.d.cts +128 -0
- package/lib/types/persistence/Dispatch.d.mts +128 -0
- package/lib/types/persistence/ObserverHandler.d.cts +111 -0
- package/lib/types/persistence/ObserverHandler.d.mts +111 -0
- package/lib/types/persistence/Sequence.d.cts +126 -0
- package/lib/types/persistence/Sequence.d.mts +126 -0
- package/lib/types/persistence/constants.d.cts +74 -0
- package/lib/types/persistence/constants.d.mts +74 -0
- package/lib/types/persistence/decorators.d.cts +28 -0
- package/lib/types/persistence/decorators.d.mts +28 -0
- package/lib/types/persistence/errors.d.cts +33 -0
- package/lib/types/persistence/errors.d.mts +33 -0
- package/lib/types/persistence/event-filters.d.cts +20 -0
- package/lib/types/persistence/event-filters.d.mts +20 -0
- package/lib/types/persistence/generators.d.cts +14 -0
- package/lib/types/persistence/generators.d.mts +14 -0
- package/lib/types/persistence/index.d.cts +18 -0
- package/lib/types/persistence/index.d.mts +18 -0
- package/lib/types/persistence/transactions.d.cts +4 -0
- package/lib/types/persistence/transactions.d.mts +4 -0
- package/lib/types/persistence/types.d.cts +86 -0
- package/lib/types/persistence/types.d.mts +86 -0
- package/lib/types/query/Condition.d.cts +131 -0
- package/lib/types/query/Condition.d.mts +131 -0
- package/lib/types/query/MethodQueryBuilder.d.cts +185 -0
- package/lib/types/query/MethodQueryBuilder.d.mts +185 -0
- package/lib/types/query/Paginator.d.cts +105 -0
- package/lib/types/query/Paginator.d.mts +105 -0
- package/lib/types/query/Statement.d.cts +136 -0
- package/lib/types/query/Statement.d.mts +136 -0
- package/lib/types/query/constants.d.cts +69 -0
- package/lib/types/query/constants.d.mts +69 -0
- package/lib/types/query/decorators.d.cts +8 -0
- package/lib/types/query/decorators.d.mts +8 -0
- package/lib/types/query/errors.d.cts +21 -0
- package/lib/types/query/errors.d.mts +21 -0
- package/lib/types/query/index.d.cts +16 -0
- package/lib/types/query/index.d.mts +16 -0
- package/lib/types/query/options.d.cts +393 -0
- package/lib/types/query/options.d.mts +393 -0
- package/lib/types/query/selectors.d.cts +39 -0
- package/lib/types/query/selectors.d.mts +39 -0
- package/lib/types/query/types.d.cts +158 -0
- package/lib/types/query/types.d.mts +158 -0
- package/lib/types/query/utils.d.cts +40 -0
- package/lib/types/query/utils.d.mts +40 -0
- package/lib/types/ram/RamAdapter.d.cts +341 -0
- package/lib/types/ram/RamAdapter.d.mts +341 -0
- package/lib/types/ram/RamPaginator.d.cts +54 -0
- package/lib/types/ram/RamPaginator.d.mts +54 -0
- package/lib/types/ram/RamStatement.d.cts +92 -0
- package/lib/types/ram/RamStatement.d.mts +92 -0
- package/lib/types/ram/constants.d.cts +8 -0
- package/lib/types/ram/constants.d.mts +8 -0
- package/lib/types/ram/handlers.d.cts +24 -0
- package/lib/types/ram/handlers.d.mts +24 -0
- package/lib/types/ram/index.d.cts +12 -0
- package/lib/types/ram/index.d.mts +12 -0
- package/lib/types/ram/types.d.cts +50 -0
- package/lib/types/ram/types.d.mts +50 -0
- package/lib/types/repository/Repository.d.cts +501 -0
- package/lib/types/repository/Repository.d.mts +501 -0
- package/lib/types/repository/constants.d.cts +36 -0
- package/lib/types/repository/constants.d.mts +36 -0
- package/lib/types/repository/decorators.d.cts +30 -0
- package/lib/types/repository/decorators.d.mts +30 -0
- package/lib/types/repository/errors.d.cts +19 -0
- package/lib/types/repository/errors.d.mts +19 -0
- package/lib/types/repository/index.d.cts +12 -0
- package/lib/types/repository/index.d.mts +12 -0
- package/lib/types/repository/injectables.d.cts +95 -0
- package/lib/types/repository/injectables.d.mts +95 -0
- package/lib/types/repository/types.d.cts +28 -0
- package/lib/types/repository/types.d.mts +28 -0
- package/lib/types/repository/utils.d.cts +36 -0
- package/lib/types/repository/utils.d.mts +36 -0
- package/lib/types/services/ModelService.d.cts +45 -0
- package/lib/types/services/ModelService.d.mts +45 -0
- package/lib/types/services/PersistenceService.d.cts +17 -0
- package/lib/types/services/PersistenceService.d.mts +17 -0
- package/lib/types/services/index.d.cts +8 -0
- package/lib/types/services/index.d.mts +8 -0
- package/lib/types/services/services.d.cts +96 -0
- package/lib/types/services/services.d.mts +96 -0
- package/lib/types/tasks/CleanUpTask.d.cts +15 -0
- package/lib/types/tasks/CleanUpTask.d.mts +15 -0
- package/lib/types/tasks/TaskContext.d.cts +30 -0
- package/lib/types/tasks/TaskContext.d.mts +30 -0
- package/lib/types/tasks/TaskEngine.d.cts +97 -0
- package/lib/types/tasks/TaskEngine.d.mts +97 -0
- package/lib/types/tasks/TaskErrors.d.cts +65 -0
- package/lib/types/tasks/TaskErrors.d.mts +65 -0
- package/lib/types/tasks/TaskEventBus.d.cts +17 -0
- package/lib/types/tasks/TaskEventBus.d.mts +17 -0
- package/lib/types/tasks/TaskEventService.d.cts +7 -0
- package/lib/types/tasks/TaskEventService.d.mts +7 -0
- package/lib/types/tasks/TaskHandler.d.cts +12 -0
- package/lib/types/tasks/TaskHandler.d.mts +12 -0
- package/lib/types/tasks/TaskHandlerRegistry.d.cts +8 -0
- package/lib/types/tasks/TaskHandlerRegistry.d.mts +8 -0
- package/lib/types/tasks/TaskService.d.cts +65 -0
- package/lib/types/tasks/TaskService.d.mts +65 -0
- package/lib/types/tasks/TaskStateChangeError.d.cts +11 -0
- package/lib/types/tasks/TaskStateChangeError.d.mts +11 -0
- package/lib/types/tasks/TaskTracker.d.cts +47 -0
- package/lib/types/tasks/TaskTracker.d.mts +47 -0
- package/lib/types/tasks/builder.d.cts +72 -0
- package/lib/types/tasks/builder.d.mts +72 -0
- package/lib/types/tasks/constants.d.cts +31 -0
- package/lib/types/tasks/constants.d.mts +31 -0
- package/lib/types/tasks/decorators.d.cts +4 -0
- package/lib/types/tasks/decorators.d.mts +4 -0
- package/lib/types/tasks/index.d.cts +23 -0
- package/lib/types/tasks/index.d.mts +23 -0
- package/lib/types/tasks/logging.d.cts +31 -0
- package/lib/types/tasks/logging.d.mts +31 -0
- package/lib/types/tasks/models/TaskBackoffModel.d.cts +9 -0
- package/lib/types/tasks/models/TaskBackoffModel.d.mts +9 -0
- package/lib/types/tasks/models/TaskErrorModel.d.cts +8 -0
- package/lib/types/tasks/models/TaskErrorModel.d.mts +8 -0
- package/lib/types/tasks/models/TaskEventModel.d.cts +11 -0
- package/lib/types/tasks/models/TaskEventModel.d.mts +11 -0
- package/lib/types/tasks/models/TaskIOSerializer.d.cts +33 -0
- package/lib/types/tasks/models/TaskIOSerializer.d.mts +33 -0
- package/lib/types/tasks/models/TaskLogEntryModel.d.cts +10 -0
- package/lib/types/tasks/models/TaskLogEntryModel.d.mts +10 -0
- package/lib/types/tasks/models/TaskModel.d.cts +43 -0
- package/lib/types/tasks/models/TaskModel.d.mts +43 -0
- package/lib/types/tasks/models/TaskStepResultModel.d.cts +9 -0
- package/lib/types/tasks/models/TaskStepResultModel.d.mts +9 -0
- package/lib/types/tasks/models/TaskStepSpecModel.d.cts +9 -0
- package/lib/types/tasks/models/TaskStepSpecModel.d.mts +9 -0
- package/lib/types/tasks/models/index.d.cts +8 -0
- package/lib/types/tasks/models/index.d.mts +8 -0
- package/lib/types/tasks/types.d.cts +71 -0
- package/lib/types/tasks/types.d.mts +71 -0
- package/lib/types/tasks/utils.d.cts +5 -0
- package/lib/types/tasks/utils.d.mts +5 -0
- package/lib/types/utils/ContextualLoggedClass.d.cts +37 -0
- package/lib/types/utils/ContextualLoggedClass.d.mts +37 -0
- package/lib/types/utils/decorators.d.cts +27 -0
- package/lib/types/utils/decorators.d.mts +27 -0
- package/lib/types/utils/errors.d.cts +56 -0
- package/lib/types/utils/errors.d.mts +56 -0
- package/lib/types/utils/index.d.cts +11 -0
- package/lib/types/utils/index.d.mts +11 -0
- package/lib/types/utils/throttling.d.cts +9 -0
- package/lib/types/utils/throttling.d.mts +9 -0
- package/lib/types/utils/types.d.cts +23 -0
- package/lib/types/utils/types.d.mts +23 -0
- package/lib/types/utils/utils.d.cts +22 -0
- package/lib/types/utils/utils.d.mts +22 -0
- package/lib/types/workers/TaskEngine.d.cts +40 -0
- package/lib/types/workers/TaskEngine.d.mts +40 -0
- package/lib/types/workers/WorkThreadEnvironment.d.cts +35 -0
- package/lib/types/workers/WorkThreadEnvironment.d.mts +35 -0
- package/lib/types/workers/index.d.cts +5 -0
- package/lib/types/workers/index.d.mts +5 -0
- package/lib/types/workers/messages.d.cts +69 -0
- package/lib/types/workers/messages.d.mts +69 -0
- package/lib/types/workers/types.d.cts +41 -0
- package/lib/types/workers/types.d.mts +41 -0
- package/lib/types/workers/workerThread.d.cts +1 -0
- package/lib/types/workers/workerThread.d.mts +1 -0
- package/package.json +4 -4
- package/lib/cjs/auth/constants.js.map +0 -1
- package/lib/cjs/auth/decorators.js.map +0 -1
- package/lib/cjs/auth/index.js.map +0 -1
- package/lib/cjs/fs/FilesystemAdapter.js.map +0 -1
- package/lib/cjs/fs/FsDispatch.js.map +0 -1
- package/lib/cjs/fs/helpers.js.map +0 -1
- package/lib/cjs/fs/index.js.map +0 -1
- package/lib/cjs/fs/indexStore.js.map +0 -1
- package/lib/cjs/fs/locks/FilesystemLock.js.map +0 -1
- package/lib/cjs/fs/locks/FilesystemMultiLock.js.map +0 -1
- package/lib/cjs/fs/types.js.map +0 -1
- package/lib/cjs/identity/decorators.js.map +0 -1
- package/lib/cjs/identity/index.js.map +0 -1
- package/lib/cjs/index.js.map +0 -1
- package/lib/cjs/interfaces/ContextuallyLogged.js.map +0 -1
- package/lib/cjs/interfaces/ErrorParser.js.map +0 -1
- package/lib/cjs/interfaces/Executor.js.map +0 -1
- package/lib/cjs/interfaces/Observable.js.map +0 -1
- package/lib/cjs/interfaces/Observer.js.map +0 -1
- package/lib/cjs/interfaces/Paginatable.js.map +0 -1
- package/lib/cjs/interfaces/Queriable.js.map +0 -1
- package/lib/cjs/interfaces/RawExecutor.js.map +0 -1
- package/lib/cjs/interfaces/SequenceOptions.js.map +0 -1
- package/lib/cjs/interfaces/index.js.map +0 -1
- package/lib/cjs/migrations/Migration.js.map +0 -1
- package/lib/cjs/migrations/MigrationService.js.map +0 -1
- package/lib/cjs/migrations/MigrationTaskBuilder.js.map +0 -1
- package/lib/cjs/migrations/MigrationTasks.js.map +0 -1
- package/lib/cjs/migrations/MigrationVersioning.js.map +0 -1
- package/lib/cjs/migrations/SemverMigrationVersioning.js.map +0 -1
- package/lib/cjs/migrations/StandardMigrationVersioning.js.map +0 -1
- package/lib/cjs/migrations/constants.js.map +0 -1
- package/lib/cjs/migrations/decorators.js.map +0 -1
- package/lib/cjs/migrations/index.js.map +0 -1
- package/lib/cjs/migrations/types.js.map +0 -1
- package/lib/cjs/model/BaseModel.js.map +0 -1
- package/lib/cjs/model/SequenceModel.js.map +0 -1
- package/lib/cjs/model/construction.js.map +0 -1
- package/lib/cjs/model/decorators.js.map +0 -1
- package/lib/cjs/model/index.js.map +0 -1
- package/lib/cjs/model/indexing.js.map +0 -1
- package/lib/cjs/model/types.js.map +0 -1
- package/lib/cjs/overrides/Metadata.js.map +0 -1
- package/lib/cjs/overrides/Model.js.map +0 -1
- package/lib/cjs/overrides/ModelBuilder.js.map +0 -1
- package/lib/cjs/overrides/index.js.map +0 -1
- package/lib/cjs/overrides/injectables.js.map +0 -1
- package/lib/cjs/overrides/overrides.js.map +0 -1
- package/lib/cjs/persistence/Adapter.js.map +0 -1
- package/lib/cjs/persistence/Context.js.map +0 -1
- package/lib/cjs/persistence/ContextLock.js.map +0 -1
- package/lib/cjs/persistence/Dispatch.js.map +0 -1
- package/lib/cjs/persistence/ObserverHandler.js.map +0 -1
- package/lib/cjs/persistence/Sequence.js.map +0 -1
- package/lib/cjs/persistence/constants.js.map +0 -1
- package/lib/cjs/persistence/decorators.js.map +0 -1
- package/lib/cjs/persistence/errors.js.map +0 -1
- package/lib/cjs/persistence/event-filters.js.map +0 -1
- package/lib/cjs/persistence/generators.js.map +0 -1
- package/lib/cjs/persistence/index.js.map +0 -1
- package/lib/cjs/persistence/transactions.js.map +0 -1
- package/lib/cjs/persistence/types.js.map +0 -1
- package/lib/cjs/query/Condition.js.map +0 -1
- package/lib/cjs/query/MethodQueryBuilder.js.map +0 -1
- package/lib/cjs/query/Paginator.js.map +0 -1
- package/lib/cjs/query/Statement.js.map +0 -1
- package/lib/cjs/query/constants.js.map +0 -1
- package/lib/cjs/query/decorators.js.map +0 -1
- package/lib/cjs/query/errors.js.map +0 -1
- package/lib/cjs/query/index.js.map +0 -1
- package/lib/cjs/query/options.js.map +0 -1
- package/lib/cjs/query/selectors.js.map +0 -1
- package/lib/cjs/query/types.js.map +0 -1
- package/lib/cjs/query/utils.js.map +0 -1
- package/lib/cjs/ram/RamAdapter.js.map +0 -1
- package/lib/cjs/ram/RamPaginator.js.map +0 -1
- package/lib/cjs/ram/RamStatement.js.map +0 -1
- package/lib/cjs/ram/constants.js.map +0 -1
- package/lib/cjs/ram/handlers.js.map +0 -1
- package/lib/cjs/ram/index.js.map +0 -1
- package/lib/cjs/ram/types.js.map +0 -1
- package/lib/cjs/repository/Repository.js.map +0 -1
- package/lib/cjs/repository/constants.js.map +0 -1
- package/lib/cjs/repository/decorators.js.map +0 -1
- package/lib/cjs/repository/errors.js.map +0 -1
- package/lib/cjs/repository/index.js.map +0 -1
- package/lib/cjs/repository/injectables.js.map +0 -1
- package/lib/cjs/repository/types.js.map +0 -1
- package/lib/cjs/repository/utils.js.map +0 -1
- package/lib/cjs/services/ModelService.js.map +0 -1
- package/lib/cjs/services/PersistenceService.js.map +0 -1
- package/lib/cjs/services/index.js.map +0 -1
- package/lib/cjs/services/services.js.map +0 -1
- package/lib/cjs/tasks/CleanUpTask.js.map +0 -1
- package/lib/cjs/tasks/TaskContext.js.map +0 -1
- package/lib/cjs/tasks/TaskEngine.js.map +0 -1
- package/lib/cjs/tasks/TaskErrors.js.map +0 -1
- package/lib/cjs/tasks/TaskEventBus.js.map +0 -1
- package/lib/cjs/tasks/TaskEventService.js.map +0 -1
- package/lib/cjs/tasks/TaskHandler.js.map +0 -1
- package/lib/cjs/tasks/TaskHandlerRegistry.js.map +0 -1
- package/lib/cjs/tasks/TaskService.js.map +0 -1
- package/lib/cjs/tasks/TaskStateChangeError.js.map +0 -1
- package/lib/cjs/tasks/TaskTracker.js.map +0 -1
- package/lib/cjs/tasks/builder.js.map +0 -1
- package/lib/cjs/tasks/constants.js.map +0 -1
- package/lib/cjs/tasks/decorators.js.map +0 -1
- package/lib/cjs/tasks/index.js.map +0 -1
- package/lib/cjs/tasks/logging.js.map +0 -1
- package/lib/cjs/tasks/models/TaskBackoffModel.js.map +0 -1
- package/lib/cjs/tasks/models/TaskErrorModel.js.map +0 -1
- package/lib/cjs/tasks/models/TaskEventModel.js.map +0 -1
- package/lib/cjs/tasks/models/TaskIOSerializer.js.map +0 -1
- package/lib/cjs/tasks/models/TaskLogEntryModel.js.map +0 -1
- package/lib/cjs/tasks/models/TaskModel.js.map +0 -1
- package/lib/cjs/tasks/models/TaskStepResultModel.js.map +0 -1
- package/lib/cjs/tasks/models/TaskStepSpecModel.js.map +0 -1
- package/lib/cjs/tasks/models/index.js.map +0 -1
- package/lib/cjs/tasks/types.js.map +0 -1
- package/lib/cjs/tasks/utils.js.map +0 -1
- package/lib/cjs/utils/ContextualLoggedClass.js.map +0 -1
- package/lib/cjs/utils/decorators.js.map +0 -1
- package/lib/cjs/utils/errors.js.map +0 -1
- package/lib/cjs/utils/index.js.map +0 -1
- package/lib/cjs/utils/throttling.js.map +0 -1
- package/lib/cjs/utils/types.js.map +0 -1
- package/lib/cjs/utils/utils.js.map +0 -1
- package/lib/cjs/workers/TaskEngine.js.map +0 -1
- package/lib/cjs/workers/WorkThreadEnvironment.js.map +0 -1
- package/lib/cjs/workers/index.js.map +0 -1
- package/lib/cjs/workers/messages.js.map +0 -1
- package/lib/cjs/workers/types.js.map +0 -1
- package/lib/cjs/workers/workerThread.js.map +0 -1
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import type { AllOperationKeys, ContextFlags, EventIds, FlagsOf, ObserverFilter, PersistenceObservable, PersistenceObserver } from "../persistence/types.js";
|
|
2
|
+
import { Context } from "../persistence/Context.js";
|
|
3
|
+
import { ContextualArgs, ContextualizedArgs, ContextualLoggedClass, MaybeContextualArg, MethodOrOperation } from "../utils/ContextualLoggedClass.js";
|
|
4
|
+
import { Constructor } from "@decaf-ts/decoration";
|
|
5
|
+
import type { Observer } from "../interfaces/Observer.js";
|
|
6
|
+
import { ObserverHandler } from "../persistence/ObserverHandler.js";
|
|
7
|
+
export declare abstract class Service<C extends Context<ContextFlags<any>> = Context<ContextFlags<any>>> extends ContextualLoggedClass<C> implements PersistenceObservable<C>, PersistenceObserver<C> {
|
|
8
|
+
readonly name?: string | undefined;
|
|
9
|
+
protected observers: Observer[];
|
|
10
|
+
protected observerHandler?: ObserverHandler;
|
|
11
|
+
protected constructor(name?: string | undefined);
|
|
12
|
+
for(conf: any, ...args: any[]): this;
|
|
13
|
+
override(conf: any, ...args: any[]): this;
|
|
14
|
+
/**
|
|
15
|
+
* @description Registers an observer for this repository.
|
|
16
|
+
* @summary Adds an observer that will be notified of changes to models in this repository.
|
|
17
|
+
* @param {Observer} observer - The observer to register.
|
|
18
|
+
* @param {ObserverFilter} [filter] - Optional filter to limit which events the observer receives.
|
|
19
|
+
* @return {void}
|
|
20
|
+
* @see {Observable#observe}
|
|
21
|
+
*/
|
|
22
|
+
observe(observer: Observer, filter?: ObserverFilter): () => void;
|
|
23
|
+
/**
|
|
24
|
+
* @description Unregisters an observer from this repository.
|
|
25
|
+
* @summary Removes an observer so it will no longer receive notifications of changes.
|
|
26
|
+
* @param {Observer} observer - The observer to unregister.
|
|
27
|
+
* @return {void}
|
|
28
|
+
* @throws {InternalError} If the observer handler is not initialized.
|
|
29
|
+
* @see {Observable#unObserve}
|
|
30
|
+
*/
|
|
31
|
+
unObserve(observer: Observer): void;
|
|
32
|
+
/**
|
|
33
|
+
* @description Notifies all observers of an event.
|
|
34
|
+
* @summary Updates all registered observers with information about a database event.
|
|
35
|
+
* @param {string} table - The table name where the event occurred.
|
|
36
|
+
* @param {OperationKeys|BulkCrudOperationKeys|string} event - The type of event that occurred.
|
|
37
|
+
* @param {EventIds} id - The ID or IDs of the affected records.
|
|
38
|
+
* @param {...any[]} args - Additional arguments.
|
|
39
|
+
* @return {Promise<void>} A promise that resolves when all observers have been notified.
|
|
40
|
+
* @throws {InternalError} If the observer handler is not initialized.
|
|
41
|
+
*/
|
|
42
|
+
updateObservers(table: Constructor<any> | string, event: AllOperationKeys, id: EventIds, ...args: ContextualArgs<C>): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* @description Creates repository flags for an operation
|
|
45
|
+
* @summary Generates a set of flags that describe a database operation, combining default flags with overrides
|
|
46
|
+
* @template F - The Repository Flags type
|
|
47
|
+
* @template M - The model type
|
|
48
|
+
* @param {OperationKeys} operation - The type of operation being performed
|
|
49
|
+
* @param {Partial<F>} flags - Custom flag overrides
|
|
50
|
+
* @param {...any[]} args - Additional arguments
|
|
51
|
+
* @return {Promise<F>} The complete set of flags
|
|
52
|
+
*/
|
|
53
|
+
protected flags(operation: string, flags: Partial<FlagsOf<C>>, ...args: any[]): Promise<FlagsOf<C>>;
|
|
54
|
+
/**
|
|
55
|
+
* @description Alias for updateObservers.
|
|
56
|
+
* @summary Notifies all observers of an event (alias for updateObservers).
|
|
57
|
+
* @param {string} table - The table name where the event occurred.
|
|
58
|
+
* @param {OperationKeys|BulkCrudOperationKeys|string} event - The type of event that occurred.
|
|
59
|
+
* @param {EventIds} id - The ID or IDs of the affected records.
|
|
60
|
+
* @param {...any[]} args - Additional arguments.
|
|
61
|
+
* @return {Promise<void>} A promise that resolves when all observers have been notified.
|
|
62
|
+
*/
|
|
63
|
+
refresh(table: Constructor<any> | string, event: AllOperationKeys, id: EventIds, ...args: ContextualArgs<C>): Promise<void>;
|
|
64
|
+
/**
|
|
65
|
+
* @description The context constructor for this adapter
|
|
66
|
+
* @summary Reference to the context class constructor used by this adapter
|
|
67
|
+
*/
|
|
68
|
+
protected readonly Context: Constructor<C>;
|
|
69
|
+
context(operation: ((...args: any[]) => any) | string, overrides: Partial<FlagsOf<C>>, ...args: MaybeContextualArg<Context<any>>): Promise<C>;
|
|
70
|
+
protected logCtx<CONTEXT extends Context<any> = C, ARGS extends any[] = any[], METHOD extends MethodOrOperation = MethodOrOperation>(args: MaybeContextualArg<CONTEXT, ARGS>, operation: METHOD): ContextualizedArgs<CONTEXT, ARGS, METHOD extends string ? true : false>;
|
|
71
|
+
protected logCtx<CONTEXT extends Context<any> = C, ARGS extends any[] = any[], METHOD extends MethodOrOperation = MethodOrOperation>(args: MaybeContextualArg<CONTEXT, ARGS>, operation: METHOD, allowCreate: false, overrides?: Partial<FlagsOf<CONTEXT>>): ContextualizedArgs<CONTEXT, ARGS, METHOD extends string ? true : false>;
|
|
72
|
+
protected logCtx<CONTEXT extends Context<any> = C, ARGS extends any[] = any[], METHOD extends MethodOrOperation = MethodOrOperation>(args: MaybeContextualArg<CONTEXT, ARGS>, operation: METHOD, allowCreate: true, overrides?: Partial<FlagsOf<CONTEXT>>): Promise<ContextualizedArgs<CONTEXT, ARGS, METHOD extends string ? true : false>>;
|
|
73
|
+
/**
|
|
74
|
+
* @description Retrieves a Service instance by name/class
|
|
75
|
+
* @summary Looks up and returns a cached API instance by its name or constructor
|
|
76
|
+
* @template A Type extending Api
|
|
77
|
+
* @param {string | Constructor<A>} name - Name of the API or its constructor
|
|
78
|
+
* @return {A} The requested API instance
|
|
79
|
+
*/
|
|
80
|
+
static get<A extends Service>(name: string | symbol | Constructor<A>): A;
|
|
81
|
+
static boot<C extends Context<any> = any>(...args: MaybeContextualArg<C>): Promise<void>;
|
|
82
|
+
static shutdown<C extends Context<any> = any>(...args: MaybeContextualArg<C>): Promise<void>;
|
|
83
|
+
}
|
|
84
|
+
export declare abstract class ClientBasedService<CLIENT, CONF, C extends Context<any> = any> extends Service {
|
|
85
|
+
protected _client?: CLIENT;
|
|
86
|
+
protected _config?: CONF;
|
|
87
|
+
protected constructor();
|
|
88
|
+
boot(...args: MaybeContextualArg<C>): Promise<void>;
|
|
89
|
+
abstract initialize(...args: ContextualArgs<C>): Promise<{
|
|
90
|
+
config: CONF;
|
|
91
|
+
client: CLIENT;
|
|
92
|
+
}>;
|
|
93
|
+
protected get config(): CONF;
|
|
94
|
+
get client(): CLIENT;
|
|
95
|
+
shutdown(...args: MaybeContextualArg<C>): Promise<void>;
|
|
96
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { TaskHandler } from "./TaskHandler.cjs";
|
|
2
|
+
import { TaskContext } from "./TaskContext.cjs";
|
|
3
|
+
import { type Repo } from "../repository/Repository.cjs";
|
|
4
|
+
import { TaskModel } from "./models/TaskModel.cjs";
|
|
5
|
+
import { Condition } from "../query/Condition.cjs";
|
|
6
|
+
export type CleanUpTaskInput = {
|
|
7
|
+
successfulExpiry: Date;
|
|
8
|
+
failedExpiry: Date;
|
|
9
|
+
cancelledExpiry: Date;
|
|
10
|
+
} | Condition<TaskModel>;
|
|
11
|
+
export declare class CleanUpTask extends TaskHandler<CleanUpTaskInput, TaskModel[]> {
|
|
12
|
+
protected tasks: Repo<TaskModel>;
|
|
13
|
+
constructor();
|
|
14
|
+
run(input: CleanUpTaskInput, ctx: TaskContext): Promise<TaskModel[]>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { TaskHandler } from "./TaskHandler.js";
|
|
2
|
+
import { TaskContext } from "./TaskContext.js";
|
|
3
|
+
import { type Repo } from "../repository/Repository.js";
|
|
4
|
+
import { TaskModel } from "./models/TaskModel.js";
|
|
5
|
+
import { Condition } from "../query/Condition.js";
|
|
6
|
+
export type CleanUpTaskInput = {
|
|
7
|
+
successfulExpiry: Date;
|
|
8
|
+
failedExpiry: Date;
|
|
9
|
+
cancelledExpiry: Date;
|
|
10
|
+
} | Condition<TaskModel>;
|
|
11
|
+
export declare class CleanUpTask extends TaskHandler<CleanUpTaskInput, TaskModel[]> {
|
|
12
|
+
protected tasks: Repo<TaskModel>;
|
|
13
|
+
constructor();
|
|
14
|
+
run(input: CleanUpTaskInput, ctx: TaskContext): Promise<TaskModel[]>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Context } from "../persistence/Context.cjs";
|
|
2
|
+
import { TaskFlags } from "./types.cjs";
|
|
3
|
+
import { TaskLogger } from "./logging.cjs";
|
|
4
|
+
import { DateTarget } from "@decaf-ts/decorator-validation";
|
|
5
|
+
import { TaskErrorModel } from "./models/TaskErrorModel.cjs";
|
|
6
|
+
import { TaskStatus } from "./constants.cjs";
|
|
7
|
+
import { TaskStateChangeRequest } from "./TaskStateChangeError.cjs";
|
|
8
|
+
import { TaskStepSpecModel } from "./models/TaskStepSpecModel.cjs";
|
|
9
|
+
export declare class TaskContext extends Context<TaskFlags> {
|
|
10
|
+
get taskId(): string;
|
|
11
|
+
get logger(): TaskLogger<any>;
|
|
12
|
+
get step(): number | undefined;
|
|
13
|
+
setStep(step?: number): void;
|
|
14
|
+
get pipe(): TaskFlags["pipe"];
|
|
15
|
+
flush(): Promise<void>;
|
|
16
|
+
get attempt(): number;
|
|
17
|
+
get progress(): (data: any) => Promise<void>;
|
|
18
|
+
get heartbeat(): () => Promise<void>;
|
|
19
|
+
cacheResult(taskId: string, payload: any): void;
|
|
20
|
+
protected changeState(status: TaskStatus, payload?: Partial<TaskStateChangeRequest>): never;
|
|
21
|
+
cancel(reason?: string | Error | TaskErrorModel, details?: any): never;
|
|
22
|
+
retry(reason?: string | Error | TaskErrorModel): never;
|
|
23
|
+
reschedule(when: DateTarget, reason?: string | Error | TaskErrorModel): never;
|
|
24
|
+
private toTaskError;
|
|
25
|
+
get resultCache(): Record<string, any> | undefined;
|
|
26
|
+
scheduleSteps(...steps: (TaskStepSpecModel | Partial<TaskStepSpecModel>)[]): {
|
|
27
|
+
afterCurrent: () => Promise<void>;
|
|
28
|
+
};
|
|
29
|
+
constructor(ctx?: Context<any>);
|
|
30
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Context } from "../persistence/Context.js";
|
|
2
|
+
import { TaskFlags } from "./types.js";
|
|
3
|
+
import { TaskLogger } from "./logging.js";
|
|
4
|
+
import { DateTarget } from "@decaf-ts/decorator-validation";
|
|
5
|
+
import { TaskErrorModel } from "./models/TaskErrorModel.js";
|
|
6
|
+
import { TaskStatus } from "./constants.js";
|
|
7
|
+
import { TaskStateChangeRequest } from "./TaskStateChangeError.js";
|
|
8
|
+
import { TaskStepSpecModel } from "./models/TaskStepSpecModel.js";
|
|
9
|
+
export declare class TaskContext extends Context<TaskFlags> {
|
|
10
|
+
get taskId(): string;
|
|
11
|
+
get logger(): TaskLogger<any>;
|
|
12
|
+
get step(): number | undefined;
|
|
13
|
+
setStep(step?: number): void;
|
|
14
|
+
get pipe(): TaskFlags["pipe"];
|
|
15
|
+
flush(): Promise<void>;
|
|
16
|
+
get attempt(): number;
|
|
17
|
+
get progress(): (data: any) => Promise<void>;
|
|
18
|
+
get heartbeat(): () => Promise<void>;
|
|
19
|
+
cacheResult(taskId: string, payload: any): void;
|
|
20
|
+
protected changeState(status: TaskStatus, payload?: Partial<TaskStateChangeRequest>): never;
|
|
21
|
+
cancel(reason?: string | Error | TaskErrorModel, details?: any): never;
|
|
22
|
+
retry(reason?: string | Error | TaskErrorModel): never;
|
|
23
|
+
reschedule(when: DateTarget, reason?: string | Error | TaskErrorModel): never;
|
|
24
|
+
private toTaskError;
|
|
25
|
+
get resultCache(): Record<string, any> | undefined;
|
|
26
|
+
scheduleSteps(...steps: (TaskStepSpecModel | Partial<TaskStepSpecModel>)[]): {
|
|
27
|
+
afterCurrent: () => Promise<void>;
|
|
28
|
+
};
|
|
29
|
+
constructor(ctx?: Context<any>);
|
|
30
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { TaskModel } from "./models/TaskModel.cjs";
|
|
2
|
+
import { Repo } from "../repository/Repository.cjs";
|
|
3
|
+
import { TaskEventModel } from "./models/TaskEventModel.cjs";
|
|
4
|
+
import { TaskHandlerRegistry } from "./TaskHandlerRegistry.cjs";
|
|
5
|
+
import { TaskEventBus } from "./TaskEventBus.cjs";
|
|
6
|
+
import { TaskStepResultModel } from "./models/TaskStepResultModel.cjs";
|
|
7
|
+
import { TaskLogEntryModel } from "./models/TaskLogEntryModel.cjs";
|
|
8
|
+
import { TaskBackoffModel } from "./models/TaskBackoffModel.cjs";
|
|
9
|
+
import { TaskStepSpecModel } from "./models/TaskStepSpecModel.cjs";
|
|
10
|
+
import { TaskEventType, TaskStatus } from "./constants.cjs";
|
|
11
|
+
import { Adapter } from "../persistence/Adapter.cjs";
|
|
12
|
+
import { Context } from "../persistence/Context.cjs";
|
|
13
|
+
import { ContextOf, FlagsOf } from "../persistence/types.cjs";
|
|
14
|
+
import { LogLevel } from "@decaf-ts/logging";
|
|
15
|
+
import { AbsContextual, ContextualArgs, MaybeContextualArg } from "../utils/ContextualLoggedClass.cjs";
|
|
16
|
+
import { OperationKeys } from "@decaf-ts/db-decorators";
|
|
17
|
+
import { TaskContext } from "./TaskContext.cjs";
|
|
18
|
+
import { TaskStateChangeRequest } from "./TaskStateChangeError.cjs";
|
|
19
|
+
import { DateTarget } from "@decaf-ts/decorator-validation";
|
|
20
|
+
import { Constructor } from "@decaf-ts/decoration";
|
|
21
|
+
import { TaskEngineConfig, TaskFlags } from "./types.cjs";
|
|
22
|
+
import { TaskTracker } from "./TaskTracker.cjs";
|
|
23
|
+
import { Lock } from "@decaf-ts/transactional-decorators";
|
|
24
|
+
type ParsedTaskDependency = {
|
|
25
|
+
taskId: string;
|
|
26
|
+
stepRef?: string;
|
|
27
|
+
};
|
|
28
|
+
export declare class TaskEngine<A extends Adapter<any, any, any, any>, C extends TaskEngineConfig<A> = TaskEngineConfig<A>> extends AbsContextual<ContextOf<A>> {
|
|
29
|
+
protected config: C;
|
|
30
|
+
private _tasks?;
|
|
31
|
+
private _events?;
|
|
32
|
+
private _adapter?;
|
|
33
|
+
protected lock: Lock;
|
|
34
|
+
protected get Context(): Constructor<ContextOf<A>>;
|
|
35
|
+
protected get adapter(): A;
|
|
36
|
+
protected get registry(): TaskHandlerRegistry;
|
|
37
|
+
protected get bus(): TaskEventBus;
|
|
38
|
+
protected get tasks(): Repo<TaskModel>;
|
|
39
|
+
protected get events(): Repo<TaskEventModel>;
|
|
40
|
+
protected running: boolean;
|
|
41
|
+
private idleDelayMs;
|
|
42
|
+
static createTaskContext(base?: Context<any>, overrides?: Partial<TaskFlags>): TaskContext;
|
|
43
|
+
constructor(config: C);
|
|
44
|
+
push<I, O>(task: TaskModel<I, O>, ...args: MaybeContextualArg<any>): Promise<TaskModel<I, O>>;
|
|
45
|
+
push<I, O>(task: TaskModel<I, O>, track: false, ...args: MaybeContextualArg<any>): Promise<TaskModel<I, O>>;
|
|
46
|
+
push<I, O>(task: TaskModel<I, O>, track: true, ...args: MaybeContextualArg<any>): Promise<{
|
|
47
|
+
task: TaskModel<I, O>;
|
|
48
|
+
tracker: TaskTracker<(typeof task)["output"]>;
|
|
49
|
+
}>;
|
|
50
|
+
schedule<I, O>(task: TaskModel<I, O>, ...args: MaybeContextualArg<any>): {
|
|
51
|
+
for: (when: DateTarget) => Promise<TaskModel<I, O>>;
|
|
52
|
+
};
|
|
53
|
+
schedule<I, O>(task: TaskModel<I, O>, track: false, ...args: MaybeContextualArg<any>): {
|
|
54
|
+
for: (when: DateTarget) => Promise<TaskModel<I, O>>;
|
|
55
|
+
};
|
|
56
|
+
schedule<I, O>(task: TaskModel<I, O>, track: true, ...args: MaybeContextualArg<any>): {
|
|
57
|
+
for: (when: DateTarget) => Promise<{
|
|
58
|
+
task: TaskModel<I, O>;
|
|
59
|
+
tracker: TaskTracker<O>;
|
|
60
|
+
}>;
|
|
61
|
+
};
|
|
62
|
+
track(id: string, ...args: MaybeContextualArg<any>): Promise<{
|
|
63
|
+
task: TaskModel<any, any>;
|
|
64
|
+
tracker: TaskTracker<any>;
|
|
65
|
+
}>;
|
|
66
|
+
protected ensureTaskError(task: TaskModel, ctx: Context): Promise<TaskModel>;
|
|
67
|
+
cancel(id: string, ...args: MaybeContextualArg<any>): Promise<TaskModel>;
|
|
68
|
+
isRunning(): Promise<boolean>;
|
|
69
|
+
start(...args: MaybeContextualArg<any>): Promise<void>;
|
|
70
|
+
stop(...args: MaybeContextualArg<any>): Promise<void>;
|
|
71
|
+
protected loop(...args: ContextualArgs<any>): Promise<void>;
|
|
72
|
+
protected claimBatch(ctx: Context<any>): Promise<TaskModel[]>;
|
|
73
|
+
protected tryClaim(task: TaskModel, ctx: Context): Promise<TaskModel | null>;
|
|
74
|
+
protected isTaskFinished(status?: TaskStatus): boolean;
|
|
75
|
+
protected parseTaskDependency(value: string): ParsedTaskDependency | undefined;
|
|
76
|
+
protected normalizeDependencies(deps: string[] | string | undefined): ParsedTaskDependency[];
|
|
77
|
+
protected resolveDependencyStepIndex(task: TaskModel, stepRef: string): number | undefined;
|
|
78
|
+
protected areDependenciesSatisfied(dependencies: ParsedTaskDependency[], ctx: Context): Promise<boolean>;
|
|
79
|
+
protected getStepLock(task: TaskModel, stepIndex: number | undefined): string | undefined;
|
|
80
|
+
protected hasLockConflict(task: TaskModel, stepIndex: number | undefined, ctx: Context): Promise<boolean>;
|
|
81
|
+
protected isRunnable(task: TaskModel, ctx: Context): Promise<boolean>;
|
|
82
|
+
protected executeClaimed(task: TaskModel): Promise<void>;
|
|
83
|
+
protected handleTaskStateChange(request: TaskStateChangeRequest, task: TaskModel, ctx: TaskContext): Promise<void>;
|
|
84
|
+
protected runComposite(task: TaskModel, context: TaskContext): Promise<any>;
|
|
85
|
+
protected normalizeBackoff(backoff: TaskBackoffModel | string | object | any): TaskBackoffModel;
|
|
86
|
+
protected normalizeSteps(steps: TaskStepSpecModel[] | string | undefined): TaskStepSpecModel[];
|
|
87
|
+
protected normalizeStepResults(results: TaskStepResultModel[] | string | undefined): TaskStepResultModel[];
|
|
88
|
+
protected appendLog(ctx: TaskContext | Context, task: TaskModel, logEntries: [LogLevel, string] | [LogLevel, string, any] | ([LogLevel, string] | [LogLevel, string, any])[]): Promise<[TaskModel, TaskLogEntryModel[]]>;
|
|
89
|
+
protected emitStatus(ctx: TaskContext | Context, task: TaskModel, status: TaskStatus, outputOrError?: any | Error, originalError?: Error): Promise<void>;
|
|
90
|
+
protected emitLog(ctx: TaskContext | Context, taskId: string, entries: TaskLogEntryModel[]): Promise<void>;
|
|
91
|
+
protected normalizePipeArgs(args: any[]): ([LogLevel, string] | [LogLevel, string, any])[];
|
|
92
|
+
protected emitProgress(ctx: TaskContext | Context, taskId: string, data: any): Promise<void>;
|
|
93
|
+
protected persistEvent(ctx: TaskContext | Context, taskId: string, type: TaskEventType, payload: any): Promise<TaskEventModel>;
|
|
94
|
+
toString(): string;
|
|
95
|
+
context(operation: ((...args: any[]) => any) | OperationKeys.CREATE | OperationKeys.READ | OperationKeys.UPDATE | OperationKeys.DELETE | string, overrides: Partial<FlagsOf<ContextOf<A>>>, ...args: any[]): Promise<ContextOf<A>>;
|
|
96
|
+
}
|
|
97
|
+
export {};
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { TaskModel } from "./models/TaskModel.js";
|
|
2
|
+
import { Repo } from "../repository/Repository.js";
|
|
3
|
+
import { TaskEventModel } from "./models/TaskEventModel.js";
|
|
4
|
+
import { TaskHandlerRegistry } from "./TaskHandlerRegistry.js";
|
|
5
|
+
import { TaskEventBus } from "./TaskEventBus.js";
|
|
6
|
+
import { TaskStepResultModel } from "./models/TaskStepResultModel.js";
|
|
7
|
+
import { TaskLogEntryModel } from "./models/TaskLogEntryModel.js";
|
|
8
|
+
import { TaskBackoffModel } from "./models/TaskBackoffModel.js";
|
|
9
|
+
import { TaskStepSpecModel } from "./models/TaskStepSpecModel.js";
|
|
10
|
+
import { TaskEventType, TaskStatus } from "./constants.js";
|
|
11
|
+
import { Adapter } from "../persistence/Adapter.js";
|
|
12
|
+
import { Context } from "../persistence/Context.js";
|
|
13
|
+
import { ContextOf, FlagsOf } from "../persistence/types.js";
|
|
14
|
+
import { LogLevel } from "@decaf-ts/logging";
|
|
15
|
+
import { AbsContextual, ContextualArgs, MaybeContextualArg } from "../utils/ContextualLoggedClass.js";
|
|
16
|
+
import { OperationKeys } from "@decaf-ts/db-decorators";
|
|
17
|
+
import { TaskContext } from "./TaskContext.js";
|
|
18
|
+
import { TaskStateChangeRequest } from "./TaskStateChangeError.js";
|
|
19
|
+
import { DateTarget } from "@decaf-ts/decorator-validation";
|
|
20
|
+
import { Constructor } from "@decaf-ts/decoration";
|
|
21
|
+
import { TaskEngineConfig, TaskFlags } from "./types.js";
|
|
22
|
+
import { TaskTracker } from "./TaskTracker.js";
|
|
23
|
+
import { Lock } from "@decaf-ts/transactional-decorators";
|
|
24
|
+
type ParsedTaskDependency = {
|
|
25
|
+
taskId: string;
|
|
26
|
+
stepRef?: string;
|
|
27
|
+
};
|
|
28
|
+
export declare class TaskEngine<A extends Adapter<any, any, any, any>, C extends TaskEngineConfig<A> = TaskEngineConfig<A>> extends AbsContextual<ContextOf<A>> {
|
|
29
|
+
protected config: C;
|
|
30
|
+
private _tasks?;
|
|
31
|
+
private _events?;
|
|
32
|
+
private _adapter?;
|
|
33
|
+
protected lock: Lock;
|
|
34
|
+
protected get Context(): Constructor<ContextOf<A>>;
|
|
35
|
+
protected get adapter(): A;
|
|
36
|
+
protected get registry(): TaskHandlerRegistry;
|
|
37
|
+
protected get bus(): TaskEventBus;
|
|
38
|
+
protected get tasks(): Repo<TaskModel>;
|
|
39
|
+
protected get events(): Repo<TaskEventModel>;
|
|
40
|
+
protected running: boolean;
|
|
41
|
+
private idleDelayMs;
|
|
42
|
+
static createTaskContext(base?: Context<any>, overrides?: Partial<TaskFlags>): TaskContext;
|
|
43
|
+
constructor(config: C);
|
|
44
|
+
push<I, O>(task: TaskModel<I, O>, ...args: MaybeContextualArg<any>): Promise<TaskModel<I, O>>;
|
|
45
|
+
push<I, O>(task: TaskModel<I, O>, track: false, ...args: MaybeContextualArg<any>): Promise<TaskModel<I, O>>;
|
|
46
|
+
push<I, O>(task: TaskModel<I, O>, track: true, ...args: MaybeContextualArg<any>): Promise<{
|
|
47
|
+
task: TaskModel<I, O>;
|
|
48
|
+
tracker: TaskTracker<(typeof task)["output"]>;
|
|
49
|
+
}>;
|
|
50
|
+
schedule<I, O>(task: TaskModel<I, O>, ...args: MaybeContextualArg<any>): {
|
|
51
|
+
for: (when: DateTarget) => Promise<TaskModel<I, O>>;
|
|
52
|
+
};
|
|
53
|
+
schedule<I, O>(task: TaskModel<I, O>, track: false, ...args: MaybeContextualArg<any>): {
|
|
54
|
+
for: (when: DateTarget) => Promise<TaskModel<I, O>>;
|
|
55
|
+
};
|
|
56
|
+
schedule<I, O>(task: TaskModel<I, O>, track: true, ...args: MaybeContextualArg<any>): {
|
|
57
|
+
for: (when: DateTarget) => Promise<{
|
|
58
|
+
task: TaskModel<I, O>;
|
|
59
|
+
tracker: TaskTracker<O>;
|
|
60
|
+
}>;
|
|
61
|
+
};
|
|
62
|
+
track(id: string, ...args: MaybeContextualArg<any>): Promise<{
|
|
63
|
+
task: TaskModel<any, any>;
|
|
64
|
+
tracker: TaskTracker<any>;
|
|
65
|
+
}>;
|
|
66
|
+
protected ensureTaskError(task: TaskModel, ctx: Context): Promise<TaskModel>;
|
|
67
|
+
cancel(id: string, ...args: MaybeContextualArg<any>): Promise<TaskModel>;
|
|
68
|
+
isRunning(): Promise<boolean>;
|
|
69
|
+
start(...args: MaybeContextualArg<any>): Promise<void>;
|
|
70
|
+
stop(...args: MaybeContextualArg<any>): Promise<void>;
|
|
71
|
+
protected loop(...args: ContextualArgs<any>): Promise<void>;
|
|
72
|
+
protected claimBatch(ctx: Context<any>): Promise<TaskModel[]>;
|
|
73
|
+
protected tryClaim(task: TaskModel, ctx: Context): Promise<TaskModel | null>;
|
|
74
|
+
protected isTaskFinished(status?: TaskStatus): boolean;
|
|
75
|
+
protected parseTaskDependency(value: string): ParsedTaskDependency | undefined;
|
|
76
|
+
protected normalizeDependencies(deps: string[] | string | undefined): ParsedTaskDependency[];
|
|
77
|
+
protected resolveDependencyStepIndex(task: TaskModel, stepRef: string): number | undefined;
|
|
78
|
+
protected areDependenciesSatisfied(dependencies: ParsedTaskDependency[], ctx: Context): Promise<boolean>;
|
|
79
|
+
protected getStepLock(task: TaskModel, stepIndex: number | undefined): string | undefined;
|
|
80
|
+
protected hasLockConflict(task: TaskModel, stepIndex: number | undefined, ctx: Context): Promise<boolean>;
|
|
81
|
+
protected isRunnable(task: TaskModel, ctx: Context): Promise<boolean>;
|
|
82
|
+
protected executeClaimed(task: TaskModel): Promise<void>;
|
|
83
|
+
protected handleTaskStateChange(request: TaskStateChangeRequest, task: TaskModel, ctx: TaskContext): Promise<void>;
|
|
84
|
+
protected runComposite(task: TaskModel, context: TaskContext): Promise<any>;
|
|
85
|
+
protected normalizeBackoff(backoff: TaskBackoffModel | string | object | any): TaskBackoffModel;
|
|
86
|
+
protected normalizeSteps(steps: TaskStepSpecModel[] | string | undefined): TaskStepSpecModel[];
|
|
87
|
+
protected normalizeStepResults(results: TaskStepResultModel[] | string | undefined): TaskStepResultModel[];
|
|
88
|
+
protected appendLog(ctx: TaskContext | Context, task: TaskModel, logEntries: [LogLevel, string] | [LogLevel, string, any] | ([LogLevel, string] | [LogLevel, string, any])[]): Promise<[TaskModel, TaskLogEntryModel[]]>;
|
|
89
|
+
protected emitStatus(ctx: TaskContext | Context, task: TaskModel, status: TaskStatus, outputOrError?: any | Error, originalError?: Error): Promise<void>;
|
|
90
|
+
protected emitLog(ctx: TaskContext | Context, taskId: string, entries: TaskLogEntryModel[]): Promise<void>;
|
|
91
|
+
protected normalizePipeArgs(args: any[]): ([LogLevel, string] | [LogLevel, string, any])[];
|
|
92
|
+
protected emitProgress(ctx: TaskContext | Context, taskId: string, data: any): Promise<void>;
|
|
93
|
+
protected persistEvent(ctx: TaskContext | Context, taskId: string, type: TaskEventType, payload: any): Promise<TaskEventModel>;
|
|
94
|
+
toString(): string;
|
|
95
|
+
context(operation: ((...args: any[]) => any) | OperationKeys.CREATE | OperationKeys.READ | OperationKeys.UPDATE | OperationKeys.DELETE | string, overrides: Partial<FlagsOf<ContextOf<A>>>, ...args: any[]): Promise<ContextOf<A>>;
|
|
96
|
+
}
|
|
97
|
+
export {};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { BaseError } from "@decaf-ts/db-decorators";
|
|
2
|
+
import { TaskErrorModel } from "./models/TaskErrorModel.cjs";
|
|
3
|
+
import { TaskStatus } from "./constants.cjs";
|
|
4
|
+
/**
|
|
5
|
+
* Represents the next action to take after a task error.
|
|
6
|
+
* Used to identify the appropriate response to task failures.
|
|
7
|
+
*/
|
|
8
|
+
export type TaskNextAction = TaskStatus.CANCELED | TaskStatus.WAITING_RETRY | TaskStatus.SCHEDULED | TaskStatus.FAILED;
|
|
9
|
+
/**
|
|
10
|
+
* Additional properties added to errors from TaskTracker.resolve() and TaskTracker.wait()
|
|
11
|
+
*/
|
|
12
|
+
export type TaskErrorProps = {
|
|
13
|
+
/** The next action to take in response to this error */
|
|
14
|
+
nextAction: TaskNextAction;
|
|
15
|
+
/** The task ID this error relates to (optional, present on TaskControlError) */
|
|
16
|
+
taskId?: string;
|
|
17
|
+
/** Additional error details (optional, present on TaskControlError) */
|
|
18
|
+
details?: TaskErrorModel;
|
|
19
|
+
/** Additional metadata (optional, present on TaskControlError) */
|
|
20
|
+
meta?: Record<string, any>;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Generic type that preserves the original error type while adding task-specific properties.
|
|
24
|
+
* Use this to type errors from TaskTracker.resolve() and TaskTracker.wait().
|
|
25
|
+
*
|
|
26
|
+
* The original error is preserved (e.g., ValidationError stays ValidationError),
|
|
27
|
+
* with the nextAction property added to identify the appropriate response:
|
|
28
|
+
* - `TaskStatus.CANCELED`: Task was explicitly canceled
|
|
29
|
+
* - `TaskStatus.SCHEDULED`: Task was rescheduled
|
|
30
|
+
* - `TaskStatus.WAITING_RETRY`: Task is waiting for retry
|
|
31
|
+
* - `TaskStatus.FAILED`: Task has permanently failed
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```typescript
|
|
35
|
+
* try {
|
|
36
|
+
* await tracker.resolve();
|
|
37
|
+
* } catch (error: unknown) {
|
|
38
|
+
* if (isTaskError<ValidationError>(error, ValidationError)) {
|
|
39
|
+
* // error is typed as TaskErrorFrom<ValidationError>
|
|
40
|
+
* console.log(error.nextAction); // TaskNextAction
|
|
41
|
+
* console.log(error.code); // ValidationError's code property
|
|
42
|
+
* }
|
|
43
|
+
* }
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export type TaskErrorFrom<E extends Error> = E & TaskErrorProps;
|
|
47
|
+
export declare function isTaskError<E extends Error = Error>(error: unknown, ErrorClass?: new (...args: any[]) => E): error is TaskErrorFrom<E>;
|
|
48
|
+
export declare class TaskControlError extends BaseError {
|
|
49
|
+
readonly taskId: string;
|
|
50
|
+
readonly details?: TaskErrorModel;
|
|
51
|
+
readonly meta?: Record<string, any>;
|
|
52
|
+
constructor(name: string, taskId: string, message: string, details?: TaskErrorModel, meta?: Record<string, any>, code?: number);
|
|
53
|
+
}
|
|
54
|
+
export declare class TaskFailError extends TaskControlError {
|
|
55
|
+
constructor(taskId: string, details?: TaskErrorModel, meta?: Record<string, any>);
|
|
56
|
+
}
|
|
57
|
+
export declare class TaskRetryError extends TaskControlError {
|
|
58
|
+
constructor(taskId: string, details?: TaskErrorModel, meta?: Record<string, any>);
|
|
59
|
+
}
|
|
60
|
+
export declare class TaskCancelError extends TaskControlError {
|
|
61
|
+
constructor(taskId: string, details?: TaskErrorModel, meta?: Record<string, any>);
|
|
62
|
+
}
|
|
63
|
+
export declare class TaskRescheduleError extends TaskControlError {
|
|
64
|
+
constructor(taskId: string, details?: TaskErrorModel, meta?: Record<string, any>);
|
|
65
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { BaseError } from "@decaf-ts/db-decorators";
|
|
2
|
+
import { TaskErrorModel } from "./models/TaskErrorModel.js";
|
|
3
|
+
import { TaskStatus } from "./constants.js";
|
|
4
|
+
/**
|
|
5
|
+
* Represents the next action to take after a task error.
|
|
6
|
+
* Used to identify the appropriate response to task failures.
|
|
7
|
+
*/
|
|
8
|
+
export type TaskNextAction = TaskStatus.CANCELED | TaskStatus.WAITING_RETRY | TaskStatus.SCHEDULED | TaskStatus.FAILED;
|
|
9
|
+
/**
|
|
10
|
+
* Additional properties added to errors from TaskTracker.resolve() and TaskTracker.wait()
|
|
11
|
+
*/
|
|
12
|
+
export type TaskErrorProps = {
|
|
13
|
+
/** The next action to take in response to this error */
|
|
14
|
+
nextAction: TaskNextAction;
|
|
15
|
+
/** The task ID this error relates to (optional, present on TaskControlError) */
|
|
16
|
+
taskId?: string;
|
|
17
|
+
/** Additional error details (optional, present on TaskControlError) */
|
|
18
|
+
details?: TaskErrorModel;
|
|
19
|
+
/** Additional metadata (optional, present on TaskControlError) */
|
|
20
|
+
meta?: Record<string, any>;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Generic type that preserves the original error type while adding task-specific properties.
|
|
24
|
+
* Use this to type errors from TaskTracker.resolve() and TaskTracker.wait().
|
|
25
|
+
*
|
|
26
|
+
* The original error is preserved (e.g., ValidationError stays ValidationError),
|
|
27
|
+
* with the nextAction property added to identify the appropriate response:
|
|
28
|
+
* - `TaskStatus.CANCELED`: Task was explicitly canceled
|
|
29
|
+
* - `TaskStatus.SCHEDULED`: Task was rescheduled
|
|
30
|
+
* - `TaskStatus.WAITING_RETRY`: Task is waiting for retry
|
|
31
|
+
* - `TaskStatus.FAILED`: Task has permanently failed
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```typescript
|
|
35
|
+
* try {
|
|
36
|
+
* await tracker.resolve();
|
|
37
|
+
* } catch (error: unknown) {
|
|
38
|
+
* if (isTaskError<ValidationError>(error, ValidationError)) {
|
|
39
|
+
* // error is typed as TaskErrorFrom<ValidationError>
|
|
40
|
+
* console.log(error.nextAction); // TaskNextAction
|
|
41
|
+
* console.log(error.code); // ValidationError's code property
|
|
42
|
+
* }
|
|
43
|
+
* }
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export type TaskErrorFrom<E extends Error> = E & TaskErrorProps;
|
|
47
|
+
export declare function isTaskError<E extends Error = Error>(error: unknown, ErrorClass?: new (...args: any[]) => E): error is TaskErrorFrom<E>;
|
|
48
|
+
export declare class TaskControlError extends BaseError {
|
|
49
|
+
readonly taskId: string;
|
|
50
|
+
readonly details?: TaskErrorModel;
|
|
51
|
+
readonly meta?: Record<string, any>;
|
|
52
|
+
constructor(name: string, taskId: string, message: string, details?: TaskErrorModel, meta?: Record<string, any>, code?: number);
|
|
53
|
+
}
|
|
54
|
+
export declare class TaskFailError extends TaskControlError {
|
|
55
|
+
constructor(taskId: string, details?: TaskErrorModel, meta?: Record<string, any>);
|
|
56
|
+
}
|
|
57
|
+
export declare class TaskRetryError extends TaskControlError {
|
|
58
|
+
constructor(taskId: string, details?: TaskErrorModel, meta?: Record<string, any>);
|
|
59
|
+
}
|
|
60
|
+
export declare class TaskCancelError extends TaskControlError {
|
|
61
|
+
constructor(taskId: string, details?: TaskErrorModel, meta?: Record<string, any>);
|
|
62
|
+
}
|
|
63
|
+
export declare class TaskRescheduleError extends TaskControlError {
|
|
64
|
+
constructor(taskId: string, details?: TaskErrorModel, meta?: Record<string, any>);
|
|
65
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { TaskEventModel } from "./models/TaskEventModel.cjs";
|
|
2
|
+
import { Context } from "../persistence/Context.cjs";
|
|
3
|
+
import { ObserverHandler } from "../persistence/ObserverHandler.cjs";
|
|
4
|
+
import { EventIds, ObserverFilter } from "../persistence/types.cjs";
|
|
5
|
+
import { TaskContext } from "./TaskContext.cjs";
|
|
6
|
+
import { Observer } from "../interfaces/Observer.cjs";
|
|
7
|
+
import { Constructor } from "@decaf-ts/decoration";
|
|
8
|
+
import { BulkCrudOperationKeys, OperationKeys } from "@decaf-ts/db-decorators";
|
|
9
|
+
import { ContextualArgs } from "../utils/index.cjs";
|
|
10
|
+
import { Model } from "@decaf-ts/decorator-validation";
|
|
11
|
+
export declare class TaskEventBus extends ObserverHandler<TaskContext> {
|
|
12
|
+
protected readonly listeners: Set<(evt: TaskEventModel) => void>;
|
|
13
|
+
observe(observer: Observer, filter?: ObserverFilter): () => void;
|
|
14
|
+
unObserve(observer: Observer): void;
|
|
15
|
+
emit(evt: TaskEventModel, ctx: Context): void;
|
|
16
|
+
updateObservers<M extends Model>(model: Constructor<M> | string, event: OperationKeys | BulkCrudOperationKeys | string, id: EventIds, evt: TaskEventModel, ...args: ContextualArgs<any>): Promise<void>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { TaskEventModel } from "./models/TaskEventModel.js";
|
|
2
|
+
import { Context } from "../persistence/Context.js";
|
|
3
|
+
import { ObserverHandler } from "../persistence/ObserverHandler.js";
|
|
4
|
+
import { EventIds, ObserverFilter } from "../persistence/types.js";
|
|
5
|
+
import { TaskContext } from "./TaskContext.js";
|
|
6
|
+
import { Observer } from "../interfaces/Observer.js";
|
|
7
|
+
import { Constructor } from "@decaf-ts/decoration";
|
|
8
|
+
import { BulkCrudOperationKeys, OperationKeys } from "@decaf-ts/db-decorators";
|
|
9
|
+
import { ContextualArgs } from "../utils/index.js";
|
|
10
|
+
import { Model } from "@decaf-ts/decorator-validation";
|
|
11
|
+
export declare class TaskEventBus extends ObserverHandler<TaskContext> {
|
|
12
|
+
protected readonly listeners: Set<(evt: TaskEventModel) => void>;
|
|
13
|
+
observe(observer: Observer, filter?: ObserverFilter): () => void;
|
|
14
|
+
unObserve(observer: Observer): void;
|
|
15
|
+
emit(evt: TaskEventModel, ctx: Context): void;
|
|
16
|
+
updateObservers<M extends Model>(model: Constructor<M> | string, event: OperationKeys | BulkCrudOperationKeys | string, id: EventIds, evt: TaskEventModel, ...args: ContextualArgs<any>): Promise<void>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type Repo } from "../repository/Repository.cjs";
|
|
2
|
+
import { ModelService } from "../services/ModelService.cjs";
|
|
3
|
+
import { TaskEventModel } from "./models/TaskEventModel.cjs";
|
|
4
|
+
export declare class TaskEventService extends ModelService<TaskEventModel> {
|
|
5
|
+
constructor();
|
|
6
|
+
get repo(): Repo<TaskEventModel>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type Repo } from "../repository/Repository.js";
|
|
2
|
+
import { ModelService } from "../services/ModelService.js";
|
|
3
|
+
import { TaskEventModel } from "./models/TaskEventModel.js";
|
|
4
|
+
export declare class TaskEventService extends ModelService<TaskEventModel> {
|
|
5
|
+
constructor();
|
|
6
|
+
get repo(): Repo<TaskEventModel>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ITaskHandler } from "./types.cjs";
|
|
2
|
+
import { AbsContextual, ContextualArgs } from "../utils/ContextualLoggedClass.cjs";
|
|
3
|
+
import { TaskContext } from "./TaskContext.cjs";
|
|
4
|
+
export declare abstract class TaskHandler<I, O> extends AbsContextual<TaskContext> implements ITaskHandler<I, O> {
|
|
5
|
+
private _type?;
|
|
6
|
+
get type(): string;
|
|
7
|
+
protected constructor();
|
|
8
|
+
protected runPrefix(input: I, ...args: ContextualArgs<TaskContext>): Promise<any[]>;
|
|
9
|
+
protected runSuffix(output: O, ctx: TaskContext): O;
|
|
10
|
+
catch(input: I, error: unknown, ctx: TaskContext): Promise<void>;
|
|
11
|
+
abstract run(input: I, ctx: TaskContext): Promise<O>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ITaskHandler } from "./types.js";
|
|
2
|
+
import { AbsContextual, ContextualArgs } from "../utils/ContextualLoggedClass.js";
|
|
3
|
+
import { TaskContext } from "./TaskContext.js";
|
|
4
|
+
export declare abstract class TaskHandler<I, O> extends AbsContextual<TaskContext> implements ITaskHandler<I, O> {
|
|
5
|
+
private _type?;
|
|
6
|
+
get type(): string;
|
|
7
|
+
protected constructor();
|
|
8
|
+
protected runPrefix(input: I, ...args: ContextualArgs<TaskContext>): Promise<any[]>;
|
|
9
|
+
protected runSuffix(output: O, ctx: TaskContext): O;
|
|
10
|
+
catch(input: I, error: unknown, ctx: TaskContext): Promise<void>;
|
|
11
|
+
abstract run(input: I, ctx: TaskContext): Promise<O>;
|
|
12
|
+
}
|