@cfxlabsinc/b2b-services
    Preparing search index...

    Bank dashboard users by id, whichever banks they belong to or have left. The only writer of their rows, profile picture included (avatarStorage, needed only to update it). A bank's current roster is BankDashboardMembershipService.

    Index
    instance: (...args: []) => BankDashboardUserService = ...

    The process service: the shared database and the static-assets bucket for avatars.

    • The user a Cognito login is, created when no row holds its subject: an invitee, whose email the caller proved. timeZone is their browser's, stored when valid; otherwise they start at auto, never failing the sign-in. An existing row is returned untouched.

      Parameters

      • __namedParameters: {
            cognitoSub: string;
            data: Pick<
                SelectBankDashboardUser["data"],
                "email"
                | "firstName"
                | "lastName",
            >;
            timeZone?: TimeZone;
        }

      Returns Promise<{ ok: true; value: { created: boolean; user: BankDashboardUser } }>

    • Records the user's Cognito subject. Relinking the same subject writes nothing.

      Parameters

      • __namedParameters: {
            cognitoSub: string;
            id: string;
            tx?: PgAsyncTransaction<NodePgQueryResultHKT, EmptyRelations>;
        }

      Returns Promise<
          | { error: ServiceError; ok: false }
          | { ok: true; value: { changed: boolean } },
      >

    • Records that the user acted in bankId: stamps last_seen_at and last_workspace_id in one guarded UPDATE, only when the stamp is stale or the workspace changed, and only for a bank they hold a live ACTIVE membership of. updatedAt is left alone, since being seen is not an edit. true when it wrote.

      Parameters

      • __namedParameters: { bankId: string; id: string }

      Returns Promise<{ ok: true; value: boolean }>

    • Records whether the user's Cognito login holds a passkey, as Cognito listed it: stamps passkeyEnrolledAt the first time it does, keeping an earlier stamp, and clears it once it holds none. changed is whether it wrote.

      Parameters

      • __namedParameters: { enrolled: boolean; id: string }

      Returns Promise<
          | { error: ServiceError; ok: false }
          | { ok: true; value: { changed: boolean } },
      >

    • DANGER: Users are not bank-specific. Ensure you are fetching only users for the current bank, e.g. based on activities

      Parameters

      • __namedParameters: {
            cognitoLinked?: boolean;
            cognitoSubs?: string[];
            createdAt?: DbTimestampCriteria;
            emailConfirmed?: boolean;
            emails?: string[];
            hasActiveMembership?: boolean;
            ids?: string[];
            orderBy?: DbOrderByCriterion<
                Omit<
                    PgTableWithColumns<
                        {
                            columns: {
                                cognitoSub: PgBuildColumn<
                                    "bank_dashboard_user",
                                    PgTextBuilder<[(...), ...(...)[]]>,
                                    {
                                        data: string;
                                        dataType: "string";
                                        driverParam: string;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: false;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: false;
                                        tableName: "bank_dashboard_user";
                                    },
                                >;
                                colorScheme: PgBuildColumn<
                                    "bank_dashboard_user",
                                    SetHasDefault<SetNotNull<(...)>>,
                                    {
                                        data: ColorScheme;
                                        dataType: "string";
                                        driverParam: string;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: true;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: true;
                                        tableName: "bank_dashboard_user";
                                    },
                                >;
                                createdAt: PgBuildColumn<
                                    "bank_dashboard_user",
                                    SetHasDefault<SetNotNull<(...)>>,
                                    {
                                        data: Date;
                                        dataType: "object date";
                                        driverParam: string;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: true;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: true;
                                        tableName: "bank_dashboard_user";
                                    },
                                >;
                                data: PgBuildColumn<
                                    "bank_dashboard_user",
                                    Set$Type<
                                        SetNotNull<(...)>,
                                        {
                                            avatarPath?: ...;
                                            email: ...;
                                            emailConfirmed?: ...;
                                            firstName?: ...;
                                            lastName?: ...;
                                            passkeyEnrolledAt?: ...;
                                            phoneNumber?: ...;
                                        },
                                    >,
                                    {
                                        data: {
                                            avatarPath?: ...;
                                            email: ...;
                                            emailConfirmed?: ...;
                                            firstName?: ...;
                                            lastName?: ...;
                                            passkeyEnrolledAt?: ...;
                                            phoneNumber?: ...;
                                        };
                                        dataType: "object json";
                                        driverParam: unknown;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: false;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: true;
                                        tableName: "bank_dashboard_user";
                                    },
                                >;
                                email: PgBuildColumn<
                                    "bank_dashboard_user",
                                    PgTextBuilder<[(...), ...(...)[]]>,
                                    {
                                        data: string;
                                        dataType: "string";
                                        driverParam: string;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: false;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: false;
                                        tableName: "bank_dashboard_user";
                                    },
                                >;
                                externalId: PgBuildColumn<
                                    "bank_dashboard_user",
                                    SetHasRuntimeDefault<SetNotNull<(...)>>,
                                    {
                                        data: string;
                                        dataType: "string";
                                        driverParam: string;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: true;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: true;
                                        tableName: "bank_dashboard_user";
                                    },
                                >;
                                firstName: PgBuildColumn<
                                    "bank_dashboard_user",
                                    PgTextBuilder<[(...), ...(...)[]]>,
                                    {
                                        data: string;
                                        dataType: "string";
                                        driverParam: string;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: false;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: false;
                                        tableName: "bank_dashboard_user";
                                    },
                                >;
                                id: PgBuildColumn<
                                    "bank_dashboard_user",
                                    HasIdentity<SetIsPrimaryKey<(...)>, "byDefault">,
                                    {
                                        data: number;
                                        dataType: "number int32";
                                        driverParam: (...) | (...);
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: true;
                                        hasRuntimeDefault: false;
                                        identity: "byDefault";
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: true;
                                        tableName: "bank_dashboard_user";
                                    },
                                >;
                                lastName: PgBuildColumn<
                                    "bank_dashboard_user",
                                    PgTextBuilder<[(...), ...(...)[]]>,
                                    {
                                        data: string;
                                        dataType: "string";
                                        driverParam: string;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: false;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: false;
                                        tableName: "bank_dashboard_user";
                                    },
                                >;
                                lastSeenAt: PgBuildColumn<
                                    "bank_dashboard_user",
                                    PgTimestampBuilder,
                                    {
                                        data: Date;
                                        dataType: "object date";
                                        driverParam: string;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: false;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: false;
                                        tableName: "bank_dashboard_user";
                                    },
                                >;
                                lastWorkspaceExternalId: PgBuildColumn<
                                    "bank_dashboard_user",
                                    PgTextBuilder<[(...), ...(...)[]]>,
                                    {
                                        data: string;
                                        dataType: "string";
                                        driverParam: string;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: false;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: false;
                                        tableName: "bank_dashboard_user";
                                    },
                                >;
                                lastWorkspaceId: PgBuildColumn<
                                    "bank_dashboard_user",
                                    PgIntegerBuilder,
                                    {
                                        data: number;
                                        dataType: "number int32";
                                        driverParam: (...)
                                        | (...);
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: false;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: false;
                                        tableName: "bank_dashboard_user";
                                    },
                                >;
                                searchDocument: PgBuildColumn<
                                    "bank_dashboard_user",
                                    SetHasGenerated<SetNotNull<(...)>>,
                                    {
                                        data: string;
                                        dataType: "string";
                                        driverParam: string;
                                        enumValues: undefined;
                                        generated: true;
                                        hasDefault: true;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: true;
                                        tableName: "bank_dashboard_user";
                                    },
                                >;
                                searchDocumentAdmin: PgBuildColumn<
                                    "bank_dashboard_user",
                                    SetHasGenerated<SetNotNull<(...)>>,
                                    {
                                        data: string;
                                        dataType: "string";
                                        driverParam: string;
                                        enumValues: undefined;
                                        generated: true;
                                        hasDefault: true;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: true;
                                        tableName: "bank_dashboard_user";
                                    },
                                >;
                                timeZone: PgBuildColumn<
                                    "bank_dashboard_user",
                                    SetHasDefault<SetNotNull<(...)>>,
                                    {
                                        data: TimeZonePreference;
                                        dataType: "string";
                                        driverParam: string;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: true;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: true;
                                        tableName: "bank_dashboard_user";
                                    },
                                >;
                                updatedAt: PgBuildColumn<
                                    "bank_dashboard_user",
                                    SetHasDefault<SetNotNull<(...)>>,
                                    {
                                        data: Date;
                                        dataType: "object date";
                                        driverParam: string;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: true;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: true;
                                        tableName: "bank_dashboard_user";
                                    },
                                >;
                            };
                            dialect: "pg";
                            isAlias: false;
                            name: "bank_dashboard_user";
                            schema: "bank";
                        },
                    >,
                    "enableRLS",
                >,
                "createdAt",
            >[];
            page?: number;
            pageSize?: number;
            sharesWorkspaceWith?: { bankIds: string[]; dashboardUserId: string };
            updatedAt?: DbTimestampCriteria;
        }
        • OptionalcognitoLinked?: boolean

          false: only users with no Cognito subject yet; true: only linked ones.

        • OptionalcognitoSubs?: string[]
        • OptionalcreatedAt?: DbTimestampCriteria
        • OptionalemailConfirmed?: boolean

          Only users whose email is confirmed (true) or not (false).

        • Optionalemails?: string[]

          Matched case-insensitively.

        • OptionalhasActiveMembership?: boolean

          Only users holding at least one live ACTIVE membership, in any bank.

        • Optionalids?: string[]
        • OptionalorderBy?: DbOrderByCriterion<
              Omit<
                  PgTableWithColumns<
                      {
                          columns: {
                              cognitoSub: PgBuildColumn<
                                  "bank_dashboard_user",
                                  PgTextBuilder<[(...), ...(...)[]]>,
                                  {
                                      data: string;
                                      dataType: "string";
                                      driverParam: string;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: false;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: false;
                                      tableName: "bank_dashboard_user";
                                  },
                              >;
                              colorScheme: PgBuildColumn<
                                  "bank_dashboard_user",
                                  SetHasDefault<SetNotNull<(...)>>,
                                  {
                                      data: ColorScheme;
                                      dataType: "string";
                                      driverParam: string;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: true;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: true;
                                      tableName: "bank_dashboard_user";
                                  },
                              >;
                              createdAt: PgBuildColumn<
                                  "bank_dashboard_user",
                                  SetHasDefault<SetNotNull<(...)>>,
                                  {
                                      data: Date;
                                      dataType: "object date";
                                      driverParam: string;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: true;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: true;
                                      tableName: "bank_dashboard_user";
                                  },
                              >;
                              data: PgBuildColumn<
                                  "bank_dashboard_user",
                                  Set$Type<
                                      SetNotNull<(...)>,
                                      {
                                          avatarPath?: ...;
                                          email: ...;
                                          emailConfirmed?: ...;
                                          firstName?: ...;
                                          lastName?: ...;
                                          passkeyEnrolledAt?: ...;
                                          phoneNumber?: ...;
                                      },
                                  >,
                                  {
                                      data: {
                                          avatarPath?: ...;
                                          email: ...;
                                          emailConfirmed?: ...;
                                          firstName?: ...;
                                          lastName?: ...;
                                          passkeyEnrolledAt?: ...;
                                          phoneNumber?: ...;
                                      };
                                      dataType: "object json";
                                      driverParam: unknown;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: false;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: true;
                                      tableName: "bank_dashboard_user";
                                  },
                              >;
                              email: PgBuildColumn<
                                  "bank_dashboard_user",
                                  PgTextBuilder<[(...), ...(...)[]]>,
                                  {
                                      data: string;
                                      dataType: "string";
                                      driverParam: string;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: false;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: false;
                                      tableName: "bank_dashboard_user";
                                  },
                              >;
                              externalId: PgBuildColumn<
                                  "bank_dashboard_user",
                                  SetHasRuntimeDefault<SetNotNull<(...)>>,
                                  {
                                      data: string;
                                      dataType: "string";
                                      driverParam: string;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: true;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: true;
                                      tableName: "bank_dashboard_user";
                                  },
                              >;
                              firstName: PgBuildColumn<
                                  "bank_dashboard_user",
                                  PgTextBuilder<[(...), ...(...)[]]>,
                                  {
                                      data: string;
                                      dataType: "string";
                                      driverParam: string;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: false;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: false;
                                      tableName: "bank_dashboard_user";
                                  },
                              >;
                              id: PgBuildColumn<
                                  "bank_dashboard_user",
                                  HasIdentity<SetIsPrimaryKey<(...)>, "byDefault">,
                                  {
                                      data: number;
                                      dataType: "number int32";
                                      driverParam: (...) | (...);
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: true;
                                      hasRuntimeDefault: false;
                                      identity: "byDefault";
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: true;
                                      tableName: "bank_dashboard_user";
                                  },
                              >;
                              lastName: PgBuildColumn<
                                  "bank_dashboard_user",
                                  PgTextBuilder<[(...), ...(...)[]]>,
                                  {
                                      data: string;
                                      dataType: "string";
                                      driverParam: string;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: false;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: false;
                                      tableName: "bank_dashboard_user";
                                  },
                              >;
                              lastSeenAt: PgBuildColumn<
                                  "bank_dashboard_user",
                                  PgTimestampBuilder,
                                  {
                                      data: Date;
                                      dataType: "object date";
                                      driverParam: string;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: false;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: false;
                                      tableName: "bank_dashboard_user";
                                  },
                              >;
                              lastWorkspaceExternalId: PgBuildColumn<
                                  "bank_dashboard_user",
                                  PgTextBuilder<[(...), ...(...)[]]>,
                                  {
                                      data: string;
                                      dataType: "string";
                                      driverParam: string;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: false;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: false;
                                      tableName: "bank_dashboard_user";
                                  },
                              >;
                              lastWorkspaceId: PgBuildColumn<
                                  "bank_dashboard_user",
                                  PgIntegerBuilder,
                                  {
                                      data: number;
                                      dataType: "number int32";
                                      driverParam: (...)
                                      | (...);
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: false;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: false;
                                      tableName: "bank_dashboard_user";
                                  },
                              >;
                              searchDocument: PgBuildColumn<
                                  "bank_dashboard_user",
                                  SetHasGenerated<SetNotNull<(...)>>,
                                  {
                                      data: string;
                                      dataType: "string";
                                      driverParam: string;
                                      enumValues: undefined;
                                      generated: true;
                                      hasDefault: true;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: true;
                                      tableName: "bank_dashboard_user";
                                  },
                              >;
                              searchDocumentAdmin: PgBuildColumn<
                                  "bank_dashboard_user",
                                  SetHasGenerated<SetNotNull<(...)>>,
                                  {
                                      data: string;
                                      dataType: "string";
                                      driverParam: string;
                                      enumValues: undefined;
                                      generated: true;
                                      hasDefault: true;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: true;
                                      tableName: "bank_dashboard_user";
                                  },
                              >;
                              timeZone: PgBuildColumn<
                                  "bank_dashboard_user",
                                  SetHasDefault<SetNotNull<(...)>>,
                                  {
                                      data: TimeZonePreference;
                                      dataType: "string";
                                      driverParam: string;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: true;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: true;
                                      tableName: "bank_dashboard_user";
                                  },
                              >;
                              updatedAt: PgBuildColumn<
                                  "bank_dashboard_user",
                                  SetHasDefault<SetNotNull<(...)>>,
                                  {
                                      data: Date;
                                      dataType: "object date";
                                      driverParam: string;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: true;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: true;
                                      tableName: "bank_dashboard_user";
                                  },
                              >;
                          };
                          dialect: "pg";
                          isAlias: false;
                          name: "bank_dashboard_user";
                          schema: "bank";
                      },
                  >,
                  "enableRLS",
              >,
              "createdAt",
          >[]
        • Optionalpage?: number

          Defaults to 1

        • OptionalpageSize?: number

          Defaults to 10

        • OptionalsharesWorkspaceWith?: { bankIds: string[]; dashboardUserId: string }

          Only users holding an ACTIVE membership of one of bankIds that dashboardUserId holds too: whose avatars that viewer may see.

        • OptionalupdatedAt?: DbTimestampCriteria

      Returns Promise<
          {
              ok: true;
              value: { hasNext: boolean; items: BankDashboardUser[]; total: number };
          },
      >

    • Sets the user's first and last name and, with avatar, their profile picture: any PNG, JPEG or WebP, stored as a 256 px WebP square, or null to remove it. Keys it doesn't name survive concurrent writes, and the picture it replaces is deleted once nothing points at it. phoneNumber takes any common format with its country code and is stored in E.164; null clears it. colorScheme is one of COLOR_SCHEMES; timeZone is an IANA Area/Location name, or auto to follow the request.

      Parameters

      • __namedParameters: {
            avatar?: Uint8Array<ArrayBufferLike> | null;
            colorScheme?: ColorScheme;
            data?: Pick<BankDashboardUser, "firstName" | "lastName">;
            id: string;
            phoneNumber?: string | null;
            timeZone?: TimeZonePreference;
            tx?: PgAsyncTransaction<NodePgQueryResultHKT, EmptyRelations>;
        }

      Returns Promise<
          | { ok: true; value: void }
          | {
              error:
                  | ServiceError<
                      | "DASHBOARD_USER_NOT_FOUND"
                      | "DASHBOARD_USER_PHONE_NUMBER_INVALID"
                      | "DASHBOARD_USER_COLOR_SCHEME_INVALID"
                      | "DASHBOARD_USER_TIME_ZONE_INVALID",
                  >
                  | ImageUploadError;
              ok: false;
          },
      >