{
  "version": 3,
  "sources": ["../../../src/Order.ts"],
  "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport { type QueryAST } from '@dxos/echo-protocol';\n\nexport interface Order<T> {\n  // TODO(dmaretskyi): See new effect-schema approach to variance.\n  '~Order': { value: T };\n\n  ast: QueryAST.Order;\n}\n\nexport type Any = Order<any>;\n\nclass OrderClass implements Order<any> {\n  private static 'variance': Order<any>['~Order'] = {} as Order<any>['~Order'];\n\n  static is(value: unknown): value is Order<any> {\n    return typeof value === 'object' && value !== null && '~Order' in value;\n  }\n\n  constructor(public readonly ast: QueryAST.Order) {}\n\n  '~Order' = OrderClass.variance;\n}\n\nexport const natural: Order<any> = new OrderClass({ kind: 'natural' });\nexport const property = <T>(property: keyof T & string, direction: QueryAST.OrderDirection): Order<T> =>\n  new OrderClass({\n    kind: 'property',\n    property,\n    direction,\n  });\n\n/**\n * Order by relevance rank (for FTS/vector search results).\n * Higher rank = better match. Default direction is 'desc' (best matches first).\n */\nexport const rank = <T>(direction: QueryAST.OrderDirection = 'desc'): Order<T> =>\n  new OrderClass({\n    kind: 'rank',\n    direction,\n  });\n\n/**\n * Order by the system `updatedAt` timestamp (last re-indexed). Default direction is 'desc'\n * (most-recently-updated first). Mirrors {@link Filter.updated}.\n */\nexport const updated = <T>(direction: QueryAST.OrderDirection = 'desc'): Order<T> =>\n  new OrderClass({\n    kind: 'timestamp',\n    field: 'updatedAt',\n    direction,\n  });\n\n/**\n * Order by the system `createdAt` timestamp (first indexed). Default direction is 'desc'\n * (most-recently-created first). Mirrors {@link Filter.created}.\n */\nexport const created = <T>(direction: QueryAST.OrderDirection = 'desc'): Order<T> =>\n  new OrderClass({\n    kind: 'timestamp',\n    field: 'createdAt',\n    direction,\n  });\n"],
  "mappings": ";;;;;AAAA;;;;;;;;AAiBA,IAAMA,aAAN,MAAMA,YAAAA;;EACJ,OAAe,aAAmC,CAAC;EAEnD,OAAOC,GAAGC,OAAqC;AAC7C,WAAO,OAAOA,UAAU,YAAYA,UAAU,QAAQ,YAAYA;EACpE;EAEA,YAA4BC,KAAqB;SAArBA,MAAAA;EAAsB;EAElD,WAAWH,YAAWI;AACxB;AAEO,IAAMC,UAAsB,IAAIL,WAAW;EAAEM,MAAM;AAAU,CAAA;AAC7D,IAAMC,WAAW,CAAIA,WAA4BC,cACtD,IAAIR,WAAW;EACbM,MAAM;EACNC,UAAAA;EACAC;AACF,CAAA;AAMK,IAAMC,OAAO,CAAID,YAAqC,WAC3D,IAAIR,WAAW;EACbM,MAAM;EACNE;AACF,CAAA;AAMK,IAAME,UAAU,CAAIF,YAAqC,WAC9D,IAAIR,WAAW;EACbM,MAAM;EACNK,OAAO;EACPH;AACF,CAAA;AAMK,IAAMI,UAAU,CAAIJ,YAAqC,WAC9D,IAAIR,WAAW;EACbM,MAAM;EACNK,OAAO;EACPH;AACF,CAAA;",
  "names": ["OrderClass", "is", "value", "ast", "variance", "natural", "kind", "property", "direction", "rank", "updated", "field", "created"]
}
