/** * Linked-entity filters → `keywords` references (issue #247). * * BoondManager's list endpoints have **no** `companyId` / `projectId` / * `resourceId` query parameters. A related entity is selected through a * prefixed reference inside `keywords` — `CSOC` (company), `PRJ` * (project), `COMP` (resource), `CAND` (candidate), `CCON` * (contact), `AO` (opportunity), `ACH` (purchase), `BDC` (order), * `FACT` (invoice), `MIS` (delivery), `PROD` (product), * `CTR` (contract) — documented per endpoint in the RAML and verified * against the live API on 2026-09-25: `GET /invoices?companyId=6221` returned * the whole table (29 893 rows, same as with no filter at all), while * `keywords=CSOC6221` returned 2. An unknown query parameter is ignored * silently, so a tool that forwarded `companyId` verbatim answered "the * invoices of X" with *every* invoice, presented as filtered. * * The search schemas keep the `*Id` fields — they are what a model reaches * for — and every search handler runs its params through `toKeywordReferences` * before building the query, so the conversion cannot be forgotten per domain. * Not every endpoint honours every prefix (the RAML lists them); a prefix an * endpoint does not know simply matches nothing, which is still a visible * "0 results", never a silently unfiltered page. */ export declare const KEYWORD_PREFIX_BY_FILTER: { readonly candidateId: "CAND"; readonly resourceId: "COMP"; readonly contactId: "CCON"; readonly companyId: "CSOC"; readonly projectId: "PRJ"; readonly opportunityId: "AO"; readonly purchaseId: "ACH"; readonly orderId: "BDC"; readonly invoiceId: "FACT"; readonly deliveryId: "MIS"; readonly productId: "PROD"; readonly contractId: "CTR"; }; export type LinkedEntityFilter = keyof typeof KEYWORD_PREFIX_BY_FILTER; /** * Move every linked-entity `*Id` filter present in `params` into `keywords` * as `` (appended after the caller's own keywords, space * separated) and drop the `*Id` keys. Keys that are absent or `undefined` are * left alone; other keys pass through untouched. */ export declare function toKeywordReferences>(params: T): Omit & { keywords?: string; }; //# sourceMappingURL=linked-entity-filters.d.ts.map