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

    Reads for b2b.program and its grants (PROGRAM_ROUTING.md § 3.1, § 3.3). search reads through a collection-tagged cache that ProgramQueryService.invalidate busts; get folds into search. The grant reads are uncached, since routing decisions read them.

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

    The process default: built from each dependency's own instance().

    • The customers holding a grant on the program, newest grant first.

      Parameters

      • __namedParameters: { page?: number; pageSize?: number; programId: string }

      Returns Promise<
          {
              ok: true;
              value: {
                  hasNext: boolean;
                  items: {
                      customerId: string;
                      customerName: string;
                      grantedAt: Date;
                      grantedBy: string;
                  }[];
                  total: number;
              };
          },
      >

    • Self-bust after a write: the folded get entry by exact key, which works in memory mode where tag invalidation no-ops, then every other search. Virtual account pages carry the record tag of the program each account was placed in; Victor account pages carry victorLedgerProgramIds, a dart program's provider ids before and after the write.

      Parameters

      • __namedParameters: { id: string; victorLedgerProgramIds?: readonly string[] }

      Returns Promise<void>