diff --git a/packages/fabric/core/src/domain/entity/files/image-file.ts b/packages/fabric/core/src/domain/entity/files/image-file.ts index e92aaba..66a17c8 100644 --- a/packages/fabric/core/src/domain/entity/files/image-file.ts +++ b/packages/fabric/core/src/domain/entity/files/image-file.ts @@ -1,9 +1,9 @@ import { ImageMimeType } from "../../../files/mime-type.js"; -import { DomainFile } from "./domain-file.js"; +import { StoredFile } from "./stored-file.js"; /** * Represents an image file. */ -export interface ImageFile extends DomainFile { +export interface ImageFile extends StoredFile { mimeType: ImageMimeType; } diff --git a/packages/fabric/core/src/domain/entity/files/index.ts b/packages/fabric/core/src/domain/entity/files/index.ts index dad6bbf..ebe3117 100644 --- a/packages/fabric/core/src/domain/entity/files/index.ts +++ b/packages/fabric/core/src/domain/entity/files/index.ts @@ -1,2 +1,2 @@ -export * from "./domain-file.js"; export * from "./image-file.js"; +export * from "./stored-file.js"; diff --git a/packages/fabric/core/src/domain/entity/files/domain-file.ts b/packages/fabric/core/src/domain/entity/files/stored-file.ts similarity index 75% rename from packages/fabric/core/src/domain/entity/files/domain-file.ts rename to packages/fabric/core/src/domain/entity/files/stored-file.ts index 74a36ca..4ed5ff1 100644 --- a/packages/fabric/core/src/domain/entity/files/domain-file.ts +++ b/packages/fabric/core/src/domain/entity/files/stored-file.ts @@ -4,6 +4,6 @@ import { Entity } from "../entity.js"; /** * Represents a file as managed by the domain. */ -export interface DomainFile extends BaseFile, Entity { +export interface StoredFile extends BaseFile, Entity { url: string; } diff --git a/packages/fabric/core/src/domain/events/event.ts b/packages/fabric/core/src/domain/events/event.ts index 05b78da..22d0ac5 100644 --- a/packages/fabric/core/src/domain/events/event.ts +++ b/packages/fabric/core/src/domain/events/event.ts @@ -1,4 +1,5 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ +import { PosixDate } from "../../time/posix-date.js"; import { TaggedVariant } from "../../variant/variant.js"; import { UUID } from "../types/uuid.js"; @@ -10,3 +11,12 @@ export interface Event streamId: UUID; payload: TPayload; } + +/** + * A stored event is an inmutable event, already stored, with it's version in the stream and timestamp. + */ +export interface StoredEvent + extends Readonly> { + readonly version: number; + readonly timestamp: PosixDate; +} diff --git a/packages/fabric/core/src/domain/use-case/use-case-definition.ts b/packages/fabric/core/src/domain/use-case/use-case-definition.ts index c16f76e..85c35dd 100644 --- a/packages/fabric/core/src/domain/use-case/use-case-definition.ts +++ b/packages/fabric/core/src/domain/use-case/use-case-definition.ts @@ -25,11 +25,6 @@ interface BasicUseCaseDefinition< */ isAuthRequired: boolean; - /** - * The required permissions to execute the use case. - **/ - requiredPermissions?: string[]; - /** * The use case function. */ diff --git a/packages/fabric/core/src/files/uploaded-file.ts b/packages/fabric/core/src/files/in-memory-file.ts similarity index 100% rename from packages/fabric/core/src/files/uploaded-file.ts rename to packages/fabric/core/src/files/in-memory-file.ts diff --git a/packages/fabric/core/src/files/index.ts b/packages/fabric/core/src/files/index.ts index ed4ec55..3468cb7 100644 --- a/packages/fabric/core/src/files/index.ts +++ b/packages/fabric/core/src/files/index.ts @@ -1,8 +1,8 @@ export * from "./base-file.js"; export * from "./bytes.js"; +export * from "./in-memory-file.js"; export * from "./invalid-file-type-error.js"; +export * from "./is-in-memory-file.js"; export * from "./is-mime-type.js"; -export * from "./is-uploaded-file.js"; export * from "./media-file.js"; export * from "./mime-type.js"; -export * from "./uploaded-file.js"; diff --git a/packages/fabric/core/src/files/is-uploaded-file.ts b/packages/fabric/core/src/files/is-in-memory-file.ts similarity index 92% rename from packages/fabric/core/src/files/is-uploaded-file.ts rename to packages/fabric/core/src/files/is-in-memory-file.ts index 18556df..3adfc31 100644 --- a/packages/fabric/core/src/files/is-uploaded-file.ts +++ b/packages/fabric/core/src/files/is-in-memory-file.ts @@ -1,6 +1,6 @@ import validator from "validator"; import { isRecord } from "../record/is-record.js"; -import { InMemoryFile } from "./uploaded-file.js"; +import { InMemoryFile } from "./in-memory-file.js"; const { isBase64, isMimeType } = validator; diff --git a/packages/fabric/core/src/files/media-file.ts b/packages/fabric/core/src/files/media-file.ts index edf0b82..5c86a4e 100644 --- a/packages/fabric/core/src/files/media-file.ts +++ b/packages/fabric/core/src/files/media-file.ts @@ -1,8 +1,8 @@ -import { DomainFile } from "../domain/entity/files/domain-file.js"; +import { StoredFile } from "../domain/entity/files/stored-file.js"; /** * Represents a media file, either an image, a video or an audio file. */ -export interface MediaFile extends DomainFile { +export interface MediaFile extends StoredFile { mimeType: `image/${string}` | `video/${string}` | `audio/${string}`; } diff --git a/packages/fabric/core/src/result/result.ts b/packages/fabric/core/src/result/result.ts index 48ee32f..a7c8d7f 100644 --- a/packages/fabric/core/src/result/result.ts +++ b/packages/fabric/core/src/result/result.ts @@ -1,9 +1,11 @@ import { TaggedError } from "../error/tagged-error.js"; +import { UnexpectedError } from "../error/unexpected-error.js"; /** * Un Result representa el resultado de una operación * que puede ser un valor de tipo `TValue` o un error `TError`. */ -export type Result> = - | TValue - | TError; +export type Result< + TValue, + TError extends TaggedError = UnexpectedError, +> = TValue | TError;