interface RevisionHelpers {
    deletedError: Error;
    staleError: Error;
    applyRevisionMetadata<
        TData extends JsonObject,
        TVirtual extends JsonObject,
        TInstance extends
            JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & {
                deleteAllRevisions<
                    TThis extends
                        JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned... = VersionedModelInstance<
                        TData,
                        TVirtual,
                    >,
                >(
                    this: TThis,
                    user?: RevisionActor,
                    options?: RevisionMetadata,
                ): Promise<TThis>;
                newRevision<
                    TThis extends
                        JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned... = VersionedModelInstance<
                        TData,
                        TVirtual,
                    >,
                >(
                    this: TThis,
                    user: RevisionActor,
                    options?: RevisionMetadata,
                ): Promise<TThis>;
            },
    >(
        instance: TInstance,
        options?: {
            date?: string | Date;
            revId?: string;
            tags?: string | string[];
            user?: RevisionActor;
        },
    ): TInstance;
    getDeleteAllRevisionsHandler<
        TData extends JsonObject,
        TVirtual extends JsonObject,
        TInstance extends
            JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & {
                deleteAllRevisions<
                    TThis extends
                        JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned... = VersionedModelInstance<
                        TData,
                        TVirtual,
                    >,
                >(
                    this: TThis,
                    user?: RevisionActor,
                    options?: RevisionMetadata,
                ): Promise<TThis>;
                newRevision<
                    TThis extends
                        JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned... = VersionedModelInstance<
                        TData,
                        TVirtual,
                    >,
                >(
                    this: TThis,
                    user: RevisionActor,
                    options?: RevisionMetadata,
                ): Promise<TThis>;
            },
    >(
        ModelClass: ModelConstructorLike<TData, TVirtual, TInstance>,
    ): (
        this: TInstance,
        user: RevisionActor,
        options?: { tags?: string[] },
    ) => Promise<VersionedModelInstance<TData, TVirtual>>;
    getFirstRevisionHandler<
        TData extends JsonObject,
        TVirtual extends JsonObject,
        TInstance extends
            JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & {
                deleteAllRevisions<
                    TThis extends
                        JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned... = VersionedModelInstance<
                        TData,
                        TVirtual,
                    >,
                >(
                    this: TThis,
                    user?: RevisionActor,
                    options?: RevisionMetadata,
                ): Promise<TThis>;
                newRevision<
                    TThis extends
                        JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned... = VersionedModelInstance<
                        TData,
                        TVirtual,
                    >,
                >(
                    this: TThis,
                    user: RevisionActor,
                    options?: RevisionMetadata,
                ): Promise<TThis>;
            },
    >(
        ModelClass: ModelConstructorLike<TData, TVirtual, TInstance>,
    ): (
        this: TInstance,
        user: RevisionActor,
        options?: { date?: Date; tags?: string[] },
    ) => Promise<VersionedModelInstance<TData, TVirtual>>;
    getMultipleNotStaleOrDeletedHandler<
        TData extends JsonObject,
        TVirtual extends JsonObject,
        TInstance extends
            JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & {
                deleteAllRevisions<
                    TThis extends
                        JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned... = VersionedModelInstance<
                        TData,
                        TVirtual,
                    >,
                >(
                    this: TThis,
                    user?: RevisionActor,
                    options?: RevisionMetadata,
                ): Promise<TThis>;
                newRevision<
                    TThis extends
                        JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned... = VersionedModelInstance<
                        TData,
                        TVirtual,
                    >,
                >(
                    this: TThis,
                    user: RevisionActor,
                    options?: RevisionMetadata,
                ): Promise<TThis>;
            },
    >(
        ModelClass: ModelConstructorLike<TData, TVirtual, TInstance>,
    ): (idArray: string[]) => unknown;
    getNewRevisionHandler<
        TData extends JsonObject,
        TVirtual extends JsonObject,
        TInstance extends
            JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & {
                deleteAllRevisions<
                    TThis extends
                        JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned... = VersionedModelInstance<
                        TData,
                        TVirtual,
                    >,
                >(
                    this: TThis,
                    user?: RevisionActor,
                    options?: RevisionMetadata,
                ): Promise<TThis>;
                newRevision<
                    TThis extends
                        JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned... = VersionedModelInstance<
                        TData,
                        TVirtual,
                    >,
                >(
                    this: TThis,
                    user: RevisionActor,
                    options?: RevisionMetadata,
                ): Promise<TThis>;
            },
    >(
        ModelClass: ModelConstructorLike<TData, TVirtual, TInstance>,
    ): (
        this: TInstance,
        user: RevisionActor,
        options?: { tags?: string[] },
    ) => Promise<VersionedModelInstance<TData, TVirtual>>;
    getNotStaleOrDeletedGetHandler<
        TData extends JsonObject,
        TVirtual extends JsonObject,
        TInstance extends
            JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & {
                deleteAllRevisions<
                    TThis extends
                        JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned... = VersionedModelInstance<
                        TData,
                        TVirtual,
                    >,
                >(
                    this: TThis,
                    user?: RevisionActor,
                    options?: RevisionMetadata,
                ): Promise<TThis>;
                newRevision<
                    TThis extends
                        JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned... = VersionedModelInstance<
                        TData,
                        TVirtual,
                    >,
                >(
                    this: TThis,
                    user: RevisionActor,
                    options?: RevisionMetadata,
                ): Promise<TThis>;
            },
    >(
        ModelClass: ModelConstructorLike<TData, TVirtual, TInstance>,
    ): (
        id: string,
        joinOptions?: JoinOptions,
    ) => Promise<VersionedModelInstance<TData, TVirtual>>;
    getSchema(): Record<string, unknown>;
    registerFieldMappings(ModelClass: ModelConstructorLike): void;
}

Properties

deletedError: Error
staleError: Error

Methods

  • Type Parameters

    • TData extends JsonObject
    • TVirtual extends JsonObject
    • TInstance extends JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & {
          deleteAllRevisions<
              TThis extends
                  JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned... = VersionedModelInstance<
                  TData,
                  TVirtual,
              >,
          >(
              this: TThis,
              user?: RevisionActor,
              options?: RevisionMetadata,
          ): Promise<TThis>;
          newRevision<
              TThis extends
                  JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned... = VersionedModelInstance<
                  TData,
                  TVirtual,
              >,
          >(
              this: TThis,
              user: RevisionActor,
              options?: RevisionMetadata,
          ): Promise<TThis>;
      }

    Parameters

    • instance: TInstance
    • Optionaloptions: {
          date?: string | Date;
          revId?: string;
          tags?: string | string[];
          user?: RevisionActor;
      }

    Returns TInstance

  • Type Parameters

    • TData extends JsonObject
    • TVirtual extends JsonObject
    • TInstance extends JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & {
          deleteAllRevisions<
              TThis extends
                  JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned... = VersionedModelInstance<
                  TData,
                  TVirtual,
              >,
          >(
              this: TThis,
              user?: RevisionActor,
              options?: RevisionMetadata,
          ): Promise<TThis>;
          newRevision<
              TThis extends
                  JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned... = VersionedModelInstance<
                  TData,
                  TVirtual,
              >,
          >(
              this: TThis,
              user: RevisionActor,
              options?: RevisionMetadata,
          ): Promise<TThis>;
      }

    Parameters

    Returns (
        this: TInstance,
        user: RevisionActor,
        options?: { tags?: string[] },
    ) => Promise<VersionedModelInstance<TData, TVirtual>>

  • Type Parameters

    • TData extends JsonObject
    • TVirtual extends JsonObject
    • TInstance extends JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & {
          deleteAllRevisions<
              TThis extends
                  JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned... = VersionedModelInstance<
                  TData,
                  TVirtual,
              >,
          >(
              this: TThis,
              user?: RevisionActor,
              options?: RevisionMetadata,
          ): Promise<TThis>;
          newRevision<
              TThis extends
                  JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned... = VersionedModelInstance<
                  TData,
                  TVirtual,
              >,
          >(
              this: TThis,
              user: RevisionActor,
              options?: RevisionMetadata,
          ): Promise<TThis>;
      }

    Parameters

    Returns (
        this: TInstance,
        user: RevisionActor,
        options?: { date?: Date; tags?: string[] },
    ) => Promise<VersionedModelInstance<TData, TVirtual>>

  • Type Parameters

    • TData extends JsonObject
    • TVirtual extends JsonObject
    • TInstance extends JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & {
          deleteAllRevisions<
              TThis extends
                  JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned... = VersionedModelInstance<
                  TData,
                  TVirtual,
              >,
          >(
              this: TThis,
              user?: RevisionActor,
              options?: RevisionMetadata,
          ): Promise<TThis>;
          newRevision<
              TThis extends
                  JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned... = VersionedModelInstance<
                  TData,
                  TVirtual,
              >,
          >(
              this: TThis,
              user: RevisionActor,
              options?: RevisionMetadata,
          ): Promise<TThis>;
      }

    Parameters

    Returns (idArray: string[]) => unknown

  • Type Parameters

    • TData extends JsonObject
    • TVirtual extends JsonObject
    • TInstance extends JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & {
          deleteAllRevisions<
              TThis extends
                  JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned... = VersionedModelInstance<
                  TData,
                  TVirtual,
              >,
          >(
              this: TThis,
              user?: RevisionActor,
              options?: RevisionMetadata,
          ): Promise<TThis>;
          newRevision<
              TThis extends
                  JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned... = VersionedModelInstance<
                  TData,
                  TVirtual,
              >,
          >(
              this: TThis,
              user: RevisionActor,
              options?: RevisionMetadata,
          ): Promise<TThis>;
      }

    Parameters

    Returns (
        this: TInstance,
        user: RevisionActor,
        options?: { tags?: string[] },
    ) => Promise<VersionedModelInstance<TData, TVirtual>>

  • Type Parameters

    • TData extends JsonObject
    • TVirtual extends JsonObject
    • TInstance extends JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & {
          deleteAllRevisions<
              TThis extends
                  JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned... = VersionedModelInstance<
                  TData,
                  TVirtual,
              >,
          >(
              this: TThis,
              user?: RevisionActor,
              options?: RevisionMetadata,
          ): Promise<TThis>;
          newRevision<
              TThis extends
                  JsonObject & ModelInstanceCore<TData, TVirtual> & RevisionFieldMap & { newRevision<TThis extends VersionedModelInstance<TData, TVirtual> = VersionedModelInstance<...>>(this: TThis, user: RevisionActor, options?: RevisionMetadata): Promise<...>; deleteAllRevisions<TThis extends VersionedModelInstance<...> = Versioned... = VersionedModelInstance<
                  TData,
                  TVirtual,
              >,
          >(
              this: TThis,
              user: RevisionActor,
              options?: RevisionMetadata,
          ): Promise<TThis>;
      }

    Parameters

    Returns (
        id: string,
        joinOptions?: JoinOptions,
    ) => Promise<VersionedModelInstance<TData, TVirtual>>