{"version":3,"file":"fetchMembers.mjs","sources":["../../../../../../../../web/src/adminPortal/utils/fetchMembers.ts"],"sourcesContent":["import { B2BOrganizationsMembersSearchResponse, StytchProjectConfigurationInput } from '@stytch/core/public';\n\nimport { StytchB2BClient } from '../../b2b/StytchB2BClient';\nimport { isTruthy } from '../../utils/isTruthy';\nimport { KnownMemberStatus } from '../memberManagement/MemberStatus';\n\ntype FetchMembersResponse = B2BOrganizationsMembersSearchResponse & { isFetchMemberResponse: true };\n\nexport const fetchMembers =\n  (client: StytchB2BClient<StytchProjectConfigurationInput>) =>\n  async ({\n    cursor,\n    limit,\n    email,\n    roles,\n    statuses,\n  }: {\n    cursor: string | undefined;\n    limit: number;\n    email: string | undefined;\n    roles: string[] | undefined;\n    statuses: KnownMemberStatus[] | undefined;\n  }): Promise<FetchMembersResponse> => {\n    const operands = [\n      email && { filter_name: 'member_email_fuzzy', filter_value: email },\n      roles && { filter_name: 'member_roles', filter_value: roles },\n      statuses && { filter_name: 'statuses', filter_value: statuses },\n    ].filter(isTruthy);\n\n    const response = await client.organization.members.search({\n      cursor,\n      limit,\n      query:\n        operands.length > 0\n          ? {\n              operator: 'AND',\n              operands: operands,\n            }\n          : undefined,\n    });\n\n    return {\n      ...response,\n      isFetchMemberResponse: true,\n    };\n  };\n\nexport const isFetchMembersResponse = (data: unknown): data is FetchMembersResponse => {\n  return (\n    typeof data === 'object' &&\n    data !== null &&\n    'isFetchMemberResponse' in data &&\n    (data as FetchMembersResponse).isFetchMemberResponse\n  );\n};\n"],"names":["fetchMembers","client","cursor","limit","email","roles","statuses","operands","filter_name","filter_value","filter","isTruthy","response","organization","members","search","query","length","operator","undefined","isFetchMemberResponse","isFetchMembersResponse","data"],"mappings":";;AAQO,MAAMA,YAAAA,GACX,CAACC,MAAAA,GACD,OAAO,EACLC,MAAM,EACNC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,QAAQ,EAOT,GAAA;AACC,QAAA,MAAMC,QAAAA,GAAW;YACfH,KAAAA,IAAS;gBAAEI,WAAAA,EAAa,oBAAA;gBAAsBC,YAAAA,EAAcL;AAAM,aAAA;YAClEC,KAAAA,IAAS;gBAAEG,WAAAA,EAAa,cAAA;gBAAgBC,YAAAA,EAAcJ;AAAM,aAAA;YAC5DC,QAAAA,IAAY;gBAAEE,WAAAA,EAAa,UAAA;gBAAYC,YAAAA,EAAcH;AAAS;AAC/D,SAAA,CAACI,MAAM,CAACC,QAAAA,CAAAA;QAET,MAAMC,QAAAA,GAAW,MAAMX,MAAAA,CAAOY,YAAY,CAACC,OAAO,CAACC,MAAM,CAAC;AACxDb,YAAAA,MAAAA;AACAC,YAAAA,KAAAA;YACAa,KAAAA,EACET,QAAAA,CAASU,MAAM,GAAG,CAAA,GACd;gBACEC,QAAAA,EAAU,KAAA;gBACVX,QAAAA,EAAUA;aACZ,GACAY;AACR,SAAA,CAAA;QAEA,OAAO;AACL,YAAA,GAAGP,QAAQ;YACXQ,qBAAAA,EAAuB;AACzB,SAAA;IACF;AAEK,MAAMC,yBAAyB,CAACC,IAAAA,GAAAA;IACrC,OACE,OAAOA,SAAS,QAAA,IAChBA,IAAAA,KAAS,QACT,uBAAA,IAA2BA,IAAAA,IAC3B,IAACA,CAA8BF,qBAAqB;AAExD;;;;"}