import type * as Scope from "effect/Scope"; import type { InvalidStateError, NotFoundError, OptimisticConcurrencyException } from "../../client/errors.js"; import type * as Effect from "../../Effect.js"; import type * as Option from "../../Option.js"; import type * as S from "../../Schema.js"; import type { NonNegativeInt } from "../../Schema/numbers.js"; import type { FieldValues, IsNever, ResolveFirstLevel } from "../filter/types.js"; import type { QAll, Query, QueryProjection, RawQuery } from "../query.js"; import type { Mapped } from "./legacy.js"; import type { ValidationResult } from "./validation.js"; /** * Event emitted by a repository's ChangeFeed. * * Tuple shape: `[items, op, namespace]` — `namespace` is the `storeId` * context value at publish time (defaults to `"primary"`). */ export type ChangeFeedEvent = readonly [items: T[], op: "save" | "remove", namespace: string]; /** * Synchronous broadcast channel for repository change events. * * `publish` only completes after every matching handler's Effect has * finished — callers must await all handlers before continuing. Subscribers * can target a single namespace via `options.namespace`, or omit it to * receive events from every namespace (wildcard). * * Handlers are auto-removed when the subscriber's Scope closes; the full * handler set is cleared when the repository's own scope closes. */ export interface ChangeFeed { readonly publish: (evt: [T[], "save" | "remove"]) => Effect.Effect; readonly subscribe: (handler: (evt: ChangeFeedEvent) => Effect.Effect, options?: { readonly namespace?: string; }) => Effect.Effect; } export interface Repository { readonly itemType: ItemType; readonly idKey: IdKey; readonly find: (id: T[IdKey]) => Effect.Effect, never, RSchema>; readonly all: Effect.Effect; readonly saveAndPublish: (items: Iterable, events?: Iterable) => Effect.Effect; readonly changeFeed: ChangeFeed; readonly removeAndPublish: (items: Iterable, events?: Iterable) => Effect.Effect; readonly removeById: (idOrIds: T[IdKey] | ReadonlyArray) => Effect.Effect; readonly queryRaw: (schema: S.Codec, raw: RawQuery) => Effect.Effect; /** * Explicitly seed a namespace. Primary is seeded eagerly on initialization. * Non-primary namespaces must be seeded explicitly before use. */ readonly seedNamespace: (namespace: string) => Effect.Effect; readonly query: { (q: (initial: Query) => QueryProjection): Effect.Effect) | (TType extends "count" ? never : S.SchemaError), Exclude | RSchema>; (q1: (initial: Query) => $A, q2: (_: $A) => QueryProjection): Effect.Effect) | (TType extends "count" ? never : S.SchemaError), Exclude | RSchema>; (q1: (initial: Query) => $A, q2: (_: $A) => $B, q3: (_: $B) => QueryProjection): Effect.Effect) | (TType extends "count" ? never : S.SchemaError), Exclude | RSchema>; (q1: (initial: Query) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => QueryProjection): Effect.Effect) | (TType extends "count" ? never : S.SchemaError), Exclude | RSchema>; (q1: (initial: Query) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => QueryProjection): Effect.Effect) | (TType extends "count" ? never : S.SchemaError), Exclude | RSchema>; (q1: (initial: Query) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => $E, q6: (_: $E) => QueryProjection): Effect.Effect) | (TType extends "count" ? never : S.SchemaError), Exclude | RSchema>; (q1: (initial: Query) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => $E, q6: (_: $E) => $F, q7: (_: $F) => QueryProjection): Effect.Effect) | (TType extends "count" ? never : S.SchemaError), Exclude | RSchema>; (q1: (initial: Query) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => $E, q6: (_: $E) => $F, q7: (_: $F) => $G, q8: (_: $G) => QueryProjection): Effect.Effect) | (TType extends "count" ? never : S.SchemaError), Exclude | RSchema>; (q1: (initial: Query) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => $E, q6: (_: $E) => $F, q7: (_: $F) => $G, q8: (_: $G) => $H, q9: (_: $H) => QueryProjection): Effect.Effect) | (TType extends "count" ? never : S.SchemaError), Exclude | RSchema>; (q1: (initial: Query) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => $E, q6: (_: $E) => $F, q7: (_: $F) => $G, q8: (_: $G) => $H, q9: (_: $H) => $I, q10: (_: $I) => QueryProjection): Effect.Effect) | (TType extends "count" ? never : S.SchemaError), Exclude | RSchema>; (q: (initial: Query) => QAll, R, TType, E>): Effect.Effect : RefineTHelper, TType extends "many" ? never : NotFoundError, Exclude | RSchema>; (q1: (initial: Query) => $A, q2: (_: $A) => QAll, R, TType, E>): Effect.Effect : RefineTHelper, TType extends "many" ? never : NotFoundError, Exclude | RSchema>; (q1: (initial: Query) => $A, q2: (_: $A) => $B, q3: (_: $B) => QAll, R, TType, E>): Effect.Effect : RefineTHelper, TType extends "many" ? never : NotFoundError, Exclude | RSchema>; (q1: (initial: Query) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => QAll, R, TType, E>): Effect.Effect : RefineTHelper, TType extends "many" ? never : NotFoundError, Exclude | RSchema>; (q1: (initial: Query) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => QAll, R, TType, E>): Effect.Effect : RefineTHelper, TType extends "many" ? never : NotFoundError, Exclude | RSchema>; (q1: (initial: Query) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => $E, q6: (_: $E) => QAll, R, TType, E>): Effect.Effect : RefineTHelper, TType extends "many" ? never : NotFoundError, Exclude | RSchema>; (q1: (initial: Query) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => $E, q6: (_: $E) => $F, q7: (_: $F) => QAll, R, TType, E>): Effect.Effect : RefineTHelper, TType extends "many" ? never : NotFoundError, Exclude | RSchema>; (q1: (initial: Query) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => $E, q6: (_: $E) => $F, q7: (_: $F) => $G, q8: (_: $G) => QAll, R, TType, E>): Effect.Effect : RefineTHelper, TType extends "many" ? never : NotFoundError, Exclude | RSchema>; (q1: (initial: Query) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => $E, q6: (_: $E) => $F, q7: (_: $F) => $G, q8: (_: $G) => $H, q9: (_: $H) => QAll, R, TType, E>): Effect.Effect : RefineTHelper, TType extends "many" ? never : NotFoundError, Exclude | RSchema>; (q1: (initial: Query) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => $E, q6: (_: $E) => $F, q7: (_: $F) => $G, q8: (_: $G) => $H, q9: (_: $H) => $I, q10: (_: $I) => QAll, R, TType, E>): Effect.Effect : RefineTHelper, TType extends "many" ? never : NotFoundError, Exclude | RSchema>; }; /** @deprecated use query */ readonly mapped: Mapped; /** * Validates a random sample of repository items by applying jitM and schema decode. * Useful for testing that migrations and schema changes work correctly on existing data. */ readonly validateSample: (options?: { /** percentage of items to sample (0.0-1.0), default 0.1 (10%) */ percentage?: number; /** optional maximum number of items to sample */ maxItems?: number; }) => Effect.Effect; } type DistributeQueryIfExclusiveOnArray = [Exclusive] extends [true] ? T extends any ? RefineTHelper extends infer R ? IsNever extends true ? never : readonly R[] : never : never : readonly RefineTHelper[]; type NullableRefined = { [k in keyof T]: [null] extends [T[k]] ? [null] extends [Extract[k]] ? T[k] : Exclude : T[k]; }; type ShouldRecursiveExtractTagged = true extends { [k in keyof T]: "_tag" extends keyof T[k] ? k extends keyof EncodedRefined ? "_tag" extends keyof EncodedRefined[k] ? true : false : false : false; }[keyof T] ? true : false; type RecursiveExtractTagged = ShouldRecursiveExtractTagged extends true ? { [k in keyof T]: "_tag" extends keyof T[k] ? k extends keyof EncodedRefined ? "_tag" extends keyof EncodedRefined[k] ? ExtractTagged : T[k] : T[k] : T[k]; } : T; type ExtractTagged_ = EncodedRefined extends { _tag: string; } ? T extends { _tag: string; } ? Extract : T : T; type ExtractTagged = ExtractTagged_ extends infer R ? RecursiveExtractTagged, EncodedRefined> : never; type ShouldRecursiveExtractIded = true extends { [k in keyof T]: "id" extends keyof T[k] ? k extends keyof EncodedRefined ? "id" extends keyof EncodedRefined[k] ? true : false : false : false; }[keyof T] ? true : false; type RecusiveExtractIded = ShouldRecursiveExtractIded extends true ? { [k in keyof T]: "id" extends keyof T[k] ? k extends keyof EncodedRefined ? "id" extends keyof EncodedRefined[k] ? ExtractIded : T[k] : T[k] : T[k]; } : T; type ExtractIded_ = EncodedRefined extends { id: string; } ? T extends { id: string; } ? Extract : T : T; type ExtractIded = ExtractIded_ extends infer R ? RecusiveExtractIded, EncodedRefined> : never; export type RefineTHelper = ResolveFirstLevel, EncodedRefined>, EncodedRefined>>; export {}; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL01vZGVsL1JlcG9zaXRvcnkvc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssS0FBSyxLQUFLLE1BQU0sY0FBYyxDQUFBO0FBQzFDLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQzlHLE9BQU8sS0FBSyxLQUFLLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEtBQUssS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxLQUFLLEtBQUssQ0FBQyxNQUFNLGlCQUFpQixDQUFBO0FBQ3pDLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQzdELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNqRixPQUFPLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDekUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3pDLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFFdkQ7Ozs7O0dBS0c7QUFDSCxNQUFNLE1BQU0sZUFBZSxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEdBQUcsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUVoRzs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxXQUFXLFVBQVUsQ0FBQyxDQUFDO0lBQzNCLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFD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