{"version":3,"sources":["../src/backend/capabilities/fulltext.ts"],"names":[],"mappings":";;;AA8BO,SAAS,uBACd,OAAA,EACsC;AACtC,EAAA,IAAI,OAAA,CAAQ,YAAA,CAAa,QAAA,KAAa,MAAA,EAAW,OAAO,KAAA;AACxD,EAAA,OAAO,OAAA,CAAQ,gBAAA;AACjB","file":"chunk-R255UE5U.cjs","sourcesContent":["/**\n * The `fulltext` capability: whether this backend has an active fulltext\n * strategy at all.\n *\n * `resolveBackendFulltext` is THE one owner of \"is fulltext available on\n * this backend\" — the query compiler's dialect resolution and the store's\n * fulltext/hybrid search validation both consume it instead of re-deriving\n * the same decision from `capabilities.fulltext` or `fulltextStrategy`\n * separately.\n */\nimport type { FulltextStrategy } from \"../../query/dialect/fulltext-strategy\";\nimport type { GraphBackend } from \"../types\";\n\n/**\n * Resolves what a backend's active fulltext strategy is, distinguishing a\n * backend built with `fulltext: false` from one that simply carries no\n * override.\n *\n * - `false` — the backend declares no `capabilities.fulltext` at all (built\n *   with `fulltext: false`). Every fulltext-touching call site refuses.\n * - `FulltextStrategy` — the backend's active strategy.\n * - `undefined` — the backend declares `capabilities.fulltext` but carries\n *   no `fulltextStrategy` override, which keeps today's \"use the dialect's\n *   own default\" meaning.\n *\n * An omitted `capabilities.fulltext` is read as \"no fulltext\", never as \"use\n * the dialect default\": a backend that supports fulltext but leaves the\n * strategy at the dialect's default must still declare `capabilities.fulltext`\n * for that default to be reachable through this function.\n */\nexport function resolveBackendFulltext(\n  backend: Pick<GraphBackend, \"capabilities\" | \"fulltextStrategy\">,\n): FulltextStrategy | false | undefined {\n  if (backend.capabilities.fulltext === undefined) return false;\n  return backend.fulltextStrategy;\n}\n"]}